forgejo/discussions
49
43

Forgejo v1.20 release candidates & release cycle #27

Closed
opened 2023年05月09日 11:07:55 +02:00 by Ghost · 6 comments

Bonjour,

The Forgejo v1.20 release will come with three kind of significant changes:

  • UI
  • Actions
  • New queue subsystem

Actions won't be production ready and still marked as experimental. The UI changes and the new subsystem have very low test coverage. If there are unexpected breakage in Actions, that's not disruptive because that's what experimental is about. Regressions introduced because of the UI and the new queue systems are more concerning.

To manage this risk I propose to:

  • Switch to semantic versioning and release Forgejo v5.0.0+0-gitea-1.20.0-rc0 upon the first Gitea v1.20 release candidate
  • Publish one (or more) release candidates when Gitea v1.20.0 is released: Forgejo v5.0.5+0-gitea-1.20.0, Forgejo v5.0.6+0-gitea-1.20.1, etc.

This can be explained roughly as follows:

  • Forgejo switches to semantic versioning with a suffix including the matching Gitea version number for clarity
  • Forgejo now has its own release cycle that is not necessarily exactly the same as Gitea
  • Forgejo v5.0.0 will have an extended release candidate period because the Gitea version it includes will need a few point releases to be robust enough for production

The people who are eager to get the latest features and who are not concerned with potential regressions can install the release candidates and decide for themselves it is stable enough. Those who prefer to be on solid ground can just wait for the Forgejo release.

As of Forgejo v1.19 release candidates are published in the https://codeberg.org/forgejo-experimental/ organization so any kind of script that automatically takes whatever is published on https://codeberg.org/forgejo/ won't accidentally install a release candidate. In addition the container images do not have a latest tag which protects installations that need stability from accidentally switching to a major version.

How does that sound?

Bonjour, The Forgejo v1.20 release will come with three kind of significant changes: * UI * Actions * New queue subsystem Actions won't be production ready and still marked as experimental. The UI changes and the new subsystem have very low test coverage. If there are unexpected breakage in Actions, that's not disruptive because that's what experimental is about. Regressions introduced because of the UI and the new queue systems are more concerning. To manage this risk I propose to: * Switch to semantic versioning and release Forgejo v5.0.0+0-gitea-1.20.0-rc0 upon the first Gitea v1.20 release candidate * Publish one (or more) release candidates when Gitea v1.20.0 is released: Forgejo v5.0.5+0-gitea-1.20.0, Forgejo v5.0.6+0-gitea-1.20.1, etc. This can be explained roughly as follows: * Forgejo switches to semantic versioning with a suffix including the matching Gitea version number for clarity * Forgejo now has its own release cycle that is not necessarily exactly the same as Gitea * Forgejo v5.0.0 will have an extended release candidate period because the Gitea version it includes will need a few point releases to be robust enough for production The people who are eager to get the latest features and who are not concerned with potential regressions can install the release candidates and decide for themselves it is stable enough. Those who prefer to be on solid ground can just wait for the Forgejo release. As of Forgejo v1.19 release candidates are published in the https://codeberg.org/forgejo-experimental/ organization so any kind of script that automatically takes whatever is published on https://codeberg.org/forgejo/ won't accidentally install a release candidate. In addition the container images do not have a latest tag which protects installations that need stability from accidentally switching to a major version. How does that sound?
Member
Copy link

I'm guessing this means there will be more v4.x maintenance releases ?

That sounds nice, but SemVer is not ready yet, as 3 steps out of 4 remain to be implemented.

Also, small correction : there's a . between -rc and the RC number.

I'm guessing this means there will be more v4.x maintenance releases ? That sounds nice, but SemVer is not ready yet, as [3 steps out of 4 remain to be implemented](https://codeberg.org/forgejo/forgejo/issues/207#user-content-progress-report). Also, small correction : there's a `.` between `-rc` and the RC number.

I'm guessing this means there will be more v4.x maintenance releases ?

It is likely.

That sounds nice, but SemVer is not ready yet, as 3 steps out of 4 remain to be implemented.

Yes, there is some technical work to do to make that move.

> I'm guessing this means there will be more v4.x maintenance releases ? It is likely. > That sounds nice, but SemVer is not ready yet, as 3 steps out of 4 remain to be implemented. Yes, there is some technical work to do to make that move.

I am concerned that such a change will silently break compatibility with tools in the ecosystem. If a Gitea only tool only does X if Gitea version is >= X.Y, the comparison will yield a different result with Forgejo.

I am concerned that such a change will silently break compatibility with tools in the ecosystem. If a Gitea only tool only does X if Gitea version is >= X.Y, the comparison will yield a different result with Forgejo.
Member
Copy link

It won't, because we thought about this already : Gitea's version endpoint still continues to output the Gitea version number, while ours, the new one, does return our own semantic version number.

It won't, because we thought about this already : Gitea's version endpoint still continues to output the Gitea version number, while ours, the new one, does return our own semantic version number.

A refactor of the entire logger subsystem was proposed. If merged in v1.20 it has a high probability of introducing regressions.

A refactor of the entire logger subsystem was [proposed](https://github.com/go-gitea/gitea/pull/24726). If merged in v1.20 it has a high probability of introducing regressions.

I think the proposal is worth the effort. But there won't be enough energy to implement that for v1.20. Aiming for v1.21 seems more realistic.

I think the proposal is worth the effort. But there won't be enough energy to implement that for v1.20. Aiming for v1.21 seems more realistic.
Sign in to join this conversation.
No Branch/Tag specified
No results found.
No results found.
Labels
Clear labels
User research - Accessibility
Requires input about accessibility features, likely involves user testing.
User research - Blocked
Do not pick as-is! We are happy if you can help, but please coordinate with ongoing redesign in this area.
User research - Community
Community features, such as discovering other people's work or otherwise feeling welcome on a Forgejo instance.
User research - Config (instance)
Instance-wide configuration, authentication and other admin-only needs.
User research - Errors
How to deal with errors in the application and write helpful error messages.
User research - Filters
How filter and search is being worked with.
User research - Future backlog
The issue might be inspiring for future design work.
User research - Git workflow
AGit, fork-based and new Git workflow, PR creation etc
User research - Labels
Active research about Labels
User research - Moderation
Moderation Featuers for Admins are undergoing active User Research
User research - Needs input
Use this label to let the User Research team know their input is requested.
User research - Notifications/Dashboard
Research on how users should know what to do next.
User research - Rendering
Text rendering, markup languages etc
User research - Repo creation
Active research about the New Repo dialog.
User research - Repo units
The repo sections, disabling them and the "Add more" button.
User research - Security
User research - Settings (in-app)
How to structure in-app settings in the future?
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
forgejo/discussions#27
Reference in a new issue
forgejo/discussions
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?