Commit cc6e59f7 authored by Joseph Mirabel's avatar Joseph Mirabel Committed by Joseph Mirabel
Browse files

Add first draft of instructions for releasing HPP.

parent 1708ee08
......@@ -35,3 +35,39 @@ do
docker push${branch}-premade:${ubuntu}
## Make new releases
The explanation below assumes you have an account on and that
you have write-access on
### Naming the release
In the following, *M*, *m* and *r* correspond to major, minor and revision numbers.
- Tags *vM.m.r-rc* correspond to tested releases.
- Tags *vM.m.r* correspond to benchmarked releases.
- *master* branches always point to the latest benchmarked release.
- *devel* branches are always based on the latest tested release.
### Tested release
The procedure only checks that the code compiles and the unittests pass.
When you are ready with your changes:
1. If hpp-doc has changes, push to branch *devel* on
Otherwise, trigger a new build on
2. If the build is successful, run `scripts/ <version>`.
The script will check that:
- You are on the *devel* branch in all hpp repositories.
- All hpp repositories are clean (no local changes).
3. Push the tags to github. (TODO add a script)
### Benchmarked release
Benchmarked release are tested release for which the benchmark have been run.
1. Same as step 1 above, using branch *future* instead of *devel*.
2. Run the scripts in `hpp_benchmark`.
3. Same as step 2 above.
4. Move the *master* branch to the current tag and push *master* and tag to github. (TODO add a script)
set -e
# I (Joseph Mirabel) do not think there
# is a need to create tags for these ones.
# hpp-util
# hpp-template-corba
# hpp-statistics
# hpp-environments
# Version
if [ ! $# -eq 1 ]; then
echo "usage: $0 version"
echo "$#"
exit 1
# Packages to tag
# pinocchio
pkg_main="hpp-fcl hpp-pinocchio hpp-constraints hpp-corbaserver hpp-core \
hpp_tutorial hpp-doc \
hpp-walkgen hpp-wholebody-step hpp-wholebody-step-corba \
hpp-manipulation hpp-manipulation-corba hpp-manipulation-urdf \
hpp-gepetto-viewer hpp-gui hpp-plot"
echo "Devel directory is $DEVEL_HPP_DIR"
# Check that
# - current branch is devel
# - local repository if clean
for pkg in ${pkg_main}; do
GIT="git -C ${DEVEL_HPP_DIR}/src/${pkg}"
current_branch=$(${GIT} rev-parse --abbrev-ref HEAD)
if [ ! "${current_branch}" == "devel" ]; then
echo "${pkg}: Current branch is ${current_branch}. Should be devel."
#exit 1
${GIT} update-index -q --refresh
CHANGED=$(${GIT} diff-index --name-only HEAD --)
if [ -n "${CHANGED}" ]; then
echo "${pkg}: Working directory not clean."
#exit 1
# Create the tags
for pkg in ${pkg_main}; do
GIT="git -C ${DEVEL_HPP_DIR}/src/${pkg}"
echo "Create tag ${version} in ${pkg}"
${GIT} tag -a -m "Version ${version}" ${version}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment