Upstream

repomatic installs, configures and runs a long list of external tools and libraries. When one of them misbehaves, the fix goes upstream where possible, and into repomatic where it cannot wait. This page tracks that relationship: code contributed back, workarounds provided, issues reported, and features declined.

A dependency that a sibling project consumes more directly is tracked on that project’s page: click-extra for Click, Cloup and python-tabulate, and meta-package-manager for Nuitka and the package managers it wraps.

Code contributed upstream

Pull requests authored by repomatic’s maintainer and merged into upstream projects.

arrow

awesome-lint

repomatic lints awesome lists with it:

gitignore.io

lychee-action

mdformat-deflist

mdformat-gfm

mdformat-myst

mdformat-pelican

mdformat-pyproject

mdformat-recover-urls

mdformat-simple-breaks

pipdeptree

pipdeptree drew repomatic’s dependency graph until uv export --format cyclonedx1.5 replaced it:

sphinx

sphinx-autodoc-typehints

sphinxcontrib-mermaid

Upstreamed from repomatic

Issues found while building repomatic and resolved upstream. Where repomatic carried a workaround in the meantime, the entry says what it was and when it went away.

  • bump-my-version#331 - 1.1.1 broke the replace command on [[tool.bumpversion.files]] entries that do not apply. repomatic held bump-my-version at 1.1.0 until a later release fixed it.

  • lychee#1930 - lychee read its configuration only from its own file, so repomatic translated [tool.lychee] into that file. Since 0.24.0 (lychee#2104), lychee reads the section from pyproject.toml itself, and repomatic no longer translates it.

  • mdformat-myst#45 / mdformat-myst#46 - mdformat-myst depended on mdformat-frontmatter, which made it incompatible with mdformat 1.0.0. #46 replaced that dependency with mdformat-front-matters. repomatic ran mdformat-myst from its master branch, then from a fork, until a release carried the change.

  • mdformat-pelican#3 / mdformat-pelican#4 - mdformat-pelican and mdformat-gfm could not run together, also reported as mdformat-gfm#38. repomatic depended on a personal fork that carried the fix, then on unreleased upstream, then on the release that shipped it.

  • mdformat-web#5 - The HTML formatter added an extra doctype to html code blocks. repomatic ran a patched mdformat-web from June 2023 until 0.2.0 shipped the fix.

  • tomlrt#171 - Table.section() dropped standalone comments and inline-array padding from the source document. repomatic rebuilt each section with a helper to keep them, and removed the helper once tomlrt 2.2.4 fixed the clone path.

  • zizmor#1664 - The template-injection audit failed on a multiline YAML block. repomatic turned the audit off until zizmor 1.23.0 fixed it, then turned it back on.

Also reported while building repomatic, and closed upstream:

Addressed by repomatic

Issues still open or unfixed upstream. repomatic provides the solution.

GitHub Actions

The reusable workflows work around a set of GitHub Actions limitations. The GitHub Actions limitations table lists each one, its status and the mechanism that addresses it.

PyPI

Tool configuration in pyproject.toml

repomatic run translates a [tool.X] section into the native configuration file of a tool that cannot read pyproject.toml:

Markdown formatting

repomatic post-processes the output of mdformat to undo two mdformat-myst rewrites, and changes one mdformat default:

Awesome lists

Python formatting

Shell formatting

Workflow linting

Test matrix

Nuitka binary builds

Nuitka integration details the workaround for each of these:

Dependency cooldowns

Dependency graph

Dependency choices

Two dependencies stand in for a feature that a preferred library lacks:

Issue reporting

Documentation

  • furo#921 (discussion): Furo shows no icons in toctree entries. repomatic’s documentation adds them with CSS.

Declined by upstream

Pull requests and features that upstream maintainers rejected.

Open upstream

Pull requests and issues still pending upstream.