diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 24367c89..a7eec726 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,22 +12,29 @@ jobs: fail-fast: false matrix: include: - - { python: "3.10", os: "ubuntu-latest", session: "pre-commit" } - - { python: "3.10", os: "ubuntu-latest", session: "safety" } + - { python: "3.11", os: "ubuntu-latest", session: "pre-commit" } + - { python: "3.11", os: "ubuntu-latest", session: "safety" } + - { python: "3.11", os: "ubuntu-latest", session: "mypy" } - { python: "3.10", os: "ubuntu-latest", session: "mypy" } - { python: "3.9", os: "ubuntu-latest", session: "mypy" } - { - python: "3.10", + python: "3.11", os: "ubuntu-latest", session: "tests", database: "mysql", } - { - python: "3.10", + python: "3.11", os: "ubuntu-latest", session: "tests", database: "postgres", } + - { + python: "3.11", + os: "ubuntu-latest", + session: "tests", + database: "sqlite", + } - { python: "3.10", os: "ubuntu-latest", @@ -41,28 +48,28 @@ jobs: database: "sqlite", } - { - python: "3.10", + python: "3.11", os: "windows-latest", session: "tests", database: "sqlite", } - { - python: "3.10", + python: "3.11", os: "macos-latest", session: "tests", database: "sqlite", } - { - # typeguard 2.13.3 is broken with TypeDict in 3.10. + # typeguard 2.13.3 is broken with TypeDict in 3.11. # probably the next release fixes it. # https://github.com/agronholm/typeguard/issues/242 - python: "3.9", + python: "3.11", os: "ubuntu-latest", session: "typeguard", database: "sqlite", } - - { python: "3.10", os: "ubuntu-latest", session: "xdoctest" } - - { python: "3.10", os: "ubuntu-latest", session: "docs-build" } + - { python: "3.11", os: "ubuntu-latest", session: "xdoctest" } + - { python: "3.11", os: "ubuntu-latest", session: "docs-build" } env: NOXSESSION: ${{ matrix.session }} @@ -149,7 +156,7 @@ jobs: - name: Upload coverage data # pin to upload coverage from only one matrix entry, otherwise coverage gets confused later - if: always() && matrix.session == 'tests' && matrix.python == '3.10' && matrix.os == 'ubuntu-latest' + if: always() && matrix.session == 'tests' && matrix.python == '3.11' && matrix.os == 'ubuntu-latest' uses: "actions/upload-artifact@v3.0.0" with: name: coverage-data @@ -198,7 +205,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4.2.0 with: - python-version: "3.10" + python-version: "3.11" - name: Upgrade pip run: | diff --git a/noxfile.py b/noxfile.py index 5e9f4e9a..c3f6dab1 100644 --- a/noxfile.py +++ b/noxfile.py @@ -21,7 +21,7 @@ except ImportError: package = "spiffworkflow_backend" -python_versions = ["3.10", "3.9"] +python_versions = ["3.11", "3.10", "3.9"] nox.needs_version = ">= 2021.6.6" nox.options.sessions = ( "pre-commit", @@ -96,7 +96,7 @@ def activate_virtualenv_in_precommit_hooks(session: Session) -> None: hook.write_text("\n".join(lines)) -@session(name="pre-commit", python="3.10") +@session(name="pre-commit", python="3.11") def precommit(session: Session) -> None: """Lint using pre-commit.""" args = session.posargs or ["run", "--all-files", "--show-diff-on-failure"] @@ -119,7 +119,7 @@ def precommit(session: Session) -> None: activate_virtualenv_in_precommit_hooks(session) -@session(python="3.10") +@session(python="3.11") def safety(session: Session) -> None: """Scan dependencies for insecure packages.""" requirements = session.poetry.export_requirements() @@ -189,7 +189,7 @@ def xdoctest(session: Session) -> None: session.run("python", "-m", "xdoctest", *args) -@session(name="docs-build", python="3.10") +@session(name="docs-build", python="3.11") def docs_build(session: Session) -> None: """Build the documentation.""" args = session.posargs or ["docs", "docs/_build"] @@ -206,7 +206,7 @@ def docs_build(session: Session) -> None: session.run("sphinx-build", *args) -@session(python="3.10") +@session(python="3.11") def docs(session: Session) -> None: """Build and serve the documentation with live reloading on file changes.""" args = session.posargs or ["--open-browser", "docs", "docs/_build"] diff --git a/pyproject.toml b/pyproject.toml index abb6d175..645c56ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ classifiers = [ Changelog = "https://github.com/sartography/spiffworkflow-backend/releases" [tool.poetry.dependencies] -python = ">=3.11,<3.12" +python = ">=3.9,<3.12" click = "^8.0.1" flask = "2.2.2" flask-admin = "*" diff --git a/sonar-project.properties b/sonar-project.properties index cf1276ab..c684eb9a 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,7 +1,7 @@ sonar.organization=sartography sonar.projectKey=sartography_spiffworkflow-backend sonar.host.url=https://sonarcloud.io -sonar.python.version=3.9,3.10 +sonar.python.version=3.9,3.10,3.11 sonar.python.coverage.reportPaths=coverage.xml sonar.test.inclusions=tests