diff --git a/.github/actions/security-issues/action.yml b/.github/actions/security-issues/action.yml index 0725c1f07..158b71574 100644 --- a/.github/actions/security-issues/action.yml +++ b/.github/actions/security-issues/action.yml @@ -39,7 +39,7 @@ runs: - name: Install Python Toolbox / Security tool shell: bash run: | - pip install exasol-toolbox==11.0.0 + pip install exasol-toolbox==12.0.0 - name: Create Security Issue Report shell: bash diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index c7c2c810f..0b4bc6a6f 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,6 +1,7 @@ # Changelog * [unreleased](unreleased.md) +* [12.0.0](changes_12.0.0.md) * [11.0.0](changes_11.0.0.md) * [10.5.0](changes_10.5.0.md) * [10.4.0](changes_10.4.0.md) @@ -77,6 +78,7 @@ hidden: --- unreleased +changes_12.0.0 changes_11.0.0 changes_10.5.0 changes_10.4.0 diff --git a/doc/changes/changes_12.0.0.md b/doc/changes/changes_12.0.0.md new file mode 100644 index 000000000..632f6da39 --- /dev/null +++ b/doc/changes/changes_12.0.0.md @@ -0,0 +1,75 @@ +# 12.0.0 - 2026-10-26 + +## Summary + +This major release removes support for Python 3.10 and adds Nox sessions for +validating and installing packaged agent skills. It also extends those sessions to +support multiple skills and updates the GitHub Actions environment to Ubuntu 26.04. + +## Bugfixes + +* #965: Added additional parameters to ``format:fix`` tools to run with the minimum Python version +* #983: Deduplicated vulnerable dependencies in Nox session ``release:prepare`` + +## Security Issues + +This release fixes vulnerabilities by updating dependencies: + +| Dependency | Vulnerability | Affected | Fixed in | +|------------|-----------------|-----------|------------| +| black | CVE-2026-114134 | 26.5.1 | 26.10.1 | +| certifi | PYSEC-2026-4320 | 2026.7.22 | 2026.10.19 | +| filelock | CVE-2026-112907 | 3.32.6 | 4.2.1 | +| filelock | CVE-2026-112913 | 3.32.6 | 4.2.1 | +| filelock | CVE-2026-112940 | 3.32.6 | 4.2.1 | +| urllib3 | PYSEC-2026-4175 | 2.7.0 | 2.8.0 | +| urllib3 | PYSEC-2026-4176 | 2.7.0 | 2.8.0 | +| urllib3 | PYSEC-2026-4177 | 2.7.0 | 2.8.0 | +| virtualenv | CVE-2026-113714 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113715 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113717 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113718 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113720 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113722 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113723 | 21.7.9 | 21.14.9 | +| virtualenv | CVE-2026-113725 | 21.7.9 | 21.14.7 | +| virtualenv | CVE-2026-113726 | 21.7.9 | 21.14.4 | +| virtualenv | CVE-2026-113732 | 21.7.9 | 21.14.2 | +| virtualenv | CVE-2026-113776 | 21.7.9 | 21.14.2 | +| virtualenv | PYSEC-2026-4011 | 21.7.9 | 21.7.12 | +| virtualenv | PYSEC-2026-4012 | 21.7.9 | 21.7.11 | +| virtualenv | PYSEC-2026-4013 | 21.7.9 | 21.7.13 | +| virtualenv | PYSEC-2026-4014 | 21.7.9 | 21.7.12 | + +## Features + +* #940: Added shared validation for packaged agent skills and the `skills:check` Nox session. +* #938: Added the `skills:install` Nox session for installing the packaged PTB agent skill. +* #942: Added api-contract-audit skill for identifying mismatches between type annotations, docstrings, and runtime behavior +* #963: Extended packaged skill checks and installation to support multiple skills. +* #978: Updated template `doc/conf.py` + +## Refactoring + +* #924: Removed the deprecated `lint:dependencies` Nox session and its unused implementation and tests. +* #972: Switched from ravsamhq/notify-slack-action to maintained slackapi/slack-github-action & removed workflow versioned header +* #967: Refactored skill installation into reusable filesystem helpers. +* #965: Removed support for Python 3.10 (reach end-of-life October 2026), updated to Ubuntu-26.04 for GitHub actions, and updated default databases + +## Dependency Updates + +### `main` + +* Updated dependency `black:26.5.1` to `26.10.1` +* Updated dependency `coverage:7.16.1` to `7.17.0` +* Updated dependency `cyclonedx-bom:7.3.1` to `7.5.0` +* Updated dependency `mypy:2.3.1` to `2.4.0` +* Updated dependency `nox:2026.8.17` to `2026.10.20` +* Updated dependency `pluggy:1.6.0` to `1.7.0` +* Updated dependency `pre-commit:4.6.2` to `4.7.0` +* Updated dependency `pydantic:2.13.5` to `2.14.1` +* Updated dependency `pylint:4.0.8` to `4.1.3` +* Updated dependency `pysonar:1.8.0.5390` to `1.10.0.5888` +* Updated dependency `pyupgrade:3.21.2` to `3.22.0` +* Updated dependency `typer:0.27.2` to `0.27.3` +* Updated dependency `zizmor:1.30.1` to `1.31.1` diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 24533cfb9..fb4737052 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -1,21 +1,3 @@ # Unreleased -## Bugfixes - -* #965: Added additional parameters to ``format:fix`` tools to run with the minimum Python version -* #983: Deduplicated vulnerable dependencies in Nox session ``release:prepare`` - -## Features - -* #940: Added shared validation for packaged agent skills and the `skills:check` Nox session. -* #938: Added the `skills:install` Nox session for installing the packaged PTB agent skill. -* #942: Added api-contract-audit skill for identifying mismatches between type annotations, docstrings, and runtime behavior -* #963: Extended packaged skill checks and installation to support multiple skills. -* #978: Updated template `doc/conf.py` - -## Refactoring - -* #924: Removed the deprecated `lint:dependencies` Nox session and its unused implementation and tests. -* #972: Switched from ravsamhq/notify-slack-action to maintained slackapi/slack-github-action & removed workflow versioned header -* #967: Refactored skill installation into reusable filesystem helpers. -* #965: Removed support for Python 3.10 (reach end-of-life October 2026), updated to Ubuntu-26.04 for GitHub actions, and updated default databases +## Summary diff --git a/exasol/toolbox/templates/github/workflows/build-and-publish.yml b/exasol/toolbox/templates/github/workflows/build-and-publish.yml index e996539be..8f6b09d1e 100644 --- a/exasol/toolbox/templates/github/workflows/build-and-publish.yml +++ b/exasol/toolbox/templates/github/workflows/build-and-publish.yml @@ -22,7 +22,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/check-release-tag.yml b/exasol/toolbox/templates/github/workflows/check-release-tag.yml index f3a839eed..d331bb58a 100644 --- a/exasol/toolbox/templates/github/workflows/check-release-tag.yml +++ b/exasol/toolbox/templates/github/workflows/check-release-tag.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/checks.yml b/exasol/toolbox/templates/github/workflows/checks.yml index 828886996..dec1ebb5d 100644 --- a/exasol/toolbox/templates/github/workflows/checks.yml +++ b/exasol/toolbox/templates/github/workflows/checks.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" @@ -49,7 +49,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" @@ -76,7 +76,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" @@ -114,7 +114,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" @@ -142,7 +142,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" @@ -174,7 +174,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" @@ -197,7 +197,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" @@ -220,7 +220,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" @@ -243,7 +243,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/dependency-update.yml b/exasol/toolbox/templates/github/workflows/dependency-update.yml index a4d068151..598afc4fe 100644 --- a/exasol/toolbox/templates/github/workflows/dependency-update.yml +++ b/exasol/toolbox/templates/github/workflows/dependency-update.yml @@ -34,7 +34,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/fast-tests.yml b/exasol/toolbox/templates/github/workflows/fast-tests.yml index 19591ce60..d17a4f501 100644 --- a/exasol/toolbox/templates/github/workflows/fast-tests.yml +++ b/exasol/toolbox/templates/github/workflows/fast-tests.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/gh-pages.yml b/exasol/toolbox/templates/github/workflows/gh-pages.yml index 29eeebdf8..9010a611c 100644 --- a/exasol/toolbox/templates/github/workflows/gh-pages.yml +++ b/exasol/toolbox/templates/github/workflows/gh-pages.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/matrix.yml b/exasol/toolbox/templates/github/workflows/matrix.yml index a97d186e8..9b8c1287b 100644 --- a/exasol/toolbox/templates/github/workflows/matrix.yml +++ b/exasol/toolbox/templates/github/workflows/matrix.yml @@ -27,7 +27,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/report.yml b/exasol/toolbox/templates/github/workflows/report.yml index 26209997b..17391adb1 100644 --- a/exasol/toolbox/templates/github/workflows/report.yml +++ b/exasol/toolbox/templates/github/workflows/report.yml @@ -23,7 +23,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" diff --git a/exasol/toolbox/templates/github/workflows/slow-checks.yml b/exasol/toolbox/templates/github/workflows/slow-checks.yml index 8bedf26b3..a2bb3804d 100644 --- a/exasol/toolbox/templates/github/workflows/slow-checks.yml +++ b/exasol/toolbox/templates/github/workflows/slow-checks.yml @@ -33,7 +33,7 @@ jobs: - name: Set up Python & Poetry Environment id: set-up-python-and-poetry-environment - uses: exasol/python-toolbox/.github/actions/python-environment@v11 + uses: exasol/python-toolbox/.github/actions/python-environment@v12 with: python-version: ${{ matrix.python_versions }} poetry-version: "(( dependency_manager_version ))" diff --git a/project-template/cookiecutter.json b/project-template/cookiecutter.json index dfa3e083a..37458265d 100644 --- a/project-template/cookiecutter.json +++ b/project-template/cookiecutter.json @@ -9,7 +9,7 @@ "author_email": "opensource@exasol.com", "project_short_tag": "", "python_version_min": "3.11", - "exasol_toolbox_version_range": ">=11.0.0,<12", + "exasol_toolbox_version_range": ">=12.0.0,<13", "license_year": "{% now 'utc', '%Y' %}", "__repo_name_slug": "{{cookiecutter.package_name}}", "__package_name_slug": "{{cookiecutter.package_name}}", diff --git a/pyproject.toml b/pyproject.toml index d78f795cd..6326666b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "exasol-toolbox" -version = "11.0.0" +version = "12.0.0" description = "Your one-stop solution for managing all standard tasks and core workflows of your Python project." authors = [ { name = "Nicola Coretti", email = "nicola.coretti@exasol.com" },