Changelog

6.14.0.dev0 (unreleased)

Warning

This version is not released yet and is under active development.

  • Add Sphinx documentation site with Furo theme, MyST-Parser, and 13 extensions. Split the monolithic readme.md (1139 lines) into focused pages: installation, configuration reference, CLI parameters (auto-generated via click_extra.sphinx), reusable workflow reference, security practices, and Claude Code skills. Deployed to GitHub Pages via the existing docs.yaml workflow.

  • Add dedicated tool runner documentation page with a tutorial. Covers the 4-level config precedence chain, available tools table, [tool.X] bridge, binary caching, version overrides, and a step-by-step yamllint walkthrough. Moved from the configuration page into its own docs/tool-runner.md.

  • Add docs/docs_update.py to generate the [tool.repomatic] configuration reference as a definition list from the Config dataclass, replacing the manually-pasted table.

  • Fix Matrix.prune() keeping exclude directives that reference keys absent from the matrix axes. GitHub Actions rejects these with “Matrix exclude key does not match any key within the matrix”. Affects downstream projects whose [tool.repomatic.test-matrix] config defines variations and exclude entries referencing those axes: the PR matrix (which omits variations) retained the stale excludes.

  • Fix setup guide not reopening when GitHub Pages is not configured. The check_pages_deployment_source API returns None (indeterminate) when Pages is not set up at all, which the pages_gate logic treated as passing. For Sphinx projects, “not configured” is now treated as incomplete, reopening the issue with the Pages setup step.

  • Fix setup guide Pages template assuming Pages is already configured (PUT returns 404 on unconfigured repos). Template now shows both POST (first-time enable) and PUT (update existing) commands.

  • Add check_stale_gh_pages_branch lint check and setup guide instructions for deleting leftover gh-pages branches after switching to GitHub Actions deployment.

6.13.0 (2026-04-15)

Note

