There is a Best way to contribute to documentation? topic, but the intent of it slightly different and now that we have a Documentation Team now (announcement, meetings), it seemed like a good idea to start a new thread.
TL;DR
It would be helpful if uniform instructions would be provided for both technical (“format-aware”) and non-technical (“format-agnostic”) contributions.
Technical contributions
By technical or “format-aware” contribution I mean an edit suggestion that comes via pull request (PR); that is, the initiator knows git
and GitHub workflows, is comfortable with DocBook & markdown1, etc.
[1]: As far as I know, the migration hasn’t finished yet (basing this on #175586).
At the moment, the How to Contribute page does not mention anything about the documentation, and the instructions are either relegated to the end of the manuals (Nixpkgs and NixOS manuals) or missing altogether (Nix manual)2.
[2]: Or did I miss these somehow?..
The existing manual sections also don’t mention git
and GitHub workflows, such as cloning Nixpkgs, whether to open an issue first and then PR, etc. Not saying that the manuals should teach readers how to use these tools, but making Nix community conventions explicit would be perhaps encouraging.
Non-technical contributions and alternate avenues of reporting
In contrast, non-technical or “format-agnostic” contribution stands for any feedback where no PR is submitted and no documentation source would be touched.
I believe promoting official ways to report suggestions (at least one that excludes the usage of git
/GitHub)3 would be important for a couple of reasons:
[3]: E.g., open a GitHub issue using xyz template or post on discourse in the x category and/or using yz tags
-
save people’s time
One may just want to report a couple of typos, but they lack time and/or deem the effort of submitting a PR too much, so in the end they forgo doing anything altogether. -
submitting a PR is intimidating
Even if there are detailed instructions, lacking familiarity withgit
, terminal, etc. may be a barrier. -
no GitHub account (for whatever reason)
-
anxiety
For example, I have been following Nix and the community for a while now, but still not sure what the “proper” ways of doing certain things are. For example, where to discuss an ambiguity that I found across 2 manuals? Should I open an GitHub issue? Ask it here first? This is probably over-thinking, but I’m probably not the only one with these thoughts. One or two officially suggested way would help like minded folks to ease them into the community. -
disagreement over documentation format
We all have our opinions regarding the “right” documentation format4, and a person may decide not to work with a certain one, but they may have valuable input nonetheless.[4]: E.g., see Documentation format topic
-
(else?)
This footnote requesting support for annotatability5 is only tangentially related, but it may also provide an additional way of feedback in complex cases6. My problem is that whenever a manual is updated, the manual URLs stay the same, and so notes anchored to specific text highlights become stale (“orphans” in hypothes.is lingo); that is, with the disappearance of the context, the notes and cross-refs become almost meaningless.
[5]: By providing permalinks for versions of the manuals; one for each major version perhaps?
[6]: For example, the manuals have overlapping topics, and there may be differing explanations of the same concept; or the Nix manual is updated with a new functionality that deprecates another, and the rest of the manuals still use the old ways. Most online annotation tools allow public sharing of notes with cross-refs so one could just click the link to follow the crumbs.
edit: distilling the Matrix conversation between @deliciouslytyped and @mat:
-
Try out something like the “report docuentation bug” button in the SLES docs, but one that doesn’t require signin + a thumbs down/thumbs up under each paragraph to quickly see what people like and what not.
- → On that note, the Erlang reference docs streamline making a pull request for each function (e.g.,
mnesia:clear_table/1
):
- → On that note, the Erlang reference docs streamline making a pull request for each function (e.g.,
edit-2: Change title and collect all the discourse threads in this topic that I could find. (TODO: distill)
-
General:
- Welcoming new contributors
- Summer of Nix documentation stream => How to contribute to documentation?
- NixOS- code vs wiki vs manual
- 2022-08-01 Summer of Nix documentation Q&A
- Best way to contribute to documentation?
- How do I contribute to the nixpkgs manual?
- Happy Docsgiving
- We need more defined guidelines for package inclusion
-
Code-related:
-
No GitHub account and/or alternative patch submissions:
edit-3: From the Spectrum OS community’s “spectrum-devel” mailing list:
[PATCH] Documentation: add “Sending your First Patch”