The information in this document in good part reflects and extends the Tag & Release policy document of Geant4.
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.
- 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 patches branch in the repository, based on the tag of the release to be patched. The branch tag is of the form geant4-XX-YY_patches; the branch will remain valid for any future patches to be applied to that release.
- geant4-09-02_patches 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.
- Check out the whole geant4-dev source code tree updated to the branch tag:
git checkout -b run-V10-04-03 upstream/geant4-10-04_patches
- Implement the fix in the code, commit and create a Merge Request to happen in the branch of the patch.
- Check out the whole geant4-dev source code tree updated to the branch tag:
- A tag-ID of the form category-name-VXX-WW-ZZ has to be provided as normal practice foresees, where ZZ is the last increased number for that category in the previous release series WW.
- Provide a Tag-ID for the committed code for the release 10.4 series (numbering should refer to the previous release to differentiate from the development on the Master or in the subsequent release):
emstand-V10-03-23
- Submit the Merge Request as usual, but - specifying the branch of the patch - where to merge the fixes.
- Provide a Tag-ID for the committed code for the release 10.4 series (numbering should refer to the previous release to differentiate from the development on the Master or in the subsequent release):
NOTES
- Details on the procedures for contributing to the GitLab repository can be found in GitLab, and in particular in the session "Preparing and Submitting Patch Merge Requests".
- Fixes committed to the branch for a patch may in case also be merged on the Master for future releases.
It is suggested to do this in a separate source tree dedicated to the current development.