From 64c81132d28efc286c438754b82b3977421a0a6a Mon Sep 17 00:00:00 2001 From: Johannes Lange Date: Sun, 3 Apr 2016 14:22:47 +0200 Subject: [PATCH 1/4] initial (manual) version files check-in --- I3_VERSION | 1 + VERSION | 1 + 2 files changed, 2 insertions(+) create mode 100644 I3_VERSION create mode 100644 VERSION diff --git a/I3_VERSION b/I3_VERSION new file mode 100644 index 00000000..f3d68995 --- /dev/null +++ b/I3_VERSION @@ -0,0 +1 @@ +4.12-non-git diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..f5885845 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +4.12 From 808bad10efec652ec8dc27d76081f6e6a8c087fd Mon Sep 17 00:00:00 2001 From: Johannes Lange Date: Sun, 3 Apr 2016 14:26:01 +0200 Subject: [PATCH 2/4] auto-creating (I3_)VERSION for each release and post-release version files with 'non-git' suffix fixes #1993 --- release.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/release.sh b/release.sh index 7b521145..61b3c444 100755 --- a/release.sh +++ b/release.sh @@ -56,6 +56,9 @@ cp "${STARTDIR}/RELEASE-NOTES-${RELEASE_VERSION}" "RELEASE-NOTES-${RELEASE_VERSI git add RELEASE-NOTES-${RELEASE_VERSION} git rm RELEASE-NOTES-${PREVIOUS_VERSION} sed -i "s,[^<]*,${RELEASE_VERSION},g" man/asciidoc.conf +echo "${RELEASE_VERSION}" > VERSION +echo "${RELEASE_VERSION} ($(date +%F))" > I3_VERSION +git add VERSION I3_VERSION git commit -a -m "release i3 ${RELEASE_VERSION}" git tag "${RELEASE_VERSION}" -m "release i3 ${RELEASE_VERSION}" --sign --local-user=0x4AC8EE1D @@ -68,14 +71,13 @@ diff -u \ <(tar tf i3-${RELEASE_VERSION}.tar.bz2 | sed "s,i3-${RELEASE_VERSION}/,,g" | sort) \ | colordiff -if ! tar xf i3-${RELEASE_VERSION}.tar.bz2 --to-stdout --strip-components=1 i3-${RELEASE_VERSION}/I3_VERSION | grep -q "^${RELEASE_VERSION} " -then - echo "I3_VERSION file does not start with ${RELEASE_VERSION}" - exit 1 -fi gpg --armor -b i3-${RELEASE_VERSION}.tar.bz2 +echo "${RELEASE_VERSION}-non-git" > I3_VERSION +git add I3_VERSION +git commit -a -m "Set non-git version to ${RELEASE_VERSION}-non-git." + if [ "${RELEASE_BRANCH}" = "master" ]; then git checkout master git merge --no-ff release-${RELEASE_VERSION} -m "Merge branch 'release-${RELEASE_VERSION}'" From 9f27716d16349a7189622e05f35266a5e2af649b Mon Sep 17 00:00:00 2001 From: Johannes Lange Date: Sun, 3 Apr 2016 14:34:57 +0200 Subject: [PATCH 3/4] dist tarball uses existing (I3_)VERSION file --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index fd302101..57513b0e 100644 --- a/Makefile +++ b/Makefile @@ -48,8 +48,8 @@ dist: distclean # Only copy source code from i3-input mkdir i3-${VERSION}/i3-input find i3-input -maxdepth 1 -type f \( -name "*.c" -or -name "*.mk" -or -name "*.h" -or -name "Makefile" \) -exec cp '{}' i3-${VERSION}/i3-input \; - echo -n ${I3_VERSION} > i3-${VERSION}/I3_VERSION - echo -n ${VERSION} > i3-${VERSION}/VERSION + cp I3_VERSION i3-${VERSION}/I3_VERSION + cp VERSION i3-${VERSION}/VERSION # Pre-generate a manpage to allow distributors to skip this step and save some dependencies $(MAKE) mans cp man/*.1 i3-${VERSION}/man/ From f74327e7c6497b1818bc6cacdd12d5a6ae2145fb Mon Sep 17 00:00:00 2001 From: Johannes Lange Date: Sun, 3 Apr 2016 14:38:08 +0200 Subject: [PATCH 4/4] use git version information if possible, otherwise use information from (I3_)VERSION files (for tarballs) --- common.mk | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common.mk b/common.mk index 4fe8f2b0..1e738b04 100644 --- a/common.mk +++ b/common.mk @@ -18,12 +18,14 @@ ifndef SYSCONFDIR endif endif -# In dist tarballs, the version is stored in the I3_VERSION and VERSION files. -I3_VERSION := '$(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION)' -VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)' -ifeq ('',$(I3_VERSION)) -VERSION := $(shell git describe --tags --abbrev=0) -I3_VERSION := '$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch \"$(shell git describe --tags --always --all | sed s:heads/::)\")' +# In dist and snapshot tarballs, use the I3_VERSION and VERSION files. Otherwise use git information. +ifeq ($(wildcard .git),) + # not in git repository + VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)' + I3_VERSION := '$(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION)' +else + VERSION := $(shell git describe --tags --abbrev=0) + I3_VERSION := '$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch \"$(shell git describe --tags --always --all | sed s:heads/::)\")' endif MAJOR_VERSION := $(shell echo ${VERSION} | cut -d '.' -f 1)