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

Proposal: Drop `dep` support in favor of modules. #1545

Open
markbates opened this Issue Jan 20, 2019 · 12 comments

Comments

Projects
None yet
6 participants
@markbates
Copy link
Member

markbates commented Jan 20, 2019

I would like the community's input on this issue.

Currently dep doesn’t support semantic import paths, i.e. github.com/gobuffalo/plush/v3 (unless you use a physical sub-folder). So if we want to add modules support to v2+ projects like plush, pop, tags, etc… we would have to drop support dep across the entire product line or use physical sub-folders.

I'm not a fan of the physical sub-folder idea, and prefer the branch based approached to modules, i.e. a branch named /v3, /v4, etc... as laid out at https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher.

Modules, for better or worse, are going to be the path forward for package management. So the question I'm presenting to the community is:

Do we add modules support to /v2+ projects and drop support for dep? Or do we not add module support to those projects until dep can support it?

I am for dropping support for dep across the gobuffalo repos as it is currently the source of a lot of code branches and it is not going to be the preferred package management system going forward.

This would be a major breaking change.

Dep support will eventually be dropped. It’s a matter of when. My current time frame to drop this support would be v0.15, so anywhere from 3-4 months from now.

@petermbenjamin

This comment has been minimized.

Copy link

petermbenjamin commented Jan 20, 2019

If it’s a matter of when Dep will be dropped, then what’s the value of holding out until Dep supports Semantic Import Versioning?

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 20, 2019

@dnnrly

This comment has been minimized.

Copy link
Contributor

dnnrly commented Jan 20, 2019

I don't suppose you know how many people are using dep? Might help inform the decision, just not sure where you'd get the figures from. A related question would be how many users are on Go 1.11 or later.

For my part though, I haven't used dep since modules was released and can't imagine going back.

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 20, 2019

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 20, 2019

@theckman

This comment has been minimized.

Copy link

theckman commented Jan 22, 2019

Not sure if this helps but I was just given push permissions to the dep repo, and will try to work on getting golang/dep#1963 (minimal module awareness) in ASAP.

I think you know my opinion on modules, so I'll refrain from raising them again. 😄

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 23, 2019

@theckman thanks, please keep us updated.

@petermbenjamin

This comment has been minimized.

Copy link

petermbenjamin commented Jan 23, 2019

@markbates - what's the feasibility of supporting Go Modules by default and keeping the flag option --with-dep for users who want to continue using Dep moving forward?

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 23, 2019

@JeremyChase

This comment has been minimized.

Copy link

JeremyChase commented Jan 24, 2019

@markbates Dropping dep support for Buffalo needs to happen at some point but the module system is still immature in the general Go ecosystem. As a case in point my project relies on go-swagger to parse Buffalo source for automated api documentation. Unfortunately, go-swagger still has some difficulty parsing Go code that uses modules.

I have a feeling that this is just one of many issues people will encounter in the transition from dep to modules.

@markbates

This comment has been minimized.

Copy link
Member Author

markbates commented Jan 24, 2019

@JeremyChase there are a lot of those problems that need to be addressed. Again, the time frame for this is, probably, at least 6 months away. I'm just trying to get it out there, figure out where those pains are, etc...

This is all super awesome feedback.

@abergmeier

This comment has been minimized.

Copy link

abergmeier commented Jan 29, 2019

I think you should look at how many problems are still standing once 1.12 comes out. Am all for adopting https://godoc.org/golang.org/x/tools/go/packages and making Module support happening ASAP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.