Important
This version is not released yet and is under active development.
- Fix usage against last Click Extra release.
- Run tests on Python
3.14tand3.15tfree-threaded variants.
- Fix lychee runs in
lintworkflow.
- Fix some incompatibilities between
mdformatplugins.
- 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.
- 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.
- 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.
- 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.
- Bump to Click Extra 6.0.0.
- 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.
- Patch
gitignore-parserlocally to support Windows paths.
- 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.
- Bump
gha-utils.
- Normalized and deduplicate file paths in
gha-utils metadataoutput. - Ignore non-existing files and broken symlinks in
gha-utils metadataoutput.
- 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.
- 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.
- Bump
uv.
- Remove hard-coded domains to skip when checking URLs. Use a
.lycheeignorefile instead. - Fix auto-closing and updating of open broken links issues.
- Remove temporary
node_modulessubfolder when linting JSON files. - Do not fail on Lychee finding bad URLs.
- 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.
- Add new
unstable-targetsparameter to release workflow. - Release binaries without the
-buildsuffix in their names.
- 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.
- Always allows
windows-11-armtarget to fails for Nuitka builds.
- Add a
stateparameter to the Nuitka build matrix and markwindows-11-armas unstable target while we wait forlxmlto work on it.
- Print binary metadata after compiling them with Nuitka.
- Fix production of arm64 binaries on Windows.
- Keep to the top the first comment in
.mailmapfiles.
- Bump dependencies.
- Add a new
--show-trace-on-error/--hide-trace-on-erroroption togha-utils test-plancommand to show execution trace of CLI on error.
- Use latest
gha-utilsCLI to build ARM64 binaries by default.
- 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.
- Avoid
bump-my-versionv1.1.1 due to regression.
- Re-release to fix GitHub release notes.
- Fix fetching of released version and notes on release commits.
- Use latest
gha-utilsCLI to fix release notes in GitHub releases.
- Use uv-provided Python to compile binaries with Nuitka on Linux.
- Populate
current_versionandrelease_notesfield ingha-utils metadataoutput for unreleased versions.
- Remove deprecated
--planoption. - Remove Nuitka script command extension workaround.
- Fix arguments normalization on Windows for CLI parameters in test plans.
- 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.
- 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.
- 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.
- 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.
- Fix uploads of Python packages to GitHub release when binaries are not produced.
- Fix uploads of Python packages to GitHub release when binaries are not produced.
- Fix permission for GitHub release publishing.
- Fix publishing of GitHub release if no binary artefacts have been produced.
- Generates attestion for Python packages and standalone binaries on release.
- Let
uvchoose the appropriate Python version depending on context. - Remove dependency on
twineandcheck-wheel-contents.
- Re-release to build Linux
arm64binaries by default.
- Use
ubuntu-24.04-armto build Linux binaries forarm64.
- Re-release with latest
gha-utils.
- Replace unmaintained
jsonlintby ESLint. - Add new
gitignore_existsmetadata output. - Add
nodeartefacts to the list of default files in.gitignore.
- 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.
- Run binaries tests into a shell subprocess.
- Fix parsing of default timeout.
- Do not force encoding when running CLI in binary test job.
- Add a
timeoutparameter to release workflow test execution.
- Fix permissions for tagging in release workflow.
- 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.
- Fix installation of
hubon broken links job.
- Fix upload to PyPi on release.
- Remove unused
uv_requirement_paramsin metadata.
- 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.
- Use
uvto publish Python packages.
- Use
uvto build Python packages. - Remove dependency on
buildpackage. - Fix coverage report upload.
- Upload test results to coverage.
- Rerelease to stabilize changelog updates.
- Fix changelog indention.
- Add changelog unittests.
- Rerelease to fix admonition in changelog.
- Fix changelog new entry format.
- Fix over-escaping of
[!IMPORTANT]admonition in changelog. - Fix content writing into output files.
- 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.
- Bump
gha-utilsCLI.
- Fix update of changelog without past entries.
- Release with relaxed dependencies.
- Add local workaround for Nuitka to fix bad packaging of
license_expressionpackage at build time.
- Bump Nuitka and
uv.
- Drop support for Python 3.8.
- Rely on released version of
mdformat-pelican. - Fix invocation of installed
mdformatand its plugin.
- Do not maintain
.mailmapfiles on Awesome repositories.
- Bump
uvand Nuitka.
- Always use frozen
uv.lockfile onuv runinvocation.
- Do not print progress bars on
uvcalls.
- Add a new job to keep
uv.lockupdated and in sync. - Exclude auto-updated
uv.lockfiles from PRs produced fromuv runanduv tool runinvocations.
- Fix options in
gha-utils mailmap-synccalls. - Use latest
gha-utilsrelease in workflows.
- 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.
- Bump
gha-utilsCLI.
- Fix recreation of specifiers.
- Revert to rely entirely on released
gha-utilsCLI for release workflow.
- 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.
- 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.
- Remove comments in GitHub action's environment variable files.
- Test CLI invocation.
- Re-release to register PyPi project.
- 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.
- Read
pyproject.tomlwithout relying on Poetry.
- Replace Myst admonition in changelog by GFM alerts.
- Restrict removal of changelog warning admonition to
{important}class on version bump.
- Fix dependency graph generation by replacing Poetry by
uv.
- Use
uvto install and run tools. - Fix markdown autofix.
- Use
uvto installmdformat.
- Run Nuitka builds on Python 3.12.
- Auto cleanup PRs produced by awesome template sync job.
- Fix
mypyrun for Poetry projects.
- Pin
uvversion everywhere to improve stability. - Fix
mypyexecution and dependency installation.
- Install all extra dependencies before checking typing with
mypy.
- Requires typing dependencies to be set in a
typinggroup inpyproject.toml. - Install all extra dependencies on doc generation.
- 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.
- Update dependencies.
- Dynamically search the Python executable used by Poetry.
- Support dependency graph generation for both package and non-package Poetry projects.
- Provides venv's Python to
pipdeptreeto bypass non-detection of active venv.
- Name is optional for non-
package-modePoetry projects.
- Fix incompatibility between
mdformat-gfmandmdformat-pelican.
- Fix template URL in
awesome-template-syncjob PR body.
- Fix variable substitution in
awesome-template-syncjob PR body.
- 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.
- Fix
awesome-template-syncjob.
- Set
ignore_missing_filesoption globally inpyproject.toml. - Remove temporary hack to make
uvuse system Python in workflows.
- Add some debug messages.
- Fix updating of existing PR from
awesome-template-sync.
- Fix fetching of newly created PR in
awesome-template-sync.
- Update repository URLs in
awesome-template-syncjob before re committing the PR.
- 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.
- Remove labels in
awesome-template-syncjob while we wait for upstream fix.
- Try to hack
actions-template-synclabels, again.
- Try to hack
actions-template-synclabels.
- Add label to awesome template sync PR.
- Add a job to sync awesome repository project from the
awesome-templaterepository.
- Produce
arm64binaries with Nuitka by usingmacos-14runners.
- 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.
- Remove temporary
pyproject.tomldummy file after ruff invocation not to let it fail due to missing reference.
- Generate dummy
pyproject.tomlinstead ofrequirements.txteverywhere to bypasssetup-pythoncache limits for non-Python repositories. Remove the temporarypyproject.tomldummy after the fact.
- Generate a dummy
pyproject.tomlinstead ofrequirements.txtto make our ruff local conf work.
- Fix Python job on non-Python repositories.
- Fix absence of version in non-Python repositories.
- Add workaround to allow caching on non-Python repositories.
- Remove hard-coded commit version for
mdformat-gfm.
- Replace unmaintained
misspell-fixerbytyposto autofix typos. Closes #650.
- Add a content-based labeller job for issues and PRs.
- Use
macos-13instead ofmacos-12for Nuitka builds.
- Use
bump-my-versionto remove admonition in changelog.
- Expose current and released version in metadata script.
- Fix fetching of changelog entry for release notes.
- Add latest changelog entries in GitHub release notes.
- Produce GitHub release notes dynamically.
- Augment all commits matrix with current version from
bump-my-version. - Use new artifact features and scripts.
- Update default file-based labelling rules for new configuration format.
- Run
autopep8beforeruff.
- 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.
- Do not cache dependency-less mailmap update workflow step.
- Cache Python setups.
- Run Nuitka builds on Python 3.11 while we wait for 3.12 support upstream.
- Remove hard-coded permissions for release action.
- Increase scope of hard-coded permissions for release action.
- Use custom token for GitHub release creation.
- Increase token permissions to full write.
- Test release action.
- Increase scope of hard-coded token contents permission.
- Hard-code token contents permission for creation of GitHub release.
- Upgrade to
bump-my-version0.12.xseries. - Upgrade to Poetry
1.7.xseries.
- Activates
ruffpreview and unsafe rules. - Run actions on Python 3.12.
- Replace
blackwithruff's autoformatter. - Rely even more on
bump-my-versionfor string replacement.
- 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.
- Upgrade to
bump-my-version0.8.0.
- Replace some Perl oneliners with
bump-my-versioninvocation.
- Fix retrieval of tagged version in release workflow.
- Use bump-my-version
v0.6.0to fetch current version.
- Use patched version of
mdformat-webto fix formatting of HTML code in code blocks.
- Reactive maximum concurrency in
lychee, but ignore checks ontwitter.comandycombinator.com.
- 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.
- Fix parsing of
lycheeexit code.
- Check and report links with
lychee. Closes#563.
- 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.
- Replace long
____(....)____<hr>rule produced bymdformatwith canonical---form. Refshukkin/mdformat#328. - Apply Markdown fixes for awesome lists to localized versions.
- 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.
- Upgrade Nuitka builds to Python 3.11.
- Remove
--no-ansioption on Poetry calls.
- 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.
- Fix hard-coding of tagged external asset's URLs on release and version bump.
- Forces
ruffto check and autofix against all rules.
- Reverts publishing via trusted channel: it doesn't work with reusable workflows. See #528.
- Publish packages to PyPi with OIDC workflow for trusted publishing.
- Update
docformatter,ruffandnuitka.
- Use
docformatter 1.6.2.
- Use
docformatter 1.6.1.
- Various dependency updates.
- Use final version of
docformatter 1.6.0.
- Update default destination folder of dependency graph from
imagestoassets.
- Skip running
autopep8if no Python files found. - Only install main dependencies to generate dependency graph.
- Try out
docformatter 1.6.0-rc7.
- Try out
docformatter 1.6.0-rc6.
- Tweak extra content layout.
- Add new
gitignore-extra-contentparameter toupdate-gitignorejob to append extra content to.gitignore.
- Fix Mermaid graph rendering colliding with reserved words.
- Add
certificates,gpgandsshartefacts to the list of default files in.gitignore. - Fix production of dependency graph in Mermaid format.
- Lint Github actions workflows with
actionlint.
- Renders dependency graph in Mermaid Markdown instead of Graphviz's dot.
- Removes
dependency-graph-formatinput variable todocs.yamlworkflow.
- Test unreleased
docformatter 1.6.0-rc5to fix link wrapping. - Create missing parent folders of dependency graph.
- Fix subtle bug in
.gitignoreproduction due to collapsing multiline command block starting with>because of variable interpolation. - Tweak PR titles.
- Test unreleased
docformatter 1.6.0-rc4to fix admonition wrapping.
- 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.
- Test-drive unreleased
docformatter 1.6.0-rc3to fix URL wrapping and admonition edge-cases.
- Fix collection of artifact files from their folder.
- Update artifact name to add
-poetry-suffix for those to be published on PyPi. - Fix collection of artifact files from their folder.
- Fix attachment of artifacts to GitHub release on tagging.
- Remove broken print debug statement.
- Fix attachment of artifacts to GitHub release on tagging.
- 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.
- Do not try to attach non-existing artifacts to GitHub release.
- Fix attachment of artifacts to GitHub release.
- 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.
- Remove Pip cache, which breaks with our reusable workflows architecture.
- Cache dependencies installed by Pip.
- Bump Nuitka to
1.4.1.
- Export full Nuitka build matrix from release workflow.
- Reuse and align commit metadata.
- Fix module path provided to Nuitka.
- Pre-compute the whole Nuitka build matrix.
- Pre-compute matrix variations with long and short SHA values in commit lists.
- 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.
- Reverts to skipping the full
1.5.xseries and1.6.0rc1ofdocformatterwhich struggle on long URLs and admonitions.
- Empty release.
- Target unreleased
docformatter 1.6.0.rc1to fix long URL rewrapping. Closes#397. - Remove thoroughly all unused imports.
- Update dependencies.
- Force refresh of
aptbefore installing anything.
- Force refresh of
aptbefore installinggraphviz.
- 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.
- Re-parse dependency graph to stabilize its output, customize its style and make it deterministic.
- Unpin dependency on
yamllintand depends on latest version.
- Fix default dependency graph extension.
- Fix inplace customization of dependency graph.
- 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.
- Fix fetching of commit matrix.
- Rewrite new and release commit detection code from YAML to Python.
- Add dependency on
PyDriller. - Trigger debug traces on
pull_requestevents.
- Fix export of binary name from build workflow.
- Export binary name from build workflow.
- Fix skipping of Nuitka compiling step for projects without entry points.
- Skip the whole
1.5.xseries ofdocformatterwhich struggles with long URLs.
- Fix fetching of absent entry points in project metadata.
- Fix uploading of artifacts to GitHub release on tagging.
- Use short SHA commit in build artifacts.
- Fix uploading of Nuitka binaries to GitHub release on tagging.
- 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.
- Run all Python-based workflows on 3.11.
- Fix production of multiline commit list in build and release workflow.
- Fix tagging.
- Remove use of deprecated
::set-outputdirectives and replace them by environment files.
- Install project with Poetry before generating a dependency graph.
- Update all dependencies.
- Allow the use of project's own Mypy in Poetry virtual environment to benefits from typeshed dependencies.
- Do not let
sphinx-apidocCLI produce ToC file.
- Print raw
pipdeptreeoutput for debug.
- Fix installation of
graphvizdependency in Poetry venv.
- Run
pipdeptreein Poetry venv to produce dependency graph.
- Fix workflow continuation on successful
pyupgraderun. - Fix quoting of CLI parameters fed to
black.
- Fix version setup in Python metadata script.
- 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.
- Use stable release of
calibreapp/image-actions.
- Fix
mypyparameters passing. - Upgrade job runs from
ubuntu-20.04toubuntu-22.04.
- Fix
mypyparameters passing.
- 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.
- Add direct dependency on
poetry.
- Auto-generate the set of python minimal version parameters for
mypy,blackandpyupgrade. Addressespython/mypy#13294,psf/black#3124andasottile/pyupgrade#688.
- Remove upper limit of
pyupgradeautomatic--py3XX-plusoption generation. - Allow
gitleaksto use GitHub token to scan PRs.
- Keep the release date of
citation.cffup-to-date inchangelogjob.
- Check for typing. Add dependency on
mypy.
- Revert workflow concurrency logic.
- Auto-remove unused imports in Python code. Add dependency on
pycln. - Freeze Python version used to run all code to the
3.10series.
- Group workflow jobs so new commits cancels in-progress execution triggered by previous commits.
- Reduce minimal Pylint success score to
7.0/10.
- Fix admonition rendering in changelog template.
- Use
autopep8to wrap Python comments at 88 characters length.
- Bump
actions/checkoutaction to fix run in containers jobs.
- 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.
- Fix Sphinx auto-detection by relying on static syntax analyzer instead of trying to import the executable configuration.
- 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.
- Dynamically add
⚖️ curation,🆕 new linkand🩹 fix linklabels on awesome list projects.
- Remove the title of the section containing the TOC in awesome lists to fix the linter.
- 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.
- Fix search of Python files in
lint-pythonworkflow.
- 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.
- Reactivate sponsor auto-tagging workflow now that it has been fixed upstream.
- Update dependencies.
- Replace hard-coded PyPi package link in GitHub release text with dynamic value from Poetry configuration.
- Allow the location of the dependency graph image to be set with the
dependency-graph-outputparameter for reused workflow.
- Fix generation of
pyupgradePython version parameter.
- Fix installation of
tomlidependency for dependency graph generation. - Fix installation of Poetry in Python modernization workflow.
- 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.
- Fix fetching of new commits in PRs.
- Fix upload of build artifacts in GitHub release.
- Fix use of token for Git tagging.
- Generate list of all new and release commits in the first job of the release workflow.
- Fix regex matching the release commit.
- 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.
- Secret token need to be passed explicitly in reused workflow for PyPi publishing.
- Add version in the name of built artifacts.
- Fix detection of Poetry-based projects.
- 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.
- Use PAT token to auto-tag releases.
- 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.
- 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.
- Fix variable name used to attach the tagged commit to new GitHub release.
- Force attachment of new GitHub release to the tagged commit.
- 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.
- 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.
- Fix local
prepare-releasebranch name to search for first commit of PR.
- Use
git logto identify the first commit SHA of theprepare-releasePR.
- 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.
- Force
pushandcreateevents to match on tags in release workflow.
- Do not try to fetch build artifacts if the publishing step has been skipped.
- Do not trigger debug workflow on
pull_requestevents.
- 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.
- 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.
- Fix detection of
prepare-releasePR merge event.
- 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.
- Skip labelling on
prepare-releasebranch. - Skip version increment updates on release commits.
- Tighten up changelog job's trigger conditions.
- Fix generation of file-based labelling rules.
- Fix extension of default labelling rules.
- 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.
- Replace custom version of
julb/action-manage-labelby upstream.
- Checkout repository before syncing labels so local extra definitions can be used.
- Fix download of remote file in label workflow.
- Use my own fork of
julb/action-manage-labelwhile we wait for upstream fix. - Rename label workflow's
label-filesinput variable toextra-label-files.
- Disable sponsor auto-tagging while we wait for upstream fix.
- 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.
- Use more recent
calibreapp/image-actionsaction. - Remove unused custom variable for reusable GitHub release job.
- Fix use of GitHub token for workflow auto-updates on release.
- Allow typo autofix job to propose changes in workflow files.
- Let GitHub release produced on tagging to be customized with user's content and uploaded files.
- Expose tagged version from reusable
releaseworkflow.
- Fix use of the right token for reused
changelogandreleaseworkflows. - Restrict comparison URL steps to source workflow.
- Do not rely on
bumpversionfor comparison URL update on release tagging.
- 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.
- Skip steps in workflows which are specific to the source repository.
- Aligns all PR content.
- Allow changelog and release workflows to be reusable.
- Factorize version increment jobs.
- Provide tag version for GitHub release creation.
- Chain
post-release-version-bumpjob with automatic git tagging. - Auto-commit
post-release-version-bumpresults. - Create a GitHub release on tagging.
- Bump YAML linting max line length to 120.
- Auto-tag release after the
prepare-releasePR is merged back intomain.
- 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.
- Hard-code tagged version for executed Python script.
- Activate debugging workflow on all branches and PRs.
- Allows debug workflow to be reused.
- 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.
- 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%.
- 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.
- Initial public release.