This repository has been archived by the owner on Feb 24, 2024. It is now read-only.
December 1st, 2019: Buffalo no longer supports GOPATH. Go Modules are now required. #1723
Labels
breaking change
This feature / fix introduces breaking changes
s: accepted
was accepted or confirmed
At the beginning of the year I opened proposal #1545 to drop support for
dep
, I believe the best course of action since then is to only support Go Modules.In order to support modules, non-modules, dep and other 3rd party package management tools, there is an ever growing set of branching logic to be found across all of the Buffalo eco-system. This leads to bugs, maintenance issues, etc...
One of the biggest problems that has been unleashed on the Go community is "Semantic Import Versioning". This requires that packages that are
v2+
have that as part of their import path. So, for example, Plush should be imported asgithub.com/gobuffalo/plush/v3
if it were using modules, but it isn't.Currently none of the Buffalo packages that are at
v2+
or higher are currently unable to add module support as it is currently nearly impossible to support modules, non-modules, and dep at the same because of this semantic import versioning.Since Go Modules are what we, as a community, will be using the more we move forward, I propose we stop fighting the good fight to support everyone and require that
GO111MODULE=on
be used for all of the Buffalo packages.I believe the timing for this should be done after Go
1.13
is released, so probably in the fall of 2019.This won't be without pain, unfortunately though, we are currently in a lot of pain, trapped in a world between all of these different ways of managing packages. At some point a decision needs to be made, and I think, unfortunately, this maybe the only sane path going forward.
This is a proposal, and as such, I welcome community input on this difficult topic.
The text was updated successfully, but these errors were encountered: