]> git.sur5r.net Git - i3/i3/commitdiff
Merge pull request #2278 from jolange/version-extraction
authorMichael Stapelberg <stapelberg@users.noreply.github.com>
Sun, 10 Apr 2016 11:09:18 +0000 (04:09 -0700)
committerMichael Stapelberg <stapelberg@users.noreply.github.com>
Sun, 10 Apr 2016 11:09:18 +0000 (04:09 -0700)
Version extraction

I3_VERSION [new file with mode: 0644]
Makefile
VERSION [new file with mode: 0644]
common.mk
release.sh

diff --git a/I3_VERSION b/I3_VERSION
new file mode 100644 (file)
index 0000000..f3d6899
--- /dev/null
@@ -0,0 +1 @@
+4.12-non-git
index fd3021017650d11c1daa6cfed7ee327a853b7dc8..57513b0e36c2418879c004cb220e623d381949de 100644 (file)
--- 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/
diff --git a/VERSION b/VERSION
new file mode 100644 (file)
index 0000000..f588584
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+4.12
index 4fe8f2b04cd4a8a654dacc8b30876bc7893ceb72..1e738b045530eca66c5ee62df869bdc6b7024fe4 100644 (file)
--- 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)
index 7b5211450cd9905d783ce91cf1876d4164fea981..61b3c444e4d247253a4e1f212ef1c48b9792e82f 100755 (executable)
@@ -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,<refmiscinfo class=\"version\">[^<]*</refmiscinfo>,<refmiscinfo class=\"version\">${RELEASE_VERSION}</refmiscinfo>,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}'"