Is channels.nix.gsc.io active or is there an alternative?

I have been made aware of https://channels.nix.gsc.io/ a while ago:

The site lists all commits that were successfully build by hydra.nixos.org.

Today I wanted to use it to bisect a problem I have with my latest nixpkgs update and I noticed that the commits listed are quite old:

  • the latest commit for nixos-unstable is 7084250df3d7f9735087d3234407f3c1fc2400e3 from May
  • for 23.05 the history list just has a single entry which also is from May

Is this site still maintained? Who is maintnaing it? Is there an alternative?

1 Like

Whole gsc.io is @grahamc I believe.

If you follow the master branch in first-parent fashion, almost everything will have binaries in cache.nixos.org – so I don’t think the tool is really useful for this purpose.

2 Likes

so git log --first-parent - cool, TIL!

1 Like

That’s in my default log-viewing alias for years, for all repos. What I haven’t really tried yet is git bisect start --first-parent.

2 Likes

Yeah, thanks for the @. I maintained that in my spare time for a long time, and it worked pretty well. However, life has gotten busy and I’ve not been able to maintain it properly. One option going forward could be fetching the release data from FlakeHub, since it also follows channel updates using infra that is monitored and run by a team instead of an individual. It might make sense for the Nixpkgs repo to push directly in GitHub Actions whenever the channel branches are updated.

Something like this could work: https://github.com/grahamc/test2/blob/a766ae3b262cf5a234d8588423e37fc8e665bfb9/.github/workflows/test.yml (this is a quick prototype I put together which does actually work correctly, but I’m sure a different implementation would be good :).)

Recently I opened Automatically updated nixos channel pins by infinisil · Pull Request #252057 · NixOS/nixpkgs · GitHub which could be extended to include all channel history and expose it under lib.channels itself, this way we wouldn’t have to rely on anything other than Nixpkgs itself. The self-referential nature is a bit ugly, but I don’t see any good reason why it would be problematic.

By way of update: FlakeHub has a record of all the NixOS 23.05 releases, and roughly 9 months of nixos-unstable releases. That means you can use our new CLI to help bisect. There’s details in our my post, `fh`, the CLI for FlakeHub, but for a quick taste:

$ fh list releases nixos/nixpkgs | grep 2305 | cut -d- -f2
453bb832f715dd6e51004c72dbd59b1556d554e1
c7ff1b9b95620ce8728c0d7bd501c458e6da9e04
aaef163eac75c2ac7f882c1fae4e0c08aa18d186
572d26930456132e7f2035340e3d88b36a5e9b6e

They’re ordered by semver, so the oldest releases are at the top, and the newest releases are at the end.

I recently found this thread because I wanted to do a git bisect in nixpkgs.

I want to report that I tried --first-parent and it worked well. I ran a git bisect that looked like the following:

$ git bisect start --first-parent

This did successfully only pick merge commits, and at least all the merge commits that I tested were fully cached by Hydra. So this is significantly nicer than doing a bisect without --first-parent. It seems to remove the need to look at channels.nix.gsc.io while doing a bisect and manually pick commits.

1 Like