aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2021-11-19 11:45:15 -0500
committerRuss Cox <rsc@golang.org>2022-01-21 00:01:56 +0000
commit4fe2f9757f17bb5375d474f505076afb7afdbbad (patch)
tree150deb09a495ac727f9e07d947b7c6e569bd96dc
parentb727480b4d563cb69a8903ebb3ef00ab198ee2f2 (diff)
downloadgo-x-proposal-4fe2f9757f17bb5375d474f505076afb7afdbbad.tar.xz
README: clarify that all API changes are substantial/notable
Change-Id: I85e10a664dc91d526d84f76f3c8e00ab221567c5 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/365714 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r--README.md19
1 files changed, 17 insertions, 2 deletions
diff --git a/README.md b/README.md
index 1310743..950d8c2 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,11 @@
## Introduction
The Go project's development process is design-driven.
-Significant changes to the language, libraries, or tools must be first
-discussed, and sometimes formally documented, before they can be implemented.
+Significant changes to the language, libraries, or tools
+(which includes API changes in the main repo and all golang.org/x repos,
+as well as command-line changes to the `go` command)
+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 project.
@@ -65,12 +68,24 @@ implementation work proceeds in the same way as any other contribution.
The proposal process should be used for any notable change or addition to the
language, libraries and tools.
+“Notable” includes API changes in the main repo and all golang.org/x repos,
+as well as command-line changes to the `go` command.
+It also includes visible behavior changes in existing functionality.
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.
+There is a short list of changes that are typically not in scope for the proposal process:
+
+- Making API changes in internal packages, since those APIs are not publicly visible.
+- Making API or command-line changes in golang.org/x/build, since that is code to run the Go project, not for users to import and depend on.
+- Adding new system call numbers or direct system call wrappers (`//sys` lines) in golang.org/x/sys.
+- Adding new C-equivalent data structures to support those system calls.
+
+Again, if in doubt, file a proposal.
+
### Compatibility
Programs written for Go version 1.x must continue to compile and work with