6.13.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add nuitka.entry-points config option to select which [project.scripts] entries produce Nuitka binaries. When unset, deduplicates by callable target: keeps the first entry point for each unique module:callable pair, so alias entry points (like both mpm and meta-package-manager pointing to the same function) don’t produce duplicate binaries.

  • Add two-phase VirusTotal scanning: phase 1 uploads binaries and writes an initial table with scan links (binary names link to their GitHub release download URLs), phase 2 (--poll) polls for analysis completion and replaces the table with a Detections column showing flagged / total engine counts. The workflow uses two sequential steps so users see scan links immediately while detection stats populate asynchronously.

  • Add av-false-positive skill to scan release binaries on VirusTotal and generate per-vendor false-positive submission files for flagged artifacts. Derives project metadata (name, license, maintainer, URLs) from pyproject.toml and git config instead of hardcoding.

  • Add update-checksums.yaml workflow that triggers on Renovate pushes to renovate/** branches modifying repomatic/tool_runner.py. Downloads each binary tool at its new version, computes the SHA-256, and commits corrected checksums to the PR branch. Works around renovatebot/renovate#42263 where postUpgradeTasks silently drops changes to the same file the regex manager updated.

  • Include release notes for all intermediate versions in sync-uv-lock PR bodies. When a package jumps from 11.0.3 to 11.0.5, both 11.0.4 and 11.0.5 release notes are shown.

  • Config include entries now bypass RepoScope filtering, matching the behavior of explicit CLI component naming. include = ["skills"] in a non-awesome repository produces all skills including awesome-only ones; qualified entries like include = ["skills/awesome-triage"] implicitly select the parent component. Scope-bypassed components fall through to config-key and file-level checks instead of being unconditionally skipped.

  • Add baseline criteria for GitHub repositories in awesome list contributing guidelines: minimum 50 stars, not archived, and updated within 3 years. Includes exceptions for static resources and high-adoption archived repos.

  • Add --min-savings-bytes option to format-images (default 1024 bytes). Skips optimized files where the absolute byte savings are negligible, preventing noisy diffs for tiny images where even a high percentage represents minimal actual reduction.

  • Add cross-platform binary support for all tools in the registry. actionlint, biome, gitleaks, labelmaker, lychee, shfmt, and typos now ship binaries for macOS (arm64, x64), Linux (arm64, x64), and Windows (x64) where upstream releases are available. Add ZIP archive extraction and per-platform archive format overrides to BinarySpec. Replace hand-rolled OS/arch detection in _get_platform_key() with extra-platforms’ current_platform() and current_architecture(), and replace string platform keys with PlatformKey tuples ((Platform | Group, Architecture)) for richer detection heuristics.

  • Add a progress bar during binary tool downloads when the server provides a Content-Length header. Displays on interactive terminals only; silent in CI.

  • Add two-layer integrity model for cached binaries. The archive checksum from the registry is verified at download time. After extraction, a .sha256 sidecar file is written next to the binary and checked on every subsequent cache hit, defending against local cache tampering between runs.

  • Enable [tool.actionlint] bridge support. actionlint config from pyproject.toml is now translated to YAML and written to .github/actionlint.yaml at invocation time (CWD-discovery, cleaned up after the run).

  • Cache downloaded tool binaries across CI runs with actions/cache. Each workflow job that invokes a binary tool (actionlint, biome, gitleaks, labelmaker, lychee, shfmt, typos) restores from a per-tool cache key scoped to OS, architecture, and tool registry hash.

  • Replace peaceiris/actions-gh-pages with GitHub’s native actions/upload-pages-artifact + actions/deploy-pages for Sphinx documentation deployment. Add a lint-repo check and setup guide step that verify the repository’s Pages source is set to “GitHub Actions” instead of branch-based deployment.

  • Add benchmark-update skill to create and maintain competitive benchmark pages (docs/benchmark.md) comparing projects against alternatives. Supports audit, init, add, and refresh-badges modes.

  • Add upstream-audit skill to create and maintain upstream contribution tracking pages (docs/upstream.md). Discovers merged PRs, reported issues, workarounds, and declined features across dependencies. Supports audit, init, refresh, and sync-git modes.

  • Restructure Config to use nested dataclasses (CacheConfig, DependencyGraphConfig, DocsConfig, GitignoreConfig, LabelsConfig, TestPlanConfig, WorkflowConfig) with click_extra.config_path metadata. Config fields are now accessed as config.cache.dir instead of config.cache_dir. The [tool.repomatic] TOML key structure is unchanged. Eliminates the _NESTED_PREFIXES mapping in favor of click-extra’s schema-aware dataclass instantiation.

  • Upgrade macOS Intel runner from macos-15-intel to macos-26-intel across binary builds, test matrix, and Nuitka compilation.

  • Run lint-repo workflow job on all repositories, not just Python projects. Generic checks (funding file, stale draft releases, tag protection rules, fork PR approval policy, workflow permissions, PAT checks) were being skipped on non-Python repos like awesome lists.

  • Centralize GitHub token resolution in run_gh_command: priority is REPOMATIC_PAT > GH_TOKEN > GITHUB_TOKEN, with automatic fallback to GITHUB_TOKEN on 401 Bad Credentials (expired or revoked PAT). The --has-pat flag on setup-guide and lint-repo auto-detects from the REPOMATIC_PAT environment variable when not specified, replacing the HAS_REPOMATIC_PAT env var. Normalize all workflow token references to GH_TOKEN with github.token as the default, and fix missing GH_TOKEN in sync-dev-release, sponsor-label, setup-guide, lint-repo, check-renovate, and scan-virustotal workflow steps.

  • Fix exclude-newer-package handling in pyproject.toml: remove orphaned comments when the section is fully pruned, and fix inline table rendering to produce pyproject-fmt-compatible formatting (tomlkit’s InlineTable.append() left malformed whitespace: doubled spaces after commas, missing inner-brace spaces).

  • Add pre-flight shutil.which check in run_exiftool for a clear error when exiftool is not installed, instead of a bare FileNotFoundError. Verify exiftool is on PATH after choco install in the Windows binary build step, catching silent Chocolatey CDN failures.

  • Create parent directories for --output file paths in repomatic run, fixing lychee Cannot write status output to file errors when the output directory doesn’t exist.

  • Sanitize @mentions, #issue references, and github.com URLs in Lychee and Sphinx linkcheck output before embedding in the broken links GitHub issue body. Reuses the same zero-width space sanitization already applied to upstream release notes in sync-uv-lock PR bodies.

6.12.0 (2026-04-13)

Note

6.12.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add repomatic cache subcommands (show, clean, path) and a global binary cache for downloaded tool executables under ~/Library/Caches/repomatic on macOS and ~/.cache/repomatic on Linux. Cached binaries are re-verified against their registry SHA-256 checksum on every use; stale entries are auto-purged after 30 days (configurable via REPOMATIC_CACHE_MAX_AGE). Add --no-cache to repomatic run to bypass the cache.

  • Add HTTP response cache for PyPI metadata (24h TTL) and GitHub release bodies (24h for all-releases, 7d for single-release) to avoid redundant API calls across changelog, sync-uv-lock, and sync-github-releases invocations. Add --namespace to repomatic cache clean for targeted cleanup.

  • Route generated tool configs through the cache directory (~/.cache/repomatic/config/{tool}/{filename}) instead of /tmp or the repository root. Tools with a --config flag now receive an explicit --config <cache_path> argument, making repomatic’s involvement visible in logs and eliminating cleanup issues from interrupted runs. .editorconfig serialization for CWD-discovery tools like shfmt now translates [tool.X] sections from pyproject.toml and writes the result to the cache. Tools without a --config flag (mdformat, shfmt) remain CWD-discovery exceptions.

  • Add --version, --checksum, and --skip-checksum options to repomatic run to override the pinned tool version and SHA-256 verification at invocation time.

  • Add structured logging to repomatic run. --verbosity INFO reports the config precedence level, full command line, and exit code. --verbosity DEBUG adds the parsed [tool.X] content and translated config file details.

  • Add skills.location config option to override the Claude Code skills directory. Defaults to ./.claude/skills/; useful for repos where .claude/ is not at the root.

  • Add changelog.location config option to override the changelog file path. Defaults to ./changelog.md. All CLI commands (changelog, release-prep, sync-github-releases, sync-dev-release), metadata extraction, and init now read from this single source.

  • Add .claude/package-skills.sh to package each Claude Code skill as a ZIP for manual upload to Claude Desktop via Settings > Customize > Skills. Refs #2540.

  • Sanitize @mentions, #issue references, and github.com URLs in upstream release notes embedded in sync-uv-lock PR bodies. Inserts Unicode zero-width spaces to prevent GitHub from auto-linking mentions and issue references. Rewrites github.com URLs to redirect.github.com to prevent backlink cross-references. Code fences and inline code spans are preserved. Closes #2542.

  • Use REPOMATIC_PAT token in all peter-evans/create-pull-request steps across autofix.yaml, changelog.yaml, and renovate.yaml. PRs created with the default GITHUB_TOKEN do not trigger other workflows.

  • Rename shell_files metadata key to shfmt_files. Exclude Zsh files (.zsh, .zshrc, etc.) and .sh files with a Zsh shebang from shfmt processing. shfmt’s Zsh support is experimental (v3.13.0+) and fails on common Zsh constructs (see mvdan/sh#1203).

  • Make the uv sync step in the lint-types job conditional on is_python_project, so repositories with Python files but no lockfile can still be type-checked.

  • Fix format-json autofix job failing with flag --config-path is not valid in this context when a [tool.biome] section exists. Biome’s bpaf-based CLI scopes --config-path inside the subcommand; the flag is now spliced after the subcommand name via a new config_after_subcommand field in ToolSpec.

  • Improve file-bug-report skill to check organization-level community health files from the org’s .github repo before scanning per-repo files. GitHub allows orgs to define default CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, and issue templates that repos inherit unless they provide their own copy.

6.11.3 (2026-04-09)

Note

6.11.3 is available on 🐍 PyPI and 🐙 GitHub.

  • Add lint-repo check warning when the GitHub Actions fork PR workflow approval policy is weaker than first_time_contributors. Queries /repos/{repo}/actions/permissions/fork-pr-contributor-approval and flags the default first_time_contributors_new_to_github setting, which only catches brand-new GitHub accounts. The setup guide includes a new step with a pre-filled gh api one-liner to fix the policy in place.

  • Add readme.md § Supply chain security section mapping Astral’s Open Source Security at Astral practices to concrete repomatic implementations, with a known-gap admonition for multi-person release approval.

  • Fix rst_to_myst conversion leaving RST backslash escapes (\_) in headings and not wrapping dotted Python module names in backticks. sphinx-apidoc uses \_ to prevent RST reference interpretation; these are meaningless in markdown and cause mdformat to strip them on every reformat pass.

  • Fix format-pyproject autofix job failing with exit code 123. xargs translates pyproject-fmt’s exit code 1 (file reformatted) to 123, and the default bash -e shell aborted before the exit code guard could run.

  • Disable uv cache in the publish-pypi release job, which has no checkout step. Without a workspace, setup-uv cannot find lockfiles to hash and emits spurious cache-miss warnings on every run.

6.11.2 (2026-04-08)

Note

6.11.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add shfmt shell formatter to the tool runner (repomatic run shfmt). Downloads the binary for the current platform and invokes it with managed version pinning and .editorconfig discovery.

  • Add format-shell autofix job to auto-format shell scripts with shfmt.

  • Replace crazy-max/ghaction-virustotal GitHub Action with a native repomatic scan-virustotal CLI command using vt-py. Fixes the release body update that was silently skipped because the action required a release event but the workflow triggers on push.

  • Deduplicate release attestations: Python packages are now attested once in build-package instead of three times across build-package, publish-pypi, and create-release. The attestation bundle is forwarded as an artifact to create-release for upload to the GitHub release. Also fixes create-release accidentally attesting .gitignore via the release_artifact/* glob.

6.11.1 (2026-04-08)

Note

6.11.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Parallelize release workflow: compile-binaries now starts right after metadata instead of waiting for create-release, and publish-pypi runs concurrently with create-tag and create-release. Binary and attestation uploads to the GitHub release are deferred to publish-release. The PyPI admonition in release notes is applied by publish-release after confirming PyPI publication succeeded.

  • Fall back to PyPI project_urls changelog link when no GitHub Release exists for a package. Release notes sections now render a [Changelog](url) link instead of silently omitting the package.

  • Fix release workflow uploading attestation bundle before the GitHub release draft exists. The upload step now runs after release creation.

  • Skip exclude-newer-package exemptions for packages whose fixed version already falls within the exclude-newer cooldown window. Previously, fix-vulnerable-deps persisted "0 day" overrides for all upgraded packages unconditionally.

  • Fix --delete-excluded not detecting scope-excluded BundledComponent files that still exist on disk. Component-level scope exclusion (e.g., codecov in awesome repos) skipped recording file entries, so stale files were invisible to the deletion pass.

  • Fix awesome-template sync overwriting pyproject.toml instead of merging. _copy_template_tree replaced the entire file with the bundled template, stripping user-managed [tool.*] sections (e.g., [tool.gitleaks]). The lychee config is now a ToolConfigComponent with AWESOME_ONLY scope, so it goes through the standard _init_tool_configs merge path. pyproject.toml is removed from the awesome-template bundle.

  • Fix repomatic init <component> silently ignoring explicitly-requested components in repos where their scope doesn’t match. Scope exclusions now only apply during bare repomatic init, matching the existing guard on user-config exclusions. This fixes repomatic init renovate failing in awesome repos where the renovate workflow materializes renovate.json5 at runtime.

  • Fix --delete-excluded removing opt-in workflow files in the source repo. Config-key exclusions (e.g., notification.unsubscribe) now skip the source repo, matching the existing scope-exclusion guard. Previously, the sync-repomatic job would delete .github/workflows/unsubscribe.yaml from upstream, breaking the symlink in repomatic/data/ and all downstream workflow_call references.

  • Fix format-pyproject autofix step running with no input files and masking tool errors. The pyproject_files metadata key was missing, so pyproject-fmt ran against an empty file list and || true swallowed all non-zero exit codes. The key is now requested and the step tolerates only exit code 1 (file reformatted).

6.11.0 (2026-04-07)

Note

6.11.0 is available on 🐍 PyPI.

Warning

6.11.0 is not available on 🐙 GitHub.

  • Preserve extra downstream jobs when syncing thin-caller workflows. Previously, repomatic init and workflow sync in thin-caller mode would overwrite the entire file, destroying any project-specific jobs appended after the managed caller job (e.g., a Chocolatey publishing step in release.yaml). The managed job is now regenerated in place while extra jobs, comments, and blank lines are preserved.

  • Add VirusTotal scanning job to the release workflow. Uploads compiled binaries to VirusTotal after each release, seeding AV databases to reduce false positive detections on downstream distributors (Chocolatey, Scoop, etc.). Requires the optional VIRUSTOTAL_API_KEY repository secret.

  • Add attestation self-verification steps after each actions/attest invocation in the release workflow. Each attestation is immediately verified with gh attestation verify --signer-repo kdeldycke/repomatic to catch signing issues in CI before users encounter them.

  • Upload Sigstore attestation bundles (.jsonl) as GitHub release assets for compiled binaries and Python packages, enabling offline verification.

  • Add VIRUSTOTAL_API_KEY warning to lint-repo. Emits a non-fatal warning when the secret is missing and Nuitka binary compilation is active.

  • Add VirusTotal API key setup step to the setup guide issue. The step only appears when Nuitka compilation is active (i.e., nuitka-enabled is true and the project has script entries). When shown, a missing key keeps the setup guide issue open.

  • Remove bumpversion dev-versioning migration code. All downstream repos have been migrated to PEP 440 dev versioning; the one-time .dev0 suffix injection and managed-file update logic is no longer needed.

6.10.0 (2026-04-03)

Note

6.10.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add brand-assets skill to create and export project logo/banner SVG assets to light/dark PNG variants.

  • Add babysit-ci skill to monitor CI test workflows, diagnose failures, fix code, and loop until all stable jobs pass.

  • Add file-bug-report skill to write upstream bug reports. Exhaustively reads contribution guidelines, issue templates, security policies, and community norms before producing a markdown file.

  • Add test-matrix.replace and test-matrix.remove configuration to modify axis values in both full and PR test matrices. replace swaps values (e.g., replace.os = { "ubuntu-slim" = "ubuntu-24.04" }), remove drops values before solve() runs. Stale exclude directives referencing removed values are pruned with a warning.

  • Add SyncMode enum and preserved_keys field to ToolConfigComponent. Tool configs can now declare sync_mode=ONGOING to opt into repeated syncing that preserves local additions. Preserve local [[tool.bumpversion.files]] entries during sync-bumpversion as the first consumer.

  • Add --output-format [markdown|github-actions] to sync-uv-lock, fix-vulnerable-deps, pr-body, and format-images. Replaces implicit $GITHUB_OUTPUT environment variable detection with an explicit flag. Remove -o short option from pr-body and format-images (prefer long-form --output).

  • Add .claude/scheduled_tasks.lock to the default .gitignore extra content.

  • Append workflow metadata block to issue lifecycle comments (Condition recurred., Superseded by #N., close comments). Each comment now includes a collapsible table with trigger, actor, commit, job, workflow, and run link.

  • Make setup-guide issue body conditional: each step is a collapsible section with a status indicator (completed steps are collapsed with a checkmark, incomplete steps are expanded with a warning). Add branch ruleset and Dependabot settings checks to the closing criteria. The issue now closes only when PAT, permissions, vulnerability alerts, and branch protection are all verified.

  • Rework sync-uv-lock CLI output: default to a terminal table via click-extra’s --table-format, add --release-notes/--no-release-notes and --table/--no-table flags, move markdown formatting to --output for CI use only. Prune stale exclude-newer-package entries from pyproject.toml before relocking.

  • Change renovate component to opt-in (init_default=EXCLUDE). Exclude renovate and codecov components from awesome-list repositories.

  • Echo metadata output to stderr when --output targets a file, so computed matrices are visible in CI logs.

  • Remove Python 3.15t (free-threaded) from the default test matrix.

  • Warn instead of crashing on unknown [tool.repomatic] configuration keys. Old repomatic versions encountering config from a newer release now log a warning and continue.

  • Add repomatic update-docs CLI command consolidating sphinx-apidoc, RST-to-MyST conversion, and docs/docs_update.py execution into a single orchestrated step. Projects using MyST-Parser get RST stubs automatically converted to markdown with {eval-rst} blocks.

  • Add docs.apidoc-extra-args, docs.apidoc-exclude, and docs.update-script configuration options.

  • Add uses_myst metadata property detecting MyST-Parser in Sphinx configuration.

  • Move sync-uv-lock job from renovate.yaml to autofix.yaml. The renovate workflow’s path filter prevented the job from running on most pushes to main, leaving stale PRs with merge conflicts.

  • Fix CLI crash when test-matrix.variations or test-matrix.replace contain nested keys. Click-extra’s generic config flattening was converting them to invalid field names. The CLI now routes config loading through load_repomatic_config which preserves the test-matrix sub-section structure.

6.9.0 (2026-03-31)

Note

6.9.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add per-project test matrix configuration via [tool.repomatic.test-matrix] in pyproject.toml. Supports exclude, include, and variations fields that map directly to the Matrix class API.

  • Replace audit-deps lint job with fix-vulnerable-deps autofix job. Creates PRs that upgrade affected packages using uv lock --upgrade-package with --exclude-newer-package bypass for security fixes.

  • Add codecov bundled component. Syncs .github/codecov.yaml to suppress PR comments unless coverage drops or the diff introduces uncovered lines.

  • Extend tool runner config resolution to support CWD-discovery tools (no --config flag). Bundled defaults are written to disk and cleaned up after invocation. Move mdformat number default to a bundled mdformat.toml so downstream repos can override via [tool.mdformat] or .mdformat.toml.

  • Replace dict-based config loading with click-extra’s typed config resolution. [tool.repomatic] is auto-discovered from pyproject.toml and exposed as a typed Config dataclass via get_tool_config(). Rename config subcommand to show-config to resolve a naming conflict with click-extra’s --config option.

  • Expand PAT validation in lint-repo and check-renovate. lint-repo gains repository scope check, tag ruleset detection, and workflows permission probe. check-renovate validates all PAT permissions (contents, issues, pull requests, vulnerability alerts, workflows) as warnings.

  • Auto-exclude changelog.md for awesome-list repositories and remove redundant [tool.repomatic] exclude entries from the awesome template. Refactor the component registry to support scope, target, and config_key fields, replacing hardcoded dispatch with a type-driven loop. init CLI help text is now auto-generated from the registry.

  • Remove prebake-version and prebake-tag-sha CLI commands. Use click-extra prebake all, click-extra prebake version, or click-extra prebake field instead. Rename __tag_sha__ to __git_tag_sha__ to align with click-extra’s git_* naming convention.

  • Migrate from actions/attest-build-provenance to actions/attest.

  • Rename pr-metadata.md template to .md.noformat extension to prevent mdformat from mangling the $rerun_row table-row placeholder.

  • Skip Codecov uploads on sync-repomatic PRs.

  • Unify PAT permission validation into check_all_pat_permissions() in token.py. lint-repo, setup-guide, and check-renovate all use the same code path. setup-guide now runs granular permission checks when the PAT is present and keeps the issue open with a diagnostic table when permissions are incomplete.

  • Fix setup-guide job: add missing HAS_REPOMATIC_PAT env var and remove upstream repo carve-out so PAT detection works everywhere.

  • Fix infinite cycle between migrate-to-renovate and sync-repomatic jobs.

  • Include git stderr in git-tag CLI error messages.

6.8.0 (2026-03-27)

Note

6.8.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Move test matrix definition from inline YAML to repomatic metadata using the Matrix class. The tests job now depends on the metadata job and consumes pre-computed test_matrix / test_matrix_pr outputs. Fixes the matrix context being unavailable in job-level if:.

  • Reduce CI jobs on pull requests by skipping release builds, experimental Python versions, redundant architecture variants, and install/architecture verification tests. Full matrix still runs on push to main.

  • Make exclude config additive to default exclusions (labels, skills). User exclude entries now add to the defaults instead of replacing them. Add include config to force-include components that are excluded by default.

  • Add --delete-unmodified flag to repomatic init to automatically remove config files identical to bundled defaults instead of only reporting them. Renamed from --delete-redundant.

  • Remove deprecated WORKFLOW_UPDATE_GITHUB_PAT secret and all backward-compatibility fallbacks. Downstream repos must use REPOMATIC_PAT.

  • Auto-exclude awesome-triage skill for non-awesome repositories. The skill is only relevant to awesome-* repos and was previously installed in all downstream projects.

  • Add --delete-excluded flag to repomatic init to remove excluded files that still exist on disk. Detects component-level exclusions, file-level exclusions, auto-excluded files (e.g., awesome-triage on non-awesome repos), and disabled opt-in workflows.

  • Replace sync-workflows and clean-unmodified-configs autofix jobs with a single sync-repomatic job. Runs repomatic init --delete-unmodified --delete-excluded to sync all managed files and clean up stale ones in one PR. Renamed from clean-redundant-configs and --delete-redundant.

  • Remove PAT setup hint steps and HAS_REPOMATIC_PAT env var from autofix.yaml and changelog.yaml workflows. The setup-guide job already creates an issue when the PAT is missing.

  • Add PAT capability checks and repo configuration validation to lint-repo. Checks Renovate config exists, Dependabot security updates disabled, and vulnerability alerts enabled. When REPOMATIC_PAT is configured, validates contents, issues, pull requests, Dependabot alerts, and commit statuses permissions. Add REQUIRED_PAT_PERMISSIONS constant in token.py as the single source of truth for expected permissions.

  • Add stale draft release detection to lint-repo. Warns about draft releases whose tag does not end with .dev0, which are leftovers from abandoned or failed release attempts.

  • Relax abandoned dependency threshold from 1 year to 2 years in Renovate config.

  • Fix thin-caller generation rendering workflow_dispatch input definitions as Python dict literals instead of block-style YAML.

  • Add /sphinx-docs-sync skill for cross-project Sphinx documentation comparison and synchronization.

  • Add /translation-sync skill to detect stale translations in readme.*.md and contributing.*.md files. Compares structure and content against the English source, flags drift, and drafts updated translations. Auto-excluded for non-awesome repos.

  • Streamline Dependabot guidance in setup guide issue. Clarify that Renovate handles security PRs and that renovate.yaml auto-removes dependabot.yml. Link Actions tab directly to the autofix.yaml workflow.

  • Allow repomatic init to accept qualified component/file selectors (e.g., repomatic init skills/repomatic-topics). Uses the same syntax as the exclude config option. Rename parse_exclude to parse_component_entries and _valid_file_ids to valid_file_ids to support the shared parsing path.

  • Only auto-include awesome-template component for awesome-* repos when no explicit components are given. Previously, repomatic init skills/repomatic-topics on an awesome repo would also sync all awesome-template files.

  • Stop persisting [tool.ruff] defaults into downstream pyproject.toml. Bundled ruff config is now injected at runtime via --config when no [tool.ruff], ruff.toml, or .ruff.toml exists. Remove the repomatic init ruff step from the format-python workflow job.

  • Add package version diff table to sync-uv-lock PRs. Lists updated, added, and removed packages with their old and new versions. Package names link to PyPI. Shows release date and exclude-newer cutoff for visual verification. Includes collapsible release notes fetched from GitHub Releases.

  • Document file naming conventions in claude.md: prefer .yaml over .yml and lowercase filenames everywhere, with a table of GitHub exceptions that require .yml or uppercase.

  • Fix awesome-template URL rewriting to also process .yml files in .github/.

  • Auto-exclude changelog.yaml, debug.yaml, and release.yaml workflows for awesome-* repositories. These package-oriented workflows are irrelevant to curated lists.

  • Materialize bundled renovate.json5 at runtime in the Renovate workflow when the file is absent. Downstream repos can safely delete their renovate.json5 via clean-redundant-configs without breaking Renovate runs.

  • Remove sync-renovate CLI command, autofix job, renovate.sync config toggle, and PR body template. The sync-repomatic job (via repomatic init --delete-redundant) already handles Renovate config sync, and the Renovate workflow now materializes the bundled default at runtime when the file is absent.

  • Remove sync-bundled-config job from renovate.yaml. The bundled repomatic/data/renovate.json5 is now regenerated by repomatic init when it detects it’s running in the source repository, folded into the sync-repomatic autofix job.

  • Remove upstream exclusion from sync-repomatic job. The upstream repo’s [tool.repomatic] exclude = ["workflows"] prevents thin-caller generation, while repomatic init handles the bundled renovate config regeneration.

  • Pin GitHub Actions to SHA digests via Renovate’s helpers:pinGitHubActionDigestsToSemver preset. Prevents supply chain attacks from mutable tags while keeping automated version updates.

  • Add top-level permissions: {} to all workflow files. Denies all GITHUB_TOKEN permissions by default, requiring each job to declare its own minimal permissions explicitly.

  • Merge /repomatic-deps-review into /repomatic-deps. The unified skill now supports two modes: graph (dependency tree visualization, previously the only mode) and review (declaration audit against version policy). Also checks for stale exclude-newer-package cooldown exceptions in [tool.uv].

  • Consolidate 12+ scattered init constants into a declarative component registry (repomatic/registry.py). Each component declares its kind, init default, file entries, and behavioral flags in one place. All derived constants (ALL_COMPONENTS, COMPONENT_FILES, REUSABLE_WORKFLOWS, SKILL_PHASES, etc.) are computed from the registry.

  • Fix sync-repomatic deleting the upstream repo’s own skills. The source repo guard only covered auto-exclusions, not default exclusions (labels, skills).

  • Rename “redundant” terminology to “unmodified” across the CLI, output, and codebase. --delete-redundant becomes --delete-unmodified, clean-redundant-configs becomes clean-unmodified-configs.

  • Generalize opt_in_key into config_key/config_default on both FileEntry and Component. Replace the procedural awesome-template.sync check with a registry declaration.

6.7.0 (2026-03-24)

Note

6.7.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Bundle awesome-template boilerplate files in repomatic instead of cloning from kdeldycke/awesome-template at runtime.

  • Add pyproject_files metadata key listing all pyproject.toml files. The format-pyproject job now formats all of them instead of only the root file.

  • Remove sync-skills, workflow create, and workflow sync CLI commands. All three are superseded by repomatic init which handles skills, thin-caller generation, and header-only sync in a single invocation.

  • Add branch protection checklist to the setup guide issue. Links to a pre-filled ruleset creation form targeting the default branch with force-push and deletion protection.

  • Add unsubscribe.yaml reusable workflow for scheduled cleanup of closed notification threads. Opt-in via notification.unsubscribe = true in [tool.repomatic]. Requires a classic PAT with notifications scope stored as REPOMATIC_NOTIFICATIONS_PAT. Introduce OPT_IN_WORKFLOWS mechanism for workflows that are excluded from thin-caller generation unless explicitly enabled.

  • Surface actual gh CLI error messages in unsubscribe-threads warnings. Previously, RuntimeError details from failed API calls were discarded, making Phase 1 REST failures impossible to diagnose from CI logs.

  • Enable delete-branch: true on all peter-evans/create-pull-request invocations. Stale automation PRs are now auto-closed when a subsequent workflow run finds no changes to commit.

  • Add gitleaks to the tool runner registry with binary download support and [tool.gitleaks] configuration bridge. Migrate lint-secrets workflow job from gitleaks/gitleaks-action to repomatic run gitleaks.

  • Move lychee config from lychee.toml to [tool.lychee] in pyproject.toml. The tool runner’s TOML bridge translates it to a native config file at runtime. Downstream repos with a standalone lychee.toml can do the same.

  • Fix format-images job failing because oxipng is not packaged in Ubuntu. Install from the GitHub release .deb instead, allowing the job to run on ubuntu-slim.

6.6.0 (2026-03-23)

Note

6.6.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Remove yamllint and zizmor init components. The tool runner already falls back to bundled default configs at runtime, so copying them into downstream repos was redundant. Default exclude reduced to ["labels", "skills"]. Downstream repos with yamllint or zizmor in their [tool.repomatic] exclude list must remove those entries.

  • Add repomatic clean-redundant-configs command and autofix workflow job. Detects native config files (.yamllint.yaml, zizmor.yaml, etc.) that are identical to bundled defaults and removes them. repomatic init now warns about redundant configs found on disk.

  • Rename WORKFLOW_UPDATE_GITHUB_PAT secret to REPOMATIC_PAT. Workflows accept both names for backward compatibility. Downstream repos with the old name get a migration issue prompting them to rename; the issue closes automatically once REPOMATIC_PAT is detected. Add setup-guide config toggle to [tool.repomatic] to suppress the setup guide issue entirely. Pre-fill the fine-grained PAT creation form via URL parameters and provide gh CLI commands for adding the secret, configuring Dependabot, and triggering a verify run. Skip the immutable releases setup step for repositories without a changelog.md.

  • Close orphaned setup guide issues that still reference the old WORKFLOW_UPDATE_GITHUB_PAT title. The title change to REPOMATIC_PAT made old issues invisible to the exact-title matching in manage_issue_lifecycle.

  • Add lint-repo check that warns when the repository owner has GitHub Sponsors enabled but .github/FUNDING.yml is missing. Skips forks and owners without a Sponsors listing.

  • Drop --aggressive from autopep8 flags. It naively wraps lines inside f-string expressions, producing Python 3.12±only syntax (PEP 701) that breaks on Python 3.10/3.11.

  • Surface actual gh CLI error messages in unsubscribe-threads warnings. Previously, RuntimeError details from failed API calls were discarded, making Phase 1 REST failures impossible to diagnose from CI logs.

6.5.0 (2026-03-23)

Note

6.5.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Replace init.exclude and workflow.sync-exclude config keys with a unified exclude key. Bare names exclude entire components (e.g., "skills"); qualified component/identifier entries exclude specific files (e.g., "workflows/debug.yaml", "skills/repomatic-audit", "labels/labeller-content-based.yaml"). Old keys are no longer recognized and will produce a hard error.

  • Remove legacy [tool.gha-utils] and [tool.repokit] config section migration. Projects still using old section names must manually rename to [tool.repomatic].

  • Remove automatic cleanup of legacy .github/zizmor.{yml,yaml} files and .claude/skills/gha-*/ directories during init.

  • Add repomatic run <tool> command for unified tool invocation with managed config resolution. Resolves config through a 4-level precedence chain: native config file, [tool.X] in pyproject.toml, bundled default, bare invocation. Use --list to see all managed tools and their active config source.

  • Add yamllint init component with bundled default config (data/yamllint.yaml). Excluded from init by default like zizmor.

  • Add 13 tools to the repomatic run registry: actionlint, autopep8, biome, bump-my-version, labelmaker, lychee, mdformat, mypy, pyproject-fmt, ruff, typos, yamllint, zizmor. Includes computed_params support for tools that derive CLI args from project metadata (e.g., mypy’s --python-version from requires-python).

  • Add binary download infrastructure for tools distributed as platform binaries (actionlint, biome, labelmaker, lychee, typos). Downloads are SHA-256 verified with streaming checksums. sync-labels downloads labelmaker on-demand via binary_tool_context().

  • Migrate all workflow tool invocations to repomatic run, removing uv tool install, curl/sha256sum/tar install steps, and inline version pins from workflow YAML.

  • Add repomatic update-checksums --registry to update SHA-256 hashes in the tool runner registry.

  • Update Renovate custom managers to target the tool runner registry for binary tool versions.

  • Add TOML and JSON serialization for [tool.X] config translation. Downstream repos can now configure lychee via [tool.lychee] and biome via [tool.biome] in pyproject.toml without creating separate config files.

