diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b54c1841a1a..84b2356fe1a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,22 +20,23 @@ jobs: py36: 3.6 py37: 3.7 py38: 3.8 + py39: 3.9 pypy3: pypy3 runs-on: ${{ matrix.os }} strategy: fail-fast: false # ensures the entire test matrix is run, even if one permutation fails matrix: - python-version: [ py35, py36, py37, py38, pypy3 ] + python-version: [ py35, py36, py37, py38, py39, pypy3 ] package: ["instrumentation", "core", "exporter"] os: [ ubuntu-latest ] include: - - python-version: py38 + - python-version: py39 package: "tracecontext" os: ubuntu-latest - - python-version: py38 + - python-version: py39 package: "mypy" os: ubuntu-latest - - python-version: py38 + - python-version: py39 package: "mypyinstalled" os: ubuntu-latest # py35-instrumentation segfaults on 18.04 so we instead run on 20.04 @@ -85,7 +86,7 @@ jobs: repository: open-telemetry/opentelemetry-python-contrib ref: ${{ env.CONTRIB_REPO_SHA }} path: opentelemetry-python-contrib - - name: Set up Python 3.8 + - name: Set up Python uses: actions/setup-python@v2 with: python-version: 3.8 @@ -106,12 +107,13 @@ jobs: py36: 3.6 py37: 3.7 py38: 3.8 + py39: 3.9 pypy3: pypy3 runs-on: ${{ matrix.os }} strategy: fail-fast: false # ensures the entire test matrix is run, even if one permutation fails matrix: - python-version: [ py35, py36, py37, py38, pypy3 ] + python-version: [ py35, py36, py37, py38, py39, pypy3 ] package: ["instrumentation", "exporter"] os: [ ubuntu-latest ] include: @@ -166,10 +168,10 @@ jobs: with: repository: open-telemetry/opentelemetry-python path: opentelemetry-python-core - - name: Set up Python 3.8 + - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.8 + python-version: 3.9 - name: Install tox run: pip install -U tox - name: Cache tox environment diff --git a/CHANGELOG.md b/CHANGELOG.md index 0702323c5db..73ec8a070c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v0.16b1...HEAD) +- Add support for Python 3.9 + ([#1441](https://github.com/open-telemetry/opentelemetry-python/pull/1441)) + ### Added - Add `fields` to propagators ([#1374](https://github.com/open-telemetry/opentelemetry-python/pull/1374)) diff --git a/dev-requirements.txt b/dev-requirements.txt index 489fc33fcb4..c60b8640f67 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -2,7 +2,7 @@ pylint==2.4.4 flake8~=3.7 isort~=4.3 black>=19.3b0,==19.* -mypy==0.770 +mypy==0.790 sphinx~=2.1 sphinx-rtd-theme~=0.4 sphinx-autodoc-typehints~=1.10.2 diff --git a/docs/examples/error_hander/error_handler_0/setup.cfg b/docs/examples/error_hander/error_handler_0/setup.cfg index d0a7b6275e3..e3c039c0453 100644 --- a/docs/examples/error_hander/error_handler_0/setup.cfg +++ b/docs/examples/error_hander/error_handler_0/setup.cfg @@ -29,6 +29,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/docs/examples/error_hander/error_handler_1/setup.cfg b/docs/examples/error_hander/error_handler_1/setup.cfg index 304b32fd5e9..749b0d827f7 100644 --- a/docs/examples/error_hander/error_handler_1/setup.cfg +++ b/docs/examples/error_hander/error_handler_1/setup.cfg @@ -29,6 +29,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/exporter/opentelemetry-exporter-opencensus/setup.cfg b/exporter/opentelemetry-exporter-opencensus/setup.cfg index 2ff3b2bc2b4..c707b86b9fb 100644 --- a/exporter/opentelemetry-exporter-opencensus/setup.cfg +++ b/exporter/opentelemetry-exporter-opencensus/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/exporter/opentelemetry-exporter-otlp/setup.cfg b/exporter/opentelemetry-exporter-otlp/setup.cfg index 20d724e8676..cb11e0e041f 100644 --- a/exporter/opentelemetry-exporter-otlp/setup.cfg +++ b/exporter/opentelemetry-exporter-otlp/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/exporter/opentelemetry-exporter-prometheus/setup.cfg b/exporter/opentelemetry-exporter-prometheus/setup.cfg index 6ab2101f8cb..40991ace388 100644 --- a/exporter/opentelemetry-exporter-prometheus/setup.cfg +++ b/exporter/opentelemetry-exporter-prometheus/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/exporter/opentelemetry-exporter-zipkin/setup.cfg b/exporter/opentelemetry-exporter-zipkin/setup.cfg index 6fda3370146..f8002c583d5 100644 --- a/exporter/opentelemetry-exporter-zipkin/setup.cfg +++ b/exporter/opentelemetry-exporter-zipkin/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/instrumentation/opentelemetry-instrumentation-opentracing-shim/setup.cfg b/instrumentation/opentelemetry-instrumentation-opentracing-shim/setup.cfg index 87def810899..abe7bc58158 100644 --- a/instrumentation/opentelemetry-instrumentation-opentracing-shim/setup.cfg +++ b/instrumentation/opentelemetry-instrumentation-opentracing-shim/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/opentelemetry-api/setup.cfg b/opentelemetry-api/setup.cfg index 78c3123222a..8bb3e6cc6f7 100644 --- a/opentelemetry-api/setup.cfg +++ b/opentelemetry-api/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/opentelemetry-instrumentation/setup.cfg b/opentelemetry-instrumentation/setup.cfg index 558e6a54e2f..e38e80d1bef 100644 --- a/opentelemetry-instrumentation/setup.cfg +++ b/opentelemetry-instrumentation/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/opentelemetry-proto/setup.cfg b/opentelemetry-proto/setup.cfg index 9f8087df66d..6b924a7a390 100644 --- a/opentelemetry-proto/setup.cfg +++ b/opentelemetry-proto/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/opentelemetry-sdk/setup.cfg b/opentelemetry-sdk/setup.cfg index 6da0d4642ca..94dfbd18bc8 100644 --- a/opentelemetry-sdk/setup.cfg +++ b/opentelemetry-sdk/setup.cfg @@ -32,6 +32,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/tests/util/setup.cfg b/tests/util/setup.cfg index c788346791c..a1fdf1a01e3 100644 --- a/tests/util/setup.cfg +++ b/tests/util/setup.cfg @@ -30,6 +30,7 @@ classifiers = Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] python_requires = >=3.5 diff --git a/tox.ini b/tox.ini index 447613d0393..4dd1bc6b804 100644 --- a/tox.ini +++ b/tox.ini @@ -5,52 +5,52 @@ envlist = ; Environments are organized by individual package, allowing ; for specifying supported Python versions per package. ; opentelemetry-api - py3{5,6,7,8}-test-core-api + py3{5,6,7,8,9}-test-core-api pypy3-test-core-api ; opentelemetry-proto - py3{5,6,7,8}-test-core-proto + py3{5,6,7,8,9}-test-core-proto pypy3-test-core-proto ; opentelemetry-sdk - py3{5,6,7,8}-test-core-sdk + py3{5,6,7,8,9}-test-core-sdk pypy3-test-core-sdk ; opentelemetry-instrumentation - py3{5,6,7,8}-test-core-instrumentation + py3{5,6,7,8,9}-test-core-instrumentation pypy3-test-core-instrumentation ; docs/getting-started - py3{5,6,7,8}-test-core-getting-started + py3{5,6,7,8,9}-test-core-getting-started pypy3-test-core-getting-started ; opentelemetry-exporter-jaeger - py3{5,6,7,8}-test-exporter-jaeger + py3{5,6,7,8,9}-test-exporter-jaeger pypy3-test-exporter-jaeger ; opentelemetry-exporter-opencensus - py3{5,6,7,8}-test-exporter-opencensus + py3{5,6,7,8,9}-test-exporter-opencensus ; exporter-opencensus intentionally excluded from pypy3 ; opentelemetry-exporter-otlp - py3{5,6,7,8}-test-exporter-otlp + py3{5,6,7,8,9}-test-exporter-otlp ; exporter-otlp intentionally excluded from pypy3 ; opentelemetry-exporter-prometheus - py3{5,6,7,8}-test-exporter-prometheus + py3{5,6,7,8,9}-test-exporter-prometheus pypy3-test-exporter-prometheus ; opentelemetry-exporter-zipkin - py3{5,6,7,8}-test-exporter-zipkin + py3{5,6,7,8,9}-test-exporter-zipkin pypy3-test-exporter-zipkin ; opentelemetry-opentracing-shim - py3{5,6,7,8}-test-core-opentracing-shim + py3{5,6,7,8,9}-test-core-opentracing-shim pypy3-test-core-opentracing-shim lint - py38-tracecontext - py38-{mypy,mypyinstalled} + py39-tracecontext + py39-{mypy,mypyinstalled} docs docker-tests @@ -80,7 +80,7 @@ changedir = commands_pre = ; Install without -e to test the actual installation - py3{5,6,7,8}: python -m pip install -U pip setuptools wheel + py3{5,6,7,8,9}: python -m pip install -U pip setuptools wheel ; Install common packages for all the tests. These are not needed in all the ; cases but it saves a lot of boilerplate in this file. test: pip install {toxinidir}/opentelemetry-api {toxinidir}/opentelemetry-sdk {toxinidir}/tests/util @@ -164,8 +164,8 @@ changedir = docs commands = sphinx-build -E -a -W -b html -T . _build/html -[testenv:py38-tracecontext] -basepython: python3.8 +[testenv:py39-tracecontext] +basepython: python3.9 deps = # needed for tracecontext aiohttp~=3.6