docs/release-management.md
This document describes the release cycle, backports, versioning, and the release manager checklist. For everyday contribution workflow, see CONTRIBUTING.md.
We backport PRs given the following circumstances:
<version>-rc0 has not been released yet. Here, we backport as much as possible. <!-- TODO: Is that our definition with the new backport bot? -->rc0 has been released. Here, we only backport bug- and security-fixes, and small enhancements. Large PRs such as refactors are not backported anymore. <!-- TODO: Is that our definition with the new backport bot? -->In the past, it was necessary to manually backport your PRs.
Now, that's not a requirement anymore as our backport bot tries to create backports automatically once the PR is merged when the PR
backport/manualbackport/<version>The backport/manual label signifies either that you want to backport the change yourself, or that there were conflicts when backporting, thus you must do it yourself.
The title of backport PRs should be
<original PR title> (#<original pr number>)
The first two lines of the summary of the backporting PR should be
Backport #<original pr number>
with the rest of the summary and labels matching the original PR.
Frontports behave exactly as described above for backports.
We use a release schedule so work, stabilization, and releases stay predictable.
We will try to publish a new major version every three months:
v1.26.0-rc0) and publish it for testing in the first week of the release month.v1.26.0) in the one or two weeks following the release candidate.main. Release candidates ship for testing; the final release for that line is maintained from that branch.During a cycle we may ship patch releases for an older line. For example, if the latest release is v1.2, we can still publish v1.1.1 after v1.1.0.
We support per standard the last major release. For example, if the latest release is v1.26, we support v1.26 and v1.25, but not v1.24 anymore. We will only publish security fixes for the last major release, so if you are using an older release, please upgrade to a supported release as soon as possible. Also we always try to support the latest on main branch, so if you are using the latest on main, you should be fine.
Gitea has the main branch as a tip branch and has version branches
such as release/v1.19. release/v1.19 is a release branch and we will
tag v1.19.0 for binary download. If v1.19.0 has bugs, we will accept
pull requests on the release/v1.19 branch and publish a v1.19.1 tag,
after bringing the bug fix also to the main branch.
Since the main branch is a tip version, if you wish to use Gitea
in production, please download the latest release tag version. All the
branches will be protected via GitHub, all the PRs to every branch must
be reviewed by two maintainers and must pass the automatic tests.
main with PRs with label changelog and after it has been merged do following steps:
-dev tag as git tag -s -F release.notes vMAJOR.MINOR.0-dev and push the tag as git push origin vMAJOR.MINOR.0-dev.release/vMAJOR.MINORrelease/vMAJOR.MINOR and wait till it is reviewed and merged.git tag -s -F release.notes vMAJOR.MINOR.PATCH, release.notes file could be a temporary file to only include the changelog this version which you added to CHANGELOG.md.git push origin vMAJOR.MINOR.$. CI will automatically create a release and upload all the compiled binary. (But currently it doesn't add the release notes automatically. Maybe we should fix that.)main and update the version in docs/config.yaml to refer to the new version.#announcements