jeffdaily / parasail-python

Python bindings for the parasail C library.
Other
87 stars 17 forks source link

manylinux1 builds for pypi #11

Closed jeffdaily closed 4 years ago

jeffdaily commented 6 years ago

Adapt the example at https://github.com/pypa/python-manylinux-demo.

I'm thinking I would git clone the parasail C repo. Then inside docker, I would build and install libparasail.so and copy it to the correct location where setup.py will find it. I could run the bdist wheel target outside docker as usual.

jeffdaily commented 6 years ago

The C library now releases manylinux assets for releases. The manylinux branch of this repo explores using them.

cjw85 commented 4 years ago

It looks like this still isn't done, though there are wheels for macosx (travis) and win32 (appveyor). I noticed, the C library build uses the manylinux1 docker to build a sdist but not a wheel. If I were to look at adding this, I presume the build should live in the travis file in this repository?

jeffdaily commented 4 years ago

If you need this feature, and you are willing to provide it, then you have my blessing. These days, I have precious little time to maintain this repo.

For macosx, there are many different xcode/OS versions to target -- too many to build for them all. I treat the macosx build similar to the Linux builds. I expect users to build the C library from source as part of the parasail-python bdist_wheel build.

On Windows, I expect my appveyor build to provide various win 32- and 64-bit DLLs. Then the parasail-python bdist_wheel can download the DLL packages from the parasail C library github artifacts.

IIRC, the manylinux1 builds are designed to cover all Linux binary packages, suitable for pypi. I honestly can't remember why I stopped there. Perhaps I thought it was sufficient to make all users build the C library from source as part of the bdist_wheel target, since I already forced macosx users to do the same.

iiSeymour commented 4 years ago

Hey Jeff

I'd also like to see manylinux wheels available on Linux and have done quite a bit in this area. Many packages at Nanopore now dependent on this project and I'd be happy to help maintain along with @cjw85 if you're looking for help.

Regards,

Chris.

jeffdaily commented 4 years ago

Hi @iiSeymour, @cjw85,

Yes, please. My ultimate goal with this project was always to just provide a useful library of this functionality. And like I said earlier in this thread, I fully support your efforts to get a manylinux wheel. I at least have time to review and merge any PRs and tag new releases, as needed. Let me know how I can help. Thanks.

Jeff

iiSeymour commented 4 years ago

Great, this library has been very useful @jeffdaily!

I'll do a review of @cjw85 open merge request. If we can get a new tag and PyPi release after we are happy, that will be a good start.

jeffdaily commented 4 years ago

https://github.com/jeffdaily/parasail-python/tree/v1.1.20

jeffdaily commented 4 years ago

Looks like twine uploads are timing out in travis. I added my new TWINE_PASSWORD to my travis project, but I wonder if I messed that part up.

jeffdaily commented 4 years ago

@iiSeymour any idea what I might have messed up? I copy/pasted my new pypi token into my parasail-python travis project. Or should I add it to the .travis.yml file with a travis encrypt TWINE_PASSWORD="<key>" --add?

iiSeymour commented 4 years ago

I think it's just the twine username needs adding to the global variable section in the .travis.yml and Travis should pick the API key from your account for you.