Manganin: tools matter
摘要
Manganin 是一个用 Zig 编写的 Git 托管平台(Git forge),旨在重新构想现代源代码管理。文章介绍了其核心设计:通过邀请树(vouch tree)机制建立贡献者信任链,被担保的贡献者才能提交 PR 或开 issue,以对抗维护者倦怠和社交媒体的噪音;架构上完全自托管、数据以纯文本存储在 Git 中,无专有格式或厂商锁定,并支持配置克隆权限以阻止未授权爬虫。作者认为现有 Git forge 同质化严重,Manganin 希望引入多样性,并设想本地优先、离线可编辑的 issue 跟踪等创新工作流。
荐读理由
邀请树机制为开源社区治理提供了可借鉴的信任模型,自托管与 Git 原生数据存储的设计思路也能迁移到自己的项目中;但项目本身尚处于理念阶段,没有可运行的工具或代码细节,直接落地价值有限。
原文
Manganin: tools matter
Manganin is a Git forge written in Zig. It's a reimagining of what modern source code management could be if we compromise on nothing. It is named after an alloy of manganese and copper that remains quite constant in electrical resistivity with changes in temperature.
Vouch tree
The world runs on trust, now more than ever. The number of lines of code in a PR is not necessarily correlated with its quality, or how much effort was invested. Open source maintainers are getting burned out, making their time and attention ever more scarce. Buzz on social media drives people towards strong opinions about projects without ever having used them.
Enter: the invite tree. A prospective contributor needs to get vouched by another existing contributor, who promises that their vouchees can be trusted to follow the rules of the project. Vouching someone gives them the ability to open issues, make PRs, and otherwise contribute to the project. A chain of accountability can be followed from each user to the top of the tree, and vouching someone who griefs the project can have consequences. The result is a high-trust environment where someone's ability to waste the core team's time is tied to how trusted they are. Compare lobste.rs, with broadly civil discussion on difficult topics, and where bans are rare, to the cesspool that is Reddit.
Your data in your hands
Manganin is architected to be self-hosted: it has no proprietary data formats or vendor lock-in, and minimal hardware requirements. When you manage your own deployment, you own your own data, all stored natively in Git using plain text files.
Configure whether users must be vouched in order to clone repositories, blocking unauthorized bots and model-training scrapers, all without JavaScript, redirects, or slowdowns.
Why build another forge?
There are projects in the open source world that could benefit from features I'm passionate about. There are quite a few Git forges out there already, but they mostly do the same stuff--making something innovative will inject much-needed diversity into the ecosystem of source control, at the very least informing future development with a unique model; at best, becoming a tool that can accelerate the development of existing open source projects.
Dogma/paradigm
GitHub is a titan in the world of software development, seen as almost synonymous with Git. Forgejo/Codeberg was designed to be a drop-in replacement to GitHub, which makes sense for that project! But what if we reimagined what source code hosting using Git could be? What if we broke the shackles that tie us to design decisions made decades ago? What if we had issue tracking that engineers actually liked using? Imagine creating and editing issues offline, using your own preferred text editor, and syncing your work in a Git-native, local-first manner, relying on battle-tested tools that already exist. I believe that it is possible to provide a streamlined workflow where the GitHub model introduced friction and frustration. I believe that thoughtfulness at every level of design and implementation will lead to better solutions for common workflow problems.
Together, we serve the users.
这条对你有帮助吗?