Skip to content

Commit

Permalink
src/make.*: make --no-clean flag a no-op that prints a warning
Browse files Browse the repository at this point in the history
This flag is undocumented and is no longer useful. Users who want to
install additional toolchains without cleaning the installed packages
should just use `go install`.

This CL changes cmd/dist to print a warning that --no-clean is
deprecated and to advise users to use `go install std cmd` instead,
and then otherwise ignores it:

```
$ ./make.bash --no-clean
Building Go cmd/dist using $GOROOT_BOOTSTRAP. (devel +b7a85e0003 linux/amd64)
warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead
Building Go toolchain1 using $GOROOT_BOOTSTRAP.
```

Fixes #47204.

Change-Id: I275031832098401a49e491e324e8de3427973630
Reviewed-on: https://go-review.googlesource.com/c/go/+/341392
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
  • Loading branch information
mdempsky committed Aug 11, 2021
1 parent d4c0ed2 commit dea23e9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 24 deletions.
7 changes: 6 additions & 1 deletion src/cmd/dist/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -1263,14 +1263,19 @@ func cmdbootstrap() {
timelog("start", "dist bootstrap")
defer timelog("end", "dist bootstrap")

var noBanner bool
var noBanner, noClean bool
var debug bool
flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning")

xflagparse(0)

if noClean {
xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n")
}

// Set GOPATH to an internal directory. We shouldn't actually
// need to store files here, since the toolchain won't
// depend on modules outside of vendor directories, but if
Expand Down
8 changes: 1 addition & 7 deletions src/make.bash
Original file line number Diff line number Diff line change
Expand Up @@ -203,16 +203,10 @@ if [ "$1" = "--dist-tool" ]; then
exit 0
fi

buildall="-a"
if [ "$1" = "--no-clean" ]; then
buildall=""
shift
fi

# Run dist bootstrap to complete make.bash.
# Bootstrap installs a proper cmd/dist, built with the new toolchain.
# Throw ours, built with Go 1.4, away after bootstrap.
./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
./cmd/dist/dist bootstrap -a $vflag $GO_DISTFLAGS "$@"
rm -f ./cmd/dist/dist

# DO NOT ADD ANY NEW CODE HERE.
Expand Down
20 changes: 10 additions & 10 deletions src/make.bat
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,20 @@ if x%2==x--dist-tool goto copydist
if x%3==x--dist-tool goto copydist
if x%4==x--dist-tool goto copydist

set buildall=-a
if x%1==x--no-clean set buildall=
if x%2==x--no-clean set buildall=
if x%3==x--no-clean set buildall=
if x%4==x--no-clean set buildall=
if x%1==x--no-banner set buildall=%buildall% --no-banner
if x%2==x--no-banner set buildall=%buildall% --no-banner
if x%3==x--no-banner set buildall=%buildall% --no-banner
if x%4==x--no-banner set buildall=%buildall% --no-banner
set bootstrapflags=
if x%1==x--no-clean set bootstrapflags=--no-clean
if x%2==x--no-clean set bootstrapflags=--no-clean
if x%3==x--no-clean set bootstrapflags=--no-clean
if x%4==x--no-clean set bootstrapflags=--no-clean
if x%1==x--no-banner set bootstrapflags=%bootstrapflags% --no-banner
if x%2==x--no-banner set bootstrapflags=%bootstrapflags% --no-banner
if x%3==x--no-banner set bootstrapflags=%bootstrapflags% --no-banner
if x%4==x--no-banner set bootstrapflags=%bootstrapflags% --no-banner

:: Run dist bootstrap to complete make.bash.
:: Bootstrap installs a proper cmd/dist, built with the new toolchain.
:: Throw ours, built with Go 1.4, away after bootstrap.
.\cmd\dist\dist.exe bootstrap %vflag% %buildall%
.\cmd\dist\dist.exe bootstrap -a %vflag% %bootstrapflags%
if errorlevel 1 goto fail
del .\cmd\dist\dist.exe
goto end
Expand Down
7 changes: 1 addition & 6 deletions src/make.rc
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,10 @@ if(~ $1 --dist-tool){
exit
}
buildall = -a
if(~ $1 --no-clean) {
buildall = ()
shift
}
# Run dist bootstrap to complete make.bash.
# Bootstrap installs a proper cmd/dist, built with the new toolchain.
# Throw ours, built with Go 1.4, away after bootstrap.
./cmd/dist/dist bootstrap $vflag $buildall $*
./cmd/dist/dist bootstrap -a $vflag $*
rm -f ./cmd/dist/dist
# DO NOT ADD ANY NEW CODE HERE.
Expand Down

0 comments on commit dea23e9

Please sign in to comment.