Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a0b7add
go: update Orchestrion integration to v1.12.0
tonyredondo Aug 7, 2026
73172ce
go: preserve exact tracer pins in offline proxy
tonyredondo Aug 7, 2026
a283283
fix: invalidate incomplete Orchestrion bootstrap caches
tonyredondo Aug 7, 2026
d719c47
go: wait for active Orchestrion cache owners
tonyredondo Aug 7, 2026
df41e65
build: refresh Orchestrion extension lock
tonyredondo Aug 8, 2026
3222be1
uploader: preserve valid payloads after partial failures
tonyredondo Aug 8, 2026
7837867
go: guard Orchestrion resolver package cycles
tonyredondo Aug 23, 2026
5fc4e4b
go: expose SDK headers to instrumented links
tonyredondo Aug 23, 2026
4be1deb
go: make resolver cycle patch line-ending safe
tonyredondo Aug 23, 2026
cf728d3
go: isolate runtime data tools from Orchestrion
tonyredondo Aug 24, 2026
ba0c3dd
uploader: batch CODEOWNERS enrichment
tonyredondo Aug 24, 2026
a8c8def
go: mirror rules_go inferred test importpaths
tonyredondo Aug 25, 2026
3f4cb74
test: make importpath assertion module-relative
tonyredondo Aug 25, 2026
99974ae
runfiles: preserve external repository aliases
tonyredondo Aug 25, 2026
15c9687
python: materialize selected metadata runfiles
tonyredondo Aug 25, 2026
e969a8b
tests: share Python selector stub repository
tonyredondo Aug 25, 2026
15539c5
uploader: split and validate outbound test payloads
tonyredondo Aug 26, 2026
e743cb8
uploader: remove payloads from read-only output trees
tonyredondo Aug 26, 2026
be7487e
tests: isolate uploader transport fixtures
tonyredondo Aug 26, 2026
bf470d7
go: add Test Optimization stdlib warmup target
tonyredondo Aug 26, 2026
f9c1453
go: make disabled stdlib warmup a no-op
tonyredondo Aug 26, 2026
e18db80
go: match go_test transitions in stdlib warmup
tonyredondo Aug 26, 2026
564723a
Address remaining review feedback
tonyredondo Aug 26, 2026
8bf79cd
docs: plan deterministic stdlib cache publication
tonyredondo Aug 26, 2026
74ef9ce
Fix final review findings
tonyredondo Aug 26, 2026
e852e47
docs: align validated uploader guidance
tonyredondo Aug 26, 2026
83e6614
rules_go: make stdlib cache outputs deterministic
tonyredondo Aug 26, 2026
89e28cb
rules_go: stabilize declared stdlib cache paths
tonyredondo Aug 26, 2026
3353f0c
uploader: preserve partial upload progress
tonyredondo Aug 26, 2026
8a85970
uploader: persist retries from read-only outputs
tonyredondo Aug 26, 2026
a9d0009
uploader: support Windows PowerShell partial retries
tonyredondo Aug 26, 2026
30c52bd
uploader: support PowerShell 5.1 payload cleanup
tonyredondo Aug 26, 2026
8ab12e1
go: add static Test Optimization targets
tonyredondo Aug 28, 2026
241bbee
uploader: support runtime selection on Bash 3
tonyredondo Aug 28, 2026
cd2a14b
tests: render runtime selection in PowerShell harness
tonyredondo Aug 28, 2026
a366f97
doctor: ignore ordinary mixed-run artifacts
tonyredondo Aug 28, 2026
7ce7a9e
uploader: redact runtime context paths
tonyredondo Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ bazel-out
bazel-testlogs
third_party/rgo/v0_60_0/base
third_party/rgo/v0_61_1/base
third_party/rgo/v0_62_0/base
tools/tests/rules_go_variant_regressions
modules/go/bazel-bin
modules/go/bazel-out
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ versioning.
Orchestrion integration and public consumer patch profile.

