Change in vdsm[master]: build: closer to open source versioning and release cycle

Alon Bar-Lev alonbl at redhat.com
Wed Feb 27 10:50:31 UTC 2013


Alon Bar-Lev has posted comments on this change.

Change subject: build: closer to open source versioning and release cycle
......................................................................


Patch Set 1: (5 inline comments)

Thanks! Some answers.

....................................................
Commit Message
Line 62:  - PACKAGE_RPM_RELEASE - rpm release
Line 63: 
Line 64: Unlike current versioning implementation we disconnect the versioning
Line 65: from the git branch information, as the git branch information is aware
Line 66: of /past/ versions, while a branch is work toward the /next/ version.
The benefit is once a release was made, the nightly are at next release, which is what expected from tree. Milestone are clearly marked while master is always the work toward the next milestone.
Line 67: 
Line 68: A valid sequence for release cycle:
Line 69:  PRODUCT_VERSION=4.11.0
Line 70:  PRODUCT_VERSION_SUFFIX=_master


Line 91:  PACKAGE_RPM_RELEASE=1
Line 92: 
Line 93:  PRODUCT_VERSION=4.12.0
Line 94:  PRODUCT_VERSION_SUFFIX=_master
Line 95:  PACKAGE_RPM_RELEASE=0.0.$(echo PRODUCT_VERSION_SUFFIX | sed 's/^_//')
Right, this is downstream versioning, rpm, has nothing to do with upstream, and provided as convenience.

0.N is pre-release, while N is a sequence to organize milestones (rpm limitation). The date is important for snapshots to be sorted in sane order. The git is just eye catcher, we can remove it if you like.

We should go to master after milestone, even if there are no commits, as preparation for the 'next' commit, and nightly/snapshop builds.
Line 96: 
Line 97: Build automation may inject release suffix to the binary package name, an
Line 98: example exist in the 'make rpm' target.
Line 99: 


....................................................
File configure.ac
Line 18: # Refer to the README and COPYING files for full details of the license
Line 19: #
Line 20: 
Line 21: # Autoconf initialization
Line 22: define([PRODUCT_VERSION], [4.11.0])
I deal with one person at a time :)
Line 23: define([PRODUCT_VERSION_SUFFIX], [_master])
Line 24: AC_INIT([vdsm], PRODUCT_VERSION[]PRODUCT_VERSION_SUFFIX, [vdsm-devel at lists.fedorahosted.org])
Line 25: AC_CONFIG_AUX_DIR([build-aux])
Line 26: 


....................................................
File Makefile.am
Line 84: 
Line 85: srpm: dist
Line 86: 	SUFFIX=".`date -u +%Y%m%d%H%M%S`"; \
Line 87: 	if [ -d "$(top_srcdir)/.git" ]; then \
Line 88: 		SUFFIX="$$SUFFIX.git`GIT_DIR="$(top_srcdir)/.git" $(GIT) rev-parse --short=16 HEAD`"; \
No problem to use 7...

The date is important to have it sorted in sane order, as git is nonsense...
Line 89: 	fi; \
Line 90: 	rpmbuild \
Line 91: 		-ts \
Line 92: 		--define="release_suffix $$SUFFIX" \


Line 96: rpm: dist
Line 97: 	SUFFIX=".`date -u +%Y%m%d%H%M%S`"; \
Line 98: 	if [ -d "$(top_srcdir)/.git" ]; then \
Line 99: 		SUFFIX="$$SUFFIX.git`GIT_DIR="$(top_srcdir)/.git" $(GIT) rev-parse --short=16 HEAD`"; \
Line 100: 	fi; \
I wanted to avoid execution of git commands always.... I can add a phony target to write this information to a file to be used by these two if it is a problem.
Line 101: 	rpmbuild \
Line 102: 		-ta \
Line 103: 		--define="release_suffix $$SUFFIX" \
Line 104: 		$(if $(BUILDID),--define="extra_release .$(BUILDID)") \


--
To view, visit http://gerrit.ovirt.org/12448
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I1a73089d47804ca31e3a4d80aaf811fa011ba1f3
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alonbl at redhat.com>
Gerrit-Reviewer: Alon Bar-Lev <alonbl at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce at redhat.com>
Gerrit-Reviewer: Moran Goldboim <mgoldboi at redhat.com>


More information about the vdsm-patches mailing list