Skip to content

Publish Haskell bindings to Hackage#428

Open
jupblb wants to merge 3 commits into
mainfrom
michal/hackage
Open

Publish Haskell bindings to Hackage#428
jupblb wants to merge 3 commits into
mainfrom
michal/hackage

Conversation

@jupblb
Copy link
Copy Markdown
Collaborator

@jupblb jupblb commented Jun 1, 2026

Wires up Haskell binding publication to Hackage. Adds a publish-haskell-bindings job to release.yaml (alongside the existing Rust/JVM/Go publish jobs) and prepares bindings/haskell/scip.cabal for Hackage with proper metadata bounds, a source-repository pointer, and GHC2024 as the default language.

Post-merge: claim the scip name on Hackage

Hackage versions are immutable — once 0.7.1 is published it can never be re-uploaded. The first publish therefore goes through the candidate channel so we can preview the rendered package page before committing.

From a maintainer's machine on main:

cd bindings/haskell
nix develop -c cabal sdist
nix develop -c cabal upload --token="$HACKAGE_TOKEN" \
    dist-newstyle/sdist/scip-0.7.1.tar.gz

Review the candidate at https://hackage.haskell.org/package/scip-0.7.1/candidate — verify the rendered README, that the source-repository link targets bindings/haskell, the license is detected as Apache-2.0, and the dependency bounds look right.

When satisfied, publish:

nix develop -c cabal upload --publish --token="$HACKAGE_TOKEN" \
    dist-newstyle/sdist/scip-0.7.1.tar.gz

(Or click Publish candidate on the Hackage UI.)

This claims the scip name for the Hackage account behind HACKAGE_TOKEN and seeds the maintainer group with that account. From the next release onwards the workflow handles publication automatically.

@jupblb jupblb requested review from emidoots, eseliger and trly June 1, 2026 12:30
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