onecodex / finch-rs

A genomic minhashing implementation in Rust
https://www.onecodex.com
MIT License
92 stars 8 forks source link

Build python library/wheels #39

Closed bovee closed 4 years ago

bovee commented 4 years ago

This probably requires more testing and some API cleanup, but it would be nice to be able to install Finch via pip (without e.g. having to pre-build a wheel and save it in your repo). We're doing a full-scale version of this with an upload to PyPI in the onecodex/taxonomy repo, but it's probably sufficient to just save pre-built wheels somewhere for Finch (since there's already a naming conflict on PyPI).

bovee commented 4 years ago

The build/install process is now finished for development (and documented in the README), but the building-wheels-for-PyPI process is kind of a pain because the name finch is already reserved on PyPI. To build wheels for distribution, I had to temporarily change the Cargo.toml, e.g.: [package] ... name = "finch-sketch" and then add [lib] ... name = "finch" (I pushed a commit to keep this second part).

Then, to build e.g. an older Mac OS version: maturin build --cargo-extra-args="--features=python" --release --strip -i ~/.pyenv/versions/3.6.8/bin/python and the linux versions (as documented): docker run --rm -v $(pwd):/io konstin2/maturin:master build --cargo-extra-args="--features=python" --release --strip and pushed to PyPI with twine upload ./target/wheels/*