Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug] opentelemetry-api 1.45 removed `_ExtendedAttributes`, and CI can't resolve 1.45 to notice

Cerrado
#2,029 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@tconley1428 ya está trabajando en esto.

Desde el 28/10/2026.

  • #2035 de @tconley1428 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
56/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug sdk-python
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.py imports it under TYPE_CHECKING for ReplaySafeLoggerProvider.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.py imports 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.

Lenguaje dominante
Python
Estrellas
1.2k
Forks
276
Merge medio
2 d 2 h
PR fusionados (30 d)
87

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de temporalio/sdk-python

Todos los issues de temporalio/sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.