From a249710c2687df0393f50686dcb786f7bda1ab0c Mon Sep 17 00:00:00 2001 From: Xuan Hu Date: Sun, 13 Jul 2025 09:50:47 +0000 Subject: [PATCH 1/3] feat(no-release): use copier manager in Renovate --- .github/workflows/renovate.yml | 4 ++-- .gitlab/workflows/renovate.yml | 4 ++-- .renovaterc.json | 43 +++++++++++----------------------- 3 files changed, 18 insertions(+), 33 deletions(-) diff --git a/.github/workflows/renovate.yml b/.github/workflows/renovate.yml index 774f0db1..7dd998b0 100644 --- a/.github/workflows/renovate.yml +++ b/.github/workflows/renovate.yml @@ -16,10 +16,10 @@ jobs: container: env: LOG_LEVEL: debug - RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^git", "^pdm", "^pip", "^copier", "^find"]' + RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^find", "^pdm"]' RENOVATE_BRANCH_PREFIX: renovate-github/ RENOVATE_ENABLED: ${{ vars.RENOVATE_ENABLED || true }} - RENOVATE_ENABLED_MANAGERS: '["pep621", "github-actions", "gitlabci", "regex", "pre-commit"]' + RENOVATE_ENABLED_MANAGERS: '["copier", "github-actions", "gitlabci", "pep621", "pre-commit", "regex"]' RENOVATE_OPTIMIZE_FOR_DISABLED: "true" RENOVATE_PLATFORM: github RENOVATE_REPOSITORIES: '["${{ github.repository }}"]' diff --git a/.gitlab/workflows/renovate.yml b/.gitlab/workflows/renovate.yml index 80c8e0a4..78bee21e 100644 --- a/.gitlab/workflows/renovate.yml +++ b/.gitlab/workflows/renovate.yml @@ -11,10 +11,10 @@ renovate: variables: GIT_STRATEGY: none LOG_LEVEL: debug - RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^git", "^pdm", "^pip", "^copier", "^find"]' + RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^find", "^pdm"]' RENOVATE_BASE_DIR: $CI_PROJECT_DIR/renovate RENOVATE_BRANCH_PREFIX: renovate-gitlab/ - RENOVATE_ENABLED_MANAGERS: '["pep621", "gitlabci", "regex", "pre-commit"]' + RENOVATE_ENABLED_MANAGERS: '["copier", "gitlabci", "pep621", "pre-commit", "regex"]' RENOVATE_ENDPOINT: $CI_API_V4_URL RENOVATE_OPTIMIZE_FOR_DISABLED: "true" RENOVATE_PLATFORM: gitlab diff --git a/.renovaterc.json b/.renovaterc.json index 9c721085..b416b092 100644 --- a/.renovaterc.json +++ b/.renovaterc.json @@ -1,6 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "constraints": { + "copier": "9.4.1", "pdm": "2.24.1", "python": "==3.12" }, @@ -60,6 +61,19 @@ "uses: pdm-project/setup-pdm[\\s\\S]+?\\sversion: (?.*)\n" ] }, + { + "customType": "regex", + "datasourceTemplate": "pypi", + "depNameTemplate": "copier", + "description": "Match copier version specified in the renovate constraints", + "fileMatch": [ + "^\\.renovaterc\\.json$", + "^template/\\.renovaterc\\.json\\.jinja$" + ], + "matchStrings": [ + "\"copier\": \"(?.*)\"" + ] + }, { "customType": "regex", "datasourceTemplate": "pypi", @@ -101,20 +115,6 @@ "--package (?.+?)@(?.+?)\\s" ], "versioningTemplate": "docker" - }, - { - "customType": "regex", - "datasourceTemplate": "git-tags", - "depNameTemplate": "https://github.com/serious-scaffold/ss-python.git", - "depTypeTemplate": "copier-template", - "description": "Match template version specified in .copier-answers.yml", - "managerFilePatterns": [ - "/^\\.copier-answers\\.yml$/" - ], - "matchStrings": [ - "_commit: (?.*?)\n" - ], - "versioningTemplate": "semver" } ], "extends": [ @@ -213,21 +213,6 @@ ] } }, - { - "commitMessageTopic": "serious-scaffold-python", - "description": "Update template with copier when a new version is released", - "matchDepTypes": [ - "copier-template" - ], - "postUpgradeTasks": { - "commands": [ - "git stash", - "pip install copier==9.6.0", - "copier update --skip-answered --defaults --vcs-ref {{{newVersion}}}" - ] - }, - "semanticCommitScope": "copier-template" - }, { "description": "Group pdm Python package and version specified in setup-pdm GitHub Action", "groupName": "pdm", From 5eb2689bc9c69813f64ca6104f16372d0ca0b210 Mon Sep 17 00:00:00 2001 From: Xuan Hu Date: Sun, 13 Jul 2025 09:52:27 +0000 Subject: [PATCH 2/3] update template --- template/.renovaterc.json.jinja | 45 +++++++------------ .../workflows/renovate.yml.jinja | 12 ++--- .../workflows/renovate.yml | 4 +- 3 files changed, 24 insertions(+), 37 deletions(-) diff --git a/template/.renovaterc.json.jinja b/template/.renovaterc.json.jinja index d2b5578c..72d2c42a 100644 --- a/template/.renovaterc.json.jinja +++ b/template/.renovaterc.json.jinja @@ -2,6 +2,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "constraints": { + "copier": "9.4.1", "pdm": "2.24.1", "python": "=={{ default_py }}" }, @@ -67,6 +68,21 @@ "uses: pdm-project/setup-pdm[\\s\\S]+?\\sversion: (?.*)\n" ] }, + { + "customType": "regex", + "datasourceTemplate": "pypi", + "depNameTemplate": "copier", + "description": "Match copier version specified in the renovate constraints", + "fileMatch": [ + "^\\.renovaterc\\.json$" +[%- if project_name == "Serious Scaffold Python" %], + "^template/\\.renovaterc\\.json\\.jinja$" +[% endif %] + ], + "matchStrings": [ + "\"copier\": \"(?.*)\"" + ] + }, { "customType": "regex", "datasourceTemplate": "pypi", @@ -112,20 +128,6 @@ "--package (?.+?)@(?.+?)\\s" ], "versioningTemplate": "docker" - }, - { - "customType": "regex", - "datasourceTemplate": "git-tags", - "depNameTemplate": "https://github.com/serious-scaffold/ss-python.git", - "depTypeTemplate": "copier-template", - "description": "Match template version specified in .copier-answers.yml", - "managerFilePatterns": [ - "/^\\.copier-answers\\.yml$/" - ], - "matchStrings": [ - "_commit: (?.*?)\n" - ], - "versioningTemplate": "semver" } ], "extends": [ @@ -228,21 +230,6 @@ ] } }, - { - "commitMessageTopic": "serious-scaffold-python", - "description": "Update template with copier when a new version is released", - "matchDepTypes": [ - "copier-template" - ], - "postUpgradeTasks": { - "commands": [ - "git stash", - "pip install copier==9.6.0", - "copier update --skip-answered --defaults --vcs-ref {{ '{{{newVersion}}}' }}" - ] - }, - "semanticCommitScope": "copier-template" - }, { "description": "Group pdm Python package and version specified in setup-pdm GitHub Action", "groupName": "pdm", diff --git a/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja b/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja index 4df9088e..bf987aaa 100644 --- a/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja +++ b/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja @@ -16,14 +16,14 @@ jobs: container: env: LOG_LEVEL: debug - RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^git", "^pdm", "^pip", "^copier", "^find"]' + RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^find", "^pdm"]' RENOVATE_BRANCH_PREFIX: renovate-github/ RENOVATE_ENABLED: {{ '${{ vars.RENOVATE_ENABLED || true }}' }} -{% if project_name == "Serious Scaffold Python" %} - RENOVATE_ENABLED_MANAGERS: '["pep621", "github-actions", "gitlabci", "regex", "pre-commit"]' -{% else %} - RENOVATE_ENABLED_MANAGERS: '["pep621", "github-actions", "regex", "pre-commit"]' -{% endif %} +[% if project_name == "Serious Scaffold Python" %] + RENOVATE_ENABLED_MANAGERS: '["copier", "github-actions", "gitlabci", "pep621", "pre-commit", "regex"]' +[% else %] + RENOVATE_ENABLED_MANAGERS: '["copier", "github-actions", "pep621", "pre-commit", "regex"]' +[% endif %] RENOVATE_OPTIMIZE_FOR_DISABLED: "true" RENOVATE_PLATFORM: github RENOVATE_REPOSITORIES: '["{{ '${{ github.repository }}' }}"]' diff --git a/template/{% if repo_platform == 'gitlab' or repo_platform == 'gitlab-self-managed' %}.gitlab{% endif %}/workflows/renovate.yml b/template/{% if repo_platform == 'gitlab' or repo_platform == 'gitlab-self-managed' %}.gitlab{% endif %}/workflows/renovate.yml index 80c8e0a4..78bee21e 100644 --- a/template/{% if repo_platform == 'gitlab' or repo_platform == 'gitlab-self-managed' %}.gitlab{% endif %}/workflows/renovate.yml +++ b/template/{% if repo_platform == 'gitlab' or repo_platform == 'gitlab-self-managed' %}.gitlab{% endif %}/workflows/renovate.yml @@ -11,10 +11,10 @@ renovate: variables: GIT_STRATEGY: none LOG_LEVEL: debug - RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^git", "^pdm", "^pip", "^copier", "^find"]' + RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^find", "^pdm"]' RENOVATE_BASE_DIR: $CI_PROJECT_DIR/renovate RENOVATE_BRANCH_PREFIX: renovate-gitlab/ - RENOVATE_ENABLED_MANAGERS: '["pep621", "gitlabci", "regex", "pre-commit"]' + RENOVATE_ENABLED_MANAGERS: '["copier", "gitlabci", "pep621", "pre-commit", "regex"]' RENOVATE_ENDPOINT: $CI_API_V4_URL RENOVATE_OPTIMIZE_FOR_DISABLED: "true" RENOVATE_PLATFORM: gitlab From d3788d355eb162545225a045a5c0e5dd63d5c64c Mon Sep 17 00:00:00 2001 From: Xuan Hu Date: Sun, 13 Jul 2025 09:58:49 +0000 Subject: [PATCH 3/3] update copier version and renovete config --- .renovaterc.json | 8 ++++---- template/.renovaterc.json.jinja | 12 ++++++------ .../workflows/renovate.yml.jinja | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.renovaterc.json b/.renovaterc.json index b416b092..aff717a2 100644 --- a/.renovaterc.json +++ b/.renovaterc.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "constraints": { - "copier": "9.4.1", + "copier": "9.8.0", "pdm": "2.24.1", "python": "==3.12" }, @@ -66,9 +66,9 @@ "datasourceTemplate": "pypi", "depNameTemplate": "copier", "description": "Match copier version specified in the renovate constraints", - "fileMatch": [ - "^\\.renovaterc\\.json$", - "^template/\\.renovaterc\\.json\\.jinja$" + "managerFilePatterns": [ + "/^\\.renovaterc\\.json$/", + "/^template/\\.renovaterc\\.json\\.jinja$/" ], "matchStrings": [ "\"copier\": \"(?.*)\"" diff --git a/template/.renovaterc.json.jinja b/template/.renovaterc.json.jinja index 72d2c42a..f7e35816 100644 --- a/template/.renovaterc.json.jinja +++ b/template/.renovaterc.json.jinja @@ -2,7 +2,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "constraints": { - "copier": "9.4.1", + "copier": "9.8.0", "pdm": "2.24.1", "python": "=={{ default_py }}" }, @@ -73,11 +73,11 @@ "datasourceTemplate": "pypi", "depNameTemplate": "copier", "description": "Match copier version specified in the renovate constraints", - "fileMatch": [ - "^\\.renovaterc\\.json$" -[%- if project_name == "Serious Scaffold Python" %], - "^template/\\.renovaterc\\.json\\.jinja$" -[% endif %] + "managerFilePatterns": [ + "/^\\.renovaterc\\.json$/" +{%- if project_name == "Serious Scaffold Python" %}, + "/^template/\\.renovaterc\\.json\\.jinja$/" +{% endif %} ], "matchStrings": [ "\"copier\": \"(?.*)\"" diff --git a/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja b/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja index bf987aaa..89b5e947 100644 --- a/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja +++ b/template/{% if repo_platform == 'github' %}.github{% endif %}/workflows/renovate.yml.jinja @@ -19,11 +19,11 @@ jobs: RENOVATE_ALLOWED_POST_UPGRADE_COMMANDS: '["^find", "^pdm"]' RENOVATE_BRANCH_PREFIX: renovate-github/ RENOVATE_ENABLED: {{ '${{ vars.RENOVATE_ENABLED || true }}' }} -[% if project_name == "Serious Scaffold Python" %] +{% if project_name == "Serious Scaffold Python" %} RENOVATE_ENABLED_MANAGERS: '["copier", "github-actions", "gitlabci", "pep621", "pre-commit", "regex"]' -[% else %] +{% else %} RENOVATE_ENABLED_MANAGERS: '["copier", "github-actions", "pep621", "pre-commit", "regex"]' -[% endif %] +{% endif %} RENOVATE_OPTIMIZE_FOR_DISABLED: "true" RENOVATE_PLATFORM: github RENOVATE_REPOSITORIES: '["{{ '${{ github.repository }}' }}"]'