Forgejo v10.0 is available
Forgejo v10.0 was released 16 January 2025. You will find a short selection of the changes it introduces below and a complete list in the release notes.
This release marks the end of life for the previous stable version v9. The LTS series Forgejo v7 is still supported until 16 July 2025. Forgejo v10.0 will be supported until 16 April 2025, when Forgejo v11.0 is published. Admins of Forgejo instances with version v9 are recommended to prepare for an upgrade in time so that applying potential future security patches does not involve a major upgrade.
A dedicated test instance is available to try it out. Before upgrading it is strongly recommended to make a full backup as explained in the upgrade guide and carefully read all breaking changes from the release notes. If in doubt, do not hesitate to ask for help on the Fediverse, or in the chat room.
Summary
Forgejo v10.0 is the last version to allow a transparent upgrade from Gitea v1.22 or lower. In 2023 Forgejo was a soft fork, a set of patches maintained by the Forgejo community on top of Gitea. Early 2024 it became a hard fork and the codebases started to diverge. Forgejo and Gitea are now effectively different codebases although they share the same history back from the early days of Gogs.
If you are running Gitea v1.22 or lower and consider migrating to Forgejo long after v10.0 was published, it will still be possible, provided you upgrade to Forgejo v10.0 first and then upgrade to a newer Forgejo version. This will be a two steps upgrade instead of a single step.
New features
Below is short selection of the most notable changes. The complete list is available in the release notes.
- PR: Rework the new repository dialog.
- PR: Git notes can be modified via the API or the UI.
- PR: Add button to create Markdown table.
- PR: If you select a portion of a comment and use the ‘Quote reply’ feature in the context menu, only that portion will be quoted. The markdown syntax is preserved.
- PR: Add link to show all issues and pull requests.
- PR: Highlight user mention in comments and commit messages.
- PR & PR: Add a “summary card” to issues, PRs, repositories and releases for consumption by OpenGraph clients.
- PR: Filepath filter for code search.
- PR: Add links to commit lists in contributors graph page.
- PR: Add search to releases page.
- PR: Migrate TOTP secrets to
keying
. - PR: When bleve is used for issue search, a
fuzzy
search now applies to each word instead of all of them, as if they were a phrase. For instance, searching foractivitypub spam moderation
previously returned no result in Forgejo discussions and now returns the relevant issues. If the search results are too broad, or for searching exact phrases prefer using anexact
search. Sorting by newest is still available as a non default option underSort
. The query was also reworked to improve performances. It makes a significant difference for large instances such as Codeberg. - PR: Improve performance of notifications page for MySQL.
Hardened TOTP secrets
The TOTP secrets were stored using the secret module. They now use the keying module which is easier to use and relies on better practices to store secrets in a databases.
The keying
module tries to solve two problems, the lack of key separation and the lack of AEAD being used for encryption. The secret
module doesn’t provide this and is hard to adjust to provide this functionality.
For encryption, the additional data is now a parameter that can be used, as the underlying primitive is an AEAD construction. This allows for context binding to happen and can be seen as defense-in-depth; it ensures that if a value X
is encrypted for context Y
(e.g. ID=3
, Column="private_key"
) it will only decrypt if that context Y
is also given in the Decrypt
function. This makes a confused deputy attack harder to exploit.
Gitea compatibility
Forgejo v10.0 has automated upgrade tests from Gitea v1.22 to Forgejo v10.0.
- An instance running Gitea versions up to v1.21 can be upgraded to Forgejo v7.0 or v8.0
- An instance running Gitea v1.22 can be upgraded to Forgejo v8.0, v9.0 or v10.0
Future Forgejo versions will not support upgrades from Gitea instances running version v1.23 or above. Read more about Gitea compatibility and upgrades in the dedicated blog post.
Note on some harmless warnings
You may see migration warnings (and in some cases errors) when Forgejo starts. Most of them can be ignored as long as they do not prevent the instance from starting. However, they are confusing and you may want to get rid of them. More information can be found about that in the corresponding issue, as well as instructions to resolve them. If in doubt, do not hesitate to ask for advice.
Release schedule and Long Term Support
The time based release schedule was established to publish a release every three months. Patch releases will be published more frequently, depending on the severity of the bug or security fixes they contain.
Version | Release date | End Of Life |
---|---|---|
7.0 (LTS) | 23 April 2024 | 16 July 2025 |
9.0 | 16 October 2024 | 16 January 2025 |
10.0 | 16 January 2025 | 16 April 2025 |
11.0 (LTS) | 16 April 2025 | 15 July 2026 |
10.0-test daily releases
Releases are built daily from the latest changes found in the v10.0/forgejo development branch. They are deployed to the https://v10.next.forgejo.org instance for manual verification in case a bug fix is of particular interest ahead of the next patch release. It can also be installed locally with:
Their names are staying the same but they are replaced by new builds every day.
Localization
This release contains the latest translation updates from the project on Codeberg Translate. They include a significant number of new translations and improvements to many languages, with particularly large refactors in Latvian and Simplified Chinese.
A new language has been made available: Low German (Plattdüütsch). It is already fully completed, only proofreading remains.
A new convenient feature has been added which allows to easily identify translation keys in the interface by simply appending lang=dummy
to the URL parameters. It is also useful to quickly look up the UI template within the source code.
Get Forgejo v10.0
See the download page for instructions on how to install Forgejo, and read the release notes for more information.
Upgrading
Carefully read the Breaking bug fixes section of the release notes.
The actual upgrade process is as simple as replacing the binary or container image
with the corresponding Forgejo binary
or container image.
If you’re using the container images, you can use the
10.0
tag
to stay up to date with the latest 10.0.Y
patch release automatically.
Make sure to check the Forgejo upgrade documentation for recommendations on how to properly backup your instance before the upgrade.
Contribute to Forgejo
If you have any feedback or suggestions for Forgejo do not hold back, it is also your project. Open an issue in the issue tracker for feature requests or bug reports, reach out on the Fediverse, or drop into the Matrix space (main chat room) and say hi!
Donate
Forgejo is proud to be funded transparently. Additionally, it accept donations through Liberapay. It is also possible to donate to Codeberg e.V. in case the Liberapay option does not work out for you, and part of the funding is used to compensate for work on Forgejo.
However, the Liberapay team allows for money to go directly to developers without a round-trip to Codeberg. Additionally, Liberapay allows for a steady and reliable funding stream next to other options, a crucial aspect for the project. The distribution of funds through Liberapay is transparently controlled using the decision-making process, and Forgejo contributors are encouraged to consider applying to benefit from this funding opportunity.
Thank you for using Forgejo and considering a donation, in case your financial situation allows you to.