How to contribute to Nix?

Hello :wave:t3:

I’m looking forward to contribute to Nix development, but I’m a bit puzzled when it comes to the “how to be helpful” part. The contributing documentation isn’t helpful in that regard.

There are many PRs, many looks good but never get merged. I’m not sure I can help much here?

Then, there are a lot of opened issues, they are either feature request or bugs. I suppose this is where it’s possible to get started and contribute. Are there coordinated efforts I could join to look at the issues?

1 Like

In a hopefully near future I would point you to the respective maintenance team info pages, and in a further future to a central place that takes you directly to an overview of good first issues in different areas. Unfortunately we are by far not there yet.

I tried to outline answers to your question for the case of working on documentation, and am constantly updating it based on feedback. Would highly appreciate more of such feedback - right here would be a good place, so we could inform other efforts of coordinating contributions.

In fact, one of my key observations is that the contribution guides are too low-level (recently discussed in private with @toraritte and @djacu). This is, in a sense, not surprising, because open source volunteer contributors are known to mainly scratch their own itches, so those notes are usually by maintainers for maintainers and appear like attempts to regularize repeated tasks.

I would like to encourage motivated people to follow the boy scout rule (which may benefit from a more appropriate name these days) and fix what you stumble over as you go. This will slow you down significantly, possibly to the point of feeling like going backwards, but it will make the life of hundreds of people following you incredibly much easier in the mid term.

Nixperts often don’t feel the pain of those road blocks any more, because they don’t need to consult anyone to know what to do and how. Newcomers‘ perspectives are invaluable here, and we need people like you to direct attention to those issues and help fixing them by starting out with something at all. Oftentimes maintainers will only act on pull requests, which is reasonable given the amount of information and noise floating around.

Now for more practical hints:

nixpkgs uses labels fairly effectively, and filtering by labels as well as sorting by age and thumbs-up will help you find your way around. I recommend subscribing to issues and PRs of interest, most of which have seen no activity in months or years, but you never know.

@infinisil just recently labeled many issues and @roberth also seems to have a good overview.

Nix unfortunately does not leverage labels or CODEOWNERS, and we have to pester @edolstra and @regnat to do something about that.