Skip to content

Commit 4c0ea95

Browse files
committed
Prepare release 4.0.0
1 parent 4e73b31 commit 4c0ea95

File tree

15 files changed

+124
-111
lines changed

15 files changed

+124
-111
lines changed

.github/actions/security-issues/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ runs:
3939
- name: Install Python Toolbox / Security tool
4040
shell: bash
4141
run: |
42-
pip install exasol-toolbox==3.0.0
42+
pip install exasol-toolbox==4.0.0
4343
4444
- name: Create Security Issue Report
4545
shell: bash

doc/changes/changelog.md

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/changes/changes_4.0.0.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 4.0.0 - 2025-12-09
2+
3+
## Summary
4+
5+
This major release removes `project:fix` and `project:format`
6+
and replaces them with `format:fix` and `format:check`.
7+
8+
The `BaseConfig` has been extended to handle the commonly provided paths:
9+
* `root` is now `root_path`
10+
* `source` is now covered by `project_name` and `source_code_path`, which uses `root_path` and `project_name`
11+
* `doc` is now `documentation_path`
12+
* `version_file` is now `version_filepath`
13+
14+
If your project was previously defining these values, your **before** would look like:
15+
16+
```python
17+
from __future__ import annotations
18+
19+
from pathlib import Path
20+
from typing import Iterable
21+
22+
from exasol.toolbox.config import BaseConfig
23+
24+
25+
class Config(BaseConfig):
26+
root: Path = Path(__file__).parent
27+
doc: Path = Path(__file__).parent / "doc"
28+
source: Path = Path("exasol/{{cookiecutter.package_name}}")
29+
version_file: Path = (
30+
Path(__file__).parent
31+
/ "exasol"
32+
/ "{{cookiecutter.package_name}}"
33+
/ "version.py"
34+
)
35+
plugins: Iterable[object] = ()
36+
37+
PROJECT_CONFIG = Config()
38+
```
39+
40+
With this major release, you **should modify** your project's `noxconfig.py` to look like:
41+
```python
42+
from __future__ import annotations
43+
44+
from pathlib import Path
45+
46+
from exasol.toolbox.config import BaseConfig
47+
48+
"""
49+
A class `Config` only needs to be defined if:
50+
- you have custom attributes to pass to your project-defined nox sessions
51+
- you need to override a convention in the PTB.
52+
53+
These values do NOT need to be defined if your project follows the convention
54+
expected from the PTB:
55+
- documentation_path
56+
- source_code_path
57+
- version_filepath
58+
59+
If your values differ, you can override these properties with the needed values when
60+
you define `class Config(BaseConfig)`. We highly recommend that you create an issue
61+
to remove this override in the future by aligning your project's structure with
62+
that expected by the PTB.
63+
64+
If you have additional Paths that used one of these values (i.e. `root_path`), then
65+
you can define your own property in `class Config(BaseConfig)`, which accesses the
66+
class values
67+
"""
68+
class Config(BaseConfig):
69+
custom_field: str = "custom_field"
70+
71+
# For most projects, the PROJECT_CONFIG would look like:
72+
PROJECT_CONFIG = BaseConfig(
73+
project_name="{{cookiecutter.package_name}}",
74+
root_path=Path(__file__).parent,
75+
)
76+
```
77+
78+
## Refactoring
79+
80+
* #606: Renamed nox session `project:fix` more aptly to `format:fix` and `project:format` to `format:check`
81+
* #604: Updated `BaseConfig.exasol_versions` to `("7.1.30", "8.29.13", "2025.1.8")`
82+
83+
## Feature
84+
85+
* #614: Replaced `path_filters` with `BaseConfig.add_to_excluded_python_paths` and `BaseConfig.excluded_python_paths`
86+
* #626: Replaced `plugins` with `BaseConfig.plugins_for_nox_sessions`
87+
* #621: Moved path specifications into `BaseConfig`
88+
* `root` is now `root_path`, which must be specified by the project
89+
* `source` is now covered by `project_name`, which must be specified by the project,
90+
and `source_code_path`, which uses `root_path` and `project_name`
91+
* `doc` is now `documentation_path` and no longer needs to be specified
92+
* `version_file` is now `version_filepath` and no longer needs to be specified
93+
94+
## Dependency Updates
95+
96+
### `main`
97+
* Updated dependency `bandit:1.9.1` to `1.9.2`
98+
* Updated dependency `mypy:1.18.2` to `1.19.0`
99+
* Updated dependency `pre-commit:4.4.0` to `4.5.0`
100+
* Updated dependency `pydantic:2.12.4` to `2.12.5`
101+
* Updated dependency `pylint:4.0.3` to `4.0.4`
102+
* Updated dependency `ruff:0.14.5` to `0.14.8`

