Release Plan for Gerrit 3.3
High Level Release Plan
Date | Activity |
---|---|
Oct 5 | Set language level to Java 11 on master |
Oct 6 | Create stable-3.3 branch, Release ‘3.3.0-rc0’ |
Oct 12 | Release 3.3.0-rc1 |
Oct 19 | Release 3.3.0-rc2 |
Oct 26 | Release 3.3.0-rc3 |
Nov 2 | Release 3.3.0-rc4 |
Nov 2-6 | Extra E2E testing week |
Nov 9 | Release 3.3.0-rc5 |
Nov 9-13 | “Release week” (see below) |
Nov 16 | Release 3.3.0-rc6 |
Nov 23-27 | Fix of the P0 Issue 40013013 |
Nov 24 | Release 3.3.0-rc7 |
Nov 30 | Final release of 3.3.0 |
Change Acceptance Policy for the Stable Branch
We don’t expect that all ongoing feature development will be completed before
the stable branch is created, so we will allow the completion of existing features
on the stable branch to bring features to completion until rc3
.
The development of new features is strongly discouraged on the stable branch as it may compromise the stability of the release.
After rc3
only bug fixes will be accepted on the stable branch.
We would prefer that bug fixes are pushed for review directly onto the stable branch, rather than onto master to be cherry-picked back. The reason for this is to avoid that the release managers need to spend time manually checking which changes need to be backported, which could result in changes being overlooked.
“Release Week”
The continued emergency with the global outbreak of COVID-19 has caused the cancellation of the Gerrit User Summit 2020, where we typically had managed the release with the cooperation of all the maintainers.
We will ask the community members to allocate some of their time during the “release week” (9-13 Nov) to help with finalizing the release:
- test the release candidates
- report issues
- triage and troubleshoot incoming bug reports
- make fixes
- do code reviews
- test the latest head of the stable branch
To expedite reviews of Library-Compliance and frontend changes, we will ask Google to make some members available, and we will also ask Matthias Sohn or anyone else from the JGit community to be available to help with JGit related issues.
We have set up a dedicated channel on Slack
(#gerrit-33-release
)
where these activities will be coordinated. It is yet to be confirmed if we will
set up any kind of video or voice conferences.
End-to-end Testing
We plan to use the Gatling e2e test framework for Git, developed by GerritForge and Ericsson, to test the stability of the release on a production-like setup on AWS automatically provisioned using the aws-gerrit templates.
GerritForge has also offered its own AWS infrastructure to test the scalability of Gerrit v3.3, particularly with medium to large sized projects.
End of Life for Gerrit 3.0.x
Per the support policy mentioned on the project homepage, after 3.3.0 is released 3.0.x will reach end of life and will no longer be actively supported.
Support for 3.2.x and 3.1.x will continue as usual, 2.16.x may have additional ad-hoc releases for issues related to the migration to NoteDb. Users of 3.0.x or earlier are recommended to upgrade to one of these versions.
Java
Java 11 official language level
Gerrit v3.3.x official releases will have Java 11 language level, this means that the officially released gerrit.war won’t start on Java 8.
Java 8 compatibility
NOTE:This will be the last version with a Java 8 compatible code-base!
Although the official releases will be with Java 11 language level the code-base of stable-3.3 will be validated against both Java 8 and Java 11, thus it will still be possible to build stable-3.3 with Java 8.
We are aware that a number of companies still rely on Java 8, we have therefore opted to keep the code-base of stable-3.3 Java 8 compatible. However, we are planning to, at some time prior to the release of v3.4, drop Java 8 compatibility on the master branch.