HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
NixOS
rfcs
Markdown2018–2026
NixOS / rfcs

rfcs

The Nix community RFCs

39Distinct people
64Mentions
2Explicit recommenders
659GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Nix community RFCs

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Nix packages are blindly and automatically signed by a single private key last I reviewed it. Bribe or compromise one person and the entire model fails. There is good reason to…

lrvick used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year64 dated mentions

Observed mentions: 2018-11-03 05:49:00 UTC to 2026-08-08 05:15:45 UTC.

0510152018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 16 mentions; 0 submissions, 16 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC413
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC606
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC606
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC10010
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC1129
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC16016
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC606
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC404

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
NoteDue to the decreased activity in the RFC repository, and as also discussed in the previous meeting notes, we will transition the RFC process to a new on-demand work flow. More info here. Nix RFCs (Request For Comments) Many changes, including bug fixes and documentation improvements can be implemented and reviewed via the normal GitHub pull request workflow. Some changes though are "substantial", and we ask that these be put through a bit of a design process and produce a consensus among the Nix community. When this process is followed This process is followed when one intends to make "substantial" changes to the Nix ecosystem. What constitutes a "substantial" change is evolving based on community norms, but may include the following. Any semantic or syntactic change to the language that is not a bug fix Removing language features Big restructuring of Nixpkgs Expansions to the scope of Nixpkgs (new arch, major subprojects, ...) Introduction of new interfaces or functions Certain changes do not require an RFC: Adding, updating and removing packages in Nixpkgs Fixing security updates and bugs that don't break interfaces Pull requests that contain any of the aforementioned 'substantial' changes may be closed if there is no RFC connected to the proposed changes. Terminology RFC Steering Committee A team of people defined by RFC 36 and stays consistent until the team members are changed via a follow-up RFC. This committee is responsible for forming an RFC Shepherd team from the available nominations on each RFC. This team also names the leader of the Shepherd team. This has to happen within 1 week after the PR has been opened. Until then the Steering Committee is responsible for guiding the discussion. In case of the Shepherding Team not doing its work the Steering Committee shall encourage them or step in and assign new Shepherds. They also are in charge of merging accepted and rejected RFCs. Generally by these expectations they should find time to meet once a week for about an hour. They have no special responsibility with regard to the content of an RFC, they can weigh in on them, the same as any other community member, but are only in charge of: selecting the Shepherds unanimously supervising that the Shepherds are carrying out their work committing the final RFC Shepherd Team A team of 3-4 community members defined unanimously by the RFC Steering Committee, responsible for accepting or rejecting a specific RFC. This team is created per RFC from community members nominated in the discussion on that RFC. This team should be people who are very familiar with the main components touched by the RFC. The author cannot be part of the Shepherd Team. In addition, at most half of the Shepherd Team can be part of the RFC Steering Committee. The responsibility of the team is to guide the discussion as long as it is constructive, new points are brought up and the RFC is iterated on and from time to time summarise the current state of discussion. If this is the case no longer, then the Shepherd Team shall step in with a motion for FCP. Shepherd Leader The person in charge of the RFC process for a specific RFC, and responsible for ensuring the process is followed in a timely fashion. The Shepherd Leader has no special responsibility with regard to moving an undecided Shepherd Team to a certain decision. Final Comment Period (FCP) A period of ten calendar days, which will be called by the Shepherd Team after the RFC has received ample discussion and enough of the tradeoffs have been discussed. The Shepherd Team will propose to either accept or reject the RFC after the FCP. Process from Creation to Merge In short, to get a major change included in Nix or Nixpkgs, one must first get the RFC merged into the RFC repository as a markdown file under the rfcs directory. At that point the RFC is accepted and may be implemented with the goal of eventual inclusion into Nix or Nixpkgs. graph TD Start((Start)) --> Draft Draft -->|Ready for Review| Discuss style Draft fill:#008,color:#FFF Discuss[Discuss and Refine] Discuss ---> |On Hold| Draft Discuss --> |Can't Find Shepherds| NoShepherds Discuss --> |Motion for FCP| FCP NoShepherds[Closed - Lack of Interest]:::closed NoShepherds --> |Renewed Interest| Discuss FCP[Final Comment Phase] FCP --> |FCP Canceled| Discuss FCP --> |Accept| Merged FCP --> |Reject| Rejected Merged style Merged fill:#080,color:#FFF Rejected[Closed - Rejected]:::closed Withdrawn[Closed - Withdrawn]:::closed Discuss & Draft --->|Author Withdraws| Withdrawn classDef closed fill:#800,color:#FFF Loading Have a cool idea! Fill in the RFC. Put care into the details: RFCs that do not present convincing motivation, demonstrate understanding of the impact of the design, or are disingenuous about the drawbacks or alternatives tend to be poorly-received. Consider using Semantic Line Breaks in order to get better diffs on later amendments. Consider publishing your RFC as pre-RFC in the forum to gather initial feedback and iron out the remaining typos. In case your RFC is a technical proposal, you might want to prepare a prototype of your idea to firstly make yourself aware of potential pitfalls and also help reviewers understand the RFC. Code may be able to explain some issues in short. Submit a pull request. As a pull request the RFC will receive design feedback from the larger community, and the author should be prepared to revise it in response. For the nomination process for potential members of the RFC Shepherd Team, that is specific to each RFC, anyone interested can either nominate another person or themselves to be a potential member of the RFC Shepherd Team. This can already be done when submitting the PR. The RFC Steering Committee assigns a subset of the nominees to the RFC Shepherd Team and designates a leader for it. This has to be done unanim
Read the full README on GitHub

