From 4b3848a8aed9f925231cca9e5c01c51a43a1a827 Mon Sep 17 00:00:00 2001 From: Bruce Collie Date: Fri, 21 Jan 2022 13:35:30 +0000 Subject: [PATCH 1/3] Fix version flag --- kernel/pom.xml | 15 ++++++++++++--- .../java/org/kframework/utils/file/JarInfo.java | 9 +++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/kernel/pom.xml b/kernel/pom.xml index f951c8601f2..13baa64d2a8 100644 --- a/kernel/pom.xml +++ b/kernel/pom.xml @@ -223,14 +223,23 @@ true + + + + + + - - - + + + diff --git a/kernel/src/main/java/org/kframework/utils/file/JarInfo.java b/kernel/src/main/java/org/kframework/utils/file/JarInfo.java index 6eb4064e0eb..4bb61bb582a 100644 --- a/kernel/src/main/java/org/kframework/utils/file/JarInfo.java +++ b/kernel/src/main/java/org/kframework/utils/file/JarInfo.java @@ -88,6 +88,15 @@ public void printVersionMessage() { version = FileUtils.readFileToString(new File(kBase + "/lib/version")).trim(); } + // Note that if we're using git describe, the output will look + // something like v5.2.61~1^2 because of the master / release branch + // structure. Rather than deal with this in Maven, we cut the suffix + // off here. + int suffixStart = version.indexOf('~'); + if (suffixStart != -1) { + version = version.substring(0, suffixStart); + } + System.out.println("K version: " + version); System.out.println("Build date: " + versionDate); } catch (IOException e) { From 12ae8d1890134e82a8eb428cf295e14dd01ac274 Mon Sep 17 00:00:00 2001 From: Bruce Collie Date: Fri, 21 Jan 2022 13:40:47 +0000 Subject: [PATCH 2/3] Fix test --- k-distribution/tests/regression-new/help/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/k-distribution/tests/regression-new/help/Makefile b/k-distribution/tests/regression-new/help/Makefile index 0ba5569b2ab..21895ad6d81 100644 --- a/k-distribution/tests/regression-new/help/Makefile +++ b/k-distribution/tests/regression-new/help/Makefile @@ -4,7 +4,8 @@ TESTDIR=. KRUN_FLAGS=--help KOMPILE_FLAGS=--syntax-module TEST PACKAGE_VERSION ?= $(shell cat ../../../../package/version) -GIT_REVISION=$(shell git describe --tags --long) +GIT_MERGE_BASE=$(shell git merge-base HEAD master) +GIT_REVISION=$(shell git describe --contains --always ${GIT_MERGE_BASE} | sed 's/~.*//') VERSION_REGEX="$(PACKAGE_VERSION)\|$(GIT_REVISION)" KPARSE=${K_BIN}/kparse KPARSE_GEN=${K_BIN}/kparse-gen From bf95de704b2759b710c433242c3ecc3570510a8c Mon Sep 17 00:00:00 2001 From: Bruce Collie Date: Fri, 21 Jan 2022 16:45:24 +0000 Subject: [PATCH 3/3] Get full information --- .../tests/regression-new/help/Makefile | 3 +-- kernel/pom.xml | 15 +-------------- .../org/kframework/utils/file/JarInfo.java | 9 --------- scripts/get-version-string.sh | 19 +++++++++++++++++++ 4 files changed, 21 insertions(+), 25 deletions(-) create mode 100755 scripts/get-version-string.sh diff --git a/k-distribution/tests/regression-new/help/Makefile b/k-distribution/tests/regression-new/help/Makefile index 21895ad6d81..2edbcfb3c68 100644 --- a/k-distribution/tests/regression-new/help/Makefile +++ b/k-distribution/tests/regression-new/help/Makefile @@ -4,8 +4,7 @@ TESTDIR=. KRUN_FLAGS=--help KOMPILE_FLAGS=--syntax-module TEST PACKAGE_VERSION ?= $(shell cat ../../../../package/version) -GIT_MERGE_BASE=$(shell git merge-base HEAD master) -GIT_REVISION=$(shell git describe --contains --always ${GIT_MERGE_BASE} | sed 's/~.*//') +GIT_REVISION=$(shell ../../../../scripts/get-version-string.sh) VERSION_REGEX="$(PACKAGE_VERSION)\|$(GIT_REVISION)" KPARSE=${K_BIN}/kparse KPARSE_GEN=${K_BIN}/kparse-gen diff --git a/kernel/pom.xml b/kernel/pom.xml index 13baa64d2a8..86450935ea0 100644 --- a/kernel/pom.xml +++ b/kernel/pom.xml @@ -223,23 +223,10 @@ true - - - - - - - - - - - diff --git a/kernel/src/main/java/org/kframework/utils/file/JarInfo.java b/kernel/src/main/java/org/kframework/utils/file/JarInfo.java index 4bb61bb582a..6eb4064e0eb 100644 --- a/kernel/src/main/java/org/kframework/utils/file/JarInfo.java +++ b/kernel/src/main/java/org/kframework/utils/file/JarInfo.java @@ -88,15 +88,6 @@ public void printVersionMessage() { version = FileUtils.readFileToString(new File(kBase + "/lib/version")).trim(); } - // Note that if we're using git describe, the output will look - // something like v5.2.61~1^2 because of the master / release branch - // structure. Rather than deal with this in Maven, we cut the suffix - // off here. - int suffixStart = version.indexOf('~'); - if (suffixStart != -1) { - version = version.substring(0, suffixStart); - } - System.out.println("K version: " + version); System.out.println("Build date: " + versionDate); } catch (IOException e) { diff --git a/scripts/get-version-string.sh b/scripts/get-version-string.sh new file mode 100755 index 00000000000..ba0c0600ca9 --- /dev/null +++ b/scripts/get-version-string.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +MERGE_BASE=$(git merge-base master HEAD) +VERSION_TAG=$(git describe --contains --always "$MERGE_BASE" | sed 's/~.*//') + +VERSION_STRING=$VERSION_TAG + +DISTANCE=$(git rev-list --count "$MERGE_BASE"..HEAD) +VERSION_STRING+="-$DISTANCE" + +SHA=$(git rev-parse --short HEAD) +VERSION_STRING+="-g$SHA" + +DIRTY=$(git diff HEAD) +if [ -n "$DIRTY" ]; then + VERSION_STRING+=-dirty +fi + +echo $VERSION_STRING