### Changed
- Updated the maintained `rules_go` Orchestrion integration to Orchestrion
`v1.12.0` and `dd-trace-go/v2` `v2.9.1`, preserving upstream test-variant
resolution while retaining the Bazel-specific resolver compatibility layer.
Orchestrion `v1.12.0` requires Go `1.25.0` or newer.
- The public Go Bzlmod extension now defaults `enabled_by_env` to `True`, so
omitting `--config=test-optimization` disables metadata sync and Orchestrion
together while the named config enables both.
Expand Down
2 changes: 1 addition & 1 deletion MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,8 @@ RTO_ARCHIVE_TYPE="tar.gz"
RULES_GO_UPSTREAM="v0_60_0"
RULES_GO_VARIANT="base"
RULES_GO_STRIP_PREFIX="third_party/rgo/v0_60_0/base"
DD_TRACE_GO_VERSION="v2.9.0"
ORCHESTRION_VERSION="v1.9.0"
DD_TRACE_GO_VERSION="v2.9.1"
ORCHESTRION_VERSION="v1.12.0"
Comment thread
tonyredondo marked this conversation as resolved.
Outdated
```

The archive URL, SHA256, and prefix are tied to the repository commit.
Expand Down Expand Up @@ -431,14 +431,16 @@ bazel_dep(name = "rules_go", version = "0.60.0")

Then run the Datadog bootstrap helper once from the workspace that owns your
Go module. `--dd-trace-go-version` is optional; if you omit it, the default is
`v2.9.0`.
`v2.9.1`. Orchestrion `v1.12.0` requires Go `1.25.0` or newer, so the
`--runtime-version` value and registered Bazel Go toolchain must satisfy that
minimum.

```bash
bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--guided \
--service go-service \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--write-bazelrc
```

Expand All @@ -449,7 +451,7 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--guided \
--service go-service \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--go-module-dir path/to/go-module \
--write-bazelrc
```
Expand Down Expand Up @@ -1768,7 +1770,7 @@ warmed host Go module cache. Test payloads still use the Bazel file-output
contract: the tracer writes JSON files under `TEST_UNDECLARED_OUTPUTS_DIR`, and
the uploader enriches those JSON files with repository and Bazel metadata. Pass
`--dd-trace-go-version <query>` if you want a non-default tracer version;
otherwise the default is `v2.9.0`.
otherwise the default is `v2.9.1`.

