| 20 Mar 2024 |
Philip Taron (UTC-8) | In check-by-name.yml, there's a pinned version of nixpkgs-check-by-name. | 23:00:18 |
Philip Taron (UTC-8) | Yeah | 23:00:20 |
Philip Taron (UTC-8) | * Yeah, exactly. | 23:00:24 |
infinisil | Oh you mean to not do the pinning anymore? | 23:00:55 |
infinisil | Oh right you said that | 23:01:04 |
Philip Taron (UTC-8) | Yes. The version in nixpkgs is the pinned version. | 23:01:10 |
Philip Taron (UTC-8) | And hence cached and build however is right for running in nixpkgs CI! | 23:01:37 |
Philip Taron (UTC-8) | Can absolutely be static if need be. | 23:01:49 |
infinisil | That's problematic for PRs that change dependencies of the tool and would take a long time to build | 23:02:15 |
infinisil | I think the pinning is very necessary, see https://github.com/NixOS/nixpkgs/pull/281374 | 23:02:23 |
infinisil | Well not sure if that's the right thing to link to actually | 23:03:04 |
Philip Taron (UTC-8) | Yeah, I think that's covered by the move to a separate repo. | 23:03:26 |
infinisil | Oh it's here: https://github.com/NixOS/nixpkgs/tree/master/pkgs/test/nixpkgs-check-by-name/scripts#update-pinned-toolsh | 23:03:37 |
infinisil | See the "Why not just build the tooling right from the PRs Nixpkgs version?" part | 23:03:46 |
Philip Taron (UTC-8) | OK, those are pretty compelling. | 23:04:21 |
infinisil | Oh what would work is to also pin the Nixpkgs version for the tool | 23:05:14 |
infinisil | So it's (import pinnedNixpkgs {}).callPackage instead of pkgs.callPackage | 23:05:38 |
infinisil | Well you'd still need to have it be cached somewhere though.. | 23:06:19 |
Philip Taron (UTC-8) | We can do a three-step release process.
- Validate in the check-by-name repo; make a release.
- Update nixpkgs repo with the new release; wait for it to make its way into the cache.
- Update the pin to the nixpkgs-built version.
That's lame and laborious, but it's all-cache-no-brakes.
| 23:08:20 |
infinisil | Part of the reason I wanted to move it to a separate repo was to have a separate Hydra jobset, such that we didn't need to wait for channel updates 😅 | 23:09:19 |
infinisil | Using GitHub releases as a cache (I guess it's not a cache then really, just a build artifacts storage) sounds decent | 23:10:51 |
infinisil | It should be possible with nix-store --export without too much trouble | 23:11:21 |
Philip Taron (UTC-8) | 🫰 | 23:11:37 |
Philip Taron (UTC-8) | * 🤞 | 23:11:57 |
infinisil | Lol I was wondering about that emoji haha | 23:12:17 |
Philip Taron (UTC-8) | Wrong hand gesture. 😬 | 23:12:31 |
Philip Taron (UTC-8) | Crossed something! | 23:12:45 |
infinisil | Oh and if we use GitHub releases to do the distribution, it also makes sense to pin it to the release instead of the store path | 23:13:42 |
Philip Taron (UTC-8) | Yes. | 23:13:50 |
infinisil | One minor problem: It's non-trivial like this to allow people to run it locally | 23:14:37 |