go-interpreter / proposal

Go-interpreter Project Design Documents
57 stars 0 forks source link

Proposing Changes to go-interpreter

(This is heavily inspired and copy-pasted from Go's proposal process.)

Introduction

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

Goals

Definitions

Scope

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.

Compatibility

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.

Language changes

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.)

Process

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:

Help

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.