Changelog archive

Older releases (5.14.1 and earlier). For the current 6.x releases, see the changelog.

5.14.1 (2026-02-24)

Note

5.14.1 is available on 🐍 PyPI.

Warning

5.14.1 is not available on 🐙 GitHub.

  • Re-release 5.14.0 as 5.14.1 on PyPI but update Python package metadata to point to the new repomatic name and repository URL instead of repokit.

5.14.0 (2026-02-24)

Caution

5.14.0 has been yanked from PyPI.

Warning

Attempt to be the final release under gha-utils name on PyPI, with metadata pointing to repokit. This release was yanked after the repokit name was rejected by PyPI for typo-squatting the pre-existing repo-kit package.

Note

5.14.0 is available on 🐙 GitHub.

  • Add messages to redirect PyPI package from gha-utils to repokit and GitHub repository from kdeldycke/workflows to kdeldycke/repokit.

5.13.0 (2026-02-23)

Note

5.13.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Harmonize sync/update naming across CLI commands, workflow jobs, PR branches, and templates. sync-X means regenerate from a canonical source; update-X means compute from project state. Breaking renames: update-gitignoresync-gitignore, mailmap-syncsync-mailmap, deps-graphupdate-deps-graph. New sync-bumpversion CLI command replaces init bumpversion in the autofix job. Fix autofix-typo branch → fix-typos.

  • Add Claude Code skills (.claude/skills/) wrapping gha-utils CLI commands as slash commands: /gha-init, /gha-changelog, /gha-release, /gha-lint, /gha-sync, /gha-deps, /gha-test, /gha-metadata. Distribute skills via gha-utils init skills and gha-utils sync-skills for downstream repos.

  • Add sync-renovate CLI command and autofix workflow job to keep downstream renovate.json5 in sync with the canonical reference from gha-utils. Opt out via renovate-sync = false in [tool.gha-utils].

  • Add workflow-sync and workflow-sync-exclude config keys to [tool.gha-utils] for per-project control over which workflows are synced. Explicit CLI positional arguments override both settings.

  • Add --format header-only mode to gha-utils workflow sync for syncing headers (name, on, concurrency) of non-reusable workflows like tests.yaml.

  • Use explicit --format thin-caller in autofix.yaml sync step.

  • Fix race condition where binary builds could finish before create-release, causing gh release upload to fail with “release not found”. Make compile-binaries depend on create-release.

  • Add lint-workflow-security job to lint workflow using zizmor to detect security vulnerabilities in GitHub Actions workflows. Closes #1478.

  • Add sync-linter-configs CLI command and autofix job to sync .github/zizmor.yml to downstream repos. Add linters init component.

  • Add per-project dependency graph configuration to [tool.gha-utils]: dependency-graph-all-groups, dependency-graph-all-extras, dependency-graph-no-groups, dependency-graph-no-extras, and dependency-graph-level. The update-deps-graph command reads these as defaults, with CLI flags taking precedence. The autofix workflow no longer hardcodes --all-groups --all-extras.

5.12.0 (2026-02-22)

Note

