Add publish-candidate target for Hackage pre-release verification#77
Merged
Conversation
Add a make publish-candidate target that uploads a Hackage package candidate (changeable/removable) so the package page, dependency bounds, and Haddock rendering can be verified before the permanent make publish. Reuses the same version-match and aql dry-run guards as publish. Document the release process in haskell/AGENTS.md: candidate-first flow (Hackage uploads are permanent), token requirements, and the PVP bounds rule (lower AND upper on every unique dep, declared once). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MVWKoYVQAaRXi7TcggYnG2
Documentation (Hackage readiness): add a module header with an overview and example, and a Haddock comment on every exported item (functions, value/type declarations, Value constructors, and the Inj/InjDef record fields). Haddock coverage goes from 0% to 100% (203/203) with no out-of-scope link warnings. Warnings: the library now compiles clean under -Wall. - drop the unused Data.Maybe(isJust) import - rename locals that shadowed the top-level items/pad (-> elems/padStr) - annotate the list-index arithmetic in walk as Int (-Wtype-defaults) - make the unterminated-backtick case in injectionPartialReplace a catch-all so the match is exhaustive (behaviour unchanged) Comment/rename-only changes to source; no API, signature, or export changes. make test (1329 pass), cabal check, and check_parity.py all remain green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MVWKoYVQAaRXi7TcggYnG2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
make publish-candidatetarget to the Haskell port's release workflow, allowing maintainers to verify package metadata, Haddock rendering, and dependency bounds on Hackage before committing to a permanent release.Changes
Makefile: Added
publish-candidatephony target that uploads a non-permanent candidate package to Hackage for verification before the one-waymake publishstepVERSIONfile with.cabalfile)AQL_DRY_RUN_FILLERtokenhackage.haskell.org/package/voxgig-struct-X.Y.Z/candidateAGENTS.md: Documented the Hackage release workflow
cabal gen-boundsusageImplementation Details
The
publish-candidatetarget:publish)VERSIONand.cabalfilescabal sdistcabal upload --token(candidate mode is implicit)publish)https://claude.ai/code/session_01MVWKoYVQAaRXi7TcggYnG2