Nixpkgs has 3 active development branches, master, staging-next and staging. The rate at which changes are merged is high and still seems to be increasing. It is important to merge master into staging-next and staging-next into staging regularly to ensure those branches are up to date and to reduce the amount of merge conflicts. What is regularly? Approximately daily.
For a while now it’s been mostly @vcunat and me that have been merging these branches. I would like to ask other @nixpkgs-committers that are interested in this to help out with it.
IMO merging itself usually isn’t difficult, but watching for large regressions (in master..staging-next) and resolving them can be quite time-consuming, especially as mass rebuilds tend to trigger various transient failures.
master is typically not merged directly into staging, but through staging-next. That way, staging will contain all commits that are in master, staging-next and staging.
I think the most compelling reason is that the staging → staging-next step is quite infrequent – a few times a month, usually. And you do need to sync staging-next with master more often, for conflict resolution and to pull in some rebuilds (conflicts would have to be resolved twice due to that blocked edge – once when merging master → staging and once for staging-next → master).