Releases: exasol/python-toolbox
1.7.3
1.7.2
1.7.2 - 2025-07-31
Summary
GPU runners throughout our various Python repositories were breaking due to underlying
changes in the runners. This affected the usage of the python-environment/action,
and it could be resolved by adding --break-system-packages to the pip install
command. The behavior then is to default to the user installation, which avoids
the global issues the GPU runners were running into.
Bugfix
- Modified pip install statement to include --break-system-packages
1.7.1
1.7.0
1.7.0 - 2025-07-28
Summary
This version of the PTB alters the nox session release:prepare to include direct dependency changes between the current and latest tag (based on the poetry.lock files).
This benefits developers by automating the cumbersome process of determining what changed between tags, and it does so
in a deterministic and consistent way. If there are dependency changes, then they will be rendered
as:
## Dependency Updates
### `main`
* Updated dependency `package_1:0.0.1` to `0.1.0`
### `dev`
* Added dependency `package_2:0.2.0`Documentation
- #504: Removed Issue Tracking & Style Guides, moved & updated "Create a release", moved & updated "Collecting metrics"
Feature
- #382: Added onto nox session
release:prepareto append dependency changes between current and latest tag
Refactoring
- #498: Centralized changelog code relevant for
release:trigger& robustly tested
Dependency Updates
main
- Updated dependency
furo:2024.8.6to2025.7.19 - Updated dependency
mypy:1.16.1to1.17.0 - Updated dependency
shibuya:2025.5.30to2025.7.14
1.6.1
1.6.1 - 2025-07-16
Summary
This version of the PTB resolves many bugs associated with the cookiecutter template
and creating a new project that uses the PTB.
If any directories or files specified in your noxconfig.py via Config.source should
not be included in a Sonar analysis, it is recommended to add the following to
your pyproject.toml under the [tool.sonar] section:
exclusions = "<source-directory>/version.py,<source_directory>/<directory-to-ignore>/*"Bugfixes
- #489: Fixed .pre-commit-config.yaml to use existing nox tasks
- #490: Fixed artifacts:validate & sonar:check to work for newly created projects
- #484: Fixed hint command text in version.py to include -s for executing nox task
Documentation
- #488: Updated user guide to make clearer under which conditions branch protections based on GitHub actions can be enacted
Refactoring
- #482: Updated pull_request_template.md to reflect checks we should regularly perform
1.6.0
1.6.0 - 2025-06-27
Summary
Links in the Documentation
This version of the PTB adds nox tasks to check links present in our documentation:
links:list - List all the links within the documentation
links:check - Checks whether all links in the documentation are accessible
links:check is run in the CI checks.yml. If this step fails in the CI, it will cause
the build to break. Please check the output & manually resolve the issues. There might
be some cases where you need to update your doc/conf.py with specific values for the allowed
options for the Linkcheck Builder.
We recommend the following values be added:
linkcheck_rate_limit_timeout = 60
linkcheck_timeout = 15
linkcheck_delay = 30
linkcheck_retries = 2
linkcheck_anchors = False
linkcheck_ignore: list[str] = []
linkcheck_allowed_redirects = {
# All HTTP redirections from the source URI to
# the canonical URI will be treated as "working".
r"https://github\.com/.*": r"https://github\.com/login*"
}
✨ Features
- #409: Doc link & checks
Refactoring
- Switched deprecated Pydantic class-based
configtoConfigDict
Security
- #477: Switched
sonar:checkto useSONAR_TOKENfrom the environment
1.5.0
1.5.0 - 2025-06-18
Summary
This version of the PTB adds nox task sonar:check, see #451. This allows us to
use SonarQube Cloud to analyze, visualize, & track linting, security, & coverage. To
set it up, you'll need to execute the following instructions.
For a public project
- Specify in the
noxconfig.pythe relative path to the project's source code inConfig.sourcesource: Path = Path("exasol/<project-source-folder>")
- Add the 'SONAR_TOKEN' to the 'Organization secrets' in GitHub (this requires a person being a GitHub organization owner)
- Activate the SonarQubeCloud App
- Create a project on SonarCloud
- Add the following information to the project's file
pyproject.toml[tool.sonar] projectKey = "com.exasol:<project-key>" hostUrl = "https://sonarcloud.io" organization = "exasol"
- Post-merge, update the branch protections to include SonarQube analysis
For a private project
- Specify in the
noxconfig.pythe relative path to the project's source code inConfig.sourcesource: Path = Path("exasol/<project-source-folder>")
- Add the 'PRIVATE_SONAR_TOKEN' to the 'Organization secrets' in GitHub (this requires a person being a GitHub organization owner)
- Activate the exasonarqubeprchecks App
- Create a project on https://sonar.exasol.com
- Add the following information to the project's file
pyproject.toml[tool.sonar] projectKey = "com.exasol:<project-key>" hostUrl = "https://sonar.exasol.com" organization = "exasol"
- Post-merge, update the branch protections to include SonarQube analysis from exasonarqubeprchecks
✨ Features
- #451: Added nox task to execute pysonar & added Sonar to the CI
⚒️ Refactorings
- #451: Reduced scope of nox tasks
lint:code(pylint) andlint:security(bandit) to analyze only the package code
1.4.0
1.3.0
1.3.0 - 2025-06-02
Summary
This version of the PTB updates nox task version:check, see #441.
This requires file noxconfig.py of each project to specify the path to version.py in Config.version_file.
With this version of the PTB you can customize the arguments for pyupgrade in file noxconfig.py, see ticket #449 for details:
pyupgrade_args = ("--py310-plus",)📚 Documentation
- Updated getting_started.rst for allowing tag-based releases
✨ Features
- #441: Switched nox task for
version:checkto use the config value ofversion_fileto specify the location of theversion.py
🐞 Bug Fixes
- Updated
python-environmentaction to use space-separated values for extras
⚒️ Refactorings
- #449: Refactored
dependency:licenses:- to use pydantic models &
poetry showfor dependencies - to updated reading the
pyproject.tomlto be compatible with poetry 2.x+
- to use pydantic models &
🔩 Internal
- Relocked dependencies
1.2.0
1.2.0 - 2025-05-20
Summary
With #420, any GitHub repos using the PTB for documentation will also need to
reconfigure the GitHub Pages settings for each repo:
- Go to the affected repo's GitHub page
- Select 'Settings'
- Scroll down & select 'Pages'
- Within the 'Build and deployment' section, change 'Source' to 'GitHub Actions'.
This should also create a 'github-pages' environment, if it does not yet exist.
We'll also need to configure settings for github-pages environment:
- Go to the affected repo's GitHub page
- Select 'Settings'
- Scroll down & select 'Environment'
- Click on 'github-pages'
- In the 'Deployment branches and tags', click 'Add deployment branch or tag rule'
- Select 'Ref type' to be 'Tag' and set the 'Name pattern' to
[0-9]*.[0-9]*.[0-9]*(or whatever matches that repo's tags)
For most repos using the PTB, the updating of the github pages only happens when a
PR is merged to main, so please check post-merge that it worked as expected.
With #422, we have hardened the security in our GitHub workflows by explicitly
setting permissions to the default GitHub token. In a few repos who greatly differ
from the default PTB setup, this might lead to small issues which require the allowed
permissions to be increased for specific jobs.
⚒️ Refactorings
- #412: Refactored pre commit hook package version.py into nox task
Security
- #420: Replaced 3rd party action with GitHub actions for gh-pages
- #422: Set permissions within the GitHub workflows to restrict usage of the default GitHub token
✨ Features
- #161: Added support for installing extras & not using a cache to the python-environment action
- #408: Added support for GitHub runners who do not per default have pipx to use the python-environment action
- #433: Removed directory .html-documentation/.doctrees after creating documentation
- #436: Updated template for new projects to poetry 2.x