- 'new': add --license option
- 'new': bump stack.yaml resolver to lts-21
- add missing SUMMARY placeholder to template
- 'tagdist', 'upload': also do pristine cabal build unless --no-build
- .cabal template: add autogen-modules and update tested-with ghc versions
- publish,build: output message before cabal build
- use simple-cmd +-+
- use a cabal.project for pristine sdist/build to ignore any parent project
- .cabal template: updated tested-with ghc versions
- fix the template file SPDX license tag and cabal-version field placement
- bump template to Cabal 2.2
- add pristine 'build' command: used before publish
- use haskeline for reading user/passwd via simple-prompt
- 'new': need cabal init --license option, otherwise no LICENSE file is created
- 'github': new command to add github remote for project
- 'rename' improvements
- 'new': avoid error on cabal >= 3.4 by not passing --license to cabal init
- template.cabal: use cabal 2.0 and define hs-source-dirs
- 'tagdist --existing-tag' replaces 'dist' command
- 'upload': add --existing-tag for dist rather than tagdist
- 'new': stack init with lts-17
- 'rename': experimental command to rename a project
- add '--no-hlint' option to skip running hlint (also hlint is no longer run for 'publish')
- only read Hackage username/password if not in ~/.cabal/config
- 'upload': show newer untagged commits
- 'dist': new command for a manually tagged release
- fix the check for package version committed
- Main.hs: explicitly export main and add SPDX-License-Identifier
- move Main.hs to src/
- handle git submodules (not --recursive yet)
- use typed-process to interleave IO to display auth errors
- check name and .cabal filename consistent
- put tarballs in .hkgr/
- upload: error if tag no longer on branch
- publish: only push up to tag
- upload: do not hide output since it conceals any error
- new: improvements to work better with cabal-3.0 init
- tagdist: include existing tag in error message
- experimental 'new' project command with user template file
~/.config/hkgr/template.cabal
- switch to cabal v2-sdist
- upload: display error correctly
- upload: add --force switch - to refresh tag and tarball
- no hlint summary
- fix published message
- improve output for hlint and uploaded url
- also check for staged changes
- check that package version is committed
- use quiet cabal v1-configure and v1-sdist commands
- make cabal upload quiet
- assert that cabal-install installed
- run hlint in git checkout instead of working tree
- git push before publishing
- only push up to tag
- push git tag
- hlint is now a warning not an error
- prefix version tags with v
- surround git diff output with quote lines
- catch exception for sdist
- run hlint before git tag
- relax force sdist when no existing tarball
- show git diff to warn project dirty
- fix creation of published symlink lockfile
- tagdist before
cabal upload
if no tarball
- merge tag and dist commands into tagdist
- if sdist fails then reset tag
- drop push-tags command
- add published lock file: prevents tagging/dist/upload after publish
- tag before sdist if no tag
- push tag after publishing
- Initially created.