hkgr 0.4 → 0.4.1
raw patch · 5 files changed
+48/−48 lines, 5 files
Files
- CHANGELOG.md +4/−0
- README.md +31/−39
- data/template.cabal.tmpl +3/−3
- hkgr.cabal +2/−2
- src/Main.hs +8/−4
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog +## 0.4.1 (2022-06-23)+- 'rename' improvements+- 'new': avoid error on cabal >= 3.4 by not passing --license to cabal init+ ## 0.4 (2022-03-27) - template.cabal: use cabal 2.0 and define hs-source-dirs - 'tagdist --existing-tag' replaces 'dist' command
README.md view
@@ -15,64 +15,56 @@ After committing the latest changes for the release, create a tag and tarball: -```+```shellsession $ hkgr tagdist-v0.2.5+v0.4 No errors or warnings could be found in the package. Running hlint-./Main.hs:107:28: Warning: Redundant do+src/Main.hs:(407,9)-(408,55): Warning: Eta reduce Found:- do void $ cmdBool "hlint" ["."]+ replaceHolder lbl val file+ = sed ["s/@" ++ lbl ++ "@/" ++ val ++ "/"] file Perhaps:- void $ cmdBool "hlint" ["."]-Resolving dependencies...-Configuring hkgr-0.2.5...-Building source dist for hkgr-0.2.5...-Preprocessing executable 'hkgr' for hkgr-0.2.5..-Source tarball created: dist/hkgr-0.2.5.tar.gz+ replaceHolder lbl val = sed ["s/@" ++ lbl ++ "@/" ++ val ++ "/"]++[]+["src/Main.hs","data/template.cabal.tmpl","README.md","CHANGELOG.md","LICENSE","hkgr.cabal"]+[(NoExec,"CHANGELOG.md"),(NoExec,"LICENSE"),(NoExec,"README.md"),(NoExec,"data/template.cabal.tmpl"),(NoExec,"hkgr.cabal"),(NoExec,"src/Main.hs")]+Wrote tarball sdist to /var/home/petersen/github/hkgr/.hkgr/hkgr-0.4.tar.gz ``` -After fixing up, retag a new tarball:+After fixing up, retag a new tarball with `--force` and upload candidate,+in one go: -```-$ hkgr tagdist -f-Updated tag 'v0.2.5' (was 55b69db)+```shellsession+$ hkgr upload -f+Updated tag 'v0.4' (was f6d72ba) No errors or warnings could be found in the package. Running hlint-Resolving dependencies...-Configuring hkgr-0.2.5...-Building source dist for hkgr-0.2.5...-Preprocessing executable 'hkgr' for hkgr-0.2.5..-Source tarball created: dist/hkgr-0.2.5.tar.gz+[]+["src/Main.hs","data/template.cabal.tmpl","README.md","CHANGELOG.md","LICENSE","hkgr.cabal"]+[(NoExec,"CHANGELOG.md"),(NoExec,"LICENSE"),(NoExec,"README.md"),(NoExec,"data/template.cabal.tmpl"),(NoExec,"hkgr.cabal"),(NoExec,"src/Main.hs")]+Wrote tarball sdist to /var/home/petersen/github/hkgr/.hkgr/hkgr-0.4.tar.gz+hackage.haskell.org password:+Uploaded to https://hackage.haskell.org/package/hkgr-0.4/candidate ``` -Alternatively if you had manually tagged the release with `v0.2.5`+Alternatively if you had manually tagged the release with `v0.4` you can use `hkgr tagdist --existing-tag` to create a dist tarball. -The tarball can now be uploaded to Hackage as a candidate release:-```-$ hkgr upload--Uploaded to https://hackage.haskell.org/package/hkgr-0.2.5/candidate-```--One can continue to `tagdist -f` and `upload` until+One can continue to `tagdist -f` and/or `upload -f` until everything looks good and CI passed etc. -Note that `tagdist -f` and `upload`, can be combined as `upload -f`.-If one wants to check the candidate upload quickly,-it is faster just to run `upload` followed by `upload -f` if needed.- Then it is time to push the final tag and publish the release: -```+```shellsession $ hkgr publish-Everything up-to-date-Total 0 (delta 0), reused 0 (delta 0)+git pushing... done+Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 To github.com:juhp/hkgr.git- * [new tag] v0.2.5 -> v0.2.5--Published at https://hackage.haskell.org/package/hkgr-0.2.5+ * [new tag] v0.4 -> v0.4+hackage.haskell.org password:+Published at https://hackage.haskell.org/package/hkgr-0.4 ``` ## Details@@ -97,7 +89,7 @@ the tag and dist tarball. One should not be able to `tagdist` on an already published-(ie released) version made with hkgr.+(ie released) version made with hkgr, before the version is bumped. If sdist fails for some reason then hkgr tries to reset the tag.
data/template.cabal.tmpl view
@@ -16,9 +16,9 @@ -- ChangeLog.md cabal-version: 2.0 -- tested-with: GHC == 8.6.5--- | == 8.8.4--- | == 8.10.7--- | == 9.0.2+-- || == 8.8.4+-- || == 8.10.7+-- || == 9.0.2 source-repository head type: git
hkgr.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: hkgr-version: 0.4+version: 0.4.1 synopsis: Simple Hackage release workflow for package maintainers description: Hkgr (Hackager) is a tool to help make new releases of@@ -20,7 +20,7 @@ data-files: template.cabal.tmpl extra-doc-files: README.md , CHANGELOG.md-tested-with: GHC == 8.10.5, GHC == 8.8.4, GHC == 8.6.5, GHC == 8.4.4,+tested-with: GHC == 8.10.7, GHC == 8.8.4, GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2 source-repository head
src/Main.hs view
@@ -342,7 +342,7 @@ Nothing -> do let setupFile = "Setup.hs" origsetup <- doesFileExist setupFile- cabal_ "init" ["--quiet", "--no-comments", "--non-interactive", "--is-libandexe", "--cabal-version=1.18", "--license=BSD3", "--package-name=" ++ name, "--version=0.1.0", "--dependency=base<5", "--source-dir=src"]+ cabal_ "init" ["--quiet", "--no-comments", "--non-interactive", "--is-libandexe", "--cabal-version=1.18", "--package-name=" ++ name, "--version=0.1.0", "--dependency=base<5", "--source-dir=src"] whenJustM (cmdMaybe $ P.proc "find" ["-name", "Main.hs"]) $ \ file -> do sed ["1s/^module Main where/-- SPDX-License-Identifier: BSD-3-Clause\\n\\nmodule Main (main) where/"] file unless (file == "src/Main.hs") $ renameFile file "src/Main.hs"@@ -430,6 +430,10 @@ renameCmd newname = do pkgid <- getPackageId let oldname = unPackageName (pkgName pkgid)- sed ["s/" ++ oldname ++ "/" ++ newname ++ "/g"] $ oldname <.> "cabal"- renameFile (oldname <.> "cabal") (newname <.> "cabal")- -- FIXME adjust README+ sed ["s/" ++ oldname ++ "/" ++ newname ++ "/g", "s/Paths_" ++ replace "-" "_" oldname ++ "/Paths_" ++ replace "-" "_" newname ++ "/g"] $ oldname <.> "cabal"+ git_ "mv" [oldname <.> "cabal", newname <.> "cabal"]+ -- FIXME for all *.hs+ sed ["s/" ++ oldname ++ "/" ++ newname ++ "/g", "s/Paths_" ++ replace "-" "_" oldname ++ "/Paths_" ++ replace "-" "_" newname ++ "/g"] "src/Main.hs"+ sed ["s/" ++ oldname ++ "/" ++ newname ++ "/g"] "README.md"+ sed ["s/" ++ oldname ++ "/" ++ newname ++ "/g"] "ChangeLog.md"+ renameDirectory (".." </> oldname) (".." </> newname)