snakemake-software-deployment-plugin-container 0.7.3__tar.gz → 0.7.4__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.
Files changed (11) hide show
  1. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/CHANGELOG.md +7 -0
  2. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/PKG-INFO +1 -1
  3. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/pyproject.toml +1 -1
  4. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/src/snakemake_software_deployment_plugin_container/__init__.py +15 -0
  5. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/ci.yml +0 -0
  6. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/conventional-prs.yml +0 -0
  7. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/.github/workflows/release-please.yml +0 -0
  8. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/.gitignore +0 -0
  9. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/LICENSE +0 -0
  10. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/README.md +0 -0
  11. {snakemake_software_deployment_plugin_container-0.7.3 → snakemake_software_deployment_plugin_container-0.7.4}/tests/test_plugin.py +0 -0
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.4](https://github.com/snakemake/snakemake-software-deployment-plugin-container/compare/v0.7.3...v0.7.4) (2026-09-10)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * handle runtime setup (for now needed by udocker) ([78cc3ac](https://github.com/snakemake/snakemake-software-deployment-plugin-container/commit/78cc3ace79c5a6305ae2676a82d46b83f30a2347))
9
+
3
10
  ## [0.7.3](https://github.com/snakemake/snakemake-software-deployment-plugin-container/compare/v0.7.2...v0.7.3) (2026-09-10)
4
11
 
5
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: snakemake-software-deployment-plugin-container
3
- Version: 0.7.3
3
+ Version: 0.7.4
4
4
  Project-URL: repository, https://github.com/snakemake/snakemake-software-deployment-plugin-container
5
5
  Project-URL: documentation, https://snakemake.github.io/snakemake-plugin-catalog/plugins/software-deployment/container.html
6
6
  Author-email: Ben Carrillo <ben.uzh@pm.me>, Johannes Köster <johannes.koester@uni-due.de>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "snakemake-software-deployment-plugin-container"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  authors = [
5
5
  { name = "Ben Carrillo", email = "ben.uzh@pm.me" },
6
6
  { name = "Johannes Köster", email = "johannes.koester@uni-due.de" }
@@ -1,3 +1,4 @@
1
+ from typing import ClassVar
1
2
  from pathlib import Path
2
3
  from abc import abstractmethod
3
4
  from snakemake_interface_software_deployment_plugins import DeployableEnvBase
@@ -114,6 +115,13 @@ class Env(DeployableEnvBase, EnvBase):
114
115
  elif self.settings.runtime == Runtime.UDOCKER:
115
116
  self.runtime_manager = RuntimeManagerUdocker(self)
116
117
 
118
+ # Handle runtime manager setup if needed.
119
+ # This is only done once per runtime manager type, not per environment.
120
+ if not self.runtime_manager.is_setup:
121
+ if self.runtime_manager.setup_cmd() is not None:
122
+ self.run_cmd(self.runtime_manager.setup_cmd(), check=True)
123
+ self.runtime_manager.is_setup = True
124
+
117
125
  # The decorator ensures that the decorated method is only called once
118
126
  # in case multiple environments of the same kind are created.
119
127
  @EnvBase.once
@@ -204,6 +212,10 @@ class Env(DeployableEnvBase, EnvBase):
204
212
  @dataclass
205
213
  class RuntimeManager:
206
214
  env: Env
215
+ is_setup: ClassVar[bool] = False
216
+
217
+ def setup_cmd(self) -> str | None:
218
+ return None
207
219
 
208
220
  def deployed_image_name(self) -> str:
209
221
  return (
@@ -324,6 +336,9 @@ class RuntimeManagerDocker(RuntimeManager):
324
336
 
325
337
 
326
338
  class RuntimeManagerUdocker(RuntimeManager):
339
+ def setup_cmd(self) -> str | None:
340
+ return "udocker install"
341
+
327
342
  def pre_subcommand_options(self) -> str:
328
343
  return "--quiet"
329
344