(This is heavily inspired and copy-pasted from Go's proposal process.)
The go-interpreter
project's development process is design-driven.
Significant changes to the interpreter(s), libraries, or tools must be first
discussed, and sometimes formally documented, before they can be implemented.
This document describes the process for proposing, documenting, and
implementing changes to the go-interpreter
project.
The proposal process should be used for any notable change or addition to the interpreter(s), libraries and tools. Since proposals begin (and will often end) with the filing of an issue, even small changes can go through the proposal process if appropriate. Deciding what is appropriate is matter of judgment we will refine through experience. If in doubt, file a proposal.
Programs written for Go version 1.x must continue to compile and work with future versions of the Go interpreter(s). The Go 1 compatibility document describes the promise the Go project has made to Go users for the future of Go 1.x. The Go interpreter(s) should faithfully follow that heed.
Go is a mature language and, as such, significant language changes are unlikely
to be accepted.
This should be a good news for the go-interpreter
project as this means language
churn is unlikely to occur.
A "language change" in this context means a change to the
Go language specification.
(See the release notes for
examples of recent language changes.)
At this point in time, we don't have much of a lengthy proposal process, but we may have to revise it and follow more closely the one articulated by the Go project. For now, this should make do:
Create an issue describing the proposal.
Optionally create a design doc:
design/NNNN-shortname.md
,
where NNNN
is the GitHub issue number and shortname
is a short name
(a few dash-separated words at most).Once comments and revisions on the design doc wind down, there is a final discussion about the proposal.
The author (and/or other contributors) do the work as described by the "Implementation" section of the proposal.
If you need help with this process, please contact the go-interpreter
contributors by posting
to the go-interpreter mailing list or on the #go-interpreter
channel on Slack.