-
Notifications
You must be signed in to change notification settings - Fork 764
chore(deps+ci): reduce disk space usage + various dependencies alignments and upgrades #3149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThis update raises the OpenTelemetry dependency versions across all instrumentation and SDK packages to Changes
Sequence Diagram(s)sequenceDiagram
participant Developer
participant CI/CD
participant PyPI/Registry
Developer->>CI/CD: Pushes changes (dependency and workflow updates)
CI/CD->>CI/CD: Runs updated release workflow on ubuntu-latest
CI/CD->>PyPI/Registry: Publishes packages with updated dependencies
PyPI/Registry-->>Developer: Packages available with new dependency versions
Poem
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
33e50ec
to
2280527
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Important
Looks good to me! 👍
Reviewed everything up to a2afb9b in 1 minute and 55 seconds. Click for details.
- Reviewed
1197
lines of code in34
files - Skipped
31
files when reviewing. - Skipped posting
7
draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. .github/workflows/release.yml:8
- Draft comment:
Runner updated from 'ubuntu-latest-m' to 'ubuntu-latest'. Ensure this change meets your CI environment requirements. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%
<= threshold50%
The comment is asking the PR author to ensure that the change meets CI environment requirements, which is against the rules. It doesn't provide a specific suggestion or ask for a specific test to be written.
2. packages/opentelemetry-instrumentation-transformers/.python-version:1
- Draft comment:
Python version changed to 3.10. Verify that all dependencies and environments are compatible with this update. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%
<= threshold50%
This comment is asking the PR author to verify compatibility of dependencies and environments with the updated Python version. This falls under the rule of not asking the author to ensure compatibility or verify behavior, which is not allowed.
3. packages/opentelemetry-instrumentation-transformers/tests/test_pipeline.py:11
- Draft comment:
All tests here are marked as skipped. Confirm if this is temporary and plan to re-enable tests after dependency upgrades. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%
<= threshold50%
The comment is asking the PR author to confirm their intention regarding skipped tests, which violates the rule against asking for confirmation or ensuring behavior is intended. It doesn't provide a specific suggestion or actionable feedback.
4. packages/opentelemetry-instrumentation-alephalpha/pyproject.toml:27
- Draft comment:
Upgraded opentelemetry-api from ^1.28.0 to ^1.35.0. Ensure integration tests pass with this version change. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%
<= threshold50%
This comment is about a dependency change, specifically upgrading a library version. The comment asks to ensure integration tests pass, which is a form of asking the author to double-check something. This violates the rules against asking for confirmation or testing.
5. packages/sample-app/pyproject.toml:29
- Draft comment:
Torch dependency was removed. Confirm that this is intended and that the sample app functions correctly without torch. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% This comment violates several rules. It's asking for confirmation/verification which is explicitly against our rules. It's speculative about potential issues without concrete evidence. We don't have strong evidence that torch is actually required. The build system would catch any missing dependencies if torch was actually needed. There could be some indirect dependency on torch through other ML libraries that might cause issues. The removal might have been accidental. Even if there are indirect dependencies, the build/test system would catch any missing required dependencies. We shouldn't ask for verification - that's the author's responsibility. Delete this comment as it violates our rules by asking for verification and being speculative without concrete evidence of an issue.
6. packages/traceloop-sdk/pyproject.toml:28
- Draft comment:
Dependencies like OTLP exporters and SDK have been updated to ^1.35.0. Please verify that these changes are fully compatible with the SDK functionality. - Reason this comment was not posted:
Comment did not seem useful. Confidence is useful =0%
<= threshold50%
This comment is asking the PR author to verify compatibility of dependency updates, which is against the rules. It doesn't provide a specific suggestion or point out a specific issue with the code.
7. packages/opentelemetry-instrumentation-transformers/tests/test_pipeline.py:12
- Draft comment:
Typo: The function name 'test_tranformers_pipeline' seems to have a missing 's'. Consider renaming it to 'test_transformers_pipeline' for consistency with the instrumentation package name. - Reason this comment was not posted:
Comment was on unchanged code.
Workflow ID: wflow_HTzwv9xpxovGjlFh
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
🔭 Outside diff range comments (1)
.github/workflows/release.yml (1)
34-41
:tag_name
references undefinedenv.REVISION
⇒ release upload will fail
softprops/action-gh-release
will receive an empty string fortag_name
, causing the step to error.
The Commitizen action exposes the new tag viasteps.cz.outputs.tag
(and the version viasteps.cz.outputs.version
) – no environment variable namedREVISION
is set.- tag_name: ${{ env.REVISION }} + # Commitizen outputs the freshly-created tag, e.g. "v1.2.3" + tag_name: ${{ steps.cz.outputs.tag }}
🧹 Nitpick comments (29)
packages/opentelemetry-instrumentation-mistralai/pyproject.toml (1)
28-33
: Duplicatepytest
constraint in multiple groups
pytest
appears in both the[tool.poetry.group.dev.dependencies]
and[tool.poetry.group.test.dependencies]
sections. Poetry will unify them, but the duplication is unnecessary noise and a potential source of drift if one version string is edited in the future.Suggested diff:
[tool.poetry.group.dev.dependencies] autopep8 = "^2.3.1" flake8 = "7.1.2" -pytest = "^8.3.3" pytest-sugar = "1.0.0" [tool.poetry.group.test.dependencies] mistralai = "^0.2.0" -pytest = "^8.3.3" +pytest = { version = "^8.3.3", optional = false } # inherit from dev group removed pytest-sugar = "1.0.0" vcrpy = "^6.0.2" pytest-recording = "^0.13.2" pytest-asyncio = "^0.24.0" opentelemetry-sdk = "^1.35.0"packages/opentelemetry-instrumentation-google-generativeai/pyproject.toml (2)
29-31
: Dev dependencies are partially pinned, partially caret-ranged – standardise for predictability
autopep8
andpytest
now use a caret (^) spec whileflake8
is hard-pinned to an exact version. Unless there is a known issue withflake8>7.1.2
, consider using a consistent strategy (all caret-ranges or all exact) to avoid surprise upgrades or drift across packages.
35-40
: Duplicatepytest
spec across groups – risk of silent divergence
pytest
appears in both thedev
andtest
groups with the same version constraint. If one list is updated in the future and the other is forgotten, the lockfile will contain two different versions. Recommend keeping the spec in only one group (typicallydev
) and lettingtest
inherit it, or reference it via Poetry’s dependency extras to ensure a single source of truth.packages/opentelemetry-instrumentation-ollama/pyproject.toml (2)
29-31
: Consolidate duplicate dev/test dependency declarations.
pytest
,pytest-sugar
, and the other test helpers are declared in both[tool.poetry.group.dev.dependencies]
and[tool.poetry.group.test.dependencies]
. Unless you intentionally want two lock-files, this duplication can cause version skew if one group drifts. Consider keeping them in a single group (e.g.dev
) and letting CI install--with dev
.Also applies to: 35-39
30-30
: Align version spec style forflake8
.Unlike the other dev dependencies that use a caret (
^
) spec,flake8
is hard-pinned to7.1.2
. If there isn’t a plugin-compatibility reason to freeze at a patch version, switch to^7.1
to receive non-breaking bug-fix releases automatically.packages/opentelemetry-instrumentation-cohere/pyproject.toml (1)
40-40
: Avoid duplicatedpytest
specs across groupsThe same caret range appears in both
[group.dev]
and[group.test]
. While harmless, keeping a single authoritative declaration (typicallygroup.test
) prevents future drift.-[tool.poetry.group.dev.dependencies] -autopep8 = "^2.3.1" -flake8 = "7.1.2" -pytest = "^8.3.3" # ← consider removing +pytest = "^8.3.3" # rely on the test group insteadpackages/opentelemetry-instrumentation-replicate/pyproject.toml (2)
29-31
: Uniform spec style – use caret everywhere or pin everywhere.
autopep8
andpytest
use the caret (^
) operator, whileflake8
is hard-pinned to an exact version. Mixing spec styles makes dependency resolution harder to reason about.-flake8 = "7.1.2" +flake8 = "^7.1.2"
35-39
: Duplication ofpytest
spec between dev & test groups.Both groups now declare
pytest = ^8.3.3
. Unless there is a reason to keep them separate, consider declaring it once (e.g. in[tool.poetry.group.dev.dependencies]
) to avoid accidental drift in future bumps.packages/opentelemetry-instrumentation-mcp/pyproject.toml (2)
27-27
: Prefer a caret range for the exporter to avoid future patch-level lock-inPinning
opentelemetry-exporter-otlp = "1.35.0"
prevents automatic uptake of bug-fix releases (e.g., 1.35.1).
Consider:-opentelemetry-exporter-otlp = "1.35.0" +opentelemetry-exporter-otlp = "^1.35.0"This still constrains the minor/major and keeps the exporter aligned with the API while letting CI pick up micro-patches automatically.
30-32
: Inconsistent version-spec styles across dev tools
autopep8
andpytest
use caret (^
) whileflake8
is hard-pinned. Decide whether you want deterministic builds (all exact pins) or flexible minor/patch upgrades (all carets) and apply consistently to avoid surprise drifts in only part of the toolchain.packages/opentelemetry-instrumentation-vertexai/pyproject.toml (2)
34-36
: Expect stricter linting with flake8 7.x – update CI configs if needed.
flake8==7.1.2
enables several new default error codes (e.g. E721 & E741 are now fatal). Unless you already pin a custom.flake8
/pyproject
config, the check might start failing. Worth validating in CI before merge.
40-44
: Avoid duplicatingpytest
in both dev and test groups.Declaring the same package in two groups complicates dependency resolution and produces redundant lock entries. Recommend keeping it only under the test group:
[tool.poetry.group.dev.dependencies] autopep8 = "^2.3.1" flake8 = "7.1.2" -pytest = "^8.3.3"
This removes duplication while preserving the dev-experience (running tests pulls the test group anyway).
packages/opentelemetry-instrumentation-alephalpha/pyproject.toml (2)
33-35
: Use consistent version specifiers for dev tools
autopep8
&pytest
use caret (^
) specifiers, butflake8
is pinned to an exact version. Unless you have a reproducibility reason, consider keeping the same spec-pattern for all dev tools to avoid unnecessary manual bumps.-flake8 = "7.1.2" +flake8 = "^7.1.2"
40-45
: Avoid duplicatingpytest
across dev and test groups
pytest
appears in both[tool.poetry.group.dev.dependencies]
and[tool.poetry.group.test.dependencies]
.
Removing it from one group (usually dev) simplifies upgrades and prevents resolver warnings.-pytest = "^8.3.3" # in dev
packages/opentelemetry-instrumentation-watsonx/pyproject.toml (1)
21-24
: Version-spec style is inconsistent – pin or caret, but pick one
autopep8
&pytest
use the caret (^
) whileflake8
is pinned to7.1.2
. Mixing styles makes upgrades unpredictable.
• If flake8 plugins are sensitive, pin them all;
• Otherwise switchflake8
to^7.1.0
for symmetry.-flake8 = "7.1.2" +# keep everything caret-based +flake8 = "^7.1.2"packages/opentelemetry-instrumentation-llamaindex/pyproject.toml (1)
43-44
: Alignopentelemetry-sdk
upper bound with the API
For the same reason as the API note above, add an upper cap to prevent an accidental 1.36 upgrade pulling in breaking changes before instrumentation0.51b0
is out.-opentelemetry-sdk = "^1.35.0" +opentelemetry-sdk = ">=1.35,<1.36"packages/opentelemetry-instrumentation-haystack/pyproject.toml (1)
40-44
: Minor style nit – keep version spec syntax consistent
Most dependencies use the caret operator whileflake8
is pinned exactly. If pinning is intentional (e.g. to avoid plugin breakage) consider adding a short comment to make that rationale explicit.packages/opentelemetry-instrumentation-together/pyproject.toml (1)
40-45
: Align test-only deps with the dev group to reduce duplication.
pytest
,pytest-sugar
, andopentelemetry-sdk
now appear in both[tool.poetry.group.dev.dependencies]
and[tool.poetry.group.test.dependencies]
. Duplicating version specifiers increases drift risk.Suggestion:
[tool.poetry.group.dev.dependencies] pytest = {version = "^8.3.3", optional = false} pytest-sugar = "1.0.0" # … [tool.poetry.group.test.dependencies] pytest = {version = "^8.3.3", optional = true} # or remove entirely pytest-sugar = {version = "1.0.0", optional = true}…or simply keep them in one group and let the other inherit. This keeps the lockfile leaner and maintenance simpler.
packages/opentelemetry-instrumentation-bedrock/pyproject.toml (1)
35-36
: Keep tooling configs in lock-step withautopep8
/flake8
upgradesBoth tools jumped a patch/minor version. Make sure:
• CI lint steps pin the same versions (e.g.,
.pre-commit-config.yaml
).
• Any custom--max-line-length
, plugins, or ignore lists are still honoured—flake8>=7
tightened some rule codes.No code change required if CI already installs from
pyproject.toml
.packages/opentelemetry-instrumentation-pinecone/pyproject.toml (1)
33-36
: Dev-tool upgrades: watch for plug-in breakage & regenerate lock file.
flake8 7.x
andpytest 8.3.x
introduced minor API changes; some third-party plugins/extensions (e.g.flake8-bugbear
,pytest-sugar
) occasionally lag behind.
After runningpoetry lock
, execute the fullpre-commit
+ test suite locally to surface any latent incompatibilities early..github/workflows/release.yml (1)
67-70
: Consider upgrading Node runner to the current LTS (20.x)Node 18 enters maintenance/EOL in April 2025. Moving to
node-version: 20
will future-proof the workflow and align with GitHub-hosted runner defaults.- - uses: actions/setup-node@v4 - with: - node-version: 18 + - uses: actions/setup-node@v4 + with: + node-version: 20packages/opentelemetry-instrumentation-weaviate/pyproject.toml (1)
32-36
: Relax the flake8 pin to allow patch updates
flake8
is now pinned to the exact7.1.2
, while the rest of the dev deps use caret ranges (^
). Unless there is a known incompatibility, consider keeping it consistent so CI gets bug-fix releases automatically.-flake8 = "7.1.2" +flake8 = "^7.1.2"packages/opentelemetry-instrumentation-crewai/pyproject.toml (1)
28-33
: Inconsistent version specifiers – stick to one style (^
vs exact pin).
autopep8
andpytest
use caret ranges, whileflake8
is pinned to an exact version ("7.1.2"
). Unless you have a reproducibility reason, consider using the same operator for all dev deps. Consistency helps avoid accidental drift.-flake8 = "7.1.2" +flake8 = "^7.1.2"packages/opentelemetry-instrumentation-qdrant/pyproject.toml (1)
32-34
: Version-spec style is inconsistent
autopep8
keeps a caret (^
) spec whileflake8
is now hard-pinned to7.1.2
. Unless there’s a reproducibility requirement, keep a consistent range style to avoid accidental lock-file churn.-flake8 = "7.1.2" +flake8 = "^7.1.2"packages/opentelemetry-instrumentation-sagemaker/pyproject.toml (1)
29-30
: Verify Flake8 plugins’ compatibility with v7.xBumping
flake8
to 7.1.2 can break third-party plugins if they haven’t been updated for the new API. We’ve detected the following in your repo:
- flake8-print is declared in dev dependencies across multiple
poetry.lock
files (e.g.
packages/**/poetry.lock
lines containingdev = [..., "flake8-print", ...]
).- Items like
# flake8-bugbear
and# flake8-simplify
appear commented out inruff.toml
.Please confirm that all Flake8 plugins used in your local/CI setups (especially
flake8-print
) are tested and officially support Flake8 7.x before merging.packages/opentelemetry-instrumentation-milvus/pyproject.toml (1)
32-36
: Dev-tool bumps look safe – ensure pre-commit & CI use the same versions
autopep8 2.3.1
andflake8 7.1.2
sharepycodestyle 2.11
, so no known clash.
If you have a pre-commit config or CI formatter step, remember to bump the pinned versions there as well to avoid diverging lint results.packages/opentelemetry-instrumentation-openai-agents/pyproject.toml (1)
36-39
: Duplicatepytest
specification increases maintenance noise
pytest
appears in both thedev
andtest
groups with identical version spec. One declaration is enough; keeping two invites accidental divergence.Minimal diff:
-[tool.poetry.group.dev.dependencies] -... -pytest = "^8.3.3" +[tool.poetry.group.dev.dependencies] +... # keep pytest only under [tool.poetry.group.test.dependencies]packages/opentelemetry-instrumentation-transformers/pyproject.toml (1)
33-38
: Prefer caret ranges for dev tools to get patch-level fixes automaticallyHard-pinning
flake8 = "7.1.2"
will freeze you on this exact micro version and miss future bug-/security-fix releases. Dev-only tooling benefits from a looser caret/prefix:-flake8 = "7.1.2" +flake8 = "^7.1.2"Same rationale for
pytest-sugar
.packages/opentelemetry-instrumentation-transformers/tests/test_pipeline.py (1)
1-1
: Unused import once tests are skippedWith every test now marked
@pytest.mark.skip
, the newimport pytest
is currently only used for the decorator. If you later drop the decorator, keep the import; otherwise linters will flag it as unused.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (31)
packages/opentelemetry-instrumentation-alephalpha/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-anthropic/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-bedrock/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-chromadb/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-cohere/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-crewai/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-google-generativeai/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-groq/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-haystack/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-lancedb/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-langchain/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-llamaindex/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-marqo/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-mcp/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-milvus/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-mistralai/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-ollama/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-openai-agents/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-openai/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-pinecone/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-qdrant/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-replicate/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-sagemaker/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-together/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-transformers/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-vertexai/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-watsonx/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-instrumentation-weaviate/poetry.lock
is excluded by!**/*.lock
packages/opentelemetry-semantic-conventions-ai/poetry.lock
is excluded by!**/*.lock
packages/sample-app/poetry.lock
is excluded by!**/*.lock
packages/traceloop-sdk/poetry.lock
is excluded by!**/*.lock
📒 Files selected for processing (34)
.github/workflows/release.yml
(5 hunks)packages/opentelemetry-instrumentation-alephalpha/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-anthropic/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-bedrock/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-chromadb/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-cohere/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-crewai/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-google-generativeai/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-groq/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-haystack/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-lancedb/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-langchain/pyproject.toml
(2 hunks)packages/opentelemetry-instrumentation-llamaindex/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-marqo/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-mcp/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-milvus/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-mistralai/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-ollama/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-openai-agents/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-openai/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-pinecone/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-qdrant/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-replicate/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-sagemaker/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-together/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-transformers/.python-version
(1 hunks)packages/opentelemetry-instrumentation-transformers/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-transformers/tests/test_pipeline.py
(4 hunks)packages/opentelemetry-instrumentation-vertexai/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-watsonx/pyproject.toml
(1 hunks)packages/opentelemetry-instrumentation-weaviate/pyproject.toml
(1 hunks)packages/opentelemetry-semantic-conventions-ai/pyproject.toml
(1 hunks)packages/sample-app/pyproject.toml
(0 hunks)packages/traceloop-sdk/pyproject.toml
(2 hunks)
💤 Files with no reviewable changes (1)
- packages/sample-app/pyproject.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: Test Packages (3.12)
- GitHub Check: Test Packages (3.9)
- GitHub Check: Test Packages (3.10)
- GitHub Check: Test Packages (3.11)
- GitHub Check: Build Packages (3.11)
- GitHub Check: Lint
🔇 Additional comments (62)
packages/opentelemetry-instrumentation-mistralai/pyproject.toml (1)
23-26
: Verify downstream compatibility between OTEL core 1.35 and the0.50b0
instrumentation/semantic-conventions packages
The runtime dependency bump toopentelemetry-api = "^1.35.0"
means
opentelemetry-instrumentation
andopentelemetry-semantic-conventions*
must still be compatible with 1.35.0.
The currently declared minimum (>=0.50b0
) predates the 1.35 release and may pull an older pre-release that was only tested against OTEL ≤ 1.28. Consider raising these minimums to the latest matching beta (0.54b0
as of today) or pinning a proven version to avoid subtle ABI mismatches at runtime.packages/opentelemetry-instrumentation-google-generativeai/pyproject.toml (1)
23-23
: Double-check instrumentation/core API compatibility after bumping to 1.35.0Jumping seven minor versions at once is usually safe inside the 1.x OpenTelemetry contract, but there have been a few breaking‐adjacent changes (e.g., environment variable renames, semantic-convention moves). Please run the full test-matrix (incl. downstream sample apps) to verify nothing regressed at runtime.
packages/opentelemetry-instrumentation-ollama/pyproject.toml (1)
23-24
: Verify cross-package compatibility of the 1.35.0 bump.Bumping both
opentelemetry-api
andopentelemetry-sdk
to^1.35.0
looks correct, but several internal instrumentation packages still depend on older 1.x releases. Please run the full test matrix (or at leastpoetry lock && pytest -q
) across all sub-packages to ensure no subtle ABI/API changes were introduced between 1.28/1.27 and 1.35 that break instrumentation hooks.Also applies to: 40-41
packages/opentelemetry-instrumentation-cohere/pyproject.toml (3)
27-27
: Ensure other instrumentation layers tolerateopentelemetry-api 1.35.0
Jumping seven minor versions is usually backward-compatible, but several classes/functions were deprecated between 1.28 and 1.35 (e.g.,
get_tracer_provider()
behaviour). Please run the full test matrix (all instrumentations + sample apps) to catch subtle breakage before release.
33-35
:flake8
7.x may break your lint workflowFlake8 7 introduces tighter type-comment parsing and drops some deprecated AST attributes. Any auxiliary plugins (e.g.,
flake8-bugbear
,flake8-import-order
) must already have 7-series wheels; otherwise CI will fail at import-time. Double-check the lint stage before merging.
42-44
: SDK / API versions are now in sync – good catch
The bump toopentelemetry-sdk ^1.35.0
matches the API version and should prevent subtle wire-format mismatches.packages/opentelemetry-instrumentation-replicate/pyproject.toml (1)
23-26
: Confirm that>=0.50b0
instrumentor builds against API 1.35 – raise the floor if needed.The API major bump from
^1.28.0
➜^1.35.0
is significant. The lowest version that satisfiesopentelemetry-instrumentation = ">=0.50b0"
may pre-date several breaking-/deprecation removals that landed in the 1.3x series. If a downstream environment resolves to 0.50b0 it could silently break at runtime.Action: verify which
opentelemetry-instrumentation
release first guarantees 1.35 support and bump the lower bound accordingly (e.g.>=0.52b0
or higher).packages/opentelemetry-instrumentation-mcp/pyproject.toml (2)
23-23
: API version bump is correctly aligned with instrumentation baseline
opentelemetry-api = "^1.35.0"
matches the latest0.50b0
instrumentation series—good catch keeping these in lock-step.
37-40
: Duplicatepytest
specification may be redundant
pytest
appears in both[tool.poetry.group.dev.dependencies]
and[tool.poetry.group.test.dependencies]
. Unless you need different versions per group, dropping one declaration reduces maintenance overhead.packages/opentelemetry-instrumentation-vertexai/pyproject.toml (1)
28-31
: Double-check cross-package compatibility after bumping to^1.35.0
.Going from
^1.28.0
→^1.35.0
is a safe minor jump, but a lot of instrumentation helpers were re-shuffled between1.30
and1.34
. Please run the full test-suite for all Traceloop instrumentations once the lock-file is regenerated to confirm there are no ABI/runtime surprises.packages/opentelemetry-instrumentation-alephalpha/pyproject.toml (1)
27-30
: Verify runtime compatibility after bumping OpenTelemetry core to 1.35.0
opentelemetry-api
is now^1.35.0
, whereasopentelemetry-instrumentation
is still on the pre-release>=0.50b0
. Pre-release builds occasionally lag behind or pin to specific minor versions of the core API.
Please run the instrumentation’s integration test suite (or at least a smoke test) to make sure no breaking change was introduced in the 1.28 → 1.35 jump.packages/opentelemetry-instrumentation-watsonx/pyproject.toml (1)
15-15
: Ensure Watsonx instrumentation still works with OpenTelemetry 1.35
Jumping seven minor versions ofopentelemetry-api
is usually safe but not always ABI-neutral for older beta instrumentation packages. Please run the full test-suite (including the sample app, if any) and watch for warnings about deprecated span attributes or metric APIs that were removed after 1.31.packages/opentelemetry-instrumentation-llamaindex/pyproject.toml (2)
25-31
: Confirm cross-package compatibility for the1.35.*
bump
opentelemetry-api
is now pinned to^1.35.0
while the meta-packageopentelemetry-instrumentation
remains on the pre-release0.50b0
.0.50b0
is intended to line up with API 1.35, but if any consumer still resolves0.49b?
(transitively or via lock-file drift) you will get an API/SDK minor-mismatch crash at import time.
Consider tightening both constraints to the same minor window to make that impossible:-opentelemetry-api = "^1.35.0" +opentelemetry-api = ">=1.35,<1.36" … -opentelemetry-instrumentation = ">=0.50b0" +opentelemetry-instrumentation = ">=0.50b0,<0.51"
34-35
: Lint tool bumps can break plug-ins & CI scripts
flake8 7.x
drops several deprecated CLI flags and rewrites its plug-in discovery logic;autopep8 2.3.x
follows suit.
Double-check that:
- Any custom flake8 extensions (e.g.
flake8-bugbear
,flake8-docstrings
) used in other packages still declare compatibility with 7.x.- The CI job that runs
autopep8 --diff --exit-code
hasn’t pinned the older binary name (autopep8==
).Failure to verify will surface only in the pre-commit or quality gates, not in unit tests.
packages/opentelemetry-instrumentation-haystack/pyproject.toml (2)
27-27
: Dependency bump to OpenTelemetry 1.35 looks correct
The instrumentation packages released alongside 1.35.0 are API-compatible, so raising the lower bound is reasonable. No other runtime deps here appear to conflict.
33-35
: Double-check plugin compatibility after the pytest 8.x jump
pytest-sugar==1.0.0
and any local plugins/conftest hooks must be compatible with pytest 8.3.3. A quick sanity import in CI (e.g.python -c "import pytest, pytest_sugar"
) will fail fast if versions mismatch.packages/opentelemetry-instrumentation-anthropic/pyproject.toml (2)
27-30
: Check cross-package compatibility after bumping toopentelemetry-api ^1.35.0
.Jumping seven minor versions is usually safe inside the same major line, but a few instrumentations introduced hard pins (
<1.32
,<1.34
) in earlier releases. Please verify that every internal instrumentation consumed in this repository (and any transitive dependencies) has already been published with a compatible upper bound, otherwisepoetry install
will fail with a solver conflict.
40-45
: Double-checkpytest-asyncio
support for Pytest 8.x.
pytest-asyncio 0.24.x
only added preliminary support for Pytest 7; Pytest 8 introduces a new fixture finaliser API that can break async tests. If your suite usesasyncio
fixtures, run it locally withpytest-asyncio>=0.24.3,<0.25
or the upcoming1.0.0
and pin whichever version passes.packages/opentelemetry-instrumentation-together/pyproject.toml (2)
27-30
: Double-check runtime expectations aroundopentelemetry-sdk
.The core dependency bump to
opentelemetry-api = "^1.35.0"
is aligned with the project-wide upgrade, but the SDK is only present in the test extras (line 45) and not in the main runtime dependencies.
Instrumentations sometimes calltrace.get_tracer_provider()
or other helpers that silently fall back to the no-op SDK if a real provider isn’t present. If this package is ever used outside of the test suite (e.g., by the sample app) the absence of an explicitopentelemetry-sdk
runtime requirement could lead to confusing “no spans emitted” behaviour.Action: Verify that all production code paths either
- Intentionally rely only on the API, or
- Have a higher-level package that guarantees the SDK is installed.
If not, consider adding
opentelemetry-sdk = "^1.35.0"to
[tool.poetry.dependencies]
.
33-37
: Ensure plugin compatibility with the Pytest/Flake8 major bumps.Upgrading to
pytest ^8.3.3
andflake8 7.1.2
is a non-trivial jump:
pytest-sugar 1.0.0
has historically lagged behind major Pytest releases.- Older Flake8 plugins (e.g.,
flake8-bugbear
,flake8-import-order
, etc.) break on Flake8 7.Please run the full test & lint suites locally (or in CI) and confirm that all third-party plugins still import cleanly.
If incompatibilities surface, pin the affected plugin versions or postpone the bump to Pytest/Flake8 until the ecosystem catches up.packages/opentelemetry-instrumentation-openai/pyproject.toml (3)
27-31
: Confirm OpenTelemetry core & instrumentation compatibilityThe API/SDK bump to
^1.35.0
is isolated, whileopentelemetry-instrumentation
and the semantic-conventions libs stay on the prerelease0.50b0
track. Verify that this prerelease was built against 1.35.*; otherwise, pip may resolve a newer core (≥1.36) or raise version-conflict errors at runtime.
34-35
: Flake8 7.x is a breaking major – validate plugin & CI configsFlake8 7 removed deprecated options and tightened default checks. Ensure your
setup.cfg
/pyproject.toml
rules and any Flake8 plugins invoked by pre-commit or CI still pass, or the pipeline will start red-flagging style errors.
37-44
: Pytest 8.x & companion bumps may break the test-suiteThe jump to pytest 8.3,
pytest-asyncio
0.24 (new defaultasyncio_mode=auto
), and updatedpytest-recording
can surface incompatibilities—e.g.pytest-sugar
1.0.0 hasn’t declared support for pytest 8. Run the full test matrix and pin/patch as needed before merge.packages/opentelemetry-instrumentation-lancedb/pyproject.toml (3)
33-35
: Flake8 7.x & Pytest 8.x may break older plugins – smoke-test the dev workflow.Both upgrades are minor-version jumps that removed deprecated APIs. If you rely on plugins such as
flake8-bugbear
,flake8-annotations
, or custom pytest hooks, they might fail to import.
Make surepoetry install --with dev
still runsflake8
andpytest
successfully.
39-44
: Check test-suite compatibility with Pytest 8.3 +pytest-asyncio
0.24.
pytest-asyncio
0.24 is the first release fully compatible with Pytest 8, but it enforces the new async-fixtures semantics. Existing tests that relied on the legacy behaviour could start failing or raising warnings. Please run the full test matrix (sync & async) on CI before merging.
27-27
: Allopentelemetry-api
versions are aligned
Verified that everypyproject.toml
in this mono-repo pinsopentelemetry-api = "^1.35.0"
. No mismatches found—no further action required.packages/opentelemetry-instrumentation-marqo/pyproject.toml (2)
27-31
: Double-check runtime compatibility between the bumpedopentelemetry-*
versionsMoving
opentelemetry-api
to^1.35.0
while keepingopentelemetry-instrumentation
at>=0.50b0
is usually OK (API ↔ instrumentation are wire-compatible), but a few 0.5x instrumentations have lagged behind and reference symbols removed in the ≥1.34 line (e.g. the old_SUPPRESS_INSTRUMENTATION_KEY
).
Please run the full test-suite against 1.35 locally and/or pinopentelemetry-instrumentation
to~0.53
to guarantee you pick up the companion shim that fixes those breakages.
33-35
: CI may suddenly fail on stricter linters
flake8 7.x
andautopep8 2.3.x
both tightened several rules (E721, E742, ambiguous escape sequences, etc.). Expect new lint failures.
Plan to either (a) appease them in this PR or (b) pin them with~=
until you can address the fallout, otherwise the next green build could turn red without code changes.packages/opentelemetry-instrumentation-groq/pyproject.toml (3)
29-33
: Flake8 7.x may break existing lint configuration/plugins
flake8
jumped from6.x
→7.x
, droppingpycodestyle
/pyflakes
pins and changing default error codes.
Please verify that:
- Your
setup.cfg
/pyproject.toml
lint rules still pass, and- Any Flake8 plugins you rely on are compatible with
>=7.0
.If issues appear in CI, consider pegging
flake8~=6.1
until the rule-set is updated.
34-42
:pytest-asyncio 0.24
introduced the “asyncio_mode” default changeVersion
0.24
enables the new strict event-loop management by default, which breaks tests that create their own loops or rely on the legacy behaviour.Double-check your async test suite or add an explicit setting:
[tool.pytest.ini_options] asyncio_mode = "auto" # or "strict"to avoid unexpected failures.
22-26
: Ignore redundant upper bound onopentelemetry-api
The^1.35.0
caret specifier in Poetry already expands to>=1.35.0,<2.0.0
, so adding an explicit<2
is unnecessary.
No changes required.Likely an incorrect or invalid review comment.
packages/opentelemetry-instrumentation-bedrock/pyproject.toml (2)
40-43
: Patch-level test-deps bump looks safeThe moves to
vcrpy 6.0.2
,pytest 8.3.3
, andpytest-recording 0.13.2
are all patch releases with no breaking changes noted upstream.
27-29
: Compatibility Verified – No Changes RequiredThe
opentelemetry-instrumentation==0.50b0
package declares
• opentelemetry-api~=1.4 (i.e. >=1.4,<2.0)
• opentelemetry-semantic-conventions==0.50b0Since
^1.35.0
falls within~=1.4
, the API bump is safe. The existing>=0.50b0
for semantic conventions is also satisfied (and will be locked to 0.50b0). Feel free to resolve this comment.packages/opentelemetry-instrumentation-chromadb/pyproject.toml (3)
33-35
: Dev-time trio upgraded – double-check resolver still converges
autopep8 2.3.1
pullspycodestyle>=2.10
, whileflake8 7.1.2
restricts it to<2.12
.
The overlap (2.11.x
) is valid, yet if any other plugin pinspycodestyle
tighter the solver may bail out.
40-42
: Test dependencies bump acknowledged
pytest 8.3.3
andopentelemetry-sdk ^1.35.0
look fine and match prod deps.
No further action needed.
27-27
: All opentelemetry-api dependencies pinned to ^1.35.0
Verified across everypyproject.toml
and lockfile—no lower versions remain. 🎉packages/opentelemetry-instrumentation-pinecone/pyproject.toml (2)
40-45
: Test-suite deps: ensurepytest-sugar
stays compatible with pytest 8.3.
pytest-sugar 1.0.0
advertised support up to pytest 8.2 when released. If CI starts failing with import/patch errors, upgrade it (latest is 1.1.x) or drop the plugin.No action required if the pipeline stays green; just flagging the potential risk.
27-30
: All opentelemetry-api references are aligned to ^1.35.0
A repo-wide search of all.toml
and.cfg
manifests found no other occurrences ofopentelemetry-api
outside of^1.35.0
..github/workflows/release.yml (5)
4-5
: Indentation fix forworkflow_dispatch
is correct
The trigger is now properly nested under theon:
block, preventing the workflow-parser errors we were seeing.
8-9
: Runner label corrected toubuntu-latest
Swapping the invalidubuntu-latest-m
forubuntu-latest
unblocks the job from ever starting.
46-47
: Same runner-label fix propagated torelease-instrumentations
job
Good catch copying the change across jobs.
84-85
: Runner label fixed inrelease-sdk
job
Consistent with the other jobs.
119-120
: Runner label fixed intest-sdk-installation
job
All jobs will now schedule correctly.packages/opentelemetry-instrumentation-weaviate/pyproject.toml (1)
38-45
: Confirm plugin compatibility with pytest 8.3Moving test deps to
pytest 8.3.3
is fine, but some pytest plugins historically lag major releases. Make sure the upgradedpytest-recording
andvcrpy
versions you picked are indeed compatible with pytest 8 to avoid surprise import errors during CI.packages/traceloop-sdk/pyproject.toml (3)
76-78
: Validate flake8 / pytest plugin ecosystem after the bump
flake8 7.1.x
andpytest 8.3.x
occasionally break third-party plugins (e.g.flake8-bugbear
,pytest-sugar
). Since several plugins are transitively pulled in elsewhere in the repo, make sure the CI linters and test jobs still start up without version-resolution conflicts.
83-86
: Ensure test helper libs track the new pytest ABI
pytest-asyncio 0.24.0
is compatible with pytest ≥ 8.1, so the bump looks safe. Nevertheless, confirm that recorded cassettes (vcrpy
,pytest-recording
) still replay correctly under the new pytest core, as their internals hook into the collection phase.
28-31
: No version skew detected for opentelemetry-api/sdkThe scan of all other
pyproject.toml
files confirms every package already pins bothopentelemetry-api
andopentelemetry-sdk
to^1.35.0
. No constraints<1.35
remain.packages/opentelemetry-instrumentation-crewai/pyproject.toml (2)
34-40
: SDK present only in the test group – confirm runtime doesn’t need it.The runtime deps omit
opentelemetry-sdk
, yet the instrumentor sometimes callstrace.get_tracer_provider()
or similar, which implicitly relies on the SDK being on the path. If that’s the case you may want to addopentelemetry-sdk
as an optional extra to avoid surprising import errors in production.
21-26
: All sibling packages now align on OTEL API ≥1.35.0 – no internal pins below 1.35.0 remain
- Every pyproject.toml in this repo declares
opentelemetry-api = "^1.35.0"
- The bump in packages/opentelemetry-instrumentation-crewai/pyproject.toml is consistent across all instrumentation packages.
- Merging is safe for internal consumers. External users still locked to <1.35.0 will need to upgrade their OTEL API constraint before installing.
packages/opentelemetry-instrumentation-qdrant/pyproject.toml (2)
25-30
: Otel API compatibility verified – no action requiredRan a repository-wide search for
opentelemetry-api
in allpyproject.toml
files and confirmed every package now specifies:• opentelemetry-api = "^1.35.0"
No maximum-version bounds below 1.35 were found, and instrumentation/semantic-conventions dependencies remain unbounded above. All in-repo packages are therefore compatible with the API bump.
36-40
: pytest-sugar compatibility confirmed – no changes neededpytest-sugar’s PyPI metadata declares
pytest >=6.2.0
with no upper bound, so upgrading to pytest 8.3.3 poses no compatibility risk.packages/opentelemetry-instrumentation-sagemaker/pyproject.toml (3)
37-38
: 👍 SDK test dependency aligned with APIAdding
opentelemetry-sdk ^1.35.0
to the test group keeps runtime installs lean while allowing full e2e spans in tests—nice touch.
23-23
: Cross-package compatibility withopentelemetry-api
1.35.0 verified
All siblingpyproject.toml
files now accept^1.35.0
, so your lockfile and CI should continue to pass without pin conflicts.
34-35
: No deprecated pytest APIs detected in SageMaker testsI’ve scanned the SageMaker instrumentation tests and conftest for the patterns mentioned:
• packages/opentelemetry-instrumentation-sagemaker/tests/test_invocation.py
• packages/opentelemetry-instrumentation-sagemaker/tests/conftest.pyPatterns checked:
pytest.raises(..., match=...)
– none foundtmpdir
fixtures – none foundtmp_path
fixtures – none foundTests do not rely on the long-deprecated
match
behavior or tmpdir-based fixtures, so upgrading to pytest 8.3.3 should be safe.packages/opentelemetry-instrumentation-milvus/pyproject.toml (2)
39-44
: Keep SDK & API caret ranges alignedBoth API and SDK now sit at
^1.35.0
, good.
If you later loosen one of them (e.g.,>=1.35,<2
), keep the other in lock-step to prevent subtle incompatibilities between major versions.
25-31
: Verified: No runtimeopentelemetry-sdk
imports
A full search ofpackages/opentelemetry-instrumentation-milvus/opentelemetry/instrumentation/milvus
shows noopentelemetry.sdk
references in production code—only intests/conftest.py
. The SDK remains a test‐only dependency, so no changes topyproject.toml
are needed.packages/opentelemetry-instrumentation-openai-agents/pyproject.toml (3)
24-28
: Runtime vs test-only OpenTelemetry SDK mismatch
opentelemetry-sdk
is required only in[tool.poetry.group.test.dependencies]
, while the runtime dependency list contains onlyopentelemetry-api
.
If the instrumentor uses any SDK types at runtime (e.g.,TracerProvider
,BatchSpanProcessor
) importing the package will fail for end-users that install only the wheel.Action: either
- move
opentelemetry-sdk
to[tool.poetry.dependencies]
, or- gate all SDK imports behind
typing.TYPE_CHECKING
/ optional-import guard.Please double-check the source before publishing.
Also applies to: 42-42
23-23
: Re-evaluate minimum supported Python versionOpenTelemetry 1.35.0 officially dropped Python 3.8 support; the floor is now 3.9.
Your spec is already>=3.9,<4
, so nothing to change, but please ensure other packages in the mono-repo are aligned.
24-26
: Ignore version availability concern:0.50b0
is available on PyPI
Verification shows thatopentelemetry-instrumentation
has a released0.50b0
on PyPI, so the>=0.50b0
constraint is valid.
No changes required.Likely an incorrect or invalid review comment.
packages/opentelemetry-instrumentation-langchain/pyproject.toml (2)
25-31
: Dependency bump to ^1.35.0 looks goodThe API upgrade aligns with the rest of the repo and should be binary-compatible with earlier 1.x consumers.
48-49
: Noopentelemetry.sdk
imports in production code—no need to promote SDK to main dependenciesA ripgrep scan across all non-test Python files in
packages/opentelemetry-instrumentation-langchain
found zerofrom opentelemetry.sdk
orimport opentelemetry.sdk
statements. All SDK imports live in test code only, so keepingopentelemetry-sdk = "^1.35.0"
under the test group is correct.packages/opentelemetry-instrumentation-transformers/.python-version (1)
1-1
: Version file aligned – LGTM
.python-version
now matches the 3.10 floor declared inpyproject.toml
.
pytest = "^8.3.3" | ||
pytest-sugar = "1.0.0" | ||
vcrpy = "^6.0.1" | ||
pytest-recording = "^0.13.1" | ||
opentelemetry-sdk = "^1.27.0" | ||
pytest-asyncio = "^0.23.7" | ||
vcrpy = "^6.0.2" | ||
pytest-recording = "^0.13.2" | ||
opentelemetry-sdk = "^1.35.0" | ||
pytest-asyncio = "^0.24.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Watch out for breaking changes in pytest-asyncio 0.24
0.24 drops the long-standing event_loop
fixture unless pytest-asyncio>=0.23 --asyncio-mode=auto
is configured. If your tests still rely on that fixture, they'll explode. Either:
- add
--asyncio-mode=auto
inpytest.ini
, or - stay on
pytest-asyncio<0.24
.
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-watsonx/pyproject.toml around lines 27
to 32, the pytest-asyncio dependency is set to version 0.24.0, which removes the
event_loop fixture by default and may break tests relying on it. To fix this,
either downgrade pytest-asyncio to a version below 0.24 or configure pytest to
use the new asyncio mode by adding --asyncio-mode=auto in the pytest.ini file.
vcrpy = "^6.0.2" | ||
pytest-recording = "^0.13.2" | ||
pytest-asyncio = "^0.24.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Heads-up: pytest-asyncio
0.24 switches asyncio_mode=auto
by default
The new default may auto-enable the event-loop fixture in tests that weren’t written for it, causing “event loop is closed” or “Task attached to a different loop” errors.
If your suite suddenly flakes, pin back to 0.23.*
or set
[tool.pytest.ini_options]
asyncio_mode = "strict"
in the repo root to preserve old behaviour.
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-llamaindex/pyproject.toml around lines
38 to 40, the pytest-asyncio dependency is updated to version 0.24.0, which
changes the default asyncio_mode to "auto" and may cause test flakiness due to
event loop issues. To fix this, either pin pytest-asyncio back to version 0.23.*
or add a [tool.pytest.ini_options] section in the repo root configuration file
with asyncio_mode set to "strict" to maintain the previous behavior and avoid
event loop conflicts.
flake8 = "7.1.2" | ||
pytest = "^8.3.3" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
flake8==7.1.2
/ pytest ^8.3.3
might be unreleased – pin only to versions that exist.
As of July 2025 the latest PyPI artefacts are flake8 7.1.0
and pytest 8.2.x
. Attempting to install a non-existent patch version will break every CI job that relies on an empty cache.
-flake8 = "7.1.2"
-pytest = "^8.3.3"
+flake8 = "^7.1.0"
+pytest = "^8.2"
If the newer versions are expected to land soon, consider using a caret range without the patch component (^7.1
/ ^8.3
) so the lock-file can be resolved today.
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-anthropic/pyproject.toml at lines
34-35, the versions for flake8 and pytest are pinned to potentially unreleased
versions (flake8 7.1.2 and pytest ^8.3.3). Update these to only include versions
that currently exist on PyPI, such as flake8 7.1.0 and pytest 8.2.x, or use
caret ranges without patch versions (e.g., ^7.1 and ^8.3) to allow resolution
with existing releases and prevent CI failures.
pytest = "^8.3.3" | ||
pytest-sugar = "1.0.0" | ||
vcrpy = "^6.0.1" | ||
pytest-recording = "^0.13.1" | ||
pytest-asyncio = "^0.23.7" | ||
opentelemetry-sdk = "^1.27.0" | ||
vcrpy = "^6.0.2" | ||
pytest-recording = "^0.13.2" | ||
pytest-asyncio = "^0.24.0" | ||
opentelemetry-sdk = "^1.35.0" | ||
marqo = "^3.5.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Plugin compatibility: Pytest 8 + pytest-recording
/pytest-asyncio
pytest 8.*
dropped a few internal hooks; some plugins have not shipped full compatibility yet.
Known edge-cases:
• pytest-recording 0.13.2
still monkey-patches getfixturevalue
the old way – raises AttributeError
under Pytest 8.
• pytest-asyncio 0.24
switches the default loop policy; tests that relied on the legacy policy may hang or leak tasks.
Consider forcing the following until your suite is green:
-pytest = "^8.3.3"
+pytest = "~8.1" # last version your plugins are confirmed to support
or upgrade the plugins if compatible releases exist.
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-marqo/pyproject.toml around lines 39
to 45, the current pytest version 8.3.3 is incompatible with pytest-recording
0.13.2 and pytest-asyncio 0.24.0 due to dropped internal hooks and changed loop
policies. To fix this, either downgrade pytest to a 7.x version compatible with
these plugins or upgrade pytest-recording and pytest-asyncio to versions that
fully support pytest 8, ensuring your test suite runs without AttributeErrors or
hanging tasks.
[tool.poetry.dependencies] | ||
python = ">=3.9,<4" | ||
opentelemetry-api = "^1.28.0" | ||
opentelemetry-api = "^1.35.0" | ||
opentelemetry-instrumentation = ">=0.50b0" | ||
opentelemetry-semantic-conventions = ">=0.50b0" | ||
opentelemetry-semantic-conventions-ai = "0.4.11" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Verify cross-package compatibility of the OTel 1.35 bump
Raising opentelemetry-api
(and downstream opentelemetry-sdk
) to ^1.35.0
is good for consistency, but please double-check that the still-beta opentelemetry-instrumentation
/ opentelemetry-semantic-conventions
0.50b0
constraints resolve cleanly to versions that also require >=1.35
. A mismatch here will surface only at lock/CI time.
🏁 Script executed:
#!/usr/bin/env bash
# Ensure the beta packages used here explicitly allow or require OTel 1.35+
for pkg in opentelemetry-instrumentation opentelemetry-semantic-conventions; do
curl -s "https://pypi.org/pypi/${pkg}/0.50b0/json" |
jq -r --arg pkg "$pkg" '
"\($pkg):",
(.info.requires_dist // [])[] | select(test("opentelemetry-api"))
'
done
Length of output: 654
Fix incompatible OTel API bump in pyproject.toml
The beta dependencies you’ve chosen (0.50b0) do not allow OTel API 1.35:
- opentelemetry-instrumentation 0.50b0 requires
opentelemetry-api~=1.4
(i.e.<1.5
) - opentelemetry-semantic-conventions 0.50b0 pins
opentelemetry-api==1.29.0
These conflict with your new constraint opentelemetry-api = "^1.35.0"
. Please update one of the following:
- Upgrade to newer beta versions of both packages that support
>=1.35
(e.g. 0.5Xb0+ once released), or - Roll back the OTel API bump to a version compatible with 0.50b0.
File to update:
• packages/opentelemetry-instrumentation-weaviate/pyproject.toml (lines 25–31)
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-weaviate/pyproject.toml around lines
25 to 31, the current version constraints for opentelemetry-instrumentation and
opentelemetry-semantic-conventions (0.50b0) are incompatible with the
opentelemetry-api version 1.35. To fix this, either upgrade
opentelemetry-instrumentation and opentelemetry-semantic-conventions to newer
beta versions that support opentelemetry-api 1.35 or roll back the
opentelemetry-api version to one compatible with 0.50b0, such as 1.4x or 1.29.0,
ensuring all dependencies align without conflicts.
autopep8 = "^2.3.1" | ||
flake8 = "7.1.2" | ||
pytest = "^8.3.3" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Unify caret usage and verify Flake8-7 plugin compatibility
flake8
is now pinned to an exact version ("7.1.2"
) whereas the adjacent entries use caret (^
) ranges. Mixing specifiers makes it harder to keep versions aligned across packages. Consider changing to a caret range for consistency:
-flake8 = "7.1.2"
+flake8 = "^7.1.2"
- Flake8 7 introduced several breaking changes (e.g., removal of deprecated
ast
APIs). Please double-check that all Flake8 plugins used anywhere in this repo (e.g.,flake8-bugbear
,flake8-docstrings
, etc.) are ≥ 7-compatible; otherwise the CI lint step may fail.
You can quickly scan for incompatible plugins with:
🏁 Script executed:
#!/bin/bash
# List flake8 plugins and their versions
python - <<'PY'
import pkg_resources, sys, json, itertools
plugins = [
(dist.project_name, dist.version)
for dist in pkg_resources.working_set
if any(ep.group == 'flake8.extension' for ep in dist.get_entry_map().values())
]
print(json.dumps(plugins, indent=2))
PY
Length of output: 217
🏁 Script executed:
#!/bin/bash
# 1. List Flake8 plugins in the current environment
python - <<'PY'
import pkg_resources, json
plugins = [
(ep.dist.project_name, ep.dist.version)
for ep in pkg_resources.iter_entry_points('flake8.extension')
]
print("Environment Flake8 plugins:", json.dumps(plugins, indent=2))
PY
# 2. Scan for declared Flake8 plugins across all pyproject.toml files
rg -Hn 'flake8-[a-z]+' --glob 'pyproject.toml'
Length of output: 228
Unify caret usage for Flake8 version
We’ve scanned all pyproject.toml
files and found no external Flake8 plugins declared in this repo, so upgrading within the ^7.x
range introduces no compatibility risk. Please update the version spec for consistency:
--- packages/opentelemetry-semantic-conventions-ai/pyproject.toml
@@ Lines 28-30
-autopep8 = "^2.3.1"
-flake8 = "7.1.2"
-pytest = "^8.3.3"
+autopep8 = "^2.3.1"
+flake8 = "^7.1.2"
+pytest = "^8.3.3"
🤖 Prompt for AI Agents
In packages/opentelemetry-semantic-conventions-ai/pyproject.toml around lines 28
to 30, the Flake8 version specifier uses an exact version "7.1.2" while other
dependencies use caret (^) notation. Change the Flake8 version specifier to
"^7.1.2" to unify the version format and maintain consistency across
dependencies.
autopep8 = "^2.3.1" | ||
flake8 = "7.1.2" | ||
pytest = "^8.3.3" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent version spec & potential pycodestyle
clash
flake8
is pinned without a caret ("7.1.2"
) while the neighbouring specs use^
. Prefer a consistent style so dependabot can bump minor/patch versions.autopep8 2.3.1
depends onpycodestyle>=2.11,<2.12
;flake8 7.1.x
requirespycodestyle==2.12.*
. These constraints cannot co-install and will make the
dev environment unsatisfiable.
Suggested quick fix:
- autopep8 = "^2.3.1"
- flake8 = "7.1.2"
+ autopep8 = "^2.3.1" # waits for upstream to adopt pycodestyle 2.12
+ flake8 = "^7.1.2"
or temporarily pin flake8<7
until autopep8 catches up.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
autopep8 = "^2.3.1" | |
flake8 = "7.1.2" | |
pytest = "^8.3.3" | |
autopep8 = "^2.3.1" # waits for upstream to adopt pycodestyle 2.12 | |
flake8 = "^7.1.2" | |
pytest = "^8.3.3" |
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-openai-agents/pyproject.toml around
lines 30 to 32, the version specifiers for flake8 and autopep8 are inconsistent
and cause a pycodestyle version conflict. Change the flake8 version specifier to
use a caret (^) for consistency, and either downgrade flake8 to a version below
7 to avoid the pycodestyle conflict or update autopep8 to a compatible version.
This will ensure dependabot can manage versions properly and the dev environment
remains satisfiable.
opentelemetry-api = "^1.35.0" | ||
opentelemetry-instrumentation = ">=0.50b0" | ||
opentelemetry-semantic-conventions = ">=0.50b0" | ||
opentelemetry-semantic-conventions-ai = "0.4.11" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-verify OT API ↔ Instrumentation compat matrix
opentelemetry-api = "^1.35.0"
is compatible only with beta ≥ 0.55b0 of opentelemetry-instrumentation
(per OT release notes).
The file still allows >=0.50b0
, which would let an older, incompatible beta slip through a downstream resolver.
-opentelemetry-instrumentation = ">=0.50b0"
+opentelemetry-instrumentation = ">=0.55b0"
Locking to the first compatible beta prevents subtle runtime ABI mismatches.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
opentelemetry-api = "^1.35.0" | |
opentelemetry-instrumentation = ">=0.50b0" | |
opentelemetry-semantic-conventions = ">=0.50b0" | |
opentelemetry-semantic-conventions-ai = "0.4.11" | |
opentelemetry-api = "^1.35.0" | |
-opentelemetry-instrumentation = ">=0.50b0" | |
+opentelemetry-instrumentation = ">=0.55b0" | |
opentelemetry-semantic-conventions = ">=0.50b0" | |
opentelemetry-semantic-conventions-ai = "0.4.11" |
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-transformers/pyproject.toml around
lines 27 to 30, the version constraint for opentelemetry-instrumentation is set
to ">=0.50b0" which allows incompatible older beta versions with
opentelemetry-api "^1.35.0". Update the version constraint for
opentelemetry-instrumentation to ">=0.55b0" to ensure compatibility and prevent
runtime ABI mismatches.
python = ">=3.10,<4" | ||
opentelemetry-api = "^1.35.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Ensure accompanying metadata & CI are upgraded in lock-step with the new Python floor
python = ">=3.10,<4"
bumps the minimum interpreter from 3.9 → 3.10.
Double-check that:
- Trove classifiers in
pyproject.toml
(orsetup.cfg
if present elsewhere) now listProgramming Language :: Python :: 3.10
and have removed3.9
. - CI matrices / Docker images and the global
.python-version
at repo root are also aligned to 3.10 to avoid silent test skips.
Failing to update these ancillary locations causes environment drift where 3.9 still gets exercised (and will install the package despite the new floor).
🏁 Script executed:
#!/bin/bash
set -e
# Check for trove classifiers in pyproject.toml
echo "Searching for 'classifiers' block in pyproject.toml..."
rg -n 'classifiers' pyproject.toml -A5 || echo "No classifiers block found in pyproject.toml"
# Check for Programming Language classifiers in pyproject.toml and setup.cfg
echo "Looking for Python version classifiers..."
rg -n 'Programming Language :: Python' pyproject.toml setup.cfg || echo "No Python classifiers found"
# Inspect GitHub Actions workflows for python-version matrix
echo "Scanning GitHub workflows for python-version entries..."
rg -n 'python-version' -R .github/workflows || echo "No python-version entries in workflows"
# Check for .python-version file at repo root
if [ -f .python-version ]; then
echo ".python-version file exists with content:"
cat .python-version
else
echo "No .python-version file found"
fi
Length of output: 1410
🏁 Script executed:
#!/bin/bash
set -e
# Path to the target pyproject.toml
FILE="packages/opentelemetry-instrumentation-transformers/pyproject.toml"
# Verify classifiers in the package's pyproject.toml
if [ -f "$FILE" ]; then
echo "Inspecting $FILE for trove classifiers…"
rg -n 'classifiers' "$FILE" -A5 || echo " → No 'classifiers' entry found in $FILE"
echo
echo "Looking for Programming Language classifiers in $FILE…"
rg -n 'Programming Language :: Python' "$FILE" -A5 || echo " → No Python version classifiers in $FILE"
else
echo "ERROR: $FILE not found."
fi
# Check for setup.cfg elsewhere in the repo
echo
echo "Searching for setup.cfg in the repo…"
mapfile -t CFG_FILES < <(fd --hidden --max-depth 3 setup.cfg || true)
if [ ${#CFG_FILES[@]} -gt 0 ]; then
for f in "${CFG_FILES[@]}"; do
echo "Inspecting $f for classifiers…"
rg -n 'classifiers' "$f" -A5 || echo " → No 'classifiers' block in $f"
echo "Inspecting $f for Python classifiers…"
rg -n 'Programming Language :: Python' "$f" -A5 || echo " → No Python version classifiers in $f"
echo
done
else
echo "No setup.cfg files found."
fi
# Inspect GitHub Actions for python-version entries
echo
echo "Scanning .github/workflows for python-version matrix entries…"
rg -n 'python-version' .github/workflows || echo " → No 'python-version' keys found in workflows"
# Check for a .python-version file at repo root
echo
if [ -f .python-version ]; then
echo ".python-version file exists, contents:"
sed -n '1,10p' .python-version
else
echo "No .python-version file found at repo root."
fi
Length of output: 1526
Align metadata & CI with Python ≥3.10
We’ve raised the interpreter floor to >=3.10,<4
in packages/opentelemetry-instrumentation-transformers/pyproject.toml, but the supporting metadata and CI haven’t been updated:
• No trove classifiers
found in packages/opentelemetry-instrumentation-transformers/pyproject.toml (or in any setup.cfg) – add
Programming Language :: Python :: 3.10
and remove any 3.9 entries.
• No python-version
entries in .github/workflows – ensure your test matrix includes 3.10 (and drops 3.9).
• No .python-version
file at the repo root – update it to a 3.10.x value so local envs stay in sync.
Please add or update these to avoid silent test skips on older interpreters.
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-transformers/pyproject.toml around
lines 26 to 27, update the metadata and CI to align with the Python version
floor of >=3.10,<4. Add the trove classifier "Programming Language :: Python ::
3.10" and remove any references to Python 3.9 in pyproject.toml or setup.cfg.
Update the GitHub Actions workflow files to include Python 3.10 in the test
matrix and remove Python 3.9. Also, add or update the .python-version file at
the repo root to specify a 3.10.x version to keep local environments consistent.
@pytest.mark.skip(reason="Tests disabled") | ||
def test_tranformers_pipeline( | ||
instrument_legacy, span_exporter, log_exporter, transformers_pipeline |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Blanket skipping all tests slashes coverage & may hide regressions
Disabling the entire suite (@pytest.mark.skip
) eliminates the only runtime validation for this package. If the goal is to ease CI disk/CPU pressure:
- Skip conditionally based on an env-var or optional dependency presence instead of unconditionally.
- Mark as
xfail
with a TODO and a target issue link, so failures still surface when the underlying problem is resolved.
Minimal adjustment:
-@pytest.mark.skip(reason="Tests disabled")
+import os
+
+SKIP_TRANSFORMERS = os.getenv("OTEL_SKIP_TRANSFORMERS_TESTS") == "1"
+
+@pytest.mark.skipif(SKIP_TRANSFORMERS, reason="Disabled in CI – set OTEL_SKIP_TRANSFORMERS_TESTS=0 to enable")
Apply the same pattern to the other two decorators.
Also applies to: 36-37, 65-66
🤖 Prompt for AI Agents
In packages/opentelemetry-instrumentation-transformers/tests/test_pipeline.py
around lines 11 to 13, the test function is unconditionally skipped using
@pytest.mark.skip, which disables all tests and hides regressions. Replace the
unconditional skip with a conditional skip based on an environment variable or
the presence of optional dependencies, or mark the test as xfail with a TODO and
issue link to allow failures to surface. Apply the same conditional skipping or
xfail pattern to the other decorators on lines 36-37 and 65-66 as well.
Important
This PR reduces disk space usage and aligns dependencies by updating GitHub Actions workflows and upgrading dependencies across multiple
pyproject.toml
files..github/workflows/release.yml
to useubuntu-latest
instead ofubuntu-latest-m
for all jobs.release.yml
.opentelemetry-api
to^1.35.0
in multiplepyproject.toml
files.opentelemetry-sdk
to^1.35.0
in multiplepyproject.toml
files.autopep8
to^2.3.1
,flake8
to7.1.2
, andpytest
to^8.3.3
in multiplepyproject.toml
files.vcrpy
to^6.0.2
andpytest-recording
to^0.13.2
in multiplepyproject.toml
files.pytest-asyncio
to^0.24.0
in multiplepyproject.toml
files.>=3.10,<4
inpackages/opentelemetry-instrumentation-transformers/.python-version
andpyproject.toml
.@pytest.mark.skip(reason="Tests disabled")
to all test functions intest_pipeline.py
inopentelemetry-instrumentation-transformers
.torch
fromsample-app/pyproject.toml
dependencies.This description was created by
for a2afb9b. You can customize this summary. It will automatically update as commits are pushed.
Summary by CodeRabbit
Chores
Tests