Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
dc5af27
Fix tests failing due to changes in dependencies
fjclark Nov 25, 2025
3aa6b78
Trigger CI
fjclark Jan 9, 2026
2f1ad3b
Ignore CMMotionRemover when comparing number of forces
fjclark Jan 12, 2026
37804fd
Switch to pixi
fjclark Jan 12, 2026
dde1ddb
Update setup-pixi GHA runner
fjclark Jan 12, 2026
4d04944
Fix pixi set-up in CI
fjclark Jan 12, 2026
bafb0f6
Fix pixi set-up in CI (again)
fjclark Jan 12, 2026
c283049
Switch to pixi with docker
fjclark Jan 12, 2026
5121a81
Add explicit CUDA 12 env
fjclark Jan 22, 2026
ed773e2
Merge branch 'update-tests' into feature-pixi
fjclark Jan 22, 2026
de38d14
Exclude md notebook from examples test
fjclark Jan 22, 2026
cea88e9
Specify pytorch-gpu for use with CUDA envs
fjclark Jan 22, 2026
a3d1cd3
Update lockfile
fjclark Jan 22, 2026
9ac818f
Only installed required envs in CI
fjclark Jan 22, 2026
419dc3c
Fix selection of pixi envs in CI
fjclark Jan 22, 2026
29b325b
Merge branch 'main' into feature-pixi
fjclark Feb 11, 2026
ac963dd
Merge branch 'main' into feature-pixi
fjclark Feb 17, 2026
9bfdd55
Add mac platforms
fjclark Feb 17, 2026
c211ece
Add osx-64 and osx-arm64 to CI
fjclark Feb 17, 2026
e3524f3
Add seperate pre-commit workflow
fjclark Feb 17, 2026
1edcd6f
Remove reference to removed cpu env
fjclark Feb 17, 2026
7832eaf
Remove Makefile (replaced by pixi commands in pyproject.toml)
fjclark Feb 17, 2026
1c6e380
Set frozen = true in CI
fjclark Feb 17, 2026
16cd8b3
Revert "Set frozen = true in CI"
fjclark Feb 17, 2026
c20106b
Use seperate solve groups to allow cpu pytorch version in default
fjclark Feb 17, 2026
a6e77e5
Add pre-commit to start of CI
fjclark Feb 17, 2026
47cc41b
Update pre-commit
fjclark Feb 17, 2026
759ee37
Exclude offxml from end-of-file-fixer
fjclark Feb 17, 2026
51659a5
Remove pydantic 1 support
fjclark Feb 17, 2026
5d6a420
Add ambertools (temporarily)
fjclark Feb 17, 2026
e8c1b05
Update lockfile
fjclark Feb 17, 2026
557de4d
Revert "Update lockfile"
fjclark Feb 17, 2026
5c1f42d
Revert "Add ambertools (temporarily)"
fjclark Feb 17, 2026
41badd6
Revert "Remove pydantic 1 support"
fjclark Feb 17, 2026
8ad80f2
Drop osx-64 support
fjclark Feb 17, 2026
510ad14
Update lockfile
fjclark Feb 17, 2026
cfe797f
Add overall test reporter stage in CI for branch protection rule
fjclark Feb 18, 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
7 changes: 3 additions & 4 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
FROM --platform=linux/x86_64 condaforge/mambaforge:latest
FROM --platform=linux/x86_64 ghcr.io/prefix-dev/pixi:latest

