Repository navigation
Releases: andreabedini/cabal-solver-plan
Releases · andreabedini/cabal-solver-plan
Release list
v0.1.0.0
Immutable
release. Only release title and notes can be modified.
The first release of cabal-solver-plan, which runs cabal-install's dependency solver with every input given on the command line and prints the build plan: no cabal.project and no cabal-install configuration.
Highlights
- cabal-install's own solver. It uses the solver from the cabal-install 3.18 library, with cabal-install's defaults. Solver settings are
--X/--no-Xswitches named as in cabal-install, and-w/--with-compilerworks as it does in cabal. - Every input on the command line. The compiler (a real
ghc, or just its id with--compiler-id) and platform, package dbs, package indexes, local packages, constraints, flags and solver settings. A plan depends only on what you give it. - Reproducible plans. Read the index from a file with
--index, pin it with--index-state, or reuse a downloaded repository with--offline. The same command then gives the same plan on any machine. - Plans for another machine. With
--compiler-id,--platformand--package-dbyou can plan for a GHC you don't have installed, or for another OS or architecture. - Plans for other build systems.
--jsonlists every unit to build, with its component, flags and dependencies. For each package it also gives the sha256 and size of the source tarball and the revision, sha256 and size of its.cabalfile. The format is described in docs/plan-format.md. - Built for scripts and humans. The plan goes to stdout. Progress and errors go to stderr, and
-vadds the solver's trace. The exit status is 0 for a plan, 1 when there is no plan, 2 for a usage error and 3 for any other error.--helplists every option, in groups, with examples.
It does not build anything or download source packages, plan test suites or benchmarks, or plan Backpack packages with --json. See the README for examples.
Binaries
Each archive contains a stripped cabal-solver-plan built with GHC 9.14.1. Every archive passed the golden tests and a smoke test with a real GHC on a different runner from the one that built it.
| Platform | Archive |
|---|---|
| Linux x86_64 | cabal-solver-plan-0.1.0.0-x86_64-linux.tar.gz |
| Linux aarch64 | cabal-solver-plan-0.1.0.0-aarch64-linux.tar.gz |
| macOS x86_64 | cabal-solver-plan-0.1.0.0-x86_64-macos.tar.gz |
| macOS arm64 | cabal-solver-plan-0.1.0.0-aarch64-macos.tar.gz |
| Windows x86_64 | cabal-solver-plan-0.1.0.0-x86_64-windows.zip |
- The Linux binaries need glibc 2.34 or later,
libgmp.so.10andlibz.so.1. - The macOS binaries link only system libraries. They are not notarised, so remove the quarantine attribute before running one:
xattr -d com.apple.quarantine cabal-solver-plan. cabal-solver-plan-0.1.0.0.tar.gzis the source distribution. It builds with GHC 9.12 or 9.14.
Verifying
sha256sum -c SHA256SUMS --ignore-missing
gh attestation verify cabal-solver-plan-0.1.0.0-x86_64-linux.tar.gz -R andreabedini/cabal-solver-plan