- Find the issue to work on.
- Create an issue if it does not exist already.
- Create a pull-request.
- A simple paragraph about the tech/tool
- Installation and setup
- Fedora-specific stuff
- The idea is to describe how Fedora differs from upstream (if it does).
- Some quickstart
- Link to an upstream if it exists
- Custom content if not in upstream or if upstream uses different OS
(You can get inspiration from Ruby content if unsure.)
- General Content
- How to install the associated package/s on Fedora?
- Whats the difference from upstream distribution?
- Are there any more implementations/versions? 3. CRuby vs JRuby, Python2 vs Python3 4. How to choose between them (rubypick)?
- How to install other libraries from Fedora and/or upstream?
- e.g. RubyGems, pip, etc.
- Is there a special path you need to set up (
$GOPATH
,$GEM_PATH
)? - How to use packaged version of libraries in upstream bundle tools like Bundler?
- How to install famous frameworks?
- e.g. Ruby on Rails, Django, etc.
- Add this section only if they are packaged for Fedora or require special action on Fedora that would be unclear from upstream.
- Is there a Special Interest Group within Fedora? Mention it (Ruby SIG, Python SIG).
- General Content
- How to install the given database and its client tools from Fedora repositories?
- postgresql vs postgresql-server, sqliteman etc.
- How to install packaged extensions?
- e.g. postgis, postgresql-contrib for hstore etc.
- How to setup a development/basic production database?
- General Content
- Please use
$ sudo ...
for commands requiring root password or root user. - Use the names of upstream project and files properly - e.g.
Makefile
will have capital M. - Referencing commands and names of binaries that would be ran in command line should be done using back-ticks ``.
- Add empty lines before and after headlines and code blocks.
- Take a look at Github markdown
Don't use complicated sentences. Not everyone reading the documentation will be fluent in English, and if the solution texts get translated, it might be to Japanese, which is a language so fundamentally different that anything even a little bit complicated turns into a translation nightmare.
Keep the doc simple from a '''technical standpoint''' too. Not everyone reading the documentation will be an experienced admin/user.
They're just too informal.
The update won't be available...
The update will not be available...
Avoid passive voice.
This can be fixed by...
You can fix this issue by...
When you tell users to run a set of commands, tell them what is going on. This mostly applies to cases where the documentation text contains some procedure (a set of commands) to do some complicated stuff. When that happens, don't just put in the commands, but explain them.
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
$ sudo cp PREUPGRADE_DIR/cleanconf/etc/sysconfig/iptables /etc/sysconfig/iptables
etc.
First, disable and stop the firewalld service:\n
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
Then, copy the cleanconf/etc/sysconfig/iptables configuration file into your system's /etc/sysconfig/ directory:
$ sudo cp PREUPGRADE_DIR/cleanconf/etc/sysconfig/iptables /etc/sysconfig/iptables
etc.
If this makes the particular documentation too long, you could create a separate page about it and provide a link to the user instead.
If we say things like "this should be in...", it makes us sound like we don't even know what's actually going on.
You should be able to find this list in /etc/whatever/list.
The list is located in /etc/whatever/list.
In case you want to document one issue for more versions of the product, while there are small differences in each version, create one article for the most current version and use notes to describe differences for other versions.