Skip to content

Nightly dependency update: OpenTelemetry 1.42.1/0.63b1#762

Merged
liustve merged 27 commits into
mainfrom
nightly-dependency-updates
Jun 17, 2026
Merged

Nightly dependency update: OpenTelemetry 1.42.1/0.63b1#762
liustve merged 27 commits into
mainfrom
nightly-dependency-updates

Conversation

@aws-application-signals-bot

@aws-application-signals-bot aws-application-signals-bot commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Automated update of OpenTelemetry dependencies.

Build Status:failure

Updated versions:

Upstream releases with breaking changes:
Note: the mechanism to detect upstream breaking changes is not perfect. Be sure to check all new releases and understand if any additional changes need to be addressed.

opentelemetry-python-contrib:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@aws-application-signals-bot aws-application-signals-bot requested a review from a team as a code owner June 9, 2026 04:50

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review Summary

This automated dependency update bumps OpenTelemetry from 1.40.0/0.61b0 to 1.42.1/0.63b1, skipping the intermediate 1.41.0/0.62b0 release (which is noted as having breaking changes).

Issues Found

  1. opentelemetry-instrumentation-threading left at 0.61b0 (likely bug) — Every other contrib instrumentation package is updated from 0.61b0 → 0.63b1, but opentelemetry-instrumentation-threading remains pinned at 0.61b0. This version mismatch will likely cause dependency resolution failures because OTel instrumentation packages typically have tight peer-dependency constraints on opentelemetry-instrumentation (which is being updated to 0.63b1). This is probably the cause of the CI failure noted in the PR description.

  2. Breaking changes from skipped release not addressed — The PR body mentions that v0.62b0 of opentelemetry-python-contrib included breaking changes, but doesn't detail what they are or confirm that no code changes are needed in this repo. Given the CI failure, it's worth investigating whether any API changes from the skipped release require code updates.

No security issues identified — this is a straightforward version bump of well-known dependencies.

Comment thread aws-opentelemetry-distro/pyproject.toml Outdated
@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 1m 35s —— View job


PR Review

I re-checked this PR against the existing review. The findings are unchanged, so I'm not re-posting them — see the existing review thread for details.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD (6 files, dependency-only changes)
  • Verify no new substantive issues vs. the prior review

Summary of state

Still outstanding (already flagged in the prior review):

  1. aws-opentelemetry-distro/pyproject.toml:80opentelemetry-instrumentation-threading == 0.61b0 was missed by the automated bump. Every other contrib instrumentation package on this file moved to 0.63b1. This version skew is the likely cause of the CI failure on this PR, since contrib instrumentation packages share tight peer-version constraints with opentelemetry-instrumentation (now 0.63b1).

    Fix this →

  2. The PR skips the 1.41.0/0.62b0 upstream release, which is flagged as having breaking changes. Worth confirming none of those breaking changes affect code in this repo (e.g. via the contract tests once the version-skew above is resolved and CI can run cleanly).

No new issues: the other five files (contract-tests/images/mock-collector/{pyproject.toml,requirements.txt}, contract-tests/tests/pyproject.toml, lambda-layer/src/tests/requirements.txt, tox.ini) are clean, consistent version bumps to 1.42.1 / 0.63b1 and the tox.ini CORE_REPO/CONTRIB_REPO branch refs were updated correctly to release/v1.42.x-0.63bx.

No security concerns — straightforward version bumps of well-known dependencies.
· branch nightly-dependency-updates

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 1m 8s —— View job


PR Review

I re-checked this PR against the existing review. The findings are unchanged, so I'm not re-posting them — see the existing review thread for details.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD (6 files, dependency-only changes)
  • Verify no new substantive issues vs. the prior review

Summary of state

Still outstanding (already flagged in the prior review):

  1. aws-opentelemetry-distro/pyproject.toml:80opentelemetry-instrumentation-threading == 0.61b0 was missed by the automated bump. Every other contrib instrumentation package on this file moved to 0.63b1. This version skew is the likely cause of the CI failure on this PR, since contrib instrumentation packages share tight peer-version constraints with opentelemetry-instrumentation (now 0.63b1).

    Fix this →

  2. The PR skips the 1.41.0/0.62b0 upstream release, which is flagged as having breaking changes. Worth confirming none of those breaking changes affect code in this repo (e.g. via the contract tests once the version-skew above is resolved and CI can run cleanly).

