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

[Discuss] Find a good way to vendoring dependencies #43

Closed
ngtuna opened this issue Jul 16, 2016 · 7 comments
Closed

[Discuss] Find a good way to vendoring dependencies #43

ngtuna opened this issue Jul 16, 2016 · 7 comments

Comments

@ngtuna
Copy link
Contributor

ngtuna commented Jul 16, 2016

Guys,

The current issue I am facing in kompose is finding a good solution to vendoring dependencies. As you know, kompose refers to some structs of libcompose and kubernetes in order to do mapping fields between them. While kompose depends on libcompose and kubernetes, both of them are sharing lot of common dependencies but with different revisions. The current code base is quite stable, but let's say now I have to upgrade libcompose revision in order to solve #11 and #4 (which I also have to upgrade docker/docker revision in order to get bundlefile struct), also in future we have to support k8s 1.4, 1.5, etc.

vendoring seems to be a hot issue to be discussed at GopherCon afaik...

Someone introduces me https://github.com/sdboyer/gps. I will take a look on it tomorrow.

Any idea?

@kadel
Copy link
Member

kadel commented Jul 18, 2016

Right now I'm facing same problem with OpenShift.
It gets even worse because OpenShift has dependency on its own fork of Kubernetes, I only hope that parts that we need, are going to work with upstream Kubernetes.

But I don't have any good solution so far :-(

@ngtuna
Copy link
Contributor Author

ngtuna commented Jul 18, 2016

Yeah. Well, finding a solution to tackle the problem completely is impossible at this moment. It is known as the diamond problem for dependencies. Somehow godep can help to flatten the vendored code. It takes a bit more time to discover alternative choices.

https://github.com/golang/go/wiki/PackageManagementTools

@sebgoa
Copy link
Contributor

sebgoa commented Jul 19, 2016

this might help https://github.com/rancher/trash

@ngtuna
Copy link
Contributor Author

ngtuna commented Aug 2, 2016

@Runseb That's interesting to take a look. Let me see.

@surajssd
Copy link
Member

surajssd commented Aug 8, 2016

@ngtuna found one more golang vendor manager https://github.com/Masterminds/glide not sure how good or bad it is, but Kubernetes Helm uses it.

@ngtuna
Copy link
Contributor Author

ngtuna commented Aug 8, 2016

Still haven't started looking into them. At least we are still good with Godeps.

@surajssd Yeah I know there are lot of projects using Glide for vendoring.. It seems to be a powerful tool to do that..

@ngtuna
Copy link
Contributor Author

ngtuna commented Oct 26, 2016

I should close this. We have chosen an alternative sword - glide.

@ngtuna ngtuna closed this as completed Oct 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants