Create a new release

Vocabulary

On this page I use the word version for a major version of MapFish Geoportal (1.6), and the word release for each step in this version (1.6.0rc1, 1.6.0, 1.6.1, …).

MapFish Geoportal is the pack that includes CGXP and c2cgeoportal, from start of 2014 both projects will synchronize their major versions.

Then <release> can be 1.6.0rc1 for the first release candidate of the version 1.6.0, 1.6.0 for the final release, 1.6.1 for the first bug fix release, and <version> can be 1.6, 2.0, …

For ngeo see here <https://github.com/camptocamp/ngeo/blob/master/docs/developer-guide.md#create-a-package-on-npm>_.

c2cgeoportal

New version

Checkout the code:

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

Get the localisation from Transifex:

make transifex-get

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

git checkout -b <version>
git push origin <version>

Go back to the master branch:

git checkout master

Edit the version in the setup.py to be <version + 1>.

Commit your changes:

git add setup.py
git commit -m "Start version <version + 1>"

Push your changes:

git push origin master

Create a new Transifex resource:

make transifex-init

Then continue by creating the release.

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>

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 release changes (on ngeo and on c2cgeoportal) to the upper branches i.e.: 1.6 => 2.0, 2.0 => master.

    Note

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

    .build/venv/bin/alembic \
        --config c2cgeoportal/tests/functional/alembic.ini \
        heads
    .build/venv/bin/alembic \
        --config c2cgeoportal/tests/functional/alembic_static.ini \
        heads
    

    If yes create the merge with:

    .build/venv/bin/alembic \
        --config c2cgeoportal/tests/functional/alembic[_static].ini \
        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.

    And finally add the new file.

  • Upgrade the demo in your home folder with make upgrade.

  • Update the demo on the test server in the main folder with:

    sudo -u sigdev make -f demo.mk update
    sudo -u sigdev make -f demo.mk build
    
  • Test the demo <http://testgmf.sig.cloud.camptocamp.net/>_.

  • Deploy on the demo server with:

    sudo -u deploy deploy -r deploy/deploy.cfg demo_server
    
  • Rename the milestone on c2cgeoportal <https://github.com/camptocamp/c2cgeoportal/milestones>_ and on ngeo <https://github.com/camptocamp/ngeo/milestones>_ from x.y to x.y.z.

  • Create again the milestone on c2cgeoportal <https://github.com/camptocamp/c2cgeoportal/milestones>_ and on ngeo <https://github.com/camptocamp/ngeo/milestones>_ for x.y.

  • Move all the open issues to the new milestone and close the current milestone in ngeo <https://github.com/camptocamp/ngeo/milestones>_ and in c2cgeoportal <https://github.com/camptocamp/c2cgeoportal/milestones>_.

  • Send a release email to the geomapfish@googlegroups.com and gmf2@lists.camptocamp.com mailing lists.