Skip to content

TheochemUI/eOn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,224 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

About

A modern, elegant approach to working with eOn.

Build

Pixi

We provide a pixi environment for reproducible builds:

pixi install

Then build and install:

pixi run bash -c "meson setup bbdir \
  --prefix=$CONDA_PREFIX --libdir=lib \
  --buildtype release --wipe 2>/dev/null \
  || meson setup bbdir --prefix=$CONDA_PREFIX \
  --libdir=lib --buildtype release"
pixi run meson install -C bbdir

The server is accessed through python -m eon.server. The eonclient binary is automatically made available in the activated environment.

Running Tests

Meson

This is the preferred method.

cd client
# in pixi, add --prefix=$CONDA_PREFIX --libdir=lib
meson setup bbdir --buildtype=debug -Dbuild_tests=true
meson test -C bbdir

Python (ASV Benchmarks)

Performance benchmarks use ASV with results posted on PRs via asv-perch:

# Validate benchmarks
pixi run bash -c "pip install asv && asv check"

# Quick local run
pixi run bash -c "asv machine --yes && \
  asv run -E 'existing:$(which python)' --quick"

Contributing

Run pre-commit before submitting pull requests:

uvx prek run --all-files

For best results, install the git hook:

uvx prek install

Testing

We have both Catch2 unit tests, and also ApprovalTests. For adding new approval tests, first build them with meson compile, run them to approve, and then re-run to make sure things pass with meson test.

License

BSD-3 clause.