```bash
bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
Expand Down Expand Up @@ -1808,7 +1810,7 @@ use_repo(test_optimization_go_sdk, "test_optimization_go_sdk")

orchestrion = use_extension("@rules_go//go:extensions.bzl", "orchestrion")
orchestrion.from_source(
version = "v1.9.0",
version = "v1.12.0",
dd_trace_go_pin_files = [
"@//:go.mod",
"@//:go.sum",
Expand Down Expand Up @@ -1836,11 +1838,11 @@ use_repo(test_optimization_go_sdk, "test_optimization_go_sdk")

orchestrion = use_extension("@rules_go//go:extensions.bzl", "orchestrion")
orchestrion.from_source(
version = "v1.9.0",
version = "v1.12.0",
dd_trace_go_versions = {
"github.com/DataDog/dd-trace-go/v2": "v2.9.0",
"github.com/DataDog/dd-trace-go/contrib/net/http/v2": "v2.9.0",
"github.com/DataDog/dd-trace-go/contrib/log/slog/v2": "v2.9.0",
"github.com/DataDog/dd-trace-go/v2": "v2.9.1",
"github.com/DataDog/dd-trace-go/contrib/net/http/v2": "v2.9.1",
"github.com/DataDog/dd-trace-go/contrib/log/slog/v2": "v2.9.1",
},
go_sdk_root = "@test_optimization_go_sdk//:ROOT",
go_sdk_version = "<go-version>",
Expand All @@ -1853,7 +1855,7 @@ with explicit Bazel flags in the script itself. There is no special repo-root
`--config=hermetic` shortcut for this flow.

If all three selection settings are omitted, the legacy default is still
`v2.9.0`. Manual setups must keep the local Go module pins on the same effective
`v2.9.1`. Manual setups must keep the local Go module pins on the same effective
versions, or the build will stop with a mismatch error. Do not combine
`dd_trace_go_pin_files`, `dd_trace_go_version`, or `dd_trace_go_versions` in
the same `orchestrion.from_source(...)` call.
Expand Down
5 changes: 3 additions & 2 deletions docs/Configuration_Reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Guided Go bootstrap accepts:

| Flag | Default | Description |
|------|---------|-------------|
| `--dd-trace-go-version` | `v2.9.0` | Go tracer query for bootstrap. Accepts a tag, pseudo-version, branch, or commit SHA and persists the exact resolved versions Bazel should use |
| `--dd-trace-go-version` | `v2.9.1` | Go tracer query for bootstrap. Accepts a tag, pseudo-version, branch, or commit SHA and persists the exact resolved versions Bazel should use |
| `--go-binary` | `go` | Go binary used for bootstrap module graph synchronization. Set this to a pinned SDK path named `go` or `go.exe` when the repository must match Bazel's Go SDK; do not include shell syntax or arguments |
| `--go-mod-sync` | `targeted` | Local Go module synchronization strategy: `targeted` updates and verifies only Orchestrion tool packages, `tidy` also runs `go mod tidy`, and `off` skips Go module commands |

Expand Down Expand Up @@ -99,7 +99,7 @@ Manual Orchestrion wiring in `MODULE.bazel` accepts:
| Setting | Default | Description |
|---------|---------|-------------|
| `orchestrion.from_source(..., dd_trace_go_pin_files = ["@//:go.mod", "@//:go.sum"])` | none | Preferred consumer mode. Derives exact direct and transitive supported tracer versions from one checked-in `go.mod` and `go.sum` using the Bazel-managed Go SDK and `-mod=readonly` |
| `orchestrion.from_source(..., dd_trace_go_version = "...")` | legacy `v2.9.0` when no selection mode is set | Explicit shared-version escape hatch that Bazel validates against the target Go module |
| `orchestrion.from_source(..., dd_trace_go_version = "...")` | legacy `v2.9.1` when no selection mode is set | Explicit shared-version escape hatch that Bazel validates against the target Go module |
| `orchestrion.from_source(..., dd_trace_go_versions = {...})` | none | Exact canonical per-module tracer versions that Bazel validates against the target Go module for `github.com/DataDog/dd-trace-go/v2`, `github.com/DataDog/dd-trace-go/contrib/net/http/v2`, and `github.com/DataDog/dd-trace-go/contrib/log/slog/v2` |
| `orchestrion.from_source(..., go_sdk_root = "@repo//:ROOT")` | none | Bazel-managed Go SDK root used to build Orchestrion instead of discovering a host `go` binary |
| `orchestrion.from_source(..., go_sdk_version = "...")` | none | Exact version of `go_sdk_root`; enables bootstrap-cache lookup before SDK materialization and is verified after materialization on a miss |
Expand All @@ -114,6 +114,7 @@ Notes:
- Guided bootstrap declares `go_sdk_root` and `go_sdk_version` from
`--runtime-version`. Manual wiring must set both together and keep the version
equal to the registered Go toolchain and Test Optimization `runtime_version`.
- Orchestrion `v1.12.0` requires Go `1.25.0` or newer.
- Bootstrap repins the local Go module to the same effective versions.
- Bootstrap uses targeted module sync by default and does not run
`go mod tidy` unless `--go-mod-sync=tidy` is selected.
Expand Down
10 changes: 5 additions & 5 deletions docs/Installation_Reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ RTO_ARCHIVE_TYPE="tar.gz"
RULES_GO_UPSTREAM="v0_60_0"
RULES_GO_VARIANT="base"
RULES_GO_STRIP_PREFIX="third_party/rgo/v0_60_0/base"
DD_TRACE_GO_VERSION="v2.9.0"
ORCHESTRION_VERSION="v1.9.0"
DD_TRACE_GO_VERSION="v2.9.1"
ORCHESTRION_VERSION="v1.12.0"
Comment thread
tonyredondo marked this conversation as resolved.
Outdated
```

The archive URL, SHA256, and prefix are tied to the repository commit.
Expand Down Expand Up @@ -237,7 +237,7 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--guided \
--service go-service \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--write-bazelrc
```

Expand All @@ -248,13 +248,13 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--guided \
--service go-service \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--go-module-dir path/to/go-module \
--write-bazelrc
```

