Skip to content

test(v15): run cmd/commands in the NSELF_V15=1 CI step; pin or fix its v1.4-only tests (D-0275, partial) - #912

Merged
acamarata merged 3 commits into
mainfrom
debt-8-d0275
Oct 20, 2026
Merged

acamarata merged 3 commits into
mainfrom
debt-8-d0275

Conversation

@acamarata

Copy link
Copy Markdown
Collaborator

Part of D-0275 (the row stays open for the leftover below).

Found by running every cmd/commands test alone under NSELF_V15=1, then the whole package:

  • 15 tests assert v1.4 behaviour (legacy JSON goldens, certbot-path SSL refusals, E151 rollback codes, pipeline host-key scan): pinned with compattest.Set(t, false).
  • 4 config set tests reached the real mkcert runner in v1.5: they get a fake sysexec runner.
  • jsonEnvelopeOn(nil) dereferenced the command in v1.5; runBundleList accepts nil, so it now answers off (TestJSONEnvelopeOnNilCommand, both modes). Fixes the 4 bundle list tests.
  • TestReleaseStatusLegacyAndDirectSpellingsFailIdentically calls Execute(), which under v1.5 reshaped the shared root command and broke ~25 registration tests after it: pinned to v1.4.
  • ci.yml: the v1.5 step now runs ./... including cmd/commands (was one test).

Left on the skip list: 13 tests (WriteResolvedDeployEnv, EnvCascade, Snapshot, Scratch families) that pass alone but fail after earlier tests that load a project .env and leave its keys in the process env; v1.5 remote deploy then refuses them as process-only keys. Bisect: culprits are TestBackupStatusInProjectKeepsExistingFields and TestBackupScheduleProdMinioCredentials among others.

Verified on the CI host: NSELF_V15=1 go test with the CI skip list ./cmd/commands and the default-mode ./cmd/commands both pass; go vet and gofmt clean.

…5=1 and run the package in the v1.5 CI step (D-0275)

Fifteen tests assert v1.4 behaviour and now pin it with compattest.Set; four
config set tests get a fake sysexec runner; jsonEnvelopeOn answers off for a
nil command, which runBundleList accepts (the four bundle list tests panicked).
The legacy-spelling test pins v1.4 because Execute() under v1.5 reshapes the
shared root command and broke every registration test after it. The v1.5 CI
step now runs the whole module; thirteen cmd/commands tests that fail only
after env-leaking loader tests stay on its skip list.
@acamarata
acamarata merged commit ea622a7 into main Oct 20, 2026
35 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant