Release process: staging branches?

#1

I read https://nixos.org/nixos/manual/index.html#ch-releases, but it doesn’t mention the staging, staging-next and staging-<release> branches.

I understand that some branches match channels e.g.:

  • nixos-unstable channel = master branch
  • nixos-19.03 channel = release-19.03 branch

What’s the point of the staging.* branches? From what I see, staging-next is merged into staging and then into master.
But PRs have different targets. What would make a specific change go into staging and not directly into master?

#2

It’s actually the other way around. PRs that require many rebuilds get merged into staging. Every once in a while, the current staging gets forked off into staging-next. The purpose of staging-next is to let the current rebuild finish, detect regressions, stabilize. staging-next is then merged into master. See https://github.com/NixOS/rfcs/pull/26 for details.

3 Likes
#3

Have a look at https://github.com/NixOS/rfcs/pull/26 for an explanation.

1 Like
#4

Thanks for explaining and linking to the RFC. :slight_smile: