Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 1 | ## Table of Contents |
| 2 | |
Florin Pățan | e7177be | 2018-02-24 22:31:52 +0000 | [diff] [blame] | 3 | * [Initial paper](#initial-paper) |
Florin Pățan | de0605e | 2018-02-24 22:39:47 +0000 | [diff] [blame] | 4 | * [Current state](#current-state) |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 5 | * [Comment Threads](#comment-threads) |
| 6 | * [Blog posts](#blog-posts) |
Florin Pățan | 7687a8e | 2018-03-17 09:43:18 +0000 | [diff] [blame] | 7 | * [Presentations](#presentations) |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 8 | * [Videos](#videos) |
| 9 | * [Questions](#questions) |
Nathan Kerr | 09db81c | 2018-03-21 16:22:46 -0700 | [diff] [blame] | 10 | * [Projects Related to vgo](#projects-related-to-vgo) |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 11 | |
Bryan C. Mills | c9dcff9 | 2018-07-16 23:14:52 -0400 | [diff] [blame] | 12 | This document collects thoughts and notes about versioned Go modules from the Gophers [#vgo](https://gophers.slack.com/messages/vgo) channel. Invites to Gophers Slack from [here](https://invite.slack.golangbridge.org/). |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 13 | |
Florin Pățan | e7177be | 2018-02-24 22:31:52 +0000 | [diff] [blame] | 14 | ### Initial paper |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 15 | |
Florin Pățan | e7177be | 2018-02-24 22:31:52 +0000 | [diff] [blame] | 16 | The **initial paper** can be read here [https://research.swtch.com/vgo](https://research.swtch.com/vgo). |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 17 | |
Florin Pățan | 67d8033 | 2018-03-20 20:20:43 +0000 | [diff] [blame] | 18 | The **proposal** can be found here [https://github.com/golang/go/issues/24301](https://github.com/golang/go/issues/24301). |
| 19 | |
Florin Pățan | e7177be | 2018-02-24 22:31:52 +0000 | [diff] [blame] | 20 | The **reference implementation**: [https://go.googlesource.com/vgo/](https://go.googlesource.com/vgo/) and mirrored on Github here: [https://github.com/golang/vgo](https://github.com/golang/vgo). |
Florin Pățan | fffd974 | 2018-02-24 22:19:59 +0000 | [diff] [blame] | 21 | |
Bryan C. Mills | da6dd57 | 2018-07-16 23:14:28 -0400 | [diff] [blame] | 22 | The **[Go issue tracker](https://golang.org/issues)** 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](https://golang.org/issues?q=is%3Aopen+is%3Aissue+label:modules). |
| 23 | |
| 24 | **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”. |
Florin Pățan | fffd974 | 2018-02-24 22:19:59 +0000 | [diff] [blame] | 25 | |
Florin Pățan | cb7780e | 2018-02-24 22:59:06 +0000 | [diff] [blame] | 26 | *** |
| 27 | |
Florin Pățan | cc6d77e | 2018-02-24 22:39:11 +0000 | [diff] [blame] | 28 | ### Current state |
| 29 | |
Bryan C. Mills | da6dd57 | 2018-07-16 23:14:28 -0400 | [diff] [blame] | 30 | 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. |
Florin Pățan | cc6d77e | 2018-02-24 22:39:11 +0000 | [diff] [blame] | 31 | |
| 32 | For any production workloads, use [dep](https://github.com/golang/dep), or migrate to it if you have not done so already. |
| 33 | |
Daniel M. Capella | a3d1ac1 | 2018-10-05 19:21:04 +0000 | [diff] [blame] | 34 | The proposal has been accepted and vgo was merged into the Go tree in version 1.11. |
Florin Pățan | cc6d77e | 2018-02-24 22:39:11 +0000 | [diff] [blame] | 35 | |
teddywing | 4c3adf7 | 2018-10-25 15:04:21 +0200 | [diff] [blame] | 36 | You will be able to experiment with the module workflow from Go 1.11 as it is included as an experiment in this release. |
Florin Pățan | 14b7a46 | 2018-05-24 13:45:25 +0300 | [diff] [blame] | 37 | |
Florin Pățan | cb7780e | 2018-02-24 22:59:06 +0000 | [diff] [blame] | 38 | *** |
| 39 | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 40 | ### Comment Threads |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 41 | |
Bryan C. Mills | da6dd57 | 2018-07-16 23:14:28 -0400 | [diff] [blame] | 42 | These are threads that have been created from the initial reference manifest: |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 43 | |
Nathan Kerr | dad3a93 | 2018-03-21 16:17:14 -0700 | [diff] [blame] | 44 | - **golang-nuts ML:** [Go += Package Versioning](https://groups.google.com/forum/#!topic/golang-nuts/jFPz5yZCPcQ) |
Damian Gryski | 0699cf9 | 2018-02-27 01:40:05 -0800 | [diff] [blame] | 45 | |
Nathan Kerr | dad3a93 | 2018-03-21 16:17:14 -0700 | [diff] [blame] | 46 | - **golang-dev ML:** [Go += Package Versioning](https://groups.google.com/d/topic/golang-dev/MNQwgYHMEcY/discussion), [vgo & semantic import versioning](https://groups.google.com/d/topic/golang-dev/Plc42fslQEk/discussion), [vgo and vendoring](https://groups.google.com/forum/#!topic/golang-dev/FTMScX1fsYk) |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 47 | - **HackerNews posts:** https://news.ycombinator.com/from?site=swtch.com |
| 48 | - **Reddit:** https://www.reddit.com/domain/research.swtch.com/ |
| 49 | |
Florin Pățan | 04e7bcd | 2018-03-19 20:20:36 +0000 | [diff] [blame] | 50 | - **vgo & vendoring:** https://groups.google.com/forum/#!topic/golang-dev/FTMScX1fsYk |
| 51 | - **vgo & semantic import versioning** https://groups.google.com/forum/#!topic/golang-dev/Plc42fslQEk |
Florin Pățan | 14362c4 | 2018-03-19 20:19:54 +0000 | [diff] [blame] | 52 | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 53 | *** |
| 54 | |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 55 | ### Blog posts |
| 56 | |
Florin Pățan | 9ced176 | 2018-05-22 11:38:19 +0300 | [diff] [blame] | 57 | - [A Proposal for Package Versioning in Go](https://blog.golang.org/versioning-proposal) |
Florin Pățan | b5099b0 | 2018-02-24 22:22:32 +0000 | [diff] [blame] | 58 | - [Exploring vgo](https://www.calhoun.io/exploring-vgo/) |
Florin Pățan | 3df8967 | 2018-02-24 22:46:09 +0000 | [diff] [blame] | 59 | - [Semantic Import Versioning in the wild](http://blog.ezyang.com/2018/02/semantic-import-versioning-in-the-wild/) |
Nathan Kerr | 5c0db90 | 2018-03-21 15:57:44 -0700 | [diff] [blame] | 60 | - [Diving into vgo from the Golang project](https://www.wolfe.id.au/2018/03/01/diving-into-vgo-from-the-golang-project/) |
Paul Jolly | cff6859 | 2018-04-09 06:30:02 +0100 | [diff] [blame] | 61 | - [Notes on migrating to a Go mono repo](https://github.com/myitcv/x/wiki/Notes-on-migrating-to-a-Go-mono-repo) |
Florin Pățan | 9ced176 | 2018-05-22 11:38:19 +0300 | [diff] [blame] | 62 | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 63 | *** |
| 64 | |
Florin Pățan | bc2d876 | 2018-03-17 09:44:22 +0000 | [diff] [blame] | 65 | ### Presentations |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 66 | |
Brian Ketelsen | 9e7348d | 2018-08-14 12:30:10 -0400 | [diff] [blame] | 67 | - [Repeatable Builds with vgo](https://talks.bjk.fyi/gcru18-vgo.html#/) |
Florin Pățan | 7687a8e | 2018-03-17 09:43:18 +0000 | [diff] [blame] | 68 | |
| 69 | *** |
| 70 | |
| 71 | ### Videos |
| 72 | |
Florin Pățan | a93d68d | 2018-05-07 11:23:43 +0300 | [diff] [blame] | 73 | - [Opening keynote: Go with Versions - GopherConSG 2018](https://www.youtube.com/watch?v=F8nrpe0XWRg) |
Brian Ketelsen | 1da1267 | 2018-03-29 17:07:15 -0400 | [diff] [blame] | 74 | - [1-Using vgo for Go Dependency Management](https://www.gophersnacks.com/programs/using-vgo-for-go-dependency-management) by Brian Ketelsen |
| 75 | - [2-Adding External Dependencies with vgo](https://www.gophersnacks.com/programs/adding-external-dependencies-with-vgo) |
Florin Pățan | 7edd71f | 2018-02-28 20:16:34 +0000 | [diff] [blame] | 76 | - [Building Predictability into Your Pipeline](https://www.youtube.com/watch?v=sbrZfPgNmfw) with Russ Cox, Jess Frazelle, Sam Boyer, Pete Garcin. |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 77 | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 78 | *** |
Florin Pățan | abf2c9c | 2018-02-24 21:51:56 +0000 | [diff] [blame] | 79 | |
Bryan C. Mills | da6dd57 | 2018-07-16 23:14:28 -0400 | [diff] [blame] | 80 | ### Projects Related to module support |
Nathan Kerr | 09db81c | 2018-03-21 16:22:46 -0700 | [diff] [blame] | 81 | |
Bryan C. Mills | da6dd57 | 2018-07-16 23:14:28 -0400 | [diff] [blame] | 82 | - [Athens](https://github.com/gomods/athens) - A proxy server for Go modules |
| 83 | - [vgo-docker-example](https://github.com/elithrar/vgo-docker-example) - An example of how to use modules + Docker together. |
| 84 | - [`myitcv.io/cmd/modpub`](https://github.com/myitcv/x/tree/master/cmd/modpub) - a tool to help create a directory of modules from a git repository |
| 85 | - [JFrog Artifactory](https://jfrog.com/artifactory) - A universal artifact repository with module support. |
Nathan Kerr | 09db81c | 2018-03-21 16:22:46 -0700 | [diff] [blame] | 86 | |
| 87 | *** |
| 88 | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 89 | ### Questions |
| 90 | |
Florin Pățan | b9ccd87 | 2018-02-24 22:08:47 +0000 | [diff] [blame] | 91 | | Question | Answer | |
Florin Pățan | c3caba3 | 2018-02-24 22:07:48 +0000 | [diff] [blame] | 92 | | ------------- | ------------- | |
| 93 | | Hitting GitHub API rate limits? | Create a token and add it to .netrc, see [related issue](https://golang.org/issues/23955) | |
Florin Pățan | bed91c6 | 2018-02-26 22:52:48 +0000 | [diff] [blame] | 94 | | How does vgo handles dependencies of older, discarded versions [link](https://gophers.slack.com/archives/C9BMAAFFB/p1519493604000033)? | [https://github.com/zeebo/vgo-test-version-selection](https://github.com/zeebo/vgo-test-version-selection) | |
Daniel Jay Haskin | e4cee86 | 2018-02-26 16:27:45 -0700 | [diff] [blame] | 95 | | Why are major versions in import paths? | https://groups.google.com/forum/#!topic/golang-dev/Plc42fslQEk | |
| 96 | | How to `go get` so that I can run a program, not download a library? | https://gophers.slack.com/archives/C9BMAAFFB/p1519687366000101 | |
Nathan Kerr | 09db81c | 2018-03-21 16:22:46 -0700 | [diff] [blame] | 97 | | 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 | |