From 34c2c3ecf1d8fa70d00de3b9e6038532fef493f8 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sun, 20 Aug 2023 14:46:10 +0200 Subject: [PATCH 01/11] maintainers: document expectations Motivated by https://discourse.nixos.org/t/where-did-you-get-stuck-in-the-nix-ecosystem-tell-me-your-story Address the uncertainty around maintainers by defining what it means, what are the expectations and power you get. --- maintainers/README.md | 45 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/maintainers/README.md b/maintainers/README.md index e1288185192534b..fd0c015c7e05fa3 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -1,10 +1,45 @@ # Nixpkgs Maintainers -The *Nixpkgs maintainers* are people who have assigned themselves to -maintain specific individual packages. We encourage people who care -about a package to assign themselves as a maintainer. When a pull -request is made against a package, OfBorg will notify the appropriate -maintainer(s). +Unlike other packaging ecosystems, the maintainer doesn't have exclusive +control over the packages and modules they maintain. This more fluid approach +is one reason why we scale to so many packages. + + +## Definition and role of the maintainer + +The main responsibility of a maintainer is to keep the packages they maintain +in a functioning state, and keep up with updates. In order to do that, they +are empowered to make decisions over the packages they maintain. + +By default, we expect committers to wait at least a week before merging +changes on packages they are not maintaining. This should leave enough time +for the maintainers to provide feedback. The only exception would be for tiny +version bumps and security updates that could be merged faster. + +In case of conflict, the maintainer takes priority and is allowed to revert +the changes. This can happen for example if the maintainer was on holiday. + +### How to become a maintainer + +We encourage people who care about a package to assign themselves as a +maintainer. You don't require to have nixpkgs commit access to do so. + +In order to do so, add yourself to the +[`maintainer-list.nix`](./maintainer-list.nix), and then to the desired +package's `meta.maintainers` list, and send a PR with the changes. + +### How to lose maintainer status + +Maintainers that have become inactive for more than 3 months on a given +package can be removed. This helps us keep an accurate view of what parts of +nixpkgs are well maintained or not. + +The maintainer is welcome to come back at any time. + +### Tools for maintainers + +When a pull request is made against a package, OfBorg will notify the +appropriate maintainer(s). ## Reviewing contributions From a888774aefc9dd477c0e0fd092bda4bf973aab0c Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sun, 20 Aug 2023 19:03:10 +0200 Subject: [PATCH 02/11] change the wording to be a bit more lax on losing maintainer status --- maintainers/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/maintainers/README.md b/maintainers/README.md index fd0c015c7e05fa3..60a72f51ed4ac4a 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -30,9 +30,13 @@ package's `meta.maintainers` list, and send a PR with the changes. ### How to lose maintainer status -Maintainers that have become inactive for more than 3 months on a given -package can be removed. This helps us keep an accurate view of what parts of -nixpkgs are well maintained or not. +Maintainers that have become inactive on a given package can be removed. This +helps us keep an accurate view of what parts of nixpkgs are well maintained or +not. + +The inactivity measure is currently not strictly enforced. We would typically +look at it if we notice that the author hasn't reacted to package-related +notifications for more than 3 months. The maintainer is welcome to come back at any time. From 10e3f2c7df0c50f47bdbb3029d475642c77b1246 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Wed, 23 Aug 2023 11:57:19 +0200 Subject: [PATCH 03/11] clarify how removal happens --- maintainers/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index 60a72f51ed4ac4a..2d91b22ea2ab17c 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -4,7 +4,6 @@ Unlike other packaging ecosystems, the maintainer doesn't have exclusive control over the packages and modules they maintain. This more fluid approach is one reason why we scale to so many packages. - ## Definition and role of the maintainer The main responsibility of a maintainer is to keep the packages they maintain @@ -38,6 +37,9 @@ The inactivity measure is currently not strictly enforced. We would typically look at it if we notice that the author hasn't reacted to package-related notifications for more than 3 months. +Removing the maintainer happens by making a PR on the package, adding that +person as a reviewer, and then waiting a week for a reaction. + The maintainer is welcome to come back at any time. ### Tools for maintainers From c67b737cd4d81303dc9cdaeb6f7b6f4be42a2ae7 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Wed, 23 Aug 2023 16:32:09 +0200 Subject: [PATCH 04/11] expand the reasoning a bit more --- maintainers/README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/maintainers/README.md b/maintainers/README.md index 2d91b22ea2ab17c..0f4e9f1eadbb7dd 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -10,10 +10,23 @@ The main responsibility of a maintainer is to keep the packages they maintain in a functioning state, and keep up with updates. In order to do that, they are empowered to make decisions over the packages they maintain. -By default, we expect committers to wait at least a week before merging +That being said, the maintainer is not alone proposing changes to the +packages. Anybody (both bots and humans) can send PRs to bump or tweak the +package. + +We also allow other non-maintainer committers to merge changes to the package, +provided enough time and priority has been given to the maintainer. + +For most packages, we expect committers to wait at least a week before merging changes on packages they are not maintaining. This should leave enough time -for the maintainers to provide feedback. The only exception would be for tiny -version bumps and security updates that could be merged faster. +for the maintainers to provide feedback. + +For critical packages, this convention needs to be negociated with the +maintainer. A critical package is one that causes mass-rebuild, or where an +author is listed in the CODEOWNERS file. + +In case of critical security updates, the security team might override these +heuristics in order to get the fixes in as fast as possible. In case of conflict, the maintainer takes priority and is allowed to revert the changes. This can happen for example if the maintainer was on holiday. From 9afac4c2ce66f6d0e860c0f833efc454bbbaeba9 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 16:47:15 +0200 Subject: [PATCH 05/11] Update maintainers/README.md Co-authored-by: 7c6f434c <7c6f434c@mail.ru> --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index 0f4e9f1eadbb7dd..dd9bf90bf1b7ae3 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -18,7 +18,7 @@ We also allow other non-maintainer committers to merge changes to the package, provided enough time and priority has been given to the maintainer. For most packages, we expect committers to wait at least a week before merging -changes on packages they are not maintaining. This should leave enough time +changes not endorsed by a package maintainer (which may be themselves). This should leave enough time for the maintainers to provide feedback. For critical packages, this convention needs to be negociated with the From 405ea938c4e7020343ed22636a57d10195339a34 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 23:18:37 +0200 Subject: [PATCH 06/11] Update maintainers/README.md Co-authored-by: Valentin Gagarin --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index dd9bf90bf1b7ae3..14ec6801f43218e 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -25,7 +25,7 @@ For critical packages, this convention needs to be negociated with the maintainer. A critical package is one that causes mass-rebuild, or where an author is listed in the CODEOWNERS file. -In case of critical security updates, the security team might override these +In case of critical security updates, the [security team](https://nixos.org/community/teams/security) might override these heuristics in order to get the fixes in as fast as possible. In case of conflict, the maintainer takes priority and is allowed to revert From 9025fb6a089d6e118438f44f636f217d04defef5 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 23:18:48 +0200 Subject: [PATCH 07/11] Update maintainers/README.md Co-authored-by: Valentin Gagarin --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index 14ec6801f43218e..8965e09e673aedd 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -23,7 +23,7 @@ for the maintainers to provide feedback. For critical packages, this convention needs to be negociated with the maintainer. A critical package is one that causes mass-rebuild, or where an -author is listed in the CODEOWNERS file. +author is listed in the [`CODEOWNERS`](../.github/CODEOWNERS) file. In case of critical security updates, the [security team](https://nixos.org/community/teams/security) might override these heuristics in order to get the fixes in as fast as possible. From e7d700b4856825264a17b55de204958fee7d4e82 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 23:18:59 +0200 Subject: [PATCH 08/11] Update maintainers/README.md Co-authored-by: Valentin Gagarin --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index 8965e09e673aedd..57886e061f6dae4 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -34,7 +34,7 @@ the changes. This can happen for example if the maintainer was on holiday. ### How to become a maintainer We encourage people who care about a package to assign themselves as a -maintainer. You don't require to have nixpkgs commit access to do so. +maintainer. Commit access to the Nixpkgs repository is not required for that. In order to do so, add yourself to the [`maintainer-list.nix`](./maintainer-list.nix), and then to the desired From 0f92e2c0af2810ff575640b5cfcfaece84490355 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 23:19:08 +0200 Subject: [PATCH 09/11] Update maintainers/README.md Co-authored-by: Valentin Gagarin --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index 57886e061f6dae4..3784d5c5c58782f 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -42,7 +42,7 @@ package's `meta.maintainers` list, and send a PR with the changes. ### How to lose maintainer status -Maintainers that have become inactive on a given package can be removed. This +Maintainers who have become inactive on a given package can be removed. This helps us keep an accurate view of what parts of nixpkgs are well maintained or not. From 4f7878810b447b53e191cb49db364baf66ea8623 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Wed, 23 Aug 2023 23:19:28 +0200 Subject: [PATCH 10/11] Update maintainers/README.md Co-authored-by: Valentin Gagarin --- maintainers/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/maintainers/README.md b/maintainers/README.md index 3784d5c5c58782f..b7112b22e76e18e 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -43,8 +43,7 @@ package's `meta.maintainers` list, and send a PR with the changes. ### How to lose maintainer status Maintainers who have become inactive on a given package can be removed. This -helps us keep an accurate view of what parts of nixpkgs are well maintained or -not. +helps us keep an accurate view of the state of maintenance in Nixpkgs. The inactivity measure is currently not strictly enforced. We would typically look at it if we notice that the author hasn't reacted to package-related From 14d76e5ee44ef4b65270f9bb984ad245bed9d6bc Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Mon, 28 Aug 2023 12:17:35 +0200 Subject: [PATCH 11/11] Update maintainers/README.md Co-authored-by: Frederik Rietdijk --- maintainers/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/README.md b/maintainers/README.md index b7112b22e76e18e..5bb9c58db024bab 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -21,7 +21,7 @@ For most packages, we expect committers to wait at least a week before merging changes not endorsed by a package maintainer (which may be themselves). This should leave enough time for the maintainers to provide feedback. -For critical packages, this convention needs to be negociated with the +For critical packages, this convention needs to be negotiated with the maintainer. A critical package is one that causes mass-rebuild, or where an author is listed in the [`CODEOWNERS`](../.github/CODEOWNERS) file.