-
-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove missinggo dep #6
Conversation
Rather than do this, I've pushed the fix upstream e3f454a2c932de08b34a6b1dde721e5e81faf1cc. As soon as drone.io support Go 1.5+, I'll add a test to ensure missinggo and utp build on a bunch of platforms. Currently the supported and building set is GOARCH=amd64, and 386 where Go supports it, and all GOOS except plan9. Also linux/arm. |
mmm... i was also hoping to avoid having to import 11 other packages pulled in by missinggo for one function here |
@anacrolix any chance you can use the one function, as @whyrusleeping suggests? or consider breaking up your |
Go's flat package specification makes it sucky to make lots of smaller packages. For example not being able to call anacrolix.somePkg.someFunc from code, where somePkg is some common name. Also doesn't Go's recursive package management take care of the logistics for you? Either way, let me check missinggo's deps and get back to you. |
No, we version lock and archive everything ourselves, to ensure repeatable builds across time, independent of changing circumstances at the original sources (like authors updating packages, breaking interfaces, moving repos, user account renames, users removing repos, repo host services shutting down, repo hosts being DDOSed, ...) The virtues of We are working on tooling to improve all this, but it's very, very early days and much still to do, improve, and clean. |
I think missinggo without tests only has the 1 non-standard lib dep. |
In lieu of this PR, could we work on breaking missinggo up into many smaller packages? for example, we could break the events logic out into its own package (and make the tests not import The The Jitter package could be done as well. |
I'm not keen to do that. Having a common place for various cross-project generic code has been a great boon to productivity, with regards to licensing, documentation and ease of locating code. I've actually just merged jitter and monotonic time in from being separate packages for this reason. I'm not a fan of testing frameworks, but testify has proven to be purely orthogonal to the Go testing framework, and avoids wasteful repetition of value comparison and logging of reasons for failure. With the access time changes recently, missinggo now builds on all support Go platforms. Go's linker will take care of stripping out parts you don't use, and your build tool should strip out the nested packages. |
I'm closing the PR as the original problem of missinggo not building is fixed. |
So this is still a bit ridiculous, adds around kk line diff if you try to vendor it.
|
I've just been deleting a large portion of missinggo after vendoring. It On Tue, Apr 26, 2016, 14:44 Audrius Butkevicius [email protected]
|
It shouldn't be a problem in the first place, if things lived in their own directories/packages. I think there are only 3 packages that are used in utp, which might aswell live in utp. |
It looks like you were only using one function from missinggo, but because of that this package pulled in a whole bunch of other largeish dependencies, including some that fail to build on certain platforms.
This copies the one function from missinggo into the test file and removes that dependency.