branch: elpa/opam-switch-mode commit b58a37ba5f10c1c6a034a63982cd349170181513 Author: Erik Martin-Dorel <e...@martin-dorel.org> Commit: Erik Martin-Dorel <e...@martin-dorel.org>
feat: Add release.sh script --- opam-switch-mode.el | 2 +- release.sh | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/opam-switch-mode.el b/opam-switch-mode.el index f947de6f1e..83528680ae 100644 --- a/opam-switch-mode.el +++ b/opam-switch-mode.el @@ -7,7 +7,7 @@ ;; Maintainer: proof-general-maintain...@groupes.renater.fr ;; URL: https://github.com/ProofGeneral/opam-switch-mode ;; Package-Requires: ((emacs "25.1")) -;; Version: 1.0-git +;; Version: 1.1-git ;; ;; SPDX-License-Identifier: GPL-3.0-or-later ;; diff --git a/release.sh b/release.sh new file mode 100755 index 0000000000..f1d53834aa --- /dev/null +++ b/release.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +set -eu + +perl_replace() { + local str1="$1" + local str2="$2" + perl -wpe 'BEGIN {$str1=shift @ARGV; $str2=shift @ARGV;}; s/$str1/$str2/g;' "$str1" "$str2" +} + +do_release() { + file=opam-switch-mode.el + git checkout master + line=$(grep "$file" -e Version:) + version=${line/*Version: /} + release=${version%-git} + next=$(perl -wne 'my ($major,$minor) = $_ =~ m/^(.+)\.(.+)$/; print("$major.", $minor+1, "-git");' <<< "$release") + line_release=$(perl_replace "$version" "$release" <<<"$line") + line_next=$(perl_replace "$version" "$next" <<<"$line") + cp -fv "$file" "$file~" + + perl_replace "$line" "$line_release" <"$file~" > "$file" + git add -vu + git commit -m "chore: Release $release" + git tag -s "$release" -m "Version $release" + + perl_replace "$line" "$line_next" <"$file~" > "$file" + git branch -D next || true + git checkout -b next + git add -vu + git commit -m "chore: Prepare next dev cycle" + git checkout master + echo >&2 "Ready to: git push $(git remote) master $release" + echo >&2 "Then, do: git merge next" +} +do_release