Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
265 commits
Select commit Hold shift + click to select a range
6407c10
Add option to disable exceptions for minimisation convergence failures.
lohedges Nov 28, 2025
5d12372
Change default for fix_perturbable_zero_sigmas. [ci skip]
lohedges Nov 28, 2025
7c9e83b
Merge pull request #94 from OpenBioSim/fix_93
lohedges Nov 28, 2025
971774f
Fix typos.
lohedges Nov 28, 2025
29eef4f
Make sure box vectors are reduced. [ci skip]
lohedges Dec 2, 2025
dd01c71
Update to new ghostly API.
lohedges Dec 2, 2025
6a72b9e
Merge pull request #97 from OpenBioSim/update_ghostly_api
lohedges Dec 2, 2025
b76519e
Add save_trajectories option to conditional.
lohedges Dec 2, 2025
b07ed49
Remove incorect configuration option.
lohedges Dec 2, 2025
cd2ff9f
Make sure trajectory chunks exist prior to trajectory reconstruction.
lohedges Dec 2, 2025
3be5d28
Typo.
lohedges Dec 2, 2025
2f0c068
Merge pull request #100 from OpenBioSim/fix_99
lohedges Dec 2, 2025
3aa0cba
Remove AmberParams properties prior to extracting end states.
lohedges Dec 2, 2025
59cb582
Merge pull request #103 from OpenBioSim/fix_102
lohedges Dec 2, 2025
37d23e6
Typo. [ci skip]
lohedges Dec 2, 2025
fe6c450
Fix typos.
lohedges Dec 10, 2025
01c78ab
Expose missing save_crash_report dynamics option.
lohedges Dec 11, 2025
8247c99
Merge pull request #105 from OpenBioSim/fix_crash_report
lohedges Dec 11, 2025
0afe158
Log REST2 scale factors and selection atoms.
lohedges Dec 11, 2025
5d236c5
Catch ghostly angle optimisation failures.
lohedges Dec 11, 2025
c2d2f82
Fix logging of perturbable atoms in REST2 selection.
lohedges Dec 11, 2025
88a2327
Merge pull request #107 from OpenBioSim/fix_rest2_logging
lohedges Dec 11, 2025
9aefda4
Update fix_perturbable_zero_sigmas default.
lohedges Dec 12, 2025
e60dd05
Divide Sire threads between number of GPU workers.
lohedges Dec 12, 2025
4b03093
Merge pull request #109 from OpenBioSim/fix_thread_limit
lohedges Dec 12, 2025
3d337c6
Update macOS environment file. [ci skip]
lohedges Dec 12, 2025
6877398
Allow use_backup option to change on restarts.
lohedges Dec 16, 2025
2009c2a
Log the initial GCMC sphere position.
lohedges Jan 7, 2026
2acbc12
Update copyright range. [ci skip]
lohedges Jan 7, 2026
e4f88d3
Log GCMC sphere centre for all replicas.
lohedges Jan 8, 2026
1e7bfb6
Fix error handling for backups and checkpoints.
lohedges Jan 8, 2026
d056307
Merge pull request #111 from OpenBioSim/feature_gcmc_position
lohedges Jan 8, 2026
76d5b99
Add lambda value to GCMC sphere centre log.
lohedges Jan 9, 2026
612edaf
Add note regarding setting nvcc for pycuda. [ci skip]
lohedges Jan 10, 2026
46faa86
Allow perturbed system option to be a Sire system and a string.
lohedges Jan 16, 2026
ff23e72
Merge pull request #113 from OpenBioSim/fix_perturbed_system
lohedges Jan 16, 2026
e3bab68
Add support for GCMC sampling on the OpenCL platform.
lohedges Jan 14, 2026
4fa3541
Update GCMC platform requirement.
lohedges Jan 15, 2026
22cee63
Merge pull request #115 from OpenBioSim/feature_opencl_gcmc
lohedges Jan 21, 2026
62399dc
Remove linux selector from loch dependency.
lohedges Jan 21, 2026
f753b3b
Use length of index list when reporting size of REST2 region.
lohedges Jan 26, 2026
0e605cf
Merge pull request #116 from OpenBioSim/fix_rest2_report
lohedges Jan 26, 2026
041bdf3
Log restarts when running replica exchange.
lohedges Jan 28, 2026
de09498
Fix variable name.
lohedges Jan 28, 2026
d2b36a0
Delete trajectory frames before streaming to file.
lohedges Jan 28, 2026
d9efdae
Delete existing trajectory frames prior to simulation.
lohedges Jan 28, 2026
9bda422
Only modify checkpoint frequency in local scope.
lohedges Jan 28, 2026
66354b8
Update checkpoint interval if frequency is adjusted.
lohedges Jan 28, 2026
bc1c2ab
Merge pull request #118 from OpenBioSim/fix_trajectory_issue
lohedges Jan 28, 2026
2f3a846
Account for shared context when estimating GPU memory footprint.
lohedges Feb 2, 2026
a062741
Log primary and marginal GPU memory cost separately.
lohedges Feb 2, 2026
410f8f7
Fixed bug in calculation of contexts per device.
lohedges Feb 3, 2026
2d43319
Get GPU device by index, not name.
lohedges Feb 3, 2026
b597404
Log ghostly and loch versions.
lohedges Feb 4, 2026
1896f34
Merge pull request #120 from OpenBioSim/feature_primary_context
lohedges Feb 4, 2026
b44c084
Fix typo.
lohedges Feb 4, 2026
d5c903c
Add GCMC ghost waters to perturbed positions array.
lohedges Feb 5, 2026
7cbae07
Make position units consistent.
lohedges Feb 5, 2026
9e83618
Don't append positions when diff is zero.
lohedges Feb 5, 2026
a0a0bec
Merge pull request #121 from OpenBioSim/fix_perturbable_system_gcmc
lohedges Feb 5, 2026
cf31cc4
Switch to pixi and rattler build.
lohedges Feb 5, 2026
ec644db
Add auto-generated version file to gitignore.
lohedges Feb 6, 2026
814cd47
Save the perturbed system to the output directory.
lohedges Feb 6, 2026
de4a6a3
Only convert if a filename has been set.
lohedges Feb 6, 2026
2ac8170
Fix install path.
lohedges Feb 9, 2026
b34748f
Remove numpy pin.
lohedges Feb 9, 2026
08f0879
Fix shell quoting.
lohedges Feb 9, 2026
749f31b
Use relative paths to avoid path mangling.
lohedges Feb 9, 2026
d375246
Add linting tools to dev environment.
lohedges Feb 11, 2026
eef3790
Add pre-commit.
lohedges Feb 11, 2026
a57d00f
Autoformat and lint with ruff.
lohedges Feb 11, 2026
71f22e2
Remove redundant sections of recipe.
lohedges Feb 11, 2026
8d28970
Update gitignore.
lohedges Feb 11, 2026
e117d0e
Add rattler-build to development environment.
lohedges Feb 11, 2026
45789e4
Use pixi install of rattler-build.
lohedges Feb 11, 2026
6b254d7
Remove redundant setup.py file.
lohedges Feb 12, 2026
47d80e4
Add YAML serialisation for custom lambda schedules and restraints.
lohedges Feb 12, 2026
5c76850
Fix handling of different perturbed_system formats.
lohedges Feb 12, 2026
d92fa7d
nvidia-ml-py is noarch.
lohedges Feb 12, 2026
2108582
Fix recipe.
lohedges Feb 12, 2026
00416d3
Skip tests on macOS.
lohedges Feb 12, 2026
f571d02
Add MANIFEST for tests files and refactor recipe.
lohedges Feb 12, 2026
cc4c0c6
Remove import tests since they don't work with conditionals.
lohedges Feb 12, 2026
48c5df9
Fix recipe conditional formatting.
lohedges Feb 12, 2026
0ad1a62
Merge pull request #123 from OpenBioSim/feature_rattler
lohedges Feb 12, 2026
5dc49bc
Update method names for clarity. [ci skip]
lohedges Feb 12, 2026
735d735
Remove black from test depdendencies. [ci skip]
lohedges Feb 13, 2026
acbe13a
Add note about OpenCL activation.
lohedges Feb 13, 2026
383bed6
Update OpenCL activation instructions. [ci skip]
lohedges Feb 15, 2026
fc46fc7
Python 3.12 macOS builds are now available. [ci skip]
lohedges Feb 17, 2026
7255e06
Ignore perturbed system config options on restart.
lohedges Feb 17, 2026
8e44677
Convert StringProperty to string.
lohedges Mar 3, 2026
aecfa95
Handle missing OpenCL ICD loader during GPU platform detection.
lohedges Mar 4, 2026
e5e6cfd
Merge pull request #125 from OpenBioSim/fix_missing_ocl_icd
lohedges Mar 4, 2026
2f2e50b
Don't return entire energy trajectory after each cycle.
lohedges Mar 4, 2026
2230dac
Update OpenCL instructions.
lohedges Mar 4, 2026
2918d7c
Update pre-commit.
lohedges Mar 5, 2026
b0165b6
Autoformat.
lohedges Mar 5, 2026
c576a12
Update to use raw NumPy float array.
lohedges Mar 5, 2026
18e5867
Fix off-by-one error.
lohedges Mar 6, 2026
8134c43
Make GCMC residue index write self-consistent.
lohedges Mar 6, 2026
a5dc8ec
Handle fractional frequencies correctly.
lohedges Mar 6, 2026
9c8b9b0
Merge branch 'fix_off_by_one' into fix_124
lohedges Mar 6, 2026
0e6a2d8
Add rest2_selection to GCMC kwargs.
lohedges Mar 6, 2026
b617e42
Merge pull request #126 from OpenBioSim/fix_124
lohedges Mar 6, 2026
e718e4e
Refactor shared options into common_kwargs dictionary.
lohedges Mar 9, 2026
9da47cb
Add logo.
lohedges Mar 9, 2026
ce6448c
Comment tweak. [ci skip]
lohedges Mar 9, 2026
0ecc721
Synchronise trajectory frames with GCMC water residue state.
lohedges Mar 10, 2026
36a4bdf
Save the OpenMM state after a GCMC move.
lohedges Mar 10, 2026
c41a125
Write GCMC residues after frame is saved.
lohedges Mar 11, 2026
e313956
Fix while loop conditional.
lohedges Mar 11, 2026
dd1eaed
Update logo with lightened text.
lohedges Mar 11, 2026
05f5306
Merge pull request #127 from OpenBioSim/fix_gcmc_sync
lohedges Mar 11, 2026
d2bf110
Remove redundant and outdated code. [ci skip]
lohedges Mar 12, 2026
f8077cd
Remove redundant comment. [ci skip]
lohedges Mar 12, 2026
7a39b32
Make repex velocity randomisation optional.
lohedges Mar 13, 2026
55f0af4
Merge pull request #128 from OpenBioSim/fix_velocity_randomisation
lohedges Mar 13, 2026
b1894c2
Add initial ring-breaking lambda schedules.
lohedges Mar 18, 2026
2548e6c
Merge pull request #129 from OpenBioSim/add_ring_break_schedule
lohedges Mar 18, 2026
1289f27
Remove no-op. [ci skip]
lohedges Mar 20, 2026
cae3bf8
Apply saved replica exchange mixing on restart to restore post-mix st…
lohedges Mar 20, 2026
86e14b0
Merge pull request #130 from OpenBioSim/fix_repex_sync
lohedges Mar 20, 2026
6f57a18
Wrap GCMC push/pop pairs in try/finally to guard against crashes.
lohedges Mar 24, 2026
dca175e
Merge pull request #131 from OpenBioSim/fix_loch_14
lohedges Mar 24, 2026
8d039b8
Normalise lambda and lambda_values as :.5f strings.
lohedges Mar 25, 2026
787dcb3
Merge pull request #132 from OpenBioSim/fix_lambda_grad_format
lohedges Mar 25, 2026
222c0b7
Initialise manager, lock, and queue lazily.
lohedges Mar 26, 2026
de402f5
Perform GCMC before dynamics so energies correspond to correct state.
lohedges Mar 27, 2026
c4c1b1a
Merge pull request #133 from OpenBioSim/fix_gcmc
lohedges Mar 27, 2026
11e20dc
Expose softcore_form option.
lohedges Mar 27, 2026
fc897fe
Merge pull request #134 from OpenBioSim/feature_softcore
lohedges Mar 27, 2026
038b550
Expose Taylor softcore options and pass through to Loch.
lohedges Mar 29, 2026
e5a3f00
Merge pull request #135 from OpenBioSim/feature_taylor
lohedges Mar 29, 2026
8f7716e
Replace original ring breaking schedule with DMR approach
akalpokas Mar 30, 2026
169bfd8
Fix missing fields
akalpokas Mar 30, 2026
8877f23
Re-add missing schedule names
akalpokas Mar 30, 2026
7f9984e
Improve memory footprint error message. [ci skip]
lohedges Mar 30, 2026
40f5aa2
Merge pull request #136 from akalpokas/feature_DMR
lohedges Mar 30, 2026
85642be
Fix missing restraints lever equation from ring_break_morph schedule
akalpokas Mar 31, 2026
778300f
Merge pull request #137 from akalpokas/fix_ring_break_morph
lohedges Mar 31, 2026
f09fb61
Add support for terminal flip MC.
lohedges Mar 31, 2026
1ac5ad0
Use encoding check for Unicode symbols.
lohedges Mar 31, 2026
ea0ba12
Optionally randomise velocities after flip.
lohedges Mar 31, 2026
5b9c319
Remove redundant section.
lohedges Mar 31, 2026
70af0fd
Avoid duplicate velocity randomisation.
lohedges Apr 1, 2026
c5839c9
Refactor into an internal _samplers sub-package.
lohedges Apr 1, 2026
0a366f2
Sample all discrete flip states, not just nearest neighbours.
lohedges Apr 1, 2026
7f3e67f
Add reference to original paper.
lohedges Apr 1, 2026
d457482
Allow functions to be used standalone.
lohedges Apr 1, 2026
d1a0e9e
Simplify logger message.
lohedges Apr 1, 2026
3745398
Fall back to hybridisation check when geometric check fails.
lohedges Apr 1, 2026
88a76f1
Use a unique TerminalFlipSampler per replica.
lohedges Apr 1, 2026
795f377
Add serialisation for sampler statistics.
lohedges Apr 1, 2026
3f281a7
Add option to limit size of ring flip region.
lohedges Apr 1, 2026
c9dd8f6
Merge pull request #138 from OpenBioSim/feature_terminal_flip
lohedges Apr 2, 2026
140d57c
Don't serialise helper attributes.
lohedges Apr 9, 2026
570429b
Fix comparison of restraints.
lohedges Apr 9, 2026
5ede7ea
Merge pull request #139 from OpenBioSim/fix_config_comparison
lohedges Apr 9, 2026
b1dc864
Add section on copying intermediate files. [ci skip]
lohedges Apr 9, 2026
e1cb792
Fix link. [ci skip]
lohedges Apr 9, 2026
f6e0d6a
Seed perturbed coords from a system clone, not raw arrays.
lohedges Apr 10, 2026
5481736
Merge pull request #140 from OpenBioSim/fix_perturbed_system
lohedges Apr 10, 2026
492b2a5
Set dynamics _pre_run_state for crash recovery from mix_states and MC…
lohedges Apr 13, 2026
5979946
Expose auto_fix_minimise dynamics run option.
lohedges Apr 13, 2026
3243d7b
Only set pre-run state when auto_fix_minimise=True.
lohedges Apr 13, 2026
727269c
Add support for post-equilibration checkpoint.
lohedges Apr 13, 2026
29a033d
Merge pull request #141 from OpenBioSim/fix_sire_419
lohedges Apr 13, 2026
306102c
Update dynamics_kwargs to use equilibration_timestep.
lohedges Apr 13, 2026
9d59148
Context reconstruction no longer needed for energy decomposition.
lohedges Mar 26, 2026
b9ad5f0
Write CSV of energy components during checkpoint.
lohedges Apr 13, 2026
8b1e152
Add option to save OpenMM system to XML file.
lohedges Apr 14, 2026
2e47223
Merge pull request #142 from OpenBioSim/feature_force_groups
lohedges Apr 14, 2026
a611911
Improve energy components debugging option.
lohedges Apr 15, 2026
8e23866
Consolidate conditional branches to remove code duplication.
lohedges Apr 15, 2026
8d142f0
Merge pull request #143 from OpenBioSim/feature_energy_components
lohedges Apr 15, 2026
b09fe7f
Fix AttributeError on repex restart by deferring terminal flip stats …
lohedges Apr 21, 2026
05bd793
Add regression test to verify HMR mass consistency for forward/revers…
lohedges Apr 21, 2026
ef75057
Use _lam_sym for test_hmr_pertfile assertion messages. [ci skip]
lohedges Apr 21, 2026
968668b
Add note regarding limitation of pertfile input. [ci skip]
lohedges Apr 22, 2026
ed82728
Ensure GCMC water count is up-to-date before resetting sampler.
lohedges Apr 22, 2026
9b176ab
Merge pull request #145 from OpenBioSim/fix_gcmc_reset
lohedges Apr 22, 2026
31495c3
Fix removal of helper attributes.
lohedges Apr 23, 2026
7779db2
Calculate number of GCMC waters while context is alive.
lohedges Apr 24, 2026
746e20f
Add unit test for connectivity reconstruction.
lohedges Apr 24, 2026
a3b1c1b
Update README.
lohedges Apr 24, 2026
9f84543
Make sure test works in both directions. [ci skip]
lohedges Apr 24, 2026
dfa5cc4
Merge pull request #146 from OpenBioSim/fix_pertfile_intrascale
lohedges Apr 24, 2026
ad9ae3f
Re-link properties.
lohedges Apr 24, 2026
c781bac
Store GCMC water count prior to any context deletion.
lohedges Apr 24, 2026
1baa28b
Pass context when computing post-equilibration GCMC water count.
lohedges Apr 24, 2026
1c9d773
Write XML at earliest opportunity.
lohedges Apr 24, 2026
61901fc
Add support for long-range LJ dispersion correction.
lohedges Apr 29, 2026
d3061d3
Warn when use_dispersion_correction=True and there is no space.
lohedges Apr 30, 2026
3c75e57
Add Beutler soft-core form for ABFE.
lohedges Apr 30, 2026
4c51884
Add warning for non-ring-breaking connectivity changes.
lohedges Apr 30, 2026
82f3b95
Remove redundant option.
lohedges Apr 30, 2026
9dad004
Add support for LRC scaling.
lohedges May 1, 2026
e4de0a9
Disable LRC for vacuum simulations.
lohedges May 5, 2026
d111e03
Add functionality for skipping/warning deprecated options.
lohedges May 5, 2026
3fecef7
Remove coulomb_power option from unit test.
lohedges May 5, 2026
5597164
Fix schedule name check.
lohedges May 5, 2026
db7bdee
Reverse LambdaSchedule when swap_end_states=True. [ref #78]
lohedges May 7, 2026
5d410f4
Let loch handle it's own schedule reversal.
lohedges May 7, 2026
efd0f47
Merge pull request #147 from OpenBioSim/feature_lrc
lohedges May 7, 2026
44bd395
Add ring-break and ring-make lever equations to ring-break schedules.
lohedges May 8, 2026
963eacb
Add ring_open/ring_close stages to ring-break schedules.
lohedges May 8, 2026
18b66e1
Try weighting ring-breaking schedule stages.
lohedges May 8, 2026
78a311d
Add unit test for ring-break/make forces.
lohedges May 12, 2026
a44f9ce
Merge pull request #148 from OpenBioSim/feature_ring_break_softcore
lohedges May 13, 2026
a98642b
Use .reverse() to avoid maintaining two schedules.
lohedges May 15, 2026
be3824a
Update ring-break schedule tests following softcore update.
lohedges May 15, 2026
7183ef9
Update schedule and tests for decoupled ring-break softcore.
lohedges May 15, 2026
765a80a
Add new coul_kappa lever to tests.
lohedges May 15, 2026
2f0c64a
Merge pull request #149 from OpenBioSim/feature_symmetrise_ring_break
lohedges May 15, 2026
8e48925
Add back missing force contribution test.
lohedges May 18, 2026
5dfbc1c
Fix make_compatible dropping unique non-ghost terms for ring-breaking…
lohedges May 18, 2026
de7a91c
Merge pull request #150 from OpenBioSim/fix_somd1_compatibility
lohedges May 18, 2026
14e522f
Make filelock dependency explicit. [ci skip]
lohedges May 25, 2026
90aee7c
Add support for GCMC in osmotic ensemble.
lohedges May 26, 2026
5729ee9
Merge pull request #151 from OpenBioSim/feature_osmotic_gcmc
lohedges Jun 15, 2026
e96316a
Handle restarts from crashes during final checkpoint.
lohedges Jun 15, 2026
e9f1cc3
Remove redundant old_states attribute.
lohedges Jun 15, 2026
7e5b1b6
Serialise OpenMM state as NumPy arrays, not XML.
lohedges Jun 15, 2026
533237b
Merge pull request #153 from OpenBioSim/fix_152
lohedges Jun 15, 2026
eecea10
Merge pull request #155 from OpenBioSim/fix_154
lohedges Jun 15, 2026
2a78970
Remove per-replica stream files from repex restarts.
lohedges Jun 15, 2026
5187440
Report GCMC centre correctly on restart & don't pre-equilibrate on re…
lohedges Jun 16, 2026
cc4cb4f
Time is already a Sire GeneralUnit.
lohedges Jun 16, 2026
8dfae40
Set the system time on restart.
lohedges Jun 16, 2026
b21b565
Remove redundant time offset.
lohedges Jun 16, 2026
519ce92
Only log for legacy restart path.
lohedges Jun 16, 2026
73a9c33
Merge pull request #157 from OpenBioSim/fix_156
lohedges Jun 16, 2026
caf297d
Switch to reversible three-stage ring-breaking schedule.
lohedges Jun 15, 2026
a74fd2e
Merge pull request #158 from OpenBioSim/fix_ring_break_schedule
lohedges Jun 16, 2026
cb2761c
Raise exception when h_mass_factor limit is exceeded.
lohedges Jun 16, 2026
a6ceed9
Update docstring.
lohedges Jun 16, 2026
433c382
Adjust h_mass_factor limit.
lohedges Jun 16, 2026
64ebaff
Defer output directory/logger setup from Config to Runner init.
lohedges Jun 19, 2026
b1f141c
Improve dependency version reporting.
lohedges Jun 19, 2026
6904902
Add support for terminal flip MC during ring-break perturbations.
lohedges Jun 23, 2026
57267f9
Merge pull request #159 from OpenBioSim/feature_ring_break_terminal_flip
lohedges Jun 23, 2026
2dca311
Add option to control epsilon scaling for Beutler soft-core.
lohedges Jun 23, 2026
fdad810
Merge pull request #160 from OpenBioSim/fix_alchemical_epsilon
lohedges Jun 23, 2026
892a181
Apply setAmberWater unconditionally to ensure fully rigid water const…
lohedges Jun 26, 2026
361128e
Merge pull request #163 from OpenBioSim/fix_water_topology
lohedges Jun 26, 2026
e5fee26
Pin ring-break/make alpha=1, kappa=0 in potential_swap as explicit co…
lohedges Jun 29, 2026
2b2a9d4
Merge branch 'main' into release_2026.1.0
lohedges Jun 29, 2026
095a396
Add BioSimSpace compatibility pin.
lohedges Jun 29, 2026
da6e839
Add CHANGELOG file.
lohedges Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 42 additions & 27 deletions .github/workflows/devel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Release Devel
on:
workflow_dispatch:
push:
branches: [ devel ]
branches: [devel]

jobs:
build:
Expand All @@ -18,11 +18,13 @@ jobs:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
# Exclude all but the latest Python from all
# but Linux
# Exclude all but the latest Python from macOS
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet... We want 3.10 and 3.11
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.11"
environment:
name: somd2-build
defaults:
Expand All @@ -32,30 +34,43 @@ jobs:
SIRE_DONT_PHONEHOME: 1
SIRE_SILENT_PHONEHOME: 1
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: somd2_build
miniforge-version: latest
#
- name: Clone the devel branch
run: git clone -b devel https://github.com/openbiosim/somd2
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/somd2/recipes/somd2
#
- name: Upload Conda package
run: python ${{ github.workspace }}/somd2/actions/upload_package.py
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Install anaconda-client
shell: bash
run: python -m pip install anaconda-client
#
- name: Upload package
shell: bash
run: python actions/upload_package.py
env:
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
ANACONDA_LABEL: dev
66 changes: 39 additions & 27 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ jobs:
platform:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet...
# No exclusions - release builds all combinations
environment:
name: somd2-build
defaults:
Expand All @@ -33,30 +30,45 @@ jobs:
SIRE_DONT_PHONEHOME: 1
SIRE_SILENT_PHONEHOME: 1
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: somd2_build
miniforge-version: latest
#
- name: Clone the main branch
run: git clone -b main https://github.com/openbiosim/somd2
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/somd2/recipes/somd2
#
- name: Upload Conda package
run: python ${{ github.workspace }}/somd2/actions/upload_package.py
ref: main
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Install anaconda-client
shell: bash
run: python -m pip install anaconda-client
if: github.event.inputs.upload_packages == 'true'
#
- name: Upload package
shell: bash
run: python actions/upload_package.py
env:
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
ANACONDA_LABEL: main
Expand Down
61 changes: 34 additions & 27 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@ jobs:
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
# Exclude all but the latest Python from all
# but Linux
# Exclude all but the latest Python from macOS
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet...
python-version: "3.11"
environment:
name: somd2-build
defaults:
Expand All @@ -33,31 +32,39 @@ jobs:
env:
SIRE_DONT_PHONEHOME: 1
SIRE_SILENT_PHONEHOME: 1
REPO: "${{ github.event.pull_request.head.repo.full_name || github.repository }}"
steps:
- uses: conda-incubator/setup-miniconda@v3
#
- uses: actions/checkout@v4
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: somd2_build
miniforge-version: latest
#
- name: Clone the feature branch
run: git clone -b ${{ github.head_ref }} --single-branch https://github.com/${{ env.REPO }} somd2
#
- name: Setup Conda
run: conda install -y -c conda-forge boa anaconda-client packaging
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
#
- name: Prepare build location
run: mkdir ${{ github.workspace }}/build
#
- name: Build Conda package using conda build using main channel
fetch-depth: 0
#
- name: Compute version info
shell: bash
run: python actions/update_recipe.py
#
- name: Create sdist
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
working-directory: ${{ github.workspace }}
#
- name: Install pixi
uses: prefix-dev/setup-pixi@v0.9.4
with:
run-install: false
#
- name: Install rattler-build
shell: bash
run: pixi global install rattler-build
#
- name: Write Python variant config
shell: bash
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build (main channel)
if: ${{ github.base_ref == 'main' }}
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/somd2/recipes/somd2
#
- name: Build Conda package using conda build using dev channel
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
#
- name: Build package using rattler-build (dev channel)
if: ${{ github.base_ref != 'main' }}
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/somd2/recipes/somd2
shell: bash
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"
5 changes: 2 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ setup.err
dist/
build/
somd2.egg-info
src/somd2/_version.py

# Test output.
output.yaml
Expand All @@ -35,5 +34,5 @@ output.yaml
# VSCode config
.vscode/

# Conda recipe (it is auto-generated)
recipes/somd2/meta.yaml
# Auto-generated version file
src/somd2/_version.py
Binary file added .img/somd2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
files: ^(src|tests)/
exclude: ^tests/(input|output)/

repos:
# General file quality checks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
args: [--maxkb=1000] # Prevent files larger than 1MB
- id: check-merge-conflict

# Python formatting and linting
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.4
hooks:
# Run the formatter
- id: ruff-format
# Run the linter (optional - remove if too strict)
- id: ruff
args: [--fix, --exit-zero] # Auto-fix but don't block commits
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Changelog
=========

[2026.1.0](https://github.com/openbiosim/somd2/compare/2025.1.0...2026.1.0) - Jun 2026
--------------------------------------------------------------------------------------

* Improve constraint handling during minimisation and equilibration [#80](https://github.com/OpenBioSim/somd2/pull/80)
* Add support for GCMC on the OpenCL platform [#115](https://github.com/OpenBioSim/somd2/pull/115)
* Expose ring-breaking/making lambda schedules [#129](https://github.com/OpenBioSim/somd2/pull/129)
* Add support for Terminal Flip Monte Carlo [#138](https://github.com/OpenBioSim/somd2/pull/138)
* Add support for per-force energy decomposition [#143](https://github.com/OpenBioSim/somd2/pull/143)
* Add support for long-range dispersion correction and Beutler softcore [#147](https://github.com/OpenBioSim/somd2/pull/147)
* Add support for GCMC in the osmotic ensemble [#151](https://github.com/OpenBioSim/somd2/pull/151)
* Improve handling of simulation restarts via a `.done` sentinel file [#153](https://github.com/OpenBioSim/somd2/pull/153)
* Reduce checkpoint memory footprint by storing `NumPy` arrays in the replica exchange state pickle file [#155](https://github.com/OpenBioSim/somd2/pull/155)
* Remove redundant `s3` checkpoint files [#157](https://github.com/OpenBioSim/somd2/pull/157)
* Unconditionally apply AMBER water topology conversion to ensure fully rigid water constraints [#163](https://github.com/OpenBioSim/somd2/pull/163)

[2025.1.0](https://github.com/OpenBioSim/somd2/releases/tag/2025.1.0) - Nov 2025
-------------------------------------------------------------------------------

* Initial public release.
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
graft tests
Loading
Loading