Skip to content

[anneal] Move setup and CI onto Nix archive#3437

Open
mdittmer wants to merge 12 commits into
G4a5griqkxk56ry227bqqe3kfzp7s2dmzfrom
Gxgfgcyk7bankwwpmo3siq62v66zepcaj
Open

[anneal] Move setup and CI onto Nix archive#3437
mdittmer wants to merge 12 commits into
G4a5griqkxk56ry227bqqe3kfzp7s2dmzfrom
Gxgfgcyk7bankwwpmo3siq62v66zepcaj

Conversation

@mdittmer
Copy link
Copy Markdown
Collaborator

@mdittmer mdittmer commented Jun 5, 2026

Share the exocrate installer between Anneal and v2, and have non-v2 Anneal install the same Nix-built omnibus archive that v2 already produces. The generated Lean workspace can then use the archive layout directly instead of cloning and rewriting Lake dependencies at runtime.

Update Anneal CI to build the archive with Nix, install it before root tests and example checks, and run the Lean-heavy integration suite serially. The workflow no longer depends on a Docker image that pre-bakes the old setup output.


⬇️ Download this PR

Branch

git fetch origin refs/heads/Gxgfgcyk7bankwwpmo3siq62v66zepcaj && git checkout -b pr-Gxgfgcyk7bankwwpmo3siq62v66zepcaj FETCH_HEAD

Checkout

git fetch origin refs/heads/Gxgfgcyk7bankwwpmo3siq62v66zepcaj && git checkout FETCH_HEAD

Cherry Pick

git fetch origin refs/heads/Gxgfgcyk7bankwwpmo3siq62v66zepcaj && git cherry-pick FETCH_HEAD

Pull

git pull origin refs/heads/Gxgfgcyk7bankwwpmo3siq62v66zepcaj

Stacked PRs enabled by GHerrit.

mdittmer added 12 commits June 5, 2026 14:37
- Add nix derivations for exocrate
- Add `setup` sub-command to locate-or-install exocrate
- Add integration test for "developer mode" `setup` that presumes local
  exocrate archive
- Add github workflows to:
  - Warm nix cache
  - Locally link exocrate archive from nix, then run all tests

gherrit-pr-id: Gwhroikc5idscowxamayknlke2uiddzv3
gherrit-pr-id: Gidzrynm2d4gpg6tdthfg66sexvlcu4nt
TAG=agy

gherrit-pr-id: Gisb7egnyltdoxlay3of6lmsjbtlok7ct
TAG=agy

gherrit-pr-id: Gbbpbt76nsgp2ohpclea46vot5joxx7b5
TAG=agy

gherrit-pr-id: Gjnh4bziqtksdvg43zzll4732lxlcuss3
…tifacts

TAG=agy

gherrit-pr-id: G2xsxxkfz5kle6aunmehujqcrly3rjr4f
… source code

TAG=agy

gherrit-pr-id: Gzq7escrh5c2qcrgidomnfaxbsi6xn7yu
gherrit-pr-id: G3ub4smvhm3rbp6d53jhwn3knjeaw7ugn
…egration tests

gherrit-pr-id: Gnafivbpqcaatsvsxamgsjcudchscvaae
Notes about largely unreviewed generated change:

- Last test assertion looks dubious. Should probably switch all LLBC
  test verifications to something that properly parses the LLBC and
  makes more precise assertions.

- Integration and structure requires more thought. It seems that only
  the scanner "knows" about this behaviour; is it being being plumbed
  through cmdline args and through run_charon?

- New test (and probably other tests) should have their setup procedures
  overhauled/simplified. In general, I would expect the test to create
  a fixture, and then be able to pass largely static data to
  `run_charon()`, but right now it's manually setting up locked roots,
  etc., etc.

gherrit-pr-id: Gxsjyiksx4pd6h5gzup7ensn4qtrxu6s3
Teach exocrate to run a one-time fixup after fresh archive extraction while preserving archive permission bits. The hook lets Anneal rewrite install-root placeholders in Lake trace files and restore the installed toolchain to read-only form before normal use.

gherrit-pr-id: G4a5griqkxk56ry227bqqe3kfzp7s2dmz
Share the exocrate installer between Anneal and v2, and have non-v2 Anneal install the same Nix-built omnibus archive that v2 already produces. The generated Lean workspace can then use the archive layout directly instead of cloning and rewriting Lake dependencies at runtime.

Update Anneal CI to build the archive with Nix, install it before root tests and example checks, and run the Lean-heavy integration suite serially. The workflow no longer depends on a Docker image that pre-bakes the old setup output.

gherrit-pr-id: Gxgfgcyk7bankwwpmo3siq62v66zepcaj
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.85%. Comparing base (ab47687) to head (fc19233).

Additional details and impacted files
@@                        Coverage Diff                         @@
##           G4a5griqkxk56ry227bqqe3kfzp7s2dmz    #3437   +/-   ##
==================================================================
  Coverage                              91.85%   91.85%           
==================================================================
  Files                                     20       20           
  Lines                                   6093     6093           
==================================================================
  Hits                                    5597     5597           
  Misses                                   496      496           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joshlf joshlf force-pushed the G4a5griqkxk56ry227bqqe3kfzp7s2dmz branch 6 times, most recently from a31da76 to 856fa5a Compare June 5, 2026 20:03
@joshlf joshlf force-pushed the G4a5griqkxk56ry227bqqe3kfzp7s2dmz branch 13 times, most recently from 81becbe to a943b6b Compare June 7, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants