Supplemental library for hedgehog.
This library provides additional utilities and helpers for working with the Hedgehog property-based testing framework.
Add to your package.yaml or .cabal file:
dependencies:
- hedgehog-extrasThis project has a hybrid automated/manual release flow:
When you push a version bump to main, CI automatically creates a git tag:
- Update [CHANGELOG.md] to include the Unreleased changes in the changelog for the new version.
- Update
hedgehog-extras.cabaland setversion:to the new version - Commit and push to main:
git commit -m "Bump version to X.Y.Z.W" && git push origin main - CI automatically creates and pushes tag
vX.Y.Z.W - The release workflow then runs automatically
Alternatively, you can manually create and push tags:
- Update
hedgehog-extras.cabalwith the new version - Commit changes:
git commit -m "Release X.Y.Z.W" - Create tag:
git tag -a vX.Y.Z.W -m "Release version X.Y.Z.W" - Push both:
git push origin main && git push origin vX.Y.Z.W
When a tag is pushed (either automatically or manually), GitHub Actions:
- Runs the full test suite across all platforms and GHC versions
- Validates the cabal project with
cabal check - Creates source distributions (
cabal v2-sdist) - Uploads to Hackage as a candidate (requires
HACKAGE_USERandHACKAGE_PASSsecrets) - Generates release notes from git commit history
- Creates a GitHub Release
After the workflow completes:
- Check the candidate at https://hackage.haskell.org/package/hedgehog-extras/candidates
- Test the candidate package
- When ready, publish it from the Hackage candidate page
- The workflow is defined in
.github/workflows/haskell.yml - Packages are uploaded as candidates, not published releases
- Release notes are auto-generated from git commits since the last tag
- The workflow requires
HACKAGE_USERandHACKAGE_PASSrepository secrets - Workflow requires
contents: writepermission (already configured)
Copyright 2025 Input Output Global, Inc.
Licensed under the Apache License, Version 2.0. See LICENSE for details.