8.1Setup the environment¶
Local build (first run).
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # see https://rustup.rs
python3 -m venv .venv
source .venv/bin/activate
# x86 platforms may need to install https://www.nasm.us
pip install --upgrade pip
pip install maturin==1.7.4
maturin develop # or maturin develop --release to build with optimizations
Local build (subsequent runs).
source .venv/bin/activate
maturin develop # or maturin develop --release to build with optimizations
8.2Format and lint¶
cargo fmt
cargo clippy
pip install isort black pyright
isort .; black .; pyright .
8.3Test¶
pip install pytest
pytest tests
8.4Upload a new version¶
Update the version in pyproject.toml.
Push the changes
Create a new release on GitHub. GitHub actions should build wheels and push them to PyPI.
8.5Update flatbuffers definitions for AEDAT¶
After modifying any of the files in src/aedat/flatbuffers, re-generate the Rust interfaces.
(Last run with flatc version 25.1.24)
flatc --rust -o src/aedat/ src/aedat/flatbuffers/*.fbs