emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/opam-switch-mode b58a37ba5f 1/4: feat: Add release.sh scri


From: ELPA Syncer
Subject: [nongnu] elpa/opam-switch-mode b58a37ba5f 1/4: feat: Add release.sh script
Date: Tue, 20 Jun 2023 19:01:32 -0400 (EDT)

branch: elpa/opam-switch-mode
commit b58a37ba5f10c1c6a034a63982cd349170181513
Author: Erik Martin-Dorel <erik@martin-dorel.org>
Commit: Erik Martin-Dorel <erik@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-maintainers@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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]