[crystal/release] Forgejo v1.18.3-1crystal0 #1

Closed
opened 2023-02-09 14:55:10 -07:00 by crystal · 1 comment

I have created this issue to document and track the release process for the next version of my fork, based upon the new version of Forgejo released today. There have been several previous releases of my fork, and I would like to start documenting a consistent and reproducible process for creating these releases.

What I'm building here is effectively a soft-fork of Forgejo, which is in turn a soft-fork of Gitea, with some small additional features backported to the current release branch. This means that, much like Forgejo, I need to regularly archive the current branches and rebase them upon fresh copies of the upstream branches. Previous branches mirrored from upstream such as forgejo, main, and v1.18/forgejo are typically updated by checking out the respective branch from mirror/forgejo and force pushing to the respective branch in this repo. Alternatively, it can be done by deleting the branch from this repo, checking it out from the upstream repo, and then pushing it to this repository. Archives of these upstream branches are stored in the upstream repository using hidden refs and the various soft-fork/* branches, so they are not archived in this repo. Meanwhile, the fork branches such as v1.18/crystal or crystal/ci will be moved to a respective archive/[date]/[branch] branch and a new branch with the old name is created from the respective upstream branch. Each additional commit that needs to be added to the branch is then cherry-picked, either from the old version of the same branch, or from the relevant upstream commit. Sometimes commits may be squashed or rewritten during this process to reduce the necessary human labor during future rebases.

The following tasks must be accomplished for this release:

  • Rebase v1.18/crystal branch
    • Synchronize crystal:v1.18/forgejo with mirror:v1.18/forgejo
      • This didn't require a rebase this time, the branch was fast-forwarded, still proceeding with rebasing v1.18/crystal anyway.
    • Archive v1.18/crystal branch
    • Create new v1.18/crystal branch based on v1.18/forgejo
      • Update default branch
    • Cherry-pick backports and CI commits
      • Squash CI commits if needed
  • Integration tests: v1.18/crystal
    • Started: CrystalIntegration
    • Passed: compliance
    • Passed: testing-amd64 (takes up to an hour)
  • Update forgejo-build
  • Publish release v1.18.3-1crystal0
  • Deploy the new release to CrystalCommit Forge
I have created this issue to document and track the release process for the next version of my fork, based upon the new version of Forgejo released today. There have been several [previous releases](https://sc.cryxtal.org/crystal/forgejo-build/releases) of my fork, and I would like to start documenting a consistent and reproducible process for creating these releases. What I'm building here is effectively a soft-fork of Forgejo, which is in turn a soft-fork of Gitea, with some small additional features backported to the current release branch. This means that, much like Forgejo, I need to regularly archive the current branches and rebase them upon fresh copies of the upstream branches. Previous branches mirrored from upstream such as `forgejo`, `main`, and `v1.18/forgejo` are typically updated by checking out the respective branch from [mirror/forgejo](https://sc.cryxtal.org/mirror/forgejo) and force pushing to the respective branch in this repo. Alternatively, it can be done by deleting the branch from this repo, checking it out from the upstream repo, and then pushing it to this repository. Archives of these upstream branches are stored in the upstream repository using hidden refs and the various `soft-fork/*` branches, so they are not archived in this repo. Meanwhile, the fork branches such as `v1.18/crystal` or `crystal/ci` will be moved to a respective `archive/[date]/[branch]` branch and a new branch with the old name is created from the respective upstream branch. Each additional commit that needs to be added to the branch is then cherry-picked, either from the old version of the same branch, or from the relevant upstream commit. Sometimes commits may be squashed or rewritten during this process to reduce the necessary human labor during future rebases. The following tasks must be accomplished for this release: - [x] Rebase `v1.18/crystal` branch - [x] Synchronize `crystal:v1.18/forgejo` with `mirror:v1.18/forgejo` - This didn't require a rebase this time, the branch was fast-forwarded, still proceeding with rebasing `v1.18/crystal` anyway. - [x] Archive `v1.18/crystal` branch - [x] Create new `v1.18/crystal` branch based on `v1.18/forgejo` - [x] Update default branch - [x] Cherry-pick backports and CI commits - [x] Squash CI commits if needed - [x] Integration tests: `v1.18/crystal` - [x] Started: [CrystalIntegration](https://ci.cryxtal.org/crystal/forgejo/build/46) - [x] Passed: compliance - [x] Passed: testing-amd64 (takes up to an hour) - [x] Update [forgejo-build](https://sc.cryxtal.org/crystal/forgejo-build) - [x] Reset submodule - [x] Push changes - [x] Test build - [x] Started: [CrystalIntegration](https://ci.cryxtal.org/crystal/forgejo-build/build/45) - The build will not actually proceed until there is a passing [pipeline for the target commit](https://ci.cryxtal.org/crystal/forgejo/build/46), the `ci-verify` step is not hung. - [x] Passed - [x] Publish release v1.18.3-1crystal0 - [x] Create tag `v1.18.3-1crystal0` on [forgejo-build](https://sc.cryxtal.org/crystal/forgejo-build) - [x] Build started: [CrystalIntegration](https://ci.cryxtal.org/crystal/forgejo-build/build/46) - [x] Build published: [forgejo-build Releases](https://sc.cryxtal.org/crystal/forgejo-build) - [x] Add release message: [Release v1.18.3-1crystal0](https://sc.cryxtal.org/crystal/forgejo-build/releases/tag/v1.18.3-1crystal0) - [x] Deploy the new release to CrystalCommit Forge
Poster
Owner

The build has been deployed to CrystalCommit Forge

image

The release page is available at https://sc.cryxtal.org/crystal/forgejo-build/releases/tag/v1.18.3-1crystal0

That's all folks!

The build has been deployed to CrystalCommit Forge ![image](/attachments/b34355a9-be94-4ed2-a481-d9ff1c093532) The release page is available at https://sc.cryxtal.org/crystal/forgejo-build/releases/tag/v1.18.3-1crystal0 That's all folks!
4.6 KiB
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: crystal/forgejo#1
There is no content yet.