qis-compiler contains a guppylang dev-dependency, used to define test examples.
To avoid open dependency cycles, the guppy version is pinned to a commit there.
While this works, it requires the CI to install LLVM and whatnot to be able to compile guppy and related dependencies from source when interacting with qis-compiler.
I tried to move that dependency to the workspace root in #1200, and was stopped by having to infect every CI with the new requirements.
We should instead remove the guppy dev dependency altogether and include pre-compiled example hugrs in the same way we defined the ones in test_files/guppy_optimisation. In particular,
- Guppy example files should be self-contained uv scripts defining the guppy dependency in their header. These do not need to be updated with new guppy versions unless required.
- Add a
just directive to re-compile the hugrs from the scripts, and ensure it's up-to-date in CI.
- Tests should include the
.hugr envelopes directly, without requiring the guppy library to run.
qis-compilercontains a guppylang dev-dependency, used to define test examples.To avoid open dependency cycles, the
guppyversion is pinned to a commit there.While this works, it requires the CI to install LLVM and whatnot to be able to compile guppy and related dependencies from source when interacting with
qis-compiler.I tried to move that dependency to the workspace root in #1200, and was stopped by having to infect every CI with the new requirements.
We should instead remove the guppy dev dependency altogether and include pre-compiled example hugrs in the same way we defined the ones in
test_files/guppy_optimisation. In particular,justdirective to re-compile the hugrs from the scripts, and ensure it's up-to-date in CI..hugrenvelopes directly, without requiring the guppy library to run.