doc/go1.13: describe changes to 'go get'
Also fix up markup in the “Version validation” section to correct
indentation on Chrome.
Change-Id: Ib930d324567c086bbd0c67b105272bdfcca77b12
Reviewed-on: https://go-review.googlesource.com/c/go/+/183630
Reviewed-by: Jay Conrod <jayconrod@google.com>
diff --git a/doc/go1.13.html b/doc/go1.13.html
index ec28e38..54dc765 100644
--- a/doc/go1.13.html
+++ b/doc/go1.13.html
@@ -167,11 +167,56 @@
<h3 id="modules">Modules</h3>
-<p id="patch-suffix"><!-- CL 167747 -->
- <a href="/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them"><code>go</code>
- <code>get</code></a> in module mode now supports the version suffix
- <code>@patch</code> to request the latest patch release.
- TODO(bcmills): expand.
+<h4 id="go-get"><code>go</code> <code>get</code></h3>
+
+<p><!-- CL 174099 -->
+ In module-aware mode, the set of modules updated by
+ <a href="/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them"><code>go</code> <code>get</code> <code>-u</code></a>
+ is now smaller, and is more consistent with the set of packages updated by
+ <code>go</code> <code>get</code> <code>-u</code> in GOPATH mode.
+ <code>go</code> <code>get</code> <code>-u</code> continues to update the
+ modules and packages named on the command line, but additionally updates only
+ the modules containing the packages <em>imported by</em> the named packages,
+ rather than the transitive module requirements of the modules containing the
+ named packages.
+</p>
+
+<p>
+ Note in particular that <code>go</code> <code>get</code> <code>-u</code>
+ (without additional arguments) now updates only the transitive imports of the
+ package in the current directory. To instead update all of the packages
+ transitively imported by the main module (including test dependencies), use
+ <code>go</code> <code>get</code> <code>-u</code> <code>all</code>.
+</p>
+
+<p><!-- CL 177879 -->
+ As a result of the above changes to
+ <code>go</code> <code>get</code> <code>-u</code>, the
+ <code>go</code> <code>get</code> subcommand no longer supports
+ the <code>-m</code> flag, which caused <code>go</code> <code>get</code> to
+ stop before loading packages. The <code>-d</code> flag remains supported, and
+ continues to cause <code>go</code> <code>get</code> to stop after downloading
+ the source code needed to build dependencies of the named packages.
+</p>
+
+<p><!-- CL 167747 -->
+ In module-aware mode, the <code>go</code> <code>get</code> subcommand now
+ supports the version suffix <code>@patch</code>. The <code>@patch</code>
+ suffix indicates that the named module, or module containing the named
+ package, should be updated to the highest patch release with the same
+ major and minor versions as the version found in the build list.
+ If no such version is present in the build list, <code>@patch</code> is
+ equivalent to the existing <code>@latest</code> suffix.
+</p>
+
+<p><!-- CL 177677 -->
+ Additionally, the <code>go</code> <code>get</code> subcommand now supports
+ the <code>-t</code> flag in module-aware mode. As in GOPATH mode,
+ the <code>-t</code> flag instructs <code>go</code> <code>get</code> to include
+ the packages imported by <em>tests of<em> the packages named on the command
+ line. If the <code>-t</code> flag is set, the packages imported by tests will
+ be updated (if the <code>-u</code> flag is set), downloaded, and built (unless
+ the <code>-d</code> flag is set) along with the usual non-test packages.
</p>
<h4 id="version-validation">Version validation</h4><!-- CL 181881 -->
@@ -206,29 +251,31 @@
</p>
<p>
- If the main module directly requires a version that fails the above
- validation, a corrected version can be obtained by redacting the version to
- just the commit hash and re-running a <code>go</code> command such as <code>go
- list -m all</code> or <code>go mod tidy</code>. For example,
- <pre>require github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c</pre>
- can be redacted to
- <pre>require github.com/docker/docker e7b5f7dbe98c</pre>
- which resolves to
- <pre>require github.com/docker/docker v0.7.3-0.20190319215453-e7b5f7dbe98c</pre>
+ If a <code>require</code> directive in the
+ <a href="/cmd/go/#hdr-The_main_module_and_the_build_list">main module</a> uses
+ an invalid pseudo-version, it can usually be corrected by redacting the
+ version to just the commit hash and re-running a <code>go</code> command, such
+ as <code>go</coqde> <code>list</code> <code>-m</code> <code>all</code>
+ or <code>go</code> <code>mod</code> <code>tidy</code>. For example,
</p>
+<pre>require github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c</pre>
+<p>can be redacted to</p>
+<pre>require github.com/docker/docker e7b5f7dbe98c</pre>
+<p>which currently resolves to</p>
+<pre>require github.com/docker/docker v0.7.3-0.20190319215453-e7b5f7dbe98c</pre>
<p>
- If the main module has a transitive requirement on a version that fails
- validation, the invalid version can still be replaced with a valid one through
- the use of a <a href="/cmd/go/#hdr-The_go_mod_file"><code>replace</code>
- directive</a> in the <code>go.mod</code> file of
- the <a href="/cmd/go/#hdr-The_main_module_and_the_build_list">main module</a>.
- If the replacement is a commit hash, it will be resolved to the appropriate
- pseudo-version. For example,
- <pre>replace github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c => github.com/docker/docker e7b5f7dbe98c</pre>
- resolves to
- <pre>replace github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c => github.com/docker/docker v0.7.3-0.20190319215453-e7b5f7dbe98c</pre>
+ If one of the transitive dependencies of the main module requires an invalid
+ version or pseudo-version, the invalid version can be replaced with a valid
+ one using a
+ <a href="/cmd/go/#hdr-The_go_mod_file"><code>replace</code> directive</a> in
+ the <code>go.mod</code> file of the main module. If the replacement is a
+ commit hash, it will be resolved to the appropriate pseudo-version as above.
+ For example,
</p>
+<pre>replace github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c => github.com/docker/docker e7b5f7dbe98c</pre>
+<p>currently resolves to</p>
+<pre>replace github.com/docker/docker v1.14.0-0.20190319215453-e7b5f7dbe98c => github.com/docker/docker v0.7.3-0.20190319215453-e7b5f7dbe98c</pre>
<h3 id="go-command">Go command</h3>
@@ -251,6 +298,10 @@
files may be searched for directives but ignored during build.
</p>
+<p><!-- CL 171137 -->
+ TODO
+</p>
+
<h3 id="compiler">Compiler toolchain</h3>
<p><!-- CL 170448 -->