Skip to content

Commit ec85f57

Browse files
authored
Merge pull request #164 from OpenBioSim/release_2026.1.0
2 parents 5436de7 + da6e839 commit ec85f57

49 files changed

Lines changed: 6735 additions & 2776 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/devel.yaml

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Release Devel
33
on:
44
workflow_dispatch:
55
push:
6-
branches: [ devel ]
6+
branches: [devel]
77

88
jobs:
99
build:
@@ -18,11 +18,13 @@ jobs:
1818
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
1919
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
2020
exclude:
21-
# Exclude all but the latest Python from all
22-
# but Linux
21+
# Exclude all but the latest Python from macOS
2322
- platform:
2423
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
25-
python-version: "3.12" # MacOS can't run 3.12 yet... We want 3.10 and 3.11
24+
python-version: "3.10"
25+
- platform:
26+
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
27+
python-version: "3.11"
2628
environment:
2729
name: somd2-build
2830
defaults:
@@ -32,30 +34,43 @@ jobs:
3234
SIRE_DONT_PHONEHOME: 1
3335
SIRE_SILENT_PHONEHOME: 1
3436
steps:
35-
- uses: conda-incubator/setup-miniconda@v3
37+
#
38+
- uses: actions/checkout@v4
39+
with:
40+
fetch-depth: 0
41+
#
42+
- name: Compute version info
43+
shell: bash
44+
run: python actions/update_recipe.py
45+
#
46+
- name: Create sdist
47+
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
48+
working-directory: ${{ github.workspace }}
49+
#
50+
- name: Install pixi
51+
uses: prefix-dev/setup-pixi@v0.9.4
3652
with:
37-
auto-update-conda: true
38-
python-version: ${{ matrix.python-version }}
39-
activate-environment: somd2_build
40-
miniforge-version: latest
41-
#
42-
- name: Clone the devel branch
43-
run: git clone -b devel https://github.com/openbiosim/somd2
44-
#
45-
- name: Setup Conda
46-
run: conda install -y -c conda-forge boa anaconda-client packaging
47-
#
48-
- name: Update Conda recipe
49-
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
50-
#
51-
- name: Prepare build location
52-
run: mkdir ${{ github.workspace }}/build
53-
#
54-
- name: Build Conda package using conda build
55-
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/somd2/recipes/somd2
56-
#
57-
- name: Upload Conda package
58-
run: python ${{ github.workspace }}/somd2/actions/upload_package.py
53+
run-install: false
54+
#
55+
- name: Install rattler-build
56+
shell: bash
57+
run: pixi global install rattler-build
58+
#
59+
- name: Write Python variant config
60+
shell: bash
61+
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
62+
#
63+
- name: Build package using rattler-build
64+
shell: bash
65+
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"
66+
#
67+
- name: Install anaconda-client
68+
shell: bash
69+
run: python -m pip install anaconda-client
70+
#
71+
- name: Upload package
72+
shell: bash
73+
run: python actions/upload_package.py
5974
env:
6075
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
6176
ANACONDA_LABEL: dev

