I am trying to understand, how the master/nixpkgs-unstable/nixos-unstable-small/nixos-unstable branches work. Here is my current understanding;
-
PRs are almost always merged directly into
master. -
Hydra jobs are ran on (a subset of)
mastercommits. -
nixpkgs-unstable/nixos-unstable-small/nixos-unstablearen’t actually “branches” in the sense that they don’t have their own separate histories, but instead they just point to some oldermastercommits.For example, when some
mastercommit passes all nixos-related builds and tests in Hydra, thenixos-unstableref is updated to point to that specificmastercommit.
Nixpkgs PR progress tracker is a tool that is supposed to indicate, when some PR is available in nixpkgs-unstable / nixos-unstable-small / nixos-unstable. However, it’s a bit confusing.
For example, consider PR 339619. Currently, the PR tracker indicates that this PR is not yet available in nixos-unstable:

However, clicking on the nixos-unstable link takes me to the nixos:trunk-combined:tested Hydra jobset page. I am assuming, that each column here represents a single master commit:
So in this case, the latest successful
nixos-unstable job ought to be 274219620 which claims to be the job for nixos-24.11pre687768.27e30d177e57 and for “changes 06cf0e1d to 27e30d17”. This makes sense, as the nixos-unstable branch on GitHub currently also points to commit 27e30d177e57.
However, what I don’t understand is that PR 339619 was actually merged before 27e30d177e57 (in commit 47eb919436af to be precise). In fact, 27e30d177e57 was merged 3 days ago while 47eb919436af was merged 8 days ago.
So why is PR 339619 still not in nixos-unstable according to the PR tracker?
