This project follows the semantic versioning and pre-release versioning schemes recommended by the Python Packaging Authority here.
- test: add the duration of tests to the printed test summary (#852)
- don’t attempt to sort imports on
git push
(they must already be sorted) (#851) - when nuking then also nuke any installed git hooks (except pre-installed sample hooks) to avoid leaving stale hooks behind (#850)
- declare
check-actionlint
goal in Makefile as proper phony (#849) - package metadata did not constrain the upper limit of Python’s version range, set now to <3.14 (#848)
- add support for Python 3.13 (#815)
- ci: also update setuptools when setting up the virtual environment (#795)
- ci: commitizen and CI should fail if the bumped version strings contain inconsistent version numbers (#747)
- ci: use actions/upload-artifact@v4 to be compatible with slsa provenance action (#735)
- ci: fix the artifact name for the Release workflow (#733)
- add support for Python 3.12 (#632)
- deps-dev: revert artifact download and upload GitHub Actions to v3 (#686)
- ci: switch from building the SLSA provenance generator to using the pre-built version to improve runtime performance (#667)
- require pylint v3 and add a slew of optional plugins (#658)
- run doctest as part of running tests, which collects doctests from both the package’s doc strings and the package documentation (#637)
- add perflint to find performance anti-patterns (#675)
- ci: workflow that syncs a repository with this template had multiple problems on patch generation and pushing; also, it can now be triggered via Github UI (#670)
- always fail tests when runtime warnings were raised (#668)
- change git hook to check for large files on commit, instead of push (#664)
- improve, clean up, and stricten the mypy configuration (#641)
- treat Sphinx docs warnings as errors (#648)
- enable Python’s “Development Mode” when running tests to enable resource tracking and add more warnings (#643)
- add flake8-logging plugin to ensure module-level logging is being used correctly (#640)
- ci: improve automatic template synchronization (#537)
- docs: switch to sphinx-markdown-builder package (#585)
- ci: use a Github Repository Variable
DISABLE_PIP_AUDIT
to control runningpip-audit
in CI (#551)
- test: fail pytest if an unraisable/unhandled thread exception was detected during the execution of a test (#576)
- deps: temporarily pin typing-extensions deps, to avoid breaking the sphinxnotes-markdown-builder package (#552)
- ci: add a Rebase Branch workflow to rebase staging on top of main after a package was published (#536)
- add actionlint hook and fix current errors (#505)
- add flake8-pyi plugin to check .pyi files (if any) (#512)
- add CODEOWNERS file to the repository (#511)
- make Black, Flake8, Sphinx play nice together by tweaking a few Flake8 settings (#479)
- ci: add docs/source/ folder to the excludes of the Sync Upstream workflow (#482)
- ci: ensure correct epoch for packaged files to enable reproducible builds (#487)
- test: make pytest a little more verbose when tests fail (#495)
- add a workflow to create sync PRs (#444)
- add flake8-print plugin to the flake8 git pre-commit hook (#473)
- docs: update OSSF Scorecard URL (#468)
- ci: update isort to latest fix because of PyCQA/isort/issues/2077 (#455)
- update project URLs in the package metadata
- test: configure warnings for pytest through pyproject.toml only (#436)
- add workflow to publish code documentation to the Github Wiki upon package releases (#396)
- ci: don’t fail bump job if there are no commits to bump (#428)
- line-length checks are now a bit more tolerant using Bugbear only (#410)
- add .gitattributes file (#407)
- add more default settings for VSCode (#388)
- automatically merge Dependabot PRs on approval (#390)
- ci: make Release Notification a reusable workflow to avoid artifact race (#398)
- determine package version gracefully, even for a deactivated venv (#387)
- ci: update deprecated SLSA provenance generator, again (#394)
- incorrect folder name for pytest (#376)
- don’t nuke an activated virtual environment (#367)
- ci: as of v2 Scorecard requires extra permissions (#366)
- ci: trigger PR actions for all target branches (#357)
- ci: fix actionlint warnings (#348)
- run pytest hook on unstaged files (#347)
- determine an activated venv correctly when running make (#346)
- exit Makefile gracefully if an inactive venv was found (#345)
- ci: use GITHUB_OUTPUT instead of deprecated set-output (#358)
- ci: change deprecated SLSA attestation-name to provenance-name (#359)
- ci: update pytest to drop dependency on vulnerable py package (#354)
- don’t build the package again if a PR was only edited (#336)
- the ‘upgrade-quiet’ Makefile goal now works with BSD date command too (#335)
- a Makefile’s SHELL variable is not an executable shebang (#329)
- use simple expansion consistently for all Makefile variables (#328)
- explicitly specify flake8 configuration for git hooks (#327)
- docs: update README with correct CHANGELOG setup instructions (#320)
- ci: allow release when provenance generation fails (#342)
- add git-audit support when building the package artifacts (#307)
- ci: fix triggering event for the Release Notification action (#317)
- remove trailing CR-LF from package spec when building requirements (#316)
- remove requirements.txt when cleaning the distribution artifacts (#314)
- ensure that config files are passed explicitly to pytest and coverage (#312)
- ci: fix release workflow (#305)
- fix Makefile’s check for goals that require a virtual environment (#299)
- ci: improve the release workflow (#303)
- ci: separate artifacts for release and debugging (#297) (#298)
- persist requirements.txt as a build artifact (#284)
- always create a reproducible build with
make dist
(#272)
- ci: allow PR Action to check commits across branches of forks (#287)
- disable noise when freezing the current venv (#273)
- enable CI on release bump commit (#269)
- ci: remove write permissions from build.yaml (#291)
- generate SLSA level 3 provenance for release artifacts (#259)
- create empty pip.conf file inside a new virtual environment (#264)
- ci: use commitizen tool for pull request action (#263)
- use Bash as the shell to execute Makefile recipes (#256)
- warn if generated builds are not reproducible (#253)
- move private file .upgraded into .venv/ folder (#248)
- default goal for make should be to build the entire package (#257)
- remove shebang comment from Makefile which isn’t actually runable (#252)
- replace the Makefile’s quick-check goal with check-code (#239)
- add pytest-env and pytest-custom-exit-code plugin support (#243)
- flit doesn’t support MANIFEST.in, fix sdist accordingly (#244)
- add explicit settings path to isort in pre-commit configuration (#233)
- consolidate sdist and wheel into a single build target (#229)
- ci: run all Actions except the Release job on the release commit (#230)
- bump min pytest version according to the "test" dependencies (#220)
- don’t pin Black to a particular Python version (#217)
- ci: refactor and address security issues in workflows (#211)
- move package specification, tool configs to pyproject.toml (#208)
- ci: Release Action needs to use flit, too
- ci: use dedicated RELEASE_TOKEN for Release Action job (#219)
- ci: enable Release Action for private, protected branches (#209)
- add missing phony target to Makefile (#200)
- add scorecards analysis workflow (#105)
- on Windows, pip needs to run as a module (#194)
- fix "make dist" failing on latest version of Ubuntu (#190)
- pass pylint configuration to pylint explicitly (#188)
- correctly depend on and ignore .upgraded Makefile helper file (#187)
- add Makefile to enable the “Scripted Build” rule for SLSA Level 1 (#74)
- enable CodeQL security analyzer (#92)
- generate a command-line tool when installing this package (#89)
- change .yml to .yaml in documentation (#101)
- remove exclude option from mypy.ini (#98)
- add type marker to enable mypy’s use of this typed package (#55)
- git hook configuration didn’t match package paths anymore (#39)
- add dependency analysis for automatic version updates (#3)
- Initial version of the Python package template