RFC 0136 FCP, A plan to stabilize the new CLI and Flakes incrementally

The Final Comment Period for RFC 0136 has started and, barring any blocking issues, will be merged after 2023-08-05. Your opinions, comments, and approvals are welcome!



How fast are we going to get through these steps?

  • Step 0: Audit, refine, and stabilize the store-only installable-free CLI
  • Step 1: Split out a store-only Nix
  • Step 2: Audit, refine, and stabilize the store-only Nix CLI
  • Step 3: Attempt likewise splitting a store-and-language-only Nix
  • Step 4: Audit, refine, and stabilize the store-and-language-only Nix CLI
  • Step 5: Audit, refine, and stabilize Flakes itself

I have the impression that this plan commits us to 4-5 years of stabilization.

EDIT: anyways, I’m rooting for the Nix team!


We seem to be in that kind of game regardless of the concrete proposal in the RFC. Nix carries enough weight that erring towards conservatism seems to be obviously correct.

@Ericson2314‘s proposal to focus on lower level, programmable interfaces and stabilizing those rather than spending energy on the upper, more end-user-facing layers promises to open up the agility for downstream developers that cannot be mustered for Nix due to existing constraints.

The recent activities around answering governance questions are the natural complement to that strategy: how can we make sure community efforts are made visible appropriately and organized in a way users can rely on? In other words: how can we make best use of systematically opening Nix for extension?


Does this mean that we are (potentially) years away from official documentation of flakes?

At least from what I understand from the end of this closed issue for nix.dev, there seems to be a huge reluctance to document flakes before complete stability. To be clear I completely understand why one would take that stance, it just seems (to me) to be at rather largely at odds with the increasing adoption of flakes I’ve seen in the community.

I’ve been using flakes for quite a while now (and enjoy doing so) and although my usage isn’t anywhere near as extensive as I’ve seen from others, it would be unfortunate to have to continue to rely on unofficial docs for that extended length of time :confused:


RFC 0136 is accepted and merged. (https://github.com/NixOS/rfcs/pull/136)

@zimbatm: speed of going through them is highly dependent on contributions and participation. The Nix team is particularly interested in stabilization, and this RFC provides a plan for incremental progress.

@Zen: let’s first see what kind of progress we can make on steps 1,2,3,4. These a seen as prerequisites (eg: nix-command) to flake stabilization anyway. On the other hand, with such a plan in place, it may now be possible to start official nix-command and flake documentation efforts (@fricklerhandwerk ?).