What Hacker News says

6 sources
I hope something changes there, For stable releases, there is an RFC [1] that proposes to push back the .03 releases to .05 and the .09 releases to .11. This will align the release cycle of NixOS after that of Ubuntu and Fedora. Hopefully, this will lessen the load on testing/fixing high-profile package sets (systemd, GNOME, KDE) and as a consequence leave more time/manpower fixing the longer tail. even if it means cutting 80% of the packages out of the official repo There are different opinions on that. Some contributors believe in a large, single monorepo, while others think nixpkgs is too large. Personally, I have moved from the first group to the second. There are many packages with probably only a handful of users, but they clog up the PR stream. Even worse, many of those packages do not have active maintainers, so they end up being
Read the rest
maintained by people who are long-term nixpkgs maintainers/committers (and typically have a high maintenance load anyway). It's kind of interesting that nixpkgs grew so large, because it's one of the distributions that makes it the easiest to add third-party package sets. I guess it's because the bar for contributing a derivation is low (you basically open a PR and wait until somebody merges it) and because committers rarely reject packages for being to much of a fringe package. [1] https://github.com/NixOS/rfcs/pull/80
In On the Whole CentOS Thing
> Main reason for leaving was that Nix package maintainers have to heavily patch all software. Any widely used distros do this. Plus, the statement that you have to patch all packages is false. In many cases, all you have to do is set the right build flags and environment variables, which is handled by standard helpers in nixpkgs. I'd also like to add that nixpkgs has the most extensive testing for packages compared to any other distros I've seen. > Packaging for nix is more like porting software to another operating system. Dramatic, but again, simply not the case. > note that they have automated tools for patching the most common problems, so the problem is even worse. This is a good thing. Manual patching for the most common problems isn't sustainable, especially if you maintain a large number of packages. Just ask packages maintainers
Read the rest
of any major distros. > I was able to merge some pretty large patches to nix-packages from an anonymous and sketchy-looking github account, and they weren't scrutinized much All packages in nixpkgs has a mandatory review process as you should very well know. As scary as you make it sound, I'm pretty sure at least one committer have taken a look at your code to see if there was anything malicious in it. > Moreover, Nix breaks the chain of trust for the language packages. After a quick look, it seems like you can still use the unmodified erlang package manager? The patched version you've mentioned seems to be there for facilitating creation of Nix packages and it looks like the main intent was to remove the ability to download packages from the internet. If this is the case, it wouldn't be a security problem at all because the dependencies would have to be prefetched and their hashes precomputed. > /nix directory is readable by all users, so you cannot use Nix to manage secrets Why not store secrets in a private location, just like you would on any other distros??? What is it that other distros have that Nix is missing? I'm not seeing your point here. With that being said, note that this feature is being worked on, and systemd very recently introduced a new feature for secrets management [1]. > You cannot install opam packages without dealing with incompatiblities, you cannot easily install games from Gog without dealing with incompatibilities Matbe take a look at buildFHSEnv. > do you really need such degree of reproducibility for your very own dev machine? Yes, it saves me from having to do a clean install of my system every few months. I haven't done a clean install at all the last few years since I started using NixOS. [1]: https://github.com/NixOS/rfcs/pull/59#issuecomment-624723733
In One Week of NixOS
My problem with Nix was not the language, but the very confusing CLI and the way updates were done (nix-channel) and the difficulty of pinning dependencies or documenting how to do that. However, they have been hard at work at a nix CLI 2.0 which is much better, and a new uddating mechanism that is way easier to understand: https://github.com/NixOS/rfcs/pull/49 This gives me hope things are getting better. Also recently I funded a project for improving error messages in Nix https://opencollective.com/nix-errors-enhancement Ther is also now a dedicated Nix Marketing team which are working on improving the website and the documentation
In My experience with NixOS

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.