From 7a3acf917df7cf63df8ca9279369c467b5c9d07e Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 09:57:30 +0100 Subject: [PATCH 1/6] Try pinning to a recent openff-interchange-base. --- pixi.toml | 2 +- recipes/biosimspace/recipe.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pixi.toml b/pixi.toml index 4a84418b..fbb98bb3 100644 --- a/pixi.toml +++ b/pixi.toml @@ -13,7 +13,7 @@ loguru = "*" lomap2 = "*" networkx = "*" nglview = "*" -openff-interchange-base = "*" +openff-interchange-base = ">=0.5.0" openff-toolkit-base = "*" parmed = "*" pyarrow = "*" diff --git a/recipes/biosimspace/recipe.yaml b/recipes/biosimspace/recipe.yaml index 11ae465d..62383baf 100644 --- a/recipes/biosimspace/recipe.yaml +++ b/recipes/biosimspace/recipe.yaml @@ -27,7 +27,7 @@ requirements: - lomap2 - networkx - nglview - - openff-interchange-base + - openff-interchange-base >=0.5.0 - openff-toolkit-base - parmed - pyarrow From f4804c06991eb64d7a3d7d363ffcfe92ee046518 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 12:03:58 +0100 Subject: [PATCH 2/6] Use pre-parameterised inputs to avoid SQM issue. --- tests/Align/test_align.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/tests/Align/test_align.py b/tests/Align/test_align.py index 16592d53..763e337f 100644 --- a/tests/Align/test_align.py +++ b/tests/Align/test_align.py @@ -946,14 +946,6 @@ def test_ring_breaking_intrascale(): assert len(omm_nopatch.changed_exceptions()) == len(ref_exceptions) -@pytest.mark.skipif( - not has_antechamber or not has_tleap, - reason="Requires antechamber and tLEaP to be installed.", -) -@pytest.mark.skipif( - not has_openff, - reason="Requires OpenFF to be installed.", -) def test_ring_breaking_intrascale_m338(): """ Test that ring-breaking merges produce correct intrascale matrices for a @@ -1008,12 +1000,8 @@ def test_ring_breaking_intrascale_m338(): 38: 36, } - mol0 = BSS.Parameters.openff_unconstrained_2_2_1( - BSS.IO.readMolecules(f"{url}/int1.sdf")[0] - ).getMolecule() - mol1 = BSS.Parameters.openff_unconstrained_2_2_1( - BSS.IO.readMolecules(f"{url}/m338.sdf")[0] - ).getMolecule() + mol0 = BSS.IO.readMolecules([f"{url}/int1.prm7", f"{url}/int1.rst7"])[0] + mol1 = BSS.IO.readMolecules([f"{url}/m338.prm7", f"{url}/m338.rst7"])[0] mol0_aligned = BSS.Align.rmsdAlign(mol0, mol1, mapping) merged = BSS.Align.merge( @@ -1210,7 +1198,10 @@ def test_ring_breaking_cross_bond_cleanup(): for p in sire_mol.property(f"dihedral{suffix}").potentials(): j = mol_info.atom_idx(p.atom1()).value() k = mol_info.atom_idx(p.atom2()).value() - assert (min(j, k), max(j, k)) not in changing, ( + assert ( + min(j, k), + max(j, k), + ) not in changing, ( f"dihedral{suffix} central bond ({j},{k}) spans absent bond" ) From c0193edb4f0bde4315739dd618656aa8d075baed Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 12:07:48 +0100 Subject: [PATCH 3/6] Conditionally pin for Python 3.11+. --- recipes/biosimspace/recipe.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/biosimspace/recipe.yaml b/recipes/biosimspace/recipe.yaml index 62383baf..8cb2063b 100644 --- a/recipes/biosimspace/recipe.yaml +++ b/recipes/biosimspace/recipe.yaml @@ -27,7 +27,11 @@ requirements: - lomap2 - networkx - nglview - - openff-interchange-base >=0.5.0 + - if: match(python, ">=3.11") + then: + - openff-interchange-base >=0.5.0 + else: + - openff-interchange-base - openff-toolkit-base - parmed - pyarrow From 90a479edd796ca01b583e828359e6ae42ee77b0f Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 12:38:56 +0100 Subject: [PATCH 4/6] OpenFF requires setuptools for Python 3.10. --- recipes/biosimspace/recipe.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes/biosimspace/recipe.yaml b/recipes/biosimspace/recipe.yaml index 8cb2063b..3c5474ad 100644 --- a/recipes/biosimspace/recipe.yaml +++ b/recipes/biosimspace/recipe.yaml @@ -32,6 +32,7 @@ requirements: - openff-interchange-base >=0.5.0 else: - openff-interchange-base + - setuptools - openff-toolkit-base - parmed - pyarrow @@ -65,6 +66,7 @@ tests: requirements: run: - pytest + - setuptools - if: linux and x86_64 then: - ambertools From dde861cd1c73a68e306c3b56bac56e444bf5fa83 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 14:06:13 +0100 Subject: [PATCH 5/6] Add guard. --- tests/Align/test_align.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Align/test_align.py b/tests/Align/test_align.py index 763e337f..23edc071 100644 --- a/tests/Align/test_align.py +++ b/tests/Align/test_align.py @@ -829,6 +829,7 @@ def test_ion_merge(system): ), ], ) +@pytest.mark.skipif(has_openff is False, reason="Requires OpenFF to be installed.") def test_ring_opening_and_size_change(ligands, mapping): # These perturbations involve ring formation (acyclic atoms in mol0 become # ring members in mol1) combined with ring size changes in the existing From 10e08353dedbe3a1633be051eb50bd0487d717b7 Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Fri, 26 Jun 2026 14:06:57 +0100 Subject: [PATCH 6/6] Pin setuptools to <82. --- recipes/biosimspace/recipe.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/biosimspace/recipe.yaml b/recipes/biosimspace/recipe.yaml index 3c5474ad..95ea83ca 100644 --- a/recipes/biosimspace/recipe.yaml +++ b/recipes/biosimspace/recipe.yaml @@ -32,7 +32,9 @@ requirements: - openff-interchange-base >=0.5.0 else: - openff-interchange-base - - setuptools + - if: match(python, "<3.11") + then: + - setuptools <82 - openff-toolkit-base - parmed - pyarrow @@ -66,7 +68,9 @@ tests: requirements: run: - pytest - - setuptools + - if: match(python, "<3.11") + then: + - setuptools <82 - if: linux and x86_64 then: - ambertools