NixOS Wiki:Contributing: Difference between revisions
Lord-Valen (talk | contribs) m Update links Tags: Mobile edit Mobile web edit |
Drop nixops |
||
Line 33: | Line 33: | ||
Make sure to: | Make sure to: | ||
* Follow standard capitalization for software, particularly for the Nix ecosystem (NixOS, Nix, Nix Language, Nixpkgs, | * Follow standard capitalization for software, particularly for the Nix ecosystem (NixOS, Nix, Nix Language, Nixpkgs, and Hydra). | ||
* Use inline <code><nowiki><code></nowiki></code> tags for filenames, paths, commands and command-line tools. | * Use inline <code><nowiki><code></nowiki></code> tags for filenames, paths, commands and command-line tools. | ||
* Use <code><nowiki><syntaxhighlight lang="nix"></nowiki></code> for code snippets. Change <code>lang=</code> to match the actual language of the code. | * Use <code><nowiki><syntaxhighlight lang="nix"></nowiki></code> for code snippets. Change <code>lang=</code> to match the actual language of the code. | ||
Line 55: | Line 55: | ||
; <code>[[:Category:Nixpkgs|<nowiki>[[Category:Nixpkgs]]</nowiki>]]</code>: Articles about Maintaining code in the Nixpkgs repository, structuring, and so on. | ; <code>[[:Category:Nixpkgs|<nowiki>[[Category:Nixpkgs]]</nowiki>]]</code>: Articles about Maintaining code in the Nixpkgs repository, structuring, and so on. | ||
; <code>[[:Category:Nix Language|<nowiki>[[Category:Nix Language]]</nowiki>]]</code>: Description of Language quirks and solutions. | ; <code>[[:Category:Nix Language|<nowiki>[[Category:Nix Language]]</nowiki>]]</code>: Description of Language quirks and solutions. | ||
; <code>[[:Category:Hydra|<nowiki>[[Category:Hydra]]</nowiki>]]</code>: Articles about Hydra continuous Integration related documentation. | ; <code>[[:Category:Hydra|<nowiki>[[Category:Hydra]]</nowiki>]]</code>: Articles about Hydra continuous Integration related documentation. | ||
; <code>[[:Category:Application|<nowiki>[[Category:Application]]</nowiki>]]</code>: Articles about other Nix-based or Nix-related applications. | ; <code>[[:Category:Application|<nowiki>[[Category:Application]]</nowiki>]]</code>: Articles about other Nix-based or Nix-related applications. |
Revision as of 19:48, 2 April 2024
This article is a guide to contributing to the Wiki. Contributors are encouraged to write new articles or modify existing ones as they see fit, but it is appreciated and encouraged to follow the recommendations of this guide as for as possible whenever they are applicable.
Spirit of the Wiki
The NixOS Wiki is a user community effort, meant to be complementary to the NixOS reference manual rather than a replacement for it. The following properties distinguish the spirit of the Wiki from reference documentation:
- Ecosystemic
- The manuals cover the interfaces and mechanisms of specific components (Nix, Nixpkgs, NixOS, etc.) while the Wiki covers the Nix ecosystem as a whole and focuses on NixOS as a point of integration.
- Heterogeneous
- The reference manuals merely present all interfaces factually. The Wiki has the potential to reveal the more diverse or opinionated approaches and workflows used in practice.
- Pragmatic
- The reference manuals are intended for comprehensive and detailed reference, while the Wiki emphasizes practical resources such as guides, examples, and troubleshooting tips.
- User community
- The reference manuals cover mechanisms and inner workings, which are mainly important for developers and contributors. The Wiki is oriented around the broad spectrum of real-world use cases.
Finding stuff to do
The following are ways to find out (or let people know) what needs to be done:
- Use the Wiki Projects page to list or join a project and the Wiki Issues page to raise issues and find stuff to do.
- Help improve flagged articles in the appropriate way.
- Flag articles if you find something missing, incorrect or out-of-date using templates.
- Fill out missing articles linked anywhere (Special:WantedPages), and missing sections in any article.
- Write tutorials and guides to help ease pain-points for beginners.
Style
Language
NixOS Wiki articles should be written in clear language. To this end, the following considerations apply:
- Accessibility
- Wiki articles are often the first thing a new user will read about any subject, so they should be accessible to beginners.
- Vocabulary
- Use the simplest and most conventional words and expressions you can find to get your point across without oversimplifying.
- Organization
- Keep your text structured in coherent sentences, paragraphs and sections, each with its own clear themes and topics.
- Citations
- Citations aren't required, but definitely appreciated; when citing code, hardlink to a particular revision.
- Attribution
- Where external material is quoted or utilized in the article, and/or licensing or common sense demands it, place clear and complete attribution and (where possible) a link.
Syntax
Make sure to:
- Follow standard capitalization for software, particularly for the Nix ecosystem (NixOS, Nix, Nix Language, Nixpkgs, and Hydra).
- Use inline
<code>
tags for filenames, paths, commands and command-line tools. - Use
<syntaxhighlight lang="nix">
for code snippets. Changelang=
to match the actual language of the code. - Use the secondary MediaWiki header (
== My Section ==
) for main sections (the primary header should never be used).
Code
Articles can and often should contain plenty of code snippets and blocks. When using code consider the following:
- Quantity
- Code examples should be minimal, to-the-point, and only used when illustrative of the surrounding text.
- Style
- Code should be properly indented with clear naming and commenting where necessary.
Tagging articles
The MediaWiki provides a way to tag articles (at the end of the article). We are using this feature to structure the Wiki.
Ecosystem tags
Elements of the Nix Ecosystem should be tagged by one or more of the following categories:
[[Category:NixOS]]
- Articles related to the Nix Operating System, the Module System and the System Configuration.
[[Category:Nix]]
- Articles about Using the Nix Tools to accomplish great things.
[[Category:Nixpkgs]]
- Articles about Maintaining code in the Nixpkgs repository, structuring, and so on.
[[Category:Nix Language]]
- Description of Language quirks and solutions.
[[Category:Hydra]]
- Articles about Hydra continuous Integration related documentation.
[[Category:Application]]
- Articles about other Nix-based or Nix-related applications.
Resource tags
The type of documentation for new pages should be tagged with one of the following categories:
[[Category:Tutorial]]
-
- is learning-oriented
- allows the newcomer to get started
- is a lesson
[[Category:Discussion]]
-
- is understanding-oriented
- explains
- provides background and context
[[Category:Guide]]
-
- is goal-oriented
- how-to's for dealing with a specific problem / tool
- is a series of steps
[[Category:Cookbook]]
-
- is recipe orientated
- a collection of short code snippets and hacks
- arranged around a theme or tool
[[Category:Reference]]
-
- is information-oriented
- describes the machinery
- is accurate and complete
- Most of the time the NixOS Wiki will not contain reference documents