Skip to content

input-output-hk/hedgehog-extras

Repository files navigation

hedgehog-extras

Dependency Status CI

Supplemental library for hedgehog.

About

This library provides additional utilities and helpers for working with the Hedgehog property-based testing framework.

Installation

Add to your package.yaml or .cabal file:

dependencies:
  - hedgehog-extras

Releasing

This project has a hybrid automated/manual release flow:

Automatic Tagging (on main branch)

When you push a version bump to main, CI automatically creates a git tag:

  1. Update [CHANGELOG.md] to include the Unreleased changes in the changelog for the new version.
  2. Update hedgehog-extras.cabal and set version: to the new version
  3. Commit and push to main: git commit -m "Bump version to X.Y.Z.W" && git push origin main
  4. CI automatically creates and pushes tag vX.Y.Z.W
  5. The release workflow then runs automatically

Manual Tagging

Alternatively, you can manually create and push tags:

  1. Update hedgehog-extras.cabal with the new version
  2. Commit changes: git commit -m "Release X.Y.Z.W"
  3. Create tag: git tag -a vX.Y.Z.W -m "Release version X.Y.Z.W"
  4. Push both: git push origin main && git push origin vX.Y.Z.W

What Happens Automatically

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_USER and HACKAGE_PASS secrets)
  • Generates release notes from git commit history
  • Creates a GitHub Release

Publishing the Hackage Candidate

After the workflow completes:

  1. Check the candidate at https://hackage.haskell.org/package/hedgehog-extras/candidates
  2. Test the candidate package
  3. When ready, publish it from the Hackage candidate page

Notes

  • 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_USER and HACKAGE_PASS repository secrets
  • Workflow requires contents: write permission (already configured)

License

Copyright 2025 Input Output Global, Inc.

Licensed under the Apache License, Version 2.0. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 14