5.12.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Decouple GitHub release creation from binary builds. The release is published immediately after tagging with the Python package only; each binary uploads itself independently as its build completes.

  • Remove gha-utils collect-artifacts subcommand. Binary renaming and upload is now handled directly in the compile-binaries workflow job.

  • Add nuitka-extra-args config field to [tool.gha-utils] for project-specific Nuitka flags. Remove hard-coded Nuitka includes from the workflow. Fixes downstream repos failing on gha_utils/templates/*.md include.

  • Add 🪫 AI slop label. Merge 🎁 feature request into enhancement. Fix label descriptions and normalize hex color casing.

5.11.1 (2026-02-21)

Note

5.11.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Declare WORKFLOW_UPDATE_GITHUB_PAT as an optional workflow_call secret to fix downstream compatibility.

  • Fix Renovate postUpgradeTasks failing to update SHA-256 checksums. Replace containerbase install-tool uv with a direct pinned binary download verified by SHA-256.

  • Fix gha-utils workflow sync defaulting to @main instead of the version tag when run from a released package.

5.11.0 (2026-02-21)

Note

5.11.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add --no-group, --no-extra, --only-group, and --only-extra options to deps-graph command.

  • Make gha-utils init bumpversion idempotent: updates existing [tool.bumpversion] configs with dev versioning keys (parse, serialize, [parts.dev]) and bumps current_version to .dev0.

  • Add ::error:: annotation when create-pull-request fails due to missing WORKFLOW_UPDATE_GITHUB_PAT secret.

  • Add Dependabot alerts and Issues permissions to setup-guide issue template, matching the readme.

  • Document which jobs use WORKFLOW_UPDATE_GITHUB_PAT and why each permission is needed.

  • Skip PyPI package build for the post-release bump commit during releases.

5.10.4 (2026-02-19)

Note

5.10.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace revert-squash-merge auto-revert with detect-squash-merge notification. On accidental squash merge of a release PR, the job now opens a GitHub issue and fails the workflow instead of reverting on main. The release is skipped; the maintainer releases the next version when ready.

  • Skip lint-changelog job on release and post-release commits.

  • Skip Nuitka binary builds for the post-release bump commit during releases, halving the number of builds.

  • Fix freeze/unfreeze cycle corrupting YAML and JSON5 comments that mention --from . gha-utils.

5.10.3 (2026-02-19)

Note

5.10.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Add --include-package-data=extra_platforms to Nuitka build to fix FileNotFoundError on architecture_data.py in compiled binaries.

  • Add sync-uv-lock command that runs uv lock and avoid exclude-newer-package timestamp noise.

  • Add sync-uv-lock job to autofix.yaml to replace Renovate’s lockFileMaintenance, which cannot reliably revert timestamp-only noise in uv.lock.

  • Remove update-exclude-newer command.

  • Remove Renovate lockFileMaintenance configuration and its postUpgradeTasks rule.

  • Revert exclude-newer in pyproject.toml from a fixed date to "1 week".

5.10.2 (2026-02-18)

Note

5.10.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils lint-changelog command to verify changelog release dates against PyPI upload dates, with git tag fallback for non-PyPI projects.

  • Add auto-correct changelog capabilities to fix dates and add availability admonitions for PyPI and GitHub releases.

  • Add lint-changelog job to autofix.yaml to auto-fix changelog dates and admonitions via PR.

  • Add PyPI and GitHub release availability admonitions in changelog.

  • Change development warning from [!IMPORTANT] to [!WARNING] GFM alert.

  • Document version and tag naming conventions.

  • Fix Renovate postUpgradeTasks failing with uvx: not found by installing tools via binarySource: install inside the Renovate Docker container.

  • Fix Renovate aborting entirely when python.org API is rate-limited.

  • Move exclude-newer date update from direct push to main into Renovate’s lock file maintenance PR via postUpgradeTasks.

  • Skip Nuitka binary builds for non-code pushes to main.

5.10.1 (2026-02-17)

Note

5.10.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix publish-github-release job failing because actions/checkout wiped downloaded artifacts.

  • Fix broken links issue being created when lychee exits with a non-zero code but produces no output file.

5.10.0 (2026-02-16)

Note

5.10.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils init command to bootstrap repositories for reusable workflows.

  • Add sync-workflows job to autofix.yaml for downstream repos to keep their thin-caller workflow files in sync.

  • Add setup-guide job to autofix.yaml for user onboarding and configuration validation.

  • Add reopen support to issue lifecycle management. Previously closed issues are reopened instead of creating duplicates.

  • Add SHA-256 checksum verification for all lychee, typos, Biome and labelmaker binary downloads, with gha-utils update-checksums command and Renovate postUpgradeTasks for automatic updates.

  • Fix creation of GitHub release in create-release job.

  • Replace thin-wrapper lycheeverse/lychee-action, crate-ci/typos and biomejs/setup-biome actions by direct binary downloads for better performance and reliability.

  • Auto-detect options values from $GITHUB_REPOSITORY for broken-links, lint-repo and release-prep commands.

  • Auto-detect version in pr-body from [tool.bumpversion] in pyproject.toml.

  • Add .dev0 suffix to development versions per PEP 440, with --version flag appending the short git commit hash for dev versions (e.g., 5.9.2.dev0+abc1234). Closes #169.

  • Add quick start tutorial to readme.

  • Consolidate Lychee and Sphinx linkcheck broken link reports into a single “Broken links” issue.

  • Add Full Changelog comparison URL link to GitHub release notes.

  • Default mailmap-sync destination to the source file path (in-place update) instead of stdout.

  • Enable consecutive ordered list numbering (--number) in mdformat.

  • Display auto-detected environment from extra-platforms in debug.yaml workflow.

  • Move release notes, PR metadata block, and refresh tip to markdown templates in gha_utils/templates/.

  • Regroup GitHub-specific modules under gha_utils/github/.

  • Remove merge-method-notice job.

  • Remove gha-utils bundled subcommand group.

  • Experiment with Claude agents.

5.9.1 (2026-02-15)

Note

5.9.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Refactor PR body templates from Python literals to markdown files with YAML frontmatter for metadata (titles, commit messages). The pr-body CLI now outputs title and commit_message alongside body.

  • Add and enrich PR templates for all autofix jobs, version bumps, release preparation, and .gitignore updates.

  • Dogfood gha-utils from local source on main branch via uvx --from . gha-utils. During release freeze, CLI invocations are frozen back to a PyPI version for downstream compatibility.

  • Add fallback jobs to release.yaml to detect and auto-reverts squash-merged release PRs.

  • Rebase lock file maintenance PR whenever main advances, not just on conflicts.

  • Remove --insecure flag and redirect-suppression excludes from lychee configuration.

5.9.0 (2026-02-14)

Note

5.9.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils workflow command group with create, sync, and lint subcommands.

  • Add [tool.gha-utils] nuitka option to opt out of Nuitka binary compilation.

  • Move all reusable workflow inputs to [tool.gha-utils] in pyproject.toml.

  • Add gha-utils update-gitignore subcommand replacing shell-based .gitignore generation.

  • Have lint-repo read package_name, is_sphinx, and project_description directly from pyproject.toml.

  • Add --source-url option to gha-utils sphinx-linkcheck.

  • Include actual output in test-plan assertion error messages.

  • Replace pr-metadata composite action with gha-utils pr-body subcommand.

  • Have test-plan and deps-graph read [tool.gha-utils] config directly from pyproject.toml.

  • Drop --force from sphinx-apidoc in update-docs job to preserve downstream RST customizations.

  • Recreate version bump PRs on every push to main to prevent merge conflicts.

  • Fix <details> tag in PR body rendered as code block due to indentation.

  • Deduplicate gitignore-extra-categories with base categories while preserving order.

  • Add --template option to gha-utils pr-body with built-in bump-version and prepare-release templates.

  • Add refresh tip admonition to all auto-created PR bodies.

  • Pin lychee binary version in docs.yaml and add Renovate custom manager for updates.

5.8.0 (2026-02-11)

Note

5.8.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix stale checkout in bump-versions causing merge conflicts after releases.

  • Add cancel-runs.yaml workflow to cancel in-progress and queued runs when a PR is closed.

  • Add gha-utils pr-body subcommand to generate PR body with workflow metadata.

  • Remove update-cli-pins job from release.yaml. Renovate already handles updating gha-utils version.

5.7.2 (2026-02-11)

Note

5.7.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace taiki-e/install-action with direct curl download for labelmaker binary.

  • Fix update-cli-pins job failing due to shallow clone.

  • Fix changelog.yaml concurrency race from fast-completing release.yaml.

  • Include version numbers in post-release commit message (e.g. [changelog] Post-release bump v5.7.1 v5.7.2).

  • Only run debug.yaml workflow manually and once a month.

  • Document the freeze/unfreeze release commit vocabulary.

  • Document the ✅/⁉️ convention for stable vs. unstable jobs.

5.7.1 (2026-02-10)

Note

5.7.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix gha-utils CLI version pins stuck at 5.6.1 by moving pin updates to a post-release update-cli-pins job in release.yaml that runs after the new version is published to PyPI.

  • Add build provenance attestation to build-package job for defense-in-depth supply chain security.

  • Add .mdx to recognized Markdown file extensions for ruff formatting and file discovery.

  • Preserve [project.entry-points] table format in format-pyproject autofix job.

  • Move 6 autofix jobs (fix-typos, optimize-images, update-mailmap, update-deps-graph, update-docs, sync-awesome-template) from docs.yaml to autofix.yaml.

  • Move check-broken-links job from lint.yaml to docs.yaml.

  • Harmonize job IDs to consistent verb-target naming: autofix-typo to fix-typos, awesome-template-sync to sync-awesome-template, lint-mypy to lint-types, lint-github-action to lint-github-actions, check-secrets to lint-secrets, package-build to build-package, pypi-publish to publish-pypi, github-release to create-release, git-tag to create-tag, version-increments to bump-versions, sphinx-linkcheck to check-sphinx-links, broken-links to check-broken-links.

5.7.0 (2026-02-09)

Note

5.7.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils sphinx-linkcheck command to detect broken auto-generated links.

  • Replace blacken-docs by ruff for Markdown code formatting.

  • Remove blacken_docs_params from gha-utils metadata output.

  • Fix update-deps-graph job.

  • Fix pr-metadata action stripping backticks from PR body.

  • Fix mappingproxy object pickling error in test plan execution on Python < 3.13.

  • Fix UnicodeEncodeError on Windows for mailmap-sync command and test plan execution.

  • Simplify changelog.yaml concurrency to be always-cancellable.

  • Prevent redundant prepare-release double-runs on every push to main.

  • Add workflow_dispatch trigger to all workflows except release.yaml for manual re-runs from the Actions UI.

  • Skip expensive test matrix on doc-only and workflow-only changes.

5.6.2 (2026-02-02)

Note

5.6.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Auto-update gha-utils==X.Y.Z CLI version pins in workflow files during release.

5.6.1 (2026-02-02)

Note

5.6.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Add missing renovate.json5 template file from the bundled Python package.

  • Keep bundled renovate.json5 configuration in sync with root file from this repository.

  • Add --no-progress to all uvx commands in workflows for cleaner CI logs.

  • Add --frozen --no-progress to uv run commands in workflows for reproducible builds.

  • Detect Renovate PRs by branch name pattern (renovate/*) to skip labellers when Renovate runs as a user account.

  • Rename update-autodoc job to update-docs and run docs/docs_update.py if present to generate dynamic content (tables, diagrams, directives) after sphinx-apidoc.

5.6.0 (2026-02-02)

Note

5.6.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add migrate-to-renovate job to renovate.yaml workflow that creates a PR that create a renovate.json5 and remove Dependabot config.

  • Add dynamic prerequisites status table to migration PR body with links to settings pages.

  • Add --format option to gha-utils check-renovate for JSON and GitHub Actions output formats.

  • Move prerequisite validation to renovate job to fail fast if requirements aren’t met.

  • Rename gha-utils check-renovate-prereqs to gha-utils check-renovate.

  • Fix gha-utils update-exclude-newer to handle relative date strings.

5.5.1 (2026-01-30)

Note

5.5.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace workflow shell scripts with CLI commands.

  • Add pr-metadata composite action to deduplicate PR body metadata across workflows.

  • Increase Renovate minimumReleaseAge for patches from 5 to 8 days to avoid proposing updates blocked by uv’s exclude-newer setting.

  • Enhance gha-utils update-exclude-newer to add missing exclude-newer when [tool.uv] section exists.

  • Add renovate.json5 to bundled exports for Dependabot-to-Renovate migration.

  • Add Dependabot config check to lint-repo command with migration guidance.

  • Fix Codecov upload by splitting report_type into separate action calls.

5.5.0 (2026-01-29)

Note

5.5.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils update-exclude-newer command to update the exclude-newer date in pyproject.toml.

  • Add gha-utils check-renovate-prereqs command to validate Renovate prerequisites.

  • Add gha-utils lint-repo command to run repository consistency checks.

  • Add gha-utils git-tag command for idempotent Git tag creation and pushing.

  • Add gha-utils verify-binary command to verify compiled binary architectures using exiftool.

  • Add gha-utils collect-artifacts command to collect and rename artifacts for GitHub releases.

  • Add gha-utils broken-links command to manage broken link issue lifecycle.

  • Add gha-utils deps-graph command to generate Mermaid dependency graphs from uv lockfile.

  • Replace pipdeptree with uv export --format cyclonedx1.5 for dependency graph generation.

  • Consolidate all bundled files under gha-utils bundled export <filename> command.

  • Add bundled mypy and pytest configuration templates.

  • Use actual filenames with extensions as type IDs (e.g., labels.toml, labeller-file-based.yaml).

  • Add smart default output paths for each file type (shown with --list).

  • Replace eslint with biome for JSON formatting.

  • Format pyproject.toml file with pyproject-fmt.

5.4.0 (2026-01-25)

Note

5.4.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add unified gha-utils config command group with init, export, labels, and workflows subcommands.

  • Move gha-utils labels to gha-utils config labels subcommand.

  • Move gha-utils workflows to gha-utils config workflows subcommand.

  • Merge all configuration modules (labels.py, workflows.py) into unified bundled_config module.

  • Add bundled Ruff configuration template ([tool.ruff]). Closes #659.

  • Fix data files not being included in published package. Data files are now stored directly in gha_utils/data/.

5.3.1 (2026-01-24)

Note

5.3.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils sponsor-label command to label issues/PRs from GitHub sponsors.

  • Replace unmaintained JasonEtco/is-sponsor-label-action with gha-utils sponsor-label.

  • Change gha-utils metadata output path from positional argument to -o/--output option.

  • Make --overwrite the default behavior for gha-utils metadata.

  • Fix labels, workflows and bumpversion commands fetching of gha_utils/data/ content.

  • Fix race condition where version-increments job would skip due to missing tags.

  • Fallback to getting version from commits when tags aren’t available yet.

  • Replace push-based post-release trigger with workflow_run trigger for version increments.

5.3.0 (2026-01-24)

Note

5.3.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Rely on gha-utils labels to dump label configuration files for inspection and bootstrapping.

  • Enhance gha-utils bumpversion command to sync the template directly into pyproject.toml.

  • Sync bumpversion config in the autofix workflow.

  • Sync uv.lock file on version increment and post-release bump commits.

  • Fail job on project description mismatch.

  • Skip binary compilation for branches that don’t affect code (.mailmap, docs, images, .gitignore, JSON, Markdown).

  • Remove GITHUB_CONTEXT env var requirement from workflows. Now reads event data directly from GITHUB_EVENT_PATH.

5.2.0 (2026-01-23)

Note

5.2.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add gha-utils labels command to dump bundled label configuration files.

  • Add gha-utils workflows command to dump bundled workflow templates for inspection and bootstrapping.

  • Add gha-utils bumpversion command to dump bundled bump-my-version configuration template.

  • Rely on gha-utils release-prep for release preparation steps.

  • Protect the release commit from cancellation by giving it its own concurrency group.

  • Fix metadata extraction failing on tag push events due to null SHA.

  • Trigger version increment PRs immediately after a release instead of waiting for next scheduled run.

5.1.0 (2026-01-23)

Note

5.1.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add new gha-utils release-prep command to consolidate all release preparation steps.

  • Add new gha-utils version-check command to prevent double version increments within a development cycle.

  • Switch from from requirements/*.txt files to hard-coding version dependencies for workflow tools.

  • Check consistency between project and repository metadata. Don’t fix them automatically. Refs #93.

  • Use fixed exclude-newer date instead of relative 1 week to prevent uv.lock timestamp churn.

  • Reduce frequency of version increment jobs to once a day.

  • Only update dependency graph on release. Closes #176.

  • Only bump citation date on a release.

  • Unfreeze bump-my-version from 1.1.0.

5.0.1 (2026-01-22)

Note

5.0.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix publishing to PyPI by removing URL-based dependency on mdformat-pelican.

  • Protect both release commits and post-release bump commits from cancellation.

5.0.0 (2026-01-22)

Note

5.0.0 is available on 🐙 GitHub.

Warning

5.0.0 is not available on 🐍 PyPI.

  • Duplicate workflow dependencies from requirements/*.txt files to gha-utils package as extra dependencies.

  • Replace Dependabot by Renovate for dependency updates. Closes #1728.

  • Flag abandoned dependencies with ⚠️ stale dependency label.

  • Check repository settings requirements for Renovate.

  • Use Renovate to sync uv.lock files. Remove sync-uv-lock job.

  • Cancel in-progress jobs more aggressively on new commits.

  • Add toml_files and project_description fields to gha-utils metadata output.

  • Replace julb/action-manage-label by labelmaker for label management. Closes #1914.

  • Do not let actions/labeler remove labels that don’t strictly match its file-based rules.

  • Add Rust-related entries to .gitignore file.

  • Sync GitHub repository description from pyproject.toml file. Closes #93.

  • Document workflow concurrency.

  • Add unittests for workflow content.

4.25.5 (2026-01-09)

Note

4.25.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix call to deprecated extra-platforms method.

4.25.4 (2025-12-31)

Note

4.25.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Move auto-lock time from 8:43 to 4:43.

  • Let projects defined their own cooldown period via the pyproject.toml.

  • Replace deprecated codecov/test-results-action by codecov/codecov-action.

4.25.3 (2025-12-19)

Note

4.25.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Add Download link to project metadata.

  • Include license file in package.

  • Remove utilization workaround for macos-15-intel.

4.25.2 (2025-12-07)

Note

4.25.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Use uncap dependencies everywhere.

4.25.1 (2025-12-06)

Note

4.25.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace tool.uv section by build-system.

4.25.0 (2025-12-06)

Note

4.25.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add cooldown period for dependabot updates: 7 days by default, 29 days for major updates, 11 days for minor updates, 5 days for patch updates.

  • Sets --exclude-newer to 7 days ago when syncing uv.lock in autofix workflow.

  • Merge all label syncing jobs into a single one.

  • Change the test and typing extra dependency groups into development dependency groups.

  • Make all documentation-related and typing-related jobs depends on the new development dependency groups.

  • Remove forcing Python 3.14 in documentation-related jobs.

  • Unlock a CPU core stuck at 100% utilization on macos-15-intel.

  • Document all reusable workflows jobs and their requirements. Closes #60.

  • Reintroduce Python 3.10 support.

4.24.6 (2025-12-01)

Note

4.24.6 is available on 🐍 PyPI and 🐙 GitHub.

  • Do not check for broken links in pull requests.

4.24.5 (2025-11-28)

Note

4.24.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Use released versions of mdformat-myst plugin.

4.24.4 (2025-11-27)

Note

4.24.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Add ubuntu-slim to the list of platforms in debug workflows.

4.24.3 (2025-11-24)

Note

4.24.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace mdformat_frontmatter by mdformat-front-matters to fix compatibility with mdformat v1.0.0.

  • Activate strict front-matter checking in mdformat when auto-formatting Markdown files.

4.24.2 (2025-11-23)

Note

4.24.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix all issues related to the use of ubuntu-slim runners.

4.24.1 (2025-11-23)

Note

4.24.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Keep using ubuntu-24.04 for Nuitka builds.

4.24.0 (2025-11-23)

Note

4.24.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace ubuntu-24.04 runner by ubuntu-slim in all jobs not relying on Docker, and in Nuitka build matrix.

  • Bump actionlint to v1.7.9.

  • Ignore GitHub links pointing to stable release assets when checking for broken links.

4.23.4 (2025-11-19)

Note

4.23.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Force use of latest Python 3.14 for docs generation.

4.23.3 (2025-11-18)

Note

4.23.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix usage against last Click Extra release.

  • Run tests on Python 3.14t and 3.15t free-threaded variants.

4.23.2 (2025-11-17)

Note

4.23.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix lychee runs in lint workflow.

4.23.1 (2025-11-02)

Note

4.23.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix some incompatibilities between mdformat plugins.

4.23.0 (2025-10-25)

Note

4.23.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove maximum capped version of all dependencies (relax all ~= specifiers to >=). This gives more freedom to downstream and upstream packagers. Document each minimal version choice.

  • Add new --command parameter to gha-utils test-plan command as an alias to --binary.

  • Allow gha-utils test-plan to accept a full command line with parameters as input for --command/--binary option.

  • Self-check of gha-utils test-plan command in its own test plan.

  • Dynamiccaly deepen shallow clones of Git repositories when fetching new commit ranges.

  • Only runs optimize-images job if there are image files in the repository.

  • Move runner architecture validation to gha-utils-only job.

  • Remove dependency on mdformat_tables plugin which has been merged into mdformat-gfm.

  • Use un-released versions of mdformat plugins until their compatibility is restored.

  • Move all typing-related imports behind a hard-coded TYPE_CHECKING guard to avoid runtime imports.

  • Fix builds on macos-26.

  • Skip tests on intermediate Python versions (3.12 and 3.13) to reduce CI load.

4.22.0 (2025-10-12)

Note

4.22.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add new image_files field to gha-utils metadata.

  • Only runs lint-yaml job if there are YAML files in the repository.

  • Only runs lint-github-action job if there are workflow files in the repository.

  • Only runs broken-links job if there are Markdown or rST files in the repository.

  • Only runs update-mailmap job if .mailmap file exists.

  • The gha-utils test-plan command now reports the detailed line differences when a *_regex_fullmatch check fails.

  • Fix commit_range field when there is only one commit in the range.

  • Flag macos-26 as unstable target by default for Nuitka builds while we wait for a solution upstream.

  • Upload Nuitka crash report as artifacts when the build fails.

  • Validate architecture of binaries produced by Nuitka builds.

4.21.0 (2025-10-11)

Note

4.21.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Use astral-sh/setup-uv action to install uv instead of manually installing it with pip.

  • Remove requirements/uv.txt file.

  • Add new fields to gha-utils metadata:

    • yaml_files

    • workflow_files

    • mailmap_exists

  • Check that start and end commit of commit_range exist in the repository before trying to traverse commits with PyDriller.

  • Add check-runners job to always verify the architecture of each runner used to compile binaries with Nuitka.

  • Use macos-28 runner instead of macos-15 to build binaries for arm64.

  • Use macos-15-intel runner instead of macos-13 to build binaries for x64.

  • Run tests on macos-28 and macos-15-intel runners instead of macos-15 and macos-13.

  • Only parse .gitignore file once, when first needed, and cache the matching function.

  • Run gha-utils commands without --verbosity DEBUG option in jobs to reduce noise.

  • Silence overly verbose debug messages from py-walk logger.

  • Run debug workflow on all platforms targeted by Nuitka builds.

  • Only runs debug workflow manually, on demand.

  • Pin version of awesome-lint to v2.2.2.

  • Pin version of actionlint to v1.7.7.

4.20.0 (2025-10-10)

Note

4.20.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add new fields to gha-utils metadata:

    • is_bot to detect if the current run is not triggered by a human.

    • build_targets to list all supported Nuitka build targets.

    • markdown_files to list all Markdown files in the repository.

    • zsh_files to list all Zsh files in the repository.

    • json_files to list all JSON files in the repository.

  • Include *.pyi, *.pyw, *.pyx and *.ipynb files in python_files field.

  • Include *.mdown, *.mkdn, *.mdwn, *.mkd, *.mdtxt and *.mdtext files in doc_files field.

  • Replace gitignore-parser dependency by py-walk to fix patterns matching both files and directories.

  • Add support for Python 3.14 syntax in blacken-docs.

  • Rename ghdelimiter_XXXXX tags in GitHub action multiline text blocks to GHA_DELIMITER_XXXXX for better visibility.

  • Check that gha-utils CLI can be run as a Python module and with uv run and uvx.

  • Add official support of Python 3.14.

  • Run tests on Python 3.15-dev.

4.19.1 (2025-09-25)

Note

4.19.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump to Click Extra 6.0.0.

4.19.0 (2025-09-25)

Note

4.19.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Check for URL fragments when checking links with Lychee.

  • Fix compilation of rfc3987_syntax data file thanks to Nuitka v2.7.14.

  • Remove local patch of gitignore-parser, rely on v0.1.13 release instead.

  • Add dependency on mdformat-recover-urls to fix URL encoding in Markdown files.

  • Force installation of all dependencies before running Mypy in lint workflow to ensure all typeshed-* packages are present.

  • Cap click to 8.2.x series when installing bump-my-version to avoid incompatible API changes.

  • Skip linting and sponsoring jobs on Dependabot PRs and prepare-release branch.

4.18.1 (2025-08-18)

Note

4.18.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Patch gitignore-parser locally to support Windows paths.

4.18.0 (2025-08-17)

Note

4.18.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Adds --format json option.

  • Remove --format plain option.

  • Returns file paths relative to the current directory whenever we can in gha-utils metadata output.

  • Ignore files matching .gitignore rules in the python_files and doc_files fields of gha-utils metadata output.

  • Force all VSCode JSON files to be formatted in jsonc dialect.

  • Prevent overlapping matching of JSON files by different dialect linters.

  • Share linter’s file exclusion list between dialects.

  • Bump hard-coded eslint and eslint/json packages to their latest versions.

4.17.9 (2025-07-17)

Note

4.17.9 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump gha-utils.

4.17.8 (2025-07-17)

Note

4.17.8 is available on 🐍 PyPI and 🐙 GitHub.

  • Normalized and deduplicate file paths in gha-utils metadata output.

  • Ignore non-existing files and broken symlinks in gha-utils metadata output.

4.17.7 (2025-07-17)

Note

4.17.7 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace Superseded by #None comment by No more broken links when closing issues in broken-links job.

  • Run lychee with --hidden, --suggest, --insecure, --include-fragments and --exclude-all-private options.

  • Hard-code lychee version and freeze it to v0.19.1.

4.17.6 (2025-07-17)

Note

4.17.6 is available on 🐍 PyPI and 🐙 GitHub.

  • Use uv-provided ARM64 Python on windows-11-arm platform for Nuitka builds.

  • Force use of latest 3.13 Python for all platforms for Nuitka builds.

  • Fix quoting of file path in python_files and doc_files matrix fields.

4.17.5 (2025-06-26)

Note

4.17.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump uv.

4.17.4 (2025-06-20)

Note

4.17.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove hard-coded domains to skip when checking URLs. Use a .lycheeignore file instead.

  • Fix auto-closing and updating of open broken links issues.

4.17.3 (2025-06-08)

Note

4.17.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove temporary node_modules subfolder when linting JSON files.

  • Do not fail on Lychee finding bad URLs.

4.17.2 (2025-06-08)

Note

4.17.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Ignore node_modules subfolder when linting JSON files.

  • Skip Sci-Hub, x.com and archive.ph when checking URLs because they restricts access to crawlers.

  • Force uv to ignore managed Python on Windows ARM 64.

4.17.1 (2025-05-27)

Note

4.17.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Add new unstable-targets parameter to release workflow.

  • Release binaries without the -build suffix in their names.

4.17.0 (2025-05-27)

Note

4.17.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a new -u/--unstable-target option to metadata command to allow some Nuitka builds to fail.

  • Do not flag windows-11-arm as unstable by default for Nuitka builds.

  • Refactor management of Nuitka build parameters.

  • Remove -build suffix in binary names produced by Nuitka.

4.16.7 (2025-05-24)

Note

4.16.7 is available on 🐍 PyPI and 🐙 GitHub.

  • Always allows windows-11-arm target to fails for Nuitka builds.

4.16.6 (2025-05-24)

Note

4.16.6 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a state parameter to the Nuitka build matrix and mark windows-11-arm as unstable target while we wait for lxml to work on it.

4.16.5 (2025-05-19)

Note

4.16.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Print binary metadata after compiling them with Nuitka.

  • Fix production of arm64 binaries on Windows.

4.16.4 (2025-05-18)

Note

4.16.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Keep to the top the first comment in .mailmap files.

4.16.3 (2025-05-13)

Note

4.16.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump dependencies.

4.16.2 (2025-04-28)

Note

4.16.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a new --show-trace-on-error/--hide-trace-on-error option to gha-utils test-plan command to show execution trace of CLI on error.

4.16.1 (2025-04-26)

Note

4.16.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Use latest gha-utils CLI to build ARM64 binaries by default.

4.16.0 (2025-04-26)

Note

4.16.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a new --exit-on-error/-x option to gha-utils test-plan command to exit right away on the first failing test.

  • Add a new --select-test/-t option to gha-utils test-plan command to run specific test cases.

  • Rename short option for --timeout in gha-utils test-plan command from -t to -T.

  • Add a new --stats/--no-stats option to gha-utils test-plan command to control display of statistics at the end of test execution.

  • Use windows-11-arm to build Windows binaries for arm64 with Nuitka.

  • Add windows-11-arm to the test matrix.

  • Remove tests on ubuntu-22.04-arm, ubuntu-22.04, windows-2022 and windows-2019 to keep matrix small.

4.15.6 (2025-04-20)

Note

4.15.6 is available on 🐍 PyPI and 🐙 GitHub.

4.15.5 (2025-03-13)

Note

4.15.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Re-release to fix GitHub release notes.

4.15.4 (2025-03-13)

Note

4.15.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix fetching of released version and notes on release commits.

4.15.3 (2025-03-12)

Note

4.15.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Use latest gha-utils CLI to fix release notes in GitHub releases.

4.15.2 (2025-03-12)

Note

4.15.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Use uv-provided Python to compile binaries with Nuitka on Linux.

  • Populate current_version and release_notes field in gha-utils metadata output for unreleased versions.

4.15.1 (2025-03-10)

Note

4.15.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove deprecated --plan option.

  • Remove Nuitka script command extension workaround.

  • Fix arguments normalization on Windows for CLI parameters in test plans.

4.15.0 (2025-03-05)

Note

4.15.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add support for only_platforms and skip_platforms settings in test plans, to finely select platforms to run tests on.

  • Add a --skip-platform/-s option to gha-utils test-plan to allow skipping of test plan on a whole set of platforms.

  • Rename --plan option to --plan-file.

  • Allow --plan-file/-F option to be used multiple times in gha-utils test-plan to merge multiple test plans.

  • Add a new --plan-envvar/-E option to allow gha-utils test-plan command to read test plan from environment variables.

  • Allow ad-hoc YAML test-plan to be passed as a input parameter in reused release workflow.

  • Fix running of Nuitka-compiled gha-utils metadata command.

  • Drop support for Python 3.10.

  • Use windows-2025 instead of windows-2022 for Nuitka builds.

  • Add windows-2025 to the test matrix.

4.14.2 (2025-02-19)

Note

4.14.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix update of .gitignore with gitignore-extra-content content.

  • Fix --timeout parameter on gha-utils test-plan call in release workflow.

  • Move all high level CLI tests to test plan file.

4.14.1 (2025-02-16)

Note

4.14.1 is available on 🐍 PyPI.

Warning

4.14.1 is not available on 🐙 GitHub.

  • Add a new test-plan-file parameter to the release workflow.

  • Remove the binaries-test-plan parameter in release workflow.

  • Allow for setting a specific timeout for each CLI test case.

  • Allow timeout to be floats.

  • Fix production of nuitka_matrix field in gha-utils metadata output.

  • Add junit.xml file in default .gitignore extra directive.

4.14.0 (2025-02-15)

Note

4.14.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add new gha-utils test-plan subcommand.

  • Replace ad-hoc custom matrix code by generic matrix model.

  • Replace test matrix pre-computation by native features.

  • Remove ruff_py_version field from gha-utils metadata output: Ruff is extracting it automaticcaly from the pyproject.toml file of the project.

  • Inline all forced Ruff configuration to CLI parameters.

4.13.4 (2025-02-02)

Note

4.13.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix uploads of Python packages to GitHub release when binaries are not produced.

4.13.3 (2025-01-29)

Note

4.13.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix uploads of Python packages to GitHub release when binaries are not produced.

4.13.2 (2025-01-28)

Note

4.13.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix permission for GitHub release publishing.

4.13.1 (2025-01-28)

Note

4.13.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix publishing of GitHub release if no binary artefacts have been produced.

4.13.0 (2025-01-21)

Note

4.13.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Generates attestion for Python packages and standalone binaries on release.

4.12.0 (2025-01-20)

Note

4.12.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Let uv choose the appropriate Python version depending on context.

  • Remove dependency on twine and check-wheel-contents.

4.11.1 (2025-01-18)

Note

4.11.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Re-release to build Linux arm64 binaries by default.

4.11.0 (2025-01-18)

Note

4.11.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Use ubuntu-24.04-arm to build Linux binaries for arm64.

4.10.1 (2025-01-08)

Note

4.10.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Re-release with latest gha-utils.

4.10.0 (2025-01-08)

Note

4.10.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace unmaintained jsonlint by ESLint.

  • Add new gitignore_exists metadata output.

  • Add node artefacts to the list of default files in .gitignore.

4.9.0 (2024-12-27)

Note

4.9.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Use uv instead of setup-python action to install Python. On all platforms but windows-2019.

  • Remove auto-generated dummy pyproject.toml used to hack setup-python caching.

  • Run all jobs on Python 3.13.

  • Move coverage configuration to pytest invocation.

  • Do not let uv sync operation update the uv.lock file.

  • Depends on released version of mdformat_deflist.

4.8.4 (2024-11-22)

Note

4.8.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Run binaries tests into a shell subprocess.

4.8.3 (2024-11-21)

Note

4.8.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix parsing of default timeout.

  • Do not force encoding when running CLI in binary test job.

4.8.2 (2024-11-20)

Note

4.8.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a timeout parameter to release workflow test execution.

4.8.1 (2024-11-19)

Note

4.8.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix permissions for tagging in release workflow.

4.8.0 (2024-11-19)

Note

4.8.0 is available on 🐙 GitHub.

Warning

4.8.0 is not available on 🐍 PyPI.

  • Run Nuitka binary builds on Python 3.13.

  • Run a series of test calls on the binaries produced by the build job.

  • Replace unmaintained hub CLI by gh in broken links job.

4.7.2 (2024-11-10)

Note

4.7.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix installation of hub on broken links job.

4.7.1 (2024-11-03)

Note

4.7.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix upload to PyPI on release.

  • Remove unused uv_requirement_params in metadata.

4.7.0 (2024-11-03)

Note

4.7.0 is available on 🐙 GitHub.

Warning

4.7.0 is not available on 🐍 PyPI.

  • Remove extra_python_params variant in nuitka_matrix metadata.

  • Add official support of Python 3.13.

  • Drop support for Python 3.9.

  • Use macos-15 instead of macos-14 to build binaries for arm64.

  • Use ubuntu-24.04 instead of ubuntu-22.04 to built binaries for Linux.

  • Run tests on Python 3.14-dev.

4.6.1 (2024-09-26)

Note

4.6.1 is available on 🐙 GitHub.

Warning

4.6.1 is not available on 🐍 PyPI.

  • Use uv to publish Python packages.

4.6.0 (2024-09-20)

Note

4.6.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Use uv to build Python packages.

  • Remove dependency on build package.

  • Fix coverage report upload.

  • Upload test results to coverage.

4.5.4 (2024-09-04)

Note

4.5.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Rerelease to stabilize changelog updates.

4.5.3 (2024-09-04)

Note

4.5.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix changelog indention.

  • Add changelog unittests.

4.5.2 (2024-08-26)

Note

4.5.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Rerelease to fix admonition in changelog.

  • Fix changelog new entry format.

4.5.1 (2024-08-25)

Note

4.5.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix over-escaping of [!IMPORTANT] admonition in changelog.

  • Fix content writing into output files.

4.5.0 (2024-08-24)

Note

4.5.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace mdformat-black by mdformat-ruff.

  • Install mdformat, gha-utils, yamllint, bump-my-version, ruff, blacken-docs and autopep8 as a global tool to not interfere with the project dependencies.

  • Fix mdformat-pelican compatibility with mdformat-gfm.

  • Upgrade job runs from ubuntu-22.04 to ubuntu-24.04.

  • Mark python 3.13-dev tests as stable.

  • Fix empty entry composition.

  • Remove local workaround for Nuitka.

4.4.5 (2024-08-18)

Note

4.4.5 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump gha-utils CLI.

4.4.4 (2024-08-18)

Note

4.4.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix update of changelog without past entries.

4.4.3 (2024-08-12)

Note

4.4.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Release with relaxed dependencies.

4.4.2 (2024-08-02)

Note

4.4.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add local workaround for Nuitka to fix bad packaging of license_expression package at build time.

4.4.1 (2024-08-01)

Note

4.4.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump Nuitka and uv.

4.4.0 (2024-07-27)

Note

4.4.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Drop support for Python 3.8.

  • Rely on released version of mdformat-pelican.

  • Fix invocation of installed mdformat and its plugin.

4.3.4 (2024-07-24)

Note

4.3.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Do not maintain .mailmap files on Awesome repositories.

4.3.3 (2024-07-24)

Note

4.3.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump uv and Nuitka.

4.3.2 (2024-07-22)

Note

4.3.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Always use frozen uv.lock file on uv run invocation.

4.3.1 (2024-07-18)

Note

4.3.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Do not print progress bars on uv calls.

4.3.0 (2024-07-17)

Note

4.3.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add a new job to keep uv.lock updated and in sync.

  • Exclude auto-updated uv.lock files from PRs produced from uv run and uv tool run invocations.

4.2.1 (2024-07-15)

Note

4.2.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix options in gha-utils mailmap-sync calls.

  • Use latest gha-utils release in workflows.

4.2.0 (2024-07-15)

Note

4.2.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Rename gha-utils mailmap command to gha-utils mailmap-sync.

  • Add new --create-if-missing/--skip-if-missing option to gha-utils mailmap-sync command.

  • Do not create .mailmap from scratch in workflows: only update existing ones.

  • Normalize, deduplicate and sort identities in .mailmap files.

  • Keep comments attached to their mapping when re-sorting .mailmap files.

  • Do not duplicate header metadata on .mailmap updates.

  • Do not update .mailmap files if no changes are detected.

  • Add new boltons dependency.

4.1.4 (2024-07-02)

Note

4.1.4 is available on 🐍 PyPI and 🐙 GitHub.

  • Bump gha-utils CLI.

4.1.3 (2024-07-02)

Note

4.1.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix recreation of specifiers.

4.1.2 (2024-07-02)

Note

4.1.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Revert to rely entirely on released gha-utils CLI for release workflow.

4.1.1 (2024-07-02)

Note

4.1.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Pre-compute repository initial state before digging into commit log history.

  • Redo release as v4.1.0 has been broken.

  • Rely on old v4.0.2 standalone metadata script temporarily to fix release process.

  • Remove failing --statistics production on ruff invocation.

4.1.0 (2024-07-01)

Warning

4.1.0 is not available on 🐍 PyPI and 🐙 GitHub.

  • Replace in-place metadata.py, update_changelog.py and update_mailmap.py scripts by gha-utils CLI.

  • Remove pre-workflow check-mailmap job.

  • Bump Python minimal requirement to 3.8.6.

  • Fix computation of lower bound Python version support if minimal requirement is not contained to major.minor specifier.

  • Add dependency on backports.strenum for Python < 3.11.

  • Change dependency on mdformat-pelican from personal fork to unreleased upstream.

  • Remove dependency on black and mypy.

4.0.2 (2024-06-29)

Note

4.0.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove comments in GitHub action’s environment variable files.

  • Test CLI invocation.

4.0.1 (2024-06-29)

Note

4.0.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Re-release to register PyPI project.

4.0.0 (2024-06-29)

Note

4.0.0 is available on 🐙 GitHub.

  • Package all utilities in a gha_utils CLI.

  • Remove support for Poetry-based projects. All Python projects are expected to follow standard pyproject.toml conventions.

  • Sort contributors in .mailmap files regardless of case sensitivity.

  • Force default values of workflow’s inputs when triggered from other events (i.e. in non-reusable contexts).

  • Run all Python-based commands via uv run and uv tool run.

  • Replace is_poetry_project metadata by is_python_project.

  • Add new uv_requirement_params metadata output.

  • Remove dependency on poetry package.

  • Add new dependencies on build, packaging, pyproject-metadata and click-extra.

3.5.11 (2024-06-22)

Note

3.5.11 is available on 🐙 GitHub.

  • Read pyproject.toml without relying on Poetry.

3.5.10 (2024-06-20)

Note

3.5.10 is available on 🐙 GitHub.

  • Replace Myst admonition in changelog by GFM alerts.

3.5.9 (2024-06-20)

Note

3.5.9 is available on 🐙 GitHub.

  • Restrict removal of changelog warning admonition to {important} class on version bump.

3.5.8 (2024-06-20)

Note

3.5.8 is available on 🐙 GitHub.

  • Fix dependency graph generation by replacing Poetry by uv.

3.5.7 (2024-06-05)

Note

3.5.7 is available on 🐙 GitHub.

  • Use uv to install and run tools.

  • Fix markdown autofix.

3.5.6 (2024-06-05)

Note

3.5.6 is available on 🐙 GitHub.

  • Use uv to install mdformat.

3.5.5 (2024-06-05)

Note

3.5.5 is available on 🐙 GitHub.

  • Run Nuitka builds on Python 3.12.

  • Auto cleanup PRs produced by awesome template sync job.

3.5.4 (2024-05-23)

Note

3.5.4 is available on 🐙 GitHub.

  • Fix mypy run for Poetry projects.

3.5.3 (2024-05-23)

Note

3.5.3 is available on 🐙 GitHub.

  • Pin uv version everywhere to improve stability.

  • Fix mypy execution and dependency installation.

3.5.2 (2024-05-22)

Note

3.5.2 is available on 🐙 GitHub.

  • Install all extra dependencies before checking typing with mypy.

3.5.1 (2024-05-22)

Note

3.5.1 is available on 🐙 GitHub.

  • Requires typing dependencies to be set in a typing group in pyproject.toml.

  • Install all extra dependencies on doc generation.

3.5.0 (2024-05-22)

Note

3.5.0 is available on 🐙 GitHub.

  • Requires Sphinx dependencies to be set in a docs group in pyproject.toml.

  • Let pipdeptree resolve the Python executable to use in a virtual environment.

  • Do not let Nuitka assume a Python package is bundled with its unittests in a tests subfolder.

  • Reduce number of git calls to produce .mailmap. Refs #984.

3.4.7 (2024-04-26)

Note

3.4.7 is available on 🐙 GitHub.

  • Update dependencies.

3.4.6 (2024-04-18)

Note

3.4.6 is available on 🐙 GitHub.

  • Dynamically search the Python executable used by Poetry.

3.4.5 (2024-04-18)

Note

3.4.5 is available on 🐙 GitHub.

  • Support dependency graph generation for both package and non-package Poetry projects.

  • Provides venv’s Python to pipdeptree to bypass non-detection of active venv.

3.4.4 (2024-04-17)

Note

3.4.4 is available on 🐙 GitHub.

  • Name is optional for non-package-mode Poetry projects.

3.4.3 (2024-04-14)

Note

3.4.3 is available on 🐙 GitHub.

  • Fix incompatibility between mdformat-gfm and mdformat-pelican.

3.4.2 (2024-04-04)

Note

3.4.2 is available on 🐙 GitHub.

  • Fix template URL in awesome-template-sync job PR body.

3.4.1 (2024-03-19)

Note

3.4.1 is available on 🐙 GitHub.

  • Fix variable substitution in awesome-template-sync job PR body.

3.4.0 (2024-03-18)

Note

3.4.0 is available on 🐙 GitHub.

  • Support GitHub admonition in Markdown linting.

  • Add new dependency on mdformat_gfm_alerts.

  • Use pre-commit hooks in awesome-template-sync job to replace URLs.

  • Source remote requirement files from uv CLI.

3.3.6 (2024-03-04)

Note

3.3.6 is available on 🐙 GitHub.

  • Fix awesome-template-sync job.

3.3.5 (2024-03-03)

Note

3.3.5 is available on 🐙 GitHub.

  • Set ignore_missing_files option globally in pyproject.toml.

  • Remove temporary hack to make uv use system Python in workflows.

3.3.4 (2024-03-01)

Note

3.3.4 is available on 🐙 GitHub.

  • Add some debug messages.

3.3.3 (2024-03-01)

Note

3.3.3 is available on 🐙 GitHub.

  • Fix updating of existing PR from awesome-template-sync.

3.3.2 (2024-03-01)

Note

3.3.2 is available on 🐙 GitHub.

  • Fix fetching of newly created PR in awesome-template-sync.

3.3.1 (2024-03-01)

Note

3.3.1 is available on 🐙 GitHub.

  • Update repository URLs in awesome-template-sync job before re committing the PR.

3.3.0 (2024-02-26)

Note

3.3.0 is available on 🐙 GitHub.

  • Start collecting bump-my-version rules from different projects.

  • Move all *-requirements.txt files to requirements subfolder.

  • Remove generation of Pip’s --requirement parameters in metadata script.

  • Reuse requirements.txt root file to install dependencies in mypy-lint job.

  • Add emoji label to awesome template sync PR.

3.2.4 (2024-02-24)

Note

3.2.4 is available on 🐙 GitHub.

  • Remove labels in awesome-template-sync job while we wait for upstream fix.

3.2.3 (2024-02-24)

Note

3.2.3 is available on 🐙 GitHub.

  • Try to hack actions-template-sync labels, again.

3.2.2 (2024-02-24)

Note

3.2.2 is available on 🐙 GitHub.

  • Try to hack actions-template-sync labels.

3.2.1 (2024-02-24)

Note

3.2.1 is available on 🐙 GitHub.

  • Add label to awesome template sync PR.

3.2.0 (2024-02-24)

Note

3.2.0 is available on 🐙 GitHub.

  • Add a job to sync awesome repository project from the awesome-template repository.

3.1.0 (2024-02-18)

Note

3.1.0 is available on 🐙 GitHub.

  • Produce arm64 binaries with Nuitka by using macos-14 runners.

3.0.0 (2024-02-17)

Note

3.0.0 is available on 🐙 GitHub.

  • Start replacing pip invocations by uv.

  • Split Python dependencies into several *requirements.txt files.

  • Let metadata script generates Pip’s --requirement parameters.

  • Add new dependency on wcmatch and uv.

  • Ignore all files from local .venv/ subfolder.

  • Tie Pip cache to **/pyproject.toml and **/*requirements.txt files.

  • Lint and format Jupyter notebooks with ruff.

  • Update default ruff config file to new 0.2.x series.

  • Remove installation of unused bump-my-version in Git tagging job.

  • Document setup and rationale of custom PAT and *requirements.txt files.

2.26.6 (2024-01-31)

Note

2.26.6 is available on 🐙 GitHub.

  • Remove temporary pyproject.toml dummy file after ruff invocation not to let it fail due to missing reference.

2.26.5 (2024-01-31)

Note

2.26.5 is available on 🐙 GitHub.

  • Generate dummy pyproject.toml instead of requirements.txt everywhere to bypass setup-python cache limits for non-Python repositories. Remove the temporary pyproject.toml dummy after the fact.

2.26.4 (2024-01-30)

Note

2.26.4 is available on 🐙 GitHub.

  • Generate a dummy pyproject.toml instead of requirements.txt to make our ruff local conf work.

2.26.3 (2024-01-30)

Note

2.26.3 is available on 🐙 GitHub.

  • Fix Python job on non-Python repositories.

2.26.2 (2024-01-30)

Note

2.26.2 is available on 🐙 GitHub.

  • Fix absence of version in non-Python repositories.

2.26.1 (2024-01-30)

Note

2.26.1 is available on 🐙 GitHub.

  • Add workaround to allow caching on non-Python repositories.

  • Remove hard-coded commit version for mdformat-gfm.

2.26.0 (2024-01-17)

Note

2.26.0 is available on 🐙 GitHub.

  • Replace unmaintained misspell-fixer by typos to autofix typos. Closes #650.

2.25.0 (2024-01-17)

Note

2.25.0 is available on 🐙 GitHub.

  • Add a content-based labeller job for issues and PRs.

2.24.3 (2024-01-16)

Note

2.24.3 is available on 🐙 GitHub.

  • Use macos-13 instead of macos-12 for Nuitka builds.

2.24.2 (2024-01-06)

Note

2.24.2 is available on 🐙 GitHub.

  • Use bump-my-version to remove admonition in changelog.

2.24.1 (2024-01-06)

Note

2.24.1 is available on 🐙 GitHub.

  • Expose current and released version in metadata script.

  • Fix fetching of changelog entry for release notes.

2.24.0 (2024-01-06)

Note

2.24.0 is available on 🐙 GitHub.

  • Add latest changelog entries in GitHub release notes.

2.23.0 (2024-01-05)

Note

2.23.0 is available on 🐙 GitHub.

  • Produce GitHub release notes dynamically.

  • Augment all commits matrix with current version from bump-my-version.

  • Use new artifact features and scripts.

2.22.0 (2024-01-05)

Note

2.22.0 is available on 🐙 GitHub.

  • Update default file-based labelling rules for new configuration format.

  • Run autopep8 before ruff.

2.21.0 (2024-01-04)

Note

2.21.0 is available on 🐙 GitHub.

  • Use ruff instead of docformatter to format docstrings inside Python files.

  • Remove dependency on docformatter.

  • Only run ruff once for autofix and linting. Removes lint-python job.

  • Auto-generate local configuration for ruff instead of passing parameters.

  • Split generation of Python target version from CLI parameters.

  • Rename black_params metadata variable to blacken_docs_params.

  • Remove ruff_params metadata variable.

2.20.9 (2023-11-13)

Note

2.20.9 is available on 🐙 GitHub.

  • Do not cache dependency-less mailmap update workflow step.

2.20.8 (2023-11-12)

Note

2.20.8 is available on 🐙 GitHub.

  • Cache Python setups.

2.20.7 (2023-11-09)

Note

2.20.7 is available on 🐙 GitHub.

  • Run Nuitka builds on Python 3.11 while we wait for 3.12 support upstream.

2.20.6 (2023-11-05)

Note

2.20.6 is available on 🐙 GitHub.

  • Remove hard-coded permissions for release action.

2.20.5 (2023-11-05)

Note

2.20.5 is available on 🐙 GitHub.

  • Increase scope of hard-coded permissions for release action.

  • Use custom token for GitHub release creation.

2.20.4 (2023-11-05)

Warning

2.20.4 is not available on 🐙 GitHub.

  • Increase token permissions to full write.

2.20.3 (2023-11-05)

Warning

2.20.3 is not available on 🐙 GitHub.

  • Test release action.

2.20.2 (2023-11-05)

Warning

2.20.2 is not available on 🐙 GitHub.

  • Increase scope of hard-coded token contents permission.

2.20.1 (2023-11-05)

Warning

2.20.1 is not available on 🐙 GitHub.

  • Hard-code token contents permission for creation of GitHub release.

2.20.0 (2023-11-05)

Note

2.20.0 is available on 🐙 GitHub.

  • Upgrade to bump-my-version 0.12.x series.

  • Upgrade to Poetry 1.7.x series.

2.19.1 (2023-10-26)

Note

2.19.1 is available on 🐙 GitHub.

  • Activates ruff preview and unsafe rules.

  • Run actions on Python 3.12.

2.19.0 (2023-09-15)

Note

2.19.0 is available on 🐙 GitHub.

  • Replace black with ruff’s autoformatter.

  • Rely even more on bump-my-version for string replacement.

2.18.0 (2023-09-06)

Note

2.18.0 is available on 🐙 GitHub.

  • Upgrade to bump-my-version 0.10.x series.

  • Remove the step updating the release date of citation.cff in changelog job. This can be done with bump-my-version now.

  • Trigger changelog updates on requirements.txt changes.

2.17.8 (2023-07-16)

Note

2.17.8 is available on 🐙 GitHub.

  • Upgrade to bump-my-version 0.8.0.

2.17.7 (2023-07-12)

Note

2.17.7 is available on 🐙 GitHub.

  • Replace some Perl oneliners with bump-my-version invocation.

2.17.6 (2023-07-06)

Note

2.17.6 is available on 🐙 GitHub.

  • Fix retrieval of tagged version in release workflow.

2.17.5 (2023-07-01)

Note

2.17.5 is available on 🐙 GitHub.

  • Use bump-my-version v0.6.0 to fetch current version.

2.17.4 (2023-06-22)

Note

2.17.4 is available on 🐙 GitHub.

  • Use patched version of mdformat-web to fix formatting of HTML code in code blocks.

2.17.3 (2023-06-14)

Note

2.17.3 is available on 🐙 GitHub.

  • Reactive maximum concurrency in lychee, but ignore checks on twitter.com and ycombinator.com.

2.17.2 (2023-06-12)

Note

2.17.2 is available on 🐙 GitHub.

  • Limit lychee max concurrency and sacrifice performances, to prevent false positives.

  • Do not triggers docs workflow on tagging. There is not enough metadata on these events to complete the workflow.

  • Skip broken links check on release merge: the tag is created asynchronously which produce false positive reports.

2.17.1 (2023-06-12)

Note

2.17.1 is available on 🐙 GitHub.

  • Fix parsing of lychee exit code.

2.17.0 (2023-06-12)

Note

2.17.0 is available on 🐙 GitHub.

  • Check and report links with lychee. Closes #563.

2.16.2 (2023-06-11)

Note

2.16.2 is available on 🐙 GitHub.

  • Use mdformat_simple_breaks plugin to format long <hr> rules.

  • Format bash code blocks in Markdown via mdformat-shfmt.

  • Install shfmt before calling mdformat.

  • Add dependencies on mdformat_deflist and mdformat_pelican.

2.16.1 (2023-06-10)

Note

2.16.1 is available on 🐙 GitHub.

  • Replace long ____(....)____ <hr> rule produced by mdformat with canonical --- form. Refs hukkin/mdformat#328.

  • Apply Markdown fixes for awesome lists to localized versions.

2.16.0 (2023-06-08)

Note

2.16.0 is available on 🐙 GitHub.

  • Replace bump2version with bump-my-version. Closes #162.

  • Move version bumping configuration from .bumpversion.cfg to pyproject.toml.

  • Cap mdformat_admon == 1.0.1 to prevent mdit-py-plugins >= 0.4.0 conflict.

2.15.2 (2023-06-04)

Note

2.15.2 is available on 🐙 GitHub.

  • Upgrade Nuitka builds to Python 3.11.

  • Remove --no-ansi option on Poetry calls.

2.15.1 (2023-05-22)

Note

2.15.1 is available on 🐙 GitHub.

  • Force colorized output of Mypy, as in CI it defaults to no color.

  • Only activates all ruff rules for autofix, not linting.

  • Ignore D400 rule in ruff to allow for docstrings first line finishing with a punctuation other than a period.

2.15.0 (2023-05-06)

Note

2.15.0 is available on 🐙 GitHub.

  • Fix hard-coding of tagged external asset’s URLs on release and version bump.

  • Forces ruff to check and autofix against all rules.

2.14.1 (2023-05-04)

Note

2.14.1 is available on 🐙 GitHub.

  • Reverts publishing via trusted channel: it doesn’t work with reusable workflows. See #528.

2.14.0 (2023-05-04)

Note

2.14.0 is available on 🐙 GitHub.

  • Publish packages to PyPI with OIDC workflow for trusted publishing.

2.13.5 (2023-05-02)

Note

2.13.5 is available on 🐙 GitHub.

  • Update docformatter, ruff and nuitka.

2.13.4 (2023-04-23)

Note

2.13.4 is available on 🐙 GitHub.

  • Use docformatter 1.6.2.

2.13.3 (2023-04-22)

Note

2.13.3 is available on 🐙 GitHub.

  • Use docformatter 1.6.1.

2.13.2 (2023-04-07)

Note

2.13.2 is available on 🐙 GitHub.

  • Various dependency updates.

2.13.1 (2023-04-04)

Note

2.13.1 is available on 🐙 GitHub.

  • Use final version of docformatter 1.6.0.

2.13.0 (2023-03-29)

Note

2.13.0 is available on 🐙 GitHub.

  • Update default destination folder of dependency graph from images to assets.

2.12.4 (2023-03-29)

Note

2.12.4 is available on 🐙 GitHub.

  • Skip running autopep8 if no Python files found.

  • Only install main dependencies to generate dependency graph.

2.12.3 (2023-03-27)

Note

2.12.3 is available on 🐙 GitHub.

  • Try out docformatter 1.6.0-rc7.

2.12.2 (2023-03-07)

Note

2.12.2 is available on 🐙 GitHub.

  • Try out docformatter 1.6.0-rc6.

2.12.1 (2023-03-05)

Note

2.12.1 is available on 🐙 GitHub.

  • Tweak extra content layout.

2.12.0 (2023-03-05)

Note

2.12.0 is available on 🐙 GitHub.

  • Add new gitignore-extra-content parameter to update-gitignore job to append extra content to .gitignore.

2.11.1 (2023-03-05)

Note

2.11.1 is available on 🐙 GitHub.

  • Fix Mermaid graph rendering colliding with reserved words.

2.11.0 (2023-03-03)

Note

2.11.0 is available on 🐙 GitHub.

  • Add certificates, gpg and ssh artefacts to the list of default files in .gitignore.

  • Fix production of dependency graph in Mermaid format.

2.10.0 (2023-02-25)

Note

2.10.0 is available on 🐙 GitHub.

  • Lint GitHub Actions workflows with actionlint.

2.9.0 (2023-02-18)

Note

2.9.0 is available on 🐙 GitHub.

  • Renders dependency graph in Mermaid Markdown instead of Graphviz’s dot.

  • Removes dependency-graph-format input variable to docs.yaml workflow.

2.8.3 (2023-02-17)

Note

2.8.3 is available on 🐙 GitHub.

  • Test unreleased docformatter 1.6.0-rc5 to fix link wrapping.

  • Create missing parent folders of dependency graph.

2.8.2 (2023-02-16)

Note

2.8.2 is available on 🐙 GitHub.

  • Fix subtle bug in .gitignore production due to collapsing multiline command block starting with > because of variable interpolation.

  • Tweak PR titles.

2.8.1 (2023-02-16)

Note

2.8.1 is available on 🐙 GitHub.

  • Test unreleased docformatter 1.6.0-rc4 to fix admonition wrapping.

2.8.0 (2023-02-14)

Note

2.8.0 is available on 🐙 GitHub.

  • Replace isort, pyupgrade, pylint, pycln and pydocstyle with ruff.

  • Run autopep8 before black to that longline edge-cases get wrapped first.

  • Provides autopep8 with explicit list of Python files to force it to handle dot-prefixed subdirectories.

2.7.6 (2023-02-13)

Note

2.7.6 is available on 🐙 GitHub.

  • Test-drive unreleased docformatter 1.6.0-rc3 to fix URL wrapping and admonition edge-cases.

2.7.5 (2023-02-12)

Note

2.7.5 is available on 🐙 GitHub.

  • Fix collection of artifact files from their folder.

2.7.4 (2023-02-12)

Note

2.7.4 is available on 🐙 GitHub.

  • Update artifact name to add -poetry- suffix for those to be published on PyPI.

  • Fix collection of artifact files from their folder.

2.7.3 (2023-02-12)

Note

2.7.3 is available on 🐙 GitHub.

  • Fix attachment of artifacts to GitHub release on tagging.

2.7.2 (2023-02-12)

Note

2.7.2 is available on 🐙 GitHub.

  • Remove broken print debug statement.

2.7.1 (2023-02-12)

Note

2.7.1 is available on 🐙 GitHub.

  • Fix attachment of artifacts to GitHub release on tagging.

2.7.0 (2023-02-11)

Note

2.7.0 is available on 🐙 GitHub.

  • Add new dependency on mdformat_footnote to properly wrap long footnotes when autofixing Markdown.

  • Add new dependency on mdformat_admon to future-proof upcoming admonition support.

  • Add new dependency on mdformat_pyproject so that each project reusing the autofix.yaml workflow can setup local configuration for mdformat via its pyproject.toml file.

2.6.2 (2023-02-11)

Note

2.6.2 is available on 🐙 GitHub.

  • Do not try to attach non-existing artifacts to GitHub release.

2.6.1 (2023-02-11)

Warning

2.6.1 is not available on 🐙 GitHub.

  • Fix attachment of artifacts to GitHub release.

2.6.0 (2023-02-10)

Note

2.6.0 is available on 🐙 GitHub.

  • Rename artifacts attached to each GitHub release to remove the build ID (i.e. the -build-6f27db4 suffix). That way we can have stable download URLs pointing to the latest release in the form of: https://github.com/<user_id>/<project_id>/releases/latest/download/<entry_point>-<platform>-<arch>.{bin,exe}.

  • Normalize binary file names produced by Nuitka with - (dash) separators.

2.5.1 (2023-02-09)

Note

2.5.1 is available on 🐙 GitHub.

  • Remove Pip cache, which breaks with our reusable workflows architecture.

2.5.0 (2023-02-09)

Note

2.5.0 is available on 🐙 GitHub.

  • Cache dependencies installed by Pip.

2.4.3 (2023-01-31)

Note

2.4.3 is available on 🐙 GitHub.

  • Bump Nuitka to 1.4.1.

2.4.2 (2023-01-27)

Note

2.4.2 is available on 🐙 GitHub.

  • Export full Nuitka build matrix from release workflow.

2.4.1 (2023-01-27)

Note

2.4.1 is available on 🐙 GitHub.

  • Reuse and align commit metadata.

  • Fix module path provided to Nuitka.

2.4.0 (2023-01-27)

Note

2.4.0 is available on 🐙 GitHub.

  • Pre-compute the whole Nuitka build matrix.

  • Pre-compute matrix variations with long and short SHA values in commit lists.

2.3.7 (2023-01-25)

Note

2.3.7 is available on 🐙 GitHub.

  • Change the order of Python auto-formatting pipeline to pycln > isort > black > blacken-docs > autopep8 > docformatter.

  • Target unreleased docformatter 1.6.0-rc2 to fix admonition formatting.

  • Ignore failing of docformatter as 1.6.x series returns non-zero exit code if files needs to be reformatted.

2.3.6 (2023-01-24)

Note

2.3.6 is available on 🐙 GitHub.

  • Reverts to skipping the full 1.5.x series and 1.6.0rc1 of docformatter which struggle on long URLs and admonitions.

2.3.5 (2023-01-24)

Note

2.3.5 is available on 🐙 GitHub.

  • Empty release.

2.3.4 (2023-01-24)

Note

2.3.4 is available on 🐙 GitHub.

  • Target unreleased docformatter 1.6.0.rc1 to fix long URL rewrapping. Closes #397.

  • Remove thoroughly all unused imports.

2.3.3 (2023-01-21)

Note

2.3.3 is available on 🐙 GitHub.

  • Update dependencies.

2.3.2 (2023-01-16)

Note

2.3.2 is available on 🐙 GitHub.

  • Force refresh of apt before installing anything.

2.3.1 (2023-01-13)

Note

2.3.1 is available on 🐙 GitHub.

  • Force refresh of apt before installing graphviz.

2.3.0 (2023-01-10)

Note

2.3.0 is available on 🐙 GitHub.

  • Format python code blocks in documentation files with blacken-docs.

  • Let metadata script locate Markdown, reStructuredText and Tex files under the doc_files field.

  • Add new dependency on blacken-docs.

  • Allow metadata script to be run on non-GitHub environment.

2.2.3 (2023-01-09)

Note

2.2.3 is available on 🐙 GitHub.

  • Re-parse dependency graph to stabilize its output, customize its style and make it deterministic.

  • Unpin dependency on yamllint and depends on latest version.

2.2.2 (2023-01-09)

Note

2.2.2 is available on 🐙 GitHub.

  • Fix default dependency graph extension.

2.2.1 (2023-01-09)

Note

2.2.1 is available on 🐙 GitHub.

  • Fix inplace customization of dependency graph.

2.2.0 (2023-01-09)

Note

2.2.0 is available on 🐙 GitHub.

  • Change the default dependency graph format from PNG to dot file.

  • Add a dependency-graph-format parameter to the documentation workflow.

  • Customize the style of dependency graph when Graphviz code is produced.

  • Install Graphviz when we produce the documentation so we can use sphinx.ext.graphviz plugin.

  • Add list of projects relying on these scripts.

2.1.1 (2022-12-30)

Warning

2.1.1 is not available on 🐙 GitHub.

  • Fix fetching of commit matrix.

2.1.0 (2022-12-30)

Warning

2.1.0 is not available on 🐙 GitHub.

  • Rewrite new and release commit detection code from YAML to Python.

  • Add dependency on PyDriller.

  • Trigger debug traces on pull_request events.

2.0.6 (2022-12-29)

Note

2.0.6 is available on 🐙 GitHub.

  • Fix export of binary name from build workflow.

2.0.5 (2022-12-29)

Note

2.0.5 is available on 🐙 GitHub.

  • Export binary name from build workflow.

2.0.4 (2022-12-27)

Note

2.0.4 is available on 🐙 GitHub.

  • Fix skipping of Nuitka compiling step for projects without entry points.

  • Skip the whole 1.5.x series of docformatter which struggles with long URLs.

2.0.3 (2022-12-26)

Note

2.0.3 is available on 🐙 GitHub.

  • Fix fetching of absent entry points in project metadata.

2.0.2 (2022-12-19)

Note

2.0.2 is available on 🐙 GitHub.

  • Fix uploading of artifacts to GitHub release on tagging.

2.0.1 (2022-12-19)

Note

2.0.1 is available on 🐙 GitHub.

  • Use short SHA commit in build artifacts.

  • Fix uploading of Nuitka binaries to GitHub release on tagging.

2.0.0 (2022-12-17)

Note

2.0.0 is available on 🐙 GitHub.

  • Add Nuitka-based compiling of Poetry’s script entry-points into standalone binaries for Linux, macOS and Windows.

  • Upload binaries to GitHub releases on tagging.

  • Extract Poetry script entry-points in Python metadata script.

  • Produce Nuitka-specific main module path from script entry-points.

  • Allow rendering of data structure in JSON for inter-job outputs.

  • Print Python metadata output before writing to env for debugging.

  • Add dependency on nuitka, ordered-set and zstandard.

1.10.0 (2022-12-02)

Note

1.10.0 is available on 🐙 GitHub.

  • Run all Python-based workflows on 3.11.

1.9.2 (2022-11-14)

Note

1.9.2 is available on 🐙 GitHub.

  • Fix production of multiline commit list in build and release workflow.

1.9.1 (2022-11-12)

Note

1.9.1 is available on 🐙 GitHub.

  • Fix tagging.

1.9.0 (2022-11-12)

Warning

1.9.0 is not available on 🐙 GitHub.

  • Remove use of deprecated ::set-output directives and replace them by environment files.

1.8.9 (2022-11-09)

Note

1.8.9 is available on 🐙 GitHub.

  • Install project with Poetry before generating a dependency graph.

1.8.8 (2022-11-09)

Note

1.8.8 is available on 🐙 GitHub.

  • Update all dependencies.

1.8.7 (2022-09-26)

Note

1.8.7 is available on 🐙 GitHub.

  • Allow the use of project’s own Mypy in Poetry virtual environment to benefits from typeshed dependencies.

1.8.6 (2022-09-23)

Note

1.8.6 is available on 🐙 GitHub.

  • Do not let sphinx-apidoc CLI produce ToC file.

1.8.5 (2022-09-19)

Note

1.8.5 is available on 🐙 GitHub.

  • Print raw pipdeptree output for debug.

1.8.4 (2022-09-19)

Note

1.8.4 is available on 🐙 GitHub.

  • Fix installation of graphviz dependency in Poetry venv.

1.8.3 (2022-09-19)

Note

1.8.3 is available on 🐙 GitHub.

  • Run pipdeptree in Poetry venv to produce dependency graph.

1.8.2 (2022-09-18)

Note

1.8.2 is available on 🐙 GitHub.

  • Fix workflow continuation on successful pyupgrade run.

  • Fix quoting of CLI parameters fed to black.

1.8.1 (2022-09-18)

Note

1.8.1 is available on 🐙 GitHub.

  • Fix version setup in Python metadata script.

1.8.0 (2022-09-08)

Note

1.8.0 is available on 🐙 GitHub.

  • Upgrade to poetry 1.2.0.

  • Allow dependency graph to be continuously updated. Closes #176.

  • In Python project metadata fetcher, double-quote file list’s items to allow use of path with spaces in workflows.

  • Ignore broken symlinks pointing to non-existing files in Python metadata fetcher.

  • Fix default pyupgrade option produced by new Poetry.

1.7.5 (2022-08-25)

Note

1.7.5 is available on 🐙 GitHub.

  • Use stable release of calibreapp/image-actions.

1.7.4 (2022-08-06)

Note

1.7.4 is available on 🐙 GitHub.

  • Fix mypy parameters passing.

  • Upgrade job runs from ubuntu-20.04 to ubuntu-22.04.

1.7.3 (2022-08-06)

Note

1.7.3 is available on 🐙 GitHub.

  • Fix mypy parameters passing.

1.7.2 (2022-08-06)

Note

1.7.2 is available on 🐙 GitHub.

  • Skip Python-specific jobs early if no Python files found in repository.

  • Allow execution of pyupgrade on non-Poetry-based projects.

  • Default pyupgrade parameter to --py3-plus.

  • Use auto-generated parameter for mypy’s minimal Python version.

  • Merge all Poetry and Sphinx metadata fetching into a Python script, as we cannot have reusable workflows use reusable workflows. Closes #160.

1.7.1 (2022-08-05)

Note

1.7.1 is available on 🐙 GitHub.

  • Add direct dependency on poetry.

1.7.0 (2022-08-05)

Note

1.7.0 is available on 🐙 GitHub.

1.6.2 (2022-07-31)

Note

1.6.2 is available on 🐙 GitHub.

  • Remove upper limit of pyupgrade automatic --py3XX-plus option generation.

  • Allow gitleaks to use GitHub token to scan PRs.

1.6.1 (2022-07-05)

Note

1.6.1 is available on 🐙 GitHub.

  • Keep the release date of citation.cff up-to-date in changelog job.

1.6.0 (2022-07-01)

Note

1.6.0 is available on 🐙 GitHub.

  • Check for typing. Add dependency on mypy.

1.5.1 (2022-06-25)

Note

1.5.1 is available on 🐙 GitHub.

  • Revert workflow concurrency logic.

1.5.0 (2022-06-23)

Note

1.5.0 is available on 🐙 GitHub.

  • Auto-remove unused imports in Python code. Add dependency on pycln.

  • Freeze Python version used to run all code to the 3.10 series.

1.4.2 (2022-05-22)

Note

1.4.2 is available on 🐙 GitHub.

  • Group workflow jobs so new commits cancels in-progress execution triggered by previous commits.

  • Reduce minimal Pylint success score to 7.0/10.

1.4.1 (2022-04-16)

Note

1.4.1 is available on 🐙 GitHub.

  • Fix admonition rendering in changelog template.

1.4.0 (2022-04-16)

Note

1.4.0 is available on 🐙 GitHub.

  • Use autopep8 to wrap Python comments at 88 characters length.

1.3.1 (2022-04-16)

Note

1.3.1 is available on 🐙 GitHub.

  • Bump actions/checkout action to fix run in containers jobs.

1.3.0 (2022-04-13)

Note

1.3.0 is available on 🐙 GitHub.

  • Auto-format docstrings in Python files. Add dependency on docformatter.

  • Auto-format JS, CSS, HTML and XML code blocks in Markdown files. Add dependency on mdformat-web.

  • Lint Python docstrings. Add dependency on pydocstyle.

  • Use isort profile to aligns with black. Removes .isort.cfg.

  • Tweak 🙏 help wanted label description.

1.2.1 (2022-04-12)

Note

1.2.1 is available on 🐙 GitHub.

  • Fix Sphinx auto-detection by relying on static syntax analyzer instead of trying to import the executable configuration.

1.2.0 (2022-04-11)

Note

1.2.0 is available on 🐙 GitHub.

  • Detect Sphinx’s autodoc extension to create a PR updating documentation.

  • Auto deploy Sphinx documentation on GitHub pages if detected.

  • Update ℹ️ help wanted label to 🙏 help wanted.

  • Triggers docs workflow on tagging to fix dependency graph generation.

  • Allows release workflow to be re-launched on tagging error.

1.1.0 (2022-03-30)

Note

1.1.0 is available on 🐙 GitHub.

  • Dynamically add ⚖️ curation, 🆕 new link and 🩹 fix link labels on awesome list projects.

1.0.1 (2022-03-30)

Note

1.0.1 is available on 🐙 GitHub.

  • Remove the title of the section containing the TOC in awesome lists to fix the linter.

1.0.0 (2022-03-30)

Note

1.0.0 is available on 🐙 GitHub.

  • Lint awesome list repositories.

  • Update 👷 CI/CD label to 🤖 ci.

  • Update 📗 documentation label to 📚 documentation.

  • Update 🔄 duplicate label to 🧑‍🤝‍🧑 duplicate.

  • Update 🆕 feature request label to 🎁 feature request.

  • Update question label to question.

  • Let Pylint discover Python files and modules to lint.

  • Do not generate a .gitignore or .mailmap if none exist. Only update it.

  • Do not run the daily prepare-release job to reduce the number of notifications. Add instructions on PR on how to refresh it.

  • Auto-update TOC in Markdown. Add dependency on mdformat-toc.

  • Remove forbidden TOC entries in Markdown for awesome lists.

  • Remove wrapping of Markdown files to 79 characters.

  • Use the tomllib from the standard library starting with Python 3.11.

0.9.1 (2022-03-09)

Note

0.9.1 is available on 🐙 GitHub.

  • Fix search of Python files in lint-python workflow.

0.9.0 (2022-03-09)

Note

0.9.0 is available on 🐙 GitHub.

  • Add Zsh script linter.

  • Search for leaked tokens and credentials in code.

  • Add new 💣 security label.

  • Adjust 🐛 bug label color.

  • Add new gitignore-location and gitignore-extra-categories parameters to update-gitignore workflow.

  • Fix usage of default values of reused workflows which are called naked. In which case they’re not fed with the default from input’s definition.

0.8.6 (2022-03-04)

Note

0.8.6 is available on 🐙 GitHub.

  • Reactivate sponsor auto-tagging workflow now that it has been fixed upstream.

0.8.5 (2022-03-02)

Note

0.8.5 is available on 🐙 GitHub.

  • Update dependencies.

0.8.4 (2022-02-21)

Note

0.8.4 is available on 🐙 GitHub.

  • Replace hard-coded PyPI package link in GitHub release text with dynamic value from Poetry configuration.

0.8.3 (2022-02-13)

Note

0.8.3 is available on 🐙 GitHub.

  • Allow the location of the dependency graph image to be set with the dependency-graph-output parameter for reused workflow.

0.8.2 (2022-02-13)

Note

0.8.2 is available on 🐙 GitHub.

  • Fix generation of pyupgrade Python version parameter.

0.8.1 (2022-02-13)

Note

0.8.1 is available on 🐙 GitHub.

  • Fix installation of tomli dependency for dependency graph generation.

  • Fix installation of Poetry in Python modernization workflow.

0.8.0 (2022-02-13)

Note

0.8.0 is available on 🐙 GitHub.

  • Add new workflow proposing PRs to modernize Python code for Poetry-based projects.

  • Add new workflow to produce dependency graph of Poetry-based project.

  • Auto-detect minimal Python version targeted by Poetry projects.

  • Add dependency on pipdeptree, pyupgrade and tomli.

0.7.25 (2022-01-16)

Note

0.7.25 is available on 🐙 GitHub.

  • Fix fetching of new commits in PRs.

0.7.24 (2022-01-15)

Note

0.7.24 is available on 🐙 GitHub.

  • Fix upload of build artifacts in GitHub release.

0.7.23 (2022-01-15)

Note

0.7.23 is available on 🐙 GitHub.

  • Fix use of token for Git tagging.

0.7.22 (2022-01-15)

Warning

0.7.22 is not available on 🐙 GitHub.

  • Generate list of all new and release commits in the first job of the release workflow.

0.7.21 (2022-01-13)

Warning

0.7.21 is not available on 🐙 GitHub.

  • Fix regex matching the release commit.

0.7.20 (2022-01-13)

Warning

0.7.20 is not available on 🐙 GitHub.

  • Refactor release workflow to rely on a new matrix-based multi-commit detection strategy.

  • Trigger tagging by monitoring main branch commit messages instead of prepare-release PR merge event.

  • Upload build artifacts for each commit.

  • Fix addition of PyPI link in GitHub release content.

0.7.19 (2022-01-11)

Note

0.7.19 is available on 🐙 GitHub.

  • Secret token need to be passed explicitly in reused workflow for PyPI publishing.

0.7.18 (2022-01-11)

Note

0.7.18 is available on 🐙 GitHub.

  • Add version in the name of built artifacts.

0.7.17 (2022-01-11)

Note

0.7.17 is available on 🐙 GitHub.

  • Fix detection of Poetry-based projects.

0.7.16 (2022-01-11)

Note

0.7.16 is available on 🐙 GitHub.

  • Remove temporary debug steps.

  • Do not trigger debugging and linters on pull_request: it duplicates the push event.

  • Skip file-based labeller workflow for dependabot triggered PRs.

0.7.15 (2022-01-10)

Note

0.7.15 is available on 🐙 GitHub.

  • Use PAT token to auto-tag releases.

0.7.14 (2022-01-10)

Warning

0.7.14 is not available on 🐙 GitHub.

  • Use actions/checkout to fetch last 10 commits of PR during release tagging.

  • Use commit message to identify release commit.

  • Hard-code fetching of main branch on tagging to identify the release commit.

  • Attach the release commit to the GitHub release.

0.7.13 (2022-01-10)

Warning

0.7.13 is not available on 🐙 GitHub.

  • Checkout tag within job to create a new GitHub release instead of relying on previous job’s SHA identification. The latter being different right after it has been merged in main.

0.7.12 (2022-01-10)

Warning

0.7.12 is not available on 🐙 GitHub.

  • Fix variable name used to attach the tagged commit to new GitHub release.

0.7.11 (2022-01-10)

Warning

0.7.11 is not available on 🐙 GitHub.

  • Force attachment of new GitHub release to the tagged commit.

0.7.10 (2022-01-10)

Warning

0.7.10 is not available on 🐙 GitHub.

  • Trigger changelog workflow on any other workflow change to make sure hard-coded versions in URLs are kept in sync.

  • Resort to explicit fetching of past commits to identify the first one of the prepare-release PR on tagging.

  • Use base_ref variable instead of hard-coding main branch in release workflow.

0.7.9 (2022-01-10)

Warning

0.7.9 is not available on 🐙 GitHub.

  • Force fetching of past 10 commits to identify prepare-release PR’s first commit.

  • Do not fetch the final merge commit silently produced by actions/checkout for PRs. Get HEAD instead.

0.7.8 (2022-01-10)

Warning

0.7.8 is not available on 🐙 GitHub.

  • Fix local prepare-release branch name to search for first commit of PR.

0.7.7 (2022-01-10)

Warning

0.7.7 is not available on 🐙 GitHub.

  • Use git log to identify the first commit SHA of the prepare-release PR.

0.7.6 (2022-01-10)

Warning

0.7.6 is not available on 🐙 GitHub.

  • Merge the post-release version bump job into prepare-release branch creation workflow, the result being a 2 commits PR.

  • Allow for empty release notes during the generation of a new changelog entry.

0.7.5 (2022-01-09)

Note

0.7.5 is available on 🐙 GitHub.

  • Force push and create events to match on tags in release workflow.

0.7.4 (2022-01-09)

Note

0.7.4 is available on 🐙 GitHub.

  • Do not try to fetch build artifacts if the publishing step has been skipped.

  • Do not trigger debug workflow on pull_request events.

0.7.3 (2022-01-09)

Warning

0.7.3 is not available on 🐙 GitHub.

  • Always execute the last github-release job in the release workflow, even if the project is not Poetry-based.

  • Catch create events so tagging triggers a post-release version bump job.

0.7.2 (2022-01-09)

Warning

0.7.2 is not available on 🐙 GitHub.

  • Untie git-tag and post-release-version-bump events. Trigger the later on Git tagging.

  • Move the detection logic of the prepare-release PR merge event to a dedicated job.

0.7.1 (2022-01-09)

Warning

0.7.1 is not available on 🐙 GitHub.

  • Fix detection of prepare-release PR merge event.

0.7.0 (2022-01-09)

Warning

0.7.0 is not available on 🐙 GitHub.

  • Detect Poetry-based project, then auto-build and publish packages on PyPI on release.

  • Always test builds on each commit.

  • Add build artifacts to GitHub releases.

0.6.3 (2022-01-09)

Note

0.6.3 is available on 🐙 GitHub.

  • Skip labelling on prepare-release branch.

  • Skip version increment updates on release commits.

  • Tighten up changelog job’s trigger conditions.

0.6.2 (2022-01-09)

Note

0.6.2 is available on 🐙 GitHub.

  • Fix generation of file-based labelling rules.

0.6.1 (2022-01-08)

Note

0.6.1 is available on 🐙 GitHub.

  • Fix extension of default labelling rules.

0.6.0 (2022-01-08)

Note

0.6.0 is available on 🐙 GitHub.

  • Add a reusable workflow to automatically label issues and PRs depending on changed files.

  • Allow extra labelling rules to be specified via custom input.

  • Let sponsor labelling workflow to be reused.

0.5.5 (2022-01-07)

Note

0.5.5 is available on 🐙 GitHub.

  • Replace custom version of julb/action-manage-label by upstream.

0.5.4 (2022-01-05)

Note

0.5.4 is available on 🐙 GitHub.

  • Checkout repository before syncing labels so local extra definitions can be used.

0.5.3 (2022-01-05)

Note

0.5.3 is available on 🐙 GitHub.

  • Fix download of remote file in label workflow.

0.5.2 (2022-01-05)

Note

0.5.2 is available on 🐙 GitHub.

  • Use my own fork of julb/action-manage-label while we wait for upstream fix.

  • Rename label workflow’s label-files input variable to extra-label-files.

0.5.1 (2022-01-05)

Note

0.5.1 is available on 🐙 GitHub.

  • Disable sponsor auto-tagging while we wait for upstream fix.

0.5.0 (2022-01-05)

Note

0.5.0 is available on 🐙 GitHub.

  • Add a reusable workflow to maintain GitHub labels.

  • Add a set of default emoji-based labels.

  • Add dedicated changelog, sponsor and dependencies labels.

  • Update CI/CD label icon.

  • Auto-tag issues and PRs opened by sponsors.

  • Allow for sourcing of additional labels when reusing workflow.

0.4.8 (2022-01-04)

Note

0.4.8 is available on 🐙 GitHub.

  • Use more recent calibreapp/image-actions action.

  • Remove unused custom variable for reusable GitHub release job.

0.4.7 (2022-01-04)

Note

0.4.7 is available on 🐙 GitHub.

  • Fix use of GitHub token for workflow auto-updates on release.

  • Allow typo autofix job to propose changes in workflow files.

0.4.6 (2022-01-04)

Note

0.4.6 is available on 🐙 GitHub.

  • Let GitHub release produced on tagging to be customized with user’s content and uploaded files.

  • Expose tagged version from reusable release workflow.

0.4.5 (2022-01-03)

Note

0.4.5 is available on 🐙 GitHub.

  • Fix use of the right token for reused changelog and release workflows.

  • Restrict comparison URL steps to source workflow.

0.4.4 (2022-01-03)

Note

0.4.4 is available on 🐙 GitHub.

  • Do not rely on bumpversion for comparison URL update on release tagging.

0.4.3 (2022-01-03)

Note

0.4.3 is available on 🐙 GitHub.

  • Only match first occurrence of triple-backticks delimited block text in changelog.md in prepare-release job. Also matches empty line within the block.

  • Make GitHub changelog URL update more forgiving.

0.4.2 (2022-01-03)

Note

0.4.2 is available on 🐙 GitHub.

  • Skip steps in workflows which are specific to the source repository.

  • Aligns all PR content.

0.4.1 (2022-01-03)

Note

0.4.1 is available on 🐙 GitHub.

  • Allow changelog and release workflows to be reusable.

0.4.0 (2021-12-31)

Note

0.4.0 is available on 🐙 GitHub.

  • Factorize version increment jobs.

0.3.5 (2021-12-31)

Note

0.3.5 is the first version available on 🐙 GitHub.

  • Provide tag version for GitHub release creation.

0.3.4 (2021-12-31)

  • Chain post-release-version-bump job with automatic git tagging.

  • Auto-commit post-release-version-bump results.

  • Create a GitHub release on tagging.

0.3.3 (2021-12-30)

  • Bump YAML linting max line length to 120.

  • Auto-tag release after the prepare-release PR is merged back into main.

0.3.2 (2021-12-30)

  • Refresh every day the date in prepare-release job.

  • Skip linting on prepare-release job as it does not points to tagged URLs yet.

  • Reduce changelog PRs refresh rate based on changed files.

  • Rely on create-pull-request action default to set authorship.

  • Fix autofix workflow reusability.

0.3.1 (2021-12-23)

  • Hard-code tagged version for executed Python script.

  • Activate debugging workflow on all branches and PRs.

  • Allows debug workflow to be reused.

0.3.0 (2021-12-16)

  • Add a reusable workflow to fix typos.

  • Add a reusable workflow to optimize images.

  • Add a reusable workflow to auto-format Python files with isort and Black.

  • Add a reusable workflow to auto-format Markdown files with mdformat.

  • Add a reusable workflow to auto-format JSON files with jsonlint.

  • Add a reusable workflow to auto-update .gitignore file.

  • Add a reusable workflow to auto-update .mailmap file.

  • Force retargeting of workflow dependencies to main branch on post-release version bump.

0.2.0 (2021-12-15)

  • Add autolock reusable workflow for closed issues and PRs.

  • Automate changelog and version management.

  • Add workflow to create ready-to-use PRs to prepare a release, post-release version bump and minor & major version increments.

  • Add a debug workflow to print action context and environment variables.

  • Set Pylint failure threshold at 80%.

0.1.0 (2021-12-12)

  • Install project with Poetry before calling Pylint if pyproject.toml presence is detected.

  • Hard-code tagged version in requirement URL for reusable workflows.

  • Document the release process.

0.0.1 (2021-12-11)

  • Initial public release.