RUN apt update \
&& apt install -y git make build-essentials \
&& rm -rf /var/lib/apt/lists/*
# Install git (required by setuptools_scm)
RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"build": { "dockerfile": "Dockerfile" },
"postCreateCommand": "make env"
}
"postCreateCommand": "pixi install && pixi run pre-commit install"
}
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Provide a brief description of the PR's purpose here.

## Status
- [ ] Ready to go
- [ ] Ready to go
79 changes: 53 additions & 26 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,53 +1,80 @@
name: CI

concurrency:
group: ${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push: { branches: [ "main" ] }
pull_request: { branches: [ "main" ] }

jobs:
test:

pre-commit:
runs-on: ubuntu-latest
container: condaforge/mambaforge:latest

steps:
- uses: actions/checkout@v3.3.0
- name: Checkout
uses: actions/checkout@v4

- name: Setup Conda Environment
run: |
apt update && apt install -y git make
- name: Run pre-commit
uses: pre-commit/action@v3.0.1

make env
test-matrix:
needs: pre-commit
strategy:
matrix:
include:
- os: ubuntu-latest
pixi-platform: linux-64
- os: macos-latest
pixi-platform: osx-arm64
fail-fast: false

- name: Lint
run: make lint

- name: Test
run: make test
runs-on: ${{ matrix.os }}

- name: Test Examples
run: make test-examples

- name: Build Docs
run: make docs
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Reconstruct environment with Pydantic 1.0
- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.62.2
cache: true
environments: default pydantic-1-cpu

- name: Run tests with pydantic >=2
run: |
pixi run test

- name: Run tests with pydantic <2
run: |
# TODO: Remove this once pydantic 1.0 support is dropped
# We remove absolv as femto needs pydantic >=2
mamba remove --name smee --yes "absolv" "absolv-base" "femto" "pint" --force
mamba install --name smee --yes "pydantic <2"
pixi run --environment pydantic-1-cpu test

- name: Test with Pydantic 1.0
run: make test
- name: Test examples with pydantic >=2
run: |
pixi run test-examples

- name: Build docs
run: |
pixi run docs

- name: CodeCov
uses: codecov/codecov-action@v4.1.1
with:
file: ./coverage.xml
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}

test:
needs: test-matrix
runs-on: ubuntu-latest
if: always()

steps:
- name: Check test matrix result
run: |
if [[ "${{ needs.test-matrix.result }}" != "success" ]]; then
echo "One or more test matrix jobs failed or were cancelled."
exit 1
fi
17 changes: 9 additions & 8 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,17 @@ jobs:
deploy-docs:

runs-on: ubuntu-latest
container: condaforge/mambaforge:latest

steps:
- name: Prepare container
run: |
apt update && apt install -y git make

- name: Checkout
uses: actions/checkout@v3.3.0
uses: actions/checkout@v4

- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.9.3
with:
pixi-version: v0.62.2
cache: true
environments: cpu pydantic-1-cpu

- name: Determine Version
shell: bash
Expand All @@ -42,5 +44,4 @@ jobs:
git fetch --all --prune
git pull origin gh-pages --allow-unrelated-histories

make env
make docs-deploy VERSION="$VERSION"
pixi run -e cpu mike deploy --push --update-aliases $VERSION
19 changes: 12 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@ repos:
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
exclude: ".*\\.offxml$"

- repo: local
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.15.1
hooks:
- id: ruff
name: Autoformat python code
language: system
entry: ruff
args: [check]
files: \.py$
# Run the linter.
- id: ruff-check
types_or: [python, pyi, jupyter]
args: [--fix]
files: "smee|examples"
# Run the formatter.
- id: ruff-format
types_or: [python, pyi, jupyter]
38 changes: 0 additions & 38 deletions Makefile

This file was deleted.

20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@

---

The `smee` framework aims to offer a simple API for differentiably evaluating the energy of [SMIRNOFF](https://openforcefield.github.io/standards/standards/smirnoff/)
The `smee` framework aims to offer a simple API for differentiably evaluating the energy of [SMIRNOFF](https://openforcefield.github.io/standards/standards/smirnoff/)
force fields applied to molecules using `pytorch`.

The package currently supports evaluating the energy of force fields that contain:
The package currently supports evaluating the energy of force fields that contain:

* `Bonds`, `Angles`, `ProperTorsions` and `ImproperTorsions`
* `Bonds`, `Angles`, `ProperTorsions` and `ImproperTorsions`
* `vdW`, `Electrostatics`, `ToolkitAM1BCC`, `LibraryCharges`
* `VirtualSites`

Expand All @@ -33,14 +33,26 @@ It further supports a number of functional forms included in `smirnoff-plugins`,

## Installation

This package can be installed using `conda` (or `mamba`, a faster version of `conda`):
This package can be installed using `pixi`:

```shell
pixi add smee
```

or using `conda` / `mamba`:

```shell
mamba install -c conda-forge smee
```

The example notebooks further require you install `jupyter`, `nglview`, and `smirnoff-plugins`:

```shell
pixi add jupyter nglview "smirnoff-plugins >=0.0.4"
```

or with conda/mamba:

```shell
mamba install -c conda-forge jupyter nglview "smirnoff-plugins >=0.0.4"
```
Expand Down
71 changes: 0 additions & 71 deletions devtools/envs/base.yaml

This file was deleted.

Loading