Changelog¶
6.29.1.dev0 (unreleased)¶
Warning
This version is not released yet and is under active development.
Breaking: The test and release workflows now run
click-extra test-suite(thetest-planengine renamed in click-extra8.1), reading the suite from./tests/cli-test-suite.toml. Requiresclick-extra >= 8.1.The test workflow skips the Codecov upload on free-threaded Python (
3.14t), where codecov-cli cannot build itstest-results-parserextension.In generated dependency graphs, thick arrows now mark only the root package’s direct dependencies; a transitive edge that points at a primary dependency stays thin, so optional extras no longer read as a primary dependency chain.
The release workflow now cancels superseded runs on rapid non-release pushes to
main, so intermediate commits no longer pile up redundant binary builds; release commits still run to completion.
6.29.0 (2026-06-22)¶
Breaking: Remove the
repomatic test-plancommand and[tool.repomatic] test-planconfig. The declarative test-plan engine moved upstream to click-extra; runclick-extra test-planinstead, configured via[tool.click-extra.test-plan].Add
repomatic show-test-matrixto render the CI test matrix as a Python-version by OS grid in any--table-format.Add
repomatic init uvto sync the canonical[tool.uv]pins (required-version,exclude-newer) intopyproject.toml;sync-uv-lockapplies the same sync, so every machine resolvesuv.lockwith the same uv.Require
click-extra >= 8; themanpagesrelease job now usesclick-extra wrap --manto generate man pages.The binary download progress bar now respects
--no-progressand--accessible, hiding it when progress output is turned off.Move the Sphinx linkcheck output to
docs/_linkcheck/(mirroringdocs/_build/);broken-links --output-jsonnow defaults there and the generated.gitignoreexcludes it.repomatic runnow warns when--checktargets a post-processed formatter (currentlymdformat): check mode bypasses the fixup, so its exit status can mislead.sync-uv-locknow reverts a re-lock that changed no package versions, so uv’s machine-dependent re-spelling of equivalentuv.lockenvironment markers no longer opens empty sync PRs that ping-pong between contributors and CI.Documentation pages that cover a Python module now end with that module’s API reference.
Test the free-threaded
3.14tbuild as a stable single-runner smoke test instead of across the full cross-platform matrix;3.15stayscontinue-on-error.
6.28.1 (2026-06-19)¶
Fix
test-matrix.full-includematrices emitting combinations thatexcludeshould have removed; they now follow GitHub’s documented include/exclude algorithm.
6.28.0 (2026-06-19)¶
repomatic test-planruns its cases in parallel by default (one fewer than the CPU count); pass--jobs 1for sequential execution.Add
[tool.repomatic] test-matrix.full-includeconfig: declare full-matrix-only job rows as explicit combinations (each merged onto the shipped-config defaults), a readable alternative to a longtest-matrix.excludelist.Run the pull-request test matrix on
ubuntu-24.04-armfor faster Linux CI; the full test matrix still covers x86 Linux.repomatic metadatano longer prints spurious--overwriteor$GITHUB_OUTPUTwarnings when writing to stdout.Add a test-matrix guide to the docs: choosing matrix targets, a GitHub-runner speed inventory, and a worked example.
6.27.0 (2026-06-18)¶
Breaking: Replace
fix-vulnerable-depswithaudit.repomatic auditreports vulnerable dependencies read-only;repomatic audit --fixperforms the previous upgrade behavior.Stop forcing
pyproject-fmttable expansion:project.urls,project.scripts, and similar sections now use its default compact (dotted-key) form.Recognize each bundled tool’s native config files more accurately (
biome,gitleaks,ruff,typos,zizmor, and others) and their config-file CLI flags.Preserve comments when materializing a
[tool.X]section frompyproject.tomlto a tool’s native TOML config file (like.gitleaks.toml), instead of dropping them.Update
pyproject-fmtto2.25.0, fixing theformat-pyprojectjob writing invalid TOML when it reformats[tool.repomatic.labels]rule tables.Align the bundled
[tool.bumpversion]and[tool.lychee]templates withpyproject-fmt’s canonical output, ending the reformatting pull-request loops they triggered.Fix cooldown bypasses (
[tool.uv] exclude-newer-package) never expiring:sync-uv-locknow freezes each one at its locked version instead of a latest-tracking"0 day"span, and prunes it once that version ages pastexclude-newer.Fix
uv.lockping-ponging on everysync-uv-lockrun:exclude-newer-packagefreezes are now explicit UTC timestamps, not bare dates that uv re-expands in the locking machine’s timezone.Fix the
repomatic.myst_docstringsSphinx extension corrupting two adjacent inline-code spans in a docstring when the second span starts with an underscore.Fix the
manpagesrelease job: attach the man-page tarball to the release draft before publishing, so it no longer fails under GitHub immutable releases.
6.26.0 (2026-06-17)¶
Add
[tool.repomatic] nuitka.extrasconfig to sync listed[project.optional-dependencies]extras into the venv before the Nuitka build, so optional features land in the binary.Add
[tool.repomatic.labels]extra,file-rules, andcontent-rulesconfig for inline label definitions and labeller rules, replacing the silently-ignoredextra-file-rulesandextra-content-rulesfields.Stop version-bump PRs from upgrading dependencies: the bump and release jobs now run plain
uv lock, leaving dependency refreshes to thesync-uv-lockjob.Add a
[tool.repomatic] changelog.bullet-word-thresholdconfig:lint-changelogwarns (non-fatally) about unreleased changelog bullets longer than the threshold (40 words by default).
6.25.1 (2026-06-13)¶
Fix
uvx repomatic@X.Y.Zfailing for end users withNo solution foundby dropping thebump-my-versiondependency and reading the current version natively from.bumpversion.tomlor[tool.bumpversion].Remove the
uv-overrides.txtfile and allUV_OVERRIDEworkflow env blocks.Render the Mermaid dependency graph in
docs/install.mdunder a newDefault dependenciessection.
6.25.0 (2026-06-13)¶
Add man page generation to the release and docs pipelines via a
manpagesjob, activated by[tool.repomatic.manpages]config keys (script,asset-name); requiresclick-extra>=7.19.Validate
[project.scripts]entries when building the Nuitka matrix, rejecting path-shaped, empty, or malformed script names up front with a clear error.Replace the
tomlkitandtomlidependencies withtomlrtfor all TOML reads and comment-preserving writes.Annotate
ghand PAT permission check failures with the current githubstatus.com summary, and surface raw stderr on non-403 failures instead of misreporting missing scopes.Recognize friendly durations (
24 hours,30 minutes) and ISO 8601 durations (PT24H,P7D) in[tool.uv].exclude-newerwhen computing therepomatic sync-uv-lockcooldown.Fix
UV_OVERRIDEnot reaching Renovate’s child processes duringupdate-checksums.Add
[tool.repomatic] abandoned-versionstolint-changelog, reporting listed versions as skipped instead of warning that they are missing from PyPI.Tighten
/repomatic-ship’s pre-push gate withruff format --checkand arepomatic --versiondependency-resolution smoke run.
6.24.0 (2026-05-28)¶
Publish to PyPI right after the wheel builds instead of waiting for the full release engine, by splitting the build into a
_release-build.yamllane thatrelease.yaml’spublish-pypijob depends on.
6.23.0 (2026-05-28)¶
Split
release.yamlinto a thin entry workflow and a new reusable_release-engine.yamlengine; the entry keepspublish-pypiso PyPI Trusted Publisher OIDC resolves to each repo’s ownrelease.yaml.Remove the
release-publish-pypi-job.yamldata fragment;release.yamlis now the single source for thepublish-pypijob.Require
uv>=0.11.15for the vulnerability scan and parseuv audit --output-format jsondirectly, raising a clear error on unsupporteduvversions and deduplicating advisories across sources by alias.Refine
/repomatic-shipto re-consolidate the changelog after the babysit phase and re-dispatchchangelog.yamlafter a code-only fix push so the release PR stays current.Extend
/babysit-cito also monitorautofix.yaml, diagnosing and fixing crashed mechanical-fix jobs instead of leaving them red onmain.Fix
release.yaml’scompile-binariesandtest-binariesjobs aborting every non-release run withUnexpected value ''on projects withnuitka.enabled = false.
6.22.0 (2026-05-25)¶
repomatic initnow prunes downstream orphans of renamed or removed skills, agents, and workflows; locally modified copies are reported for manual review, never deleted. Pass--keep-removedto report without deleting, or--delete-removed-modifiedto also delete modified ones./repomatic-shipnow closes with a reflect step that reviews the session for friction and proposes fixes to the upstreamrepomaticsource.Fix the downstream caller’s
publish-pypijob aborting every non-releaserelease.yamlrun withUnexpected value ''when itsstrategy.matrixis empty.Fix
/repomatic-shipand/babysit-cidropping theCo-Authored-By: Claudetrailer on their autonomous commits; both skills now require it self-containedly./babysit-cinow treats a workflow run that fails with no individual job failure as a real workflow-level error to investigate.Fix the documentation site’s live CLI-help and example blocks rendering empty since
click-extra7.15.0 made execution directives opt-in.Seed each tool section in the tool-runner docs with a runnable
repomatic runexample and a minimal[tool.X]snippet.
6.21.0 (2026-05-25)¶
Replace the
repomatic-releaseskill withrepomatic-ship, a release orchestrator that reconciles changelog, code, and docs, then commits, pushes, and babysits CI until the release PR is ready. Review-gated by default, fully autonomous under--dangerously-skip-permissions.Add a
modernizemode to therepomatic-depsskill that reads upgraded dependencies’ changelogs and refactors code to adopt their new features, gating each change on the test suite.Extend the
babysit-ciskill to also monitor and triage the Nuitkacompile-binariesjob inrelease.yaml.Decouple the downstream caller’s
publish-pypijob from the run’s overall result: it now runs underalways()and gates on a newpackage_builtoutput, so a cleanly built wheel publishes even when an unrelated job fails.Remove the
repomatic-sync,repomatic-lint, andrepomatic-testskills, which only wrapped CLI commands CI already runs on every push.Fix the
bump-versionjob inchangelog.yamlleaving an orphan version-bump PR open after a competing bump merged intomain.Switch
pytest-xdistto--dist=loadgroupso@pytest.mark.xdist_group("git")markers are honored, fixing.git/config.lockcontention on Windows.Enable myst-parser’s
alertextension so GitHub-style alerts (> [!NOTE],> [!IMPORTANT]) render as admonitions on the documentation site.Give each tool section in the tool-runner docs a hand-maintained extra-docs region preserved across regenerations, seeded for Nuitka, and add Nuitka to the page’s
[tool.X]-support table.
6.20.0 (2026-05-24)¶
Breaking: remove
[tool.repomatic] nuitka.extra-args. Configure Nuitka flags through[tool.nuitka]inpyproject.tomlinstead (--include-data-files=SRC=DESTbecomesinclude-data-files = ["SRC=DEST"]).repomatic run nuitkanow installs the pinned Nuitka, reads[tool.nuitka]frompyproject.toml, and passes the section as CLI flags; Nuitka appears inrepomatic run --list.Build Nuitka binaries on Python 3.14.
Switch
[tool.typos]sync toONGOING: canonical proper-noun identifiers merge into a pre-existing[tool.typos]section instead of skipping it, preserving local keys and entries.Add
[[tool.bumpversion.files]]rules to the bundled template so downstream Python repos sync[tool.nuitka]’s numeric version keys without rewriting them on[project]bumps.Add
test-matrix.unstableconfig: matrix-key dicts (like{click-version = "main"}) that mark matching full-matrix combinationscontinue-on-errorin CI.Add a
lint-repocheck warning when a[tool.repomatic.test-matrix] excludeentry references a runner or Python version absent from the live matrix axes.Add
workflow_dispatchtriggers torelease.yamlandupdate-checksums.yamlfor manual re-runs.
6.19.0 (2026-05-21)¶
Add
repomatic close-stale-bump-pr --part minor|majorto close orphan version-bump PRs left by races between thechangelog.yamlschedule and a competing push.Expand sponsor benefits in the awesome template’s
contributing.md: sponsors get a dedicated entry in the matching section and a waiver on the licensing-marker requirement.Switch the
Sync uv.locksteps inchangelog.yamlfromuv synctouv lock --upgrade, folding pending transitive refreshes into the bump commit.Make
lint-changelog --fixrefuse to rewrite admonitions when an upstream GitHub or PyPI lookup looks unhealthy, instead of applying a corrupted view.Skip CI for automated version-bump operations across
tests.yaml,lint.yaml,labels.yaml, andrelease.yamlvia a unifiedmetadatagate.Reduce CI scheduling with
paths-ignore/paths:filters and per-job gates that skip lint jobs when no relevant files changed.Bump Biome from
2.4.14to2.4.15.
6.18.4 (2026-05-14)¶
Replace
RepoScope.NON_AWESOMEwithPYTHON_ONLY, gating Python-flavored components on a PEP 621[project].nameso dotfiles repos carryingpyproject.tomlonly for[tool.*]config skip them by default.The bundled
release-publish-pypi-job.yamlfragment now participates in the@mainto@vX.Y.Zrewrite, so wheels built from a freeze commit ship with the pinned action ref.Bump Biome from
2.4.13to2.4.14and Lychee from0.24.1to0.24.2.Fix
fix-vulnerable-depsplacingexclude-newer-packageat the end of[tool.uv], which triggered a spuriousformat-pyprojectPR on the next run.
6.18.3 (2026-05-11)¶
Fix
autofix.yaml’ssetup-guidejob being skipped onworkflow_dispatchre-runs.Fix
release.yaml’spublish-pypijob running against downstream callers and failing PyPI trusted publishing with ajob_workflow_refmismatch.Switch the
compile-binariesjob from--onefileto--mode=onefile, the documented spelling since Nuitka 4.0.
6.18.2 (2026-05-08)¶
Fix
release.yamluploading distributions to PyPI without PEP 740 attestations; the build job now signs each dist file and ships the.publish.attestationsidecars alongside it.
6.18.1 (2026-05-08)¶
Fix the
publish-pypicomposite action verifying build attestations on every workspace file instead of just the downloaded distribution artifacts.
6.18.0 (2026-05-07)¶
Note
6.18.0 is available on 🐙 GitHub.
Warning
6.18.0 is not available on 🐍 PyPI.
Breaking: drop
PYPI_TOKENfrom therelease.yamlworkflow_call.secrets:interface. Regenerate the thin-caller workflow withrepomatic init workflowsand register a PyPI Trusted Publisher for your ownrelease.yaml.Add the
publish-pypicomposite action that publishes via OIDC Trusted Publishing with build-attestation verification; each downstream thin-caller now runs a generatedpublish-pypijob.Add a
check_pypi_trusted_publisherprobe tolint-repoand asetup-guide-pypi-trusted-publisherstep that points to a pre-filled PyPI publisher settings URL and stays open until the first OIDC-attested upload.Add
release_commits_matrixandpackage_nameoutputs to the reusablerelease.yamlso callers can drive their own matrix and gate jobs on a release commit.New composite actions under
.github/actions/now participate in@main↔@vX.Y.Zref freeze/unfreeze without code changes.Fix
sync-repomaticproposing to delete.github/actions/publish-pypi/action.yamlwhen it matched the bundled default; the file must stay on disk for GitHub Actions to resolve theuses:path.
6.17.0 (2026-05-04)¶
Add
--template-file <path>and--template-arg KEY=VALUEflags torepomatic pr-bodyso downstream repos can render project-specific PR templates without forking.--templateand--template-fileare mutually exclusive.Fix backslash-escaped brackets rendering literally in
docs/configuration.md**Type:**lines (likelist\[dict[str, str]\]).Fix doubled heading anchors on
docs/configuration.htmlanddocs/workflows.html(like#dev-release-sync-dev-release-sync).Collapse the most recent Python compatibility matrix row in
docs/install.mdto a major-version wildcard (like6.x) so the table stays stable across minor releases.
6.16.0 (2026-04-29)¶
Add the
sphinx-docsagent to theagentscomponent, deployed byrepomatic init agentsor via[tool.repomatic] include = ["agents"].Add three
[tool.repomatic.workflow]knobs for customizingpaths:filters in generated thin callers:extra-pathsappends repo-specific entries,ignore-pathsstrips canonical entries absent downstream, andpathsreplaces a filter wholesale per workflow.Add a Python compatibility matrix to
docs/install.md, auto-generated from theProgramming Language :: Pythonclassifiers declared at every release tag.Render each command’s
--helplive indocs/cli.mdvia{click:run}directives instead of captured plain-text help blocks.Replace the
Typecolumn in thedocs/configuration.mdsummary table with a one-line description derived from each option’s docstring, and lead each per-option section with that one-liner.Detect vulnerable dependencies from the GitHub Advisory Database alongside the PyPA database:
fix-vulnerable-depsnow unionsuv auditwith Dependabot alerts and credits each entry’s source. Configurable via[tool.repomatic] vulnerable-deps.sources.Fix generated thin-caller fidelity: triggers mirror the canonical workflow verbatim instead of always injecting
workflow_dispatch, universal path entries are preserved, andrepomatic workflow lintnow flags extra triggers absent upstream.Fix
sync-uv-lockandfix-vulnerable-depsPR bodies showing1-01-01as theexclude-newercutoff whenpyproject.tomlconfigures a relative span like"1 week".Fix broken documentation links in all 18 PR body templates, now pointing at the published
configuration.htmlandworkflows.htmlanchors with each option name linked to its own anchor.Fix
release.yamldiscarding healthy binaries when one matrix cell crashed: thecompile-binariesmatrix setsfail-fast: falseandpublish-releaseuploads whatever built.Fix
update-docs↔format-markdownping-pong ondocs/cli.mdanddocs/configuration.md.Bump pinned
uvto0.11.8andmdformat-pelicanto1.0.0, fixing non-ASCII anchor links being percent-encoded on everyformat-markdownrun.
6.15.0 (2026-04-27)¶
Decode percent-encoded non-ASCII characters in Markdown link destinations back to their original form, so non-ASCII anchors no longer get rewritten to
%XXon everyformat-markdownrun.Add 💸/🆓 licensing markers to the awesome-list contributing guide, issue template, and PR template (English and Chinese mirrors): 💸 for a paid version atop an OSS core, 🆓 for fully open-source.
Add the
agentscomponent torepomatic initfor deploying Claude Code agents (grunt-qa,qa-engineer) downstream. Excluded by default; opt in via[tool.repomatic] include = ["agents"]. Destination set by[tool.repomatic] agents.location.Add
docs/benchmark.mdcomparing repomatic against ten alternatives across template sync, repo governance, release automation, and changelog lifecycle.Switch MyST admonitions to backtick fences (
```{note}) instead of colon fences project-wide somdformatpreserves them; theconvert-to-mystcommand now emits backtick fences.Expand the
myst_docstringsSphinx extension: convert plain triple-backtick code fences and footnotes to reST, and run MyST-to-reST conversion beforesphinx_autodoc_typehints.Upgrade lychee to
0.24.1, which reads its[tool.lychee]config directly frompyproject.tomlso repomatic drops the TOML translation bridge.Fix
repomatic initreporting unchanged files as updated; re-running against an unchanged tree is now a true no-op.Fix
update-docs↔format-markdownping-pong ondocs/tool-runner.md.
6.14.0 (2026-04-20)¶
Add a Sphinx documentation site (Furo theme, MyST-Parser) splitting the monolithic
readme.mdinto focused pages: installation, configuration, CLI parameters, reusable workflows, security, skills, and a tool runner tutorial. Deployed viadocs.yaml.Add the
repomatic.myst_docstringsSphinx extension andrepomatic.myst_converterutility, converting MyST markdown in docstrings to reST at build time sosphinx.ext.autodocworks unmodified.convert-to-mystrewrites source files in place.Add a
--sort-byoption to theshow-config,metadata --list-keys,run --list, andcache showcommands; each defaults to a natural sort column and accepts any column name.Add an incremental mode to the
brand-assetsskill: when base SVGs already exist, skip the design menu and fill gaps directly.Add a
check_stale_gh_pages_branchlint check and setup-guide instructions for deleting leftovergh-pagesbranches after switching to GitHub Actions deployment.Fix
Matrix.prune()keeping exclude directives that reference keys absent from the matrix axes, which GitHub Actions rejects.Fix the setup-guide Pages step for Sphinx projects: reopen the issue when Pages is unconfigured, and offer both first-time-enable and update commands.
Fix the
sponsor-labeljob inlabels.yamlmissing anactions/checkoutstep, which caused it to fail.
6.13.0 (2026-04-15)¶
Breaking:
Confignow uses nested dataclasses, so fields are accessed asconfig.cache.dirinstead ofconfig.cache_dir; the[tool.repomatic]TOML key structure is unchanged.Add
nuitka.entry-pointsconfig option to select which[project.scripts]entries produce Nuitka binaries; aliases pointing to the same callable are deduplicated by default.Add two-phase VirusTotal scanning: an initial table with scan links, then a
--pollpass that fills in a Detections column offlagged / totalengine counts.Add
av-false-positiveskill to scan release binaries on VirusTotal and generate per-vendor false-positive submission files for flagged artifacts.Add
update-checksums.yamlworkflow that recomputes SHA-256 checksums for binary tools bumped by Renovate and commits the fix to the PR branch.Include release notes for every intermediate version in
sync-uv-lockPR bodies, not just the target version.Config
includeentries now bypassRepoScopefiltering, matching explicit CLI component naming; qualified entries likeskills/awesome-triageimplicitly select their parent component.Add baseline criteria for GitHub repositories in awesome list contributing guidelines: minimum 50 stars, not archived, and updated within 3 years.
Add
--min-savings-bytesoption toformat-images(default 1024) to skip images whose absolute byte savings are negligible.Add cross-platform binary support (macOS arm64/x64, Linux arm64/x64, Windows x64) for actionlint, biome, gitleaks, labelmaker, lychee, shfmt, and typos, plus ZIP archive extraction.
Show a progress bar during binary tool downloads when the server reports
Content-Length; interactive terminals only, silent in CI.Verify cached binaries with a two-layer integrity model: the registry checksum at download time and a
.sha256sidecar on every cache hit.Enable
[tool.actionlint]config support, translating it to.github/actionlint.yamlat invocation time.Cache downloaded tool binaries across CI runs with
actions/cache, keyed per tool, OS, and architecture.Replace
peaceiris/actions-gh-pageswith GitHub’s nativeactions/upload-pages-artifactandactions/deploy-pagesfor documentation deployment, plus alint-repocheck that the Pages source is set to GitHub Actions.Add
benchmark-updateskill to create and maintain competitive benchmark pages (docs/benchmark.md) withaudit,init,add, andrefresh-badgesmodes.Add
upstream-auditskill to create and maintain upstream contribution tracking pages (docs/upstream.md) withaudit,init,refresh, andsync-gitmodes.Upgrade the macOS Intel runner from
macos-15-inteltomacos-26-intelacross binary builds, the test matrix, and Nuitka compilation.Run the
lint-repoworkflow job on all repositories, not just Python projects, so generic checks apply to awesome lists too.Centralize GitHub token resolution with priority
REPOMATIC_PAT>GH_TOKEN>GITHUB_TOKENand automatic fallback toGITHUB_TOKENon an expired PAT;--has-patonsetup-guideandlint-reponow auto-detects fromREPOMATIC_PAT.Fix
exclude-newer-packagepruning inpyproject.tomlto remove orphaned comments and emitpyproject-fmt-compatible inline tables.Give a clear error when exiftool is not installed instead of a bare
FileNotFoundError, and verify it is on PATH after the Windows install step.Create parent directories for
--outputfile paths inrepomatic run, fixing lychee write errors when the output directory is missing.Sanitize
@mentions,#issuereferences, andgithub.comURLs in Lychee and Sphinx linkcheck output before embedding them in the broken-links issue.
6.12.0 (2026-04-13)¶
Breaking: rename the
shell_filesmetadata key toshfmt_files, and exclude Zsh files and.shfiles with a Zsh shebang fromshfmtprocessing.Add
repomatic cachesubcommands (show,clean,path) and a global binary cache for downloaded tools; cached binaries are re-verified against their checksum and auto-purged after 30 days (configurable viaREPOMATIC_CACHE_MAX_AGE). Add--no-cachetorepomatic runto bypass it.Add an HTTP response cache for PyPI metadata and GitHub release bodies to avoid redundant API calls, plus
--namespaceonrepomatic cache cleanfor targeted cleanup.Route generated tool configs through the cache directory and pass them explicitly via
--config, instead of writing to/tmpor the repository root.Add
--version,--checksum, and--skip-checksumoptions torepomatic runto override the pinned tool version and SHA-256 verification at invocation time.Add structured logging to
repomatic run:--verbosity INFOreports config precedence, the full command, and exit code;DEBUGadds parsed config details.Add
skills.locationconfig option to override the Claude Code skills directory (default./.claude/skills/).Add
changelog.locationconfig option to override the changelog file path (default./changelog.md), honored by all CLI commands.Add
.claude/package-skills.shto package each Claude Code skill as a ZIP for manual upload to Claude Desktop.Sanitize
@mentions,#issuereferences, andgithub.comURLs in upstream release notes embedded insync-uv-lockPR bodies to prevent auto-linking and backlink cross-references.Use the
REPOMATIC_PATtoken in allpeter-evans/create-pull-requeststeps so created PRs trigger other workflows.Make the
uv syncstep inlint-typesconditional onis_python_project, so repos with Python files but no lockfile can still be type-checked.Fix
format-jsonfailing with a--config-patherror when a[tool.biome]section exists.Improve the
file-bug-reportskill to check organization-level community health files before per-repo files.
6.11.3 (2026-04-09)¶
Add a
lint-repocheck warning when the GitHub Actions fork PR approval policy is weaker thanfirst_time_contributors, with a setup guide step to fix it.Add a
readme.mdsupply chain security section mapping Astral’s security practices to concrete repomatic implementations.Fix
rst_to_mystconversion leaving RST backslash escapes in headings and not wrapping dotted module names in backticks.Fix the
format-pyprojectautofix job failing with exit code 123.Disable the uv cache in the
publish-pypirelease job, which has no checkout and emitted spurious cache-miss warnings.
6.11.2 (2026-04-08)¶
Add the
shfmtshell formatter to the tool runner (repomatic run shfmt).Add a
format-shellautofix job to auto-format shell scripts withshfmt.Replace the
crazy-max/ghaction-virustotalaction with a nativerepomatic scan-virustotalcommand, fixing the silently skipped release-body update.Deduplicate release attestations: Python packages are now attested once in
build-packageinstead of three times, and.gitignoreis no longer accidentally attested.
6.11.1 (2026-04-08)¶
Parallelize the release workflow:
compile-binariesstarts right aftermetadata, andpublish-pypiruns concurrently withcreate-tagandcreate-release, with binary and attestation uploads deferred topublish-release.Fall back to the PyPI
project_urlschangelog link when a package has no GitHub Release, so release notes render a[Changelog]link instead of omitting the package.Fix the release workflow uploading the attestation bundle before the GitHub release draft existed.
Skip
exclude-newer-packageexemptions for packages whose fixed version already falls within theexclude-newercooldown window.Fix
--delete-excludednot detecting scope-excluded component files that still exist on disk.Fix awesome-template sync overwriting
pyproject.tomlinstead of merging, which stripped user-managed[tool.*]sections.Fix
repomatic init <component>silently ignoring an explicitly requested component when its scope did not match the repo.Fix
--delete-excludedremoving opt-in workflow files in the source repo by skipping config-key exclusions there.Fix the
format-pyprojectautofix step running with no input files and masking tool errors.
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; the managed job is regenerated in place while project-specific jobs, comments, and blank lines are kept.
Add a VirusTotal scanning job to the release workflow that uploads compiled binaries to seed AV databases. Requires the optional
VIRUSTOTAL_API_KEYrepository secret.Verify each attestation in CI right after
actions/attestwithgh attestation verify.Upload Sigstore attestation bundles (
.jsonl) as GitHub release assets for compiled binaries and Python packages, enabling offline verification.Add a
lint-repowarning whenVIRUSTOTAL_API_KEYis missing and Nuitka binary compilation is active.Add a VirusTotal API key setup step to the setup guide issue, shown only when Nuitka compilation is active.
Remove the one-time bumpversion dev-versioning migration code now that all downstream repos use PEP 440 dev versioning.
6.10.0 (2026-04-03)¶
Breaking: Remove the
-oshort option frompr-bodyandformat-images; use--output.Add
brand-assetsskill to create and export project logo/banner SVG assets to light/dark PNG variants.Add
babysit-ciskill to monitor CI test workflows, diagnose failures, fix code, and loop until stable jobs pass.Add
file-bug-reportskill to write upstream bug reports from contribution guidelines, issue templates, and community norms.Add
test-matrix.replaceandtest-matrix.removeconfig to swap or drop axis values in the test matrices.Add
sync_mode=ONGOINGfor tool configs to repeatedly sync while preserving local additions, starting withsync-bumpversionkeeping local[[tool.bumpversion.files]]entries.Add
--output-format [markdown|github-actions]tosync-uv-lock,fix-vulnerable-deps,pr-body, andformat-images, replacing implicit$GITHUB_OUTPUTdetection.Add
.claude/scheduled_tasks.lockto the default.gitignoreextra content.Add a collapsible workflow metadata table (trigger, actor, commit, job, workflow, run link) to issue lifecycle comments.
Make the
setup-guideissue body a set of collapsible per-step sections with status indicators, and close it only once PAT, permissions, vulnerability alerts, and branch protection are all verified.Add
--release-notes/--no-release-notesand--table/--no-tableflags tosync-uv-lock, defaulting to a terminal table and reserving markdown for--output.Prune stale
exclude-newer-packageentries frompyproject.tomlbefore relocking insync-uv-lock.Make the
renovatecomponent opt-in, and excluderenovateandcodecovfrom awesome-list repositories.Remove Python
3.15t(free-threaded) from the default test matrix.Warn instead of crashing on unknown
[tool.repomatic]configuration keys.Echo
metadataoutput to stderr when--outputtargets a file, so computed matrices stay visible in CI logs.Add the
repomatic update-docscommand to runsphinx-apidoc, RST-to-MyST conversion, anddocs/docs_update.pyin one step.Add
docs.apidoc-extra-args,docs.apidoc-exclude, anddocs.update-scriptconfiguration options.Move the
sync-uv-lockjob fromrenovate.yamltoautofix.yamlso it runs on every push tomain.Fix a CLI crash when
test-matrix.variationsortest-matrix.replacecontain nested keys.
6.9.0 (2026-03-31)¶
Breaking: Rename the
configsubcommand toshow-config(it now resolves typed[tool.repomatic]config via click-extra).Breaking: Remove the
prebake-versionandprebake-tag-shacommands; useclick-extra prebakeinstead.Add per-project test matrix configuration via
[tool.repomatic.test-matrix], supportingexclude,include, andvariations.Replace the
audit-depslint job with afix-vulnerable-depsautofix job that opens PRs upgrading vulnerable packages.Add a
codecovbundled component that syncs.github/codecov.yamlto suppress noisy PR comments.Support tool-runner config for tools that discover config from the working directory rather than a
--configflag.Move the mdformat
numberdefault to a bundledmdformat.tomlso downstream repos can override it.Expand PAT validation in
lint-repoandcheck-renovatewith repository scope, tag ruleset, and permission checks.Auto-exclude
changelog.mdfor awesome-list repositories.Migrate from
actions/attest-build-provenancetoactions/attest.Run granular PAT permission checks in
setup-guide, keeping the issue open with a diagnostic table when permissions are incomplete.Fix the
setup-guidejob so PAT detection works everywhere.Fix an infinite cycle between the
migrate-to-renovateandsync-repomaticjobs.Include git stderr in
git-tagCLI error messages.
6.8.0 (2026-03-27)¶
Breaking: Rename
repomatic init --delete-redundantto--delete-unmodified, which now also removes config files identical to bundled defaults.Breaking: Remove the deprecated
WORKFLOW_UPDATE_GITHUB_PATsecret and its fallbacks; downstream repos must useREPOMATIC_PAT.Breaking: Stop persisting
[tool.ruff]defaults into downstreampyproject.toml; bundled ruff config is now injected at runtime when none exists.Breaking: Remove the
sync-renovatecommand, autofix job,renovate.syncconfig toggle, and PR body template;sync-repomaticand runtime materialization replace them.Breaking: Merge
/repomatic-deps-reviewinto/repomatic-deps, which now supportsgraphandreviewmodes.Move the test matrix definition into
repomatic metadataso it is available in job-levelif:conditions.Reduce CI jobs on pull requests by skipping release builds, experimental Python versions, and redundant verification tests; the full matrix still runs on push to
main.Make
excludeconfig additive to the default exclusions (labels,skills), and add anincludeconfig to force-include default-excluded components.Auto-exclude the
awesome-triageskill for non-awesome repositories.Add
--delete-excludedtorepomatic initto remove excluded files that still exist on disk.Replace the
sync-workflowsandclean-unmodified-configsautofix jobs with a singlesync-repomaticjob that syncs and prunes managed files in one PR.Add PAT capability and repo configuration checks to
lint-repo(Renovate config, Dependabot security updates off, vulnerability alerts on, PAT permissions).Add stale draft release detection to
lint-repo, warning about draft releases whose tag does not end with.dev0.Relax the abandoned-dependency threshold from 1 year to 2 years in the Renovate config.
Fix thin-caller generation rendering
workflow_dispatchinputs as Python dicts instead of YAML.Add the
/sphinx-docs-syncskill for cross-project Sphinx documentation comparison and synchronization.Add the
/translation-syncskill to detect and draft fixes for stalereadme.*.mdandcontributing.*.mdtranslations; auto-excluded for non-awesome repos.Streamline Dependabot guidance in the setup-guide issue.
Allow
repomatic initto accept qualifiedcomponent/fileselectors (likerepomatic init skills/repomatic-topics).Only auto-include the
awesome-templatecomponent forawesome-*repos when no explicit components are given.Add a package version diff table to
sync-uv-lockPRs, listing updated, added, and removed packages with PyPI links and collapsible release notes.Document file naming conventions in
claude.md: prefer.yamlover.ymland lowercase filenames, with a table of GitHub exceptions.Fix awesome-template URL rewriting to also process
.ymlfiles in.github/.Auto-exclude the
changelog.yaml,debug.yaml, andrelease.yamlworkflows forawesome-*repositories.Materialize the bundled
renovate.json5at runtime when absent, so downstream repos can safely delete their own copy.Pin GitHub Actions to SHA digests via Renovate’s
helpers:pinGitHubActionDigestsToSemverpreset.Add top-level
permissions: {}to all workflow files, requiring each job to declare its own minimal permissions.Fix
sync-repomaticdeleting the upstream repo’s own skills.Generalize the
opt_in_keyconfig option intoconfig_key/config_default.
6.7.0 (2026-03-24)¶
Breaking: Remove the
sync-skills,workflow create, andworkflow synccommands;repomatic inithandles all three.Bundle awesome-template boilerplate files in
repomaticinstead of cloningkdeldycke/awesome-templateat runtime.Format every
pyproject.tomlin the repo in theformat-pyprojectjob, not just the root file.Add a branch protection checklist to the setup-guide issue, linking to a pre-filled ruleset creation form.
Add an opt-in
unsubscribe.yamlreusable workflow for scheduled cleanup of closed notification threads, enabled vianotification.unsubscribe = trueand requiringREPOMATIC_NOTIFICATIONS_PAT.Surface actual
ghCLI error messages inunsubscribe-threadswarnings.Enable
delete-branch: trueon allpeter-evans/create-pull-requestinvocations so stale automation PRs auto-close.Add
gitleaksto the tool runner with binary download and[tool.gitleaks]config bridge, and migratelint-secretstorepomatic run gitleaks.Move lychee config from
lychee.tomlto[tool.lychee]inpyproject.toml.Fix the
format-imagesjob by installingoxipngfrom its GitHub release.debso it runs onubuntu-slim.
6.6.0 (2026-03-23)¶
Breaking: downstream repos with
yamllintorzizmorin their[tool.repomatic] excludelist must remove those entries.Remove
yamllintandzizmorinit components; the tool runner falls back to bundled default configs at runtime. Defaultexcludeis now["labels", "skills"].Add
repomatic clean-redundant-configscommand and autofix job that removes native config files identical to bundled defaults;repomatic initwarns about redundant configs on disk.Rename the
WORKFLOW_UPDATE_GITHUB_PATsecret toREPOMATIC_PAT; workflows accept both names. Old-name repos get a migration issue that auto-closes onceREPOMATIC_PATis detected.Add a
setup-guidetoggle to[tool.repomatic]to suppress the setup guide issue.Pre-fill the fine-grained PAT creation form via URL and provide
ghCLI commands for adding the secret, configuring Dependabot, and triggering a verify run.Add a
lint-repocheck that warns when the owner has GitHub Sponsors enabled but.github/FUNDING.ymlis missing.
6.5.0 (2026-03-23)¶
Breaking: the old
init.excludeandworkflow.sync-excludekeys are no longer recognized and raise a hard error.Breaking: remove legacy
[tool.gha-utils]and[tool.repokit]config migration; rename old sections to[tool.repomatic]manually.Replace
init.excludeandworkflow.sync-excludewith a unifiedexcludekey: bare names exclude whole components,component/identifierentries exclude specific files.Add
repomatic run <tool>for unified tool invocation with managed config resolution (native file,[tool.X], bundled default, bare); use--listto see managed tools and their active config source.Register actionlint, autopep8, biome, bump-my-version, labelmaker, lychee, mdformat, mypy, pyproject-fmt, ruff, typos, yamllint, and zizmor with
repomatic run, and migrate all workflow tool invocations to it.Add a
yamllintinit component, excluded from init by default likezizmor.Add
repomatic update-checksums --registryto refresh SHA-256 hashes for binary tools.Add
[tool.lychee]and[tool.biome]config translation, so downstream repos can configure lychee and biome frompyproject.tomlwithout separate config files.
6.4.1 (2026-03-11)¶
Add a
github-jsonoutput dialect torepomatic metadatathat bundles all keys into a singlemetadataoutput, accessed viafromJSON(needs.metadata.outputs.metadata).key_name.Add key filtering to
repomatic metadata: pass key names as arguments to output only those values.Add a
--list-keysflag torepomatic metadatato list all available keys with descriptions.Rename the
project-metadatajob and step IDs tometadataacross all workflows.Rename the
lintersinit component tozizmor; defaultinit.excludeis now["labels", "skills", "zizmor"].Remove the
sync-zizmorjob, CLI command, andzizmor.synctoggle;zizmor.yamlis now user-owned and created byrepomatic init zizmorif missing.Rename the
bump-versionsjob tobump-versioninchangelog.yaml.Upgrade zizmor to
1.23.0and re-enable thetemplate-injectionaudit.Fix
repomatic metadatalist values breaking GitHub Actions${{ }}interpolation: lists are now pre-formatted (file lists as quoted strings, plain lists space-separated, dict lists as JSON).Fix
repomatic workflow sync --format header-onlyerroring when a target workflow file is absent downstream; missing default files are skipped and named missing files warn instead.Enable parallel test execution by default via
--numprocesses=auto.
6.4.0 (2026-03-10)¶
Rename
optimize-imagestoformat-images, aligning it with theformat-*naming convention, and add a matching PR body template.Allow
--prefixand--templateto be combined inrepomatic pr-body; the prefix is prepended before the rendered template.Add
awesome-template-sync,bumpversion-sync,dev-release-sync,gitignore-sync,labels-sync,mailmap-sync,uv-lock-sync, andzizmor-synctoggles to[tool.repomatic], so each sync operation can be individually disabled.Rename
sync-linter-configstosync-zizmor(andlinter-synctozizmor-sync), naming the sync job after the tool it syncs.Add a
repomatic sync-labelscommand wrappinglabelmakerwith toggle check, profile detection, and extra label file handling.Replace
AndreasAugustin/actions-template-syncwith a nativerepomatic sync-awesome-templatecommand.Add
repomatic init typosto sync the shared typos spell-checker config intopyproject.toml, with proper-noun corrections and<!-- typos:off -->/<!-- typos:on -->block markers.Skip Ruff config injection in
format-pythonfor non-Python projects, and skipsync-bumpversionfor non-Python projects.Use TOML sub-keys for grouped
[tool.repomatic]options (likenuitka.enabled,gitignore.location,test-plan.file); onlypypi-package-historystays flat.Add a
workflow-source-pathsoption to[tool.repomatic]: thin-caller and header-only workflows gainpaths:filters for the project’s source directory, auto-derived from[project.name].Add a
repomatic configcommand that renders the[tool.repomatic]reference table.Add
### Configurationsections to PR body templates listing the relevant[tool.repomatic]options.
6.3.2 (2026-03-08)¶
Add
--all-extrasto theuv syncstep intests.yamlto catch incompatibilities between optional dependency groups.Add a
test-package-installjob totests.yamlthat verifies every[project.scripts]entry point installs and runs viauvx,uv run --with, module invocation,uv tool install, andpipx run, from PyPI and GitHub. Add acli_scriptsmetadata output.Sync
customManagersto downstreamrenovate.json5so Renovate can update inline version pins in workflow files.Fix thin-caller generation stripping
pathsandpaths-ignorefilters, which incorrectly restricted CI triggers downstream.Fix the
optimize-imagesjob failing onubuntu-slimwhereoxipngis unavailable.Add a
citation.cffdate-releasedupdate to the bundledbumpversion.tomltemplate so downstream repos keep their release date in sync on version bumps.
6.3.1 (2026-03-07)¶
Sync the
repomatic-auditskill to downstream repos.
6.3.0 (2026-03-06)¶
repomatic initnow always overwrites managed files (workflows, configs, skills) by default; remove the--overwriteflag.changelog.mdis never overwritten once it exists.repomatic initoutput now distinguishes created, updated, and skipped files, and warns about excluded files still on disk.Auto-remove legacy
.claude/skills/gha-*/skill directories duringrepomatic init, completing thegha-utilstorepomaticrename.sync-bumpversion,sync-linter-configs, andsync-skillsnow report both created and updated files.sync-bumpversionnow replaces the whole[tool.bumpversion]section from the bundled template instead of applying incremental migrations.Use the short SHA in release workflow job names instead of the full commit hash.
6.2.1 (2026-03-06)¶
Fix
actions/checkoutwiping downloaded Python package artifacts beforegh release createcould attach them, so release drafts now include the distribution files.Fix
fix-changelogmarking releases as not available on GitHub while the release was still a draft.
6.2.0 (2026-03-05)¶
Add the
repomatic optimize-imagesCLI command (losslessoxipngfor PNG,jpegoptimfor JPEG), replacingcalibreapp/image-actions.Add the
sync-dev-releaseCLI command and workflow job to maintain a rolling dev pre-release on GitHub with the latest binaries and Python package.Add the
repomatic-topicsskill for optimizing GitHub repository topics for discoverability.Add a
lint-repocheck that warns when GitHub topics are not a subset ofpyproject.tomlkeywords.Add the
init-excludeconfig option to skip components duringrepomatic init, defaulting to["labels", "linters", "skills"];workflow-sync-excludenow also applies torepomatic init.Add
rename-fromrules to migrate all 9 default GitHub labels.Add the package version to compiled binary filenames (
repomatic-6.2.0-linux-arm64.bin).Automatically migrate
[tool.gha-utils]and[tool.repokit]config sections to[tool.repomatic]duringrepomatic init; commands fall back to legacy section names when[tool.repomatic]is absent.Support GitHub immutable releases by drafting releases then publishing them.
Replace
softprops/action-gh-releasewithgh release create; all release operations now use theghCLI.Freeze readme binary download URLs to versioned
/releases/download/vX.Y.Z/paths during releases.GitHub releases now include PyPI and GitHub availability links at creation time.
Fix Nuitka-compiled binaries silently producing no output when the entry point is a
__main__.pyinside a package.Fix
update-checksumsleaving stale SHA-256 hashes when the hash andsha256sum --checkkeyword span multiple lines.Fix Windows ARM64 test runners using x86_64 emulation by forcing native ARM64 Python via
UV_PYTHON.Fix
fix-changelogproducing a trailing blank line when the last changelog section is modified.
6.1.0 (2026-02-27)¶
Add the
unsubscribe-threadsCLI command to unsubscribe from closed, inactive GitHub notification threads.Add the
prebake-versionCLI command to inject the Git commit hash into__version__before Nuitka compilation, so binaries report the exact commit they were built from (e.g.,6.1.0.dev0+abc1234).Add the
list-skillsCLI command to display all available Claude Code skills grouped by lifecycle phase.Add the
sync-github-releasesCLI command to sync GitHub release notes fromchangelog.md.Add the
pypi-package-historyconfig option solint-changelogfetches releases from former package names and generates correct PyPI URLs for renamed projects.lint-changelognow detects orphaned versions (git tags, GitHub releases, or PyPI packages with no changelog entry) and inserts placeholder sections in--fixmode.Rename the
lint-changelogworkflow job tofix-changelog; the CLI command remainslint-changelog.Make changelog entries and GitHub release bodies template-driven via
release-notes.mdandgithub-releases.md, so editing one template affects only its destination.Group CLI commands into sections (Project setup, Release & versioning, Sync, Linting & checks, GitHub issues & PRs) in help output.
Add next-step handoff suggestions to all Claude Code skills, and document skills with a grouped table and walkthrough in
readme.md.Generate thin caller workflows with explicit secret forwarding instead of
secrets: inherit.Move zizmor config from
.github/zizmor.ymltozizmor.yamlat repo root.
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.
Rename project from
repokittorepomatic. Rename GitHub repository fromkdeldycke/repokittokdeldycke/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-utilstorepokit. Rename GitHub repository fromkdeldycke/workflowstokdeldycke/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.0as5.14.1on PyPI but update Python package metadata to point to the newrepomaticname and repository URL instead ofrepokit.
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-utilstorepokitand GitHub repository fromkdeldycke/workflowstokdeldycke/repokit.
5.13.0 (2026-02-23)¶
Harmonize sync/update naming across CLI commands, workflow jobs, PR branches, and templates.
sync-Xmeans regenerate from a canonical source;update-Xmeans compute from project state. Breaking renames:update-gitignore→sync-gitignore,mailmap-sync→sync-mailmap,deps-graph→update-deps-graph. Newsync-bumpversionCLI command replacesinit bumpversionin the autofix job. Fixautofix-typobranch →fix-typos.Add Claude Code skills (
.claude/skills/) wrappinggha-utilsCLI commands as slash commands:/gha-init,/gha-changelog,/gha-release,/gha-lint,/gha-sync,/gha-deps,/gha-test,/gha-metadata. Distribute skills viagha-utils init skillsandgha-utils sync-skillsfor downstream repos.Add
sync-renovateCLI command and autofix workflow job to keep downstreamrenovate.json5in sync with the canonical reference fromgha-utils. Opt out viarenovate-sync = falsein[tool.gha-utils].Add
workflow-syncandworkflow-sync-excludeconfig keys to[tool.gha-utils]for per-project control over which workflows are synced. Explicit CLI positional arguments override both settings.Add
--format header-onlymode togha-utils workflow syncfor syncing headers (name,on,concurrency) of non-reusable workflows liketests.yaml.Use explicit
--format thin-callerinautofix.yamlsync step.Fix race condition where binary builds could finish before
create-release, causinggh release uploadto fail with “release not found”. Makecompile-binariesdepend oncreate-release.Add
lint-workflow-securityjob to lint workflow usingzizmorto detect security vulnerabilities in GitHub Actions workflows. Closes #1478.Add
sync-linter-configsCLI command and autofix job to sync.github/zizmor.ymlto downstream repos. Addlintersinit 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, anddependency-graph-level. Theupdate-deps-graphcommand 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)¶
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-artifactssubcommand. Binary renaming and upload is now handled directly in thecompile-binariesworkflow job.Add
nuitka-extra-argsconfig field to[tool.gha-utils]for project-specific Nuitka flags. Remove hard-coded Nuitka includes from the workflow. Fixes downstream repos failing ongha_utils/templates/*.mdinclude.Add
🪫 AI sloplabel. Merge🎁 feature requestinto✨ enhancement. Fix label descriptions and normalize hex color casing.
5.11.1 (2026-02-21)¶
Declare
WORKFLOW_UPDATE_GITHUB_PATas an optionalworkflow_callsecret to fix downstream compatibility.Fix Renovate
postUpgradeTasksfailing to update SHA-256 checksums. Replace containerbaseinstall-tool uvwith a direct pinned binary download verified by SHA-256.Fix
gha-utils workflow syncdefaulting to@maininstead of the version tag when run from a released package.
5.11.0 (2026-02-21)¶
Add
--no-group,--no-extra,--only-group, and--only-extraoptions todeps-graphcommand.Make
gha-utils init bumpversionidempotent: updates existing[tool.bumpversion]configs with dev versioning keys (parse,serialize,[parts.dev]) and bumpscurrent_versionto.dev0.Add
::error::annotation whencreate-pull-requestfails due to missingWORKFLOW_UPDATE_GITHUB_PATsecret.Add
Dependabot alertsandIssuespermissions to setup-guide issue template, matching the readme.Document which jobs use
WORKFLOW_UPDATE_GITHUB_PATand why each permission is needed.Skip PyPI package build for the post-release bump commit during releases.
5.10.4 (2026-02-19)¶
Replace
revert-squash-mergeauto-revert withdetect-squash-mergenotification. On accidental squash merge of a release PR, the job now opens a GitHub issue and fails the workflow instead of reverting onmain. The release is skipped; the maintainer releases the next version when ready.Skip
lint-changelogjob 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)¶
Add
--include-package-data=extra_platformsto Nuitka build to fixFileNotFoundErroronarchitecture_data.pyin compiled binaries.Add
sync-uv-lockcommand that runsuv lockand avoidexclude-newer-packagetimestamp noise.Add
sync-uv-lockjob toautofix.yamlto replace Renovate’slockFileMaintenance, which cannot reliably revert timestamp-only noise inuv.lock.Remove
update-exclude-newercommand.Remove Renovate
lockFileMaintenanceconfiguration and itspostUpgradeTasksrule.Revert
exclude-newerinpyproject.tomlfrom a fixed date to"1 week".
5.10.2 (2026-02-18)¶
Add
gha-utils lint-changelogcommand 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-changelogjob toautofix.yamlto 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
postUpgradeTasksfailing withuvx: not foundby installing tools viabinarySource: installinside the Renovate Docker container.Fix Renovate aborting entirely when python.org API is rate-limited.
Move
exclude-newerdate update from direct push tomaininto Renovate’s lock file maintenance PR viapostUpgradeTasks.Skip Nuitka binary builds for non-code pushes to
main.
5.10.1 (2026-02-17)¶
Fix
publish-github-releasejob failing becauseactions/checkoutwiped 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)¶
Add
gha-utils initcommand to bootstrap repositories for reusable workflows.Add
sync-workflowsjob toautofix.yamlfor downstream repos to keep their thin-caller workflow files in sync.Add
setup-guidejob toautofix.yamlfor 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,Biomeandlabelmakerbinary downloads, withgha-utils update-checksumscommand and RenovatepostUpgradeTasksfor automatic updates.Fix creation of GitHub release in
create-releasejob.Replace thin-wrapper
lycheeverse/lychee-action,crate-ci/typosandbiomejs/setup-biomeactions by direct binary downloads for better performance and reliability.Auto-detect options values from
$GITHUB_REPOSITORYforbroken-links,lint-repoandrelease-prepcommands.Auto-detect version in
pr-bodyfrom[tool.bumpversion]inpyproject.toml.Add
.dev0suffix to development versions per PEP 440, with--versionflag 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 Changelogcomparison URL link to GitHub release notes.Default
mailmap-syncdestination 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.yamlworkflow.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-noticejob.Remove
gha-utils bundledsubcommand group.Experiment with Claude agents.
5.9.1 (2026-02-15)¶
Refactor PR body templates from Python literals to markdown files with YAML frontmatter for metadata (titles, commit messages). The
pr-bodyCLI now outputstitleandcommit_messagealongsidebody.Add and enrich PR templates for all autofix jobs, version bumps, release preparation, and
.gitignoreupdates.Dogfood
gha-utilsfrom local source onmainbranch viauvx --from . gha-utils. During release freeze, CLI invocations are frozen back to a PyPI version for downstream compatibility.Add fallback jobs to
release.yamlto detect and auto-reverts squash-merged release PRs.Rebase lock file maintenance PR whenever
mainadvances, not just on conflicts.Remove
--insecureflag and redirect-suppression excludes from lychee configuration.
5.9.0 (2026-02-14)¶
Add
gha-utils workflowcommand group withcreate,sync, andlintsubcommands.Add
[tool.gha-utils] nuitkaoption to opt out of Nuitka binary compilation.Move all reusable workflow inputs to
[tool.gha-utils]inpyproject.toml.Add
gha-utils update-gitignoresubcommand replacing shell-based.gitignoregeneration.Have
lint-reporeadpackage_name,is_sphinx, andproject_descriptiondirectly frompyproject.toml.Add
--source-urloption togha-utils sphinx-linkcheck.Include actual output in test-plan assertion error messages.
Replace
pr-metadatacomposite action withgha-utils pr-bodysubcommand.Have
test-plananddeps-graphread[tool.gha-utils]config directly frompyproject.toml.Drop
--forcefromsphinx-apidocinupdate-docsjob to preserve downstream RST customizations.Recreate version bump PRs on every push to
mainto prevent merge conflicts.Fix
<details>tag in PR body rendered as code block due to indentation.Deduplicate
gitignore-extra-categorieswith base categories while preserving order.Add
--templateoption togha-utils pr-bodywith built-inbump-versionandprepare-releasetemplates.Add refresh tip admonition to all auto-created PR bodies.
Pin lychee binary version in
docs.yamland add Renovate custom manager for updates.
5.8.0 (2026-02-11)¶
Fix stale checkout in
bump-versionscausing merge conflicts after releases.Add
cancel-runs.yamlworkflow to cancel in-progress and queued runs when a PR is closed.Add
gha-utils pr-bodysubcommand to generate PR body with workflow metadata.Remove
update-cli-pinsjob fromrelease.yaml. Renovate already handles updatinggha-utilsversion.
5.7.2 (2026-02-11)¶
Replace
taiki-e/install-actionwith directcurldownload forlabelmakerbinary.Fix
update-cli-pinsjob failing due to shallow clone.Fix
changelog.yamlconcurrency race from fast-completingrelease.yaml.Include version numbers in post-release commit message (e.g.
[changelog] Post-release bump v5.7.1 → v5.7.2).Only run
debug.yamlworkflow 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)¶
Fix
gha-utilsCLI version pins stuck at5.6.1by moving pin updates to a post-releaseupdate-cli-pinsjob inrelease.yamlthat runs after the new version is published to PyPI.Add build provenance attestation to
build-packagejob for defense-in-depth supply chain security.Add
.mdxto recognized Markdown file extensions for ruff formatting and file discovery.Preserve
[project.entry-points]table format informat-pyprojectautofix job.Move 6 autofix jobs (
fix-typos,optimize-images,update-mailmap,update-deps-graph,update-docs,sync-awesome-template) fromdocs.yamltoautofix.yaml.Move
check-broken-linksjob fromlint.yamltodocs.yaml.Harmonize job IDs to consistent
verb-targetnaming:autofix-typotofix-typos,awesome-template-synctosync-awesome-template,lint-mypytolint-types,lint-github-actiontolint-github-actions,check-secretstolint-secrets,package-buildtobuild-package,pypi-publishtopublish-pypi,github-releasetocreate-release,git-tagtocreate-tag,version-incrementstobump-versions,sphinx-linkchecktocheck-sphinx-links,broken-linkstocheck-broken-links.
5.7.0 (2026-02-09)¶
Add
gha-utils sphinx-linkcheckcommand to detect broken auto-generated links.Replace
blacken-docsbyrufffor Markdown code formatting.Remove
blacken_docs_paramsfromgha-utils metadataoutput.Fix
update-deps-graphjob.Fix
pr-metadataaction stripping backticks from PR body.Fix
mappingproxyobject pickling error in test plan execution on Python < 3.13.Fix
UnicodeEncodeErroron Windows formailmap-synccommand and test plan execution.Simplify
changelog.yamlconcurrency to be always-cancellable.Prevent redundant
prepare-releasedouble-runs on every push tomain.Add
workflow_dispatchtrigger to all workflows exceptrelease.yamlfor manual re-runs from the Actions UI.Skip expensive test matrix on doc-only and workflow-only changes.
5.6.2 (2026-02-02)¶
Auto-update
gha-utils==X.Y.ZCLI version pins in workflow files during release.
5.6.1 (2026-02-02)¶
Add missing
renovate.json5template file from the bundled Python package.Keep bundled
renovate.json5configuration in sync with root file from this repository.Add
--no-progressto alluvxcommands in workflows for cleaner CI logs.Add
--frozen --no-progresstouv runcommands 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-autodocjob toupdate-docsand rundocs/docs_update.pyif present to generate dynamic content (tables, diagrams, directives) aftersphinx-apidoc.
5.6.0 (2026-02-02)¶
Add
migrate-to-renovatejob torenovate.yamlworkflow that creates a PR that create arenovate.json5and remove Dependabot config.Add dynamic prerequisites status table to migration PR body with links to settings pages.
Add
--formatoption togha-utils check-renovatefor JSON and GitHub Actions output formats.Move prerequisite validation to
renovatejob to fail fast if requirements aren’t met.Rename
gha-utils check-renovate-prereqstogha-utils check-renovate.Fix
gha-utils update-exclude-newerto handle relative date strings.
5.5.1 (2026-01-30)¶
Replace workflow shell scripts with CLI commands.
Add
pr-metadatacomposite action to deduplicate PR body metadata across workflows.Increase Renovate
minimumReleaseAgefor patches from 5 to 8 days to avoid proposing updates blocked by uv’sexclude-newersetting.Enhance
gha-utils update-exclude-newerto add missingexclude-newerwhen[tool.uv]section exists.Add
renovate.json5to bundled exports for Dependabot-to-Renovate migration.Add Dependabot config check to
lint-repocommand with migration guidance.Fix Codecov upload by splitting
report_typeinto separate action calls.
5.5.0 (2026-01-29)¶
Add
gha-utils update-exclude-newercommand to update the exclude-newer date in pyproject.toml.Add
gha-utils check-renovate-prereqscommand to validate Renovate prerequisites.Add
gha-utils lint-repocommand to run repository consistency checks.Add
gha-utils git-tagcommand for idempotent Git tag creation and pushing.Add
gha-utils verify-binarycommand to verify compiled binary architectures using exiftool.Add
gha-utils collect-artifactscommand to collect and rename artifacts for GitHub releases.Add
gha-utils broken-linkscommand to manage broken link issue lifecycle.Add
gha-utils deps-graphcommand to generate Mermaid dependency graphs from uv lockfile.Replace
pipdeptreewithuv export --format cyclonedx1.5for 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
eslintwithbiomefor JSON formatting.Format
pyproject.tomlfile withpyproject-fmt.
5.4.0 (2026-01-25)¶
Add unified
gha-utils configcommand group withinit,export,labels, andworkflowssubcommands.Move
gha-utils labelstogha-utils config labelssubcommand.Move
gha-utils workflowstogha-utils config workflowssubcommand.Merge all configuration modules (
labels.py,workflows.py) into unifiedbundled_configmodule.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)¶
Add
gha-utils sponsor-labelcommand to label issues/PRs from GitHub sponsors.Replace unmaintained
JasonEtco/is-sponsor-label-actionwithgha-utils sponsor-label.Change
gha-utils metadataoutput path from positional argument to-o/--outputoption.Make
--overwritethe default behavior forgha-utils metadata.Fix
labels,workflowsandbumpversioncommands fetching ofgha_utils/data/content.Fix race condition where
version-incrementsjob 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_runtrigger for version increments.
5.3.0 (2026-01-24)¶
Rely on
gha-utils labelsto dump label configuration files for inspection and bootstrapping.Enhance
gha-utils bumpversioncommand to sync the template directly intopyproject.toml.Sync bumpversion config in the
autofixworkflow.Sync
uv.lockfile 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_CONTEXTenv var requirement from workflows. Now reads event data directly fromGITHUB_EVENT_PATH.
5.2.0 (2026-01-23)¶
Add
gha-utils labelscommand to dump bundled label configuration files.Add
gha-utils workflowscommand to dump bundled workflow templates for inspection and bootstrapping.Add
gha-utils bumpversioncommand to dump bundled bump-my-version configuration template.Rely on
gha-utils release-prepfor 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)¶
Add new
gha-utils release-prepcommand to consolidate all release preparation steps.Add new
gha-utils version-checkcommand to prevent double version increments within a development cycle.Switch from from
requirements/*.txtfiles 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-newerdate instead of relative1 weekto preventuv.locktimestamp 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-versionfrom 1.1.0.
5.0.1 (2026-01-22)¶
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/*.txtfiles togha-utilspackage as extra dependencies.Replace Dependabot by Renovate for dependency updates. Closes #1728.
Flag abandoned dependencies with
⚠️ stale dependencylabel.Check repository settings requirements for Renovate.
Use Renovate to sync
uv.lockfiles. Removesync-uv-lockjob.Cancel in-progress jobs more aggressively on new commits.
Add
toml_filesandproject_descriptionfields togha-utils metadataoutput.Replace
julb/action-manage-labelbylabelmakerfor label management. Closes #1914.Do not let
actions/labelerremove labels that don’t strictly match its file-based rules.Add Rust-related entries to
.gitignorefile.Sync GitHub repository description from
pyproject.tomlfile. Closes #93.Document workflow concurrency.
Add unittests for workflow content.
4.25.5 (2026-01-09)¶
Fix call to deprecated
extra-platformsmethod.
4.25.4 (2025-12-31)¶
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-actionbycodecov/codecov-action.
4.25.3 (2025-12-19)¶
Add Download link to project metadata.
Include license file in package.
Remove utilization workaround for
macos-15-intel.
4.25.2 (2025-12-07)¶
Use uncap dependencies everywhere.
4.25.1 (2025-12-06)¶
Replace
tool.uvsection bybuild-system.
4.25.0 (2025-12-06)¶
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-newerto 7 days ago when syncinguv.lockinautofixworkflow.Merge all label syncing jobs into a single one.
Change the
testandtypingextra 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.14in 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)¶
Do not check for broken links in pull requests.
4.24.5 (2025-11-28)¶
Use released versions of
mdformat-mystplugin.
4.24.4 (2025-11-27)¶
Add
ubuntu-slimto the list of platforms in debug workflows.
4.24.3 (2025-11-24)¶
Replace
mdformat_frontmatterbymdformat-front-mattersto fix compatibility withmdformatv1.0.0.Activate strict front-matter checking in
mdformatwhen auto-formatting Markdown files.
4.24.2 (2025-11-23)¶
Fix all issues related to the use of
ubuntu-slimrunners.
4.24.1 (2025-11-23)¶
Keep using
ubuntu-24.04for Nuitka builds.
4.24.0 (2025-11-23)¶
Replace
ubuntu-24.04runner byubuntu-slimin all jobs not relying on Docker, and in Nuitka build matrix.Bump
actionlinttov1.7.9.Ignore GitHub links pointing to stable release assets when checking for broken links.
4.23.4 (2025-11-19)¶
Force use of latest Python 3.14 for docs generation.
4.23.3 (2025-11-18)¶
Fix usage against last Click Extra release.
Run tests on Python
3.14tand3.15tfree-threaded variants.
4.23.2 (2025-11-17)¶
Fix lychee runs in
lintworkflow.
4.23.1 (2025-11-02)¶
Fix some incompatibilities between
mdformatplugins.
4.23.0 (2025-10-25)¶
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
--commandparameter togha-utils test-plancommand as an alias to--binary.Allow
gha-utils test-planto accept a full command line with parameters as input for--command/--binaryoption.Self-check of
gha-utils test-plancommand in its own test plan.Dynamiccaly deepen shallow clones of Git repositories when fetching new commit ranges.
Only runs
optimize-imagesjob if there are image files in the repository.Move runner architecture validation to
gha-utils-only job.Remove dependency on
mdformat_tablesplugin which has been merged intomdformat-gfm.Use un-released versions of
mdformatplugins until their compatibility is restored.Move all typing-related imports behind a hard-coded
TYPE_CHECKINGguard to avoid runtime imports.Fix builds on
macos-26.Skip tests on intermediate Python versions (
3.12and3.13) to reduce CI load.
4.22.0 (2025-10-12)¶
Add new
image_filesfield togha-utils metadata.Only runs
lint-yamljob if there are YAML files in the repository.Only runs
lint-github-actionjob if there are workflow files in the repository.Only runs
broken-linksjob if there are Markdown or rST files in the repository.Only runs
update-mailmapjob if.mailmapfile exists.The
gha-utils test-plancommand now reports the detailed line differences when a*_regex_fullmatchcheck fails.Fix
commit_rangefield when there is only one commit in the range.Flag
macos-26as 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)¶
Use
astral-sh/setup-uvaction to installuvinstead of manually installing it withpip.Remove
requirements/uv.txtfile.Add new fields to
gha-utils metadata:yaml_filesworkflow_filesmailmap_exists
Check that start and end commit of
commit_rangeexist in the repository before trying to traverse commits with PyDriller.Add
check-runnersjob to always verify the architecture of each runner used to compile binaries with Nuitka.Use
macos-28runner instead ofmacos-15to build binaries forarm64.Use
macos-15-intelrunner instead ofmacos-13to build binaries forx64.Run tests on
macos-28andmacos-15-intelrunners instead ofmacos-15andmacos-13.Only parse
.gitignorefile once, when first needed, and cache the matching function.Run
gha-utilscommands without--verbosity DEBUGoption in jobs to reduce noise.Silence overly verbose debug messages from
py-walklogger.Run
debugworkflow on all platforms targeted by Nuitka builds.Only runs
debugworkflow manually, on demand.Pin version of
awesome-linttov2.2.2.Pin version of
actionlinttov1.7.7.
4.20.0 (2025-10-10)¶
Add new fields to
gha-utils metadata:is_botto detect if the current run is not triggered by a human.build_targetsto list all supported Nuitka build targets.markdown_filesto list all Markdown files in the repository.zsh_filesto list all Zsh files in the repository.json_filesto list all JSON files in the repository.
Include
*.pyi,*.pyw,*.pyxand*.ipynbfiles inpython_filesfield.Include
*.mdown,*.mkdn,*.mdwn,*.mkd,*.mdtxtand*.mdtextfiles indoc_filesfield.Replace
gitignore-parserdependency bypy-walkto fix patterns matching both files and directories.Add support for Python 3.14 syntax in blacken-docs.
Rename
ghdelimiter_XXXXXtags in GitHub action multiline text blocks toGHA_DELIMITER_XXXXXfor better visibility.Check that
gha-utilsCLI can be run as a Python module and withuv runanduvx.Add official support of Python 3.14.
Run tests on Python 3.15-dev.
4.19.1 (2025-09-25)¶
Bump to Click Extra 6.0.0.
4.19.0 (2025-09-25)¶
Check for URL fragments when checking links with Lychee.
Fix compilation of
rfc3987_syntaxdata file thanks to Nuitkav2.7.14.Remove local patch of
gitignore-parser, rely onv0.1.13release instead.Add dependency on
mdformat-recover-urlsto 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
clickto8.2.xseries when installingbump-my-versionto avoid incompatible API changes.Skip linting and sponsoring jobs on Dependabot PRs and
prepare-releasebranch.
4.18.1 (2025-08-18)¶
Patch
gitignore-parserlocally to support Windows paths.
4.18.0 (2025-08-17)¶
Adds
--format jsonoption.Remove
--format plainoption.Returns file paths relative to the current directory whenever we can in
gha-utils metadataoutput.Ignore files matching
.gitignorerules in thepython_filesanddoc_filesfields ofgha-utils metadataoutput.Force all VSCode JSON files to be formatted in
jsoncdialect.Prevent overlapping matching of JSON files by different dialect linters.
Share linter’s file exclusion list between dialects.
Bump hard-coded
eslintandeslint/jsonpackages to their latest versions.
4.17.9 (2025-07-17)¶
Bump
gha-utils.
4.17.8 (2025-07-17)¶
Normalized and deduplicate file paths in
gha-utils metadataoutput.Ignore non-existing files and broken symlinks in
gha-utils metadataoutput.
4.17.7 (2025-07-17)¶
Replace
Superseded by #Nonecomment byNo more broken linkswhen closing issues inbroken-linksjob.Run lychee with
--hidden,--suggest,--insecure,--include-fragmentsand--exclude-all-privateoptions.Hard-code lychee version and freeze it to
v0.19.1.
4.17.6 (2025-07-17)¶
Use
uv-provided ARM64 Python onwindows-11-armplatform for Nuitka builds.Force use of latest
3.13Python for all platforms for Nuitka builds.Fix quoting of file path in
python_filesanddoc_filesmatrix fields.
4.17.5 (2025-06-26)¶
Bump
uv.
4.17.4 (2025-06-20)¶
Remove hard-coded domains to skip when checking URLs. Use a
.lycheeignorefile instead.Fix auto-closing and updating of open broken links issues.
4.17.3 (2025-06-08)¶
Remove temporary
node_modulessubfolder when linting JSON files.Do not fail on Lychee finding bad URLs.
4.17.2 (2025-06-08)¶
Ignore
node_modulessubfolder when linting JSON files.Skip
Sci-Hub,x.comandarchive.phwhen checking URLs because they restricts access to crawlers.Force uv to ignore managed Python on Windows ARM 64.
4.17.1 (2025-05-27)¶
Add new
unstable-targetsparameter to release workflow.Release binaries without the
-buildsuffix in their names.
4.17.0 (2025-05-27)¶
Add a new
-u/--unstable-targetoption tometadatacommand to allow some Nuitka builds to fail.Do not flag
windows-11-armas unstable by default for Nuitka builds.Refactor management of Nuitka build parameters.
Remove
-buildsuffix in binary names produced by Nuitka.
4.16.7 (2025-05-24)¶
Always allows
windows-11-armtarget to fails for Nuitka builds.
4.16.6 (2025-05-24)¶
Add a
stateparameter to the Nuitka build matrix and markwindows-11-armas unstable target while we wait forlxmlto work on it.
4.16.5 (2025-05-19)¶
Print binary metadata after compiling them with Nuitka.
Fix production of arm64 binaries on Windows.
4.16.4 (2025-05-18)¶
Keep to the top the first comment in
.mailmapfiles.
4.16.3 (2025-05-13)¶
Bump dependencies.
4.16.2 (2025-04-28)¶
Add a new
--show-trace-on-error/--hide-trace-on-erroroption togha-utils test-plancommand to show execution trace of CLI on error.
4.16.1 (2025-04-26)¶
Use latest
gha-utilsCLI to build ARM64 binaries by default.
4.16.0 (2025-04-26)¶
Add a new
--exit-on-error/-xoption togha-utils test-plancommand to exit right away on the first failing test.Add a new
--select-test/-toption togha-utils test-plancommand to run specific test cases.Rename short option for
--timeoutingha-utils test-plancommand from-tto-T.Add a new
--stats/--no-statsoption togha-utils test-plancommand to control display of statistics at the end of test execution.Use
windows-11-armto build Windows binaries for arm64 with Nuitka.Add
windows-11-armto the test matrix.Remove tests on
ubuntu-22.04-arm,ubuntu-22.04,windows-2022andwindows-2019to keep matrix small.
4.15.6 (2025-04-20)¶
Avoid
bump-my-versionv1.1.1due to regression.
4.15.5 (2025-03-13)¶
Re-release to fix GitHub release notes.
4.15.4 (2025-03-13)¶
Fix fetching of released version and notes on release commits.
4.15.3 (2025-03-12)¶
Use latest
gha-utilsCLI to fix release notes in GitHub releases.
4.15.2 (2025-03-12)¶
Use uv-provided Python to compile binaries with Nuitka on Linux.
Populate
current_versionandrelease_notesfield ingha-utils metadataoutput for unreleased versions.
4.15.1 (2025-03-10)¶
Remove deprecated
--planoption.Remove Nuitka script command extension workaround.
Fix arguments normalization on Windows for CLI parameters in test plans.
4.15.0 (2025-03-05)¶
Add support for
only_platformsandskip_platformssettings in test plans, to finely select platforms to run tests on.Add a
--skip-platform/-soption togha-utils test-planto allow skipping of test plan on a whole set of platforms.Rename
--planoption to--plan-file.Allow
--plan-file/-Foption to be used multiple times ingha-utils test-planto merge multiple test plans.Add a new
--plan-envvar/-Eoption to allowgha-utils test-plancommand to read test plan from environment variables.Allow ad-hoc YAML
test-planto be passed as a input parameter in reusedreleaseworkflow.Fix running of Nuitka-compiled
gha-utils metadatacommand.Drop support for Python 3.10.
Use
windows-2025instead ofwindows-2022for Nuitka builds.Add
windows-2025to the test matrix.
4.14.2 (2025-02-19)¶
Fix update of
.gitignorewithgitignore-extra-contentcontent.Fix
--timeoutparameter ongha-utils test-plancall 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-fileparameter to thereleaseworkflow.Remove the
binaries-test-planparameter inreleaseworkflow.Allow for setting a specific
timeoutfor each CLI test case.Allow
timeoutto be floats.Fix production of
nuitka_matrixfield ingha-utils metadataoutput.Add
junit.xmlfile in default.gitignoreextra directive.
4.14.0 (2025-02-15)¶
Add new
gha-utils test-plansubcommand.Replace ad-hoc custom matrix code by generic matrix model.
Replace test matrix pre-computation by native features.
Remove
ruff_py_versionfield fromgha-utils metadataoutput: Ruff is extracting it automaticcaly from thepyproject.tomlfile of the project.Inline all forced Ruff configuration to CLI parameters.
4.13.4 (2025-02-02)¶
Fix uploads of Python packages to GitHub release when binaries are not produced.
4.13.3 (2025-01-29)¶
Fix uploads of Python packages to GitHub release when binaries are not produced.
4.13.2 (2025-01-28)¶
Fix permission for GitHub release publishing.
4.13.1 (2025-01-28)¶
Fix publishing of GitHub release if no binary artefacts have been produced.
4.13.0 (2025-01-21)¶
Generates attestion for Python packages and standalone binaries on release.
4.12.0 (2025-01-20)¶
Let
uvchoose the appropriate Python version depending on context.Remove dependency on
twineandcheck-wheel-contents.
4.11.1 (2025-01-18)¶
Re-release to build Linux
arm64binaries by default.
4.11.0 (2025-01-18)¶
Use
ubuntu-24.04-armto build Linux binaries forarm64.
4.10.1 (2025-01-08)¶
Re-release with latest
gha-utils.
4.10.0 (2025-01-08)¶
Replace unmaintained
jsonlintby ESLint.Add new
gitignore_existsmetadata output.Add
nodeartefacts to the list of default files in.gitignore.
4.9.0 (2024-12-27)¶
Use
uvinstead ofsetup-pythonaction to install Python. On all platforms butwindows-2019.Remove auto-generated dummy
pyproject.tomlused to hacksetup-pythoncaching.Run all jobs on Python 3.13.
Move coverage configuration to pytest invocation.
Do not let
uv syncoperation update theuv.lockfile.Depends on released version of
mdformat_deflist.
4.8.4 (2024-11-22)¶
Run binaries tests into a shell subprocess.
4.8.3 (2024-11-21)¶
Fix parsing of default timeout.
Do not force encoding when running CLI in binary test job.
4.8.2 (2024-11-20)¶
Add a
timeoutparameter to release workflow test execution.
4.8.1 (2024-11-19)¶
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
hubCLI byghin broken links job.
4.7.2 (2024-11-10)¶
Fix installation of
hubon broken links job.
4.7.1 (2024-11-03)¶
Fix upload to PyPI on release.
Remove unused
uv_requirement_paramsin 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_paramsvariant innuitka_matrixmetadata.Add official support of Python 3.13.
Drop support for Python 3.9.
Use
macos-15instead ofmacos-14to build binaries forarm64.Use
ubuntu-24.04instead ofubuntu-22.04to 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
uvto publish Python packages.
4.6.0 (2024-09-20)¶
Use
uvto build Python packages.Remove dependency on
buildpackage.Fix coverage report upload.
Upload test results to coverage.
4.5.4 (2024-09-04)¶
Rerelease to stabilize changelog updates.
4.5.3 (2024-09-04)¶
Fix changelog indention.
Add changelog unittests.
4.5.2 (2024-08-26)¶
Rerelease to fix admonition in changelog.
Fix changelog new entry format.
4.5.1 (2024-08-25)¶
Fix over-escaping of
[!IMPORTANT]admonition in changelog.Fix content writing into output files.
4.5.0 (2024-08-24)¶
Replace
mdformat-blackbymdformat-ruff.Install
mdformat,gha-utils,yamllint,bump-my-version,ruff,blacken-docsandautopep8as a global tool to not interfere with the project dependencies.Fix
mdformat-pelicancompatibility withmdformat-gfm.Upgrade job runs from
ubuntu-22.04toubuntu-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)¶
Bump
gha-utilsCLI.
4.4.4 (2024-08-18)¶
Fix update of changelog without past entries.
4.4.3 (2024-08-12)¶
Release with relaxed dependencies.
4.4.2 (2024-08-02)¶
Add local workaround for Nuitka to fix bad packaging of
license_expressionpackage at build time.
4.4.1 (2024-08-01)¶
Bump Nuitka and
uv.
4.4.0 (2024-07-27)¶
Drop support for Python 3.8.
Rely on released version of
mdformat-pelican.Fix invocation of installed
mdformatand its plugin.
4.3.4 (2024-07-24)¶
Do not maintain
.mailmapfiles on Awesome repositories.
4.3.3 (2024-07-24)¶
Bump
uvand Nuitka.
4.3.2 (2024-07-22)¶
Always use frozen
uv.lockfile onuv runinvocation.
4.3.1 (2024-07-18)¶
Do not print progress bars on
uvcalls.
4.3.0 (2024-07-17)¶
Add a new job to keep
uv.lockupdated and in sync.Exclude auto-updated
uv.lockfiles from PRs produced fromuv runanduv tool runinvocations.
4.2.1 (2024-07-15)¶
Fix options in
gha-utils mailmap-synccalls.Use latest
gha-utilsrelease in workflows.
4.2.0 (2024-07-15)¶
Rename
gha-utils mailmapcommand togha-utils mailmap-sync.Add new
--create-if-missing/--skip-if-missingoption togha-utils mailmap-synccommand.Do not create
.mailmapfrom scratch in workflows: only update existing ones.Normalize, deduplicate and sort identities in
.mailmapfiles.Keep comments attached to their mapping when re-sorting
.mailmapfiles.Do not duplicate header metadata on
.mailmapupdates.Do not update
.mailmapfiles if no changes are detected.Add new
boltonsdependency.
4.1.4 (2024-07-02)¶
Bump
gha-utilsCLI.
4.1.3 (2024-07-02)¶
Fix recreation of specifiers.
4.1.2 (2024-07-02)¶
Revert to rely entirely on released
gha-utilsCLI for release workflow.
4.1.1 (2024-07-02)¶
Pre-compute repository initial state before digging into commit log history.
Redo release as
v4.1.0has been broken.Rely on old
v4.0.2standalone metadata script temporarily to fix release process.Remove failing
--statisticsproduction onruffinvocation.
4.1.0 (2024-07-01)¶
Warning
4.1.0 is not available on 🐍 PyPI and 🐙 GitHub.
Replace in-place
metadata.py,update_changelog.pyandupdate_mailmap.pyscripts bygha-utilsCLI.Remove pre-workflow
check-mailmapjob.Bump Python minimal requirement to 3.8.6.
Fix computation of lower bound Python version support if minimal requirement is not contained to
major.minorspecifier.Add dependency on
backports.strenumforPython < 3.11.Change dependency on
mdformat-pelicanfrom personal fork to unreleased upstream.Remove dependency on
blackandmypy.
4.0.2 (2024-06-29)¶
Remove comments in GitHub action’s environment variable files.
Test CLI invocation.
4.0.1 (2024-06-29)¶
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_utilsCLI.Remove support for Poetry-based projects. All Python projects are expected to follow standard
pyproject.tomlconventions.Sort contributors in
.mailmapfiles 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 runanduv tool run.Replace
is_poetry_projectmetadata byis_python_project.Add new
uv_requirement_paramsmetadata output.Remove dependency on
poetrypackage.Add new dependencies on
build,packaging,pyproject-metadataandclick-extra.
3.5.11 (2024-06-22)¶
Note
3.5.11 is available on 🐙 GitHub.
Read
pyproject.tomlwithout 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
uvto install and run tools.Fix markdown autofix.
3.5.6 (2024-06-05)¶
Note
3.5.6 is available on 🐙 GitHub.
Use
uvto installmdformat.
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
mypyrun for Poetry projects.
3.5.3 (2024-05-23)¶
Note
3.5.3 is available on 🐙 GitHub.
Pin
uvversion everywhere to improve stability.Fix
mypyexecution 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
typinggroup inpyproject.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
docsgroup inpyproject.toml.Let
pipdeptreeresolve the Python executable to use in a virtual environment.Do not let Nuitka assume a Python package is bundled with its unittests in a
testssubfolder.Reduce number of
gitcalls 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
pipdeptreeto 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-modePoetry projects.
3.4.3 (2024-04-14)¶
Note
3.4.3 is available on 🐙 GitHub.
Fix incompatibility between
mdformat-gfmandmdformat-pelican.
3.4.2 (2024-04-04)¶
Note
3.4.2 is available on 🐙 GitHub.
Fix template URL in
awesome-template-syncjob PR body.
3.4.1 (2024-03-19)¶
Note
3.4.1 is available on 🐙 GitHub.
Fix variable substitution in
awesome-template-syncjob 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-syncjob to replace URLs.Source remote requirement files from
uvCLI.
3.3.6 (2024-03-04)¶
Note
3.3.6 is available on 🐙 GitHub.
Fix
awesome-template-syncjob.
3.3.5 (2024-03-03)¶
Note
3.3.5 is available on 🐙 GitHub.
Set
ignore_missing_filesoption globally inpyproject.toml.Remove temporary hack to make
uvuse 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-syncjob before re committing the PR.
3.3.0 (2024-02-26)¶
Note
3.3.0 is available on 🐙 GitHub.
Start collecting
bump-my-versionrules from different projects.Move all
*-requirements.txtfiles torequirementssubfolder.Remove generation of Pip’s
--requirementparameters in metadata script.Reuse
requirements.txtroot file to install dependencies inmypy-lintjob.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-syncjob 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-synclabels, again.
3.2.2 (2024-02-24)¶
Note
3.2.2 is available on 🐙 GitHub.
Try to hack
actions-template-synclabels.
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-templaterepository.
3.1.0 (2024-02-18)¶
Note
3.1.0 is available on 🐙 GitHub.
Produce
arm64binaries with Nuitka by usingmacos-14runners.
3.0.0 (2024-02-17)¶
Note
3.0.0 is available on 🐙 GitHub.
Start replacing
pipinvocations byuv.Split Python dependencies into several
*requirements.txtfiles.Let metadata script generates Pip’s
--requirementparameters.Add new dependency on
wcmatchanduv.Ignore all files from local
.venv/subfolder.Tie Pip cache to
**/pyproject.tomland**/*requirements.txtfiles.Lint and format Jupyter notebooks with ruff.
Update default ruff config file to new
0.2.xseries.Remove installation of unused
bump-my-versionin Git tagging job.Document setup and rationale of custom PAT and
*requirements.txtfiles.
2.26.6 (2024-01-31)¶
Note
2.26.6 is available on 🐙 GitHub.
Remove temporary
pyproject.tomldummy 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.tomlinstead ofrequirements.txteverywhere to bypasssetup-pythoncache limits for non-Python repositories. Remove the temporarypyproject.tomldummy after the fact.
2.26.4 (2024-01-30)¶
Note
2.26.4 is available on 🐙 GitHub.
Generate a dummy
pyproject.tomlinstead ofrequirements.txtto 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-fixerbytyposto 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-13instead ofmacos-12for Nuitka builds.
2.24.2 (2024-01-06)¶
Note
2.24.2 is available on 🐙 GitHub.
Use
bump-my-versionto 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
autopep8beforeruff.
2.21.0 (2024-01-04)¶
Note
2.21.0 is available on 🐙 GitHub.
Use
ruffinstead ofdocformatterto format docstrings inside Python files.Remove dependency on
docformatter.Only run
ruffonce for autofix and linting. Removeslint-pythonjob.Auto-generate local configuration for
ruffinstead of passing parameters.Split generation of Python target version from CLI parameters.
Rename
black_paramsmetadata variable toblacken_docs_params.Remove
ruff_paramsmetadata 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-version0.12.xseries.Upgrade to Poetry
1.7.xseries.
2.19.1 (2023-10-26)¶
Note
2.19.1 is available on 🐙 GitHub.
Activates
ruffpreview and unsafe rules.Run actions on Python 3.12.
2.19.0 (2023-09-15)¶
Note
2.19.0 is available on 🐙 GitHub.
Replace
blackwithruff’s autoformatter.Rely even more on
bump-my-versionfor string replacement.
2.18.0 (2023-09-06)¶
Note
2.18.0 is available on 🐙 GitHub.
Upgrade to
bump-my-version0.10.xseries.Remove the step updating the release date of
citation.cffinchangelogjob. This can be done withbump-my-versionnow.Trigger changelog updates on
requirements.txtchanges.
2.17.8 (2023-07-16)¶
Note
2.17.8 is available on 🐙 GitHub.
Upgrade to
bump-my-version0.8.0.
2.17.7 (2023-07-12)¶
Note
2.17.7 is available on 🐙 GitHub.
Replace some Perl oneliners with
bump-my-versioninvocation.
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.0to fetch current version.
2.17.4 (2023-06-22)¶
Note
2.17.4 is available on 🐙 GitHub.
Use patched version of
mdformat-webto 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 ontwitter.comandycombinator.com.
2.17.2 (2023-06-12)¶
Note
2.17.2 is available on 🐙 GitHub.
Limit
lycheemax 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
lycheeexit 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_breaksplugin to format long<hr>rules.Format bash code blocks in Markdown via
mdformat-shfmt.Install
shfmtbefore callingmdformat.Add dependencies on
mdformat_deflistandmdformat_pelican.
2.16.1 (2023-06-10)¶
Note
2.16.1 is available on 🐙 GitHub.
Replace long
____(....)____<hr>rule produced bymdformatwith canonical---form. Refshukkin/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
bump2versionwithbump-my-version. Closes#162.Move version bumping configuration from
.bumpversion.cfgtopyproject.toml.Cap
mdformat_admon == 1.0.1to preventmdit-py-plugins >= 0.4.0conflict.
2.15.2 (2023-06-04)¶
Note
2.15.2 is available on 🐙 GitHub.
Upgrade Nuitka builds to Python 3.11.
Remove
--no-ansioption 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
ruffrules for autofix, not linting.Ignore
D400rule inruffto 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
ruffto 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,ruffandnuitka.
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
imagestoassets.
2.12.4 (2023-03-29)¶
Note
2.12.4 is available on 🐙 GitHub.
Skip running
autopep8if 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-contentparameter toupdate-gitignorejob 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,gpgandsshartefacts 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-formatinput variable todocs.yamlworkflow.
2.8.3 (2023-02-17)¶
Note
2.8.3 is available on 🐙 GitHub.
Test unreleased
docformatter 1.6.0-rc5to 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
.gitignoreproduction 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-rc4to fix admonition wrapping.
2.8.0 (2023-02-14)¶
Note
2.8.0 is available on 🐙 GitHub.
Replace
isort,pyupgrade,pylint,pyclnandpydocstylewithruff.Run
autopep8beforeblackto that longline edge-cases get wrapped first.Provides
autopep8with 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-rc3to 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_footnoteto properly wrap long footnotes when autofixing Markdown.Add new dependency on
mdformat_admonto future-proof upcoming admonition support.Add new dependency on
mdformat_pyprojectso that each project reusing theautofix.yamlworkflow can setup local configuration formdformatvia itspyproject.tomlfile.
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-6f27db4suffix). 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-rc2to fix admonition formatting.Ignore failing of
docformatteras1.6.xseries 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.xseries and1.6.0rc1ofdocformatterwhich 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.rc1to 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
aptbefore installing anything.
2.3.1 (2023-01-13)¶
Note
2.3.1 is available on 🐙 GitHub.
Force refresh of
aptbefore installinggraphviz.
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_filesfield.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
yamllintand 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
PNGtodotfile.Add a
dependency-graph-formatparameter 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.graphvizplugin.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_requestevents.
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.xseries ofdocformatterwhich 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-setandzstandard.
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-outputdirectives 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-apidocCLI produce ToC file.
1.8.5 (2022-09-19)¶
Note
1.8.5 is available on 🐙 GitHub.
Print raw
pipdeptreeoutput for debug.
1.8.4 (2022-09-19)¶
Note
1.8.4 is available on 🐙 GitHub.
Fix installation of
graphvizdependency in Poetry venv.
1.8.3 (2022-09-19)¶
Note
1.8.3 is available on 🐙 GitHub.
Run
pipdeptreein 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
pyupgraderun.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
poetry1.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
pyupgradeoption 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
mypyparameters passing.Upgrade job runs from
ubuntu-20.04toubuntu-22.04.
1.7.3 (2022-08-06)¶
Note
1.7.3 is available on 🐙 GitHub.
Fix
mypyparameters 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
pyupgradeon non-Poetry-based projects.Default
pyupgradeparameter 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.
Auto-generate the set of python minimal version parameters for
mypy,blackandpyupgrade. Addressespython/mypy#13294,psf/black#3124andasottile/pyupgrade#688.
1.6.2 (2022-07-31)¶
Note
1.6.2 is available on 🐙 GitHub.
Remove upper limit of
pyupgradeautomatic--py3XX-plusoption generation.Allow
gitleaksto 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.cffup-to-date inchangelogjob.
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.10series.
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
autopep8to wrap Python comments at 88 characters length.
1.3.1 (2022-04-16)¶
Note
1.3.1 is available on 🐙 GitHub.
Bump
actions/checkoutaction 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,HTMLandXMLcode blocks in Markdown files. Add dependency onmdformat-web.Lint Python docstrings. Add dependency on
pydocstyle.Use
isortprofile to aligns withblack. Removes.isort.cfg.Tweak
🙏 help wantedlabel 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
autodocextension to create a PR updating documentation.Auto deploy Sphinx documentation on GitHub pages if detected.
Update
ℹ️ help wantedlabel to🙏 help wanted.Triggers
docsworkflow on tagging to fix dependency graph generation.Allows
releaseworkflow 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 linkand🩹 fix linklabels 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/CDlabel to🤖 ci.Update
📗 documentationlabel to📚 documentation.Update
🔄 duplicatelabel to🧑🤝🧑 duplicate.Update
🆕 feature requestlabel to🎁 feature request.Update
❓ questionlabel to❔ question.Let Pylint discover Python files and modules to lint.
Do not generate a
.gitignoreor.mailmapif none exist. Only update it.Do not run the daily
prepare-releasejob 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
tomllibfrom 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-pythonworkflow.
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
💣 securitylabel.Adjust
🐛 buglabel color.Add new
gitignore-locationandgitignore-extra-categoriesparameters toupdate-gitignoreworkflow.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-outputparameter for reused workflow.
0.8.2 (2022-02-13)¶
Note
0.8.2 is available on 🐙 GitHub.
Fix generation of
pyupgradePython version parameter.
0.8.1 (2022-02-13)¶
Note
0.8.1 is available on 🐙 GitHub.
Fix installation of
tomlidependency 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,pyupgradeandtomli.
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
mainbranch commit messages instead ofprepare-releasePR 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 thepushevent.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/checkoutto fetch last 10 commits of PR during release tagging.Use commit message to identify release commit.
Hard-code fetching of
mainbranch 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-releasePR on tagging.Use
base_refvariable instead of hard-codingmainbranch 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-releasePR’s first commit.Do not fetch the final merge commit silently produced by
actions/checkoutfor PRs. GetHEADinstead.
0.7.8 (2022-01-10)¶
Warning
0.7.8 is not available on 🐙 GitHub.
Fix local
prepare-releasebranch 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 logto identify the first commit SHA of theprepare-releasePR.
0.7.6 (2022-01-10)¶
Warning
0.7.6 is not available on 🐙 GitHub.
Merge the post-release version bump job into
prepare-releasebranch 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
pushandcreateevents 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_requestevents.
0.7.3 (2022-01-09)¶
Warning
0.7.3 is not available on 🐙 GitHub.
Always execute the last
github-releasejob in the release workflow, even if the project is not Poetry-based.Catch
createevents 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-tagandpost-release-version-bumpevents. Trigger the later on Git tagging.Move the detection logic of the
prepare-releasePR 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-releasePR 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-releasebranch.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-labelby 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-labelwhile we wait for upstream fix.Rename label workflow’s
label-filesinput variable toextra-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,sponsoranddependencieslabels.Update
CI/CDlabel 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-actionsaction.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
releaseworkflow.
0.4.5 (2022-01-03)¶
Note
0.4.5 is available on 🐙 GitHub.
Fix use of the right token for reused
changelogandreleaseworkflows.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
bumpversionfor 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.mdinprepare-releasejob. 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-bumpjob with automatic git tagging.Auto-commit
post-release-version-bumpresults.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-releasePR is merged back intomain.
0.3.2 (2021-12-30)¶
Refresh every day the date in
prepare-releasejob.Skip linting on
prepare-releasejob as it does not points to tagged URLs yet.Reduce changelog PRs refresh rate based on changed files.
Rely on
create-pull-requestaction default to set authorship.Fix
autofixworkflow 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
mainbranch 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.tomlpresence 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.