Skip to content

Conversation

devin-ai-integration[bot]
Copy link
Contributor

Fix opentelemetry protobuf dependency conflict with Google Cloud SDKs

Summary

Resolves issue #3413 by downgrading OpenTelemetry requirements from >=1.30.0 to >=1.27.0,<1.28.0. This fixes a dependency conflict where OpenTelemetry 1.30.0+ requires protobuf>=5.0, but Google Cloud SDKs require protobuf<5.0.

The solution constrains OpenTelemetry to version 1.27.x which uses protobuf<5.0,>=3.19, allowing both CrewAI and Google Cloud SDKs to coexist. After the change, protobuf resolves to version 4.25.8 which satisfies both requirements.

Changes:

  • Updated pyproject.toml to constrain opentelemetry packages to >=1.27.0,<1.28.0
  • Regenerated uv.lock with compatible dependency resolution
  • Added comprehensive dependency compatibility tests

Review & Testing Checklist for Human

This is a YELLOW risk change - dependency downgrades require careful validation:

  • Test end-to-end telemetry functionality - Verify that CrewAI's telemetry features (tracing, spans, OTLP exports) work correctly with OpenTelemetry 1.27.x in a real application
  • Verify Google Cloud SDK compatibility - Install and test actual Google Cloud SDKs (e.g., google-cloud-storage, google-cloud-bigquery) alongside CrewAI to confirm the protobuf conflict is resolved
  • Run full test suite - The pytest environment had plugin conflicts preventing full test execution; run uv run pytest tests -v to ensure no regressions

Notes

  • OpenTelemetry APIs used by CrewAI (trace, baggage, OTLP exporter) are stable between 1.27.x and 1.30.x, but the downgrade should be validated
  • Version constraint <1.28.0 may be overly restrictive - consider if 1.28.x/1.29.x could be allowed in future updates
  • Created test script test_opentelemetry_fix.py successfully verified the fix resolves protobuf to 4.25.8

Requested by: João ([email protected])
Devin session: https://app.devin.ai/sessions/18608f05b924444298bfb15d24d3d1c0

…loud SDKs

- Downgrade opentelemetry requirements from >=1.30.0 to >=1.27.0,<1.28.0
- This resolves protobuf version conflict where opentelemetry 1.30.0+ requires protobuf>=5.0
  but Google Cloud SDKs require protobuf<5.0
- Now uses protobuf 4.25.8 which satisfies both requirements
- Add comprehensive dependency compatibility tests
- Fixes issue #3413

Co-Authored-By: João <[email protected]>
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

- Remove unused imports: pathlib.Path, opentelemetry modules
- Remove unused variable assignment for context
- All ruff checks now pass locally

Co-Authored-By: João <[email protected]>
Copy link
Contributor Author

Closing due to inactivity for more than 7 days. Configure here.

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.

0 participants