| 17 Mar 2024 |
infinisil | Pretty sure | 14:02:40 |
infinisil | Can't say I'm a fan of the idea, or at least it won't quite work as is. If you run Hydra for commit X, it calculates programs.sqlite for it, but now you need to push it with commit X+1. If you publish commit X as the channel update, people won't get the latest programs.sqlite. | 14:05:14 |
K900 | Indeed | 14:05:02 |
K900 | Putting it into nixpkgs is a bad idea | 14:05:23 |
K900 | Unless we add LFS | 14:05:32 |
infinisil | Could be fixed by publishing X+1 instead, which probably requires extra permission to do a direct git push to master | 14:05:46 |
K900 | But adding LFS is also a bad idea | 14:05:38 |
infinisil | Ultimately it just feels like git commits is not the tool for this due to their immutability | 14:06:33 |
infinisil | I guess you could use git notes, which can be attached to commits after the fact | 14:06:58 |
Robert Hensing (roberth) | It already writes to a bucket, so it could just be a package that fetches from channels.nixos.org or something | 14:07:25 |
K900 | Honestly I'd much prefer the whole CNF database to exist outside of the channels entirely | 14:07:01 |
K900 | And probably not be versioned at all | 14:07:14 |
K900 | And be updated incrementally | 14:07:23 |
Robert Hensing (roberth) | What's CNF? | 14:07:52 |
infinisil | In reply to @roberthensing:matrix.org It already writes to a bucket, so it could just be a package that fetches from channels.nixos.org or something It won't be able to know which version to fetch though. A Nixpkgs version fetched from git can't know its own commit | 14:08:27 |
K900 | command-not-found | 14:07:59 |
K900 | Which is what programs.sqlite is for | 14:08:06 |
Robert Hensing (roberth) | In reply to @infinisil:matrix.org It won't be able to know which version to fetch though. A Nixpkgs version fetched from git can't know its own commit I don't see why that would be a requirement | 14:09:15 |
K900 | I really don't see any reason to tie it to nixpkgs lifecycle except "we've always done this" which is honestly not a good reason | 14:09:02 |
infinisil | Robert Hensing (roberth): Are you thinking of programsSqlite = builtins.fetchTarball "https://nixos.org/programs.sqlite"? | 14:09:43 |
Robert Hensing (roberth) | It takes the evaluated commit, computes the db, creates a new commit, pushes that to git | 14:09:49 |
K900 | It's not a good example of the kind of postprocessing we'd actually want to do | 14:09:50 |
K900 | On other things | 14:09:54 |
K900 | Because it being tied to a specific nixpkgs version is an implementation detail, not a required in variant | 14:10:26 |
K900 | * Because it being tied to a specific nixpkgs version is an implementation detail, not a required invariant | 14:10:32 |
Robert Hensing (roberth) | In reply to @infinisil:matrix.org Robert Hensing (roberth): Are you thinking of programsSqlite = builtins.fetchTarball "https://nixos.org/programs.sqlite"? more like pkgs.fetchurl ".../programs-${indexedCommit}.sqlite", but yeah | 14:10:38 |
infinisil | Yeah I'm not a fan of that idea | 14:11:10 |
K900 | And also because it's much bigger and much more expensive to build than the other cases I can see | 14:10:51 |
Robert Hensing (roberth) | I don't get it. It would work well for git-based channels | 14:11:41 |
Robert Hensing (roberth) | Currently we don't have any programs.sqlite for those users | 14:11:52 |