Run validation in the selected module
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
# Go command environments
|
||||
|
||||
`internal/gotool` resolves effective Go settings once for a validation or build
|
||||
operation and applies the shared environment to its Go commands. It uses
|
||||
`internal/gotool` resolves effective Go settings when an operation first needs
|
||||
a Go command and applies the shared environment to its commands. Candidate
|
||||
validation and its build callback share an operation-local owner while the
|
||||
inherited environment and persistent Go settings file remain unchanged.
|
||||
Standalone and delivery builds create their own owners. The package uses
|
||||
`internal/process` for cancellation, the working directory, output, and wrapped
|
||||
errors.
|
||||
|
||||
@@ -35,9 +38,10 @@ uses the same ownership transfer when formatting a failure.
|
||||
|
||||
## Configuration discovery
|
||||
|
||||
The owner asks the installed `go` command for `GOHOSTOS` and `GOHOSTARCH`, then
|
||||
queries effective operational settings with that host selected. Both queries
|
||||
use `GOTOOLCHAIN=local` and controlled `GOFLAGS`. Discovery sets
|
||||
The owner asks the installed `go` command for `GOHOSTOS`, `GOHOSTARCH`, and the
|
||||
`GOENV` settings-file path, then queries effective operational settings with
|
||||
that host selected. Both queries use `GOTOOLCHAIN=local` and controlled
|
||||
`GOFLAGS`. Discovery sets
|
||||
`GOEXPERIMENT=none` and clears architecture feature variables so an invalid or
|
||||
nonbaseline tuning value cannot prevent settings from being read. The
|
||||
experiment override is discovery-only.
|
||||
@@ -48,6 +52,11 @@ and native cgo/C-tool configuration into its settings. This captures values
|
||||
supplied by either the process environment or the persistent Go environment
|
||||
file.
|
||||
|
||||
The operation-local owner snapshots the inherited environment and selected
|
||||
settings file. It reuses the resolved tool across validation and its following
|
||||
build callback while those inputs match, and rediscovers after a consumer
|
||||
callback changes either input. It does not cache settings across operations.
|
||||
|
||||
Configuration discovery parses JSON from stdout. Stderr is captured separately
|
||||
and included in command-failure diagnostics, so a successful query can emit
|
||||
warnings while supplying valid configuration.
|
||||
@@ -69,9 +78,10 @@ baseline values. Effective `GOCACHE`, `GOCACHEPROG`, `GOMODCACHE`, `GOPATH`,
|
||||
`GOROOT`, and `GOTMPDIR` values are retained. Other process variables remain
|
||||
available to child commands.
|
||||
|
||||
Candidate validation uses native mode for the offline `go test` suite and
|
||||
selected full `go vet` pass. Package-compilation checks use static mode for each
|
||||
selected target and direct Go's output to the operating system null device, so
|
||||
they leave no binary artifact. Artifact builds also use static mode for
|
||||
selected-target compilation, then build the native version-check executable;
|
||||
that executable runs as a normal child process.
|
||||
Candidate validation runs the offline `go test` suite and selected full
|
||||
`go vet` pass from the selected module directory using native mode.
|
||||
Package-compilation checks use static mode for each selected target and direct
|
||||
Go's output to the operating system null device, so they leave no binary
|
||||
artifact. Artifact builds also compile selected targets in static mode, then
|
||||
build the native version-check executable, which runs as a normal child
|
||||
process.
|
||||
|
||||
Reference in New Issue
Block a user