17.7. GDA Releases and Branches¶
17.7.1. Current supported releases¶
Release
Date
End of life
Java version
Recommended IDE
GDA 9.31
16/08/2023
Shutdown 1 2024
17
2023-12
GDA 9.32
18/10/2023
Shutdown 2 2024
17
2023-12
GDA 9.33
19/03/2024
Shutdown 3 2024
21
2023-12
GDA 9.34
30/05/2024
Shutdown 4 2024
21
2023-12
GDA 9.35
14/08/2024
Shutdown 1 2025
21
2023-12
GDA 9.36
16/10/2024
Shutdown 2 2025
21
2023-12
GDA 9.37
05/03/2025
Shutdown 3 2025
21
2023-12
GDA 9.38
21/05/2025
Shutdown 4 2025
21
2023-12
GDA 9.39
20/08/2025
Shutdown 1 2026
21
2023-12
GDA 9.40
22/10/2025
Shutdown 2 2026
21
2023-12
master
N/A
N/A
21
2023-12
17.7.2. Branches¶
The branch for mainline development is called master.
GDA uses a release branch workflow.
When a release is made, a branch and tag is created for each repository. For
example for GDA 9.20, a gda-9.20 branch will be created and gda-9.20rel tag.
This allows for changes (ideally only bugfixes) to be pushed to these release branches so that others may benefit from the fixes without having to switch to a master deployment.
For bugfixes the standard workflow is to create a commit on the oldest supported
branch where the bug is present and then merge this forward to newer release
branches (if applicable), and eventually to master. This merge workflow
ensures that there are no ‘duplicate’ commits in the history (which is the case
for cherry-pick workflows).
Cherry-picking is acceptable if a fix had already been merged to master before
its requirement on a release branch.
17.7.3. Development¶
In general all development should be targeting the master branch. This includes new features and enhancements.
Release branches should be constrained to bug fixes and config changes. There are several reasons for this:
Prevent risking the stability of a release
Prevent the overhead of merging changes up to master, particularly when there are likely to be merge conflicts
Ensure that any new features are in the context of the most recent state, taking account of recent new features or API deprecations
17.7.4. Supported releases¶
In agreement with SGLs and beamlines, the two most recent releases of GDA are supported.
This means that two weeks after a release of GDA is made, the release branches for the second previous release will be closed for new Gerrit changes and the CI jobs disabled.
17.7.4.1. Example¶
Initial state is that GDA 9.19 is the current release, GDA 9.18 is the previous
release. Therefore the following branches are open for changes: master,
gda-9.19, gda-9.18.
17th March - GDA 9.20 released,
gda-9.20branch open31st March - Two weeks later
gda-9.18is now closed
In the final state master, gda-9.20, gda-9.19 are open for changes.