No new issues: the other five files (contract-tests/images/mock-collector/{pyproject.toml,requirements.txt}, contract-tests/tests/pyproject.toml, lambda-layer/src/tests/requirements.txt, tox.ini) are clean, consistent version bumps to 1.42.1 / 0.63b1 and the tox.ini CORE_REPO/CONTRIB_REPO branch refs were updated correctly to release/v1.42.x-0.63bx.

No security concerns — straightforward version bumps of well-known dependencies.
· branch nightly-dependency-updates

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 1m 19s —— View job


PR Review

I re-checked this PR against the existing review. The findings are unchanged, so I'm not re-posting them — see the existing review thread for details.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD (6 files, dependency-only changes)
  • Verify no new substantive issues vs. the prior review

Summary of state

Still outstanding (already flagged in the prior review):

  1. aws-opentelemetry-distro/pyproject.toml:80opentelemetry-instrumentation-threading == 0.61b0 was missed by the automated bump. Every other contrib instrumentation package in this file moved to 0.63b1. This version skew is the likely cause of the CI failure on this PR, since contrib instrumentation packages share tight peer-version constraints with opentelemetry-instrumentation (now 0.63b1).

    Fix this →

  2. The PR skips the 1.41.0/0.62b0 upstream release, which is flagged as having breaking changes. Worth confirming none of those breaking changes affect code in this repo (e.g. via the contract tests once the version-skew above is resolved and CI can run cleanly).

No new issues: the other five files (contract-tests/images/mock-collector/{pyproject.toml,requirements.txt}, contract-tests/tests/pyproject.toml, lambda-layer/src/tests/requirements.txt, tox.ini) are clean, consistent version bumps to 1.42.1 / 0.63b1 and the tox.ini CORE_REPO/CONTRIB_REPO branch refs were updated correctly to release/v1.42.x-0.63bx.

No security concerns — straightforward version bumps of well-known dependencies.

· branch nightly-dependency-updates ·

