Skip to content

Commit 41f5d86

Browse files
committed
all: first import
0 parents  commit 41f5d86

File tree

2 files changed

+154
-0
lines changed

2 files changed

+154
-0
lines changed

README.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Proposing Changes to go-interpreter
2+
3+
(This is heavily inspired and copy-pasted from [Go's proposal process](https://github.com/golang/proposal).)
4+
5+
## Introduction
6+
7+
The `go-interpreter` project's development process is design-driven.
8+
Significant changes to the interpreter(s), libraries, or tools must be first
9+
discussed, and sometimes formally documented, before they can be implemented.
10+
11+
This document describes the process for proposing, documenting, and
12+
implementing changes to the `go-interpreter` project.
13+
14+
## The Proposal Process
15+
16+
### Goals
17+
18+
- Make sure that proposals get a proper, fair, timely, recorded evaluation with
19+
a clear answer.
20+
- Make past proposals easy to find, to avoid duplicated effort.
21+
- If a design doc is needed, make sure contributors know how to write a good one.
22+
23+
### Definitions
24+
25+
- A **proposal** is a suggestion filed as a GitHub issue, identified by having
26+
the Proposal label.
27+
- A **design doc** is the expanded form of a proposal, written when the
28+
proposal needs more careful explanation and consideration.
29+
30+
### Scope
31+
32+
The proposal process should be used for any notable change or addition to the
33+
interpreter(s), libraries and tools.
34+
Since proposals begin (and will often end) with the filing of an issue, even
35+
small changes can go through the proposal process if appropriate.
36+
Deciding what is appropriate is matter of judgment we will refine through
37+
experience.
38+
If in doubt, file a proposal.
39+
40+
#### Compatibility
41+
42+
Programs written for Go version 1.x must continue to compile and work with
43+
future versions of the Go interpreter(s).
44+
The [Go 1 compatibility document](http://golang.org/doc/go1compat) describes
45+
the promise the Go project has made to Go users for the future of Go 1.x.
46+
The Go interpreter(s) should faithfully follow that heed.
47+
48+
#### Language changes
49+
50+
Go is a mature language and, as such, significant language changes are unlikely
51+
to be accepted.
52+
This should be a good news for the `go-interpreter` project as this means language
53+
churn is unlikely to occur.
54+
A "language change" in this context means a change to the
55+
[Go language specification](https://golang.org/ref/spec).
56+
(See the [release notes](https://golang.org/doc/devel/release.html) for
57+
examples of recent language changes.)
58+
59+
### Process
60+
61+
At this point in time, we don't have much of a lengthy proposal process,
62+
but we may have to revise it and follow more closely the one articulated by the [Go project](https://github.com/golang/proposal).
63+
For now, this should make do:
64+
65+
- [Create an issue](https://github.com/go-interpreter/proposal/issue/new) describing the proposal.
66+
67+
- Optionally create a design doc:
68+
- The design doc should be checked in to [the proposal repository](https://github.com/go-interpreter/proposal/) as `design/NNNN-shortname.md`,
69+
where `NNNN` is the GitHub issue number and `shortname` is a short name
70+
(a few dash-separated words at most).
71+
- The design doc should follow [the template](design/TEMPLATE.md).
72+
- Submit a GitHub Pull Request (PR) with the intended design document.
73+
- New design doc authors may be paired with a design doc "shepherd" to help work
74+
on the doc.
75+
- For ease of review with GitHub, design documents should be wrapped around the
76+
80 column mark. [Each sentence should start on a new line](http://rhodesmill.org/brandon/2012/one-sentence-per-line/)
77+
so that comments can be made accurately and the diff kept shorter.
78+
- Comments on GitHub PRs should be restricted to grammar, spelling, or
79+
procedural errors related to the preparation of the proposal itself.
80+
All other comments should be addressed to the related original GitHub
81+
issue.
82+
83+
- Once comments and revisions on the design doc wind down, there is a final
84+
discussion about the proposal.
85+
- The goal of the final discussion is to reach agreement on the next step:
86+
(1) accept or (2) decline.
87+
- The discussion is expected to be resolved in a timely manner.
88+
89+
- The author (and/or other contributors) do the work as described by the
90+
"Implementation" section of the proposal.
91+
92+
#### Quick start for committers
93+
94+
If you're already familiar with writing design docs for the Go project,
95+
the process has not changed much.
96+
The main thing that has changed is where the proposal is published.
97+
98+
In the situation where you'd write and circulate a design doc as a Google doc
99+
before, now you:
100+
101+
- Create a GitHub issue labeled Proposal, to get a number NNNN.
102+
- Check in the Markdown-formatted design doc to
103+
[the proposal repository](https://github.com/go-interpreter/proposal/)
104+
as `design/NNNN-shortname.md`.
105+
- Mail [go-interpreter](https://groups.google.com/group/go-interpreter/) as usual.
106+
107+
Worst case, by bypassing the initial discussion you've possibly written an
108+
unnecessary design doc. Not a big deal.
109+
110+
## Help
111+
112+
If you need help with this process, please contact the `go-interpreter` contributors by posting
113+
to the [go-interpreter mailing list](https://groups.google.com/group/go-interpreter) or on the `#go-interpreter`
114+
channel on [Slack](https://gophers.slack.com/).

design/TEMPLATE

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[This is a template for go-interpreter's change proposal process, documented [here](../README.md).]
2+
3+
# Proposal: [Title]
4+
5+
Author(s): [Author Name, Co-Author Name]
6+
7+
Last updated: [Date]
8+
9+
Discussion at https://github.com/go-interpreter/proposal/issue/NNNNN.
10+
11+
## Abstract
12+
13+
[A short summary of the proposal.]
14+
15+
## Background
16+
17+
[An introduction of the necessary background and the problem being solved by the proposed change.]
18+
19+
## Proposal
20+
21+
[A precise statement of the proposed change.]
22+
23+
## Rationale
24+
25+
[A discussion of alternate approaches and the trade offs, advantages, and disadvantages of the specified approach.]
26+
27+
## Compatibility
28+
29+
[A discussion of the change with regard to the
30+
[compatibility guidelines](https://golang.org/doc/go1compat), following [Go](https://golang.org) footsteps.]
31+
32+
## Implementation
33+
34+
[A description of the steps in the implementation, who will do them, and when.
35+
This should include a discussion of how the work fits into go-interpreter's release cycle (when/if have one).]
36+
37+
## Open issues (if applicable)
38+
39+
[A discussion of issues relating to this proposal for which the author does not
40+
know the solution. This section may be omitted if there are none.]

0 commit comments

Comments
 (0)