Hi Andrew,

That all looks good.

No big deal and not sure where the SUF_CELLML_API etc variables will be 
used, but given the use of 1_0 would imply the 1.0 branch is the 
"branch" part of the SUF_ variables necessary? and if we're talking 
about file name suffixes, I prefer the suffix "-1.0" :-)


David.

Andrew Miller wrote:
> 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 [EMAIL PROTECTED]
> 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
> 
> _______________________________________________
> cellml-discussion mailing list
> [email protected]
> http://www.cellml.org/mailman/listinfo/cellml-discussion

-- 
David Nickerson, PhD
Research Fellow
Division of Bioengineering
Faculty of Engineering
National University of Singapore
Email: [EMAIL PROTECTED]
_______________________________________________
cellml-discussion mailing list
[email protected]
http://www.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to