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
ngeoand onc2cgeoportal) to the upper branches i.e.:2.2=>2.3,2.3=>2.4(master).Note
On
c2cgeoportalmerge, 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
passin the generated file.Finally, add the new file.
ngeo¶
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.ytox.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.comandgmf2@lists.camptocamp.commailing lists.