Skip to content

Add Griffe in CI to detect breaking changes #4619

Open
@aabmass

Description

@aabmass

https://mkdocstrings.github.io/griffe/ supports checking for breaking changes in public APIs. We currently have a public symbols checker script, but it has clearly missed a few things and is relatively dump.

Quick proof of concept, it detected breaking changes we accidentally introduced in v1.34.0 (#4616):

$ uv run griffe check --base v1.34.0 --against v1.33.0  --search opentelemetry-api/src/ --search opentelemetry-sdk/src/ opentelemetry
branchless: processing 1 update: branch griffe-v1-33-0
branchless: processing 1 update: branch griffe-v1-34-0
opentelemetry-api/src/opentelemetry/version/__init__.py:15: __version__: Attribute value was changed: '1.33.0' -> '1.34.0'
opentelemetry-sdk/src/opentelemetry/sdk/version/__init__.py:15: __version__: Attribute value was changed: '1.33.0' -> '1.34.0'
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.span_exporter: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.queue: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.worker_thread: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.condition: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.schedule_delay_millis: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.max_export_batch_size: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.max_queue_size: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.export_timeout_millis: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.done: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.spans_list: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:0: BatchSpanProcessor.worker: Public object was removed
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:190: BatchSpanProcessor.shutdown: Return types are incompatible: None -> None

Metadata

Metadata

Assignees

Labels

build & infraIssues related to build & infrastructure.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions