Open Technology Fund - F3 - (July 2022)

Here is a draft of my reply. I chose to explicitly name GitHub as the problem, which it is, to make things more concrete in an attempt to address the concern that the concept note is too “high level”. I think the real issue is not to understand what problem software forge centralization creates. It is probably more to figure out if that’s a problem that is for OTF to solve or not.


Hi [redacted],

In order to elaborate on the high-level concept note, I chose to answer with concrete examples, facts and details. Please let me know if this is what you are looking for. I’d be happy to try another approach if that does not help.

I would like to emphasize that the software forge centralization problem F3 addresses, although widely acknowledged, is not funded and only handful of people worldwide are making concrete work to solve it. It is not unique to Internet Freedom, it impacts the entire corpus of Free Software. In pretty much the same way reproducible software matters for all Free Software and not just those in the Internet Freedom space.

Our society, and especially our communication and information sources, depend on complex technology. Much of this technology is centralized, and the power to control it is often in the hands of governments and corporations, who often don’t have in mind the interests and needs of the human citizens and users. More than anyone, people in oppressed regimes need all the power and access they can get, to participate and collaborate in the global software development community, to create and deploy communication technology that puts the power in the people’s hands, that allows people to be informed, to express themselves, to reveal injustice, to carry out important activism work, to fight for their human rights, to live in freedom, to have control and participation in the technology they use, rather than being controlled, censored and manipulated by it.

Cheers

Why this effort is needed in the Internet Freedom space?

The overwhelming majority of FLOSS software tools currently securing Internet Freedom are distributed and developed on a single, centralized and proprietary software forge (GitHub) controlled by a global commercial company (Microsoft). This high degree of centralization is a threat to the entire FLOSS ecosystem and the Internet Freedom space in particular. The lack of Open Standard and migration paths effectively prevents software projects from migrating to alternative software forges.

How could this project impact the FOSS community?

Long term it would transform the FOSS online development environment from being centralized and proprietary into being a constellation of federated Free Software forges communicating with each other. It has been twenty years since SourceForge was created, with the same centralization problem as GitHub. F3 is a stepping stone for the FOSS community to reclaim ownership of the tools that they use daily to develop software.

Short term it would allow:

  • A software project to be exported in the F3 format from GitHub and imported into GitLab or Gitea using the same format
  • A developer to file a bug report on GitHub using the F3 format and importing it into GitHub without creating an account on GitHub
  • Mirroring issues from GitHub into GitLab or Gitea to receive notifications without requiring a GitHub account

How would this project provide long-term support to users at risk?

Here is an hypothetical use case relevant to human right defenders in need of long term support:

  • In 2022 https://www.nthlink.com/ is used to setup on mobile phones and used by human right defenders in a country that is under an oppressive regime
  • Five years later, in 2027, the mobile phones need to be replaced and the application re-installed, with small modifications because the operating system has changed

With F3, the entire project including the build process that makes nthlink reproducible, has been stored in 2022. It only relies on Free Software that was also stored to make the build process durable. In 2027 they can be re-used to build a new version with small modifications and be re-installed on new phones. The effort is minimal.

Without F3, the build environment provided by GitHub has changed and it is no longer possible to use the deprecated 2022 build process. The nthlink application as it existed in 2022 can no longer be used: it is not supported for newer phones. Upgrading the application would require training the users with the new interface and functionalities. The mobile phones that broke down cannot be easily replaced, a larger effort is required although the 2022 application is still relevant and useful in this particular context. The solution designed in 2022 was made obsolete because the software project could not be archived together with its build process using an Open Standard.

What differences will this project make for developers on a practical level?

Free Software developers will be able to:

Track issues relevant to their software project across software forges and processes (see the 2021 user research report on this topic).

Migrate and mirror software projects from one software forge to another.

Reduce the complexity of implementing software forge migrations. Instead of maintaining a migration process from

  • GitHub to Gitea,
  • GitHub to GitLab,
  • GitHub to GitHub
  • Gitea to GitHub,
  • Gitea to GitLab,
  • Gitea to Gitea
  • GitLab to GitHub,
  • GitLab to Gitea,
  • GitLab to GitLab
  • etc.

With F3 it will only be necessary to maintain a migration process from:

  • GitHub to F3
  • Gitea to F3
  • GitLab to F3
  • F3 to GitHub
  • F3 to GitLab
  • F3 to Gitea

What are your thoughts on the adoption efforts?

Wide adoption of F3 is extremely difficult, long term. But can be done incrementally.

The ultimate adoption of F3 requires:

  • a concise, precise and unambiguous documentation
  • endorsement by a standard body
  • complete and reliable reference implementations in multiple programming languages
  • native integration in all major software forges

The primary adoption blocker is that GitHub is unlikely to support F3 or any other Open Format facilitating software project migration.

An incremental adoption should start by:

  • limiting the scope, with a bottom up approach, using the existing Gitea format
  • providing a reference implementation in Go
  • focusing on practical advantages this reference implementation bring to Free Software developers (i.e. cross forges issue tracking)

Further iterations would expand the scope of the F3 specifications and provide additional practical advantages to drive the change.

Can you detail the community consultation you engaged with that would support this idea/project? What specific communities are in need of this project and have expressed that need?

  • Software forge developers, system administrators and Free Software developers were interviewed as part of the user research conducted in 2021. They expressed the need for communication between software forges. They explained, by providing concrete examples from their personal experience, the practical problems that arise because such communication does not exist.
  • The communities referenced in the State of the Forge Federation: 2021 to 2023 were consulted and reviewed the document which explains F3 in context. They include software forge developers (Gitea), software forge system administrators (Codeberg) and Free Software developers
  • In 2021 the relevance of an interchange format (not yet named F3) in the context of the federation of software forges was explained during the Next Generation Internet webinar on Linked Data
  • In January 2022 the idea matured and was explained as an incremental import/export during a webinar on Forge Federation
2 Likes