Skip to content

feat: pin library defaults for v2#19

Merged
juan-fernandez merged 2 commits into
mainfrom
juan-fernandez/pin-library-defaults-v2
Jul 16, 2026
Merged

feat: pin library defaults for v2#19
juan-fernandez merged 2 commits into
mainfrom
juan-fernandez/pin-library-defaults-v2

Conversation

@juan-fernandez

Copy link
Copy Markdown
Collaborator

What does this PR do?

Prepares v2 by replacing runtime latest resolution with reviewed default versions for every supported library:

  • .NET: 3.49.0
  • Java: 1.64.0
  • JavaScript: 6.3.0
  • Python: 4.11.0
  • Python coverage: 7.15.1
  • Ruby: 1.34.0
  • Go/Orchestrion: v1.11.0

It also documents orb-version and per-library pinning trade-offs, adds the v1-to-v2 migration guide, and adds local helpers for batched library bumps and label-driven orb releases.

Motivation

Resolving the latest library versions during customer runs can change their environment without a new orb release. Pinned defaults make orb releases reproducible while preserving explicit per-library overrides.

This adapts the corresponding GitHub Action implementation from DataDog/test-visibility-github-action#70 to CircleCI registry-orb semantics.

Additional Notes

The current latest tag is v1.2.7. The semver-major label makes scripts/release-orb.sh select v2.0.0 after this PR is merged. The helper creates only an immutable vX.Y.Z tag; CircleCI resolves @2 through the orb registry, so no v2 Git branch is created or moved.

No orb version or Git tag is published by this PR. The pinned installation-script URL and checksum are unchanged, and transitive dependency pinning remains owned by the individual libraries.

Possible Drawbacks / Trade-offs

Customers moving from @1 to @2 may receive different libraries on their first v2 run. @2 receives reviewed compatible v2 releases and library bumps, while @2.0.0 remains fixed. An explicit library-version parameter stays authoritative across orb updates but must be updated manually for future library fixes.

Describe how to test/QA your changes

  • Parsed the orb source, examples, CircleCI configs, and release workflow as YAML.
  • Ran bash -n on all three new scripts.
  • Verified README defaults exactly match src/commands/autoinstrument.yml.
  • Exercised targeted and multi-library updates in isolated copies.
  • Verified duplicate and invalid arguments fail.
  • Ran the library bump PR creator against all official sources with --dry-run; all pins are current.
  • Verified the PR creator refuses a live-source downgrade.
  • Simulated a signed semver-major release after v1.2.7; it selected v2.0.0 without changing refs.
  • Verified explicit --tag and --sha dry-run paths.
  • Run the repository's CircleCI lint, pack, review, shellcheck, and command-test matrix on this PR.

@juan-fernandez juan-fernandez added library-version-bump Marks PRs that bump pinned library versions semver-major Requests a major test-optimization-circleci-orb release after merge labels Jul 15, 2026
@juan-fernandez

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e84c5e9e14

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/release-orb.sh
Comment thread scripts/release-orb.sh Outdated
@juan-fernandez
juan-fernandez marked this pull request as ready for review July 16, 2026 09:42
@juan-fernandez
juan-fernandez requested a review from a team as a code owner July 16, 2026 09:42
@juan-fernandez juan-fernandez changed the title [WIP] feat: pin library defaults for v2 feat: pin library defaults for v2 Jul 16, 2026
@juan-fernandez
juan-fernandez merged commit 2b85d1c into main Jul 16, 2026
7 checks passed
@juan-fernandez
juan-fernandez deleted the juan-fernandez/pin-library-defaults-v2 branch July 16, 2026 09:47

@datadog-datadog-us1-prod datadog-datadog-us1-prod Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

All adversarial scenarios passed clean. The seven library defaults in src/commands/autoinstrument.yml now supply non-empty DD_SET_TRACER_VERSION_* env vars to the install script instead of empty strings, which is the correct handoff the install script already expected. The three new maintenance scripts have valid semver comparison logic, correct YAML/README regex patterns, robust duplicate detection, and proper label-precedence ordering.

Was this helpful? React 👍 or 👎

📊 Validated against 14 scenarios · Open Bits AI session

🤖 Datadog Autotest · Commit 167fe35 · What is Autotest? · Any feedback? Reach out in #autotest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

library-version-bump Marks PRs that bump pinned library versions semver-major Requests a major test-optimization-circleci-orb release after merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants