Skip to content

Releases: andreabedini/cabal-solver-plan

Release list

v0.1.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 15:07
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-X switches named as in cabal-install, and -w/--with-compiler works 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, --platform and --package-db you can plan for a GHC you don't have installed, or for another OS or architecture.
  • Plans for other build systems. --json lists 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 .cabal file. 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 -v adds 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. --help lists 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.10 and libz.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.gz is 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