repomatic 7.3.0__tar.gz → 7.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {repomatic-7.3.0 → repomatic-7.3.1}/PKG-INFO +2 -2
- {repomatic-7.3.0 → repomatic-7.3.1}/pyproject.toml +12 -5
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/__init__.py +2 -2
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/changelog.py +21 -5
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/_release-engine.yaml +29 -19
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/autofix.yaml +74 -62
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/cancel-runs.yaml +2 -2
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/changelog.yaml +22 -20
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/debug.yaml +3 -3
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/docs.yaml +6 -6
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/labels.yaml +10 -10
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/lint.yaml +17 -17
- repomatic-7.3.1/repomatic/data/pytest.toml +35 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/release.yaml +1 -1
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-babysit-ci.md +6 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-repomatic-changelog.md +1 -1
- repomatic-7.3.1/repomatic/data/skill-repomatic-ship.md +190 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/tests.yaml +15 -5
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/unsubscribe.yaml +2 -2
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/init_project.py +14 -1
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/tool_runner.py +56 -17
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/uv.py +38 -20
- repomatic-7.3.0/repomatic/data/pytest.toml +0 -21
- repomatic-7.3.0/repomatic/data/skill-repomatic-ship.md +0 -153
- {repomatic-7.3.0 → repomatic-7.3.1}/license +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/readme.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/__main__.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/binaries_page.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/binary.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/broken_links.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/cache.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/checksums.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/cli.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/config.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/__init__.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/action-publish-pypi.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/agent-grunt-qa.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/agent-qa-engineer.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/agent-sphinx-docs.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/autolock.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/ISSUE_TEMPLATE/new-link.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/code-of-conduct.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/contributing.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/contributing.zh.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/funding.yml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/.github/pull_request_template.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/__init__.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/awesome_template/license +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/bumpversion.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/codecov.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/labeller-content-based.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/labeller-file-based.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/labels.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/lychee.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/mdformat.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/mypy.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/ruff.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-av-false-positive.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-awesome-triage.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-benchmark-update.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-brand-assets.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-file-bug-report.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-repomatic-audit.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-repomatic-deps.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-repomatic-init.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-repomatic-topics.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-sphinx-docs-sync.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-translation-sync.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/skill-upstream-audit.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/typos.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/uv.toml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/yamllint.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/data/zizmor.yaml +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/dep_sources.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/deps_graph.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/docs.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/git_ops.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/__init__.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/actions.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/dev_release.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/gh.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/issue.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/matrix.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/pr.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/pr_body.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/release_sync.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/releases.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/sponsor.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/status.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/token.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/unsubscribe.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/github/workflow_sync.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/gitignore.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/http.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/images.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/lint_repo.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/mailmap.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/metadata.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/npm.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/prepare_release.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/py.typed +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/pypi.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/pyproject.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/registry.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/setup_guide.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/sync_ops.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/__init__.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/available-admonition.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/broken-links-issue.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/bump-version.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/detect-squash-merge.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/development-warning.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/fix-changelog.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/fix-typos.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/fix-vulnerable-deps.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-images.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-json.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-markdown.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-pyproject.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-python.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/format-shell.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/generated-footer.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/github-releases.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/immutable-releases.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/pr-metadata.md.noformat +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/prepare-release.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/refresh-tip.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/release-notes.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/release-sync-report.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-branch-ruleset.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-dependabot.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-fork-pr-approval.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-notifications-pat.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-pages-source.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-pypi-trusted-publisher.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-token.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-verify.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide-virustotal.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/setup-guide.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-action-pins.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-bumpversion.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-dep-sources.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-gitignore.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-mailmap.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-repomatic.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-tool-versions.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-uv-lock.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/sync-workflow-pins.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/unavailable-admonition.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/unsubscribe-phase1.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/unsubscribe-phase2.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/update-deps-graph.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/update-docs.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/templates/yanked-admonition.md +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/test_matrix.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/tool_runner_page.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/version_sync.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/virustotal.py +0 -0
- {repomatic-7.3.0 → repomatic-7.3.1}/repomatic/vulnerable_deps.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: repomatic
|
|
3
|
-
Version: 7.3.
|
|
3
|
+
Version: 7.3.1
|
|
4
4
|
Summary: 🏭 Automate repository maintenance, releases, and CI/CD workflows
|
|
5
5
|
Keywords: changelog-formatter,dependabot-alternative,github-actions,github-labels,github-workflow,gitignore,mailmap,mypy,nuitka,python-automation,release-automation,repository-automation,repository-management,reusable-workflows,software-factory,sphinx-doc,typo,uv,workflow-reusable
|
|
6
6
|
Author: Kevin Deldycke
|
|
@@ -58,7 +58,7 @@ Requires-Dist: wcmatch>=10
|
|
|
58
58
|
Requires-Python: >=3.10
|
|
59
59
|
Project-URL: Changelog, https://github.com/kdeldycke/repomatic/blob/main/changelog.md
|
|
60
60
|
Project-URL: Documentation, https://kdeldycke.github.io/repomatic
|
|
61
|
-
Project-URL: Download, https://github.com/kdeldycke/repomatic/releases/tag/v7.3.
|
|
61
|
+
Project-URL: Download, https://github.com/kdeldycke/repomatic/releases/tag/v7.3.1
|
|
62
62
|
Project-URL: Funding, https://github.com/sponsors/kdeldycke
|
|
63
63
|
Project-URL: Homepage, https://github.com/kdeldycke/repomatic
|
|
64
64
|
Project-URL: Issues, https://github.com/kdeldycke/repomatic/issues
|
|
@@ -5,7 +5,7 @@ requires = [ "uv-build>=0.9,<0.12" ]
|
|
|
5
5
|
[project]
|
|
6
6
|
# Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
|
|
7
7
|
name = "repomatic"
|
|
8
|
-
version = "7.3.
|
|
8
|
+
version = "7.3.1"
|
|
9
9
|
description = "🏭 Automate repository maintenance, releases, and CI/CD workflows"
|
|
10
10
|
readme = "readme.md"
|
|
11
11
|
keywords = [
|
|
@@ -128,7 +128,7 @@ dependencies = [
|
|
|
128
128
|
]
|
|
129
129
|
urls.Changelog = "https://github.com/kdeldycke/repomatic/blob/main/changelog.md"
|
|
130
130
|
urls.Documentation = "https://kdeldycke.github.io/repomatic"
|
|
131
|
-
urls.Download = "https://github.com/kdeldycke/repomatic/releases/tag/v7.3.
|
|
131
|
+
urls.Download = "https://github.com/kdeldycke/repomatic/releases/tag/v7.3.1"
|
|
132
132
|
urls.Funding = "https://github.com/sponsors/kdeldycke"
|
|
133
133
|
urls.Homepage = "https://github.com/kdeldycke/repomatic"
|
|
134
134
|
urls.Issues = "https://github.com/kdeldycke/repomatic/issues"
|
|
@@ -225,7 +225,7 @@ copyright = "Kevin Deldycke <kevin@deldycke.com> and contributors. Distributed u
|
|
|
225
225
|
file-description = "🏭 Automate repository maintenance, releases, and CI/CD workflows"
|
|
226
226
|
# Numeric only: Nuitka rejects PEP 440 .devN suffixes. Kept in sync with the
|
|
227
227
|
# package version by the dedicated [tool.bumpversion] rule that strips the suffix.
|
|
228
|
-
file-version = "7.3.
|
|
228
|
+
file-version = "7.3.1"
|
|
229
229
|
include-data-dir = [
|
|
230
230
|
"repomatic/data/awesome_template=repomatic/data/awesome_template",
|
|
231
231
|
]
|
|
@@ -243,7 +243,7 @@ include-package-data = [ "click_extra" ]
|
|
|
243
243
|
linux-icon = "docs/assets/icon.png"
|
|
244
244
|
macos-app-icon = "docs/assets/icon.icns"
|
|
245
245
|
product-name = "Repomatic"
|
|
246
|
-
product-version = "7.3.
|
|
246
|
+
product-version = "7.3.1"
|
|
247
247
|
windows-icon-from-ico = "docs/assets/icon.ico"
|
|
248
248
|
|
|
249
249
|
[tool.ruff]
|
|
@@ -343,11 +343,18 @@ addopts = [
|
|
|
343
343
|
"--cov",
|
|
344
344
|
"--cov-report=term",
|
|
345
345
|
"--numprocesses=auto",
|
|
346
|
+
# Import test modules via importlib instead of prepending their root dir to
|
|
347
|
+
# sys.path. Avoids "import file mismatch" collection errors when an installed
|
|
348
|
+
# copy of the package coexists with the source tree, as in distro builds.
|
|
349
|
+
"--import-mode=importlib",
|
|
346
350
|
]
|
|
347
351
|
# https://docs.pytest.org/en/latest/customize.html#pyproject-toml
|
|
348
352
|
markers = [
|
|
349
353
|
"once: Tests that only need to run once, not across the full CI matrix.",
|
|
350
354
|
]
|
|
355
|
+
# Restrict collection to the test suite, so pytest never descends into the
|
|
356
|
+
# package or an installed copy of it in dual-copy builds.
|
|
357
|
+
testpaths = [ "tests" ]
|
|
351
358
|
# Make sure tests that are expected to fail do not resurrect and start working all of a sudden.
|
|
352
359
|
xfail_strict = true
|
|
353
360
|
|
|
@@ -358,7 +365,7 @@ run.source = [ "repomatic" ]
|
|
|
358
365
|
report.precision = 2
|
|
359
366
|
|
|
360
367
|
[tool.bumpversion]
|
|
361
|
-
current_version = "7.3.
|
|
368
|
+
current_version = "7.3.1"
|
|
362
369
|
# Parse versions with an optional .devN suffix (PEP 440).
|
|
363
370
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)(\\.dev(?P<dev>\\d+))?"
|
|
364
371
|
serialize = [
|
|
@@ -959,7 +959,16 @@ def lint_changelog_dates(
|
|
|
959
959
|
archive_headings = Changelog(
|
|
960
960
|
archive_path.read_text(encoding="UTF-8")
|
|
961
961
|
).extract_all_version_headings()
|
|
962
|
-
|
|
962
|
+
# The changelog documents only final releases. Exclude pre-releases
|
|
963
|
+
# (dev/alpha/beta/rc) so a published `X.Y.Z.dev0` tag, PyPI upload, or
|
|
964
|
+
# GitHub prerelease is never mistaken for a missing changelog entry: an
|
|
965
|
+
# orphan insertion would both drop a spurious pre-release section and
|
|
966
|
+
# rewrite the adjacent release's comparison-URL base to point at it.
|
|
967
|
+
all_known = {
|
|
968
|
+
v
|
|
969
|
+
for v in (set(pypi_data) | set(github_releases) | set(tag_versions))
|
|
970
|
+
if not Version(v).is_prerelease
|
|
971
|
+
}
|
|
963
972
|
orphans = all_known - changelog_headings - archive_headings
|
|
964
973
|
if orphans:
|
|
965
974
|
for orphan in sorted(orphans, key=Version):
|
|
@@ -1004,6 +1013,11 @@ def lint_changelog_dates(
|
|
|
1004
1013
|
|
|
1005
1014
|
date_corrections: dict[str, str] = {}
|
|
1006
1015
|
abandoned = frozenset(abandoned_versions)
|
|
1016
|
+
# Point maintainers at the remedy: a version that is intentionally absent
|
|
1017
|
+
# from the reference source is declared once in config, not re-flagged.
|
|
1018
|
+
abandoned_hint = (
|
|
1019
|
+
"list under [tool.repomatic] abandoned-versions if intentionally unpublished"
|
|
1020
|
+
)
|
|
1007
1021
|
|
|
1008
1022
|
for version, changelog_date in releases:
|
|
1009
1023
|
if use_pypi:
|
|
@@ -1018,10 +1032,10 @@ def lint_changelog_dates(
|
|
|
1018
1032
|
f" {version}: predates PyPI (first: {first_pypi_version})"
|
|
1019
1033
|
)
|
|
1020
1034
|
continue
|
|
1021
|
-
logging.warning(f"⚠ {version}: not found on PyPI")
|
|
1035
|
+
logging.warning(f"⚠ {version}: not found on PyPI ({abandoned_hint})")
|
|
1022
1036
|
emit_annotation(
|
|
1023
1037
|
AnnotationLevel.WARNING,
|
|
1024
|
-
f"Version {version} not found on PyPI",
|
|
1038
|
+
f"Version {version} not found on PyPI ({abandoned_hint})",
|
|
1025
1039
|
)
|
|
1026
1040
|
continue
|
|
1027
1041
|
ref_date = release.date
|
|
@@ -1033,10 +1047,12 @@ def lint_changelog_dates(
|
|
|
1033
1047
|
if version in abandoned:
|
|
1034
1048
|
logging.info(f" {version}: abandoned (skipped per config)")
|
|
1035
1049
|
continue
|
|
1036
|
-
logging.warning(
|
|
1050
|
+
logging.warning(
|
|
1051
|
+
f"⚠ {version}: not found on {source} ({abandoned_hint})"
|
|
1052
|
+
)
|
|
1037
1053
|
emit_annotation(
|
|
1038
1054
|
AnnotationLevel.WARNING,
|
|
1039
|
-
f"Version {version} not found on {source}",
|
|
1055
|
+
f"Version {version} not found on {source} ({abandoned_hint})",
|
|
1040
1056
|
)
|
|
1041
1057
|
continue
|
|
1042
1058
|
ref_date = tag_date
|
|
@@ -36,7 +36,7 @@ jobs:
|
|
|
36
36
|
has_virustotal_key: ${{ steps.check-vt-key.outputs.has_key }}
|
|
37
37
|
metadata: ${{ steps.metadata.outputs.metadata }}
|
|
38
38
|
steps:
|
|
39
|
-
- uses: actions/checkout@
|
|
39
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
40
40
|
with:
|
|
41
41
|
# Checkout pull request HEAD commit to ignore actions/checkout's merge commit. Fallback to push SHA.
|
|
42
42
|
# See: https://github.com/actions/checkout/issues/504
|
|
@@ -51,7 +51,7 @@ jobs:
|
|
|
51
51
|
- name: Run repomatic metadata
|
|
52
52
|
id: metadata
|
|
53
53
|
run: >
|
|
54
|
-
uvx --no-progress 'repomatic==7.3.
|
|
54
|
+
uvx --no-progress 'repomatic==7.3.1' metadata
|
|
55
55
|
--format github-json --output "$GITHUB_OUTPUT"
|
|
56
56
|
new_commits_matrix release_commits_matrix build_targets nuitka_matrix
|
|
57
57
|
nuitka_extras is_python_project package_name current_version
|
|
@@ -88,7 +88,7 @@ jobs:
|
|
|
88
88
|
attestations: write
|
|
89
89
|
contents: read
|
|
90
90
|
steps:
|
|
91
|
-
- uses: actions/checkout@
|
|
91
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
92
92
|
with:
|
|
93
93
|
ref: ${{ matrix.commit }}
|
|
94
94
|
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
@@ -113,7 +113,7 @@ jobs:
|
|
|
113
113
|
uv --no-progress sync --frozen ${flags}
|
|
114
114
|
- name: Pre-bake build metadata
|
|
115
115
|
if: contains(matrix.current_version, '.dev')
|
|
116
|
-
run: uvx --no-progress 'click-extra==8.
|
|
116
|
+
run: uvx --no-progress 'click-extra==8.4.0' prebake all
|
|
117
117
|
- name: Build binary
|
|
118
118
|
id: build-binary
|
|
119
119
|
continue-on-error: true
|
|
@@ -132,7 +132,7 @@ jobs:
|
|
|
132
132
|
# NUITKA_PYTHON_FLAGS holds the entry point's --python-flag (if any),
|
|
133
133
|
# meant to word-split.
|
|
134
134
|
# shellcheck disable=SC2086
|
|
135
|
-
uvx --no-progress 'repomatic==7.3.
|
|
135
|
+
uvx --no-progress 'repomatic==7.3.1' run nuitka -- \
|
|
136
136
|
${NUITKA_PYTHON_FLAGS} \
|
|
137
137
|
--output-filename="${BIN_NAME}" "${MODULE_PATH}"
|
|
138
138
|
- name: Upload Nuitka crash report
|
|
@@ -176,7 +176,7 @@ jobs:
|
|
|
176
176
|
BIN_NAME: ${{ matrix.bin_name }}
|
|
177
177
|
shell: bash
|
|
178
178
|
run: >
|
|
179
|
-
uvx --no-progress 'repomatic==7.3.
|
|
179
|
+
uvx --no-progress 'repomatic==7.3.1'
|
|
180
180
|
verify-binary --target "${TARGET}" --binary "${BIN_NAME}"
|
|
181
181
|
- name: Upload binaries
|
|
182
182
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
@@ -191,7 +191,7 @@ jobs:
|
|
|
191
191
|
if: >-
|
|
192
192
|
github.ref == 'refs/heads/main'
|
|
193
193
|
&& fromJSON(needs.metadata.outputs.metadata).release_commits_matrix
|
|
194
|
-
uses: actions/attest@
|
|
194
|
+
uses: actions/attest@f7c74d28b9d84cb8768d0b8ca14a4bac6ef463e6 # v4.2.0
|
|
195
195
|
with:
|
|
196
196
|
subject-path: ${{ matrix.bin_name }}
|
|
197
197
|
- name: Verify binary attestation
|
|
@@ -237,7 +237,7 @@ jobs:
|
|
|
237
237
|
# We keep going when a job flagged as not stable fails.
|
|
238
238
|
continue-on-error: ${{ matrix.state == 'unstable' }}
|
|
239
239
|
steps:
|
|
240
|
-
- uses: actions/checkout@
|
|
240
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
241
241
|
with:
|
|
242
242
|
ref: ${{ matrix.commit }}
|
|
243
243
|
- name: Download artifact
|
|
@@ -281,7 +281,7 @@ jobs:
|
|
|
281
281
|
permissions:
|
|
282
282
|
contents: write
|
|
283
283
|
steps:
|
|
284
|
-
- uses: actions/checkout@
|
|
284
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
285
285
|
with:
|
|
286
286
|
ref: ${{ matrix.commit }}
|
|
287
287
|
# PAT required so tag pushes trigger downstream on.push.tags workflows.
|
|
@@ -295,7 +295,7 @@ jobs:
|
|
|
295
295
|
CURRENT_VERSION: ${{ matrix.current_version }}
|
|
296
296
|
COMMIT: ${{ matrix.commit }}
|
|
297
297
|
run: >
|
|
298
|
-
uvx --no-progress 'repomatic==7.3.
|
|
298
|
+
uvx --no-progress 'repomatic==7.3.1' git-tag
|
|
299
299
|
--tag "v${CURRENT_VERSION}"
|
|
300
300
|
--commit "${COMMIT}"
|
|
301
301
|
--skip-existing
|
|
@@ -316,7 +316,7 @@ jobs:
|
|
|
316
316
|
# Allow project without REPOMATIC_PAT to create a GitHub release.
|
|
317
317
|
contents: write
|
|
318
318
|
steps:
|
|
319
|
-
- uses: actions/checkout@
|
|
319
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
320
320
|
with:
|
|
321
321
|
ref: ${{ matrix.commit }}
|
|
322
322
|
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
@@ -336,7 +336,7 @@ jobs:
|
|
|
336
336
|
continue-on-error: true
|
|
337
337
|
env:
|
|
338
338
|
GH_TOKEN: ${{ secrets.REPOMATIC_PAT || github.token }}
|
|
339
|
-
run: uvx --no-progress 'repomatic==7.3.
|
|
339
|
+
run: uvx --no-progress 'repomatic==7.3.1' sync-dev-release --live --delete
|
|
340
340
|
- name: Create GitHub release draft
|
|
341
341
|
# Idempotent: skips if release already exists (e.g. workflow re-run).
|
|
342
342
|
# Notes carry the PyPI availability admonition from the start: baking it
|
|
@@ -390,7 +390,7 @@ jobs:
|
|
|
390
390
|
permissions:
|
|
391
391
|
contents: write
|
|
392
392
|
steps:
|
|
393
|
-
- uses: actions/checkout@
|
|
393
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
394
394
|
with:
|
|
395
395
|
ref: ${{ matrix.commit }}
|
|
396
396
|
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
@@ -510,7 +510,7 @@ jobs:
|
|
|
510
510
|
permissions:
|
|
511
511
|
contents: write
|
|
512
512
|
steps:
|
|
513
|
-
- uses: actions/checkout@
|
|
513
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
514
514
|
with:
|
|
515
515
|
# Scan records and the binaries page are committed on top of the
|
|
516
516
|
# default branch tip, not the release commit. The PAT (when
|
|
@@ -538,7 +538,7 @@ jobs:
|
|
|
538
538
|
VIRUSTOTAL_API_KEY: ${{ secrets.VIRUSTOTAL_API_KEY }}
|
|
539
539
|
CURRENT_VERSION: ${{ matrix.current_version }}
|
|
540
540
|
run: >
|
|
541
|
-
uvx --no-progress 'repomatic==7.3.
|
|
541
|
+
uvx --no-progress 'repomatic==7.3.1' scan-virustotal
|
|
542
542
|
--tag "v${CURRENT_VERSION}"
|
|
543
543
|
--binaries-dir ./binaries
|
|
544
544
|
--poll
|
|
@@ -551,7 +551,7 @@ jobs:
|
|
|
551
551
|
env:
|
|
552
552
|
GH_TOKEN: ${{ github.token }}
|
|
553
553
|
run: >
|
|
554
|
-
uvx --no-progress 'repomatic==7.3.
|
|
554
|
+
uvx --no-progress 'repomatic==7.3.1' sync-binaries
|
|
555
555
|
--repo "${{ github.repository }}"
|
|
556
556
|
--page docs/binaries.md
|
|
557
557
|
--records docs/assets/virustotal-scans.json
|
|
@@ -566,7 +566,7 @@ jobs:
|
|
|
566
566
|
CURRENT_VERSION: ${{ matrix.current_version }}
|
|
567
567
|
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
|
568
568
|
run: >
|
|
569
|
-
uvx --no-progress 'repomatic==7.3.
|
|
569
|
+
uvx --no-progress 'repomatic==7.3.1' git-commit-push
|
|
570
570
|
--message "Record v${CURRENT_VERSION} binaries"
|
|
571
571
|
--branch "${DEFAULT_BRANCH}"
|
|
572
572
|
docs/binaries.md
|
|
@@ -587,11 +587,21 @@ jobs:
|
|
|
587
587
|
&& github.ref == 'refs/heads/main'
|
|
588
588
|
&& !fromJSON(needs.metadata.outputs.metadata).release_commits_matrix
|
|
589
589
|
&& fromJSON(needs.metadata.outputs.metadata).current_version
|
|
590
|
+
# Serialise this job across overlapping release runs: the dev pre-release is a
|
|
591
|
+
# single mutable GitHub resource this job deletes, recreates and uploads to. The
|
|
592
|
+
# run-level concurrency in release.yaml cancels a superseded run mid-sync, which
|
|
593
|
+
# can leave the pre-release half-rewritten and fail the next run's sync. A
|
|
594
|
+
# dedicated per-repository group that never cancels in progress lets each sync
|
|
595
|
+
# finish cleanly before the next starts; GitHub keeps only the latest queued one,
|
|
596
|
+
# so the pre-release still converges to the newest build.
|
|
597
|
+
concurrency:
|
|
598
|
+
group: sync-dev-release-${{ github.repository }}
|
|
599
|
+
cancel-in-progress: false
|
|
590
600
|
runs-on: ubuntu-slim
|
|
591
601
|
permissions:
|
|
592
602
|
contents: write
|
|
593
603
|
steps:
|
|
594
|
-
- uses: actions/checkout@
|
|
604
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
595
605
|
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
596
606
|
- name: Download all build artifacts
|
|
597
607
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
@@ -602,5 +612,5 @@ jobs:
|
|
|
602
612
|
env:
|
|
603
613
|
GH_TOKEN: ${{ github.token }}
|
|
604
614
|
run: >
|
|
605
|
-
uvx --no-progress 'repomatic==7.3.
|
|
615
|
+
uvx --no-progress 'repomatic==7.3.1' sync-dev-release --live
|
|
606
616
|
--upload-assets release_assets
|