Create a new release

Vocabulary

On this page, we use the word version for a major version of MapFish Geoportal (2.0), and the word release for each step in this version (2.0.0rc1, 2.0.0, 2.0.1, …).

MapFish Geoportal is the pack that includes ngeo and c2cgeoportal; since 2014, both projects are synchronizing their major versions.

For example, <release> can be 2.0.0rc1 for the first release candidate of the version 2.0, 2.0.0 for the final release, 2.0.1 for the first bug fix release, and <version> can be 2.0, 2.1, …

Pre release task

Before doing a release, you should merge all the previous branches on this one:

  • Merge the release changes (on ngeo and on c2cgeoportal) to the upper branches i.e.: 2.2 => 2.3, 2.3 => 2.4 (master).

    Note

    On c2cgeoportal merge, see if an alembic merge should be done:

    ./docker-run alembic \
        --config=geoportal/tests/functional/alembic.ini \
        --name=main heads
    ./docker-run alembic \
        --config=geoportal/tests/functional/alembic.ini \
        --name=static heads
    

    If yes, create the merge with:

    ./docker-run alembic \
        --config=geoportal/tests/functional/alembic.ini --name=[main|static] \
        merge --message="Merge <src> and <dst> branches" \
        <rev 1> <rev 2>
    

    Remove the import and replace the core of the method by pass in the generated file.

    Finally, add the new file.

c2cgeoportal

New version

Checkout the code:

git fetch
git checkout master
git reset --hard origin/master

Get the localisation from Transifex:

docker build --tag=camptocamp/geomapfish-build-dev docker/build
./docker-run make transifex-get

For each version, we create a new branch (at the latest, for the final release):

git checkout -b <version>
git push origin <version>
Change the version in the following files:
  • .travis.yml (MAIN_BRANCH, MAJOR_VERSION)
  • Jenkinsfile (MAIN_BRANCH, MAJOR_VERSION)
  • Makefile (MAIN_BRANCH, MAJOR_VERSION)
  • docker-run (version)

Commit your changes:

git add .travis.yml Jenkinsfile Makefile docker-run
git commit -m "Create the version <version> branch"

Go back to the master branch:

git checkout master
git merge <version>
Change back the version in the following files:
  • .travis.yml (MAIN_BRANCH, MAJOR_VERSION)
  • Jenkinsfile (MAIN_BRANCH, MAJOR_VERSION)
  • Makefile (MAIN_BRANCH, MAJOR_VERSION)
  • docker-run (version)

Commit your changes:

git add .travis.yml Jenkinsfile Makefile docker-run
git commit -m "Start version <version + 1>"

Push your changes:

git push origin <version> master

Create a new Transifex resource:

rm .tx/config
./docker-run rm /build/c2ctemplate-cache.yaml
./docker-run make transifex-init

Update the references in the index.html file of the gh-pages branch.

Then continue by creating the release.

Do the new release

Checkout the code:

git fetch
git checkout <version>
git reset --hard origin/<version>

Tag the new release:

git tag <release>
git push origin <release>

Run a new job for the <version> branch on Jenkins.

Note

It is possible to do a version only on the latest commit on a branch. If you really need to do that, you should create a new branch.

Notes about Travis

When you push a tag with the pattern ^[0-9]+\.[0-9]+\..+$, a new release will automatically be created on Travis CI.

Post release tasks

When a new release or a new version is done, you should do the following tasks:

  • Merge the version into the upper one to the master i.e.: 2.4 => 2.5, 2.5 => master.

See Pre release task for more information.

  • Upgrade the demo in your home folder, see Upgrading a GeoMapFish application.
  • Some specific things for the demo: UPGRADE.rst <https://github.com/camptocamp/demo_geomapfish/blob/2.4/UPGRADE.rst>_.

For non dev release

  • Rename the milestone on c2cgeoportal and on ngeo from x.y to x.y.z.
  • Create again the milestone on c2cgeoportal and on ngeo for x.y.
  • Move all the open issues to the new milestone and close the current milestone in ngeo and in c2cgeoportal.
  • Send a release email to the geomapfish@googlegroups.com and gmf2@lists.camptocamp.com mailing lists.