Forgejo monthly report - June 2025

The monthly report is meant to provide a good overview of what has changed in Forgejo in the past month. If you would like to help, please get in touch in the chatroom or participate in the ongoing discussions.

Releases

Forgejo v12.0 on its way

On 25 June the Forgejo v12.0 branch was “cut” as planned. The v12.0/forgejo branch was created out of the Forgejo branch used for development. The same was also done in the documentation, backport labels were created, test releases were built, etc. The release manager is used to automate some of those steps, and improvements were made on this occasion to reduce the number of manual steps that members of the release team need to perform.

On the same day, https://code.forgejo.org was upgraded to the v12.0 release candidate to discover bugs that need fixing before it can be published 17 July. The release schedule was however not published and advertised prominently enough and a few seasoned Forgejo contributors were taken by surprise when the branch was cut. To help prevent that in the future, the release page was reworked.

Forgejo v11.0.2

On 18 June 2025, Forgejo v11.0.2 was released. This update addresses several bugs, including issues with the quote reply feature on Chromium, with pull request cross references and with noise of Forgejo Actions logs.

Helm chart

A patch version of v12 has been released for the corresponding v11.0.2 release of Forgejo.

Additionally, a fix addressing incorrect persistence settings for the postgresql-ha has been released and backported to v7.

Forgejo runner

The Forgejo runner v6.4.0 was released. It upgraded the base image of the container to Alpine 3.22. If building a derived image for your own purposes, please note that update-ca-certificates is no longer included and needs to be installed explicitly if needed.

Aside from a number of dependency upgrades, this release supports offline caching.

Prioritising bug fixes over new features

In software development, it is crucial to balance bug fixes and new features. To improve understanding of this, an addition to the pull request agreement was proposed. The proposal emphasises the prioritisation of bug fixes over the development of new features.

New contributors are often initially drawn to the idea of implementing new features. However, feature development can be challenging for those without a solid understanding of the codebase and team dynamics. Most contributors benefit from a more gradual learning process, which is easier when addressing bugs.

By clarifying that bug fixes take precedence, it becomes easier to provide a clearer path for newcomers. Furthermore, bug fixes tend to receive faster responses from reviewers. This approach improves software quality and helps to integrate new contributors into the team more effectively.

Minimum Git version

As announced in the last monthly report, there was a discussion regarding increasing the required Git version. The proposal was accepted, and the minimum required Git version has therefore been increased from 2.0.0 to 2.34.1. This has already led to a simplification, as obsolete Git version checks have been removed. Going forward, Forgejo will increase the required Git version with each LTS release (and only with LTS releases) to match the oldest Git version supported by Debian stable and Ubuntu LTS in ‘Standard Support’.

Notable Pull requests

In June, multiple improvements were made to the search functionality in Forgejo:

Federation

For a high-level overview, check out the federation roadmap.

The pull request implementing user following with ActivityPub reached a stage where it passes automated end-to-end tests communicating with GoToSocial. It relieves the developer from the chore of manually testing every aspect of the interactions by launching a Forgejo instance built out of the pull request as well as a GoToSocial instance. They are then driven to follow a realistic scenario that goes like this:

  • Following the Forgejo account
  • Creating and federating activities to GoToSocial
  • Federating activities to Forgejo
  • Unfollowing and refollowing

Under the hood pull requests were merged in the GoToSocial (1) and Forgejo (1, 2) codebases.

User research

When the CI fails, it is sometimes useful to get a notification and a well organized series of pull requests (1, 2, 3) were merged within short delays this month because they had the required test coverage and were straightforward to review.

The corresponding feature request was submitted over a year ago and was one of the most upvoted. However, it lacked user research, so all the developers could do was come up with the best solution they could imagine. While upvoting a solution is encouraging, it does not replace firsthand evidence that a problem exists and how it manifests itself.

Unsurprisingly, there was no consensus on one aspect of the implementation: should it be opt-in or opt-out? With only a few days before the Forgejo v12.0 branch was cut, there was limited time for proper user research and discussions. However, reverting such a popular feature would have hindered Forgejo’s progress. A middle ground was found, and the feature was modified to be opt-in. A user research discussion was also initiated.

One of the core challenges in Forgejo is to fill the absence of user research. Otherwise, problems are likely to be discovered once an implementation is complete because they have not been documented. Hopefully, the experience with implementing Forgejo Actions email notifications this month illustrated why adding a concrete, firsthand example to a feature request helps to move them forward. Each problem statement will make a difference when the developers write the code. They will be more likely to make the right choices for users and less likely to rely on their imagination.

Localization

The Localization Team is the largest team with formal applications, which can result in a large amount of bureaucracy overhead. Team members often forget to reapply unless they are reminded, even if they are still around contributing to the project.

From a translator’s perspective, this can be a burden. Those involved in multiple projects may find that participating in Forgejo translation becomes more complex due to the need for frequent renewals.

To address this issue, a governance decision was made to simplify the renewal process. Localization Team admins are now authorised to renew the memberships of non-admin team members if they have no objections.

A modified version of this process has also been applied to the Contributors team.

Statistics

This month, 39 translators were active, 10 more than in June 2024. By that time, we had moved past the ramp-up phase of the previous year, demonstrating healthy growth.

However, the number of applicants to join the team does not align with the overall contributor count. This presents a challenge because we need people to oversee the quality and consistency of translations. Nonetheless, we’re optimistic about finding a solution. The important takeaway is the strong enthusiasm for translating Forgejo, which is fantastic!

Infrastructure

The backporting script for the new JSON-based localization has been completed, and the first backport leveraging it happened a few days ago.

Sustainability

At the end of June, our most recent NLnet application, submitted in April 2025, was approved! This is exciting news and will allow us to work on the following:

You can find more information about these tasks in the sustainability repository. The NLnet grant summary can be found on their website.

Matrix chat room migration

The migration of the Matrix chat room has been successfully completed. The old room is now deprecated and read-only, so please join the new room to continue communicating.

You can find the new room under #forgejo-chat:matrix.org.

Other

Forgejo Contribution Workshop

On 20 June 2025, n0toose, famfo, Beowulf and dmowitz held a Forgejo Contribution Workshop at the 23. Gulaschprogrammiernacht (GPN23) in Karlsruhe. The workshop was held in person and about 20 people attended. It resulted in some completed PRs and some others that are currently in progress. We welcome every new contributor to Forgejo!

There are plans for similar workshops in the future at other locations.

Talk about Federation

On 5 July 2025, Jerger will give a short talk in German about the state of federation at the Tübinger Linuxtag (Tübix) in Tübingen, Germany. He will give insights into the engine room, security considerations, challenges and the way forward.

We Forge

Forgejo is a community of people who contribute in an inclusive environment. We forge on an equal footing, by reporting a bug, voicing an idea in the chatroom or implementing a new feature. The following list of contributors is intended to reflect this diversity and to acknowledge all the contributions made over the past month. If you are missing, please ask for an update.