.github/workflows/main.yaml

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@ jobs:
2020
platform:
2121
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
2222
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
23-
exclude:
24-
- platform:
25-
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
26-
python-version: "3.12" # MacOS can't run 3.12 yet...
23+
# No exclusions - release builds all combinations
2724
environment:
2825
name: somd2-build
2926
defaults:
@@ -33,30 +30,45 @@ jobs:
3330
SIRE_DONT_PHONEHOME: 1
3431
SIRE_SILENT_PHONEHOME: 1
3532
steps:
36-
- uses: conda-incubator/setup-miniconda@v3
33+
#
34+
- uses: actions/checkout@v4
3735
with:
38-
auto-update-conda: true
39-
python-version: ${{ matrix.python-version }}
40-
activate-environment: somd2_build
41-
miniforge-version: latest
42-
#
43-
- name: Clone the main branch
44-
run: git clone -b main https://github.com/openbiosim/somd2
45-
#
46-
- name: Setup Conda
47-
run: conda install -y -c conda-forge boa anaconda-client packaging
48-
#
49-
- name: Update Conda recipe
50-
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
51-
#
52-
- name: Prepare build location
53-
run: mkdir ${{ github.workspace }}/build
54-
#
55-
- name: Build Conda package using conda build
56-
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/somd2/recipes/somd2
57-
#
58-
- name: Upload Conda package
59-
run: python ${{ github.workspace }}/somd2/actions/upload_package.py
36+
ref: main
37+
fetch-depth: 0
38+
#
39+
- name: Compute version info
40+
shell: bash
41+
run: python actions/update_recipe.py
42+
#
43+
- name: Create sdist
44+
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
45+
working-directory: ${{ github.workspace }}
46+
#
47+
- name: Install pixi
48+
uses: prefix-dev/setup-pixi@v0.9.4
49+
with:
50+
run-install: false
51+
#
52+
- name: Install rattler-build
53+
shell: bash
54+
run: pixi global install rattler-build
55+
#
56+
- name: Write Python variant config
57+
shell: bash
58+
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
59+
#
60+
- name: Build package using rattler-build
61+
shell: bash
62+
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
63+
#
64+
- name: Install anaconda-client
65+
shell: bash
66+
run: python -m pip install anaconda-client
67+
if: github.event.inputs.upload_packages == 'true'
68+
#
69+
- name: Upload package
70+
shell: bash
71+
run: python actions/upload_package.py
6072
env:
6173
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
6274
ANACONDA_LABEL: main

