···
3
-
The *Nixpkgs maintainers* are people who have assigned themselves to
4
-
maintain specific individual packages. We encourage people who care
5
-
about a package to assign themselves as a maintainer. When a pull
6
-
request is made against a package, OfBorg will notify the appropriate
3
+
Unlike other packaging ecosystems, the maintainer doesn't have exclusive
4
+
control over the packages and modules they maintain. This more fluid approach
5
+
is one reason why we scale to so many packages.
7
+
## Definition and role of the maintainer
9
+
The main responsibility of a maintainer is to keep the packages they maintain
10
+
in a functioning state, and keep up with updates. In order to do that, they
11
+
are empowered to make decisions over the packages they maintain.
13
+
That being said, the maintainer is not alone proposing changes to the
14
+
packages. Anybody (both bots and humans) can send PRs to bump or tweak the
17
+
We also allow other non-maintainer committers to merge changes to the package,
18
+
provided enough time and priority has been given to the maintainer.
20
+
For most packages, we expect committers to wait at least a week before merging
21
+
changes not endorsed by a package maintainer (which may be themselves). This should leave enough time
22
+
for the maintainers to provide feedback.
24
+
For critical packages, this convention needs to be negotiated with the
25
+
maintainer. A critical package is one that causes mass-rebuild, or where an
26
+
author is listed in the [`CODEOWNERS`](../.github/CODEOWNERS) file.
28
+
In case of critical security updates, the [security team](https://nixos.org/community/teams/security) might override these
29
+
heuristics in order to get the fixes in as fast as possible.
31
+
In case of conflict, the maintainer takes priority and is allowed to revert
32
+
the changes. This can happen for example if the maintainer was on holiday.
34
+
### How to become a maintainer
36
+
We encourage people who care about a package to assign themselves as a
37
+
maintainer. Commit access to the Nixpkgs repository is not required for that.
39
+
In order to do so, add yourself to the
40
+
[`maintainer-list.nix`](./maintainer-list.nix), and then to the desired
41
+
package's `meta.maintainers` list, and send a PR with the changes.
43
+
### How to lose maintainer status
45
+
Maintainers who have become inactive on a given package can be removed. This
46
+
helps us keep an accurate view of the state of maintenance in Nixpkgs.
48
+
The inactivity measure is currently not strictly enforced. We would typically
49
+
look at it if we notice that the author hasn't reacted to package-related
50
+
notifications for more than 3 months.
52
+
Removing the maintainer happens by making a PR on the package, adding that
53
+
person as a reviewer, and then waiting a week for a reaction.
55
+
The maintainer is welcome to come back at any time.
57
+
### Tools for maintainers
59
+
When a pull request is made against a package, OfBorg will notify the
60
+
appropriate maintainer(s).
## Reviewing contributions