From 4ebd5c96d9cc95ecbb33abf254d0179251a73862 Mon Sep 17 00:00:00 2001 From: kdeldycke Date: Tue, 10 Mar 2026 09:43:58 +0000 Subject: [PATCH 1/2] [changelog] Release v6.4.0 --- .github/workflows/autofix.yaml | 56 ++++++++++++++++---------------- .github/workflows/changelog.yaml | 16 ++++----- .github/workflows/debug.yaml | 2 +- .github/workflows/docs.yaml | 4 +-- .github/workflows/labels.yaml | 10 +++--- .github/workflows/lint.yaml | 6 ++-- .github/workflows/release.yaml | 16 ++++----- .github/workflows/renovate.yaml | 12 +++---- .github/workflows/tests.yaml | 2 +- changelog.md | 5 +-- pyproject.toml | 6 ++-- readme.md | 6 ++-- renovate.json5 | 2 +- repomatic/__init__.py | 2 +- repomatic/data/renovate.json5 | 2 +- 15 files changed, 72 insertions(+), 75 deletions(-) diff --git a/.github/workflows/autofix.yaml b/.github/workflows/autofix.yaml index 4d2d53c19..422178369 100644 --- a/.github/workflows/autofix.yaml +++ b/.github/workflows/autofix.yaml @@ -33,7 +33,7 @@ jobs: - name: Manage setup guide issue env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic setup-guide + run: uvx --no-progress 'repomatic==6.4.0' setup-guide project-metadata: name: 🧬 Project metadata @@ -56,7 +56,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" # --- Formatters: rewrite files to enforce canonical style. --- @@ -86,7 +86,7 @@ jobs: # Initialize [tool.ruff] in pyproject.toml if missing. Only for Python projects; # doc-only repos use Ruff for code-block formatting without needing project config. if: needs.project-metadata.outputs.python_files - run: uvx --no-progress --from . repomatic init ruff + run: uvx --no-progress 'repomatic==6.4.0' init ruff # XXX Ruff is planning to support linting and formatting in one unified command at one point. # See: https://github.com/astral-sh/ruff/issues/8232 - name: Run Ruff @@ -95,7 +95,7 @@ jobs: ruff format --output-format github - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template format-python --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -125,7 +125,7 @@ jobs: pyproject.toml || true - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template format-pyproject --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -194,7 +194,7 @@ jobs: -exec gawk -i inplace '!/^- \[(Contents|Contributing|Footnotes|Related Lists)\]\(#.+\)$/{print}' "{}" \; - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template format-markdown --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -233,7 +233,7 @@ jobs: ${{ needs.project-metadata.outputs.json_files }} - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template format-json --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -263,7 +263,7 @@ jobs: run: typos --write-changes - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template fix-typos --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -301,13 +301,13 @@ jobs: - name: Format images id: format run: > - uvx --no-progress --from . repomatic format-images + uvx --no-progress 'repomatic==6.4.0' format-images --output "$GITHUB_OUTPUT" - id: pr-metadata env: GHA_PR_BODY_PREFIX: ${{ steps.format.outputs.markdown }} run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template format-images --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -331,10 +331,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync .gitignore - run: uvx --no-progress --from . repomatic sync-gitignore + run: uvx --no-progress 'repomatic==6.4.0' sync-gitignore - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-gitignore --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -356,10 +356,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync bumpversion config - run: uvx --no-progress --from . repomatic sync-bumpversion + run: uvx --no-progress 'repomatic==6.4.0' sync-bumpversion - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-bumpversion --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -381,10 +381,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync zizmor config - run: uvx --no-progress --from . repomatic sync-zizmor + run: uvx --no-progress 'repomatic==6.4.0' sync-zizmor - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-zizmor --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -408,10 +408,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync Renovate config - run: uvx --no-progress --from . repomatic sync-renovate + run: uvx --no-progress 'repomatic==6.4.0' sync-renovate - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-renovate --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -436,10 +436,10 @@ jobs: fetch-depth: 0 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync .mailmap - run: uvx --no-progress --from . repomatic sync-mailmap --skip-if-missing + run: uvx --no-progress 'repomatic==6.4.0' sync-mailmap --skip-if-missing - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-mailmap --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -465,10 +465,10 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Generate graph # Package name and output path are auto-detected from pyproject.toml. - run: uvx --no-progress --from . repomatic update-deps-graph + run: uvx --no-progress 'repomatic==6.4.0' update-deps-graph - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template update-deps-graph --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -503,7 +503,7 @@ jobs: fi - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template update-docs --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -523,12 +523,12 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Re-create thin caller workflows - run: uvx --no-progress --from . repomatic workflow sync --format thin-caller + run: uvx --no-progress 'repomatic==6.4.0' workflow sync --format thin-caller - name: Sync non-reusable workflow headers - run: uvx --no-progress --from . repomatic workflow sync --format header-only + run: uvx --no-progress 'repomatic==6.4.0' workflow sync --format header-only - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-workflows --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -560,10 +560,10 @@ jobs: token: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - uses: astral-sh/setup-uv@v7.3.1 - name: Sync awesome template - run: uvx --no-progress --from . repomatic sync-awesome-template + run: uvx --no-progress 'repomatic==6.4.0' sync-awesome-template - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-awesome-template --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index 8396811b3..7653af4e5 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -65,7 +65,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" fix-changelog: name: 📋 Fix changelog @@ -88,10 +88,10 @@ jobs: - name: Fix changelog dates and admonitions env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic lint-changelog --fix + run: uvx --no-progress 'repomatic==6.4.0' lint-changelog --fix - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template fix-changelog --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -138,7 +138,7 @@ jobs: - id: pr-metadata if: needs.project-metadata.outputs[format('{0}_bump_allowed', matrix.part)] == 'true' run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template bump-version --part "${{ matrix.part }}" --output "$GITHUB_OUTPUT" @@ -176,7 +176,7 @@ jobs: - name: Prepare release # Updates changelog and citation dates, comparison URL, and removes warning. # Also hard-codes version in workflow URLs for kdeldycke/repomatic repository. - run: uvx --no-progress --from . repomatic release-prep + run: uvx --no-progress 'repomatic==6.4.0' release-prep - name: Prepare repository run: | git config --global user.name "${{ github.actor }}" @@ -188,9 +188,9 @@ jobs: - name: Re-target main branch in workflows # This step is only used in the original repository to automate remote URL tagging. if: github.repository == 'kdeldycke/repomatic' - run: uvx --no-progress --from . repomatic release-prep --post-release + run: uvx --no-progress 'repomatic==6.4.0' release-prep --post-release - name: Add new changelog entry - run: uvx --no-progress --from . repomatic changelog ./changelog.md + run: uvx --no-progress 'repomatic==6.4.0' changelog ./changelog.md - name: Version bump run: bump-my-version bump --verbose patch - name: Sync uv.lock @@ -201,7 +201,7 @@ jobs: v${{ steps.get_version.outputs.current_version }} → v$(bump-my-version show current_version)" - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template prepare-release --version "${{ steps.get_version.outputs.current_version }}" --output "$GITHUB_OUTPUT" diff --git a/.github/workflows/debug.yaml b/.github/workflows/debug.yaml index 175622dea..1f0286e54 100644 --- a/.github/workflows/debug.yaml +++ b/.github/workflows/debug.yaml @@ -34,7 +34,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic --verbosity DEBUG metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' --verbosity DEBUG metadata --output "$GITHUB_OUTPUT" - name: Extend matrix with ubuntu-slim id: extend-matrix run: | diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index e02e8a0c0..c92e45d43 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -25,7 +25,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" deploy-docs: name: 📖 Deploy Sphinx doc @@ -111,7 +111,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > - uvx --no-progress --from . repomatic broken-links + uvx --no-progress 'repomatic==6.4.0' broken-links ${{ steps.lychee_run.outputs.exit_code != '' && format( '--lychee-exit-code {0}', steps.lychee_run.outputs.exit_code) || '' }} diff --git a/.github/workflows/labels.yaml b/.github/workflows/labels.yaml index 21e4d6750..e9af9a5cb 100644 --- a/.github/workflows/labels.yaml +++ b/.github/workflows/labels.yaml @@ -41,7 +41,7 @@ jobs: - name: Sync labels env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic sync-labels + run: uvx --no-progress 'repomatic==6.4.0' sync-labels project-metadata: name: 🧬 Project metadata @@ -55,7 +55,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" file-labeller: name: 📁 File-based PR labeller @@ -69,7 +69,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Dump default rules - run: uvx --no-progress --from . repomatic init labels + run: uvx --no-progress 'repomatic==6.4.0' init labels - name: Apply rules uses: actions/labeler@v6.0.1 with: @@ -87,7 +87,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Dump default rules - run: uvx --no-progress --from . repomatic init labels + run: uvx --no-progress 'repomatic==6.4.0' init labels - name: Apply rules uses: github/issue-labeler@v3.4 with: @@ -108,4 +108,4 @@ jobs: - name: Add sponsor label env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic sponsor-label + run: uvx --no-progress 'repomatic==6.4.0' sponsor-label diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2c342653b..e9b7e3e62 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -35,7 +35,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" lint-repo: name: 🏠 Lint repo @@ -49,7 +49,7 @@ jobs: - name: Lint repository metadata env: GH_TOKEN: ${{ github.token }} - run: uvx --no-progress --from . repomatic lint-repo + run: uvx --no-progress 'repomatic==6.4.0' lint-repo lint-types: name: 🛡️ Lint types @@ -166,7 +166,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Generate zizmor config if missing if: hashFiles('zizmor.yaml') == '' - run: uvx --no-progress --from . repomatic init linters + run: uvx --no-progress 'repomatic==6.4.0' init linters - name: Run zizmor run: uvx --no-progress 'zizmor==1.22.0' --format github --offline . diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 49ac411c7..eab512d1a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -66,7 +66,7 @@ jobs: - name: Generate issue body id: issue-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template detect-squash-merge --pr-ref "${{ steps.extract.outputs.pr_ref }}" --output "$GITHUB_OUTPUT" @@ -121,7 +121,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" build-package: name: 📦 Build package (${{ matrix.short_sha }}) @@ -186,7 +186,7 @@ jobs: - name: Pre-bake version with commit hash if: contains(matrix.current_version, '.dev') run: > - uvx --no-progress --from . repomatic + uvx --no-progress 'repomatic==6.4.0' prebake-version --hash "${{ matrix.short_sha }}" - name: Nuitka + compilers versions run: uv --no-progress run --frozen -- nuitka --version @@ -221,7 +221,7 @@ jobs: run: choco install exiftool --no-progress --yes --retry-count=3 - name: Verify binary architecture run: > - uvx --no-progress --from . repomatic + uvx --no-progress 'repomatic==6.4.0' verify-binary --target "${{ matrix.target }}" --binary "${{ matrix.bin_name }}" - name: Upload binaries uses: actions/upload-artifact@v6.0.0 @@ -278,7 +278,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run test plan for binary run: > - uvx --no-progress --from . repomatic test-plan + uvx --no-progress 'repomatic==6.4.0' test-plan --binary "${{ steps.artifacts.outputs.download-path }}/${{ matrix.bin_name }}" create-tag: @@ -302,7 +302,7 @@ jobs: # Idempotent: skips if tag already exists instead of failing. This allows re-running # workflows interrupted after tag creation. run: > - uvx --no-progress --from . repomatic git-tag + uvx --no-progress 'repomatic==6.4.0' git-tag --tag "v${{ matrix.current_version }}" --commit "${{ matrix.commit }}" --skip-existing @@ -386,7 +386,7 @@ jobs: continue-on-error: true env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic sync-dev-release --live --delete + run: uvx --no-progress 'repomatic==6.4.0' sync-dev-release --live --delete - name: Create GitHub release draft # Idempotent: skips if release already exists (e.g. workflow re-run). env: @@ -463,5 +463,5 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > - uvx --no-progress --from . repomatic sync-dev-release --live + uvx --no-progress 'repomatic==6.4.0' sync-dev-release --live --upload-assets release_assets diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 08d9acf39..65874de59 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -33,7 +33,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" sync-bundled-config: name: 🔄 Sync renovate.json5 @@ -76,11 +76,11 @@ jobs: id: checks env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic check-renovate --format=github --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' check-renovate --format=github --output "$GITHUB_OUTPUT" - name: Export renovate.json5 if missing if: steps.checks.outputs.renovate_config_exists == 'false' - run: uvx --no-progress --from . repomatic init renovate + run: uvx --no-progress 'repomatic==6.4.0' init renovate - name: Remove Dependabot config if present if: steps.checks.outputs.dependabot_config_path != '' @@ -108,7 +108,7 @@ jobs: - name: Validate Renovate prerequisites env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress --from . repomatic check-renovate + run: uvx --no-progress 'repomatic==6.4.0' check-renovate - uses: renovatebot/github-action@v46.1.2 with: @@ -168,10 +168,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync uv.lock - run: uvx --no-progress --from . repomatic sync-uv-lock + run: uvx --no-progress 'repomatic==6.4.0' sync-uv-lock - id: pr-metadata run: > - uvx --no-progress --from . repomatic pr-body + uvx --no-progress 'repomatic==6.4.0' pr-body --template sync-uv-lock --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index eb9843e49..aff8afaf4 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -133,7 +133,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" test-package-install: name: 📦 Package install diff --git a/changelog.md b/changelog.md index 7f67a0a99..bf321872d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,9 +1,6 @@ # Changelog -## [`6.4.0.dev0` (unreleased)](https://github.com/kdeldycke/repomatic/compare/v6.3.2...main) - -> [!WARNING] -> This version is **not released yet** and is under active development. +## [`6.4.0` (2026-03-10)](https://github.com/kdeldycke/repomatic/compare/v6.3.2...v6.4.0) - Rename `optimize-images` to `format-images`. Image lossless optimization is a format operation (semantics-preserving rewrite using external tools), aligning it with the `format-*` naming convention. - Add `format-images` PR body template and use `--template format-images` in the workflow, aligning with the standard format job pattern. diff --git a/pyproject.toml b/pyproject.toml index aeaad2db0..09a82e124 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "uv-build>=0.9" ] [project] # Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/ name = "repomatic" -version = "6.4.0.dev0" +version = "6.4.0" description = "🏭 Automate repository maintenance, releases, and CI/CD workflows" readme = "readme.md" keywords = [ @@ -118,7 +118,7 @@ repomatic = "repomatic.__main__:main" [project.urls] "Changelog" = "https://github.com/kdeldycke/repomatic/blob/main/changelog.md" -"Download" = "https://github.com/kdeldycke/repomatic/releases/tag/v6.4.0.dev0" +"Download" = "https://github.com/kdeldycke/repomatic/releases/tag/v6.4.0" "Funding" = "https://github.com/sponsors/kdeldycke" "Homepage" = "https://github.com/kdeldycke/repomatic" "Issues" = "https://github.com/kdeldycke/repomatic/issues" @@ -219,7 +219,7 @@ run.source = [ "repomatic" ] report.precision = 2 [tool.bumpversion] -current_version = "6.4.0.dev0" +current_version = "6.4.0" allow_dirty = true ignore_missing_files = true # Parse versions with an optional .devN suffix (PEP 440). diff --git a/readme.md b/readme.md index 163ff73ca..64ad640ba 100644 --- a/readme.md +++ b/readme.md @@ -117,9 +117,9 @@ To ease deployment, standalone executables of `repomatic`'s latest version are a | Platform | `arm64` | `x86_64` | | :---------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| **Linux** | [Download `repomatic-6.3.2-linux-arm64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-linux-arm64.bin) | [Download `repomatic-6.3.2-linux-x64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-linux-x64.bin) | -| **macOS** | [Download `repomatic-6.3.2-macos-arm64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-macos-arm64.bin) | [Download `repomatic-6.3.2-macos-x64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-macos-x64.bin) | -| **Windows** | [Download `repomatic-6.3.2-windows-arm64.exe`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-windows-arm64.exe) | [Download `repomatic-6.3.2-windows-x64.exe`](https://github.com/kdeldycke/repomatic/releases/download/v6.3.2/repomatic-6.3.2-windows-x64.exe) | +| **Linux** | [Download `repomatic-6.4.0-linux-arm64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-linux-arm64.bin) | [Download `repomatic-6.4.0-linux-x64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-linux-x64.bin) | +| **macOS** | [Download `repomatic-6.4.0-macos-arm64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-macos-arm64.bin) | [Download `repomatic-6.4.0-macos-x64.bin`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-macos-x64.bin) | +| **Windows** | [Download `repomatic-6.4.0-windows-arm64.exe`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-windows-arm64.exe) | [Download `repomatic-6.4.0-windows-x64.exe`](https://github.com/kdeldycke/repomatic/releases/download/v6.4.0/repomatic-6.4.0-windows-x64.exe) | That way you have a chance to try it out without installing Python or `uv`. Or embed it in your CI/CD pipelines running on minimal images. Or run it on old platforms without worrying about dependency hell. diff --git a/renovate.json5 b/renovate.json5 index fe729224d..1db26253e 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -50,7 +50,7 @@ matchFileNames: [".github/workflows/**"], postUpgradeTasks: { commands: [ - "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress --from . repomatic update-checksums {{{packageFile}}}'", + "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress repomatic==6.4.0 update-checksums {{{packageFile}}}'", ], fileFilters: [".github/workflows/**"], executionMode: "update", diff --git a/repomatic/__init__.py b/repomatic/__init__.py index 091d85079..c93a0be99 100644 --- a/repomatic/__init__.py +++ b/repomatic/__init__.py @@ -17,4 +17,4 @@ from __future__ import annotations -__version__ = "6.4.0.dev0" +__version__ = "6.4.0" diff --git a/repomatic/data/renovate.json5 b/repomatic/data/renovate.json5 index 75bb8d97e..a41aabd00 100644 --- a/repomatic/data/renovate.json5 +++ b/repomatic/data/renovate.json5 @@ -49,7 +49,7 @@ matchFileNames: [".github/workflows/**"], postUpgradeTasks: { commands: [ - "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress --from . repomatic update-checksums {{{packageFile}}}'", + "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress repomatic==6.4.0 update-checksums {{{packageFile}}}'", ], fileFilters: [".github/workflows/**"], executionMode: "update", From a73758b04f80f3baff446bcd6d62266d5a5ef2f1 Mon Sep 17 00:00:00 2001 From: kdeldycke Date: Tue, 10 Mar 2026 09:44:11 +0000 Subject: [PATCH 2/2] =?UTF-8?q?[changelog]=20Post-release=20bump=20v6.4.0?= =?UTF-8?q?=20=E2=86=92=20v6.4.1.dev0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/autofix.yaml | 56 ++++++++++++++++---------------- .github/workflows/changelog.yaml | 16 ++++----- .github/workflows/debug.yaml | 2 +- .github/workflows/docs.yaml | 4 +-- .github/workflows/labels.yaml | 10 +++--- .github/workflows/lint.yaml | 6 ++-- .github/workflows/release.yaml | 16 ++++----- .github/workflows/renovate.yaml | 12 +++---- .github/workflows/tests.yaml | 2 +- changelog.md | 5 +++ pyproject.toml | 6 ++-- renovate.json5 | 2 +- repomatic/__init__.py | 2 +- repomatic/data/renovate.json5 | 2 +- uv.lock | 6 ++-- 15 files changed, 76 insertions(+), 71 deletions(-) diff --git a/.github/workflows/autofix.yaml b/.github/workflows/autofix.yaml index 422178369..4d2d53c19 100644 --- a/.github/workflows/autofix.yaml +++ b/.github/workflows/autofix.yaml @@ -33,7 +33,7 @@ jobs: - name: Manage setup guide issue env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' setup-guide + run: uvx --no-progress --from . repomatic setup-guide project-metadata: name: 🧬 Project metadata @@ -56,7 +56,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" # --- Formatters: rewrite files to enforce canonical style. --- @@ -86,7 +86,7 @@ jobs: # Initialize [tool.ruff] in pyproject.toml if missing. Only for Python projects; # doc-only repos use Ruff for code-block formatting without needing project config. if: needs.project-metadata.outputs.python_files - run: uvx --no-progress 'repomatic==6.4.0' init ruff + run: uvx --no-progress --from . repomatic init ruff # XXX Ruff is planning to support linting and formatting in one unified command at one point. # See: https://github.com/astral-sh/ruff/issues/8232 - name: Run Ruff @@ -95,7 +95,7 @@ jobs: ruff format --output-format github - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template format-python --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -125,7 +125,7 @@ jobs: pyproject.toml || true - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template format-pyproject --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -194,7 +194,7 @@ jobs: -exec gawk -i inplace '!/^- \[(Contents|Contributing|Footnotes|Related Lists)\]\(#.+\)$/{print}' "{}" \; - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template format-markdown --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -233,7 +233,7 @@ jobs: ${{ needs.project-metadata.outputs.json_files }} - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template format-json --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -263,7 +263,7 @@ jobs: run: typos --write-changes - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template fix-typos --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -301,13 +301,13 @@ jobs: - name: Format images id: format run: > - uvx --no-progress 'repomatic==6.4.0' format-images + uvx --no-progress --from . repomatic format-images --output "$GITHUB_OUTPUT" - id: pr-metadata env: GHA_PR_BODY_PREFIX: ${{ steps.format.outputs.markdown }} run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template format-images --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -331,10 +331,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync .gitignore - run: uvx --no-progress 'repomatic==6.4.0' sync-gitignore + run: uvx --no-progress --from . repomatic sync-gitignore - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-gitignore --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -356,10 +356,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync bumpversion config - run: uvx --no-progress 'repomatic==6.4.0' sync-bumpversion + run: uvx --no-progress --from . repomatic sync-bumpversion - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-bumpversion --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -381,10 +381,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync zizmor config - run: uvx --no-progress 'repomatic==6.4.0' sync-zizmor + run: uvx --no-progress --from . repomatic sync-zizmor - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-zizmor --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -408,10 +408,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync Renovate config - run: uvx --no-progress 'repomatic==6.4.0' sync-renovate + run: uvx --no-progress --from . repomatic sync-renovate - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-renovate --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -436,10 +436,10 @@ jobs: fetch-depth: 0 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync .mailmap - run: uvx --no-progress 'repomatic==6.4.0' sync-mailmap --skip-if-missing + run: uvx --no-progress --from . repomatic sync-mailmap --skip-if-missing - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-mailmap --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -465,10 +465,10 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Generate graph # Package name and output path are auto-detected from pyproject.toml. - run: uvx --no-progress 'repomatic==6.4.0' update-deps-graph + run: uvx --no-progress --from . repomatic update-deps-graph - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template update-deps-graph --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -503,7 +503,7 @@ jobs: fi - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template update-docs --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -523,12 +523,12 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Re-create thin caller workflows - run: uvx --no-progress 'repomatic==6.4.0' workflow sync --format thin-caller + run: uvx --no-progress --from . repomatic workflow sync --format thin-caller - name: Sync non-reusable workflow headers - run: uvx --no-progress 'repomatic==6.4.0' workflow sync --format header-only + run: uvx --no-progress --from . repomatic workflow sync --format header-only - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-workflows --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -560,10 +560,10 @@ jobs: token: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - uses: astral-sh/setup-uv@v7.3.1 - name: Sync awesome template - run: uvx --no-progress 'repomatic==6.4.0' sync-awesome-template + run: uvx --no-progress --from . repomatic sync-awesome-template - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-awesome-template --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index 7653af4e5..8396811b3 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -65,7 +65,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" fix-changelog: name: 📋 Fix changelog @@ -88,10 +88,10 @@ jobs: - name: Fix changelog dates and admonitions env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' lint-changelog --fix + run: uvx --no-progress --from . repomatic lint-changelog --fix - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template fix-changelog --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 @@ -138,7 +138,7 @@ jobs: - id: pr-metadata if: needs.project-metadata.outputs[format('{0}_bump_allowed', matrix.part)] == 'true' run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template bump-version --part "${{ matrix.part }}" --output "$GITHUB_OUTPUT" @@ -176,7 +176,7 @@ jobs: - name: Prepare release # Updates changelog and citation dates, comparison URL, and removes warning. # Also hard-codes version in workflow URLs for kdeldycke/repomatic repository. - run: uvx --no-progress 'repomatic==6.4.0' release-prep + run: uvx --no-progress --from . repomatic release-prep - name: Prepare repository run: | git config --global user.name "${{ github.actor }}" @@ -188,9 +188,9 @@ jobs: - name: Re-target main branch in workflows # This step is only used in the original repository to automate remote URL tagging. if: github.repository == 'kdeldycke/repomatic' - run: uvx --no-progress 'repomatic==6.4.0' release-prep --post-release + run: uvx --no-progress --from . repomatic release-prep --post-release - name: Add new changelog entry - run: uvx --no-progress 'repomatic==6.4.0' changelog ./changelog.md + run: uvx --no-progress --from . repomatic changelog ./changelog.md - name: Version bump run: bump-my-version bump --verbose patch - name: Sync uv.lock @@ -201,7 +201,7 @@ jobs: v${{ steps.get_version.outputs.current_version }} → v$(bump-my-version show current_version)" - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template prepare-release --version "${{ steps.get_version.outputs.current_version }}" --output "$GITHUB_OUTPUT" diff --git a/.github/workflows/debug.yaml b/.github/workflows/debug.yaml index 1f0286e54..175622dea 100644 --- a/.github/workflows/debug.yaml +++ b/.github/workflows/debug.yaml @@ -34,7 +34,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' --verbosity DEBUG metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic --verbosity DEBUG metadata --output "$GITHUB_OUTPUT" - name: Extend matrix with ubuntu-slim id: extend-matrix run: | diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index c92e45d43..e02e8a0c0 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -25,7 +25,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" deploy-docs: name: 📖 Deploy Sphinx doc @@ -111,7 +111,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > - uvx --no-progress 'repomatic==6.4.0' broken-links + uvx --no-progress --from . repomatic broken-links ${{ steps.lychee_run.outputs.exit_code != '' && format( '--lychee-exit-code {0}', steps.lychee_run.outputs.exit_code) || '' }} diff --git a/.github/workflows/labels.yaml b/.github/workflows/labels.yaml index e9af9a5cb..21e4d6750 100644 --- a/.github/workflows/labels.yaml +++ b/.github/workflows/labels.yaml @@ -41,7 +41,7 @@ jobs: - name: Sync labels env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' sync-labels + run: uvx --no-progress --from . repomatic sync-labels project-metadata: name: 🧬 Project metadata @@ -55,7 +55,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" file-labeller: name: 📁 File-based PR labeller @@ -69,7 +69,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Dump default rules - run: uvx --no-progress 'repomatic==6.4.0' init labels + run: uvx --no-progress --from . repomatic init labels - name: Apply rules uses: actions/labeler@v6.0.1 with: @@ -87,7 +87,7 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Dump default rules - run: uvx --no-progress 'repomatic==6.4.0' init labels + run: uvx --no-progress --from . repomatic init labels - name: Apply rules uses: github/issue-labeler@v3.4 with: @@ -108,4 +108,4 @@ jobs: - name: Add sponsor label env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' sponsor-label + run: uvx --no-progress --from . repomatic sponsor-label diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index e9b7e3e62..2c342653b 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -35,7 +35,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" lint-repo: name: 🏠 Lint repo @@ -49,7 +49,7 @@ jobs: - name: Lint repository metadata env: GH_TOKEN: ${{ github.token }} - run: uvx --no-progress 'repomatic==6.4.0' lint-repo + run: uvx --no-progress --from . repomatic lint-repo lint-types: name: 🛡️ Lint types @@ -166,7 +166,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Generate zizmor config if missing if: hashFiles('zizmor.yaml') == '' - run: uvx --no-progress 'repomatic==6.4.0' init linters + run: uvx --no-progress --from . repomatic init linters - name: Run zizmor run: uvx --no-progress 'zizmor==1.22.0' --format github --offline . diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index eab512d1a..49ac411c7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -66,7 +66,7 @@ jobs: - name: Generate issue body id: issue-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template detect-squash-merge --pr-ref "${{ steps.extract.outputs.pr_ref }}" --output "$GITHUB_OUTPUT" @@ -121,7 +121,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" build-package: name: 📦 Build package (${{ matrix.short_sha }}) @@ -186,7 +186,7 @@ jobs: - name: Pre-bake version with commit hash if: contains(matrix.current_version, '.dev') run: > - uvx --no-progress 'repomatic==6.4.0' + uvx --no-progress --from . repomatic prebake-version --hash "${{ matrix.short_sha }}" - name: Nuitka + compilers versions run: uv --no-progress run --frozen -- nuitka --version @@ -221,7 +221,7 @@ jobs: run: choco install exiftool --no-progress --yes --retry-count=3 - name: Verify binary architecture run: > - uvx --no-progress 'repomatic==6.4.0' + uvx --no-progress --from . repomatic verify-binary --target "${{ matrix.target }}" --binary "${{ matrix.bin_name }}" - name: Upload binaries uses: actions/upload-artifact@v6.0.0 @@ -278,7 +278,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run test plan for binary run: > - uvx --no-progress 'repomatic==6.4.0' test-plan + uvx --no-progress --from . repomatic test-plan --binary "${{ steps.artifacts.outputs.download-path }}/${{ matrix.bin_name }}" create-tag: @@ -302,7 +302,7 @@ jobs: # Idempotent: skips if tag already exists instead of failing. This allows re-running # workflows interrupted after tag creation. run: > - uvx --no-progress 'repomatic==6.4.0' git-tag + uvx --no-progress --from . repomatic git-tag --tag "v${{ matrix.current_version }}" --commit "${{ matrix.commit }}" --skip-existing @@ -386,7 +386,7 @@ jobs: continue-on-error: true env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' sync-dev-release --live --delete + run: uvx --no-progress --from . repomatic sync-dev-release --live --delete - name: Create GitHub release draft # Idempotent: skips if release already exists (e.g. workflow re-run). env: @@ -463,5 +463,5 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > - uvx --no-progress 'repomatic==6.4.0' sync-dev-release --live + uvx --no-progress --from . repomatic sync-dev-release --live --upload-assets release_assets diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 65874de59..08d9acf39 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -33,7 +33,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" sync-bundled-config: name: 🔄 Sync renovate.json5 @@ -76,11 +76,11 @@ jobs: id: checks env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' check-renovate --format=github --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic check-renovate --format=github --output "$GITHUB_OUTPUT" - name: Export renovate.json5 if missing if: steps.checks.outputs.renovate_config_exists == 'false' - run: uvx --no-progress 'repomatic==6.4.0' init renovate + run: uvx --no-progress --from . repomatic init renovate - name: Remove Dependabot config if present if: steps.checks.outputs.dependabot_config_path != '' @@ -108,7 +108,7 @@ jobs: - name: Validate Renovate prerequisites env: GH_TOKEN: ${{ secrets.WORKFLOW_UPDATE_GITHUB_PAT || secrets.GITHUB_TOKEN }} - run: uvx --no-progress 'repomatic==6.4.0' check-renovate + run: uvx --no-progress --from . repomatic check-renovate - uses: renovatebot/github-action@v46.1.2 with: @@ -168,10 +168,10 @@ jobs: - uses: actions/checkout@v6.0.2 - uses: astral-sh/setup-uv@v7.3.1 - name: Sync uv.lock - run: uvx --no-progress 'repomatic==6.4.0' sync-uv-lock + run: uvx --no-progress --from . repomatic sync-uv-lock - id: pr-metadata run: > - uvx --no-progress 'repomatic==6.4.0' pr-body + uvx --no-progress --from . repomatic pr-body --template sync-uv-lock --output "$GITHUB_OUTPUT" - uses: peter-evans/create-pull-request@v8.1.0 diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index aff8afaf4..eb9843e49 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -133,7 +133,7 @@ jobs: - uses: astral-sh/setup-uv@v7.3.1 - name: Run repomatic metadata id: project-metadata - run: uvx --no-progress 'repomatic==6.4.0' metadata --output "$GITHUB_OUTPUT" + run: uvx --no-progress --from . repomatic metadata --output "$GITHUB_OUTPUT" test-package-install: name: 📦 Package install diff --git a/changelog.md b/changelog.md index bf321872d..6e859fd0a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # Changelog +## [`6.4.1.dev0` (unreleased)](https://github.com/kdeldycke/repomatic/compare/v6.4.0...main) + +> [!WARNING] +> This version is **not released yet** and is under active development. + ## [`6.4.0` (2026-03-10)](https://github.com/kdeldycke/repomatic/compare/v6.3.2...v6.4.0) - Rename `optimize-images` to `format-images`. Image lossless optimization is a format operation (semantics-preserving rewrite using external tools), aligning it with the `format-*` naming convention. diff --git a/pyproject.toml b/pyproject.toml index 09a82e124..fb061f4f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "uv-build>=0.9" ] [project] # Docs: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/ name = "repomatic" -version = "6.4.0" +version = "6.4.1.dev0" description = "🏭 Automate repository maintenance, releases, and CI/CD workflows" readme = "readme.md" keywords = [ @@ -118,7 +118,7 @@ repomatic = "repomatic.__main__:main" [project.urls] "Changelog" = "https://github.com/kdeldycke/repomatic/blob/main/changelog.md" -"Download" = "https://github.com/kdeldycke/repomatic/releases/tag/v6.4.0" +"Download" = "https://github.com/kdeldycke/repomatic/releases/tag/v6.4.1.dev0" "Funding" = "https://github.com/sponsors/kdeldycke" "Homepage" = "https://github.com/kdeldycke/repomatic" "Issues" = "https://github.com/kdeldycke/repomatic/issues" @@ -219,7 +219,7 @@ run.source = [ "repomatic" ] report.precision = 2 [tool.bumpversion] -current_version = "6.4.0" +current_version = "6.4.1.dev0" allow_dirty = true ignore_missing_files = true # Parse versions with an optional .devN suffix (PEP 440). diff --git a/renovate.json5 b/renovate.json5 index 1db26253e..fe729224d 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -50,7 +50,7 @@ matchFileNames: [".github/workflows/**"], postUpgradeTasks: { commands: [ - "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress repomatic==6.4.0 update-checksums {{{packageFile}}}'", + "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress --from . repomatic update-checksums {{{packageFile}}}'", ], fileFilters: [".github/workflows/**"], executionMode: "update", diff --git a/repomatic/__init__.py b/repomatic/__init__.py index c93a0be99..e9a64fab6 100644 --- a/repomatic/__init__.py +++ b/repomatic/__init__.py @@ -17,4 +17,4 @@ from __future__ import annotations -__version__ = "6.4.0" +__version__ = "6.4.1.dev0" diff --git a/repomatic/data/renovate.json5 b/repomatic/data/renovate.json5 index a41aabd00..75bb8d97e 100644 --- a/repomatic/data/renovate.json5 +++ b/repomatic/data/renovate.json5 @@ -49,7 +49,7 @@ matchFileNames: [".github/workflows/**"], postUpgradeTasks: { commands: [ - "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress repomatic==6.4.0 update-checksums {{{packageFile}}}'", + "bash -c 'curl -fsSL https://github.com/astral-sh/uv/releases/download/0.10.7/uv-x86_64-unknown-linux-gnu.tar.gz --output /tmp/uv.tar.gz && echo 9ac6cee4e379a5abfca06e78a777b26b7ba1f81cb7935b97054d80d85ac00774 /tmp/uv.tar.gz | sha256sum --check && tar xzf /tmp/uv.tar.gz --strip-components=1 -C /tmp && /tmp/uvx --no-progress --from . repomatic update-checksums {{{packageFile}}}'", ], fileFilters: [".github/workflows/**"], executionMode: "update", diff --git a/uv.lock b/uv.lock index 6a9d10fd4..7b2d0aa30 100644 --- a/uv.lock +++ b/uv.lock @@ -3,11 +3,11 @@ revision = 3 requires-python = ">=3.10" [options] -exclude-newer = "2026-03-02T17:25:06.375499118Z" +exclude-newer = "2026-03-03T09:44:07.410116084Z" exclude-newer-span = "P1W" [options.exclude-newer-package] -repomatic = { timestamp = "2026-03-09T17:25:06.37550575Z", span = "PT0S" } +repomatic = { timestamp = "2026-03-10T09:44:07.41012495Z", span = "PT0S" } [[package]] name = "annotated-types" @@ -913,7 +913,7 @@ wheels = [ [[package]] name = "repomatic" -version = "6.4.0.dev0" +version = "6.4.1.dev0" source = { editable = "." } dependencies = [ { name = "backports-strenum", marker = "python_full_version < '3.11'" },