Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add needletail #52723

Merged
merged 17 commits into from
Dec 19, 2024
Merged

Add needletail #52723

merged 17 commits into from
Dec 19, 2024

Conversation

apcamargo
Copy link
Contributor

This PR adds the needletail Python library.


Please read the guidelines for Bioconda recipes before opening a pull request (PR).

General instructions

  • If this PR adds or updates a recipe, use "Add" or "Update" appropriately as the first word in its title.
  • New recipes not directly relevant to the biological sciences need to be submitted to the conda-forge channel instead of Bioconda.
  • PRs require reviews prior to being merged. Once your PR is passing tests and ready to be merged, please issue the @BiocondaBot please add label command.
  • Please post questions on Gitter or ping @bioconda/core in a comment.

Instructions for avoiding API, ABI, and CLI breakage issues

Conda is able to record and lock (a.k.a. pin) dependency versions used at build time of other recipes.
This way, one can avoid that expectations of a downstream recipe with regards to API, ABI, or CLI are violated by later changes in the recipe.
If not already present in the meta.yaml, make sure to specify run_exports (see here for the rationale and comprehensive explanation).
Add a run_exports section like this:

build:
  run_exports:
    - ...

with ... being one of:

Case run_exports statement
semantic versioning {{ pin_subpackage("myrecipe", max_pin="x") }}
semantic versioning (0.x.x) {{ pin_subpackage("myrecipe", max_pin="x.x") }}
known breakage in minor versions {{ pin_subpackage("myrecipe", max_pin="x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
known breakage in patch versions {{ pin_subpackage("myrecipe", max_pin="x.x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
calendar versioning {{ pin_subpackage("myrecipe", max_pin=None) }}

while replacing "myrecipe" with either name if a name|lower variable is defined in your recipe or with the lowercase name of the package in quotes.

Bot commands for PR management

Please use the following BiocondaBot commands:

Everyone has access to the following BiocondaBot commands, which can be given in a comment:

@BiocondaBot please update Merge the master branch into a PR.
@BiocondaBot please add label Add the please review & merge label.
@BiocondaBot please fetch artifacts Post links to CI-built packages/containers.
You can use this to test packages locally.

Note that the @BiocondaBot please merge command is now depreciated. Please just squash and merge instead.

Also, the bot watches for comments from non-members that include @bioconda/<team> and will automatically re-post them to notify the addressed <team>.

@apcamargo
Copy link
Contributor Author

@mbhall88 sorry for tagging you here, but I know you're working on better Rust documentation for Bioconda and we still don't have good recommendations for Maturin. Do you know what could be done here? Apparently, this approach of building a wheel and then installing it doesn't support cross-compilation. However, pip is not working for this package either.

@mbhall88
Copy link
Contributor

@apcamargo I don't have any Maturin experience unfortunately. I can try and have a read/play tomorrow. Maybe we could also ask @bioconda/rust and see if anyone else in that group has Maturin experience, or can point us at a repo that uses it. I think @luizirber might have some experience with Maturin via sourmash??

Copy link
Contributor

@luizirber luizirber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We moved the sourmash recipe to the v1 format over in https://github.com/conda-forge/sourmash-minimal-feedstock/blob/5f7964f0f0a29b3bf6522a9989cd99c9b4ee3c6b/recipe/recipe.yaml, so some things will be different from here, but I think the only detail missing is cffi in the host and build sections (with comments for cross-compilation)

- python # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
- crossenv # [build_platform != target_platform]
- maturin >=1,<2 # [build_platform != target_platform]

This comment was marked as outdated.

host:
- python
- pip
- maturin >=1,<2

This comment was marked as outdated.

@luizirber
Copy link
Contributor

wait, needletail doesn't use CFFI bindings, it uses pyo3, so maturin is misconfigured...

@luizirber luizirber self-requested a review December 19, 2024 03:15
@luizirber
Copy link
Contributor

Added a patch to fix maturin config, might be good to upstream it for next release

@mbhall88
Copy link
Contributor

Amazing @luizirber. Let's see if adding in ARM builds works too 🤞

@mbhall88
Copy link
Contributor

@apcamargo I might suggest checking the artifacts to make sure it all works as you expect. When you're happy it does what you expect, feel free to merge.

@mbhall88
Copy link
Contributor

@BiocondaBot please fetch artifacts

@BiocondaBot
Copy link
Collaborator

Package(s) built are ready for inspection:

Arch Package Zip File / Repodata CI Instructions
linux-64 needletail-0.6.1-py310hc7d9715_0.tar.bz2 linux-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
linux-64 needletail-0.6.1-py311hb6b3792_0.tar.bz2 linux-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
linux-64 needletail-0.6.1-py312h6c9e832_0.tar.bz2 linux-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
linux-64 needletail-0.6.1-py39hfa26904_0.tar.bz2 linux-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
osx-64 needletail-0.6.1-py310hcf78608_0.tar.bz2 osx-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
osx-64 needletail-0.6.1-py312hcf9cdc2_0.tar.bz2 osx-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
osx-64 needletail-0.6.1-py311ha15b2a2_0.tar.bz2 osx-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
osx-64 needletail-0.6.1-py39hcfb1055_0.tar.bz2 osx-64.zip GitHub Actions
showYou may also use conda to install after downloading and extracting the zip file. conda install -c ./packages <package name>
osx-arm64 needletail-0.6.1-py310hb95d8a8_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/7a81c004-8e83-449d-aa75-998e0b8b2857/artifacts/0/tmp/artifacts/packages <package name>
osx-arm64 needletail-0.6.1-py311he6900f6_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/7a81c004-8e83-449d-aa75-998e0b8b2857/artifacts/0/tmp/artifacts/packages <package name>
osx-arm64 needletail-0.6.1-py312h2d654a9_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/7a81c004-8e83-449d-aa75-998e0b8b2857/artifacts/0/tmp/artifacts/packages <package name>
osx-arm64 needletail-0.6.1-py39h255ed63_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/7a81c004-8e83-449d-aa75-998e0b8b2857/artifacts/0/tmp/artifacts/packages <package name>
linux-aarch64 needletail-0.6.1-py310h6ad65a3_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/c7d86eff-66dd-4d9a-af7d-ef07e55f672d/artifacts/0/tmp/artifacts/packages <package name>
linux-aarch64 needletail-0.6.1-py311hb7b716b_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/c7d86eff-66dd-4d9a-af7d-ef07e55f672d/artifacts/0/tmp/artifacts/packages <package name>
linux-aarch64 needletail-0.6.1-py312h789891e_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/c7d86eff-66dd-4d9a-af7d-ef07e55f672d/artifacts/0/tmp/artifacts/packages <package name>
linux-aarch64 needletail-0.6.1-py39h1a38476_0.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/c7d86eff-66dd-4d9a-af7d-ef07e55f672d/artifacts/0/tmp/artifacts/packages <package name>

Docker image(s) built:

Package Tag CI Install with docker
needletail 0.6.1--py310hc7d9715_0 GitHub Actions
showImages are in the linux-64 zip file above.gzip -dc images/needletail---0.6.1--py310hc7d9715_0.tar.gz | docker load
needletail 0.6.1--py312h6c9e832_0 GitHub Actions
showImages are in the linux-64 zip file above.gzip -dc images/needletail---0.6.1--py312h6c9e832_0.tar.gz | docker load
needletail 0.6.1--py311hb6b3792_0 GitHub Actions
showImages are in the linux-64 zip file above.gzip -dc images/needletail---0.6.1--py311hb6b3792_0.tar.gz | docker load
needletail 0.6.1--py39hfa26904_0 GitHub Actions
showImages are in the linux-64 zip file above.gzip -dc images/needletail---0.6.1--py39hfa26904_0.tar.gz | docker load

@martin-g
Copy link
Contributor

mgrigorov in 🌐 euler-arm-22 in /tmp/needle via 🅒 test123 took 6s 
❯ tar xvf needletail-0.6.1-py310h6ad65a3_0.tar.bz2                                                                                                                                                         (test123) 
info/recipe/test.fa
info/test/test.fa
info/run_exports.json
info/recipe/test.fq
info/test/test.fq
info/hash_input.json
info/recipe/patches/01-maturin-pyo3.patch
info/index.json
info/files
info/licenses/LICENSE
info/recipe/meta.yaml.template
info/paths.json
info/recipe/meta.yaml
info/recipe/run_test.py
info/test/run_test.py
info/recipe/conda_build_config.yaml
info/about.json
info/git
info/licenses/THIRDPARTY.yml
lib/python3.10/site-packages/needletail-0.6.0.dist-info/direct_url.json
lib/python3.10/site-packages/needletail-0.6.0.dist-info/INSTALLER
lib/python3.10/site-packages/needletail-0.6.0.dist-info/WHEEL
lib/python3.10/site-packages/needletail-0.6.0.dist-info/RECORD
lib/python3.10/site-packages/needletail-0.6.0.dist-info/METADATA
lib/python3.10/site-packages/needletail-0.6.0.dist-info/REQUESTED
lib/python3.10/site-packages/needletail/__init__.py
lib/python3.10/site-packages/needletail/__pycache__/__init__.cpython-310.pyc
lib/python3.10/site-packages/needletail/needletail.cpython-310-aarch64-linux-gnu.so
lib/python3.10/site-packages/needletail-0.6.0.dist-info/licenses/LICENSE

mgrigorov in 🌐 euler-arm-22 in /tmp/needle via 🅒 test123 
❯ file lib/**/*.so*                                                                                                                                                                                        (test123) 
lib/python3.10/site-packages/needletail/needletail.cpython-310-aarch64-linux-gnu.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, not stripped

The Linux-aarch64 build looks good to me!

@mbhall88
Copy link
Contributor

I tested out the MAC ARM one and it was good too. Ima merge this. Great work team

@mbhall88 mbhall88 merged commit c779ff8 into bioconda:master Dec 19, 2024
5 checks passed
@apcamargo
Copy link
Contributor Author

This was quick! Thanks @mbhall88 @luizirber @martin-g!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants