From c071ad2449dc68c57aef63e574d51cf3a8a909a1 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Thu, 11 Dec 2025 11:20:01 -0800 Subject: [PATCH] Add a release script --- flake.lock | 6 +++--- flake.nix | 2 +- package.yaml | 2 +- scripts/release.sh | 37 +++++++++++++++++++++++++++++++++++++ string-variants.cabal | 2 +- 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100755 scripts/release.sh diff --git a/flake.lock b/flake.lock index ed6f3af..3e13e79 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738142207, - "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", + "lastModified": 1765186076, + "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", + "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index daaab51..14f518d 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,7 @@ outputs = { self, nixpkgs, flake-utils }: let - ghcVer = "ghc96"; + ghcVer = "ghc910"; makeHaskellOverlay = overlay: final: prev: { haskell = prev.haskell // { packages = prev.haskell.packages // { diff --git a/package.yaml b/package.yaml index d1c4560..926015e 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: string-variants -version: 0.3.1.1 +version: 0.3.1.3 synopsis: Constrained text newtypes description: See README at . category: Data diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 0000000..eb42ec9 --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -xeu + +cabal_files=(*.cabal) +if [[ ${#cabal_files[@]} != 1 ]]; then + echo "Error: non-1 number of cabal_file" + exit 1 +fi +cabal_file=${cabal_files[0]} +package_name=${cabal_file//.cabal} + +if [[ -e package.yaml ]]; then + hpack --force +fi + +version=$(perl -ne '/^version: (.+)$/ && print "$1\n"' "${cabal_file}") +git fetch origin + +# Ensure we are on origin/main +[[ $(git rev-parse origin/HEAD) == $(git rev-parse HEAD) ]] || (echo "not up to date"; exit 1) + +# Verify Nix +nix flake check -Lv + +cabal sdist + +sdist="dist-newstyle/sdist/$package_name-${version}.tar.gz" +tar tf "$sdist" + +echo -e "\n\nWould you like to release this sdist as $version? Enter the version number if so." +read resp + +[[ "$resp" == "$version" ]] + +cabal upload "$sdist" +git tag -a -m "Version ${version}" "v${version}" +git push origin "v${version}" diff --git a/string-variants.cabal b/string-variants.cabal index 553c32e..1fa5c18 100644 --- a/string-variants.cabal +++ b/string-variants.cabal @@ -1,6 +1,6 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.36.1. +-- This file has been generated from package.yaml by hpack version 0.38.2. -- -- see: https://github.com/sol/hpack