Skip to content
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

[Research] Migrate to golang/dep from govendor #8070

Closed
andrewkroh opened this issue Aug 23, 2018 · 3 comments
Closed

[Research] Migrate to golang/dep from govendor #8070

andrewkroh opened this issue Aug 23, 2018 · 3 comments
Labels
discuss Issue needs further discussion.

Comments

@andrewkroh
Copy link
Member

andrewkroh commented Aug 23, 2018

Abstract: I investigated migrating from govendor to dep for managing the dependencies of the Beats project. In my opinion the the benefits don't (yet) justify switching to another tool.

Why change tools? - govendor works pretty well for elastic/beats, but it doesn't work so well for third-party projects that are based on elastic/beats (e.g. community beats or apm-server). The problem is that it does not have the concept of transitive dependencies, and so bootstraping a new project with the right set of transitive dependencies is hard. dep will figure out the right transitive dependencies so it's worth consideration.

Downsides of dep are that it's experimental and will probably be fully replaced at some point by Go modules. Several bugs (or missing features) make this migration less than ideal.

Summary I think we should wait about 6 months and re-evaluate the tool ecosystem. Go modules might be ready for use or the long term plan for dep might become more clear. In the meantime we might be able to improve the developer experience for community beats by adopting some of the ideas from apm-server.

You can see the branch where I converted Beats over to dep at https://github.com/andrewkroh/beats/commits/feature/use-golang-dep. I added a mage syncTools task that mimics the apm-server's rsync script.

@andrewkroh andrewkroh added the discuss Issue needs further discussion. label Aug 23, 2018
@tsg
Copy link
Contributor

tsg commented Aug 23, 2018

+1 on waiting to see if we can use go modules. We can experiment with those already, by using the go 1.11 release candidates.

@cyrilleverrier
Copy link
Contributor

Don't forget vgo (Versioned Go Prototype): https://research.swtch.com/vgo-intro
Yet another official packaging and versioning tool :)

@fearful-symmetry
Copy link
Contributor

We're planning to migrate to modules, closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issue needs further discussion.
Projects
None yet
Development

No branches or pull requests

4 participants