From 2860eea418b35e94e02a51b1188d5c25ec5fc935 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 30 Jun 2026 12:54:56 +0200 Subject: [PATCH 1/7] Update PTB to 10.1.0 --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index bcbf77b..d23e14f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1150,14 +1150,14 @@ simplejson = ">=3.16.0" [[package]] name = "exasol-toolbox" -version = "10.0.0" +version = "10.1.0" description = "Your one-stop solution for managing all standard tasks and core workflows of your Python project." optional = false python-versions = "<4.0,>=3.10" groups = ["dev"] files = [ - {file = "exasol_toolbox-10.0.0-py3-none-any.whl", hash = "sha256:98c0456e7526ccffdfe74c727e74b706f9e613a0e42d6fffa8a0cbd2412299b8"}, - {file = "exasol_toolbox-10.0.0.tar.gz", hash = "sha256:c2002f4cf7e8f94c9c72289a4acb98bfe6fa123942f488ecb5c84d82e92dd770"}, + {file = "exasol_toolbox-10.1.0-py3-none-any.whl", hash = "sha256:c5d4ff7dd133f8b286740a7fcf28543cda1aeff44d2c48ce72bc37360e5e4979"}, + {file = "exasol_toolbox-10.1.0.tar.gz", hash = "sha256:10febad352d5f23eff2643950948c849cbb8fdb181980fc3ca3df3baa482964f"}, ] [package.dependencies] @@ -5218,4 +5218,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.13" -content-hash = "df7409138e81b489cb63d4021686d2e4385056b005f81902579beb7e6f45535d" +content-hash = "aac8dc02db9d091b96d2f4077eb0b9af16da5acd2ef3ebc8b20e1efa16b0c2dc" diff --git a/pyproject.toml b/pyproject.toml index 2bd5eed..345ba72 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dev = [ "exasol-integration-test-docker-environment>=5.0.0,<6", "toml>=0.10.2", "gitpython>=3.1.0", - "exasol-toolbox>=10.0.0,<11", + "exasol-toolbox>=10.1.0,<11", ] [tool.poetry] From db4578b775b407e31b6edad5c6e93b5ccca3c3ee Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:06:40 +0200 Subject: [PATCH 2/7] Update to PTB 10.2.0 --- .workflow-patcher.yml | 3 --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.workflow-patcher.yml b/.workflow-patcher.yml index 21be439..7f6e821 100644 --- a/.workflow-patcher.yml +++ b/.workflow-patcher.yml @@ -15,9 +15,6 @@ workflows: # This will be resolved in: # https://github.com/exasol/exasol-python-test-framework/issues/103 - lint-typing - # This job will be re-activated in: - # https://github.com/exasol/exasol-python-test-framework/issues/105 - - check-workflows - name: periodic-validation remove_jobs: # This job will be re-activated in: diff --git a/poetry.lock b/poetry.lock index d23e14f..c367f2a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1150,14 +1150,14 @@ simplejson = ">=3.16.0" [[package]] name = "exasol-toolbox" -version = "10.1.0" +version = "10.2.0" description = "Your one-stop solution for managing all standard tasks and core workflows of your Python project." optional = false python-versions = "<4.0,>=3.10" groups = ["dev"] files = [ - {file = "exasol_toolbox-10.1.0-py3-none-any.whl", hash = "sha256:c5d4ff7dd133f8b286740a7fcf28543cda1aeff44d2c48ce72bc37360e5e4979"}, - {file = "exasol_toolbox-10.1.0.tar.gz", hash = "sha256:10febad352d5f23eff2643950948c849cbb8fdb181980fc3ca3df3baa482964f"}, + {file = "exasol_toolbox-10.2.0-py3-none-any.whl", hash = "sha256:5aa5244d366ac9ba429760544904883046765edb244efdc4044551ab970da585"}, + {file = "exasol_toolbox-10.2.0.tar.gz", hash = "sha256:6e40a464ebab2fe7d57b95a907226252301bdb4ef671eeded0a76bce12dc8c53"}, ] [package.dependencies] @@ -5218,4 +5218,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.13" -content-hash = "aac8dc02db9d091b96d2f4077eb0b9af16da5acd2ef3ebc8b20e1efa16b0c2dc" +content-hash = "83ac193192dd0bfc5203e03aa21e261da9740cc1734083c6a3886c357087c9ac" diff --git a/pyproject.toml b/pyproject.toml index 345ba72..1c592a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dev = [ "exasol-integration-test-docker-environment>=5.0.0,<6", "toml>=0.10.2", "gitpython>=3.1.0", - "exasol-toolbox>=10.1.0,<11", + "exasol-toolbox>=10.2.0,<11", ] [tool.poetry] From 68646a2b6280296c4994dde618e9e8227179a227 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:09:25 +0200 Subject: [PATCH 3/7] Update workflows to 10.2.0 --- .github/workflows/build-and-publish.yml | 2 +- .github/workflows/cd.yml | 2 +- .github/workflows/check-release-tag.yml | 2 +- .github/workflows/checks.yml | 26 +++++++- .github/workflows/ci.yml | 2 +- .github/workflows/dependency-update.yml | 73 ++++++++++------------- .github/workflows/fast-tests.yml | 2 +- .github/workflows/matrix.yml | 48 +++++++++++++++ .github/workflows/merge-gate.yml | 2 +- .github/workflows/periodic-validation.yml | 2 +- .github/workflows/report.yml | 2 +- .workflow-patcher.yml | 8 --- noxconfig.py | 13 ++++ 13 files changed, 126 insertions(+), 58 deletions(-) create mode 100644 .github/workflows/matrix.yml diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 68f51ad..2086a2b 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Build & Publish on: diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 1c314d2..9d9d2b0 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: CD on: diff --git a/.github/workflows/check-release-tag.yml b/.github/workflows/check-release-tag.yml index d3d50e8..95752e5 100644 --- a/.github/workflows/check-release-tag.yml +++ b/.github/workflows/check-release-tag.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Check Release Tag on: diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 679bab4..e8738f6 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,11 +1,12 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Checks on: workflow_call: jobs: + check-changelog-was-updated: name: Check Changelog was Updated runs-on: "ubuntu-24.04" @@ -127,6 +128,29 @@ jobs: id: build-package run: poetry run -- nox -s package:check + check-workflows: + name: Check Workflows + runs-on: "ubuntu-24.04" + permissions: + contents: read + steps: + - name: Check out Repository + id: check-out-repository + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v10 + with: + python-version: "3.10" + poetry-version: "2.3.0" + + - name: Check Workflows + id: check-workflows + run: poetry run -- nox -s workflow:check -- all + audit-workflows: name: Audit Workflows runs-on: "ubuntu-24.04" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 282e90b..e3df4b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: CI on: diff --git a/.github/workflows/dependency-update.yml b/.github/workflows/dependency-update.yml index 1a94d97..a0a1bb5 100644 --- a/.github/workflows/dependency-update.yml +++ b/.github/workflows/dependency-update.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Dependency Update on: @@ -40,74 +40,65 @@ jobs: python-version: "3.10" poetry-version: "2.3.0" - - name: Audit Dependencies - id: audit-dependencies - run: | - set -o pipefail - poetry self add poetry-plugin-export - # Pipeline purpose: - # - `2>&1`: merge stdout and stderr into one stream. - # - `tee /dev/stderr`: mirror the combined output back to stderr so it stays visible in the logs. - # - `sed -n '/^\[/,$p'`: keep only the JSON payload and write it to vulnerabilities.json. - # With `set -o pipefail`, any failure in the pipeline still fails this step and turns the workflow red. - poetry run -- nox -s dependency:audit 2>&1 | tee /dev/stderr | sed -n '/^\[/,$p' > vulnerabilities.json - LENGTH=$(jq 'length' vulnerabilities.json) - echo "count=$LENGTH" >> "$GITHUB_OUTPUT" - - - name: Update Dependencies - id: update-dependencies - if: steps.audit-dependencies.outputs.count > 0 - run: poetry update - - - name: Check for poetry.lock Changes - id: check-for-poetry-lock-changes - if: steps.audit-dependencies.outputs.count > 0 - run: | - if git diff --quiet -- poetry.lock; then - echo "changed=false" >> "$GITHUB_OUTPUT" - else - echo "changed=true" >> "$GITHUB_OUTPUT" - fi - - name: Configure git id: configure-git - if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' run: | git config --global user.email "opensource@exasol.com" git config --global user.name "Automatic Dependency Updater" - name: Create branch id: create-branch - if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' run: | branch_name="dependency-update/$(date "+%Y-%m-%d")" echo "Creating branch $branch_name" git switch -C "$branch_name" - - name: Commit Changes & Push + - name: Record current commit + id: record-current-commit + run: | + echo "head_sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" + + - name: Update Dependencies + id: update-dependencies + run: | + poetry self add poetry-plugin-export + poetry run -- nox -s vulnerabilities:update -- vulnerabilities.json + cat vulnerabilities.json + + - name: Check for New Commit + id: check-for-new-commit + env: + PRE_UPDATE_HEAD_SHA: ${{ steps.record-current-commit.outputs.head_sha }} + run: | + if [ "$(git rev-parse HEAD)" = "$PRE_UPDATE_HEAD_SHA" ]; then + echo "changed=false" >> "$GITHUB_OUTPUT" + else + echo "changed=true" >> "$GITHUB_OUTPUT" + fi + + - name: Push Changes id: publish-branch - if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' + if: steps.check-for-new-commit.outputs.changed == 'true' run: | branch_name=$(git rev-parse --abbrev-ref HEAD) - git add poetry.lock - git commit --message "Updated poetry.lock" git push --set-upstream origin "$branch_name" - name: Create Pull Request id: create-pr - if: steps.check-for-poetry-lock-changes.outputs.changed == 'true' + if: steps.check-for-new-commit.outputs.changed == 'true' env: GH_TOKEN: ${{ github.token }} run: | BASE_BRANCH=$(gh repo view --json defaultBranchRef -q .defaultBranchRef.name) + DEPENDENCY_UPDATE_REPORT="$(cat vulnerabilities.json)" PR_BODY="Automated dependency update for \`poetry.lock\`. This PR was created by the workflow \`dependency-update.yml\` - Please perform the following actions on a locally checked out branch: - - [ ] Execute \`poetry run -- nox -s workflow:generate -- all\` - - [ ] Use \`poetry run -- nox -s dependency:audit\` to check for vulnerabilities requiring manual action - - [ ] Update file \`doc/changes/unreleased.md\` + Remaining vulnerable dependencies after the automated update: + \`\`\`json + ${DEPENDENCY_UPDATE_REPORT} + \`\`\` " PR_URL=$(gh pr create \ diff --git a/.github/workflows/fast-tests.yml b/.github/workflows/fast-tests.yml index ddab7bb..d981207 100644 --- a/.github/workflows/fast-tests.yml +++ b/.github/workflows/fast-tests.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Fast-Tests on: diff --git a/.github/workflows/matrix.yml b/.github/workflows/matrix.yml new file mode 100644 index 0000000..46d2184 --- /dev/null +++ b/.github/workflows/matrix.yml @@ -0,0 +1,48 @@ +# Generated and maintained by the exasol-toolbox. +# Last generated with exasol-toolbox version 10.2.0. +name: Build Matrix + +on: + workflow_call: + inputs: + matrix_keys_json: + description: "JSON array of BaseConfig keys to include in the generated matrix output." + required: true + type: string + outputs: + matrix: + description: "Generates the requested build matrix" + value: ${{ jobs.set-matrix.outputs.matrix }} + +jobs: + set-matrix: + runs-on: "ubuntu-24.04" + permissions: + contents: read + steps: + - name: Check out Repository + id: check-out-repository + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v10 + with: + python-version: "3.10" + poetry-version: "2.3.0" + + - name: Generate Matrix + id: set-matrix + env: + MATRIX_KEYS_JSON: ${{ inputs.matrix_keys_json }} + run: | + readarray -t matrix_keys < <(jq -r '.[]' <<< "$MATRIX_KEYS_JSON") + matrix_json="$(poetry run -- nox -s matrix:generate -- "${matrix_keys[@]}")" + echo "Generated matrix JSON:" + jq . <<< "$matrix_json" + echo "matrix=$matrix_json" >> "$GITHUB_OUTPUT" + + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} diff --git a/.github/workflows/merge-gate.yml b/.github/workflows/merge-gate.yml index 5e6e986..cc5bec8 100644 --- a/.github/workflows/merge-gate.yml +++ b/.github/workflows/merge-gate.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Merge-Gate on: diff --git a/.github/workflows/periodic-validation.yml b/.github/workflows/periodic-validation.yml index e2573e9..1d629d3 100644 --- a/.github/workflows/periodic-validation.yml +++ b/.github/workflows/periodic-validation.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Periodic-Validation on: diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml index c66e6c3..2a98c73 100644 --- a/.github/workflows/report.yml +++ b/.github/workflows/report.yml @@ -1,5 +1,5 @@ # Generated and maintained by the exasol-toolbox. -# Last generated with exasol-toolbox version 10.0.0. +# Last generated with exasol-toolbox version 10.2.0. name: Status Report on: diff --git a/.workflow-patcher.yml b/.workflow-patcher.yml index 7f6e821..b84f304 100644 --- a/.workflow-patcher.yml +++ b/.workflow-patcher.yml @@ -1,14 +1,6 @@ workflows: - - name: cd - # This will be resolved in: - # https://github.com/exasol/exasol-python-test-framework/issues/102 - remove_jobs: - - publish-docs - name: checks remove_jobs: - # This will be resolved in: - # https://github.com/exasol/exasol-python-test-framework/issues/102 - - build-documentation-and-check-links # This will be resolved in: # https://github.com/exasol/exasol-python-test-framework/issues/104 - check-format diff --git a/noxconfig.py b/noxconfig.py index 2aa6721..fb9deca 100644 --- a/noxconfig.py +++ b/noxconfig.py @@ -7,6 +7,19 @@ class Config(BaseConfig): + @computed_field # type: ignore[misc] + @property + def has_documentation(self) -> bool: + """ + Indicates that the project serves Sphinx-based documentation. With a few + exceptions, this should be the case for most projects. + + This needs to be overridden as Sphinx-documentation is not setup. This will + be addressed in: + https://github.com/exasol/exasol-python-test-framework/issues/102 + """ + return False + @computed_field # type: ignore[misc] @property def source_code_path(self) -> Path: From c411caac395ad61d7f2ff3b22d5b9f6340fd9138 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:12:36 +0200 Subject: [PATCH 4/7] Modify slow-checks.yml --- .github/workflows/slow-checks.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index 6886e37..ed36ef7 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -4,14 +4,23 @@ on: workflow_call: jobs: + build-matrix: + name: Build Matrix + uses: ./.github/workflows/matrix.yml + with: + matrix_keys_json: '["python_versions"]' + permissions: + contents: read + run-integration-tests: - runs-on: ubuntu-22.04 + runs-on: "ubuntu-24.04" permissions: contents: read + needs: + - build-matrix strategy: fail-fast: false - matrix: - python-version: ['3.10', '3.11', '3.12'] + matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} steps: - uses: actions/checkout@v6 with: @@ -35,9 +44,9 @@ jobs: - name: Get EXAPLUS run: bash .github/workflows/scripts/download_exaplus.sh "$(pwd)/.." - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@v8 + uses: exasol/python-toolbox/.github/actions/python-environment@v10 with: - python-version: ${{ matrix.python-version }} + python-version: ${{ matrix.python_versions }} poetry-version: "2.3.0" - name: Spawn EXASOL environment run: | From 3e6905979001fe025a481c39ebf179bea939a9e8 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:14:13 +0200 Subject: [PATCH 5/7] Modify .gitattributes --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 47f4bd1..956b876 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,6 +10,7 @@ doc/changes/changelog.md linguist-generated=true .github/workflows/ci.yml linguist-generated=true .github/workflows/dependency-update.yml linguist-generated=true .github/workflows/fast-tests.yml linguist-generated=true +.github/workflows/matrix.yml linguist-generated=true .github/workflows/merge-gate.yml linguist-generated=true .github/workflows/periodic-validation.yml linguist-generated=true .github/workflows/report.yml linguist-generated=true From e57b63962e567e112c7269dbb568aa6c1cc827de Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:18:10 +0200 Subject: [PATCH 6/7] Add changelog entry --- doc/changes/unreleased.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 877ac8c..62171d0 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -18,6 +18,7 @@ - #80: Updated to poetry 2.1.2 - #87: Fixed variable name - #117: Updated `exasol-toolbox` to 10.0.0 +- #119: Updated `exasol-toolbox` to 10.2.0 and re-enabled `check-workflows` in `checks.yml` ## Internal From 013640171ffebf8513111bbd6688951144babab3 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Tue, 7 Jul 2026 11:49:36 +0200 Subject: [PATCH 7/7] Rollback to 22.04 --- .github/workflows/slow-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index ed36ef7..c54fa72 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -13,7 +13,7 @@ jobs: contents: read run-integration-tests: - runs-on: "ubuntu-24.04" + runs-on: "ubuntu-22.04" permissions: contents: read needs: