002-linux-development-model
process
rejected
Linux Development Model
Context
This is a summary of a conversation that happened on Discord around May 18 2024.
Decision
We propose to adopt a development process similar to Linux to encourage decentralized contributions and maintain the project’s ethos of decentralization. The Linux development process, as documented here, uses decentralized tools and methods, such as patch exchanges and mailing lists. Specifically, the we propose:
- Eliminating a central repository and using a decentralized network of contributors exchanging patches.
- Conducting all official communication through mailing lists.
- Adopting a time-based release cadence.
Consequences
Positive Outcomes
- Aligns with the decentralized nature of the project.
- Reduces dependency on centralized platforms like GitHub.
- Encourages a low-tech approach to contributions, potentially increasing accessibility for some contributors.
Negative Outcomes
- Potentially discourages contributors due to the complexity and inconvenience of decentralized development methods.
- Increased overhead for contributors to manage patches and communicate through mailing lists.
- Difficulty ensuring all nodes behave consistently, which is crucial for the stability of a blockchain network.
- Higher barrier to entry for new contributors unfamiliar with the proposed decentralized tools and processes.
- Risk of disorganized release management and communication inefficiencies.
Discussion Points:
- The Linux kernel development process is designed for a large, well-established community with many subsystems and contributors, which may not be suitable for Amaru’s smaller team.
- Ensuring protocol consistency and stability is critical for Amaru, unlike the flexible development allowed in Linux.
- Concerns about “nerd gatekeeping” and the practicality of adopting such an approach in a modern development environment.
- The importance of balancing decentralized ideals with practical, efficient development and collaboration methods.