.github/workflows/pr.yaml

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@ jobs:
1717
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
1818
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
1919
exclude:
20-
# Exclude all but the latest Python from all
21-
# but Linux
20+
# Exclude all but the latest Python from macOS
2221
- platform:
2322
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
2423
python-version: "3.10"
2524
- platform:
2625
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
27-
python-version: "3.12" # MacOS can't run 3.12 yet...
26+
python-version: "3.11"
2827
environment:
2928
name: somd2-build
3029
defaults:
@@ -33,31 +32,39 @@ jobs:
3332
env:
3433
SIRE_DONT_PHONEHOME: 1
3534
SIRE_SILENT_PHONEHOME: 1
36-
REPO: "${{ github.event.pull_request.head.repo.full_name || github.repository }}"
3735
steps:
38-
- uses: conda-incubator/setup-miniconda@v3
36+
#
37+
- uses: actions/checkout@v4
3938
with:
40-
auto-update-conda: true
41-
python-version: ${{ matrix.python-version }}
42-
activate-environment: somd2_build
43-
miniforge-version: latest
44-
#
45-
- name: Clone the feature branch
46-
run: git clone -b ${{ github.head_ref }} --single-branch https://github.com/${{ env.REPO }} somd2
47-
#
48-
- name: Setup Conda
49-
run: conda install -y -c conda-forge boa anaconda-client packaging
50-
#
51-
- name: Update Conda recipe
52-
run: python ${{ github.workspace }}/somd2/actions/update_recipe.py
53-
#
54-
- name: Prepare build location
55-
run: mkdir ${{ github.workspace }}/build
56-
#
57-
- name: Build Conda package using conda build using main channel
39+
fetch-depth: 0
40+
#
41+
- name: Compute version info
42+
shell: bash
43+
run: python actions/update_recipe.py
44+
#
45+
- name: Create sdist
46+
run: pip install build && python -m build --sdist && mv dist/*.tar.gz somd2-source.tar.gz
47+
working-directory: ${{ github.workspace }}
48+
#
49+
- name: Install pixi
50+
uses: prefix-dev/setup-pixi@v0.9.4
51+
with:
52+
run-install: false
53+
#
54+
- name: Install rattler-build
55+
shell: bash
56+
run: pixi global install rattler-build
57+
#
58+
- name: Write Python variant config
59+
shell: bash
60+
run: printf 'python:\n - "${{ matrix.python-version }}"\n' > "${{ github.workspace }}/python_variant.yaml"
61+
#
62+
- name: Build package using rattler-build (main channel)
5863
if: ${{ github.base_ref == 'main' }}
59-
run: conda build -c conda-forge -c openbiosim/label/main ${{ github.workspace }}/somd2/recipes/somd2
60-
#
61-
- name: Build Conda package using conda build using dev channel
64+
shell: bash
65+
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/main --variant-config "${{ github.workspace }}/python_variant.yaml"
66+
#
67+
- name: Build package using rattler-build (dev channel)
6268
if: ${{ github.base_ref != 'main' }}
63-
run: conda build -c conda-forge -c openbiosim/label/dev ${{ github.workspace }}/somd2/recipes/somd2
69+
shell: bash
70+
run: rattler-build build --recipe "${{ github.workspace }}/recipes/somd2" -c conda-forge -c openbiosim/label/dev --variant-config "${{ github.workspace }}/python_variant.yaml"

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ setup.err
2020
dist/
2121
build/
2222
somd2.egg-info
23-
src/somd2/_version.py
2423

2524
# Test output.
2625
output.yaml
@@ -35,5 +34,5 @@ output.yaml
3534
# VSCode config
3635
.vscode/
3736

38-
# Conda recipe (it is auto-generated)
39-
recipes/somd2/meta.yaml
37+
# Auto-generated version file
38+
src/somd2/_version.py

.img/somd2.png

40.9 KB
Loading

.pre-commit-config.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
files: ^(src|tests)/
2+
exclude: ^tests/(input|output)/
3+
4+
repos:
5+
# General file quality checks
6+
- repo: https://github.com/pre-commit/pre-commit-hooks
7+
rev: v5.0.0
8+
hooks:
9+
- id: trailing-whitespace
10+
- id: end-of-file-fixer
11+
- id: check-added-large-files
12+
args: [--maxkb=1000] # Prevent files larger than 1MB
13+
- id: check-merge-conflict
14+
15+
# Python formatting and linting
16+
- repo: https://github.com/astral-sh/ruff-pre-commit
17+
rev: v0.15.4
18+
hooks:
19+
# Run the formatter
20+
- id: ruff-format
21+
# Run the linter (optional - remove if too strict)
22+
- id: ruff
23+
args: [--fix, --exit-zero] # Auto-fix but don't block commits

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Changelog
2+
=========
3+
4+
[2026.1.0](https://github.com/openbiosim/somd2/compare/2025.1.0...2026.1.0) - Jun 2026
5+
--------------------------------------------------------------------------------------
6+
7+
* Improve constraint handling during minimisation and equilibration [#80](https://github.com/OpenBioSim/somd2/pull/80)
8+
* Add support for GCMC on the OpenCL platform [#115](https://github.com/OpenBioSim/somd2/pull/115)
9+
* Expose ring-breaking/making lambda schedules [#129](https://github.com/OpenBioSim/somd2/pull/129)
10+
* Add support for Terminal Flip Monte Carlo [#138](https://github.com/OpenBioSim/somd2/pull/138)
11+
* Add support for per-force energy decomposition [#143](https://github.com/OpenBioSim/somd2/pull/143)
12+
* Add support for long-range dispersion correction and Beutler softcore [#147](https://github.com/OpenBioSim/somd2/pull/147)
13+
* Add support for GCMC in the osmotic ensemble [#151](https://github.com/OpenBioSim/somd2/pull/151)
14+
* Improve handling of simulation restarts via a `.done` sentinel file [#153](https://github.com/OpenBioSim/somd2/pull/153)
15+
* Reduce checkpoint memory footprint by storing `NumPy` arrays in the replica exchange state pickle file [#155](https://github.com/OpenBioSim/somd2/pull/155)
16+
* Remove redundant `s3` checkpoint files [#157](https://github.com/OpenBioSim/somd2/pull/157)
17+
* Unconditionally apply AMBER water topology conversion to ensure fully rigid water constraints [#163](https://github.com/OpenBioSim/somd2/pull/163)
18+
19+
[2025.1.0](https://github.com/OpenBioSim/somd2/releases/tag/2025.1.0) - Nov 2025
20+
-------------------------------------------------------------------------------
21+
22+
* Initial public release.

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
graft tests

0 commit comments

Comments
 (0)