diff --git a/docs/developer/RELEASE.md b/docs/developer/RELEASE.md index df31594e..d1e473ea 100644 --- a/docs/developer/RELEASE.md +++ b/docs/developer/RELEASE.md @@ -17,23 +17,24 @@ The release candidates are composed by adding the `-rc` suffix. For instance: ## Stable release process -The TL;DR: to publish a vX.Y.Z+A.B.C release is to: +The TL;DR: to publish a vX.Y.Z release is to: -- Push the vX.Y.Z+A.B.C tag to https://codeberg.org/forgejo-integration/forgejo to trigger a workflow that will publish the release in https://codeberg.org/forgejo-experimental/forgejo +- Push the vX.Y.Z tag to https://codeberg.org/forgejo-integration/forgejo to trigger a workflow that will publish the release in https://codeberg.org/forgejo-experimental/forgejo - Give it some time for people to try it out -- Push the vX.Y.Z+A.B.C tag to https://forgejo.octopuce.forgejo.org/forgejo-release/forgejo to trigger a workflow that will sign the release from https://codeberg.org/forgejo-experimental/forgejo and publish it in https://codeberg.org/forgejo-release/forgejo +- Push the vX.Y.Z tag to https://forgejo.octopuce.forgejo.org/forgejo-release/forgejo to trigger a workflow that will sign the release from https://codeberg.org/forgejo-experimental/forgejo and publish it in https://codeberg.org/forgejo-release/forgejo ### Create a milestone and a check list -- Create a `Forgejo vX.Y.Z+A.B.C` milestone set to the date of the release -- Create an issue named `[RELEASE] Forgejo vX.Y.Z+A.B.C` with a description that includes a list of what needs to be done for the release with links to follow the progress -- Set the milestone of this issue to `Forgejo vX.Y.Z+A.B.C` +- Create a `Forgejo vX.Y.Z` milestone set to the date of the release +- Create an issue named `[RELEASE] Forgejo vX.Y.Z` with a description that includes a list of what needs to be done for the release with links to follow the progress +- Set the milestone of this issue to `Forgejo vX.Y.Z` - Close the milestone when the release is complete ### Cutting a release -When a new `VX.Y.Z` release is ready to enter the release candidate stages: +When a new `vX.Y.Z` release is ready to enter the release candidate stages: +- Verify in the Makefile that the variable GITEA_COMPATIBILITY is set to the right version - Create a new `vX.Y/forgejo` branch from the `forgejo` branch - Set a `vX.(Y+1).Z-dev` tag on the `forgejo` branch - Push the `vX.(Y+1).Z-dev` tag to the https://codeberg.org/forgejo-integration/forgejo repository @@ -57,8 +58,8 @@ The dependencies where user visible changes should be harvested when they are up When Forgejo is released, artefacts (packages, binaries, etc.) are first published by the CI/CD pipelines in the https://codeberg.org/forgejo-experimental organization, to be downloaded and verified to work. -- Locally set the vX.Y.Z+A.B.C tag to the tip of the https://codeberg.org/forgejo/forgejo/vX.Y/forgejo branch -- Push the vX.Y.Z+A.B.C tag to https://codeberg.org/forgejo-integration/forgejo +- Locally set the vX.Y.Z tag to the tip of the https://codeberg.org/forgejo/forgejo/vX.Y/forgejo branch +- Push the vX.Y.Z tag to https://codeberg.org/forgejo-integration/forgejo It will trigger a [build workflow](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/.forgejo/workflows/build-release.yml) that: @@ -68,7 +69,7 @@ It will trigger a [build workflow](https://codeberg.org/forgejo/forgejo/src/bran If the build fails, the logs of the workflow can be found in https://codeberg.org/forgejo-integration/forgejo/actions for debugging. Once the build is successful, it must be copied to https://codeberg.org/forgejo-experimental. -- Push the vX.Y.Z+A.B.C tag to https://codeberg.org/forgejo-experimental/forgejo +- Push the vX.Y.Z tag to https://codeberg.org/forgejo-experimental/forgejo It will trigger a [publish workflow](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/.forgejo/workflows/publish-release.yml) that: @@ -81,11 +82,11 @@ Reach out to packagers and users to manually verify the release works as expecte ### Forgejo release publication -- Push the vX.Y.Z+A.B.C tag to https://forgejo.octopuce.forgejo.org/forgejo-release/forgejo +- Push the vX.Y.Z tag to https://forgejo.octopuce.forgejo.org/forgejo-release/forgejo It will trigger a workflow to: -- Push the vX.Y.Z+A.B.C tag to https://codeberg.org/forgejo/forgejo +- Push the vX.Y.Z tag to https://codeberg.org/forgejo/forgejo - Downoad Binaries from https://codeberg.org/forgejo-experimental, sign them and copy them to https://codeberg.org/forgejo - Copy container images from https://codeberg.org/forgejo-experimental to https://codeberg.org/forgejo @@ -97,7 +98,7 @@ and the branches from https://codeberg.org/forgejo/forgejo. ### Forgejo runner publication -- Push the vX.Y.Z+A.B.C tag to https://code.forgejo.org/forgejo/runner +- Push the vX.Y.Z tag to https://code.forgejo.org/forgejo/runner The release is built on https://code.forgejo.org/forgejo-integration/runner, which is a mirror of https://code.forgejo.org/forgejo/runner. @@ -112,7 +113,7 @@ VPN and its role is to copy and sign release artifacts. If publishing the release needs debug, it can be done manually: - https://forgejo.octopuce.forgejo.org/forgejo-release/runner-debug has the same secrets as https://forgejo.octopuce.forgejo.org/forgejo-release/runner -- Make the changes, commit them, tag the commit with vX.Y.Z+A.B.C and force push the tag to https://forgejo.octopuce.forgejo.org/forgejo-release/runner-debug. Note that it does not matter that the tag is not on a commit that matches the release because this action only cares about the tag: it does not build any content itself, it copies it from one organization to another. However it matters that it matches a SHA that is found in the destination repository of the release otherwise it won't be able to set the tag (setting a tag on a non-existing sha does not work). +- Make the changes, commit them, tag the commit with vX.Y.Z and force push the tag to https://forgejo.octopuce.forgejo.org/forgejo-release/runner-debug. Note that it does not matter that the tag is not on a commit that matches the release because this action only cares about the tag: it does not build any content itself, it copies it from one organization to another. However it matters that it matches a SHA that is found in the destination repository of the release otherwise it won't be able to set the tag (setting a tag on a non-existing sha does not work). - Watch the action run at https://forgejo.octopuce.forgejo.org/forgejo-release/runner-debug/actions - To skip one of the publish phases (binaries or container images), delete it and commit in the repository before pushing the tag - Reflect the changes in a PR at https://code.forgejo.org/forgejo/runner to make sure they are not lost @@ -132,14 +133,14 @@ For both the Forgejo runner and Forgejo itself, copying and signing the release ### DNS update -- Update the `release.forgejo.org` TXT record that starts with `forgejo_versions=` to be `forgejo_versions=vX.Y.Z+A.B.C` +- Update the `release.forgejo.org` TXT record that starts with `forgejo_versions=` to be `forgejo_versions=vX.Y.Z` ### Standard toot The following toot can be re-used to announce a minor release at `https://floss.social/@forgejo`. For more significant releases it is best to consider a dedicated and non-standard toot. ``` -#Forgejo vX.Y.Z+A.B.C was just released! This is a minor patch. Check out the release notes and download it at https://forgejo.org/releases/. If you experience any issues with this release, please report to https://codeberg.org/forgejo/forgejo/issues. +#Forgejo vX.Y.Z was just released! This is a minor patch. Check out the release notes and download it at https://forgejo.org/releases/. If you experience any issues with this release, please report to https://codeberg.org/forgejo/forgejo/issues. ``` ## Experimental releases diff --git a/docs/developer/infrastructure.md b/docs/developer/infrastructure.md index 582145e4..15ac3638 100644 --- a/docs/developer/infrastructure.md +++ b/docs/developer/infrastructure.md @@ -332,6 +332,7 @@ It hosts LXC containers setup with [lxc-helpers](https://code.forgejo.org/forgej - upgrades checklist: ```sh docker stop forgejo + docker rm forgejo docker rmi codeberg.org/forgejo-experimental/forgejo:7.0-test bash -x /home/debian/run-forgejo.sh docker logs -n 200 -f forgejo