Jetpack/Release Process: Difference between revisions

Jump to navigation Jump to search
update process to reflect new 'git-describe'-based no-.version version handling. We might not yet be happy with the way release-candidates are turned into final releases.
(update process to reflect new 'git-describe'-based no-.version version handling)
(update process to reflect new 'git-describe'-based no-.version version handling. We might not yet be happy with the way release-candidates are turned into final releases.)
Line 196: Line 196:
  git checkout stabilization
  git checkout stabilization


Set JPCV (Jetpack Current Version) to the current version (f.e. 1.2b1):
Determine the version identifier for the beta or release candidate build. This should be the final release identifier (e.g. 1.2) with a suffix like "b1" or "rc2", e.g. "1.2b1":
 
export JPCV=`cat .version`


Set JPNV (Jetpack Next Version) to the next version being built (f.e. 1.2b2):
Set JPNV (Jetpack Next Version) to the next version being built (f.e. 1.2b2):


  export JPNV=(NEXT VERSION)
  export JPNV=1.2b1
 
If building a beta, set JPFV (Jetpack Final Version) to JPNV:
 
export JPFV=${JPNV}
 
Otherwise, when building a release candidate, set JPFV to the version being released (f.e. 1.2):
 
export JPFV=(FINAL VERSION)
 
Change the version identifier in source files to the one for the test build:
 
find .version * -type f -exec perl -pi -e "s/${JPCV}/${JPFV}/g" {} \;
 
Verify that the version identifiers were changed correctly. In particular, make sure the find/replace command didn't modify strings that aren't SDK version identifiers but look similar to them (f.e. a version identifier in the jQuery library).
 
Commit the changes:
 
git commit -a -m"update SDK version to ${JPFV} for next test build"


Tag the repository with the test version:
Tag the repository with the new version identifier:


  git tag ${JPNV}
  git tag ${JPNV}
Line 228: Line 208:
Create a tarball and a ZIP archive:
Create a tarball and a ZIP archive:


  git archive --format=zip --output addon-sdk-${JPNV}.zip --prefix addon-sdk-${JPFV}/ ${JPNV}
  git archive --format=zip --output addon-sdk-${JPNV}.zip --prefix addon-sdk-${JPNV}/ ${JPNV}
  git archive --format=tar --output addon-sdk-${JPNV}.tar --prefix addon-sdk-${JPFV}/ ${JPNV}
  git archive --format=tar --output addon-sdk-${JPNV}.tar --prefix addon-sdk-${JPNV}/ ${JPNV}
  gzip addon-sdk-${JPNV}.tar # makes addon-sdk-${JPNV}.tar.gz
  gzip addon-sdk-${JPNV}.tar # makes addon-sdk-${JPNV}.tar.gz


{{note|a beta expands to a directory whose name contains the test version (f.e. addon-sdk-1.2b2), but a candidate expands to a directory whose name contains the final version (f.e. addon-sdk-1.2), so we can bless a candidate simply by renaming its tarball/ZIP archive.}}
{{note|at present, the final release contains slightly different bits than the last release candidate: python-lib/cuddlefish/_version.py contains strings which are expanded by 'git archive' to include a tag name, which will be different in the rc and the final release. In addition, the unpacked directory name will be different.}}


Copy the tarball/ZIP archive to the distribution server:
Copy the tarball/ZIP archive to the distribution server:
Confirmed users
471

edits

Navigation menu