[Nix-dev] Commit access

Thomas Tuegel ttuegel at gmail.com
Mon Feb 29 16:49:52 CET 2016


On Mon, Feb 29, 2016 at 8:15 AM, Matthias Beyer <mail at beyermatthias.de> wrote:
> As this discussion seems to happen outside of the mailinglist, I resend this, so
> everyone on the ML knows:
>
> On 28-02-2016 15:23:48, Matthias Beyer wrote:
>> On 24-02-2016 11:43:22, Michael Raskin wrote:
>> > I have fixed and ran the vanity counter script.
>> >
>> > My impression is: if any of the following valued contributors ask
>> > @rbvermaa for commit access, they will almost for sure get it; and all
>> > of them have reached the level of experience with NixPkgs where many
>> > people have asked and received commit rights.
>> >
>> > Adding 30 members to the NixOS organisation would be nice, hopefully
>> > that would help with the PR buildup at least a bit…
>> >
>> > ...
>> >
>> > matthiasbeyer
>> >
>>
>> Thanks for proposing me for commit access to nixpkgs, but no thanks.
>>
>> Do you people really think that giving away commit access to _even more_ people
>> will solve the mess we call "nixpkgs" today? I consider this insanity!
>>
>> Giving away commit access to so many people will result in an even greater mess
>> than we already have! We already have a discussions where several people
>> conclude that our development model SUCKS HARD [0] _because_
>> everyone just pushes on master. We are arguing on how to do the development
>> process right and there are a lot of good proposals. We just have to start it!
>>
>> So I propose: Please, Eelco, remove everyone from commit access for
>> github/nixos/nixpkgs!
>>
>> This would be the first step. Then we can add maybe two or people, like domen
>> and Rob.
>>
>> Afterwards we should define "topics":
>>
>>     - Haskell (I guess Peter Simons would be the maintainer here)
>>     - Python
>>     - Perl
>>     - Ruby
>>     - Java
>>     - Rust
>>     - all other language packages
>>     - New packages
>>     - Package updates
>>     - ... more?
>>
>> These sets could even be extracted out of the current nixpkgs tree:
>>
>>     - nixos/modules:
>>         - config
>>         - hardware
>>         - i18n
>>         - installer
>>         - misc
>>         - module-list.nix
>>         - profiles
>>         - programs
>>         - rename.nix
>>         - security
>>         - services
>>         - system
>>         - tasks
>>         - testing
>>         - virtualisation
>>     - pkgs
>>         - applications
>>         - build-support
>>         - data
>>         - desktops
>>         - development
>>         - games
>>         - misc
>>         - os-specific
>>             - darwin
>>             - gnu
>>             - linux
>>             - windows
>>         - servers
>>         - shells
>>         - stdenv
>>         - test
>>         - tools
>>         - top-level
>>
>> Of course one person could be maintainer for several subsets of the repository,
>> though I'd not give away more than three subsets to the same person.
>>
>> And define maintainers for these sets.
>>
>> Afterwards, and this is an _important_ step:
>> We should create _one repository for each of these topics_. Pull requests should
>> be filed against these repositories. The maintainers of these repositories may
>> ask periodically for a pull into the main repository. Something like
>>
>>     - new packages every 5 days
>>     - package updates every 2 days
>>     - Haskell packages every 7 days
>>     - ... etc
>>
>> All of these PRs should be already known as "build-succeed" ones.
>>
>> This is a tree-like model like it is used in other distributions and big
>> projects like the kernel or git itself.
>>
>> As I know that we are great in discussing things but not that great in doing
>> things, I do not put that much hope in this mail, though I hope that Eelco and
>> the others will at least not offer push access to these people.
>>
>> [0]: http://thread.gmane.org/gmane.linux.distributions.nixos/19586

+1 for dividing responsibilities along a tree hierarchy.
-1 for doing anything before 31 Mar 2016 or closure-size is merged,
whichever happens last.
-0.5 for the scorched-earth policy of removing all contributors before
dividing the repository. (It would be -1, but as a general rule I
_love_ scorched-earth policies.)

I've said before that having a hierarchical tree of responsibilities
is the best (only?) way to scale-up NixOS development. I don't think
we should remove commit access _before_ dividing up the tree, though.
Right now, the filesystem tree is a bit of a mess. For example, I
would be the natural choice to maintain the KDE 5 tree. If we divide
the repository along filesystem lines, the KDE 5 packages would be in
my domain, but not the NixOS module. That's a big technical problem,
because they usually need to be updated together. (From a
non-technical perspective, it's just silly.)

I like this idea, though. After the release, and after we have cleaned
up the closure-size fallout, I think we should take 1-2 weeks,
reorganize the repository sensibly, split it up along some lines and
_then_ remove the extraneous contributors from NixOS/nixpkgs.

Regards,
Tom


More information about the nix-dev mailing list