Merge pull request #2278 from jolange/version-extraction

Version extraction
This commit is contained in:
Michael Stapelberg 2016-04-10 04:09:18 -07:00
commit 86f00fdda0
5 changed files with 19 additions and 13 deletions

1
I3_VERSION Normal file
View File

@ -0,0 +1 @@
4.12-non-git

View File

@ -48,8 +48,8 @@ dist: distclean
# Only copy source code from i3-input # Only copy source code from i3-input
mkdir i3-${VERSION}/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 \; 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 cp I3_VERSION i3-${VERSION}/I3_VERSION
echo -n ${VERSION} > i3-${VERSION}/VERSION cp VERSION i3-${VERSION}/VERSION
# Pre-generate a manpage to allow distributors to skip this step and save some dependencies # Pre-generate a manpage to allow distributors to skip this step and save some dependencies
$(MAKE) mans $(MAKE) mans
cp man/*.1 i3-${VERSION}/man/ cp man/*.1 i3-${VERSION}/man/

1
VERSION Normal file
View File

@ -0,0 +1 @@
4.12

View File

@ -18,10 +18,12 @@ ifndef SYSCONFDIR
endif endif
endif endif
# In dist tarballs, the version is stored in the I3_VERSION and VERSION files. # In dist and snapshot tarballs, use the I3_VERSION and VERSION files. Otherwise use git information.
I3_VERSION := '$(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION)' ifeq ($(wildcard .git),)
# not in git repository
VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)' VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)'
ifeq ('',$(I3_VERSION)) I3_VERSION := '$(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION)'
else
VERSION := $(shell git describe --tags --abbrev=0) 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/::)\")' 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 endif

View File

@ -56,6 +56,9 @@ cp "${STARTDIR}/RELEASE-NOTES-${RELEASE_VERSION}" "RELEASE-NOTES-${RELEASE_VERSI
git add RELEASE-NOTES-${RELEASE_VERSION} git add RELEASE-NOTES-${RELEASE_VERSION}
git rm RELEASE-NOTES-${PREVIOUS_VERSION} git rm RELEASE-NOTES-${PREVIOUS_VERSION}
sed -i "s,<refmiscinfo class=\"version\">[^<]*</refmiscinfo>,<refmiscinfo class=\"version\">${RELEASE_VERSION}</refmiscinfo>,g" man/asciidoc.conf 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 commit -a -m "release i3 ${RELEASE_VERSION}"
git tag "${RELEASE_VERSION}" -m "release i3 ${RELEASE_VERSION}" --sign --local-user=0x4AC8EE1D 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) \ <(tar tf i3-${RELEASE_VERSION}.tar.bz2 | sed "s,i3-${RELEASE_VERSION}/,,g" | sort) \
| colordiff | 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 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 if [ "${RELEASE_BRANCH}" = "master" ]; then
git checkout master git checkout master
git merge --no-ff release-${RELEASE_VERSION} -m "Merge branch 'release-${RELEASE_VERSION}'" git merge --no-ff release-${RELEASE_VERSION} -m "Merge branch 'release-${RELEASE_VERSION}'"