32
41
Fork
You've already forked website
52

Forgejo is a drop in replacement for Gitea now but not for much longer #413

Closed
earl-warren wants to merge 1 commit from earl-warren/website:wip-blog-drop-in into main
pull from: earl-warren/website:wip-blog-drop-in
merge into: forgejo:main
forgejo:main
forgejo:renovate/lock-file-maintenance
forgejo:renovate/linters
forgejo:renovate/hast-3.x
forgejo:monthly-2026-05
forgejo:mahlzahn-eslint-js
forgejo:preview-link-status
forgejo:nightfire
forgejo:2022年12月14日-main
Contributor
Copy link

This is the companion blog post of the hard fork governance agreement.

Preview: https://forgejo.codeberg.page/@pull_413/2024-01-gitea-drop-in/

This is the companion blog post of the [hard fork governance](https://codeberg.org/forgejo/governance/issues/58) agreement. Preview: https://forgejo.codeberg.page/@pull_413/2024-01-gitea-drop-in/
Collaborator
Copy link
Preview ready: https://forgejo.codeberg.page/@pull_413/ https://forgejo.codeberg.page/@pull_413/docs/v1.21/admin/command-line/ https://forgejo.codeberg.page/@pull_413/docs/next/admin/command-line/ https://forgejo.codeberg.page/@pull_413/docs/latest/admin/command-line/ https://forgejo.codeberg.page/@pull_413/docs/v1.22/admin/config-cheat-sheet/ https://forgejo.codeberg.page/@pull_413/docs/v1.22/admin/command-line/
earl-warren force-pushed wip-blog-drop-in from 06af0971fd
All checks were successful
pr / preview (pull_request) Successful in 57s
to bf6bd62cc3
All checks were successful
pr / preview (pull_request) Successful in 50s
2024年02月06日 12:15:32 +01:00
Compare
earl-warren force-pushed wip-blog-drop-in from bf6bd62cc3
All checks were successful
pr / preview (pull_request) Successful in 50s
to 53755283af
All checks were successful
pr / preview (pull_request) Successful in 50s
2024年02月06日 12:28:43 +01:00
Compare
earl-warren force-pushed wip-blog-drop-in from 53755283af
All checks were successful
pr / preview (pull_request) Successful in 50s
to 44211e7d1d
All checks were successful
pr / preview (pull_request) Successful in 49s
2024年02月06日 12:41:07 +01:00
Compare
@ -0,0 +16,4 @@
Being a drop-in replacement depends on Gitea being Free Software, which is no longer the case for admins trapped in Gitea Cloud which [runs a version of Gitea that is not publicly available](https://codeberg.org/forgejo/discussions/issues/92).
CommitGo and Gitea Ltd, the two parent company behind the Gitea project are now firmly [engaged in the Open Core road](https://codeberg.org/forgejo/discussions/issues/102). This is the [same business model](https://en.wikipedia.org/wiki/Open-core_model) as GitLab Inc. which relies on developing proprietary products alongside Free Software. Both GitLab Inc. and CommitGo co-sponsored the Open Core Summit late 2023 which further confirms it is an established strategy.
Member
Copy link

s/two parent company/two parent companies/

s/two parent company/two parent companies/
@ -0,0 +37,4 @@
It is too early to tell what 2024 will bring to Gitea but it seems likely that:
- There will be more non-Free Software in play, not less
- The impact it will have on Gitea admins is going to be carefully concealed to lure users in
Member
Copy link

There are periods after the sentences in the list above, but not after these. Probably a tiny thing, but I think these should end in a period too.

There are periods after the sentences in the list above, but not after these. Probably a tiny thing, but I think these should end in a period too.

Thank you for writing this post!

I think the title is a bit too negative.

I would be more comfortable with something like:

  • Forgejo development workflow will switch from regular rebase to regular cherry-picking (title along this lines)
  • this will make Forgejo a hard fork
  • while it might endanger the "drop-in" replacement in the long term (since large changes might not be easy to cherry-pick)
  • being a hard fork will considerably ease directly contributing to the project
  • translations will be managed independently (using free software 🎉)

This way the post does not have to talk too much about Gitea (my hope is that Forgejo can have a life on its own, not only live as "Gitea, but not commercial", just like Gitea is not only seen as a fork of gogs)

Thank you for writing this post! I think the title is a bit too negative. I would be more comfortable with something like: - **Forgejo development workflow will switch from regular rebase to regular cherry-picking** (title along this lines) - this will make Forgejo a hard fork - while it might endanger the "drop-in" replacement in the long term (since large changes might not be easy to cherry-pick) - being a hard fork will considerably ease directly contributing to the project - translations will be managed independently (using free software 🎉) This way the post does not have to talk too much about Gitea (my hope is that Forgejo can have a life on its own, not only live as "Gitea, but not commercial", just like Gitea is not only seen as a fork of gogs)

Upon re-reading the post, I'm with @oliverpool, it has a too negative tone, and too much focus on Gitea and its problems (not wrong, but also not setting a good tone, either). Focusing on the positive aspects, away from stopping being a drop-in replacement (which is a side effect which we do not know how soon or how late will happen) would send a very different message.

It can still highlight that being a drop-in replacement will no longer be guaranteed. But "no longer guaranteed" has a very different feel to it.

Upon re-reading the post, I'm with @oliverpool, it has a too negative tone, and too much focus on Gitea and its problems (not wrong, but also not setting a good tone, either). Focusing on the positive aspects, away from stopping being a drop-in replacement (which is a side effect which we do not know how soon or how late will happen) would send a very different message. It can still highlight that being a drop-in replacement will no longer be guaranteed. But "no longer guaranteed" has a very different feel to it.
n0toose left a comment
Copy link

I apologize for the verbosity, but I think this is important.

I apologize for the verbosity, but I think this is important.
@ -0,0 +5,4 @@
excerpt: Upgrading from Gitea to Forgejo is as simple as changing the URL from which the release is downloaded. It is a drop in replacement. However this started to change end of 2023 when Gitea turned Open Core and users trapped in Gitea Cloud were no longer able upgrade to Forgejo. In addition, early 2024, Forgejo became a hard fork of Gitea to address endemic regressions introduced in the codebase. If you intend to upgrade from Gitea to Forgejo, now is the time.
---
Upgrading from Gitea to Forgejo is as simple as [changing the URL from which the release is downloaded](https://forgejo.org/download/). The [comparison page](https://forgejo.org/compare/) explains the benefits, the most significant one being better security.
Member
Copy link

I think some sort of an acknowledgment that "explains why we believe that there are increasingly clear indications as to why a switch would be beneficial for you, the user" would be better here. We're basically divorcees and the breakup was awful. It's normal to come across as an authority in the context of an announcement, but this post is also serving the role of trying to convince someone of something and it could spread in various corners of the Internet that do not have the context that we do.

I understand that we don't say "we" normally, but positioning ourselves immediately as an authority right off the bat and then urging someone to do something, in this situation, can come across as bossy and entitled and as if Forgejo is trying to sell something.

It's a framing that other participants of the free software culture have employed, and I see it as a mistake that we explicitly have to learn from.

I think some sort of an acknowledgment that "explains why *we believe* that there are increasingly clear indications as to why a switch would be beneficial for you, the user" would be better here. We're basically divorcees and the breakup was awful. It's normal to come across as an authority in the context of an announcement, but this post is also serving the role of trying to convince someone of something and it could spread in various corners of the Internet that do not have the context that we do. I understand that we don't say "we" normally, but positioning ourselves immediately as an authority right off the bat and then urging someone to do something, in this situation, can come across as bossy and entitled and as if Forgejo is trying to sell something. It's a framing that other participants of the free software culture have employed, and I see it as a mistake that we explicitly have to learn from.
@ -0,0 +9,4 @@
Gitea admins are encouraged to **proceed with the upgrade as soon as possible because it will become more difficult in the near future**, for two reasons:
- Gitea [turned Open Core](https://codeberg.org/forgejo/discussions/issues/102) late 2023.
Member
Copy link

I think that the separation of Gitea, the open-source project on github.com, and Gitea, the governance project and trademark owner, should be made clearly. Your perception of the current power dynamic should be explained.

Something like co-developed with community members but, ultimately, exclusively controlled by Gitea Ltd. (and with all the consequences and irreparable systemic failures that this dynamic currently entails)

I think that the separation of Gitea, the open-source project on github.com, and Gitea, the governance project and trademark owner, should be made clearly. Your perception of the current power dynamic should be explained. Something like *co-developed with community members but, ultimately, exclusively controlled by Gitea Ltd. (and with all the consequences and irreparable systemic failures that this dynamic currently entails)*
@ -0,0 +14,4 @@
## Gitea turning Open Core
Being a drop-in replacement depends on Gitea being Free Software, which is no longer the case for admins trapped in Gitea Cloud which [runs a version of Gitea that is not publicly available](https://codeberg.org/forgejo/discussions/issues/92).
Member
Copy link

I think the "you have no control over" part should be made more explicitly - this statement is in itself true, but the cause and effect relationship is not clear.

This is explained later to some degree, but I think the explanation talking about how Gitea Cloud is the same thing as Gitea instead of calling Gitea Cloud a proprietary extension of Gitea provided by the two-person company owned by Gitea, which it is not obliged to publish in any capacity or "publish" at a later stage, is confusing and not a good idea. We've heard the "Gitea is still open-source" line, the "Gitea is open core" line has to be clarified - maybe we don't have to explain it to death, but a small reference as to why before redirecting someone to an external URL (people don't read links) would be good here..

I think the "you have no control over" part should be made more explicitly - this statement is in itself true, but the cause and effect relationship is not clear. This is explained later to some degree, but I think the explanation talking about how Gitea Cloud is the same thing as Gitea **instead** of calling Gitea Cloud a proprietary extension of Gitea provided by the two-person company owned by Gitea, which it is not obliged to publish in any capacity or "publish" at a later stage, is confusing and not a good idea. We've heard the "Gitea is still open-source" line, the "Gitea is open core" line has to be clarified - maybe we don't have to explain it to death, but a small reference as to why **before** redirecting someone to an external URL (people don't read links) would be good here..
@ -0,0 +31,4 @@
The evolution of Gitea in the past three years follows that pattern:
- In 2021 Gitea was a community driven Free Software project with democratically elected leaders.
- In 2022 a for-profit company took over Gitea and promised it will stay Free Software.
Member
Copy link

Attaching a source with an explicit quote would be optimal, otherwise it gives off "just trust me bro" vibes that, given with how charged the term "Free Software" is, could mean anything from "we won't build proprietary extensions" to more radical positions that do not represent us.

Attaching a source with an explicit quote would be optimal, otherwise it gives off "just trust me bro" vibes that, given with how charged the term "Free Software" is, could mean anything from "we won't build proprietary extensions" to more radical positions that do not represent us.
Author
Contributor
Copy link

After reflecting on it, I agree it needs an entirely different approach. No surprise there: it is a difficult one to get right. I'll think about it but please don't hold back if you would like to propose an alternative blog post: I'll make sure to check before starting a rewrite.

After reflecting on it, I agree it needs an entirely different approach. No surprise there: it is a difficult one to get right. I'll think about it but please don't hold back if you would like to propose an alternative blog post: I'll make sure to check before starting a rewrite.

I think I have something, but will sleep on it first. Will post it in the morning (~10 hours from now or so).

I *think* I have something, but will sleep on it first. Will post it in the morning (~10 hours from now or so).

Here's a draft of my proposal:

---
title: Forgejo forks its own path forward
publishDate: 2024年02月15日
tags: ['news']
excerpt: Forgejo started as a soft-fork of Gitea, in reaction to governance changes within the project. Over time, it developed its own identity, adopted both development and governance practices - to ensure the stability, quality, and openness of the project - that made it more challenging to remain a soft fork. In early 2024, a decision was made to become a hard fork, and for Forgejo to forge its own path going forward. This post explains the consequences this decision will have.
---
Since its [inception](https://forgejo.org/2022-12-15-hello-forgejo/), Forgejo has been a soft-fork of Gitea, upgrading to it was - and for the time being, remains to be - as simple as [changing the URL from which the release is downloaded](https://forgejo.org/download/). The [comparison page](https://forgejo.org/compare/) explains the benefits in more detail. Over time, the way Forgejo is governed and developed evolved. To be able to provide stable, secure, reliable releases, Forgejo requires a [reasonable effort made at writing tests](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md) for each change that goes into the code. This has worked out remarkably well, as it caught both regressions in imported code, and mistakes in proposed changes. Furthermore, Forgejo has accepted features and other changes that are not available in Gitea. 
Today, Forgejo has a healthy number of contributors - both volunteers and paid -, an ever growing test suite, plenty of fixes and features over its upstream codebase, while maintaining its main mission:
> 1. The community is in control, and ensures we develop to address community needs.
> 2. We will help liberate software development from the shackles of proprietary tools.

To continue living by that statement, a [decision was made](https://codeberg.org/forgejo/governance/issues/58) in early 2024 to become a hard fork. By doing so, Forgejo is no longer bound to Gitea, and can forge its own path going forward, allowing maintainers and contributors to reduce tech debt at a much higher pace, and implement changes - whether they're new features or bug fixes - that would otherwise have a high risk of conflicting with changes made in Gitea. Simply put, the governance and development models of Gitea and Forgejo diverged over time, and so did their goals. Becoming a hard fork is the culmination of that divergence.
## Consequences of becoming a hard fork

Forgejo has been, since its inception late 2022, a "soft-fork" of Gitea which means it contains all of Gitea, both good and bad, with Forgejo having little control over what it is built on. Containing all of Gitea had the benefit of allowing Forgejo to be a drop-in replacement. With the decision to become a hard fork, this will no longer be guaranteed. It will remain possible to upgrade from the latest [Gitea version released](https://github.com/go-gitea/gitea/releases/tag/v1.21.5) at the time of the hard fork, but versions past that will not have such a guarantee.
As such, if you were considering upgrading to Forgejo, we encourage you to do that sooner rather than later, because as the projects naturally diverge further, doing so will become ever harder. It will not happen overnight, it may not even happen soon, but eventually, Forgejo will stop being a drop-in replacement.
However, to ensure interoperability with existing third party tools, libraries and SDK, every effort will however be made by Forgejo contributors to maintain a compatibility with the Gitea API. This commitment does not however extend to Gitea features that are not available as Free Software, nor to features and functionality that Forgejo explicitly decided not to incorporate.

There are a few things I want to change, or improve here, some of the comments by @n0toose I still need to incorporate, but I wanted to get this out ASAP. I tried to focus on Forgejo, and intentionally did not link to a lot of stuff the original post does, because I believe the focus should be on the future, not on the past. The thing I wanted to capture - and I need to work on that, I'm not there yet - is to show how the hard fork benefits Forgejo, and Forgejo users, without the negativity towards Gitea. Focus on the good, not the bad.

Here's a draft of my proposal: ```markdown --- title: Forgejo forks its own path forward publishDate: 2024年02月15日 tags: ['news'] excerpt: Forgejo started as a soft-fork of Gitea, in reaction to governance changes within the project. Over time, it developed its own identity, adopted both development and governance practices - to ensure the stability, quality, and openness of the project - that made it more challenging to remain a soft fork. In early 2024, a decision was made to become a hard fork, and for Forgejo to forge its own path going forward. This post explains the consequences this decision will have. --- Since its [inception](https://forgejo.org/2022-12-15-hello-forgejo/), Forgejo has been a soft-fork of Gitea, upgrading to it was - and for the time being, remains to be - as simple as [changing the URL from which the release is downloaded](https://forgejo.org/download/). The [comparison page](https://forgejo.org/compare/) explains the benefits in more detail. Over time, the way Forgejo is governed and developed evolved. To be able to provide stable, secure, reliable releases, Forgejo requires a [reasonable effort made at writing tests](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md) for each change that goes into the code. This has worked out remarkably well, as it caught both regressions in imported code, and mistakes in proposed changes. Furthermore, Forgejo has accepted features and other changes that are not available in Gitea. Today, Forgejo has a healthy number of contributors - both volunteers and paid -, an ever growing test suite, plenty of fixes and features over its upstream codebase, while maintaining its main mission: > 1. The community is in control, and ensures we develop to address community needs. > 2. We will help liberate software development from the shackles of proprietary tools. To continue living by that statement, a [decision was made](https://codeberg.org/forgejo/governance/issues/58) in early 2024 to become a hard fork. By doing so, Forgejo is no longer bound to Gitea, and can forge its own path going forward, allowing maintainers and contributors to reduce tech debt at a much higher pace, and implement changes - whether they're new features or bug fixes - that would otherwise have a high risk of conflicting with changes made in Gitea. Simply put, the governance and development models of Gitea and Forgejo diverged over time, and so did their goals. Becoming a hard fork is the culmination of that divergence. ## Consequences of becoming a hard fork Forgejo has been, since its inception late 2022, a "soft-fork" of Gitea which means it contains all of Gitea, both good and bad, with Forgejo having little control over what it is built on. Containing all of Gitea had the benefit of allowing Forgejo to be a drop-in replacement. With the decision to become a hard fork, this will no longer be guaranteed. It will remain possible to upgrade from the latest [Gitea version released](https://github.com/go-gitea/gitea/releases/tag/v1.21.5) at the time of the hard fork, but versions past that will not have such a guarantee. As such, if you were considering upgrading to Forgejo, we encourage you to do that sooner rather than later, because as the projects naturally diverge further, doing so will become ever harder. It will not happen overnight, it may not even happen soon, but eventually, Forgejo will stop being a drop-in replacement. However, to ensure interoperability with existing third party tools, libraries and SDK, every effort will however be made by Forgejo contributors to maintain a compatibility with the Gitea API. This commitment does not however extend to Gitea features that are not available as Free Software, nor to features and functionality that Forgejo explicitly decided not to incorporate. ``` There are a few things I want to change, or improve here, some of the comments by @n0toose I still need to incorporate, but I wanted to get this out ASAP. I tried to focus on Forgejo, and intentionally did not link to a lot of stuff the original post does, because I believe the focus should be on the future, not on the past. The thing I wanted to capture - and I need to work on that, I'm not there yet - is to show how the hard fork benefits Forgejo, and Forgejo users, without the negativity towards Gitea. Focus on the good, not the bad.
Author
Contributor
Copy link

This is much better ❤️ I'll close this one so you can open another. 🎉

This is much better ❤️ I'll close this one so you can open another. 🎉

fwiw, the update will take a little longer, but I'll post my PR later today, with further tweaking.

fwiw, the update will take a little longer, but I'll post my PR later today, with further tweaking.
All checks were successful
pr / preview (pull_request) Successful in 49s
Required
Details

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
Labels
Clear labels
404
Broken links or missing content
Accessibility
Accessibility
Blog post
Documentation
Forgejo Documentation
Internationalisation
i18n and l10n
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
5 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
forgejo/website!413
Reference in a new issue
forgejo/website
No description provided.
Delete branch "earl-warren/website:wip-blog-drop-in"

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?