Skip to end of metadata
Go to start of metadata

Nuxeo EP (CS, CAP, DM) + Addons

First check the source code is releasable:

For a date-based release, follow the same steps as below with IT-nuxeo-master-build instead of IT-release-on-demand-build.

Release:

Everything is uploaded into http://community.nuxeo.com/static/staging/ (or customized UPLOAD_URL parameter of IT-release-on-demand-tests-dm-tomcat). Run ~/fix_zip.sh jboss.zip tomcat.zip which will fix the executable zip and generate MD5 checksums. Test the archives. If they are fine, move them out of the stagging repository.

All addons listed in https://github.com/nuxeo/addons/blob/master/pom.xml are released at the same time.

Release other addons

All other addons than those listed in https://github.com/nuxeo/addons/blob/master/pom.xml are automatically released using IT-release-on-demand-addon.

Check for the wanted addon status in its dedicated job(s) on Jenkins (Build, Unit tests, Functional tests).

Mercurial branching model

Release (let's say releasing 1.0.1 from 1.0.1-SNAPSHOT on "1.0" development branch — may be called "master" or "development" — from a Mercurial repository):

  • Prepare release (create maintenance branch 1.0.1 from 1.0, change version)
    • hg up 1.0
    • hg branch 1.0.1
    • Replace 1.0.1-SNAPSHOT with 1.0.1
  • Commit, tag, build and deploy, push
    • hg ci -m"prepare release 1.0.1"
    • hg tag release-1.0.1
    • mvn clean deploy -Prelease,-qa
  • Close branch (aka "null-merge", if relevant)
    • hg up null-merge ; hg merge -f -y 1.0.1 ; hg revert -a -r null-merge -X .hgtags ;  hg ci -m"null-merge 1.0.1"
  •  Post release (change version)
    • hg up 1.0
    • Replace 1.0.1-SNAPSHOT with 1.0.2-SNAPSHOT
    • hg ci -m"post release 1.0.1"
    • hg push

Git branching model

Draft waiting for being finalized and automated with nx-builder.

unstable (development) branch: master
stable (releases) branch: stable

release 5.4.0 from branch master (5.4.0-SNAPSHOT):

  • checkout master
  • checkout -b 5.4.0 (version 5.4.0-SNAPSHOT)
  • [checkout -b release-5.4.0]
  • pom => 5.4.0
  • tag release-5.4.0
  • [checkout 5.4.0]
  • [merge --no-ff on branch 5.4.0 (one release commit)]
  • [delete release-5.4.0 branch]
  • [checkout stable]
  • [merge on stable if latest version]
  • checkout master
  • pom => 5.4.0.1-SNAPSHOT

release 5.4.0.1 from branch 5.4.0 (5.4.0.1-SNAPSHOT):

  • checkout 5.4.0
  • checkout -b 5.4.0.1 (version 5.4.0.1-SNAPSHOT)
  • [checkout -b release-5.4.0.1]
  • pom => 5.4.0.1
  • tag release-5.4.0.1
  • [checkout 5.4.0.1]
  • [merge --no-ff on branch 5.4.0 (one release commit)]
  • [delete release-5.4.0.1 branch]
  • [checkout stable]
  • [merge on stable if latest version]
  • checkout 5.4.0
  • pom => 5.4.0.2-SNAPSHOT

maintenance 5.4.0.x:

  • bugfixes on branch fix-NXP-XYZ
  • merge on 5.4.0
  • merge on master
  • delete fix-NXP-XYZ branch

new features:

  • checkout -b feature-NXP-XYZ
  • merge on master
  • delete feature-NXP-XYZ branch

deleted branches when merging: release-, fix-, feature-*
kept branches: master, stable, x.y.z

tags are created on x.y.z
tags are merged on stable (if latest stable release)

features and fix are merged (at least) on master

Labels
  • None