-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Description
Summary
https://golang.org/pkg/net/http/httputil/ has some garbage I'd like to hide. I'd like to hide everything about ClientConn and ServerConn
Background:
Before Go 1, we renamed the http package to net/http and in the process deleted some junk, and moved other junk to net/http/httputil, thinking that people might still need it. This was all pre-Go 1 when the APIs were changing daily, weekly, monthly. But we were trying to be nice anyway.
Turns out nobody needed that junk, though, even then, and not today:
https://github.com/search?utf8=%E2%9C%93&q=httputil.ClientConn&ref=simplesearch
https://github.com/search?utf8=%E2%9C%93&q=httputil.NewClientConn&type=Repositories&ref=searchresults
https://github.com/search?utf8=%E2%9C%93&q=httputil.ServerConn&type=Repositories&ref=searchresults
https://github.com/search?utf8=%E2%9C%93&q=httputil.NewServerConn&type=Repositories&ref=searchresults
Zero results.
I updated the docs some time ago:
https://golang.org/pkg/net/http/httputil/#ClientConn
... says simply:
ClientConn is an artifact of Go's early HTTP implementation. It is low-level, old, and unused by Go's current HTTP stack. We should have deleted it before Go 1.
Deprecated: Use Client or Transport in package net/http instead.
There are a couple good bits in there, though. ReverseProxy is very widely used, and the Dump* functions are often used in debugging.
Plan
Let godoc have configuration on public symbols to treat as if they were private. And then use that configuration for godoc.org to hide that junk, without deleting them from the package, so we don't violate the Go 1 compatibility promise. Think of this as a very strong form of deprecation.
If users really want to see it, they can use https://golang.org/pkg/net/http/httputil/?m=all to see all the junk.
FAQ
But Brad, this is a very slippery slope. What will we hide next?
Good question. There might be more to hide.
But why?
Because httputil looks embarrassing, and it looking like a trash heap prevents us from non-embarrassingly adding anything else to it. Let's clean up the house before we invite guests over.