Contributing to IronERP Docs
For information about contributing to IronERP Code, please see Contributing Code
Code of Conduct
We have adopted the Rust Code of Conduct for the IronERP project. Please follow this code of conduct when interacting with the IronERP community in any way.
Docusaurus
We've recently migrated to Docusaurus from MkDocs. Everything should be migrated
over at this point but if you find something that's missing from the new version,
please look for the missing content in the old
branch and add it.
The IronERP documentation website is built with Docusaurus. This is a super-quick getting started guide that will walk you through the process of cloning the docs repo, making changes, verifying them locally and submitting them for a review.
For more technical details, please see the Docusaurus Docs.
Super-Quick-Start
Requirements
- NodeJS 18
- Yarn 3
- Text Editor
- Web Browser
Please make sure you're using NodeJS 18 and Yarn 3. Any other version combinations
will generate an incompatible yarn.lock
that will then break deployments of
the site.
Setup
First, please fork the IronERP docs repository and clone your fork. You will then use your fork to submit a pull request. Only trusted contributors can submit code directly.
// TODO: Add a fork link
# Clone your fork
$> git clone https://github.com/<username>/ironerp_docs.git
# Make sure you're using the right tool versions
$> node --version
>>> v18.17.1
$> yarn --version
>>> 3.6.3
# Change into the IronERP docs directory and create a new branch.
# Please try to make the branch name descriptive of your changes
$> cd ironerp_docs && git checkout -b feature/add-some-docs
# Install dependencies
$> yarn
# Start the development server
$> yarn start
You can now edit the markdown files in docs/
and preview your changes at
http://localhost:3000.
Structure
All documentation pages are organised as Markdown .md
files in the docs/
directory. The documentation is split into sections. These section hold
documents related to various "components" of the IronERP project.
These sections are:
- Intro: The quick-start guide and related documents
- Engine: Documentation for the core IronERP Engine
- CLI: Documentation for the (now deprecated) CLI
- Meta: Organizational information
If you're adding a completely new document, please make sure it's in a section where it fits the most. If unsure, ask in Slack.
If you feel like your addition warrants creating a completely new section, please consult this idea in the documentation Slack channel first.
Making Changes
Pick a file and make your edits. The files are formatted with Markdown.
There are no set rules for file names and structure. If you need to add a new file, simply try to follow whatever conventions seem to be in use around the file's siblings.
Submitting your Changes
Add and commit your changes and push them to your fork. Then create a pull request
from the GitHub UI. Always target the main
branch in your pull requests. If
your PR contains multiple commits, please check the option to squash them.
Don't forget to sign off your commits. By signing off a commit, you express your agreement to the terms of the Developer Certificate of Origin. We cannot accept commits that are not signed off!
To sign off a commit, use --signoff
or -s
.
$> git add --all
$> git commit -ams "feat: added some docs"
$> git push origin feature/add-some-docs
Content Guidelines
Placeholders
Sometimes, a placeholder value might be required in the documentation, such as an argument in a command, an IP address or hostname, etc. This list is by no means exhaustive so please use common sense when deciding what kind of placeholder to use but if your use-case is outline here, please follow this guide.
Hostnames and IP Addresses
For IPv4 addresses, please follow RFC5737. In essence, the following IPv4 blocks are reserved for documentation purposes and should therefore be used in documentation.
The reserved blocks are 192.0.2.0/24
, 198.51.100.0/24
and 203.0.113.0/24
.
You may also use private network blocks from RFC1918 in appropriate contexts, for example when explaining how to connect to an external service that would be hosted within the user's private network alongside IronERP.
Conversely, for IPv6 addresses, please use the prefix from RFC3849.
The IPv6 prefix reserved for documentation purposes is 2001:DB8::/32
. You can use any address
within this prefix in the documentation.
For hostnames, you may use reserved DNS names from RFC2606.
The reserved DNS names are:
Top Level:
*.test
*.example
*.invalid
*.localhost
Second Level:
example.com
example.net
example.org
For special cases, please try to use common sense or take inspiration from other software documentations.
For services that might reasonably be expected to run on the developer's machine alongside IronERP,
you can use 127.0.0.1
or localhost
.
In the context of Docker and Docker Compose, try to use Docker-like hostnames. For example, in an
IronERP Docker Compose file, the Meilisearch component would most likely be available under the
hostname meilisearch
.
In contexts specific to Kubernetes, try to use internal Kubernetes hostnames in the form of
<service_name>.<namespace>.svc.cluster.local
Textual Placeholders
Sometimes, you might need a textual placeholder for things like configuration files and command arguments. In general, you should choose such a format that complements the context and/or relevant programming/configuration language.
Required arguments should ideally be marked with angled brackets, e.g. command -r <required_argument>
.
Optional arguments should be in square brackets, e.g. command -o [optional_argument]
.