blob: f72b1a96db8ad3d9109f280b4d349d95066a1100 [file] [log] [blame] [view]
---
title: "Release Plan for Gerrit 3.4"
tags: news
keywords: news
permalink: 2021-03-16-gerrit-3.4-release-plan.html
summary: "Release Plan for Gerrit 3.4"
hide_sidebar: true
hide_navtoggle: true
toc: true
---
## High Level Release Plan
| Date | Activity |
|-----------|----------------------------------------------------|
| Apr 5 | Create stable-3.4 branch, Release '3.4.0-rc0' |
| Apr 12 | Release `3.4.0-rc1` |
| Apr 19 | Release `3.4.0-rc2` |
| Apr 26 | Release `3.4.0-rc3` |
| May 3 | Release `3.4.0-rc4` |
| May 3-7 | Extra E2E testing week |
| May 10-14 | "Release week" (see below) |
| May 17 | Final release of `3.4.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 made unlikely
to have a face-to-face Gerrit Maintainers' Hackathon in the spring of 2021,
where we typically had managed the release with the cooperation of all
maintainers.
We will ask the community members to allocate some of their time during the
"release and e2e testing week" (10-14 May) 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 in the EU and USA time-zones, and we will
also ask Matthias Sohn or anyone else from the JGit community to be available to
help with JGit related issues.
## End-to-end Testing
We plan to use the
[Gatling e2e test framework for Git](https://gerrit-review.googlesource.com/Documentation/dev-e2e-tests.html),
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](https://gerrit.googlesource.com/aws-gerrit)
templates.
[GerritForge](https://www.gerritforge.com) has also offered its own AWS infrastructure to test the
scalability of Gerrit v3.4, particularly with medium to large sized projects.
The [Gerrit-CI](https://gerrit-ci.gerritforge.com) has also an automated
[aws-gerrit pipeline](https://gerrit-ci.gerritforge.com/job/gatling-gerrit-test/)
that will pointed to the stable-3.4 branch and run on a daily basis.
## End of Life for Gerrit 3.1.x
Per the support policy mentioned on the
[project homepage](https://www.gerritcodereview.com/support.html#supported-versions),
after 3.4.0 is released 3.1.x will reach end of life and will no longer be
actively supported.
Support for 3.3.x and 3.2.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.1.x or earlier are recommended to upgrade to one of these versions.
## Java
### Java 11 official language level
Gerrit v3.4.x official releases will have Java 11 language level, this means
that the officially released gerrit.war won't start on Java 8.
From the [statistics of the latest Gerrit v3.3.x](https://www.gerritcodereview.com/2021-03-09-esc-minutes.html#gerrit-v33-and-double-release-on-java-8)
only 0.1% of the installations are left 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.4 will be validated against both Java 8 and Java 11,
thus it will still be possible to build stable-3.4 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.4 Java 8 compatible.
However, we are planning to, at some time prior to the release of v3.5, drop Java 8
compatibility on the master branch.