Create a new release¶
Vocabulary¶
On this page, we use the word version
for a major version of MapFish
Geoportal, and the word release
for each step in this version.
MapFish Geoportal
is the pack that includes ngeo/CGXP and c2cgeoportal;
from 2014 onwards, the major version number of the client projects and
the backend project are synchronized.
For example, <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
, …
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
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>
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 release changes (on
ngeo
and onc2cgeoportal
) 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:./docker-compose-run alembic --config=tests/functional/alembic.ini --name=main heads ./docker-compose-run alembic --config=tests/functional/alembic.ini --name=static heads
If yes, create the merge with:
./docker-compose-run alembic --config=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.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 --makefile=demo.mk update sudo -u sigdev make --makefile=demo.mk build
Test the demo.
Deploy on the demo server with:
sudo -u deploy deploy -r deploy/deploy.cfg demo_server
Rename the milestone on c2cgeoportal and on ngeo from
x.y
tox.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
andgmf2@lists.camptocamp.com
mailing lists.