We follow the Git Flow branching model (Read more about it in the original document describing it). Basically that boils down to having at least two branches:
Furthermore there might be more branches, which must always be namespaced:
Some Linux distributions have a package called git-flow which will provide easy git command shortcuts to use the merge/branch model of Git Flow without having to do everything by yourself (which is still possible and you should always know how Git Flow uses plain git to achieve things).
What to keep in mind, when you create a layout
Issues (bugs and features) are administrated in the mapbender-repository at:
We create a milestone for every version of Mapbender3:
There are some rules you should keep in mind:
The Mapbender3 version is defined by a four digit numbering system, seperated by dots.
3.0.10.20
the highest difficulty level of a update process.
Increase a digit means always a reset for all digits before. For example - 3.0.10.20 -> 3.1.0.0
This numbering system started with Mapbender3 version 3.0.0.0
# clone the source-code from the release branch
git clone -b release/3.0.5 git@github.com:mapbender/mapbender-starter mapbender-build
# change to the directory
cd mapbender-build
git submodule update --init --recursive
phing deps
# tagging
cd application/mapbender
git tag -a v3.0.5.3 -m "Mapbender release Version 3.0.5.3 read changes https://github.com/mapbender/mapbender/blob/release/3.0.5/CHANGELOG.md"
git push --tags
# tag submodules
cd ../../application/fom
git tag -a v3.0.5.3 -m "Mapbender release Version 3.0.5.3 read changes https://github.com/mapbender/mapbender-starter/blob/release/3.0.5/CHANGELOG.md"
git push --tags
# tag owsproxy3
cd ../../application/owsproxy3
git tag -a v3.0.5.3 -m "Mapbender release Version 3.0.5.3 read changes https://github.com/mapbender/mapbender-starter/blob/release/3.0.5/CHANGELOG.md"
git push --tags
# tag mapbender-starter
cd ../../
git tag -a v3.0.5.3 -m "Mapbender release Version 3.0.5.3 read changes https://github.com/mapbender/mapbender-starter/blob/release/3.0.5/CHANGELOG.md"
git tag
git push --tags (will be shown at https://github.com/mapbender/mapbender-starter/releases)
# run composer.phar update
cd application
./composer.phar update
# use phing to create the tarball
cd ..
phing tarball
# change to the artefacts directory, where phing created the tarball
cd artefacts/
# untar the archive to change some files
tar -xvf mapbender3-3.0.5build1.tar.gz
# that step should not be neccessary: sudo chmod -R 777 mapbender3-3.0.5build1
# change the name of the directory
mv mapbender3-3.0.5build1 mapbender3-3.0.5.3
# remove some files in that directory
rm -R mapbender3-3.0.5.3/app/config/parameters.yml
rm -Rf mapbender3-3.0.5.3/documentation/*
# tag the documentation
cd /data/git/mapbender-documentation/
git tag -a v3.0.5.3 -m "Mapbender release Version 3.0.5.3 read changes https://github.com/mapbender/mapbender-starter/blob/release/3.0.5/CHANGELOG.md"
# copy the actual documentation output
cp -R /data/git/mapbender-documentation/output/* mapbender3-3.0.5.3/documentation/
# create tar.gz with right name for example mapbender3-3.0.5.3.tar.gz
tar -czvf mapbender3-3.0.5.3.tar.gz mapbender3-3.0.5.3/
# create zip with right name for example mapbender3-3.0.5.3.zip
zip -r mapbender3-3.0.5.3.zip mapbender3-3.0.5.3/