Skip to article frontmatterSkip to article content

8Developing Faery

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

  1. Update the version in pyproject.toml.

  2. Push the changes

  3. 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