doc/changes/unreleased.md

Lines changed: 0 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1 @@
11
# Unreleased
2-
3-
## Summary
4-
5-
This major release removes `project:fix` and `project:format`
6-
and replaces them with `format:fix` and `format:check`.
7-
8-
The `BaseConfig` has been extended to handle the commonly provided paths:
9-
* `root` is now `root_path`
10-
* `source` is now covered by `project_name` and `source_code_path`, which uses `root_path` and `project_name`
11-
* `doc` is now `documentation_path`
12-
* `version_file` is now `version_filepath`
13-
14-
If your project was previously defining these values, your **before** would look like:
15-
16-
```python
17-
from __future__ import annotations
18-
19-
from pathlib import Path
20-
from typing import Iterable
21-
22-
from exasol.toolbox.config import BaseConfig
23-
24-
25-
class Config(BaseConfig):
26-
root: Path = Path(__file__).parent
27-
doc: Path = Path(__file__).parent / "doc"
28-
source: Path = Path("exasol/{{cookiecutter.package_name}}")
29-
version_file: Path = (
30-
Path(__file__).parent
31-
/ "exasol"
32-
/ "{{cookiecutter.package_name}}"
33-
/ "version.py"
34-
)
35-
plugins: Iterable[object] = ()
36-
37-
PROJECT_CONFIG = Config()
38-
```
39-
40-
With this major release, you **should modify** your project's `noxconfig.py` to look like:
41-
```python
42-
from __future__ import annotations
43-
44-
from pathlib import Path
45-
46-
from exasol.toolbox.config import BaseConfig
47-
48-
"""
49-
A class `Config` only needs to be defined if:
50-
- you have custom attributes to pass to your project-defined nox sessions
51-
- you need to override a convention in the PTB.
52-
53-
These values do NOT need to be defined if your project follows the convention
54-
expected from the PTB:
55-
- documentation_path
56-
- source_code_path
57-
- version_filepath
58-
59-
If your values differ, you can override these properties with the needed values when
60-
you define `class Config(BaseConfig)`. We highly recommend that you create an issue
61-
to remove this override in the future by aligning your project's structure with
62-
that expected by the PTB.
63-
64-
If you have additional Paths that used one of these values (i.e. `root_path`), then
65-
you can define your own property in `class Config(BaseConfig)`, which accesses the
66-
class values
67-
"""
68-
class Config(BaseConfig):
69-
custom_field: str = "custom_field"
70-
71-
# For most projects, the PROJECT_CONFIG would look like:
72-
PROJECT_CONFIG = BaseConfig(
73-
project_name="{{cookiecutter.package_name}}",
74-
root_path=Path(__file__).parent,
75-
)
76-
```
77-
78-
## Refactoring
79-
80-
* #606: Renamed nox session `project:fix` more aptly to `format:fix` and `project:format` to `format:check`
81-
* #604: Updated `BaseConfig.exasol_versions` to `("7.1.30", "8.29.13", "2025.1.8")`
82-
83-
## Feature
84-
85-
* #614: Replaced `path_filters` with `BaseConfig.add_to_excluded_python_paths` and `BaseConfig.excluded_python_paths`
86-
* #626: Replaced `plugins` with `BaseConfig.plugins_for_nox_sessions`
87-
* #621: Moved path specifications into `BaseConfig`
88-
* `root` is now `root_path`, which must be specified by the project
89-
* `source` is now covered by `project_name`, which must be specified by the project,
90-
and `source_code_path`, which uses `root_path` and `project_name`
91-
* `doc` is now `documentation_path` and no longer needs to be specified
92-
* `version_file` is now `version_filepath` and no longer needs to be specified

