diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50165763461..908cf71caa3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,6 @@ jobs: build: env: # We use these variables to convert between tox and GHA version literals - py35: 3.5 py36: 3.6 py37: 3.7 py38: 3.8 @@ -27,18 +26,9 @@ jobs: strategy: fail-fast: false # ensures the entire test matrix is run, even if one permutation fails matrix: - python-version: [ py35, py36, py37, py38, py39, pypy3 ] + python-version: [ py36, py37, py38, py39, pypy3 ] package: ["instrumentation", "core", "exporter", "propagator"] os: [ ubuntu-latest ] - include: - # py35-instrumentation segfaults on 18.04 so we instead run on 20.04 - - python-version: py35 - package: instrumentation - os: ubuntu-20.04 - exclude: - - os: ubuntu-latest - python-version: py35 - package: instrumentation steps: - name: Checkout Core Repo @ SHA - ${{ github.sha }} uses: actions/checkout@v2 @@ -118,7 +108,6 @@ jobs: contrib-build: env: # We use these variables to convert between tox and GHA version literals - py35: 3.5 py36: 3.6 py37: 3.7 py38: 3.8 @@ -128,18 +117,9 @@ jobs: strategy: fail-fast: false # ensures the entire test matrix is run, even if one permutation fails matrix: - python-version: [ py35, py36, py37, py38, py39, pypy3 ] + python-version: [ py36, py37, py38, py39, pypy3 ] package: ["instrumentation", "exporter"] os: [ ubuntu-latest ] - include: - # py35-instrumentation segfaults on 18.04 so we instead run on 20.04 - - python-version: py35 - package: instrumentation - os: ubuntu-20.04 - exclude: - - os: ubuntu-latest - python-version: py35 - package: instrumentation steps: - name: Checkout Contrib Repo @ SHA - ${{ env.CONTRIB_REPO_SHA }} uses: actions/checkout@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 050b822d091..a2ee4a62e45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#1675](https://github.com/open-telemetry/opentelemetry-python/pull/1675)) - Remove `OTEL_EXPORTER_*_ INSECURE` env var ([#1682](https://github.com/open-telemetry/opentelemetry-python/pull/1682)) +- Removing support for Python 3.5 + ([#1706](https://github.com/open-telemetry/opentelemetry-python/pull/1706)) ## [0.18b0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.18b0) - 2021-02-16 diff --git a/README.md b/README.md index 2eafcc6d122..f56b790f325 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ This page describes the Python [OpenTelemetry](https://opentelemetry.io/) implementation. OpenTelemetry is an observability framework for cloud-native software. ## Requirements -Unless otherwise noted, all published artifacts support Python 3.5 or higher. See CONTRIBUTING.md for additional instructions for building this project for development. +Unless otherwise noted, all published artifacts support Python 3.6 or higher. See CONTRIBUTING.md for additional instructions for building this project for development. ## Getting started diff --git a/docs/examples/error_handler/error_handler_0/setup.cfg b/docs/examples/error_handler/error_handler_0/setup.cfg index b26c9d57a1a..481d15ab8dc 100644 --- a/docs/examples/error_handler/error_handler_0/setup.cfg +++ b/docs/examples/error_handler/error_handler_0/setup.cfg @@ -25,14 +25,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/docs/examples/error_handler/error_handler_1/setup.cfg b/docs/examples/error_handler/error_handler_1/setup.cfg index f24ed6bd0d1..05388009e30 100644 --- a/docs/examples/error_handler/error_handler_1/setup.cfg +++ b/docs/examples/error_handler/error_handler_1/setup.cfg @@ -25,14 +25,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/docs/index.rst b/docs/index.rst index 12fbd7ef44d..42969c058f5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,7 +16,7 @@ generally be used in production environments. Requirement ----------- -OpenTelemetry-Python supports Python 3.5 and higher. +OpenTelemetry-Python supports Python 3.6 and higher. Installation ------------ diff --git a/exporter/opentelemetry-exporter-jaeger-proto/setup.cfg b/exporter/opentelemetry-exporter-jaeger-proto/setup.cfg index 3122904f61a..cbcae8262e6 100644 --- a/exporter/opentelemetry-exporter-jaeger-proto/setup.cfg +++ b/exporter/opentelemetry-exporter-jaeger-proto/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/exporter/opentelemetry-exporter-jaeger-thrift/setup.cfg b/exporter/opentelemetry-exporter-jaeger-thrift/setup.cfg index 5ab20acdf26..02d9cd4c9f6 100644 --- a/exporter/opentelemetry-exporter-jaeger-thrift/setup.cfg +++ b/exporter/opentelemetry-exporter-jaeger-thrift/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/exporter/opentelemetry-exporter-jaeger/setup.cfg b/exporter/opentelemetry-exporter-jaeger/setup.cfg index e904eb7a2da..b1444538a4d 100644 --- a/exporter/opentelemetry-exporter-jaeger/setup.cfg +++ b/exporter/opentelemetry-exporter-jaeger/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 packages=find_namespace: install_requires = diff --git a/exporter/opentelemetry-exporter-opencensus/setup.cfg b/exporter/opentelemetry-exporter-opencensus/setup.cfg index b10fbe2f045..41edc45e3e7 100644 --- a/exporter/opentelemetry-exporter-opencensus/setup.cfg +++ b/exporter/opentelemetry-exporter-opencensus/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/setup.cfg b/exporter/opentelemetry-exporter-otlp-proto-grpc/setup.cfg index cfb450d8974..7cf46dabaf4 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/setup.cfg +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/exporter/opentelemetry-exporter-otlp/setup.cfg b/exporter/opentelemetry-exporter-otlp/setup.cfg index 64d94a91a4a..24ad1517f51 100644 --- a/exporter/opentelemetry-exporter-otlp/setup.cfg +++ b/exporter/opentelemetry-exporter-otlp/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 packages=find_namespace: install_requires = opentelemetry-exporter-otlp-proto-grpc == 1.0.0.dev0 diff --git a/exporter/opentelemetry-exporter-zipkin/setup.cfg b/exporter/opentelemetry-exporter-zipkin/setup.cfg index f1a809be37c..11cc221589a 100644 --- a/exporter/opentelemetry-exporter-zipkin/setup.cfg +++ b/exporter/opentelemetry-exporter-zipkin/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/opentelemetry-api/setup.cfg b/opentelemetry-api/setup.cfg index 428eb5a8e8f..1f4c7aab1e5 100644 --- a/opentelemetry-api/setup.cfg +++ b/opentelemetry-api/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/opentelemetry-distro/setup.cfg b/opentelemetry-distro/setup.cfg index 41eeda5d707..0ee4ea93a00 100644 --- a/opentelemetry-distro/setup.cfg +++ b/opentelemetry-distro/setup.cfg @@ -28,13 +28,12 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 [options] -python_requires = >=3.5 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/opentelemetry-instrumentation/setup.cfg b/opentelemetry-instrumentation/setup.cfg index db8c4675be7..563eebfce05 100644 --- a/opentelemetry-instrumentation/setup.cfg +++ b/opentelemetry-instrumentation/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/opentelemetry-proto/setup.cfg b/opentelemetry-proto/setup.cfg index 9934a7c5ece..96777d2fdf9 100644 --- a/opentelemetry-proto/setup.cfg +++ b/opentelemetry-proto/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/opentelemetry-sdk/setup.cfg b/opentelemetry-sdk/setup.cfg index 5573fa7127b..063e8a052c9 100644 --- a/opentelemetry-sdk/setup.cfg +++ b/opentelemetry-sdk/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/propagator/opentelemetry-propagator-b3/setup.cfg b/propagator/opentelemetry-propagator-b3/setup.cfg index 8062d853393..62ac8b7a7bd 100644 --- a/propagator/opentelemetry-propagator-b3/setup.cfg +++ b/propagator/opentelemetry-propagator-b3/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/propagator/opentelemetry-propagator-jaeger/setup.cfg b/propagator/opentelemetry-propagator-jaeger/setup.cfg index b24569100fd..38646d203f8 100644 --- a/propagator/opentelemetry-propagator-jaeger/setup.cfg +++ b/propagator/opentelemetry-propagator-jaeger/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/scripts/coverage.sh b/scripts/coverage.sh index aedfbd29668..437c633c337 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -40,13 +40,9 @@ cov instrumentation/opentelemetry-instrumentation-opentracing-shim cov util/opentelemetry-util-http cov exporter/opentelemetry-exporter-zipkin -# aiohttp is only supported on Python 3.5+. -if [ ${PYTHON_VERSION_INFO[1]} -gt 4 ]; then - cov instrumentation/opentelemetry-instrumentation-aiohttp-client -# ext-asgi is only supported on Python 3.5+. -if [ ${PYTHON_VERSION_INFO[1]} -gt 4 ]; then - cov instrumentation/opentelemetry-instrumentation-asgi -fi + +cov instrumentation/opentelemetry-instrumentation-aiohttp-client +cov instrumentation/opentelemetry-instrumentation-asgi coverage report --show-missing coverage xml diff --git a/scripts/eachdist.py b/scripts/eachdist.py index d1069290e89..a939f0d93df 100755 --- a/scripts/eachdist.py +++ b/scripts/eachdist.py @@ -7,7 +7,6 @@ import shutil import subprocess import sys -from collections import namedtuple from configparser import ConfigParser from datetime import datetime from inspect import cleandoc @@ -26,17 +25,7 @@ def unique(elems): seen.add(elem) -try: - subprocess_run = subprocess.run -except AttributeError: # Py < 3.5 compat - CompletedProcess = namedtuple("CompletedProcess", "returncode") - - def subprocess_run(*args, **kwargs): - check = kwargs.pop("check", False) - if check: - subprocess.check_call(*args, **kwargs) - return CompletedProcess(returncode=0) - return CompletedProcess(returncode=subprocess.call(*args, **kwargs)) +subprocess_run = subprocess.run def extraargs_help(calledcmd): diff --git a/shim/opentelemetry-opentracing-shim/setup.cfg b/shim/opentelemetry-opentracing-shim/setup.cfg index 8a490470cbc..3e305863b68 100644 --- a/shim/opentelemetry-opentracing-shim/setup.cfg +++ b/shim/opentelemetry-opentracing-shim/setup.cfg @@ -28,14 +28,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/tests/util/setup.cfg b/tests/util/setup.cfg index 94333459abc..6ea81897a71 100644 --- a/tests/util/setup.cfg +++ b/tests/util/setup.cfg @@ -26,14 +26,13 @@ classifiers = License :: OSI Approved :: Apache Software License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 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 +python_requires = >=3.6 package_dir= =src packages=find_namespace: diff --git a/tox.ini b/tox.ini index 07126f90fce..4865be24276 100644 --- a/tox.ini +++ b/tox.ini @@ -5,64 +5,64 @@ envlist = ; Environments are organized by individual package, allowing ; for specifying supported Python versions per package. ; opentelemetry-api - py3{5,6,7,8,9}-test-core-api + py3{6,7,8,9}-test-core-api pypy3-test-core-api ; opentelemetry-proto - py3{5,6,7,8,9}-test-core-proto + py3{6,7,8,9}-test-core-proto pypy3-test-core-proto ; opentelemetry-sdk - py3{5,6,7,8,9}-test-core-sdk + py3{6,7,8,9}-test-core-sdk pypy3-test-core-sdk ; opentelemetry-instrumentation - py3{5,6,7,8,9}-test-core-instrumentation + py3{6,7,8,9}-test-core-instrumentation pypy3-test-core-instrumentation ; docs/getting-started - py3{5,6,7,8,9}-test-core-getting-started + py3{6,7,8,9}-test-core-getting-started pypy3-test-core-getting-started ; opentelemetry-distro - py3{5,6,7,8,9}-test-core-distro + py3{6,7,8,9}-test-core-distro pypy3-test-core-distro ; opentelemetry-exporter-jaeger - py3{5,6,7,8,9}-test-exporter-jaeger-combined + py3{6,7,8,9}-test-exporter-jaeger-combined ; opentelemetry-exporter-jaeger-proto - py3{5,6,7,8,9}-test-exporter-jaeger-proto + py3{6,7,8,9}-test-exporter-jaeger-proto ; opentelemetry-exporter-jaeger-thrift - py3{5,6,7,8,9}-test-exporter-jaeger-thrift + py3{6,7,8,9}-test-exporter-jaeger-thrift ; opentelemetry-exporter-opencensus - py3{5,6,7,8,9}-test-exporter-opencensus + py3{6,7,8,9}-test-exporter-opencensus ; exporter-opencensus intentionally excluded from pypy3 ; opentelemetry-exporter-otlp-combined - py3{5,6,7,8,9}-test-exporter-otlp-combined + py3{6,7,8,9}-test-exporter-otlp-combined ; intentionally excluded from pypy3 ; opentelemetry-exporter-otlp-proto-grpc - py3{5,6,7,8,9}-test-exporter-otlp-proto-grpc + py3{6,7,8,9}-test-exporter-otlp-proto-grpc ; intentionally excluded from pypy3 ; opentelemetry-exporter-zipkin - py3{5,6,7,8,9}-test-exporter-zipkin + py3{6,7,8,9}-test-exporter-zipkin pypy3-test-exporter-zipkin ; opentelemetry-opentracing-shim - py3{5,6,7,8,9}-test-core-opentracing-shim + py3{6,7,8,9}-test-core-opentracing-shim pypy3-test-core-opentracing-shim ; opentelemetry-propagator-b3 - py3{5,6,7,8,9}-test-propagator-b3 + py3{6,7,8,9}-test-propagator-b3 pypy3-test-propagator-b3 ; opentelemetry-propagator-jaeger - py3{5,6,7,8,9}-test-propagator-jaeger + py3{6,7,8,9}-test-propagator-jaeger pypy3-test-propagator-jaeger lint @@ -104,7 +104,7 @@ changedir = commands_pre = ; Install without -e to test the actual installation - py3{5,6,7,8,9}: python -m pip install -U pip setuptools wheel + py3{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-instrumentation {toxinidir}/opentelemetry-sdk {toxinidir}/tests/util