Policy for Patches
The information in this document in good part reflects and extends the
Tag & Release policy document of Geant4.
- General Policy
- Technical Information
1. General Policy
The following points applies when a patch to an existing Geant4 release
is made:
- Patches to the more recent public releases of Geant4 are provided
according to the number and importance of fixes available.
- Patches should ONLY include fixes, no new features, classes or
interface changes.
- The decision if and when to deliver a public patch is taken by the
release team in consultation with the STT and the Category Coordinators
involved.
- The approximate date for the release of a patch is announced to the SB
by the release coordinator as soon as it can be established.
- Q/A and validation tests are performed as for a public release.
- A patch is announced by the release coordinator to the user community as for
a public release; source code and binary libraries distributed from the
Web are updated accordingly.
2. Technical Information
- A release patch tag is identified by tags of this format:
geant4-XX-YY-patch-ZZ
where:
- XX-YY refers to the latest minor public release
- ZZ is the patch release number, which is incremented
sequentially and reset at every new major/minor release.
A patch tag should not include the system tests directory and the
categories' unit tests directories.
Example:
- geant4-09-02-patch-01 identifies the first patch
applied to release 9.2.
- geant4-09-02-patch-01-ref identifies the corresponding
development tag, which includes also the system tests not distributed
in the public release.
- The release coordinator creates a branch tag in the repository,
based on the tag of the release to be patched. The branch tag is of the
form geant4-XX-YY-patches_branch; the branch will remain valid
for any future patches to be applied to that release.
Example:
- geant4-09-02-patches_branch is the branch tag created
starting from geant4-09-02-ref-00. Fixes committed
in this branch will form release 9.2.p01, and, later on,
any other future patch on release 9.2.
- Fixes to be provided as a patch to an existing release
XX.YY[.pKK] should be implemented and committed by
category coordinators to the specific branch-tag, under the supervision
of the release coordinator.
Example:
A tag of the form category-name-VXX-WW-ZZ has to be provided to
STT as normal practice foresees, where ZZ is the last increased
number for that category in the previous release series WW.
Example:
NOTES
- In order to synchronise with fixes introduced in other categories
in the branch tag, it will be required to apply an update from
time to time; i.e.:
cd $G4INSTALL
svn update
and verify that the tests give the expected results...
- An already existing development tag including just fixes which you
wish to provide in the patch, can be imported in the branch tag for
the patch as follows:
cd $G4INSTALL/source/digits_hits
g4svn merge digits_hits-V09-02-00
You should resolve any clash which may be reported, then
update the History file, commit the imported/modified files to
the branch, and tag:
svn commit -m "Merged files from digits_hits-V09-02-00"
svn tag digits_hits-V09-01-11
- Once all fixes for the patch are committed and the patch is finalised,
is is important to remember to update the tree to the sticky tag
which will be created for the patch; i.e., abandon the branch to avoid
easy mistakes:
cd $G4INSTALL
g4svn switch geant4-09-02-patch-01-ref
- Fixes committed to the branch for a patch may in case also be committed
on the HEAD or main TRUNK for future releases.
It is suggested to do this in a separate source tree dedicated to the
current development.
|