exasol/toolbox/templates/github/workflows/build-and-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: actions/checkout@v5
1919

2020
- name: Setup Python & Poetry Environment
21-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
21+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
2222

2323
- name: Build Artifacts
2424
run: poetry build

exasol/toolbox/templates/github/workflows/check-release-tag.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@v5
1616

1717
- name: Setup Python & Poetry Environment
18-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
18+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
1919

2020
- name: Check Tag Version
2121
# make sure the pushed/created tag matched the project version

exasol/toolbox/templates/github/workflows/checks.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
fetch-depth: 0
1717

1818
- name: Setup Python & Poetry Environment
19-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
19+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
2020

2121
- name: Check Version(s)
2222
run: poetry run -- nox -s version:check
@@ -32,7 +32,7 @@ jobs:
3232
uses: actions/checkout@v5
3333

3434
- name: Setup Python & Poetry Environment
35-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
35+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
3636

3737
- name: Build Documentation
3838
run: |
@@ -59,7 +59,7 @@ jobs:
5959
uses: actions/checkout@v5
6060

6161
- name: Setup Python & Poetry Environment
62-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
62+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
6363

6464
- name: Run changelog update check
6565
run: poetry run -- nox -s changelog:updated
@@ -78,7 +78,7 @@ jobs:
7878
uses: actions/checkout@v5
7979

8080
- name: Setup Python & Poetry Environment
81-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
81+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
8282
with:
8383
python-version: ${{ matrix.python-version }}
8484

@@ -109,7 +109,7 @@ jobs:
109109
uses: actions/checkout@v5
110110

111111
- name: Setup Python & Poetry Environment
112-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
112+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
113113
with:
114114
python-version: ${{ matrix.python-version }}
115115

@@ -131,7 +131,7 @@ jobs:
131131
uses: actions/checkout@v5
132132

133133
- name: Setup Python & Poetry Environment
134-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
134+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
135135
with:
136136
python-version: ${{ matrix.python-version }}
137137

@@ -155,7 +155,7 @@ jobs:
155155
uses: actions/checkout@v5
156156

157157
- name: Setup Python & Poetry Environment
158-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
158+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
159159

160160
- name: Run format check
161161
run: poetry run -- nox -s format:check
@@ -171,7 +171,7 @@ jobs:
171171
uses: actions/checkout@v5
172172

173173
- name: Setup Python & Poetry Environment
174-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
174+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
175175

176176
- name: Run Distribution Check
177177
run: poetry run -- nox -s package:check
@@ -191,7 +191,7 @@ jobs:
191191
uses: actions/checkout@v5
192192

193193
- name: Setup Python & Poetry Environment
194-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
194+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
195195
with:
196196
python-version: ${{ matrix.python-version }}
197197

exasol/toolbox/templates/github/workflows/gh-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
fetch-depth: 0
1818

1919
- name: Setup Python & Poetry Environment
20-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
20+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
2121

2222
- name: Build Documentation
2323
run: |

exasol/toolbox/templates/github/workflows/matrix-all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@v5
1818

1919
- name: Setup Python & Poetry Environment
20-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
20+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
2121

2222
- name: Generate matrix
2323
run: poetry run -- nox -s matrix:all

exasol/toolbox/templates/github/workflows/matrix-exasol.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@v5
1818

1919
- name: Setup Python & Poetry Environment
20-
uses: exasol/python-toolbox/.github/actions/python-environment@v3
20+
uses: exasol/python-toolbox/.github/actions/python-environment@v4
2121

2222
- name: Generate matrix
2323
run: poetry run -- nox -s matrix:exasol

0 commit comments

Comments
 (0)