summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorSilvan Mosberger <silvan.mosberger@tweag.io>2023-07-25 18:17:24 +0200
committerSilvan Mosberger <silvan.mosberger@tweag.io>2023-08-13 22:04:56 +0200
commitf3a050a191cc20d834931328c0fc3c089c3d3716 (patch)
tree6e6bc91a13ef858d6c0bb90d36f7bddd6ea65a3d /nixos
parent90bf25d0377046e006d41971795e04d7530e22c1 (diff)
downloadnixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar.gz
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar.bz2
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar.lz
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar.xz
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.tar.zst
nixpkgs-f3a050a191cc20d834931328c0fc3c089c3d3716.zip
doc/reviewing-contributions: Rough move to new contribution doc files
No content was changed, new titles are wrapped with () to signal that
they will need to be decided on in a future commit.

Section in the manual have been preserved with a simple redirect to
GitHub, the proper anchors should be filled out in a future commit once
the new section names are decided.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/README.md75
1 files changed, 75 insertions, 0 deletions
diff --git a/nixos/README.md b/nixos/README.md
index 260209e94ee..913f1eb48fb 100644
--- a/nixos/README.md
+++ b/nixos/README.md
@@ -3,3 +3,78 @@
 NixOS is a Linux distribution based on the purely functional package
 management system Nix.  More information can be found at
 https://nixos.org/nixos and in the manual in doc/manual.
+
+## (Reviewing contributions)
+
+### Module updates {#reviewing-contributions-module-updates}
+
+Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options.
+
+Reviewing process:
+
+- Ensure that the module maintainers are notified.
+  - [CODEOWNERS](https://help.github.com/articles/about-codeowners/) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
+- Ensure that the module tests, if any, are succeeding.
+- Ensure that the introduced options are correct.
+  - Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
+  - Description, default and example should be provided.
+- Ensure that option changes are backward compatible.
+  - `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible.
+- Ensure that removed options are declared with `mkRemovedOptionModule`
+- Ensure that changes that are not backward compatible are mentioned in release notes.
+- Ensure that documentations affected by the change is updated.
+
+Sample template for a module update review is provided below.
+
+```markdown
+##### Reviewed points
+
+- [ ] changes are backward compatible
+- [ ] removed options are declared with `mkRemovedOptionModule`
+- [ ] changes that are not backward compatible are documented in release notes
+- [ ] module tests succeed on ARCHITECTURE
+- [ ] options types are appropriate
+- [ ] options description is set
+- [ ] options example is provided
+- [ ] documentation affected by the changes is updated
+
+##### Possible improvements
+
+##### Comments
+```
+
+### New modules {#reviewing-contributions-new-modules}
+
+New modules submissions introduce a new module to NixOS.
+
+Reviewing process:
+
+- Ensure that the module tests, if any, are succeeding.
+- Ensure that the introduced options are correct.
+  - Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
+  - Description, default and example should be provided.
+- Ensure that module `meta` field is present
+  - Maintainers should be declared in `meta.maintainers`.
+  - Module documentation should be declared with `meta.doc`.
+- Ensure that the module respect other modules functionality.
+  - For example, enabling a module should not open firewall ports by default.
+
+Sample template for a new module review is provided below.
+
+```markdown
+##### Reviewed points
+
+- [ ] module path fits the guidelines
+- [ ] module tests succeed on ARCHITECTURE
+- [ ] options have appropriate types
+- [ ] options have default
+- [ ] options have example
+- [ ] options have descriptions
+- [ ] No unneeded package is added to environment.systemPackages
+- [ ] meta.maintainers is set
+- [ ] module documentation is declared in meta.doc
+
+##### Possible improvements
+
+##### Comments
+```