Fixes assumption broken by https://golang.org/cl/143538 where number
of builders (types of builders) no longer equals the number of trybot
builds. (We now run linux-amd64 1 or 3 times depending on the repo)
Fixesgolang/go#28714
Change-Id: I3b85adbb79508890d16311fc75f4b48ffc1f3c78
Reviewed-on: https://go-review.googlesource.com/c/149437
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
For details, see
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-info
Note that the field Mergable has been renamed Mergeable,
and its JSON tag has been corrected from mergable to mergeable.
If this breaks any existing code using the gerrit package,
that code should be examined, since it has never seen a
mergeable change as actually mergeable in the past.
Change-Id: I769abeed173c7afd7da7b1527f810d0a2db18236
Reviewed-on: https://go-review.googlesource.com/c/149239
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
The ClosedBy field is currently always nil due to the cause described
in the linked issue. Document it with a TODO comment so people don't
need to spend time on figuring that out for themselves.
Updates golang/go#28745
Change-Id: Icaa7b8fd5614dffbfd13a9783b9a71cb87e2af40
Reviewed-on: https://go-review.googlesource.com/c/149238
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
By now, OpenBSD 6.4 has proven reliable, so we want it to be used
for building subrepos as well.
Updates golang/go#26833
Change-Id: I026207865514a026f86936140a16dd707f9594ea
Reviewed-on: https://go-review.googlesource.com/c/148888
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Our latest practice is to avoid creative names, but prefer descriptive and
boring ones. This is helpful for:
• discovering the command when looking at the list of commands available
• finding the command again (no need to remember the fun name)
• not polluting autocompletion in terminal (since GOPATH/bin is often in
one's PATH)
New usage:
$ rmplaysnippet
usage: rmplaysnippet {https://play.golang.org/p/<id> | <id>}
Change-Id: Id3d9513a7229624607408facb62f76e206a93002
Reviewed-on: https://go-review.googlesource.com/c/148885
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
OpenBSD 6.4 is the current OpenBSD release, while 6.2 has just stopped
being supported. The new 6.4 builder has proven to be stable and
reliable, so start using it for trybots as well.
Looking at the non-trybot build times for the Go repository with
OpenBSD 6.2 and 6.4 builders to get a sense of the build speed,
it seems OpenBSD 6.4 is about 15% slower (1200~ seconds on 6.2 vs
1380~ seconds on 6.4). This might be due to security-oriented changes
in OpenBSD 6.3 and 6.4 that were done to mitigate Spectre/Meltdown
vulnerabilities.
CL 145022 has helped recover some lost performance by re-enabling SMT.
OpenBSD trybots seem to take around 6 minutes now, so there's
some room to make them slower before they're the bottleneck.
Try to update for now, and if it becomes a bottleneck, then
we can prioritize investigating ways to improve OpenBSD 6.4
builder performance further if possible.
References:
• https://www.openbsd.org/64.html
• https://www.openbsd.org/63.html
• https://man.openbsd.org/sysctl.2#HW_SMT_2Fixesgolang/go#26833
Change-Id: I42c136fab800df46866a95017a8f70047b37f847
Reviewed-on: https://go-review.googlesource.com/c/144777
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Gerrit's NoteDB git-based metadata format changed recently to display
"Gerrit User 1234" as the display name for meta commit authors. Use
the Gerrit REST API to retrieve the proper display name and cache the
result to prevent superfluous API calls.
Also updates the maintner doc for the Author property of GerritMessage
to reflect NoteDB's format.
Fixesgolang/go#28663
Change-Id: I549474ad139e48c736d715414e82b6db83a9fdf3
Reviewed-on: https://go-review.googlesource.com/c/148560
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
In some cases (https://golang.org/cl/148477), the original author
of a change has not registered themselves with Gerrit. This causes
the change to assign Gobot as the owner, making it difficult to know
who originally authored the change. When initially creating the
Gerrit CL, upload some informational text that includes which GitHub
PR the CL corresponds to and who the author is according to git.
Fixesgolang/go#28662
Change-Id: Icc8dad4e79d7270635b71b1e2cd24e0e1b8e5286
Reviewed-on: https://go-review.googlesource.com/c/148564
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This change deletes the OwnerName method on GerritCL, since Gerrit's
format for its NoteDB backing store changed to display "Gerrit User NNN"
instead of the proper display name in the meta commit.
Update golang/go#28663
Change-Id: Ifa64ca2b2694b17e888451582b9c63f3f37280a9
Reviewed-on: https://go-review.googlesource.com/c/148557
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This is a follow-up to CL 147438, which added new dependencies to
this package. They need to be added to Dockerfile for deployment.
Generated with:
make update-deps
Using the latest versions of all dependencies.
Change-Id: I923954ceb019ecfb8629fffc4001e656eab7cafd
Reviewed-on: https://go-review.googlesource.com/c/148318
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Previously, the https://golang.org/dl/?mode=json endpoint was used
to figure out the supported and upcoming Go releases. That endpoint
lists versions that have binary release files uploaded.
CL 146137 added an RPC endpoint to the maintner server to list
supported versions. It uses tags and branches in Gerrit to compute
that information, which makes it a better source as it's closer to
the canonical source of truth for Go releases. We can use it here,
and it allows the parsing code to be simpler.
Change-Id: Ida0142f01aa42d5660fd28d4f985ff07914f239d
Reviewed-on: https://go-review.googlesource.com/c/147438
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Separate performance issues (those with the "Performance" label) from
the rest of the issues on the release dashboard. Performance issues
tend to be those which are not critical to fix for any particular
release, so separating them and putting them later in order helps to
deprioritize them.
Kind of a hack, but it works.
Change-Id: I6fa0f85629504c298691b492e50e03c817c62a1b
Reviewed-on: https://go-review.googlesource.com/c/145937
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
The previous condition could never be true (unless the current time
went back by more than an hour), so the cached releases.major value
was never used. An HTTP request to the remote server was made on each
getMajorReleases call.
This change fixes the condition to use the cached releases.major value
within an hour of fetching it.
Updates golang/go#24899
Change-Id: I71da1b2503075db878b371606436130931dbcc0d
Reviewed-on: https://go-review.googlesource.com/c/147437
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This change computes the supported Go release branches,
and adds them to the GerritTryWorkItem for trybots that
run on subrepos.
This should help significantly with trybots catching regressions
in subrepos that affect older, but supported Go releases.
Fixesgolang/go#17626
Change-Id: I4d88f6510c34d0c28266d44c341d5831a8514fce
Reviewed-on: https://go-review.googlesource.com/c/147198
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Previously, the list-Go-releases RPC endpoint was more flexible and
considered a Go release to exist as long as there's a git tag for it,
regardless of whether a corresponding release branch existed.
Such a situation is very unlikely to come up, and we don't want to cause
all users of this API to filter out releases without a release branch.
So just re-define a Go release to require a release branch, and
make that the API promise.
In practice, this should not have any effect because all go tags
have corresponding release branches.
Updates golang/go#17626
Change-Id: Ia7a8354000483c969e123f0f3605fd360846c40b
Reviewed-on: https://go-review.googlesource.com/c/147200
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
We add -s flag to ramfs to post its channel
on /srv/ramfs, so multiple clients could
access its files.
Updates golang/go#28485.
Change-Id: Id39b17fcc3bec2b5fae3a16841ab2414e60361b3
Reviewed-on: https://go-review.googlesource.com/c/146038
Reviewed-by: Bryan C. Mills <bcmills@google.com>
This change adds an RPC endpoint to maintnerd API server to list
the supported Go releases. This is needed and will be used by
cmd/coordinator to run subrepo trybots on previous Go release
(in addition to current).
It's implemented on top of the Gerrit project ref data that the
maintner corpus already tracks. A release is considered to be
exist for each git tag named "goX", "goX.Y", or "goX.Y.Z".
This functionality is also implemented in some other places using
data that is further away from the source of truth. Such places can
start to use this endpoint instead.
Add a subcommand to maintq to invoke the new list Go releases endpoint.
Its current output (against a local development maintnerd server):
$ go run .../maintner/maintq -server=localhost:6344 list-releases
major:1 minor:11 patch:1 tag_name:"go1.11.1" tag_commit:"26957168c4c0cdcc7ca4f0b19d0eb19474d224ac" branch_name:"release-branch.go1.11" branch_commit:"97781d2ed116d2cd9cb870d0b84fc0ec598c9abc"
major:1 minor:10 patch:4 tag_name:"go1.10.4" tag_commit:"2191fce26a7fd1cd5b4975e7bd44ab44b1d9dd78" branch_name:"release-branch.go1.10" branch_commit:"e97b7d68f107ff60152f5bd5701e0286f221ee93"
Updates golang/go#17626
Change-Id: Ia9ea7f49d421ce0c7a9e85c423aba31572cea52b
Reviewed-on: https://go-review.googlesource.com/c/146137
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Commands run:
go get -u
go get github.com/russross/blackfriday@v1
go mod tidy
go test ./...
Change-Id: I65db2cd0b8dc60bb8a90433d11c4d0e72ddf7099
Reviewed-on: https://go-review.googlesource.com/c/145857
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Makes it easier for users of the ListFiles() API to evaluate Status in
FileInfo objects.
Change-Id: I974fefc9ce0fc539cd678f77899630e91f68d5b9
GitHub-Last-Rev: 352dc73960
GitHub-Pull-Request: golang/build#14
Reviewed-on: https://go-review.googlesource.com/c/145657
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
BuildConfig grew way too large and has too many slices & such to be a
value type. Make it a pointer type, which matches HostConfig.
Change-Id: Ie625bece9d6d8c1ec6cff26e77416bd9b1f256d8
Reviewed-on: https://go-review.googlesource.com/c/145077
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This is the coordinator half of the change to make the coordinator
test subrepos against two prior releases of Go.
The next change that's required is for the maintnerd API server to
return the name of the past two releases.
For now this change is a no-op. But once maintnerd starts returning
more data, then this change will start causing causing two more
linux-amd64 builders per subrepo trybot.
Updates golang/go#17626
Change-Id: I1cedbc2e4eee51fb003c8bcc8e072fd10717a833
Reviewed-on: https://go-review.googlesource.com/c/143538
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This change expands the scope of cmd/maintserve to visualize Gerrit CL
maintner data, in addition to the GitHub repository issue tracker data.
I've needed this recently when investigating golang/go#28318 to check
maintner.GerritHashtags values of various CLs. They are shown as of
e712a6949f.
maintner doesn't have sufficient information to present Gerrit CLs in
full detail, so this does a best effort and displays the available
information. Inline review comments and diffs are not included.
The downside of this change is that it adds new dependencies.
However, they are actively maintained by me.
Updates golang/go#28318
Change-Id: Ie6fe14f95f107e95371ea820af88563e03a6bb2a
Reviewed-on: https://go-review.googlesource.com/c/145258
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Disable Spectre/Meltdown mitigations and enable simultaneous
multithreading (SMT) on the OpenBSD 6.4 builder image.
This was done by setting hw.smt=1 in /etc/sysctl.conf when building
the image.
I considered an alternative approach of doing this at runtime via
a cmd/buildlet special case for OpenBSD. It would've likely been
faster to implement if I had the idea at the beginning. However,
by the time I saw it, I had already started to build a new OpenBSD 6.4
image with the /etc/sysctl.conf file, then tested it via debugnewvm.
At this point, there's no longer a time saving advantage, so I decided
to prefer the v2 image because it keeps OpenBSD-specific configuration
more contained in env/openbsd-* directory, rather than spreading it out
between there and the cmd/buildlet runtime code. It seems to be a
slightly better option.
The times to do a full build, as measured via cmd/debugnewvm, were:
6.2 = 19m25.218s
6.4 = 28m49.565s
6.4 with hw.smt=1 = 22m55.909s
That should translate to faster trybot runs, which is important
for open source project health.
The 386 environment doesn't need to be updated because it doesn't
support hw.smt:
sysctl: hw.smt: value is not available
Attempting to set it anyway should be harmless and okay to do,
in case it happens to get supported in the future.
We're only using amd64 environment for trybots, so it's okay
for the purposes of golang/go#28403.
Reference: https://man.openbsd.org/sysctl.2#HW_SMT_2Fixesgolang/go#28403
Change-Id: I7bc4cbf83ccbdb3aa9dd19eeabd88feb1c425811
Reviewed-on: https://go-review.googlesource.com/c/145022
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Fixes regression from CL 144637 for s390x and arm5 (the only two deployed with that change).
Fixesgolang/go#27182
Change-Id: I7a4a92c7c97f3f6c738d757a05b9dfc755547bf0
Reviewed-on: https://go-review.googlesource.com/c/144858
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This change updates information related to mikioh to ensure hitless
switching; I'll delete the account mikioh.mikioh soon.
Change-Id: Id29705e59b12ca4633f700bd1303dbb7ac08b823
Reviewed-on: https://go-review.googlesource.com/c/144877
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Also, remove use of envutil to de-dup environment variables. Go has
done that automatically since Go 1.9.
Fixesgolang/go#27182Fixesgolang/go#28041
Change-Id: I8e81e7996b5cee305465814aeb1b14df80b799dd
Reviewed-on: https://go-review.googlesource.com/c/144637
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
The golang.org/x/build/version/... packages have been deprecated
in favor of golang.org/dl/... in CL 123678, as part of golang/go#23223.
Make this more visible by pointing to the new packages in the package
documentation.
Use a godoc.org link to avoid confusion, because these import paths
are hard tell apart from normal URLs that have a different meaning.
Updates golang/go#23635.
Updates golang/go#23223.
Change-Id: Ide6371f24fa2369b2807987c83df4226cacfe35d
Reviewed-on: https://go-review.googlesource.com/c/144617
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
The tour binary was renamed from gotour to tour in CL 141857 as part
of golang/go#28163, but cmd/release wasn't updated to know about the new
name. This fixes that.
Additionally, don't push tour source to the buildlet if the releaselet
isn't going to include it anyway.
Tested that running it with a Go 1.11 release includes the tour:
$ release -rev release-branch.go1.11 -tools release-branch.go1.11 \
-target=linux-amd64 -skip_tests -version=go1.11.99 -watch
And with Go 1.12 does not:
$ release -rev master -tools master \
-target=linux-amd64 -skip_tests -version=go1.12.99 -watch
Updates golang/go#28163
Updates golang/go#27151
Change-Id: I246fc274c9dea81a24d27322bcbbe5a59e682a5e
Reviewed-on: https://go-review.googlesource.com/c/143537
Reviewed-by: Katie Hockman <katie@golang.org>
CL 104115 added %GOPATH%\bin to the PATH. But GOPATH environment
variable might contain directory list. So, if, for example, GOPATH has
"c:\a;c:\b", then PATH is end up with "c:\a;c:\b\bin" - which is wrong -
user, probably, wants both c:\a\bin and c:\b\bin to be listed in his/her
PATH.
Use %USERPROFILE%\go\bin instead, because USERPROFILE always has
directory.
If user wants to change GOPATH, they would have to adjust their PATH
manually.
Updates golang/go#18583
Change-Id: I634a25ace28776c978faebcfcb2c1750d6d17a0d
Reviewed-on: https://go-review.googlesource.com/c/127777
Reviewed-by: Ron Evans <ron@hybridgroup.com>
Reviewed-by: Mario Arranz <marioarranzr@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Previously, they were running a 6.4 snapshot release from October 4, 2018,
added in CL 139857.
The final release of OpenBSD 6.4 has been released on October 18, 2018,
and can be used now. See https://www.openbsd.org/64.html.
Fixup unbound variable in env/openbsd-amd64/make.bash:
$ ./make.bash
./make.bash: line 57: PKG_ADD_OPTIONS: unbound variable
The amd64 architecture image was tested with cmd/debugnewvm
and passed all tests successfully.
Updates golang/go#26833.
Change-Id: I0e3b1ed5aa9b2e624d9afbe46a8a344f88ddcc56
Reviewed-on: https://go-review.googlesource.com/c/143458
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Within the auto-assign logic, the change URL was constructed
with a newline character at the end. This isn't needed and
caused logs to be harder to read as a result.
Change-Id: Iecf0a0b5488b89e9150af042691439eb507b1642
Reviewed-on: https://go-review.googlesource.com/c/143457
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Filter reviewer list before assignment, by the email address of the
commit author.
Fixesgolang/go#27533
Change-Id: I39061e3277bcad9b77b3ce7b5d4be69d9b351ac7
Reviewed-on: https://go-review.googlesource.com/c/140038
Reviewed-by: Andrew Bonventre <andybons@golang.org>
We're turning down the old (and neglected) beta.golang.org godoc VM.
It's not different enough from tip.golang.org, which is more reliable
than it used to be.
Now beta.golang.org will just redirect to tip.
Updates golang/go#25978Fixesgolang/go#21073
Change-Id: Iae7fe4c82c14cec7381e75a2e214210d38b6e623
Reviewed-on: https://go-review.googlesource.com/c/120056
Reviewed-by: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
The commands list and ssh had correct command names in usage text.
However, it seems the usage of create command was copied/pasted for
many other commands, and never got updated. This change fixes that.
Change-Id: I8392029c5c129bbee027c522a6e2bbfdecd07c62
Reviewed-on: https://go-review.googlesource.com/c/141687
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This change adds amd64 and 386 OpenBSD 6.4 snapshot builders.
The snapshots are from October 4, 2018:
/pub/OpenBSD/snapshots/amd64/BUILDINFO:
Build date: 1538669162 - Thu Oct 4 16:06:02 UTC 2018
/pub/OpenBSD/snapshots/i386/BUILDINFO:
Build date: 1538681766 - Thu Oct 4 19:36:06 UTC 2018
These are meant to be replaced with the final version of OpenBSD 6.4
when it is released.
Modify make.bash to support fetching snapshot versions.
The amd64 architecture image was tested with cmd/debugnewvm
and passed all tests successfully.
Updates golang/go#26833.
Change-Id: Iea456605ace08f25d4eba37f9a962e6b9af95369
Reviewed-on: https://go-review.googlesource.com/c/139857
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Assigning usage to flag.Usage makes it get picked up by flag.Parse
when the -help flag is specified.
This makes the usage printing more consistent and helpful.
Before:
$ ./genbootstrap -help
Usage of ./genbootstrap:
-skip_build
skip bootstrap.bash step; useful during development of cleaning code
$ ./genbootstrap
2018/10/10 13:34:01 Usage: genbootstrap GOOS/GOARCH
After:
$ ./genbootstrap -help
Usage: genbootstrap GOOS/GOARCH
-skip_build
skip bootstrap.bash step; useful during development of cleaning code
$ ./genbootstrap
Usage: genbootstrap GOOS/GOARCH
-skip_build
skip bootstrap.bash step; useful during development of cleaning code
Change-Id: Ia5553bf452d85842eed926aca5a7fc36dc7cdf47
Reviewed-on: https://go-review.googlesource.com/c/141177
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Precisely speaking, the push command pushes files
in GOROOT (or go env GOROOT), not the repo in the current directory.
Change-Id: If9c09643c5cf6b5ae8702a69e3988f0b8097ba1d
Reviewed-on: https://go-review.googlesource.com/c/141099
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Add FreeBSD 12.0 as -ALPHA8 snapshot.
Make the binary freebsd-update step optional (it's available only for releases).
Use the downloaded vanilla image as a base image of the now qcow2 formated disk.qcow2.
This saves the initial cp vanilla to disk.raw step, which is kind of slow.
disk.qcow2 is converted back to raw before the GCE image is archived.
This might also achieve better sparse images, haven't compared though.
Change-Id: Ic60fb51df1306941f16cebe12efdd1729989bb23
Reviewed-on: https://go-review.googlesource.com/c/140039
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>