Forgejo v10.0 is available — Forgejo
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 (
v10.next.forgejo.org
) 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 for
activitypub 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 an
exact
search. Sorting by newest is still available as a non default option under
Sort
. 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
is encrypted for context
(e.g.
ID=3
Column="private_key"
) it will only decrypt if that context
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
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:
OCI images:
root
and
rootless
Binaries
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.