I'd like to freeze some packages for Go 1.7:
I want to place a line at the end of their package docs saying "This package is frozen. It is retained for compatibility with the Go 1 API promise. See https://golang.org/s/frozen-package for details."
And then at that URL we can spell out the rules more. (e.g. maybe we'll accept actual bug fixes if they're obviously wrong and don't change buggy behavior that people might depend on)
/cc @adg @rsc @ianlancetaylor
I'm ok with freezing text/tabwriter. Others need to chime in for the other packages.
I agree with the proposed set. We should also consider adding container/* to the list, although people don't tend to ask for or send changes to those packages.
cc @arschles who has long talked of making testing/quick much more powerful.
We might roll back the recent testing/quick change (0ccabe2e0b42a2) for Go 1.7 because it broke too many tests.
testing/quick can be forked and develop elsewhere on Github, perhaps with versioning.
And indeed, testing/quick was rolled back in https://go-review.googlesource.com/#/c/22860/
I agree with the idea of freezing packages, but I would like to try to separate that idea from "retained for compatibility", which makes it sound like we've decided the package doesn't even belong in the standard library. That's a separate attribute from "complete enough and shouldn't be added to or changed". Maybe frozen is the wrong word since it sounds like what we did with syscall. "completed" or "stable" might be less judgmental.
Well, I don't believe they belong in the standard library, but that's just one opinion. We don't have to make the text sound like my opinion, though. I'm happy with any wording that conveys that the package isn't accepting changes.
Re your opinion, I know, and it's a reasonable opinion. I just want to keep it separate because we might well want to put this on packages that clearly do belong (for example reflect once all the type constructors are done).
I forgot about this bug and went ahead and froze some things in Go 1.7:
https://golang.org/pkg/log/syslog/
https://golang.org/pkg/net/smtp/
We can adjust the wording, though, per the comment from Russ.
And we can still discuss which other packages to freeze (or "mark complete").
Actually, log/syslog was frozen in Go 1.6: https://go-review.googlesource.com/18222
We might also want to freeze net/rpc per #15236 and #7946
/cc @robpike
Freezing net/rpc is #16844
Freeze 'em!
CL https://golang.org/cl/31910 mentions this issue.
Results in a 404.
Most helpful comment
Results in a 404.