# Release process: staging branches?

**URL:** https://discourse.nixos.org/t/release-process-staging-branches/2799
**Category:** Development
**Created:** [April 29, 2019, 5:48pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799 "2019-04-29T17:48:12Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![angristan](https://discourse.nixos.org/user_avatar/discourse.nixos.org/angristan/32/1211_2.png) [@angristan](https://discourse.nixos.org/u/angristan)
#### Post date: [April 29, 2019, 5:48pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/1 "2019-04-29T17:48:12Z")

</div>

I read [NixOS 23.11 manual | Nix & NixOS](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`?

---

<div class="post-metadata">

### Author: ![timokau](https://discourse.nixos.org/user_avatar/discourse.nixos.org/timokau/32/40_2.png) [@timokau](https://discourse.nixos.org/u/timokau)
#### Post date: [April 29, 2019, 6:05pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/2 "2019-04-29T18:05:00Z")

</div>

> [@angristan](#):
>
> What’s the point of the `staging.*` branches? From what I see, `staging-next` is merged into `staging` and then into `master`.

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](https://github.com/NixOS/rfcs/pull/26) for details.

---

<div class="post-metadata">

### Author: ![FRidh](https://discourse.nixos.org/user_avatar/discourse.nixos.org/fridh/32/7643_2.png) [@FRidh](https://discourse.nixos.org/u/FRidh)
#### Post date: [April 29, 2019, 6:05pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/3 "2019-04-29T18:05:10Z")

</div>

Have a look at [staging workflow by vcunat · Pull Request #26 · NixOS/rfcs · GitHub](https://github.com/NixOS/rfcs/pull/26) for an explanation.

---

<div class="post-metadata">

### Author: ![angristan](https://discourse.nixos.org/user_avatar/discourse.nixos.org/angristan/32/1211_2.png) [@angristan](https://discourse.nixos.org/u/angristan)
#### Post date: [April 29, 2019, 10:24pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/4 "2019-04-29T22:24:00Z")

</div>

Thanks for explaining and linking to the RFC. 🙂

---

<div class="post-metadata">

### Author: ![luochen1990](https://discourse.nixos.org/user_avatar/discourse.nixos.org/luochen1990/32/3092_2.png) [@luochen1990](https://discourse.nixos.org/u/luochen1990)
#### Post date: [February 2, 2022, 3:08pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/5 "2022-02-02T15:08:36Z")

</div>

Thanks for this RFC link, but it didn’t tell how the unstable branch is produced, any more informantion about that?

---

<div class="post-metadata">

### Author: ![vcunat](https://discourse.nixos.org/user_avatar/discourse.nixos.org/vcunat/32/11_2.png) [@vcunat](https://discourse.nixos.org/u/vcunat)
#### Post date: [February 2, 2022, 4:04pm UTC](https://discourse.nixos.org/t/release-process-staging-branches/2799/6 "2022-02-02T16:04:21Z")

</div>

Here’s info on how channels update (and the corresponding branches like `nixos-unstable`): [Nix channels - NixOS Wiki](https://nixos.wiki/wiki/Nix_channels#Channel_update_process)

2025 EDIT: as I see this link is still popular, you should instead use the new wiki:

> **[Channel branches - NixOS Wiki](https://wiki.nixos.org/wiki/Channel_branches#Internal_channel_update_process)**
>
> Nix channels provide a structured and reliable way to access package collections and NixOS configurations from the Nixpkgs repository. Unlike directly accessing the frequently updated master branch of Nixpkgs which receives new commits before...
