How does channel update?

Anyone with commit access can push changes to either master or one of the release-XX.XX branches.

Each channel has an associated jobset on Hydra (Nix CI) that is a collection of individual jobs. A job roughly corresponds to building a particular package, which itself may depend on other packages built by other jobs.

Before a channel can update, its associated jobset must be finished building, though the building of some jobs may fail.

As long as certain special jobs -- unstable for nixpkgs, and tested for nixos -- build successfully, the channel can update. The role of these special jobs is to ensure that essential functionality is present on each channel update.

There are two major differences between those jobsets:

  • nixpkgs-unstable
    • builds all packages for supported platforms (Linux, Darwin)
    • unstable job that consists of most commonly used packages
  • nixos-*
    • builds all packages and NixOS machinery only for Linux
    • tested job that consists of mostly NixOS tests firing up qemu instances with different kinds of configurations

For a channel to be updated two conditions need to be satisfied:

  • Particular jobset evaluation needs to be completely built ie. no more queued jobs, even if some jobs may fail
  • Particular jobset evaluation's tested/unstable job needs to be built succesfully

The server has a cronjob for which nixos-channel-scripts are executed and poll for the newest jobset that satisfies the above two conditions and trigger a channel update.

Once triggered, release files such as ISOs are copied. For the NixOS channel command-not-found index is generated, which can take some time since it has to fetch all packages.

nixpkgs is quickly updated since none of the above needs to happen once a channel update is triggered.

Channel Last updated Commit Hydra job for tests
nixos-unstable 19 hours ago 39892985b00 nixos/trunk-combined/tested
nixos-unstable-small 4 hours ago b6f8e000605 nixos/unstable-small/tested
nixpkgs-unstable 2 days ago 1fe82110feb nixpkgs/trunk/unstable
nixos-20.03 8 hours ago 67c24f6f8a7 nixos/release-20.03/tested
nixos-20.03-small 5 days ago af8fe52461c nixos/release-20.03-small/tested
nixos-19.09 6 hours ago 57a4956bc25 nixos/release-19.09/tested
nixos-19.09-small 1 day ago 57a4956bc25 nixos/release-19.09-small/tested
nixpkgs-19.09-darwin 1 day ago 57a4956bc25 nixpkgs/nixpkgs-19.09-darwin/darwin-tested
nixos-19.03 7 days ago 34c7eb7545d nixos/release-19.03/tested
nixos-19.03-small 14 days ago 34c7eb7545d nixos/release-19.03-small/tested
nixpkgs-19.03-darwin 14 days ago 34c7eb7545d nixpkgs/nixpkgs-19.03-darwin/darwin-tested
nixos-18.09 282 days ago a7e559a5504 nixos/release-18.09/tested
nixos-18.09-small 282 days ago a7e559a5504 nixos/release-18.09-small/tested
nixpkgs-18.09-darwin 52 days ago e99df8643c8 nixpkgs/nixpkgs-18.09-darwin/darwin-tested
nixos-18.03 370 days ago cb0e20d6db9 nixos/release-18.03/tested
nixos-18.03-small 210 days ago 4d48e8106f9 nixos/release-18.03-small/tested
nixpkgs-18.03-darwin 210 days ago 4d48e8106f9 nixpkgs/nixpkgs-18.03-darwin/darwin-tested
nixos-17.09 529 days ago 14f9ee66e63 nixos/release-17.09/tested
nixos-17.09-small 514 days ago 24a7883c234 nixos/release-17.09-small/tested
nixpkgs-17.09-darwin 514 days ago 24a7883c234 nixpkgs/nixpkgs-17.09-darwin/darwin-tested
nixos-17.03 732 days ago 78e9665b48f nixos/release-17.03/tested
nixos-17.03-small 689 days ago 2c1838ab99b nixos/release-17.03-small/tested
nixos-16.09 1008 days ago 25f4906da6 nixos/release-16.09/tested
nixos-16.09-small 1008 days ago 25f4906da6 nixos/release-16.09-small/tested
nixos-16.03 1061 days ago dda40aa8d1 nixos/release-16.03/tested
nixos-16.03-small 1061 days ago dda40aa8d1 nixos/release-16.03-small/tested
nixos-15.09 1172 days ago 3727911 nixos/release-15.09/tested
nixos-15.09-small 1172 days ago 3727911 nixos/release-15.09-small/tested
nixos-14.12 1609 days ago b373bf9 nixos/release-14.12/tested
nixos-14.12-small 1449 days ago c191689 nixos/release-14.12-small/tested
nixos-14.04 1643 days ago 8a3eea0 nixos/release-14.04/tested
nixos-14.04-small 1643 days ago 8a3eea0 nixos/release-14.04-small/tested
nixos-13.10 1979 days ago 91e952a nixos/release-13.10/tested

API | Made by Georges Dubus, code is on github