`--dd-trace-go-version` is optional. If omitted, the workspace uses the default
`v2.9.0`. It accepts a tag, pseudo-version,
`v2.9.1`. It accepts a tag, pseudo-version,
branch, or commit SHA. Bootstrap resolves that input to exact tracer versions,
keeps the local Go module pins on those same versions, and prevents Bazel and
the Go module from silently drifting apart.
Expand Down
8 changes: 4 additions & 4 deletions docs/Language_Onboarding.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--guided \
--service go-service \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--write-bazelrc
```

Expand All @@ -245,7 +245,7 @@ missing. With `--write-bazelrc`, it also writes the managed
`test-optimization` config used by the command examples above.

`--dd-trace-go-version` is optional. If omitted, the default is
`v2.9.0`. It accepts a tag, pseudo-version,
`v2.9.1`. It accepts a tag, pseudo-version,
branch, or commit SHA. Bootstrap resolves that input to the exact tracer
versions Bazel will use, repins the local Go module to match, and later builds
fail fast if the workspace setting and local pins no longer match.
Expand Down Expand Up @@ -369,7 +369,7 @@ datadog_go_test_optimization_workspace_repositories(
load("@datadog-rules-test-optimization-go//:topt_go_orchestrion_repository.bzl", "dd_topt_go_orchestrion_tool_repo")

dd_topt_go_orchestrion_tool_repo(
version = "v1.9.0",
version = "v1.12.0",
dd_trace_go_pin_files = [
"@//:go.mod",
"@//:go.sum",
Expand Down Expand Up @@ -435,7 +435,7 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--rules-go-repo-name "<existing_rules_go_repo_name>" \
--rules-go-upstream v0_60_0 \
--rules-go-variant base \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--write-bazelrc \
--write-orchestrion-files \
--write-wrapper-template \
Expand Down
2 changes: 1 addition & 1 deletion docs/Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,7 @@ module version.
either explicit version field.

5. **If you omitted every selection mode**, remember the legacy default is
`v2.9.0`.
`v2.9.1`.

The build fails on purpose here. It is preventing Bazel from injecting one
set of tracer versions while the local Go module still resolves another.
Expand Down
2 changes: 1 addition & 1 deletion docs/go_orchestrion_bazel_deep_dive.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ their repository placement and local wrapper policy under owner review while
still using the same Orchestrion-enabled `rules_go` variants.

If no tracer setting is present, the default is still
`v2.9.0`. Bootstrap keeps the local Go module
`v2.9.1`. Bootstrap keeps the local Go module
on the same effective versions, and the Bazel build now fails fast if the
workspace setting and the local Go module pins drift apart.

Expand Down
2 changes: 1 addition & 1 deletion docs/internal_monorepo_go_rollout_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--rules-go-repo-name "<existing_rules_go_repo_name>" \
--rules-go-upstream v0_60_0 \
--rules-go-variant base \
--dd-trace-go-version v2.9.0 \
--dd-trace-go-version v2.9.1 \
--write-bazelrc \
--write-orchestrion-files \
--write-wrapper-template \
Expand Down
8 changes: 4 additions & 4 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,11 +224,11 @@ bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--service go-service \
--sync-repo-name test_optimization_data_go \
--runtime-version 1.25.0 \
--dd-trace-go-version v2.9.0
--dd-trace-go-version v2.9.1
```

`--dd-trace-go-version` is optional. If omitted, bootstrap uses the default
`v2.9.0`. It accepts a tag,
`v2.9.1`. It accepts a tag,
pseudo-version, branch, or commit SHA. Bootstrap resolves that input to exact
versions and repins the local Go module to match what Bazel will use.

Expand Down Expand Up @@ -559,11 +559,11 @@ Bootstrap once after adding the Go module files:
```bash
bazel run @datadog-rules-test-optimization-go//:dd_topt_go_bootstrap -- \
--go-module-dir src/go-project \
--dd-trace-go-version v2.9.0
--dd-trace-go-version v2.9.1
```

As in the single-service flow, `--dd-trace-go-version` is optional and defaults
to `v2.9.0`. It may resolve to one shared tracer version or to separate exact
to `v2.9.1`. It may resolve to one shared tracer version or to separate exact
versions for the traced Go modules when you pass a branch or commit SHA.

This multi-service path stays on the lower-level/manual API. Guided bootstrap is
Expand Down
Loading
Loading