From 9bfeb0f9b42f95e9c5893e444b94a0bcae693d37 Mon Sep 17 00:00:00 2001 From: Andre Merzky Date: Tue, 25 Aug 2026 02:09:31 +0200 Subject: [PATCH 1/2] packaging: add conda recipe (conda-forge staged-recipes candidate) v1 recipe.yaml, noarch. Two prerequisites before submission, marked in the file: a first PyPI release (version + sha256), and rhapsody-py + radical.asyncflow published on conda-forge (staged-recipes #34581). Co-Authored-By: Claude Fable 5 --- recipe/recipe.yaml | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 recipe/recipe.yaml diff --git a/recipe/recipe.yaml b/recipe/recipe.yaml new file mode 100644 index 0000000..a890571 --- /dev/null +++ b/recipe/recipe.yaml @@ -0,0 +1,61 @@ +# conda-forge staged-recipes candidate (v1 format). +# TODO before submission: DDSim needs a first PyPI release — fill in the +# real version + sha256 of that sdist. Submission also waits for +# rhapsody-py and radical.asyncflow to be published on conda-forge +# (staged-recipes #34581). +schema_version: 1 + +context: + name: ddsim + version: "0.2.0" + +package: + name: ${{ name|lower }} + version: ${{ version }} + +source: + url: https://pypi.org/packages/source/d/ddsim/ddsim-${{ version }}.tar.gz + sha256: TODO-fill-after-first-pypi-release + +build: + number: 0 + noarch: python + script: python -m pip install . -vv --no-deps --no-build-isolation + +requirements: + host: + - python ${{ python_min }}.* + - setuptools >=61.0 + - wheel + - pip + run: + - python >=${{ python_min }} + - pyyaml + - rhapsody-py + - radical.asyncflow >=0.3.0 + +tests: + - python: + imports: + - ddsim + pip_check: true + python_version: + - ${{ python_min }}.* + - "*" + +about: + homepage: https://github.com/radical-collaboration/DeepDriveSim + summary: AI-driven adaptive molecular dynamics simulation framework + description: | + DeepDriveSim (DDSim) couples AI-driven steering with ensemble + molecular dynamics workflows, built on RHAPSODY and + RADICAL-AsyncFlow. The optional Dragon backend is installed + separately (`pip install dragonhpc`). + license: MIT + license_file: LICENSE + documentation: https://radical-collaboration.github.io/DeepDriveSim/ + repository: https://github.com/radical-collaboration/DeepDriveSim + +extra: + recipe-maintainers: + - andre-merzky From ac060537c1f8053415f1f5f643f15492d1103aaf Mon Sep 17 00:00:00 2001 From: Andre Merzky Date: Tue, 25 Aug 2026 11:36:49 +0200 Subject: [PATCH 2/2] lint: satisfy ruff's markdown code-snippet formatting Unpinned ruff in the dev extra moved forward; current ruff also formats python snippets inside markdown, which turned CI red on unchanged code. Co-Authored-By: Claude Fable 5 --- CONTRIBUTING.md | 16 ++++++---------- README.md | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07f43a5..863b277 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -202,6 +202,7 @@ To create a custom workflow, extend `DDMD_manager`: ```python from ddmd import DDMD_manager + class MyWorkflow(DDMD_manager): def __init__(self, asyncflow, **kwargs): super().__init__(asyncflow) @@ -212,20 +213,15 @@ class MyWorkflow(DDMD_manager): pass # Implement required abstract methods - def stop_simulation(self, prediction): - ... + def stop_simulation(self, prediction): ... - async def init_sim_queue(self): - ... + async def init_sim_queue(self): ... - async def check_train_data(self): - ... + async def check_train_data(self): ... - async def train_model(self): - ... + async def train_model(self): ... - async def clean_sim_data(self, sim_ind): - ... + async def clean_sim_data(self, sim_ind): ... ``` ## Questions? diff --git a/README.md b/README.md index 55087c7..1ef373c 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ class DDMdWrapperWorkflow(BaseWorkflow): asyncflow=self.asyncflow, config=replica_config_path, name=replica_id.replace("_", ""), - on_ready=lambda: self._signal_done(), # ← CM hook + on_ready=lambda: self._signal_done(), # ← CM hook policies=self.policies, engine_dragon=self.engine_dragon, )