-
Notifications
You must be signed in to change notification settings - Fork 13
Description
The current CI setup involves nix develop run. To determine what compiler version this involves (which is specified as rust-bin.stable.latest.default, you need to open flake.lock, find the git ref for rust-overlay, download that commit, search through its manifests directory, and find that the "latest" rustc is 1.88.0).
Aside from this being totally opaque and undiscoverable, flakes do not support any sort of parameterization, so we can't adapt this to test with multiple compiler versions (other than by hardcoding them into the flake, which means that we cannot run them as separate Github Actions). As near as I can tell this has been a WONTFIX for the better part of a decade and is probably the #1 reason that I personally never use flakes.
nix develop is also not a hermetic way to run things. It has Internet access, and any wasm-pack-based tests that we do will access the Internet. So it's not like we're actually pinning our tooling by doing this.
I suggest that we move from this flake-based thing to the rust-bitcoin-maintainer-tools CI infrastructure, which supports defining a large matrix of feature flags and compiler versions, as well as using simple flat files and GA cronjobs to update pins.