How to interpret the Nixpkgs PR Tracker

I am trying to understand, how the master/nixpkgs-unstable/nixos-unstable-small/nixos-unstable branches work. Here is my current understanding;

  1. PRs are almost always merged directly into master.

  2. Hydra jobs are ran on (a subset of) master commits.

  3. nixpkgs-unstable / nixos-unstable-small / nixos-unstable aren’t actually “branches” in the sense that they don’t have their own separate histories, but instead they just point to some older master commits.

    For example, when some master commit passes all nixos-related builds and tests in Hydra, the nixos-unstable ref is updated to point to that specific master commit.

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:
image
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?

The tracker you’re using just seems to be incorrect, then.
I’ve mostly stuck to using another tracker by ocfox and that has the correct info:
https://nixpkgs-tracker.ocfox.me/?pr=339619

They are literally branches, you can check the GitHub repo, but those branches only advance when Hydra tells them to. Overall you have the right idea. PRs are sent to master (or staging, eventually merged into master via staging-next), not those branches.

Same with PRs being sent to release-24.05 or staging-24.05 to be built for nixos-24.05 and nixos-24.05-small.

2 Likes

Hmm, I thought that was the “semi-official” tracker. What with the URL being “nixpk.gs”.

One more question then. Is there some simple way to see, which commits were the HEAD of nixos-unstable previously. So, for instance, if I wanted to find a commit that passed all nixos-unstable Hydra tests a month ago or the first passing commit after a certain PR was merged.

Just picking some commit from the git history is seemingly insufficient, because there is no way to determine if that commit triggered and passed all the relevant Hydra jobs.

The only official trackers would be hydra or of course, the git repo itself.

Yes, you’d have to look at the nixos:trunk-combined:tested page that you shared and look at the successful jobsets.

1 Like