Skip to content

Prepare 0.16.0: fix the flaky basic e2e trigger, the Go version in actions/setup, and stale docs - #242

Merged
wu-sheng merged 2 commits into
masterfrom
release/0.16.0-docs-go
Nov 7, 2026
Merged

wu-sheng merged 2 commits into
masterfrom
release/0.16.0-docs-go

Conversation

@wu-sheng

@wu-sheng wu-sheng commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Release prep for 0.16.0: the nightly CI flake, the Go version in actions/setup, and stale build/release docs.

actions/setup installs Go 1.24

go.mod has required go 1.26.0 since #227, but actions/setup/action.yaml still installed Go 1.24. actions/setup-go exports GOTOOLCHAIN=local (visible in this repo's CI logs). So make install in the action either fails on the go.mod version check or, where sudo drops that variable, downloads the go1.26.0 toolchain instead of the latest 1.26 patch. CI never runs this action, which is why nothing caught it. It now installs "1.26", like CI. Added to CHANGES.md under 0.16.0.

Docs

  • README, Build from source: needs Go 1.26+. make build only builds, while a plain make also runs license/lint/test and needs license-eye and golangci-lint. The binaries are swctl-<version>-<os>-<arch> for seven platforms (checked with make -n build), not swctl-latest-<os>-amd64.
  • README, GitHub Actions example: used apache/skywalking-cli@main, but there is no main branch, only master.
  • CONTRIBUTING, Compiling: Go 1.26+, seven binaries, not three.
  • CONTRIBUTING, How to release: said git tag v${VERSION} and push before building. The tags have no v prefix and are pushed only after make release succeeds. Three links pointed at How-to-release.md anchors that don't exist (#add-your-gpg-public-key, #make-the-internal-announcements, #call-a-vote-in-dev). The steps now also mention scripts/pre-release.sh and scripts/release.sh.
  • How-to-release.md: the BuildKit link was missing its closing parenthesis and pointed at a moved Docker page.

Go version

No bump to Go 1.27 for this release. Go 1.26 is still supported, the other Go projects (infra-e2e, skywalking-go, skywalking-mcp, BanyanDB, Satellite) are on 1.26, and govulncheck with go1.26.10 reports no reachable vulnerability. The release binaries are built with GOTOOLCHAIN=go1.26.10, the same patch CI's go-version: "1.26" resolves to.

Nightly CI: basic e2e trigger (was #241)

Nightly CI on master has failed on 3 of the 4 nights since #240 (1, 2, 3), after 26 green nights before it. Every failure is the same case in Command Tests:

swctl ... metrics linear --name=service_relation_client_cpm --service-name consumer --dest-service-name provider

The case's whole 30-minute window comes back empty. The other 15 cases pass.

Cause

#240 bumped apache/skywalking-infra-e2e from cf589b4 to 56ac8be. That range includes infra-e2e #132, which makes the http trigger stop after times requests. Before it, times only decided when the trigger reported its first result, and the requests kept going until the verify phase finished. The basic case's times: 10 with interval: 3s therefore now means only 30 seconds of traffic (trigger has completed 10 requests and will stop. in the logs). That is not always long enough for the OAP to attribute the consumer's client-side calls to the provider service.

Fix

times: -1 (endless trigger, infra-e2e #134, already in the pinned SHA) restores the continuous traffic. The live-debugging case already uses it. Test config only, no change to swctl.

…re 0.16.0

actions/setup installed Go 1.24, while go.mod requires go 1.26.0 since
#227. setup-go exports GOTOOLCHAIN=local, so the build either fails or,
where sudo drops that variable, downloads the go1.26.0 toolchain instead
of using the latest 1.26 patch. It now installs "1.26", like CI.

README:
- Build from source: needs Go 1.26+; `make build` only builds, a plain
  `make` also runs license/lint/test (license-eye, golangci-lint); the
  binaries are swctl-<version>-<os>-<arch> for the seven platforms,
  not swctl-latest-<os>-amd64.
- The GitHub Actions example used `apache/skywalking-cli@main`; the
  default branch is `master`, there is no `main`.

CONTRIBUTING:
- Compiling: Go 1.26+, seven binaries, not three.
- How to release: the tag has no `v` prefix and is pushed only after
  `make release` succeeds; three links pointed at How-to-release.md
  anchors that do not exist; mention pre-release.sh and release.sh.

How-to-release.md: fix the unclosed BuildKit link.
infra-e2e #132 (pulled in by the cf589b4 -> 56ac8be bump in #240) makes
the http trigger stop after `times` requests. Before it, `times` only
decided when the trigger reported its first result, and the requests
kept going until the verify phase finished. The basic case's `times: 10`
now means 30 seconds of traffic, and the nightly CI failed on 3 of the
4 nights since #240, every time on `metrics linear
service_relation_client_cpm`, whose whole 30-minute window came back
empty while the other 15 cases passed.

`times: -1` (endless, infra-e2e #134) restores the continuous traffic,
the same as the live-debugging case.
@wu-sheng wu-sheng changed the title Fix the Go version in actions/setup and stale build/release docs before 0.16.0 Prepare 0.16.0: fix the flaky basic e2e trigger, the Go version in actions/setup, and stale docs Nov 7, 2026
@wu-sheng wu-sheng added this to the 0.16.0 milestone Nov 7, 2026
@wu-sheng
wu-sheng merged commit 0b71c1f into master Nov 7, 2026
7 checks passed
@wu-sheng
wu-sheng deleted the release/0.16.0-docs-go branch November 7, 2026 00:22
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.

2 participants