diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 66a3712c3..9cb8446ff 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -24,6 +24,7 @@ jobs: otel_contrib_version: ${{ steps.get_versions.outputs.otel_contrib_version }} aws_sdk_ext_version: ${{ steps.get_versions.outputs.opentelemetry_sdk_extension_aws_version }} aws_xray_prop_version: ${{ steps.get_versions.outputs.opentelemetry_propagator_aws_xray_version }} + openai_agents_v2_version: ${{ steps.get_versions.outputs.opentelemetry_instrumentation_openai_agents_v2_version }} breaking_changes_info: ${{ steps.breaking_changes.outputs.breaking_changes_info }} steps: @@ -75,6 +76,7 @@ jobs: OTEL_CONTRIB_VERSION: ${{ steps.get_versions.outputs.otel_contrib_version }} OPENTELEMETRY_SDK_EXTENSION_AWS_VERSION: ${{ steps.get_versions.outputs.opentelemetry_sdk_extension_aws_version }} OPENTELEMETRY_PROPAGATOR_AWS_XRAY_VERSION: ${{ steps.get_versions.outputs.opentelemetry_propagator_aws_xray_version }} + OPENTELEMETRY_INSTRUMENTATION_OPENAI_AGENTS_V2_VERSION: ${{ steps.get_versions.outputs.opentelemetry_instrumentation_openai_agents_v2_version }} run: python scripts/update_dependencies.py - name: Check for changes and commit @@ -145,6 +147,7 @@ jobs: - [OpenTelemetry Contrib](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v${{ needs.update-dependencies.outputs.otel_contrib_version }}): ${{ needs.update-dependencies.outputs.otel_contrib_version }} - [opentelemetry-sdk-extension-aws](https://pypi.org/project/opentelemetry-sdk-extension-aws/${{ needs.update-dependencies.outputs.aws_sdk_ext_version }}/): ${{ needs.update-dependencies.outputs.aws_sdk_ext_version }} - [opentelemetry-propagator-aws-xray](https://pypi.org/project/opentelemetry-propagator-aws-xray/${{ needs.update-dependencies.outputs.aws_xray_prop_version }}/): ${{ needs.update-dependencies.outputs.aws_xray_prop_version }} + - [opentelemetry-instrumentation-openai-agents-v2](https://pypi.org/project/opentelemetry-instrumentation-openai-agents-v2/${{ needs.update-dependencies.outputs.openai_agents_v2_version }}/): ${{ needs.update-dependencies.outputs.openai_agents_v2_version }} **Upstream releases with breaking changes:** Note: the mechanism to detect upstream breaking changes is not perfect. Be sure to check all new releases and understand if any additional changes need to be addressed. diff --git a/scripts/get_upstream_versions.py b/scripts/get_upstream_versions.py index 4557b6cd3..1e9605d53 100644 --- a/scripts/get_upstream_versions.py +++ b/scripts/get_upstream_versions.py @@ -9,10 +9,11 @@ import requests -# AWS-specific packages with independent versioning -AWS_DEPS = [ +# Packages with independent versioning (not tied to opentelemetry-python or contrib) +INDEPENDENT_DEPS = [ "opentelemetry-sdk-extension-aws", "opentelemetry-propagator-aws-xray", + "opentelemetry-instrumentation-openai-agents-v2", ] @@ -44,10 +45,10 @@ def get_latest_otel_versions(): sys.exit(1) -def get_latest_aws_versions(): - """Get latest versions of AWS dependencies using pip.""" +def get_latest_independent_versions(): + """Get latest versions of independently-versioned dependencies using pip.""" versions = {} - for dep in AWS_DEPS: + for dep in INDEPENDENT_DEPS: try: result = subprocess.run(["pip", "index", "versions", dep], capture_output=True, text=True, check=True) # Parse output like "package (1.2.3)" from first line @@ -63,13 +64,12 @@ def get_latest_aws_versions(): def main(): otel_python_version, otel_contrib_version = get_latest_otel_versions() - aws_versions = get_latest_aws_versions() + independent_versions = get_latest_independent_versions() print(f"OTEL_PYTHON_VERSION={otel_python_version}") print(f"OTEL_CONTRIB_VERSION={otel_contrib_version}") - # Print AWS dependency versions - for dep, version in aws_versions.items(): + for dep, version in independent_versions.items(): env_name = dep.replace("-", "_").upper() + "_VERSION" print(f"{env_name}={version}") @@ -79,8 +79,7 @@ def main(): output_file.write(f"otel_python_version={otel_python_version}\n") output_file.write(f"otel_contrib_version={otel_contrib_version}\n") - # Write AWS dependency versions - for dep, version in aws_versions.items(): + for dep, version in independent_versions.items(): env_name = dep.replace("-", "_").lower() + "_version" output_file.write(f"{env_name}={version}\n") diff --git a/scripts/update_dependencies.py b/scripts/update_dependencies.py index eecd590f9..1c850192c 100644 --- a/scripts/update_dependencies.py +++ b/scripts/update_dependencies.py @@ -62,6 +62,7 @@ "opentelemetry-instrumentation-sqlite3", "opentelemetry-instrumentation-starlette", "opentelemetry-instrumentation-system-metrics", + "opentelemetry-instrumentation-threading", "opentelemetry-instrumentation-tornado", "opentelemetry-instrumentation-tortoiseorm", "opentelemetry-instrumentation-urllib", @@ -70,10 +71,11 @@ "opentelemetry-instrumentation-cassandra", ] -# AWS-specific packages with independent versioning -AWS_DEPS = [ +# Packages with independent versioning (not tied to opentelemetry-python or contrib) +INDEPENDENT_DEPS = [ "opentelemetry-sdk-extension-aws", "opentelemetry-propagator-aws-xray", + "opentelemetry-instrumentation-openai-agents-v2", ] @@ -104,7 +106,7 @@ def _replace_tox_repo_branches(content, otel_python_version, otel_contrib_versio return content, bool(count) -def update_file_dependencies(file_path, otel_python_version, otel_contrib_version, aws_versions): +def update_file_dependencies(file_path, otel_python_version, otel_contrib_version, independent_versions): """Update all Otel dependencies in a given file""" try: with open(file_path, "r", encoding="utf-8") as input_file: @@ -118,7 +120,7 @@ def update_file_dependencies(file_path, otel_python_version, otel_contrib_versio content, changed = _replace_dep_versions(content, CONTRIB_DEPS, otel_contrib_version) updated = updated or changed - for dep, version in aws_versions.items(): + for dep, version in independent_versions.items(): if version: content, changed = _replace_dep_versions(content, [dep], version) updated = updated or changed @@ -142,18 +144,20 @@ def main(): otel_contrib_version = os.environ.get("OTEL_CONTRIB_VERSION") aws_sdk_ext_version = os.environ.get("OPENTELEMETRY_SDK_EXTENSION_AWS_VERSION") aws_xray_prop_version = os.environ.get("OPENTELEMETRY_PROPAGATOR_AWS_XRAY_VERSION") + openai_agents_v2_version = os.environ.get("OPENTELEMETRY_INSTRUMENTATION_OPENAI_AGENTS_V2_VERSION") if not otel_python_version or not otel_contrib_version: print("Error: OTEL_PYTHON_VERSION and OTEL_CONTRIB_VERSION environment variables required") sys.exit(1) - if not aws_sdk_ext_version or not aws_xray_prop_version: - print("Error: AWS dependency versions required") + if not aws_sdk_ext_version or not aws_xray_prop_version or not openai_agents_v2_version: + print("Error: independent dependency versions required") sys.exit(1) - aws_versions = { + independent_versions = { "opentelemetry-sdk-extension-aws": aws_sdk_ext_version, "opentelemetry-propagator-aws-xray": aws_xray_prop_version, + "opentelemetry-instrumentation-openai-agents-v2": openai_agents_v2_version, } # All files to update @@ -168,7 +172,7 @@ def main(): any_updated = False for file_path in files_to_update: - if update_file_dependencies(file_path, otel_python_version, otel_contrib_version, aws_versions): + if update_file_dependencies(file_path, otel_python_version, otel_contrib_version, independent_versions): any_updated = True if any_updated: