[Bug] opentelemetry-api 1.45 removed `_ExtendedAttributes`, and CI can't resolve 1.45 to notice
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 56/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- python
- Domaine
- developer-experience, testing
Piste de recherche
Read temporalio/contrib/opentelemetry/_logger_provider.py and tests/contrib/opentelemetry/test_logger_provider.py, then check how the dependency lock and test-latest-deps resolve OpenTelemetry alongside google-adk. Confirm the typing and test collection failures against opentelemetry-api 1.45. Decide how to cover the newer API despite the shared dependency cap; done when the provider checks and tests work with 1.45 and CI can detect this compatibility gap.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What are you really trying to do?
Use temporalio.contrib.opentelemetry with opentelemetry-api 1.45, which the opentelemetry extra allows (>=1.26,<2).
Describe the bug
opentelemetry-api 1.45.0 removed the private alias opentelemetry.util.types._ExtendedAttributes. LoggerProvider.get_logger now annotates attributes as Attributes.
temporalio/contrib/opentelemetry/_logger_provider.pyimports it underTYPE_CHECKINGforReplaySafeLoggerProvider.get_logger. Importing the module still works, but pyright, basedpyright and mypy all report the import on 1.45.tests/contrib/opentelemetry/test_logger_provider.pyimports it at runtime, so the module fails to import on 1.45 and none of its tests run.
CI doesn't see this. google-adk>=2.8.0 requires opentelemetry-sdk>=1.39,<=1.42.1, and the project's lock resolves every extra together, so opentelemetry stays at 1.42.1 everywhere. That includes test-latest-deps, which resolved and installed opentelemetry-api==1.42.1 on the October 27 run. test_wrapper_abc_drift.py is meant to catch new ABC methods there, but it can't while that cap holds.
The runtime break from the same release, the new abstract Logger.enabled method, is a separate PR I'm opening alongside this issue.
Minimal Reproduction
On main (64b7005):
$ uv lock --dry-run -P opentelemetry-api==1.45.1 -P opentelemetry-sdk==1.45.1
× No solution found when resolving dependencies ...
╰─▶ Because google-adk>=2.8.0 depends on opentelemetry-sdk>=1.39,<=1.42.1 ...
With only opentelemetry-api installed, 1.44.0 imports the alias and 1.45.1 doesn't:
$ pip install opentelemetry-api==1.45.1
$ python -c "from opentelemetry.util.types import _ExtendedAttributes"
ImportError: cannot import name '_ExtendedAttributes' from 'opentelemetry.util.types'
test_logger_provider.py runs that import at module level, so on 1.45 it fails at collection. I'd expect it to collect and run, as it does with 1.42.1.
Environment/Versions
- OS and processor: macOS, Apple Silicon
- Temporal Version: temporalio 1.34.0 and
main(64b7005), Python 3.12, opentelemetry-api and opentelemetry-sdk 1.45.1 - Are you using Docker or Kubernetes or building Temporal from source? Neither
Additional context
Typing attributes as Any in the override and in the test's provider checks against both the older _ExtendedAttributes signature and the 1.45 Attributes one, at the cost of the precise type. While the shared resolution stays capped, an isolated check against the latest opentelemetry could cover the gap the drift test can't see. I can send a PR for the annotation once you pick a direction, or follow a different one if you'd rather keep a precise type.
- Langage dominant
- Python
- Étoiles
- 1.2k
- Forks
- 276
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 85
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de temporalio/sdk-python
-
Cloud CI Skips Nexus TestsPeut-être à nouveau libre @tconley1428 l’a pris il y a 79 jours, et aucune pull request n’est ouverte. Ouverte
temporalio/sdk-python#1704 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Windows ARM64 wheel supportOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
temporalio/sdk-python#1592 · 8 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
temporalio/sdk-python#1578 · 2 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] Headers should always run through external storagePeut-être à nouveau libre @jmaeagle99 l’a pris il y a 115 jours, et aucune pull request n’est ouverte. Ouvertebug
temporalio/sdk-python#1395 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
[python] Support conflict token retry loop for schedule updatesPeut-être à nouveau libre @musi22 l’a pris il y a 13 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
temporalio/sdk-python#1367 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de temporalio/sdk-python
Issues similaires
-
Skill submission: negative-test-first (testing discipline; PR creation is collaborator-only)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
ComposioHQ/awesome-claude-skills#2398 ·
Les mainteneurs répondent en général sous 2 jours
-
bug converter
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
grafana/sigma-rule-deployment#435 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
datamodel-code-generator/datamodel-code-generator#5589 ·
Les mainteneurs répondent en général sous 1 jour
-
Shell: serve the home app's Cookie Policy on a hard reloadPeut-être pris @2001anshkaushik l’a pris aujourd’hui. Ouvertefeature module:ai
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
rocketride-org/rocketride-server#2899 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
GEFSv12
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100