From 02c4b8ba8b577a7ff09ceffae295464fe40ea2f3 Mon Sep 17 00:00:00 2001 From: fgvieira <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 12:53:46 +0100 Subject: [PATCH 1/9] Switch reretry with tenacity --- pyproject.toml | 2 +- snakedeploy/prs.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a693cbd..b15d4ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ dependencies = [ "pygithub>=2.6.1", "pyyaml>=6.0.2", "requests>=2.32.4", - "reretry>=0.11.8", + "tenacity>=9.1.2", "toml>=0.10.2", ] diff --git a/snakedeploy/prs.py b/snakedeploy/prs.py index c7c029e..b1ac4ef 100644 --- a/snakedeploy/prs.py +++ b/snakedeploy/prs.py @@ -2,7 +2,7 @@ import os import re from typing import Optional -from reretry import retry +from tenacity import retry from urllib3.util.retry import Retry import github From 512b9004cc8c309c60e65c0fde8718b52d10da04 Mon Sep 17 00:00:00 2001 From: fgvieira <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 12:55:17 +0100 Subject: [PATCH 2/9] Clean up --- snakedeploy/prs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/snakedeploy/prs.py b/snakedeploy/prs.py index b1ac4ef..60a4ec7 100644 --- a/snakedeploy/prs.py +++ b/snakedeploy/prs.py @@ -5,7 +5,6 @@ from tenacity import retry from urllib3.util.retry import Retry -import github from github import Github, GithubException from snakedeploy.exceptions import UserError @@ -83,7 +82,7 @@ def create(self): try: # try to get sha if file exists sha = self.repo.get_contents(file.path, self.branch).sha - except github.GithubException.UnknownObjectException as e: + except GithubException.UnknownObjectException as e: if e.status != 404: raise e elif file.is_updated: From f5e99cd6664d9865f98fd6aa7f611fca02d2cb98 Mon Sep 17 00:00:00 2001 From: fgvieira <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:53:49 +0100 Subject: [PATCH 3/9] Fix imports --- snakedeploy/prs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snakedeploy/prs.py b/snakedeploy/prs.py index 60a4ec7..6c456d3 100644 --- a/snakedeploy/prs.py +++ b/snakedeploy/prs.py @@ -2,7 +2,7 @@ import os import re from typing import Optional -from tenacity import retry +from tenacity import retry,, stop_after_attempt, wait_exponential from urllib3.util.retry import Retry from github import Github, GithubException @@ -56,7 +56,7 @@ def __init__( def add_file(self, filepath, content, is_updated, msg): self.files.append(File(str(filepath), content, is_updated, msg)) - @retry(tries=2, delay=60) + @retry(stop=stop_after_attempt(2), wait=wait_exponential(multiplier=2, min=60)) def create(self): if not self.files: logger.info("No files to commit.") From d92cdf9461e9ce9531efaad2621623df1c121771 Mon Sep 17 00:00:00 2001 From: "Filipe G. Vieira" <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:03:55 +0100 Subject: [PATCH 4/9] Fix typo Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- snakedeploy/prs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakedeploy/prs.py b/snakedeploy/prs.py index 6c456d3..acb77a9 100644 --- a/snakedeploy/prs.py +++ b/snakedeploy/prs.py @@ -2,7 +2,7 @@ import os import re from typing import Optional -from tenacity import retry,, stop_after_attempt, wait_exponential +from tenacity import retry, stop_after_attempt, wait_exponential from urllib3.util.retry import Retry from github import Github, GithubException From 809e31bfabe1120dcad1e4b1fc51f357bd8bc4c9 Mon Sep 17 00:00:00 2001 From: fgvieira <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:35:04 +0100 Subject: [PATCH 5/9] Add files to PR --- snakedeploy/snakemake_wrappers.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/snakedeploy/snakemake_wrappers.py b/snakedeploy/snakemake_wrappers.py index d2cff6e..84429a3 100644 --- a/snakedeploy/snakemake_wrappers.py +++ b/snakedeploy/snakemake_wrappers.py @@ -188,6 +188,13 @@ def update_spec(matchobj): if create_prs: assert pr is not None + pr.add_file( + snakefile, + content, + is_updated=True, + msg=f"perf: update {snakefile}.", + ) + pr.create() if create_prs and not per_snakefile_prs: From 0d5dd5628a3e057b0139e4144f4fc5538859f110 Mon Sep 17 00:00:00 2001 From: fgvieira <1151762+fgvieira@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:36:45 +0100 Subject: [PATCH 6/9] Fix typo --- snakedeploy/snakemake_wrappers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakedeploy/snakemake_wrappers.py b/snakedeploy/snakemake_wrappers.py index 84429a3..589e790 100644 --- a/snakedeploy/snakemake_wrappers.py +++ b/snakedeploy/snakemake_wrappers.py @@ -190,7 +190,7 @@ def update_spec(matchobj): assert pr is not None pr.add_file( snakefile, - content, + snakefile_content, is_updated=True, msg=f"perf: update {snakefile}.", ) From 2697ec2f8c399f69f7e0ba2703beda9c043cc118 Mon Sep 17 00:00:00 2001 From: "Filipe G. Vieira" <1151762+fgvieira@users.noreply.github.com> Date: Thu, 19 Mar 2026 09:32:22 +0100 Subject: [PATCH 7/9] Add missing type --- snakedeploy/templates/plugins/scheduler-plugins/init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakedeploy/templates/plugins/scheduler-plugins/init.py b/snakedeploy/templates/plugins/scheduler-plugins/init.py index 8aadbb0..74bd90e 100644 --- a/snakedeploy/templates/plugins/scheduler-plugins/init.py +++ b/snakedeploy/templates/plugins/scheduler-plugins/init.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Mapping, Optional, Sequence, Union +from typing import Dict, Mapping, Optional, Sequence, Union from snakemake_interface_scheduler_plugins.settings import SchedulerSettingsBase from snakemake_interface_scheduler_plugins.base import SchedulerBase From 277d9b079ca842dd9f2dbf82ad5152422fbf035e Mon Sep 17 00:00:00 2001 From: "Filipe G. Vieira" <1151762+fgvieira@users.noreply.github.com> Date: Thu, 19 Mar 2026 12:32:27 +0100 Subject: [PATCH 8/9] Fix CI --- snakedeploy/templates/plugins/release_please.yml.j2 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/snakedeploy/templates/plugins/release_please.yml.j2 b/snakedeploy/templates/plugins/release_please.yml.j2 index 2de80ae..8d1f36f 100644 --- a/snakedeploy/templates/plugins/release_please.yml.j2 +++ b/snakedeploy/templates/plugins/release_please.yml.j2 @@ -5,9 +5,6 @@ on: name: release-please -env: - PYTHON_VERSION: 3.11 - jobs: release-please: runs-on: ubuntu-latest @@ -32,8 +29,8 @@ jobs: - name: Setup pixi uses: prefix-dev/setup-pixi@v0 with: - cache: true - python-version: {{ "${{ env.PYTHON_VERSION }}" }} + cache: false + locked: false - name: Build source and wheel distribution + check build run: | From 642fdcd09a3909f1c6cb72af8f453e3007376593 Mon Sep 17 00:00:00 2001 From: "Filipe G. Vieira" <1151762+fgvieira@users.noreply.github.com> Date: Fri, 20 Mar 2026 09:21:27 +0100 Subject: [PATCH 9/9] Update init.py --- snakedeploy/templates/plugins/scheduler-plugins/init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snakedeploy/templates/plugins/scheduler-plugins/init.py b/snakedeploy/templates/plugins/scheduler-plugins/init.py index 74bd90e..8aadbb0 100644 --- a/snakedeploy/templates/plugins/scheduler-plugins/init.py +++ b/snakedeploy/templates/plugins/scheduler-plugins/init.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Dict, Mapping, Optional, Sequence, Union +from typing import Mapping, Optional, Sequence, Union from snakemake_interface_scheduler_plugins.settings import SchedulerSettingsBase from snakemake_interface_scheduler_plugins.base import SchedulerBase