6.4.1 (2026-03-11)

Note

6.4.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Add github-json output dialect for repomatic metadata. Bundles all metadata keys into a single metadata JSON output, eliminating manual per-key outputs: declarations in GitHub Actions workflows. Downstream jobs access values via fromJSON(needs.metadata.outputs.metadata).key_name.

  • Migrate all workflow metadata jobs to --format github-json with explicit key filtering, reducing each job’s outputs: section to a single static line.

  • Rename project-metadata job and step IDs to metadata in all workflows, shortening downstream expressions.

  • Add key filtering to repomatic metadata. Pass key names as arguments to output only specific metadata values.

  • Add --list-keys flag to repomatic metadata to display all available keys with descriptions.

  • Rename linters init component to zizmor. Default init.exclude updated to ["labels", "skills", "zizmor"].

  • Remove sync-zizmor autofix job, CLI command, and zizmor.sync config toggle. zizmor.yaml is now user-owned: repomatic init zizmor creates a default if missing, the lint workflow generates an ephemeral default at CI time, and downstream repos have full control of their config without overwrite.

  • Rename bump-versions job to bump-version in changelog.yaml, matching the PR body template name.

  • Upgrade zizmor from 1.22.0 to 1.23.0. Re-enable the template-injection audit now that the multiline expression crash is fixed upstream (zizmor#1669).

  • Fix github-json metadata dialect serializing list values as JSON arrays. GitHub Actions stringifies arrays as the literal word “Array” when interpolated in ${{ }} expressions, breaking jobs that pass file lists, cli_scripts, or build_targets to shell commands or environment variables. All list/tuple metadata values are now pre-formatted via format_github_value(): file lists become space-separated quoted strings, plain string lists become space-separated unquoted strings, and dict lists become JSON strings (enabling the double fromJSON() pattern for matrix inclusion).

  • Fix YAML line-length violation in docs.yaml workflow template.

  • Fix repomatic workflow sync --format header-only failing when a target workflow file does not exist in the downstream repo. Missing files in the default set are now silently filtered out, and explicitly named missing files produce a warning instead of an error.

  • Remove unused pytest-cases test dependency.

  • Add pytest-xdist test dependency and enable parallel test execution by default via --numprocesses=auto in addopts.

6.4.0 (2026-03-10)

Note

6.4.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Rename optimize-images to format-images. Image lossless optimization is a format operation (semantics-preserving rewrite using external tools), aligning it with the format-* naming convention.

  • Add format-images PR body template and use --template format-images in the workflow, aligning with the standard format job pattern.

  • Allow --prefix and --template to be combined in repomatic pr-body. When both are given, the prefix is prepended before the rendered template content.

  • Add uv-lock-sync toggle to [tool.repomatic]. Projects can now disable sync-uv-lock by setting uv-lock-sync = false.

  • Add dev-release-sync toggle to [tool.repomatic]. Projects can now disable sync-dev-release by setting dev-release-sync = false.

  • Rename sync-linter-configs to sync-zizmor and linter-sync toggle to zizmor-sync. Sync jobs are named after the specific tool they sync, not a generic category.

  • Add awesome-template-sync, bumpversion-sync, gitignore-sync, labels-sync, zizmor-sync, and mailmap-sync toggles to [tool.repomatic]. All sync operations can now be individually disabled.

  • Add repomatic sync-labels CLI command wrapping labelmaker invocation with toggle check, profile detection, and extra label file handling.

  • Replace AndreasAugustin/actions-template-sync with native repomatic sync-awesome-template CLI command. Removes a third-party action dependency and aligns the job with the standard sync pattern.

  • Centralize all CI context reads (repository slug, server URL, SHA, run ID, actor, etc.) into Metadata cached properties. Modules no longer read GITHUB_* environment variables directly.

  • Remove --include-package-data=extra_platforms from Nuitka extra args. extra-platforms 11.0.0 has no non-Python data files — all *_data modules are regular imports traced by Nuitka automatically.

  • Make Metadata a singleton: every Metadata() call returns the same instance within a process, eliminating redundant instantiation across the codebase.

  • Remove get_repo_slug() from gh.py in favor of Metadata.repo_slug.

  • Skip init ruff config injection in format-python job for non-Python projects. Doc-only repos use Ruff for code-block formatting without needing a [tool.ruff] section.

  • Add repomatic init typos to sync shared typos spell checker configuration into pyproject.toml. Includes proper noun corrections and <!-- typos:off --> / <!-- typos:on --> block markers for section-level suppression.

  • Use TOML sub-keys for all grouped options in [tool.repomatic]. Fields sharing a feature area are now nested under a common prefix (e.g., nuitka.enabled, gitignore.location, test-plan.file, labels.extra-files, workflow.sync-exclude). Only pypi-package-history remains flat.

  • Add workflow-source-paths option to [tool.repomatic]. Thin-caller and header-only workflows now include paths: filters adapted for the downstream project’s source directory, reducing unnecessary CI runs. Auto-derived from [project.name] when not explicitly configured.

  • Add repomatic config command that renders the [tool.repomatic] configuration reference table from Config dataclass docstrings.

  • Add ### Configuration sections to PR body templates listing relevant [tool.repomatic] options.

6.3.2 (2026-03-08)

Note

6.3.2 is available on 🐍 PyPI and 🐙 GitHub.

  • Add --all-extras to the uv sync step in tests.yaml to catch incompatibilities between optional dependency groups. No-op for projects with no extras.

  • Add test-package-install job to tests.yaml: verifies all [project.scripts] entry points install and run correctly via uvx, uv run --with, module invocation, uv tool install, and pipx run, from both PyPI and GitHub. Runs once on a single stable OS/Python instead of repeating across the full matrix. Add cli_scripts output to repomatic metadata.

  • Sync customManagers to downstream renovate.json5 so Renovate can update inline version pins in workflow files (Python packages in uvx/uv pip commands, binary tool versions in download URLs, npm packages). Only the self-referencing uv entry (which targets renovate.json5 itself) is excluded to prevent an endless sync loop.

  • Fix generate_thin_caller() stripping paths and paths-ignore filters from generated thin callers. Canonical workflow paths reference the repomatic source tree and would incorrectly restrict CI triggers in downstream repos.

  • Auto-remove legacy .github/zizmor.yml and .github/zizmor.yaml during repomatic init and sync-linter-configs, completing the migration to root-level zizmor.yaml.

  • Fix optimize-images job failing on ubuntu-slim because oxipng is not available there.

  • Add date-released update entry for citation.cff to the bundled bumpversion.toml template so downstream repos keep their release date in sync during version bumps.

  • Reduce PR noise with more specific uv version package update regex.

  • Skip sync-bumpversion job for non-Python projects by gating on is_python_project metadata.

6.3.1 (2026-03-07)

Note

6.3.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Register repomatic-audit skill in COMPONENT_FILES, data symlinks, and _SKILL_PHASES so it syncs to downstream repos.

  • Remove stale repomatic-metadata entry from _SKILL_PHASES.

  • Add test_skills_consistency test to catch mismatches between .claude/skills/ directories and their registrations in code.

6.3.0 (2026-03-06)

Note

6.3.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Make repomatic init always overwrite managed files (workflows, configs, skills) by default. Remove the --overwrite flag. changelog.md is never overwritten once it exists.

  • Remove extend-include for Markdown files now that ruff 0.15.5 discovers *.md by default in preview mode.

  • Use short SHA in release workflow job names instead of the full 40-character commit hash.

  • Make repomatic init output contextual: distinguish created vs updated vs skipped files, warn about excluded files still on disk, and simplify next steps to point to the setup-guide workflow.

  • Auto-remove legacy .claude/skills/gha-*/ skill directories during repomatic init, completing the gha-utilsrepomatic rename migration.

  • Make sync-bumpversion, sync-linter-configs, and sync-skills CLI commands report both created and updated files.

  • Fix all new ruff 0.15.5 preview violations.

  • Add LOG015 to ruff ignore list: root logger calls (logging.info(), etc.) are intentional since the CLI configures the root logger via Click.

  • Refactor sync-bumpversion to replace the entire [tool.bumpversion] section from the bundled template instead of applying incremental migrations. Remove legacy backtick migration code.

  • Add parametrized sync tests to catch drift between all bundled data files and repomatic’s own config: template TOML settings vs pyproject.toml (ruff, mypy, pytest, bumpversion), zizmor vs root config, and a loadability check for all registered data files (no dangling symlinks).

6.2.1 (2026-03-06)

Note

6.2.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Fix actions/checkout wiping downloaded Python package artifacts (.whl, .tar.gz) before gh release create could attach them. Move checkout before artifact download so the release draft includes the Python distribution files.

  • Fix fix-changelog marking releases as “not available on GitHub” when the GitHub release is still a draft. Move the job from autofix.yaml to changelog.yaml which has a workflow_run trigger that fires after “Build & release” completes, when the release is published and visible to the public API.

6.2.0 (2026-03-05)

Note

6.2.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Extract hand-written GFM alert blocks (editorial admonitions) from changelog entries.

  • Fix Nuitka-compiled binaries silently producing no output when the entry point is a __main__.py inside a package. Auto-detect this pattern and pass the package directory with --python-flag=-m instead of the file path.

  • Consolidate documentation.

  • Trim verbose workflow YAML comments that are now documented in Python code, replacing them with brief pointers to the relevant module.

  • Add knowledge placement guide to CLAUDE.md with audience-based routing table and YAML→Python distillation pattern.

  • Add misplaced knowledge detection to QA agent checklists.

  • Add rename-from rules to migrate all 9 default GitHub labels.

  • Add init-exclude config option to skip components during repomatic init. Extend workflow-sync-exclude to also apply to repomatic init workflows. Default init-exclude to ["labels", "linters", "skills"] since these files are regenerated by workflows at execution time.

  • Pre-compute availability admonition in release_notes_with_admonition metadata output so GitHub releases include PyPI and GitHub links at creation time, without waiting for the fix-changelog + sync-github-releases round-trip.

  • Support GitHub immutable releases by restructuring the release workflow to draft-then-publish.

  • Add repomatic-topics skill for optimizing GitHub repository topics for discoverability.

  • Add lint-repo check that warns when GitHub topics are not a subset of pyproject.toml keywords.

  • Replace calibreapp/image-actions with repomatic optimize-images CLI command using lossless oxipng (PNG) and jpegoptim (JPEG). Exclude WebP and AVIF for lack of stability.

  • Use GFM admonitions (> [!WARNING]) instead of emoji-prefixed blockquotes in the setup guide template.

  • Add sync-dev-release CLI command and workflow job to maintain a rolling dev pre-release on GitHub with latest binaries and Python package.

  • Create dev pre-releases as drafts to stay compatible with GitHub immutable releases. Clean up all stale .dev0 releases on each sync, not just the current version’s.

  • Preserve dev release assets (compiled binaries) across documentation-only pushes by editing the existing release instead of deleting and recreating it.

  • Automatically migrate [tool.gha-utils] and [tool.repokit] config sections to [tool.repomatic] during repomatic init. All commands fall back to legacy section names when [tool.repomatic] is absent.

  • Add version to compiled binary filenames (repomatic-6.2.0-linux-arm64.bin instead of repomatic-linux-arm64.bin), matching Python package naming conventions.

  • Freeze readme binary download URLs during releases, replacing /releases/latest/download/ with versioned /releases/download/vX.Y.Z/ paths.

  • Replace softprops/action-gh-release with gh release create in the release workflow. All release operations now use the gh CLI.

  • Move dev release asset upload from shell script into sync-dev-release CLI command with --upload-assets option, replacing the workflow’s inline script.

  • Fix update-checksums skipping multi-line echo ... \ + | sha256sum --check patterns where the hash and sha256sum keyword are on different lines. This caused Renovate postUpgradeTasks to silently leave stale SHA-256 hashes after version bumps.

  • Force native ARM64 Python on Windows ARM64 test runners via UV_PYTHON to work around uv defaulting to x86_64 emulation. Fixes test-results-parser (from codecov-cli) failing to compile its Rust extension under cross-architecture emulation.

  • Fix skip_binary_build test expecting False in CI push events where only non-binary-affecting files changed.

  • Fix fix-changelog and freeze_file producing a trailing blank line when the last changelog section is modified. Both write sites now normalize to exactly one trailing newline.

6.1.0 (2026-02-27)

Note

6.1.0 is available on 🐍 PyPI and 🐙 GitHub.

  • Add unsubscribe-threads CLI command to unsubscribe from closed, inactive GitHub notification threads.

  • Generate thin caller workflows with explicit secret forwarding instead of secrets: inherit, eliminating zizmor’s secrets-inherit warnings in downstream repositories.

  • Move zizmor config from .github/zizmor.yml to zizmor.yaml at repo root for visibility and consistency with other root-level config files.

  • Centralize PAT existence check via workflow-level env block, replacing duplicated secrets.* ternary expressions in PAT hint steps and the setup-guide invocation.

  • Restrict binary compilation to the HEAD commit for non-release pushes, avoiding redundant Nuitka builds across all commits in multi-commit push events.

  • Add prebake-version CLI command to inject Git commit hash into __version__ before Nuitka compilation. Standalone binaries now report the exact commit they were built from (e.g., 6.1.0.dev0+abc1234).

  • Pre-bake dev versions automatically in the compile-binaries workflow job before Nuitka runs.

  • Detect orphaned versions in lint-changelog: versions that exist as git tags, GitHub releases, or PyPI packages but have no changelog entry. In --fix mode, insert placeholder sections with correct comparison URLs.

  • Rename lint-changelog workflow job to fix-changelog since it always runs with --fix. The CLI command remains lint-changelog.

  • Group CLI commands into sections (Project setup, Release & versioning, Sync, Linting & checks, GitHub issues & PRs) for better discoverability in help output.

  • Add list-skills CLI command to display all available Claude Code skills grouped by lifecycle phase (Setup, Development, Quality, Release).

  • Add next-step handoff suggestions to all Claude Code skills, creating a guided workflow where each skill suggests what to run next.

  • Document skills with a grouped table, recommended workflow sequence, and walkthrough example in readme.md.

  • Add pypi-package-history config option for renamed projects. lint-changelog now fetches releases from former package names and generates correct PyPI URLs for each version.

  • Add sync-github-releases CLI command to sync GitHub release notes from changelog.md.

  • Make changelog entry and GitHub release body assembly template-driven. release-notes.md controls changelog.md layout (including the ## version heading), github-releases.md controls GitHub release bodies. Editing one template affects only its destination.

  • Converge freeze() and update() onto the same decompose→render→replace pattern used by lint_changelog_dates(), with the release-notes.md template as the single source of truth for section layout.

  • Only produce XML coverage and JUnit XML output when running pytest in the CI workflow.

6.0.1 (2026-02-24)

Note

First release under the repomatic name on PyPI, after repokit was rejected for typo-squatting (see 6.0.0 below). The GitHub repository is kdeldycke/repomatic.

Note

6.0.1 is available on 🐍 PyPI and 🐙 GitHub.

  • Rename project from repokit to repomatic. Rename GitHub repository from kdeldycke/repokit to kdeldycke/repomatic.

6.0.0 (2026-02-24)

Caution

This release was deleted from PyPI. It was supposed to be published as repokit, but PyPI flagged the name as typo-squatting the pre-existing repo-kit package.

Note

6.0.0 is available on 🐙 GitHub.

Warning

6.0.0 is not available on 🐍 PyPI.

  • Rename project from gha-utils to repokit. Rename GitHub repository from kdeldycke/workflows to kdeldycke/repokit.

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.