Getting Nuxeo Platform source code
Nuxeo core developers should have a look at Nuxeo's Git usage.
Nuxeo Platform sources shall be retrieved and worked with using Git.
The following assumes you know how to work with Maven and sources in your IDE (Eclipse is used below). In particular this means that you have already configured the IDE to work with Maven (M2_REPO set in Eclipse).
Nuxeo requires Maven 2.2.1 (not 3.x).
Getting the development branch
Contributing to Nuxeo does not require cloning Nuxeo source code: see Contributing to Nuxeo
Import Nuxeo source code in Eclipse
Of course for the dependencies to be resolved in Eclipse they will have to be loaded first in your Maven repository, which you can do by performing at least one build first:
If you want to open/edit the projects in Eclipse do the following at the very root of the Git repository:
Then in Eclipse:
Getting a maintenance branch or a specific release
All releases are tagged
release-x.y.z and maintained on a dedicated branch
Use the same recipe as above, but specify the wanted branch (5.4.1, 5.4.2, 5.5.0, ...) or tag (release-5.4.1, release-5.4.2, release-5.5, ...):
To see all available branches or tags, run git branch -a or git tag.
Updating your sources
Either call git pull -u in each repository or run:
Useful Shell functions
There are some scripts to ease working on Nuxeo Git repositories available in the
scripts directory of Nuxeo.
Load them from your .profile or .bashrc, for instance from Nuxeo root:
Windows users will find equivalent Batch scripts in the same directory named
Those scripts' main purpose is to recursively run a command on multiple repositories.
Nuxeo versioning policy
development branch where is prepared next x.y.z version
maintenance branch where bugs are fixed/backported for Nuxeo 5.5
release tag for 5.5 version
maintenance branch where bugs are fixed/backported for Nuxeo 5.4.2
release tag for 5.4.2 version
usually same as on master
development branch dedicated to NXP-9999 feature or bug fix
Releases are built from tags set on their maintenance branch.
Bug fixes are usually done on a maintenance branch, forwarded to development branch and optionally backported to other maintenance branches.
Important fixes may also be backported from the development branch to some specific maintenance branches, in order to perform minor releases (x.y.z.increment).
Development is done on branch master with current version 5.6-SNAPSHOT.
Let's say we will release Nuxeo 5.6.
A branch is created from master, named 5.6.0.
On branch 5.6.0, version is updated from 5.6-SNAPSHOT to 5.6 (releasing version).
On branch 5.6.0, code is tagged as release-5.6.
If it is an important release (called "final release"), then a maintenance branch will be kept, else it would be deleted after tagging.
On branch 5.6.0, version is updated to 5.6.0-HF01-SNAPSHOT (in case of future minor fixes for 5.6 version).
On branch master, version is updated to 5.7-SNAPSHOT (next release version).
Next development is still done on branch master, with version 5.7-SNAPSHOT.
Bugs identified on 5.6 version will be fixed on maintenance branch 5.6.0 and forward ported to the master branch.
If we estimate some bug fixes are required on 5.6.x released version, we may backport them from master branch to 5.6.x branch and then release a 5.6.(x+1) corrective version.