From fdbd084354eef9feecabfd43383f15d56f86f4bf Mon Sep 17 00:00:00 2001 From: yucheng Date: Thu, 24 Sep 2026 17:27:14 +0000 Subject: [PATCH] build(docker): keep the pip image's langfuse and otel pins on the v2 line its litellm 1.83.0 wheel expects The image validates the published PyPI artifact, whose langfuse callback still reads langfuse.version, so the 4.15.2 pin broke that callback. The pins move together with the next LITELLM_VERSION bump. Also rewords the trace_version precedence test docstring: v2 carried two version fields, v4 has one per span Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- docker/build_from_pip/Dockerfile.build_from_pip | 8 ++++---- tests/test_litellm/integrations/test_langfuse.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/build_from_pip/Dockerfile.build_from_pip b/docker/build_from_pip/Dockerfile.build_from_pip index 7aebe9c08a8..a5733f0e1a0 100644 --- a/docker/build_from_pip/Dockerfile.build_from_pip +++ b/docker/build_from_pip/Dockerfile.build_from_pip @@ -32,10 +32,10 @@ RUN uv venv --python python && \ "anthropic[vertex]==0.84.0" \ "grpcio==1.78.0" \ "prometheus-client==0.20.0" \ - "langfuse==4.15.2" \ - "opentelemetry-api==1.33.1" \ - "opentelemetry-sdk==1.33.1" \ - "opentelemetry-exporter-otlp==1.33.1" \ + "langfuse==2.59.7" \ + "opentelemetry-api==1.28.0" \ + "opentelemetry-sdk==1.28.0" \ + "opentelemetry-exporter-otlp==1.28.0" \ "ddtrace==4.11.0" \ "sentry-sdk==2.21.0" \ "mangum==0.17.0" \ diff --git a/tests/test_litellm/integrations/test_langfuse.py b/tests/test_litellm/integrations/test_langfuse.py index 2d73f0df60c..3e6e130cac5 100644 --- a/tests/test_litellm/integrations/test_langfuse.py +++ b/tests/test_litellm/integrations/test_langfuse.py @@ -2162,7 +2162,8 @@ def test_continued_trace_keeps_the_generation_version(): def test_new_trace_version_takes_precedence_over_the_generation_version(): - """v4 has one ``version`` for the trace and its root observation; ``trace_version`` wins as in v2.""" + """v4 has one ``langfuse.version`` per span, so unlike v2's separate trace and generation fields only one + value can survive; ``trace_version`` wins, matching the v4 SDK, whose propagated attributes overwrite a span's own.""" rig = _steering_logger() captured_trace_params, _, span = _emit(rig, metadata={"trace_version": "trace-1", "version": "gen-7"})