Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
949fd69
extract declarative configuration into opentelemetry-sdk-configuratio…
MikeGoldsmith Jun 25, 2026
d7ba5da
rename changelog fragment to PR #5356
MikeGoldsmith Jun 25, 2026
a40d653
Merge remote-tracking branch 'upstream/main' into mike/extract-sdk-co…
MikeGoldsmith Jun 25, 2026
3c90d9c
register opentelemetry-sdk-configuration in uv workspace
MikeGoldsmith Jun 25, 2026
4f62d78
fix CI: regenerate workflows, mock new pkg in routing tests, silence …
MikeGoldsmith Jun 25, 2026
9eba9f6
fix CI: per-package pylintrc for sdk-configuration, drop bad link fro…
MikeGoldsmith Jun 25, 2026
3cde032
drop file-configuration extras: pyyaml and jsonschema are now require…
MikeGoldsmith Jun 25, 2026
1b4f949
tighten 5356 changelog entry
MikeGoldsmith Jun 25, 2026
bf27ea4
merge upstream/main; prefix 5356 changelog entry with package name
MikeGoldsmith Jun 26, 2026
7641371
drop opentelemetry/sdk/__init__.pyi to make opentelemetry.sdk a prope…
MikeGoldsmith Jun 26, 2026
ac255fe
rename opentelemetry-sdk-configuration → opentelemetry-configuration …
MikeGoldsmith Jun 26, 2026
9b7795b
post-rename CI fixes: ruff import sort + disable no-member on dynamic…
MikeGoldsmith Jun 26, 2026
e76b325
use class-based fake module in routing tests to drop the no-member py…
MikeGoldsmith Jun 26, 2026
5877b3e
silence pylint no-name-in-module on conditional opentelemetry.configu…
MikeGoldsmith Jun 26, 2026
45eacc2
add opentelemetry-configuration to pyright include/exclude, drop unus…
MikeGoldsmith Jun 30, 2026
4b2e2df
loosen pyyaml floor to >= 5.4 (matches our actual API surface)
MikeGoldsmith Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/5356.changed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`opentelemetry-configuration`: declarative configuration moves from `opentelemetry.sdk._configuration` into the new public `opentelemetry-configuration` package (`opentelemetry.configuration` namespace), published experimentally and versioned independently of the SDK.
19 changes: 19 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,25 @@ jobs:
- name: Run tests
run: tox -e lint-opentelemetry-sdk

lint-opentelemetry-configuration:
name: opentelemetry-configuration
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e lint-opentelemetry-configuration

lint-opentelemetry-semantic-conventions:
name: opentelemetry-semantic-conventions
runs-on: ubuntu-latest
Expand Down
280 changes: 280 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -923,6 +923,139 @@ jobs:
- name: Run tests
run: tox -e pypy3-test-opentelemetry-sdk -- -ra

py310-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.10 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py310-test-opentelemetry-configuration -- -ra

py311-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.11 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py311-test-opentelemetry-configuration -- -ra

py312-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.12 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py312-test-opentelemetry-configuration -- -ra

py313-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.13 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py313-test-opentelemetry-configuration -- -ra

py314-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.14 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314-test-opentelemetry-configuration -- -ra

py314t-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration 3.14t Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14t
uses: actions/setup-python@v5
with:
python-version: "3.14t"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314t-test-opentelemetry-configuration -- -ra

pypy3-test-opentelemetry-configuration_ubuntu-latest:
name: opentelemetry-configuration pypy-3.10 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python pypy-3.10
uses: actions/setup-python@v5
with:
python-version: "pypy-3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e pypy3-test-opentelemetry-configuration -- -ra

py310-test-opentelemetry-semantic-conventions_ubuntu-latest:
name: opentelemetry-semantic-conventions 3.10 Ubuntu
runs-on: ubuntu-latest
Expand Down Expand Up @@ -4489,6 +4622,153 @@ jobs:
- name: Run tests
run: tox -e pypy3-test-opentelemetry-sdk -- -ra

py310-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.10 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py310-test-opentelemetry-configuration -- -ra

py311-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.11 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py311-test-opentelemetry-configuration -- -ra

py312-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.12 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py312-test-opentelemetry-configuration -- -ra

py313-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.13 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py313-test-opentelemetry-configuration -- -ra

py314-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.14 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314-test-opentelemetry-configuration -- -ra

py314t-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration 3.14t Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14t
uses: actions/setup-python@v5
with:
python-version: "3.14t"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314t-test-opentelemetry-configuration -- -ra

pypy3-test-opentelemetry-configuration_windows-latest:
name: opentelemetry-configuration pypy-3.10 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python pypy-3.10
uses: actions/setup-python@v5
with:
python-version: "pypy-3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e pypy3-test-opentelemetry-configuration -- -ra

py310-test-opentelemetry-semantic-conventions_windows-latest:
name: opentelemetry-semantic-conventions 3.10 Windows
runs-on: windows-latest
Expand Down
7 changes: 3 additions & 4 deletions docs/examples/declarative-config/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,12 @@ variables or hand-written provider setup.
The source files of this example are available :scm_web:`here
<docs/examples/declarative-config/>`.

Install the SDK with the ``file-configuration`` extra (it pulls in ``pyyaml``
and ``jsonschema``), the auto-instrumentation entry point, and the OTLP/HTTP
exporter:
Install the declarative-config package, the auto-instrumentation entry point,
and the OTLP/HTTP exporter:

.. code-block:: sh

pip install "opentelemetry-sdk[file-configuration]" \
pip install opentelemetry-configuration \
opentelemetry-distro \
opentelemetry-exporter-otlp-proto-http

Expand Down
5 changes: 2 additions & 3 deletions docs/sdk/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@ configuration schema, and applies it globally.
Installing
----------

File configuration relies on optional dependencies (``pyyaml`` and
``jsonschema``). Install them with the ``file-configuration`` extra:
Declarative configuration lives in a separate, experimental package:

.. code-block:: sh

pip install "opentelemetry-sdk[file-configuration]"
pip install opentelemetry-configuration

Enabling with an environment variable
-------------------------------------
Expand Down
Loading
Loading