aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modcmd/mod.go
AgeCommit message (Collapse)Author
2021-07-31[dev.cmdgo] cmd/go: add go mod editwork commandMichael Matloob
go mod editwork behaves similarly to go mod edit: it has flags to change the go version, and add and remove directory and replace directives. For #45713 Change-Id: I1c795c122bfe461d6e87dd731692e0bf1bbe2bf7 Reviewed-on: https://go-review.googlesource.com/c/go/+/334938 Trust: Michael Matloob <matloob@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
2021-07-27[dev.cmdgo] cmd/go: add go mod initwork commandMichael Matloob
This command is used to create a go.work file with a set of modules given in the arguments to the command. For #45713 Change-Id: I09f8cefc5849dd43c234dc4a37091791fcc02ebe Reviewed-on: https://go-review.googlesource.com/c/go/+/334936 Trust: Michael Matloob <matloob@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
2020-02-12cmd/go/internal/modcmd: remove dead function addModFlagJay Conrod
This function is never called and should have been removed earlier. work.AddModCommonFlags defines the -modfile flag instead. Fixes #37189 Change-Id: I73ad2a727013a849cba44bf70de04160f37c97dd Reviewed-on: https://go-review.googlesource.com/c/go/+/219197 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-10-24cmd/go: add -modfile flag that sets go.mod file to read/writeJay Conrod
This change adds the -modfile flag to module aware build commands and to 'go mod' subcommands. -modfile may be set to a path to an alternate go.mod file to be read and written. A real go.mod file must still exist and is used to set the module root directory. However, it is not opened. When -modfile is set, the effective location of the go.sum file is also changed to the -modfile with the ".mod" suffix trimmed (if present) and ".sum" added. Updates #34506 Change-Id: I2d1e044e18af55505a4f24bbff09b73bb9c908b4 Reviewed-on: https://go-review.googlesource.com/c/go/+/202564 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-08-18cmd/go: remove go mod fix, add go help go.modRuss Cox
"go mod fix" does work already done by nearly every other go command. It was also confusing why we had both "go mod fix" and "go mod tidy". Delete "go mod fix". The main reason we kept "go mod fix" this long was for the discussion of automatic go.mod updates in its documentation, which is now moved into a new "go help go.mod". Fixes #26831. Change-Id: Ic95ca8918449ab79791d27998e02eb3377ac7972 Reviewed-on: https://go-review.googlesource.com/129682 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-08-10cmd/go: add go mod whyRuss Cox
A very common question is "why is this package or module being kept by go mod vendor or go mod tidy?" go mod why answers that question. Fixes #26620. Change-Id: Iac3b6bbdf703b4784f5eed8e0f69d41325bc6d7f Reviewed-on: https://go-review.googlesource.com/128359 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-08-10cmd/go: add go mod downloadRuss Cox
go mod download provides a way to force downloading of a particular module version into the download cache and also to locate its cached files. Forcing downloads is useful for warming caches, such as in base docker images. Finding the cached files allows caching proxies to use go mod download as the way to obtain module files on cache miss. Fixes #26577. Fixes #26610. Change-Id: Ib8065bcce07c9f5105868ec1d87887ef4871f07e Reviewed-on: https://go-review.googlesource.com/128355 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-08-01cmd/go: split go mod into multiple subcommandsRuss Cox
The current "go mod" command does too many things. The design is unclear. It looks like "everything you might want to do with modules" which causes people to think all module operations go through "go mod", which is the opposite of the seamless integration we're going for. In particular too many people think "go mod -require" and "go get" are the same. It does make sense to put the module-specific functionality under "go mod", but not as flags. Instead, split "go mod" into multiple subcommands: go mod edit # old go mod -require ... go mod fix # old go mod -fix go mod graph # old go mod -graph go mod init # old go mod -init go mod tidy # old go mod -sync go mod vendor # old go mod -vendor go mod verify # old go mod -verify Splitting out the individual commands makes both the docs and the implementations dramatically easier to read. It simplifies the command lines (go mod -init -module m is now 'go mod init m') and allows command-specific flags. We've avoided subcommands in the go command to date, and we should continue to avoid adding them unless it really makes the experience significantly better. In this case, it does. Creating subcommands required some changes in the core command-parsing and help logic to generalize from one level to multiple levels. As part of having "go mod init" be a separate command, this CL changes the failure behavior during module initialization to be delayed until modules are actually needed. Initialization can still happen early, but the base.Fatalf is delayed until something needs to use modules. This fixes a bunch of commands like 'go env' that were unhelpfully failing with GO111MODULE=on when not in a module directory. Fixes #26432. Fixes #26581. Fixes #26596. Fixes #26639. Change-Id: I868db0babe8c288e8af684b29d4a5ae4825d6407 Reviewed-on: https://go-review.googlesource.com/126655 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-08-01cmd/go: add 'go version' statement in go.modRuss Cox
We aren't planning to use this or advertise it much yet, but having support for it now will make it easier to start using in the future - older go commands will understand what 'go 1.20' means and that they don't have go 1.20. Fixes #23969. Change-Id: I729130b2690d3c0b794b49201526b53de5093c45 Reviewed-on: https://go-review.googlesource.com/125940 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-07-31cmd/go: allow unversioned paths to -dropreplace flagBryan C. Mills
We can add unversioned paths via -replace; -dropreplace must be able to drop them. Fixes #26417. Change-Id: Ic05e9ae2ad80c008e11b195695cbb9d0fc8dbc0a Reviewed-on: https://go-review.googlesource.com/126155 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2018-07-28cmd/go: document in 'go help mod' that people should use 'go get'Russ Cox
We're starting to see tutorials that assume 'go mod' is the only module-related command. Fixes #26597. Change-Id: I44701f29f89fc67086f96307afbdb4659bb63873 Reviewed-on: https://go-review.googlesource.com/125935 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-07-28cmd/go: fix spurious edges in mod -graph outputRuss Cox
The mod -graph output was showing every dependency as an edge from the main module, instead of showing only the things that are listed in go.mod. Fixes #26489. Change-Id: I248fedb1fc9225e2a7a9ddc2f4a84520b3a96138 Reviewed-on: https://go-review.googlesource.com/125657 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-07-24cmd/go: fix Go structs in -json documentationYann Hodique
"string" should really be "struct" in the structures describing the module. Change-Id: I4e9cb12434bd33aa243622380c78e5e297d01d0b Reviewed-on: https://go-review.googlesource.com/125638 Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-07-19cmd/go: scrub go.sum during go mod -syncRuss Cox
go.sum accumulates cruft as modules are added and removed as direct and indirect dependencies. Instead of exposing all that cruft, let "go mod -sync" clean it out. Fixes #26381. Change-Id: I7c9534cf7cc4579f7f82646d00ff691c87a13c4a Reviewed-on: https://go-review.googlesource.com/124713 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-07-19cmd/go: diagnose 'go mod' in GOPATH/src betterRuss Cox
People are (understandably) confused by creating go.mod files in GOPATH/src and then having the go command not use modules in those directories. We can't change that behavior (or we'll break non-module users of GOPATH) but we can force 'go mod' (including 'go mod -init') to fail loudly in that case. If this is not enough, the next step would be to print a warning every time the go command is run in a GOPATH/src directory with a go.mod but module mode hasn't triggered. But that will annoy all the non-module users. Hopefully anyone confused will eventually run a 'go mod' command of some kind, which will fail loudly. Fixes #26365. Change-Id: I8c5fe987fbc3f8d2eceb1138e6862a391ade150c Reviewed-on: https://go-review.googlesource.com/124708 Reviewed-by: Bryan C. Mills <bcmills@google.com>
2018-07-13cmd/go: fix module replace flag parsed bugBaokun Lee
In CL 122404, we change -replace syntax from => to =. And we also need to change this and the tests. Fixes golang/go#26373. Change-Id: I2d4e85e10c1578540cc7673b93d849270940d776 Reviewed-on: https://go-review.googlesource.com/123778 Reviewed-by: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com>
2018-07-12cmd/go: merge module support from x/vgo repoRuss Cox
This CL corresponds to CL 123361, the final manual CL in that repo, making this the final manual sync. All future commits will happen in this repo (the main Go repo), and we'll update x/vgo automatically with a fixed patch+script. Change-Id: I572243309c1809727604fd704705a23c30e85d1a Reviewed-on: https://go-review.googlesource.com/123576 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>