Skip to content

fix(litellm): register instrumentation in commitizen version files - #4408

Merged
doronkopit5 merged 1 commit into
mainfrom
dk/fix-litellm-cz
Aug 10, 2026
Merged

fix(litellm): register instrumentation in commitizen version files#4408
doronkopit5 merged 1 commit into
mainfrom
dk/fix-litellm-cz

Conversation

@doronkopit5

@doronkopit5 doronkopit5 commented Aug 10, 2026

Copy link
Copy Markdown
Member

Problem

packages/opentelemetry-instrumentation-litellm was added in #4322 without registering it in version_files in .cz.toml, so commitizen never bumped it and it stayed at 0.1.0 while the rest of the workspace moved to 0.62.2. Its project.json is tagged instrumentation, so release-instrumentations kept building and publishing it — re-uploading the identical 0.1.0 artifacts on every release.

On 0.62.2 (run 31307495252) PyPI finally rejected the duplicate:

Uploading opentelemetry_instrumentation_litellm-0.1.0-py3-none-any.whl
400 File already exists ('opentelemetry_instrumentation_litellm-0.1.0-py3-none-any.whl', ...)
ERROR HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/

pypa/gh-action-pypi-publish uploads alphabetically and runs without skip-existing, so the step aborted at litellm and took the release with it:

  • Published 0.62.2: agnolangchain (alphabetically before litellm)
  • Stranded on 0.62.1: llamaindex, marqo, mcp, milvus, mistralai, ollama, openai, openai-agents, pinecone, qdrant, replicate, sagemaker, together, transformers, vertexai, voyageai, watsonx, weaviate, writer
  • traceloop-sdk: stranded on 0.62.1release-sdk has needs: release-instrumentations, so it never ran

Re-running didn't help: attempt 1 had already pushed tag v0.62.2 (fatal: tag 'v0.62.2' already exists), and the later manual runs died on [NO_COMMITS_FOUND] No new commits found. The release can't be retried without a new commit on main — which this PR provides.

Fix

  • Register both litellm version files in .cz.toml version_files, using the same :^version / bare-version.py pattern as every other package.
  • Align pyproject.toml and version.py to the current commitizen version 0.62.2, so the next cz bump carries litellm to 0.62.3 in lockstep with everything else.

uv.lock is deliberately untouched — the self-version there is stale repo-wide (langchain's says 0.61.0 while it publishes 0.62.2) and plays no part in the release, since scripts/build-release.sh builds from pyproject.toml.

Verification

$ uvx --from commitizen cz bump --dry-run --yes --check-consistency
bump: version 0.62.2 → 0.62.3
tag to create: v0.62.3
increment detected: PATCH

The consistency check now passes with litellm included. Also confirmed:

  • No other opentelemetry-instrumentation-* package is missing from .cz.toml (litellm was the only one).
  • scripts/build-release.sh now produces opentelemetry_instrumentation_litellm-0.62.2{.tar.gz,-py3-none-any.whl} instead of 0.1.0 — clears the PyPI filename collision.
  • ruff check . clean; pytest tests/ → 30 passed, 1 skipped.

Follow-up (not in this PR)

The workflow is still fragile in two ways worth a separate change: pypa/gh-action-pypi-publish has no skip-existing, so any single already-published artifact aborts the whole publish mid-alphabet and silently skips the SDK; and nothing in CI verifies that a new tag:instrumentation package is registered in .cz.toml, so the next package added this way reproduces this exact failure.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the LiteLLM instrumentation package to version 0.62.2.
    • Synchronized package release metadata across the project.
    • Improved release version tracking for future package updates.

The litellm instrumentation package was added without registering it in
`version_files` in .cz.toml, so commitizen never bumped it and it stayed
at 0.1.0 while the rest of the monorepo moved to 0.62.2. Because the
package is tagged `instrumentation`, the release workflow still built and
published it, re-uploading the identical 0.1.0 artifacts every release.

On 0.62.2 PyPI rejected the duplicate with "400 File already exists",
which aborted the publish step mid-alphabet: every instrumentation from
llamaindex onward stayed on 0.62.1, and release-sdk was skipped entirely
so traceloop-sdk was never published either.

Register both litellm version files and align the package to 0.62.2 so it
bumps in lockstep with the rest of the workspace from now on.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 41f2e906-5d11-457f-aef2-b438b27f9477

📥 Commits

Reviewing files that changed from the base of the PR and between c2f3f45 and 46c9787.

📒 Files selected for processing (3)
  • .cz.toml
  • packages/opentelemetry-instrumentation-litellm/opentelemetry/instrumentation/litellm/version.py
  • packages/opentelemetry-instrumentation-litellm/pyproject.toml

📝 Walkthrough

Walkthrough

The Litellm instrumentation package version changes from 0.1.0 to 0.62.2. Commitizen now tracks the package metadata and runtime version files for automated version updates.

Changes

Litellm version synchronization

Layer / File(s) Summary
Synchronize Litellm version files
.cz.toml, packages/opentelemetry-instrumentation-litellm/...
The package version changes to 0.62.2 in pyproject.toml and version.py. Commitizen tracks both version files.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: registering the LiteLLM instrumentation version files with Commitizen.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dk/fix-litellm-cz

Comment @coderabbitai help to get the list of available commands.

@doronkopit5
doronkopit5 marked this pull request as ready for review August 10, 2026 08:04
@doronkopit5
doronkopit5 merged commit 9965d24 into main Aug 10, 2026
12 checks passed
@doronkopit5
doronkopit5 deleted the dk/fix-litellm-cz branch August 10, 2026 08:11
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.

2 participants