You'll need Rust, Python, and maturin to build the branchwater plugin, and sourmash to run to run it.
There is a list of the necessary conda packages in environment.yml
. To install them in a new conda environment, run:
mamba env create -n branchwater -f environment.yml
and then activate the conda environment:
conda activate branchwater
Install this repo in editable mode:
pip install -e .
You can now use the plugin in "developer" mode, where any changes you make to the Python source code will be reflected in the installed version. To update the installed version with changes to the Rust code, you'll need to compile the Rust code with:
maturin develop
Executing:
make test
will run the Python tests.
-
Bump version number in
Cargo.toml
and runmake
to updateCargo.lock
. Then commit and push toorigin/main
. -
Make a new release on github with a matching version tag.
-
Then pull, and:
make sdist
make upload_sdist
to create a new release on PyPI.
You can build a release wheel for your current platform with:
make wheel
and it will be placed under target/wheels/
.
Follow the install instructions for pixi. For Linux and macOS it will most likely be
curl -fsSL https://pixi.sh/install.sh | bash
Install this repo in editable mode:
pixi run develop
The development shell with all dependencies installed can be activated with
pixi shell
You can also run commands in the environment without activating it with
pixi run CMD
You can now use the plugin in "developer" mode, where any changes you make to the Python source code will be reflected in the installed version. To update the installed version with changes to the Rust code, you'll need to compile the Rust code with:
pixi run develop
Executing:
pixi run test
will run the Python tests.
-
Bump version number in
Cargo.toml
and runmake
to updateCargo.lock
. Then commit and push toorigin/main
. -
Make a new release on github with a matching version tag.
-
Then pull, and:
pixi run sdist
pixi run upload_sdist
to create a new release on PyPI.
You can build a release wheel for your current platform with:
pixi run wheel
and it will be placed under target/wheels/
.