This document collects thoughts and notes about versioned Go modules from the Gophers #vgo channel. Invites to Gophers Slack from here.
The initial paper can be read here https://research.swtch.com/vgo.
The proposal can be found here https://github.com/golang/go/issues/24301.
The reference implementation: https://go.googlesource.com/vgo/ and mirrored on Github here: https://github.com/golang/vgo.
The Go issue tracker is used to track bugs/feature requests. Issues should have the label modules
and titles starting with cmd/go
so that they can be automatically categorized. You can read the existing issues here.
Note: The reference implementation was named vgo
, but support for modules is being integrated into the go
command itself. The feature within the go
command is called “versioned Go modules” (or “[[modules]]” for short), not “vgo”.
Currently, module support is in active development in the main go
repository, with changes mirrored back to the vgo
repository. Module support still has some rough edges. You are encouraged to [[try it|Modules]] and give your feedback, share your experience with it, and contribute to it.
For any production workloads, use dep, or migrate to it if you have not done so already.
The proposal has been accepted and will be merged in the Go tree and replace dep at a later date.
You will be able to experiment with the module workflow from Go 1.11 as it will be included as an experiment in this release.
These are threads that have been created from the initial reference manifest:
golang-nuts ML: Go += Package Versioning
golang-dev ML: Go += Package Versioning, vgo & semantic import versioning, vgo and vendoring
HackerNews posts: https://news.ycombinator.com/from?site=swtch.com
vgo & vendoring: https://groups.google.com/forum/#!topic/golang-dev/FTMScX1fsYk
vgo & semantic import versioning https://groups.google.com/forum/#!topic/golang-dev/Plc42fslQEk
myitcv.io/cmd/modpub
- a tool to help create a directory of modules from a git repositoryQuestion | Answer |
---|---|
Hitting GitHub API rate limits? | Create a token and add it to .netrc, see related issue |
How does vgo handles dependencies of older, discarded versions link? | https://github.com/zeebo/vgo-test-version-selection |
Why are major versions in import paths? | https://groups.google.com/forum/#!topic/golang-dev/Plc42fslQEk |
How to go get so that I can run a program, not download a library? | https://gophers.slack.com/archives/C9BMAAFFB/p1519687366000101 |
What's the best way to maintain a package repository that have the major version in the import path? | https://groups.google.com/d/topic/golang-nuts/nS6ST60dwF8/discussion, https://groups.google.com/d/topic/golang-nuts/VREgKrQRFcY/discussion |