CellML Discussion List

Text archives Help


[cellml-discussion] Release process for XPCORBA, CellML API, xpcellml_api, and PCEnv


Chronological Thread 
  • From: ak.miller at auckland.ac.nz (Andrew Miller)
  • Subject: [cellml-discussion] Release process for XPCORBA, CellML API, xpcellml_api, and PCEnv
  • Date: Thu, 02 Nov 2006 13:18:56 +1300

Hi all,

I have been codifying the recent discussions on team-cellml into a shell
script which can be used to control the build process. This shell script
will be sourced into the scripts used launch automated builds, and also
into the scripts which package snapshots and put them onto the FTP
server in the snapshot directory.

I propose the following process for releases:
1) Any major outstanding bugs on the trunk are fixed, and the latest
snapshot is tested.
2) The trunk directory in Subversion is copied to a
branches/versionnumber subdirectory in the relevant Suversion tree, with
svn cp.
3) The branch configuration script (below) is updated specify the new
versions (this implies there will only ever be one branch open at the
same time as the trunk).
4) Automated builds (which also run the unit tests) with BRANCH=yes are
enabled in cron, in addition to the standard non-branch builds.
5) The documentation on the branch is updated to specify the version
number as being a stable version, instead of the text on the trunk,
which claims the code is an unstable trunk release.
6) Snapshots are also put out periodically, by running the snapshot
release scripts with BRANCH=yes. The filename for these snapshots will
have the date on them, as with the other builds, but will also have the
suffix "branch" followed by the name of the branch (with _ replacing .
in the version number). As with other snapshots, these releases will
automatically be put on the FTP server.
7) Snapshots will be put through an informal functional tests. Any
community feedback on snapshots will also be looked into. Any resulting
patches will be applied to the trunk, and if the bug is serious enough,
and the patch worked out properly on the trunk, it will also be applied
to the branch.
8) When a snapshot which passes the functional tests has been created,
the snapshot will be renamed (but not modified), and put into the
applicable Plone software centre as a release candidates. Notifications
of the release candidate will be sent to cellml-discussion at cellml.org.
9) Should any bugs in the release candidate by the community be
reported, they will be looked into, and any resulting patch will be
applied to the trunk. If the bug is serious enough, it will be put onto
the branch, and the process will go back to step 7.
10) The CellML team will discuss and vote on whether to release the
release candidate at the next CellML meeting. If the vote is in favour
of a release, the release candidate will be put in the Plone software
centre as a stable release. If the vote is not to release it, members of
the team opposed to the release will give a reason why it should not be
released. If the reason is that they need more time to review the
release, or that the community should have more time to review the
release, this step will repeat at the next meeting. Otherwise, any
identified issues will be corrected on the trunk, and once the patch
works on the trunk, will be moved onto the branch. The process will then
go back to step 7.

The proposed script controlling version numbers (with step 3 already
incorporated for the next release) is below...

REPO_PREFIX="https://svn.physiomeproject.org/svn/physiome/";
if [[ x$BRANCH == xyes ]]; then
VERSION_CELLML_API=1.0
VERSION_XPCELLML_API=1.0
VERSION_PCENV=0.1
VERSION_XPCORBA=0.1


REPO_CELLML_API="${REPO_PREFIX}CellML_DOM_API/branches/$VERSION_CELLML_API"

REPO_XPCELLML_API="${REPO_PREFIX}xpcellml_api/branches/$VERSION_XPCELLML_API"
REPO_PCENV="${REPO_PREFIX}pcenv/branches/$VERSION_PCENV"
REPO_XPCORBA="${REPO_PREFIX}XPCORBA/branches/$VERSION_XPCORBA"

SUF_CELLML_API=branch$(echo $VERSION_CELLML_API | tr . _)
SUF_XPCELLML_API=branch$(echo $VERSION_XPCELLML_API | tr . _)
SUF_PCENV=branch$(echo $VERSION_PCENV | tr . _)
SUF_XPCORBA=branch$(echo $VERSION_XPCORBA | tr . _)
else
VERSION_CELLML_API=trunk
VERSION_XPCELLML_API=trunk
VERSION_PCENV=trunk
VERSION_XPCORBA=trunk

REPO_CELLML_API="${REPO_PREFIX}CellML_DOM_API/trunk"
REPO_XPCELLML_API="${REPO_PREFIX}xpcellml_api/trunk"
REPO_PCENV="${REPO_PREFIX}pcenv/trunk"
REPO_XPCORBA="${REPO_PREFIX}XPCORBA/trunk"

SUF_CELLML_API=""
SUF_XPCELLML_API=""
SUF_PCENV=""
SUF_XPCORBA=""
fi
if [[ x$DEBUG_BRANCH == xyes ]]; then
echo "VERSION_CELLML_API=$VERSION_CELLML_API"
echo "VERSION_XPCELLML_API=$VERSION_XPCELLML_API"
echo "VERSION_PCENV=$VERSION_PCENV"
echo "VERSION_XPCORBA=$VERSION_XPCORBA"
echo "REPO_CELLML_API=$REPO_CELLML_API"
echo "REPO_XPCELLML_API=$REPO_XPCELLML_API"
echo "REPO_PCENV=$REPO_PCENV"
echo "REPO_XPCORBA=$REPO_XPCORBA"
echo "SUF_CELLML_API=$SUF_CELLML_API"
echo "SUF_XPCELLML_API=$SUF_XPCELLML_API"
echo "SUF_PCENV=$SUF_PCENV"
echo "SUF_XPCORBA=$SUF_XPCORBA"
fi

The output of this script when DEBUG_BRANCH=yes BRANCH=yes is:
VERSION_CELLML_API=1.0
VERSION_XPCELLML_API=1.0
VERSION_PCENV=0.1
VERSION_XPCORBA=0.1
REPO_CELLML_API=https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/branches/1.0
REPO_XPCELLML_API=https://svn.physiomeproject.org/svn/physiome/xpcellml_api/branches/1.0
REPO_PCENV=https://svn.physiomeproject.org/svn/physiome/pcenv/branches/0.1
REPO_XPCORBA=https://svn.physiomeproject.org/svn/physiome/XPCORBA/branches/0.1
SUF_CELLML_API=branch1_0
SUF_XPCELLML_API=branch1_0
SUF_PCENV=branch0_1
SUF_XPCORBA=branch0_1

Note:
1) The proposed version number for the next CellML API stable release is
version 1.0. This version number has been chosen because there has been
concern that the version number of the previous stable release, 0.1,
suggested that the API wasn't ready for general use.
2) xpcellml_api has been given a version number paired with the CellML
API, because xpcellml_api must always correspond to the exact same
version of the CellML API (as it is a wrapper around the CellML API). It
would cause confusion if it was given a different number.
3) PCEnv and XPCORBA are versioned at 0.1, because this is the first
release branch ever to be made.

Please let me know if you can suggest any improvements to the release
process (or the choice of version numbers).

Best regards,
Andrew





Archive powered by MHonArc 2.6.18.

Top of page