open-telemetry / open-telemetry/opentelemetry-python-genai
Bootstrap opentelemetry-python-genai repo
@MikeGoldsmith is already working on this.
Since May 14, 2026.
- Dominant language
- Python
- Stars
- 39
- Forks
- 63
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 175
Description
Tracking issue for infrastructure and CI setup needed when the opentelemetry-python-genai repo is created. This covers migrating the GenAI instrumentation packages out of opentelemetry-python-contrib into their own repository.
Packages to migrate
opentelemetry-instrumentation-anthropicopentelemetry-instrumentation-claude-agent-sdkopentelemetry-instrumentation-google-genaiopentelemetry-instrumentation-langchainopentelemetry-instrumentation-openai-agents-v2opentelemetry-instrumentation-openai-v2opentelemetry-instrumentation-weaviateopentelemetry-instrumentation-vertexai(deprecation only — not carried over to this repo)opentelemetry-util-genai
Migration process
All instrumentation source except vertexai is already present in this repo (carried over during the initial bootstrap commits). What's left is the per-package wind-down on the contrib side. Steps, in order, per instrumentation:
- PR on contrib: add a migration notice to the package README pointing at the new package here (or, for
vertexai, a deprecation notice with no replacement). - Decide and record the new PyPI package name (required before step 3). Packages here will be published under a different PyPI name from the contrib originals.
- Release the final contrib version with a deprecation notice and a pointer to the new PyPI name.
- PR on contrib: remove the package directory (and references in CODEOWNERS, lint workflows, etc.).
opentelemetry-util-genai migrates last — contrib instrumentations depend on it during the transition window, so it can't be removed from contrib until every instrumentation has been removed.
Migration status
opentelemetry-instrumentation-anthropic
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-claude-agent-sdk
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-google-genai
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-langchain
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-openai-agents-v2
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-openai-v2
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-weaviate
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
opentelemetry-instrumentation-vertexai (deprecation only — not migrated)
- Contrib deprecation notice added
- Final contrib release
- Removed from contrib
opentelemetry-util-genai (must be last)
- Copied here
- Contrib notice added
- New PyPI name decided
- Final contrib release
- Removed from contrib
Repo infrastructure
Licensing & compliance
-
LICENSEfile (Apache-2.0) - SPDX license headers (
# SPDX-License-Identifier: Apache-2.0) on all Python files - CI check for SPDX headers (port
scripts/check_license_header.pyfrom contrib)
CI / GitHub Actions
- Lint workflow (ruff, mypy, SPDX check)
- Test workflow per package (consider generating from templates like contrib does with
tox -e generate-workflows) - CodeQL / security scanning
- FOSSA or equivalent license compliance check
- OSSF Scorecard workflow
- Link checker workflow
- Renovate config for dependency updates
Changelog management (towncrier)
- Towncrier config in root
pyproject.toml - Changelog fragment directories (per-package
.changelog/; no root coordinated config) - Changelog CI check — require fragment on PRs to
main, allow "Skip Changelog" label bypass - Changelog preview step in CI (
towncrier build --draft) - Pin towncrier version
- Changelog Jinja2 template (port from contrib or simplify)
PR automation
- GitHub Action to add PRs to a project board on
opened/reopened/ready_for_review(portadd-to-project.yml)- Needs GitHub App (otelbot) or token with project write access
- Filter out draft PRs
- PR labeler (auto-label by package path)
- Component owners auto-assignment (port
component-owners.ymlworkflow + config) - PR template
GitHub board & dashboard
- Create new GitHub Project board for the repo
- Automate adding issues and PRs to the board
- Dashboard views: open PRs by package, issues by label, stale items
Labels
bug,enhancement,documentationSkip Changelogprepare-releaseStale- Add others (e.g., per-package labels,
dependencies) as needed later
Other
-
CODEOWNERSfile -
AGENTS.md(port from contribinstrumentation-genai/AGENTS.mdand root) - Copilot / Claude review instructions (port
.github/instructions/from contrib) - Issue templates (bug report, feature request)
-
CONTRIBUTING.mdwith GenAI-specific guidelines -
RELEASING.mdwith release process - Stale issue/PR bot
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.