The legacy boto2 instrumentation was removed from opentelemetry-python-contrib
in 0.62b0 (open-telemetry/opentelemetry-python-contrib#4303). Pinning it at
0.63b1 breaks pip resolution.
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 2m 29s —— View job


PR Review

I re-checked this PR against the existing review. The findings are unchanged, so I'm not re-posting them — see the existing review thread for details.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD (8 files now — 2 more than the prior review snapshot, due to a new boto cleanup commit)
  • Verify no new substantive issues vs. the prior review

Summary of state

Still outstanding (already flagged in the prior review):

  1. aws-opentelemetry-distro/pyproject.toml:79opentelemetry-instrumentation-threading == 0.61b0 was missed by the automated bump. Every other contrib instrumentation package in this file moved to 0.63b1. This version skew is the likely cause of the CI failure on this PR, since contrib instrumentation packages share tight peer-version constraints with opentelemetry-instrumentation (now 0.63b1).

    Fix this →

  2. The PR skips the 1.41.0/0.62b0 upstream release, which is flagged as having breaking changes. Worth confirming none of those breaking changes affect code in this repo (e.g. via the contract tests once the version-skew above is resolved and CI can run cleanly).

New since the prior review: commit 58718ab drops opentelemetry-instrumentation-boto consistently across aws-opentelemetry-distro/pyproject.toml, scripts/update_dependencies.py, and aws-opentelemetry-distro/src/amazon/opentelemetry/distro/code_correlation/internal/3rd.txt. The removal is self-consistent and matches the upstream deprecation; no new issues to flag.

No new issues in the other files (contract-tests/images/mock-collector/{pyproject.toml,requirements.txt}, contract-tests/tests/pyproject.toml, lambda-layer/src/tests/requirements.txt, tox.ini) — clean, consistent version bumps to 1.42.1 / 0.63b1, and the tox.ini CORE_REPO/CONTRIB_REPO branch refs are correctly on release/v1.42.x-0.63bx.

No security concerns — straightforward version bumps of well-known dependencies.

· branch nightly-dependency-updates ·

opentelemetry-python 1.42.0 and opentelemetry-python-contrib 0.63b0 dropped
Python 3.9 support, so ADOT cannot install on it either.

- Bump requires-python to >=3.10 across distro and contract tests
- Remove 3.9 from tox envlist and CI test matrices (pr-build, run-instrumentation-tests)
- Drop py39 e2e jobs (default + asg + arm64); add py310 platform/arch coverage
- Delete .coveragerc-py39 and the 3.9 branch in set_up action
- Narrow DI bytecode-injection engine to Python 3.10-3.11 (rename helper,
  bump version checks, refresh comments)
- Pin pytest>=9 in dev-requirements (was pinned to <10 for 3.9)
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

PR Review

Working on it…

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

View job run

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

PR Review

Working on it…

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

View job run

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

PR Review

Working on it…

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

View job run

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 2m 40s —— View job


PR Review

I re-checked this PR against the existing review. The earlier blocker is resolved; no new substantive issues to flag.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

Summary of state

Resolved since the prior review:

  • Commit 06c768c bumps opentelemetry-instrumentation-threading from 0.61b00.63b1 (now at aws-opentelemetry-distro/pyproject.toml:78) and adds it to CONTRIB_DEPS in scripts/update_dependencies.py so future nightly bumps don't drift again. The earlier ResolutionImpossible failure on every CI job should be cleared — current run shows install-stage jobs reaching IN_PROGRESS rather than failing immediately.

New since the prior review (clean):

  • Commit f4c3143 adds opentelemetry-instrumentation-openai-agents-v2 to the independently-versioned tracking list in scripts/get_upstream_versions.py and scripts/update_dependencies.py, renames AWS_DEPSINDEPENDENT_DEPS (the previous name was misleading since openai-agents-v2 isn't AWS-owned), threads a new env var through .github/workflows/nightly-build.yml, and adds the package to the nightly PR body. Self-consistent — the env var is required in update_dependencies.py:153 and produced in get_upstream_versions.py, so a missing pip lookup will fail the workflow loudly rather than silently skipping the bump. No issues.

Still outstanding (already flagged in the prior review, not re-posting):

  • The PR skips the 1.41.0/0.62b0 upstream release flagged for breaking changes. Worth confirming via the now-runnable contract tests that no API changes from the skipped release affect this repo.

No security concerns — straightforward version bumps and tooling additions.

· branch nightly-dependency-updates ·

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 2m 34s —— View job


PR Review

I re-checked this PR against the existing review. No new substantive issues to flag.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

Summary of state

New since the prior review (clean):

  • Commit a7c7d83 adds "Programming Language :: Python :: 3.14" to the classifiers in aws-opentelemetry-distro/pyproject.toml:25. Self-consistent — requires-python = ">=3.10" already permits 3.14, and .github/workflows/pr-build.yml:130 and run-instrumentation-tests.yml:17 already exercise 3.14 in the matrix, so the classifier was the missing piece advertising the support that's already tested. No issues.

Earlier blocker remains resolved: opentelemetry-instrumentation-threading == 0.63b1 (line 79), and CONTRIB_DEPS in scripts/update_dependencies.py includes it so the next nightly bump won't drift again.

Still outstanding (already flagged in the prior review, not re-posting):

  • The PR skips the 1.41.0/0.62b0 upstream release flagged for breaking changes. Worth confirming via the now-runnable contract tests that no API changes from the skipped release affect this repo.

Note on residual risk: since the latest push, CI is in progress (PR build + DI contract tests) — CodeQL is the only completed check so far. If those new runs pass, the dependency-resolution and breaking-change concerns are effectively addressed in practice.

No security concerns — straightforward version bumps, Python-version-floor cleanup, and tooling additions.
· branch nightly-dependency-updates

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 2m 57s —— View job


PR Review

I re-checked this PR against the existing review. No new substantive issues to flag.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify no new substantive issues vs. the prior review
  • Post findings (or note no change)

Summary of state

No new commits since the prior review at 23:40 UTC — HEAD is still b07d0f4. The push that triggered this run did not introduce new code changes (likely a re-trigger from CI rerun or workflow update).

Earlier blocker remains resolved: opentelemetry-instrumentation-threading == 0.63b1 (line 79 of aws-opentelemetry-distro/pyproject.toml), and CONTRIB_DEPS in scripts/update_dependencies.py includes it so future nightly bumps don't drift again.

CI signal (positive): the install-stage jobs that previously failed instantly with ResolutionImpossible are now IN_PROGRESSbuild (3.10–3.14) and di-contract-tests (3.10–3.12) are all running, confirming the dependency-resolution issue is gone in practice. The completed checks (CodeQL, lint, spellcheck, spotless, static-code-checks, build-lambda) are all green.

Still outstanding (already flagged in the prior review, not re-posting):

  • The PR skips the 1.41.0/0.62b0 upstream release flagged for breaking changes. Worth confirming via the now-runnable contract tests that no API changes from the skipped release affect this repo.

No security concerns — straightforward version bumps, Python-version-floor cleanup, and tooling additions.

· branch nightly-dependency-updates ·

liustve added 2 commits June 15, 2026 16:52
Threading was the lone instrumentation pinned at 0.61b0, transitively
requiring opentelemetry-instrumentation==0.61b0, which conflicted with the
==0.63b1 pin coming from every other 0.63b1 instrumentation. Caused all CI
build/test jobs to fail at pip install with ResolutionImpossible.
@liustve liustve force-pushed the nightly-dependency-updates branch from b07d0f4 to 7255e74 Compare June 15, 2026 23:52
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 8m 7s —— View job


PR Review

I re-checked this PR against the existing review. One new substantive finding to flag — a follow-up tooling issue that was claimed resolved in earlier summaries but is not actually present in current HEAD.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify findings vs. prior reviews
  • Post findings

Summary of state

HEAD is now 7255e74 (after a force-push since the 23:47 review — b07d0f4 is no longer in the branch history). The current diff vs. origin/main is 30 files: a clean OTel 1.42.1/0.63b1 bump, plus a >=3.10 Python-floor change, an opentelemetry-instrumentation-boto removal, a Python 3.14 classifier addition, and the related DI bytecode-injection narrowing to 3.10–3.11.

Earlier blocker remains resolved in pyproject.toml: opentelemetry-instrumentation-threading == 0.63b1 (line 79 of aws-opentelemetry-distro/pyproject.toml). The ResolutionImpossible failure should be cleared.

New since the prior review (regression — was reported resolved, but isn't):

  • scripts/update_dependencies.py:22CONTRIB_DEPS still does not include opentelemetry-instrumentation-threading. Earlier summary reviews claimed commit 06c768c added it; that commit is no longer in this branch, and current CONTRIB_DEPS jumps from …system-metrics directly to …tornado. Effect: the next nightly run will leave threading pinned at 0.63b1 while every other contrib package advances, reproducing the exact drift this PR just had to fix manually. Worth adding "opentelemetry-instrumentation-threading", between system-metrics and tornado in the same commit so this stops recurring.

    Fix this →

Other changes since the prior review (clean):

  • 7255e74 adds "Programming Language :: Python :: 3.14" classifier — requires-python = ">=3.10" already permits it, and 3.14 is already in the pr-build and run-instrumentation-tests matrices.
  • f692018 drops Python 3.9 across the board (distro, contract tests, tox envlist, CI matrices, e2e jobs, .coveragerc-py39, set_up action) and narrows the DI bytecode engine helper to _create_breakpoint_instructions_py310 with a (3, 10) <= sys.version_info < (3, 12) guard. Internally consistent — pr-build.yml:130 and run-instrumentation-tests.yml:17 both drop 3.9 and the new e2e jobs (default-py310-amd64, asg-py310-amd64, default-py310-arm64) replace the prior py39 ones at the same coverage points. dev-requirements.txt correctly drops the pytest<10 cap that existed only for 3.9. Justified — OTel 1.42/0.63 dropped Python 3.9, so the distro must too.

Still outstanding (already flagged in prior reviews, not re-posting):

  • The PR skips the 1.41.0/0.62b0 upstream release flagged for breaking changes. Worth confirming via the now-runnable contract tests that no API changes from the skipped release affect this repo.

CI signal: as of this run, CodeQL is green; Python Instrumentation PR Build and DI Debugger Contract Tests are still IN_PROGRESS (the install-stage no longer fails immediately, which is the expected outcome of the threading fix in pyproject.toml).

No security concerns — version bumps, Python-floor cleanup, and an instrumentation-package removal of well-known dependencies.

· branch nightly-dependency-updates ·

liustve added 4 commits June 15, 2026 20:04
OTel core 1.42.0 dropped the third-party `importlib-metadata` dependency
in favor of the stdlib `importlib.metadata` since the project now requires
Python >= 3.10 (open-telemetry/opentelemetry-python#3234). With OTel
upgraded but `importlib-metadata` no longer transitively installed, the
ADOT configurator's import fails with ModuleNotFoundError at test
collection time on every supported Python version.
Upstream contrib 0.63b1 refactored the botocore extension API:
- _KNOWN_EXTENSIONS split into _BOTOCORE_EXTENSIONS + _AIOBOTOCORE_EXTENSIONS
  (to support the new aiobotocore instrumentation added in 0.62b0)
- _find_extension removed; lookup now goes through an ExtensionRegistry
  instance attached to the instrumentor as self.extension_registry
- _safe_invoke moved from opentelemetry.instrumentation.botocore to
  opentelemetry.instrumentation.botocore.utils

Update ADOT's _botocore_patches.py to:
- import _BOTOCORE_EXTENSIONS instead of _KNOWN_EXTENSIONS
- import _safe_invoke from the new utils module
- replace _find_extension() with self.extension_registry.get_extension()
- replace _get_tracer/_get_meter/_get_metrics/_get_logger calls with the
  registry-method equivalents (and drop the redundant _get_meter — metrics
  are now fetched directly without a meter intermediary)

Tests in test_instrumentation_patch.py patch the new
ExtensionRegistry.get_extension/get_tracer/get_logger/get_metrics methods
on the registry class instead of the module-level lookups that no longer
exist.
Contrib 0.62b0 merged opentelemetry-python-contrib#4375 which makes the
ASGI middleware respect the suppress_http_instrumentation context natively
to skip server span creation when HTTP instrumentation is suppressed.

The ADOT patch carried a TODO pointing to that PR and is now upstream
behavior. Remove the patched __call__ method and the matching test.
The exclude_receive_span/exclude_send_span patch above is kept since
its tracking issue (#3725) is still open.
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 16, 2026
@ezhang6811

Copy link
Copy Markdown
Contributor

LGTM.

  • add a changelog entry
  • in release-build.yml, we should also add python3.14 as a compatible runtime since we fully support this.

liustve added 3 commits June 16, 2026 16:05
The SDK's increment_hit_count uses `hit_count > config.max_hits` for the
disable check (instrumentation_manager.py:631), so MaxHits=N emits N
snapshots and disables on the (N+1)th hit. The DI Flask, FastAPI, and
Django hit-limit contract tests expected N-1 snapshots, claiming the
check was `>=` in their docstrings and inline comments — neither matched
the SDK.

The tests were passing on main by accident: BatchLogRecordProcessor's
default schedule_delay_millis was 5000ms, so the snapshot emitted on the
3rd hit was still sitting in the batch buffer when the test's 2-second
sleep elapsed and read the collector. core 1.41.0 tightened the default
to 1000ms (open-telemetry/opentelemetry-python#4998), shrinking the
window enough that the 3rd snapshot now lands before the test reads.

Fix the tests (and the docstrings on the application's target functions)
to match SDK behavior: MaxHits=3 -> 3 snapshots emitted, breakpoint
disables on the 4th hit. Send a 4th request to actually probe the
disabled state, and widen the disabled-state observation window to 5s
so any spurious 4th snapshot has plenty of time to flush before we
assert the breakpoint stayed disabled.
liustve added a commit that referenced this pull request Jun 17, 2026
)

## Summary

The DI Flask `DIFlaskHitLimitTest` and the matching application target
function had `MaxHits` semantics flipped relative to the SDK. With
`MaxHits=3`, the test expected 2 snapshots, claiming the disable check
was `hit_count >= max_hits`. The SDK's
[increment_hit_count](https://github.com/aws-observability/aws-otel-python-instrumentation/blob/main/aws-opentelemetry-distro/src/amazon/opentelemetry/distro/debugger/instrumentation_manager.py#L631)
actually uses `hit_count > max_hits`, so it emits 3 snapshots and
disables on the 4th hit.

## Why this is surfacing now

The test was passing on main by accident. `BatchLogRecordProcessor`'s
default `schedule_delay_millis` was 5000ms, so the snapshot emitted on
the 3rd hit was still sitting in the batch buffer when the test's
`time.sleep(2)` elapsed and read the collector. The 3rd snapshot never
reached the mock collector within the test's observation window.

OpenTelemetry core 1.41.0 [tightened that default to
1000ms](open-telemetry/opentelemetry-python#4998)
to comply with the OTel spec, so the upcoming dependency bump to 1.42.1
/ 0.63b1 (#762) now sees the 3rd snapshot consistently and the latent
off-by-one assertion fails the test.

## Changes

- Update the test class docstring and both test methods so `MaxHits=3` →
3 snapshots, breakpoint disabled on the 4th hit. Send a 4th request to
actually probe the disabled state.
- Update the `limited_function` docstring in the di-flask sample app to
match.

## Test plan

- [ ] DI Debugger Contract Tests pass on this branch (currently the only
test in the suite that was failing, on the `nightly-dependency-updates`
branch)
- [ ] No SDK behavior change — purely a test/comment alignment with
current SDK semantics
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 17, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 17, 2026
@aws-observability aws-observability deleted a comment from github-actions Bot Jun 17, 2026
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @liustve's task in 5m 10s —— View job


PR Review

I re-checked this PR against the latest review feedback and prior findings.

  • Read prior reviews and inline comments
  • Diff origin/main...HEAD
  • Verify ezhang6811's follow-up requests
  • Re-check earlier findings still applicable

Status of @ezhang6811's requested follow-ups

  1. Changelog entry — DONE. Commit 5cf93b2 added the entry under ## Unreleased in CHANGELOG.md:15-16. ✅

  2. python3.14 as compatible runtime in release-build.yml — NOT DONE. .github/workflows/release-build.yml:317 still has --compatible-runtimes python3.10 python3.11 python3.12 python3.13. The Lambda layer should advertise python3.14 now that the distro classifier supports it and the matrix exercises it.

    Fix this →

    Note: workflow files can't be edited by Claude (GitHub App permissions), so this needs to be applied manually.

Other still-outstanding findings (already flagged previously, not re-posted on the line)

  • scripts/update_dependencies.py:22CONTRIB_DEPS is still missing opentelemetry-instrumentation-threading. A prior review summary credited commit 06c768c with adding it, but that commit isn't in HEAD's history (likely lost in a rebase/force-push). The current list jumps from …system-metrics (line 64) directly to …tornado (line 65). Effect: the next nightly will leave threading pinned while every other contrib package advances, reproducing the exact drift this PR had to fix manually.

    Fix this →

  • Skipped 1.41.0/0.62b0 upstream release flagged for breaking changes. Worth confirming via the now-runnable contract tests that no API changes from the skipped release affect this repo. CI is currently green/in-progress on the new architecture, which is a positive signal but doesn't fully substitute for an explicit walkthrough of the upstream changelog.

What's clean

  • aws-opentelemetry-distro/pyproject.toml:79opentelemetry-instrumentation-threading == 0.63b1 is correct (earlier blocker resolved).
  • Python 3.9 drop is internally consistent: distro requires-python = ">=3.10", contract tests, tox envlist, CI matrices, and the DI bytecode-engine guard ((3, 10) <= sys.version_info < (3, 12)) all align. The .coveragerc-py39 deletion and dev-requirements.txt pytest<10 cap removal are correct follow-ons.
  • Python 3.14 classifier addition (pyproject.toml:25) is consistent with the existing 3.14 entries in pr-build.yml and run-instrumentation-tests.yml matrices — it's the matching release-build.yml runtimes line that's now the only place still missing 3.14.

No security concerns — straightforward version bumps and Python-floor cleanup.

· branch nightly-dependency-updates ·

@liustve liustve enabled auto-merge (squash) June 17, 2026 01:09
@liustve liustve merged commit e9750eb into main Jun 17, 2026
21 checks passed
@liustve liustve deleted the nightly-dependency-updates branch June 17, 2026 01:26
liustve added a commit to aws-observability/aws-application-signals-test-framework that referenced this pull request Jun 17, 2026
… 3.10) (#643)

## Why

The nightly OpenTelemetry dependency bump in
`aws-otel-python-instrumentation` ([PR
#762](aws-observability/aws-otel-python-instrumentation#762),
OTel `1.42.1` / `0.63b1`) raised the ADOT distro's minimum to **Python ≥
3.10**:

- `opentelemetry-api`: `1.41.1` was `requires_python >=3.9` → `1.42.1`
is **`>=3.10`**
- `opentelemetry-instrumentation-*`: `0.62b1` was `>=3.9` → `0.63b1` is
**`>=3.10`**

The `python-ec2-adot-sigv4` and `python-ec2-adaptive-sampling` E2E jobs
default to **Python 3.9**, so after the bump pip on the EC2 host could
no longer resolve the pinned distro:

```
ERROR: Could not find a version that satisfies the requirement opentelemetry-api==1.42.1 ...
ERROR: No matching distribution found for opentelemetry-instrumentation-celery==0.63b1
nohup: failed to run command 'opentelemetry-instrument': No such file or directory
```

This turned the **Python Instrumentation Main Build** red on every run
starting 2026-06-17 01:26 UTC (first failure = the dep-bump commit; the
run immediately before it was green). The `default` EC2 matrix
(3.10–3.14) and container/layer-based jobs were unaffected because they
don't pip-install the pinned distro on a 3.9 interpreter.

> Note: the `k8s-py310-amd64` job also fails intermittently, but that is
a **separate, pre-existing** CloudWatch observability controller-manager
pod-readiness timeout — unrelated to this change.

## What

Removes **all** Python 3.8/3.9 references from the Python test framework
and floors everything at 3.10:

- **Reusable workflows** — `python-version` default `3.9` → `3.10`
(`default`, `asg`, `lambda`, `adot-sigv4`); normalized "currently
supported" description strings to `3.10, 3.11, 3.12, 3.13, 3.14` across
all Python workflows.
- **adaptive-sampling** — hardcoded `python3.9` install command →
`python3.10`.
- **Terraform** — `language_version` default `3.9` → `3.10` (`default`,
`asg`, `adot-sigv4`, `adaptive-sampling`).
- **EC2 user-data scripts** — dropped the now-dead `== "3.8"`
conditional branches and 3.8 comment references; fixed a pre-existing
`3,10` comment typo.
- **ECR sample-app deploy** — removed `3.8` and `3.9` from the build
matrix.

## Testing

- All 9 modified workflow YAML files validated as well-formed.
- `terraform fmt -check` passes on all four modified EC2 dirs (no diff).
- Repo-wide grep confirms no remaining
`3.8`/`3.9`/`python3.8`/`python3.9` references in the Python framework.
liustve added a commit to liustve/aws-otel-python-instrumentation that referenced this pull request Jun 23, 2026
Resolve conflicts by keeping the interpreter-layer instrumentation engine
(bytecode / sys.monitoring) and dropping the framework-specific patching
code that landed on main after this branch forked. The engine mutates a
function's __code__ in place, so any reference a framework holds
(Flask view_functions, Django URLPattern.callback, FastAPI route table /
Depends sub-dependencies, `from x import f` aliases) sees the rewritten
code on the next call — no per-framework patcher needed.

Production code removed (reverted from main):
- _patch_framework_references / _patch_flask_view_functions /
  _patch_single_flask_app
- _patch_django_url_patterns / _patch_single_resolver / _maybe_patch_pattern
- _patch_fastapi_routes / _patch_single_fastapi_app (incl. Depends rebind)
- _patch_module_aliases / _is_application_module / _stdlib_lib_dirs
  (aws-observability#776, aws-observability#780, aws-observability#785, aws-observability#786)

Tests:
- Behavioral contract tests (di/django_test.py, di/fastapi_test.py,
  di/flask_test.py) kept as-is — they validate end-to-end that everything
  still works through the engine with no patching.
- White-box unit tests that called the deleted _patch_* methods directly
  (test_function_wrapper_django.py, test_function_wrapper_fastapi.py,
  TestModuleAliasRedirect) rewritten 1:1 to drive the engine — same
  scenarios, only the operative call changed (mirrors how this branch
  already rewrote test_function_wrapper_flask.py).
- Dropped only the tests of deleted internals with no engine equivalent:
  the _patch_framework_references dispatcher tests, the resolver-walk
  error-branch tests, and TestIsApplicationModule.

Also adopt main's "drop Python 3.9" change (aws-observability#762): engine and manager
gate on >= 3.10; function-level builders renamed _39_310 -> _310;
3.9 references removed across src and tests.

Kept main's non-patching debugger improvements: capture-limit default
constants (aws-observability#771), instrumentation_name field removal (aws-observability#775), OTel 1.42.1
bump (aws-observability#762), and the capture-limits test.
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.

5 participants