A repository for Go project design documents and the formal process for proposing changes to the Go language, libraries, and tools.
golang/proposal is the official repository for the Go programming language's proposal process and design documents. It defines the formal workflow for suggesting and reviewing changes to Go's language, libraries, and tools, ensuring changes are properly evaluated and documented before implementation. It hosts design documents that detail accepted proposals and provides transparency into Go's development decisions.
Go contributors, language designers, and developers who want to propose changes to Go or understand how the language evolves. It's essential for anyone submitting significant modifications to Go's standard library, tooling, or syntax.
It provides a standardized, transparent process for managing Go's evolution, preventing breaking changes and ensuring community input. Developers choose it because it's the canonical source for Go's design decisions and proposal guidelines, backed by the core Go team.
Go Project Design Documents
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The README outlines a clear, multi-step workflow from issue creation to final decision (Accept/Decline), ensuring proposals are thoroughly vetted and reducing ad-hoc changes.
Weekly review meetings with publicly posted minutes and open discussion on GitHub issues allow broad community participation, making the evolution of Go visible and inclusive.
All proposals must adhere to the Go 1 compatibility promise, explicitly preventing breaking changes and maintaining ecosystem stability, as emphasized in the compatibility section.
The process includes an escalation path from architects to an arbiter for unresolved disagreements, ensuring timely outcomes and avoiding deadlocks in consensus-building.
Proposals can linger in stages like 'Incoming' or 'Hold' with weekly reviews, leading to delays of weeks or months for implementation, which is acknowledged in the review meeting descriptions.
Contributors must navigate both GitHub and Gerrit, write detailed design documents with specific formatting, and engage in prolonged discussions, creating a steep learning curve for newcomers.
The scope requires formal proposals for even small API changes, which the README admits can be overkill for trivial adjustments, adding bureaucratic overhead.