[30 seconds] Welcome! Quick show of hands: Who has waited for a merged Nixpkgs PR that just wouldn't show up? This is a 5-minute guide to understanding why that happens and how to track it.
[30 seconds] This is the frustrating experience. You see the PR merged on GitHub, you're excited, but running nix flake update gives you nothing. The fix is lost somewhere in the Nixpkgs pipeline.
[45 seconds] Think of Nixpkgs like a highway system. Small changes take the fast lane: straight from master to nixos-unstable. But large changes that rebuild thousands of packages? They take the slow lane through staging. Staging gets merged to staging-next about once per week according to CONTRIBUTING.md. See [STANGING](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#staging) documentation.
[30 seconds] Why separate lanes? When you update Go or Python, suddenly 5000+ packages need rebuilding. That's days of compute time on Hydra. Plus higher risk of something breaking. So Nixpkgs batches these together in staging to test them as a group.
[30 seconds] Here's the secret: Just look at the PR labels! The rebuild count label tells you which lane. 5001+ rebuilds? Staging. Under 500? Master. Security label means it should also get backported to stable releases. Labels are your map.
[20 seconds] Example: Go 1.25.6 security update. Labels show 5001+ rebuilds plus security severity. This went through staging, took the slow lane, and eventually reached users. The labels predicted this path perfectly.
[45 seconds] Don't guess, track! Use GitHub CLI to get the merge commit, then use the GitHub API to compare branches. If status returns 'ahead' or 'identical', your commit is in that branch.
[20 seconds] Quick reference card. Under 500 rebuilds? Fast lane. Over 1000? Definitely staging, so be patient. Always check status.nixos.org to see current channel status and any build failures.
[30 seconds] Four key points: One, merging doesn't mean availability. Two, labels tell you everything. Three, be patient with staging. Four, track with the commands instead of guessing. That's it!
[15 seconds] Thanks! Slides are on GitHub. Questions? Remember: check the labels, use the tracker, and be patient with staging. Happy Nixing!