fluffle/goirc

Remove dependency on x/net/proxy

Closed this issue · 2 comments

When I vendor with godep, this is pulling in what looks like the entirety of x/net, and you barely use the ProxyDialer.

This was added by @scrapbird in #69.

The whole point of x/net/proxy is that it provides an interface that hides a lot of functionality behind a wrapper for net.Dialer. It's not surprising it looks "barely used" by lines of code, that's a sign of good API design. It does the job and since it wasn't even added by me I have to assume that others find it useful.

I can see ways that I could potentially expose more of the transport layer to goirc users, that would allow for a more plug-and-play approach for how the connection to the IRC server is made and thus push any dependency on x/net down to just the users that want it. But the value proposition of such a change is unclear to me.

I don't even really understand your objection to the existence of the dependency. Disk space is cheap, and godep provides a reasonable vendoring implementation that doesn't require too much effort on your part to pull in and subsequently maintain the dependencies of your code. Since Go won't spend time building things that are not used (and Go builds are generally quick) it can't be that. So, why are you asking me to do this?

Also, if you're that bothered about it and you're already vendoring, just use your fork with #69 reverted and import paths changed. It's not like there are many changes to this library these days, and it should be relatively quick and painless to merge any updates into your fork. I'm not gonna be offended ;-)