diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 688b1c16..bb57ed86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,51 +9,27 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7, 3.8, 3.9, '3.10', 3.11, 3.12, 3.13] + python-version: [3.9, '3.10', 3.11, 3.12, 3.13, 3.14] framework: - NONE - - FLASK_VERSION=1.1.4 - FLASK_VERSION=2.3.3 - - FLASK_VERSION=3.1.0 - - DJANGO_VERSION=4.2.20 - - DJANGO_VERSION=5.1.7 + - FLASK_VERSION=3.1.2 + - DJANGO_VERSION=4.2.25 + - DJANGO_VERSION=5.2.7 - PYRAMID_VERSION=1.10.8 - PYRAMID_VERSION=2.0.2 - - FASTAPI_VERSION=0.110.3 httpx==0.24.1 python-multipart==0.0.9 - - FASTAPI_VERSION=0.115.11 httpx==0.27.0 python-multipart==0.0.9 + - FASTAPI_VERSION=0.115.1 httpx==0.27.2 python-multipart==0.0.12 + - FASTAPI_VERSION=0.118.3 httpx==0.28.1 python-multipart==0.0.20 exclude: # Test frameworks on the python versions they support, according to pypi registry - # Flask - - framework: FLASK_VERSION=2.3.3 - python-version: 3.7 - - framework: FLASK_VERSION=3.1.0 - python-version: 3.7 - - framework: FLASK_VERSION=3.1.0 - python-version: 3.8 # Django - - framework: DJANGO_VERSION=4.2.20 - python-version: 3.7 - - framework: DJANGO_VERSION=4.2.20 - python-version: 3.13 - - framework: DJANGO_VERSION=5.1.7 - python-version: 3.7 - - framework: DJANGO_VERSION=5.1.7 - python-version: 3.8 - - framework: DJANGO_VERSION=5.1.7 + - framework: DJANGO_VERSION=5.2.7 python-version: 3.9 - # FastAPI - - framework: FASTAPI_VERSION=0.110.3 httpx==0.24.1 python-multipart==0.0.9 - python-version: 3.7 - - framework: FASTAPI_VERSION=0.110.3 httpx==0.24.1 python-multipart==0.0.9 - python-version: 3.13 - - framework: FASTAPI_VERSION=0.115.11 httpx==0.27.0 python-multipart==0.0.9 - python-version: 3.7 - steps: - uses: actions/checkout@v2 with: @@ -67,11 +43,6 @@ jobs: - name: Install Python Test dependencies run: pip install requests webob blinker httpx - - name: Install Python 3.7 dependencies - if: ${{ contains(matrix.python-version, '3.7') }} - # immutables dropped support for Python<3.8 in version 0.20 - run: pip install immutables==0.19 - - name: Set the framework if: ${{ matrix.framework != 'NONE' }} run: echo ${{ matrix.framework }} >> $GITHUB_ENV diff --git a/.gitignore b/.gitignore index 4cbc538a..d8d94da5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.swp *.swo dist/ +build/ rollbar.egg-info/ *.egg .eggs/ @@ -12,3 +13,4 @@ Pipfile.lock .pytest_cache/ .python-version .tox/ +/venv* diff --git a/README.md b/README.md index 5ef0bfeb..dfc70353 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Python notifier for reporting exceptions, errors, and log messages to [Rollbar]( | PyRollbar Version | Python Version Compatibility | Support Level | |-------------------|-----------------------------------------------|---------------------| -| 1.3.0 | 3.7. 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 | Full | +| 1.4.0 | 3.9, 3.10, 3.11, 3.12, 3.13, 3.14 | Full | | 0.16.3 | 2.7, 3.4, 3.5, 3.6, 3.7. 3.8, 3.9, 3.10, 3.11 | Security Fixes Only | #### Support Level Definitions @@ -40,9 +40,9 @@ Generally, PyRollbar can be used with any Python framework. However, we have off | Framework | Support Duration | Tested Versions | |-----------|----------------------------|-----------------| | Celery | Release +1 year | None | -| Django | Release or LTS end +1 year | 4.2, 5.1 | -| FastAPI | Release +1 year | 0.110, 0.115 | -| Flask | Release +1 year | 1.1, 2.3, 3.1 | +| Django | Release or LTS end +1 year | 4.2, 5.2 | +| FastAPI | Release +1 year | 0.115, 0.118 | +| Flask | Release +1 year | 2.3, 3.1 | | Pyramid | Release +1 year | 1.10, 2.0 | Official support means that we ship and maintain integrations for these frameworks. It also means that we test against these frameworks as part of our CI pipeline. diff --git a/pyproject.toml b/pyproject.toml index 5af6b07b..8dceda2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,13 +8,12 @@ maintainers = [{name = "Rollbar, Inc.", email = "support@rollbar.com"}] classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", @@ -36,7 +35,7 @@ classifiers = [ "Topic :: System :: Logging", "Topic :: System :: Monitoring", ] -requires-python = ">=3.7" +requires-python = ">=3.9" dependencies = [ "requests>=0.12.1", ]