Regarding the concern raised in that post -- I think it is definitely not too late to give feedback on how modules work, even if the core Go team has said they will maintain backwards compatibility for modules.
My understanding of that backwards compatibility is that a module that is defined today will be understood by future Go releases, but that the statement of backwards compatibility does not imply that the exact behavior of modules is frozen (especially for the behavior of the go tool itself, what flags it supports, what those flags do, what does './...' mean, etc.). Rather, as far as I understand, the exact behavior is *expected* to change based on 1.11 feedback.
For example, from back in February (from the initial detailed vgo blog series):
> "The details here may be revised, but today's go.mod files will be understood by any future tooling. Please start tagging your packages with release tags; add go.mod files if that makes sense for your project."
And from the 1.11 release notes:
> "Module support is considered experimental. Details are likely to change in response to feedback from Go 1.11 users, and we have more tools planned. Although the details of module support may change, projects that convert to modules using Go 1.11 will continue to work with Go 1.12 and later."
I read that as saying that the exact behavior of modules may very well change before modules become the default behavior, but that modules defined and released under vgo or Go 1.11 will still be understood.
In other words, feedback is still very valuable and will influence what the behavior is in 1.12 and beyond.
In my personal experience and from what I have observed, the core Go team has been very willing not only to discuss changes to modules, but also to make actual changes to how modules behave based on community feedback. Here is one sample list of changes from the "Modules" wiki page, where almost all of these changes were primarily driven by community feedback I think:
In terms of the Go 1.11 behavior, there are still open questions, including around what should the exact behavior be when modules are enabled but you are outside of any particular module, or how to best support simultaneously editing multiple modules, or what if any behavior the core tooling might pick up from community tooling such as
https://github.com/rogpeppe/gohack, etc. In many cases, I believe some of the currently open questions were purposefully left as open questions in 1.11, including so that actual experience could better inform future approaches.
Filing module issues or commenting on existing issues is of course valuable, but the core team has also expressed great interest in people filing experience reports on real-world usages of modules. From the experience reports wiki page (
https://github.com/golang/go/wiki/ExperienceReports):
"The best experience reports tell: (1) what you wanted to do, (2) what you actually did, and (3) why that wasn’t great, illustrating those by real concrete examples, ideally from production use. Please write these reports about the problems most significant to you, post them on your own blog, or on Medium, or as a Github Gist (use a .md extension for Markdown), or as a publicly-readable Google doc, and then link them here."
In any event, as a member of the community, I would certainly encourage feedback from other members of the community...
--thepudds