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

Packaging for newer Python versions - proposal/offer of help #78

Closed
SamHames opened this issue Oct 27, 2022 · 3 comments · Fixed by #79
Closed

Packaging for newer Python versions - proposal/offer of help #78

SamHames opened this issue Oct 27, 2022 · 3 comments · Fixed by #79

Comments

@SamHames
Copy link
Contributor

First off - thanks for the package, it's been really great to use.

This proposal has been motivated by doing some investigations with Python 3.11 - currently installation isn't possible from the sdist on PyPI because of a change in Python internals which means the Cython generated file in the sdist doesn't work with Python 3.11.

I'd like to offer to put in some maintenance time on the packaging and distribution side of things to make this library more accessible on recent python versions.

My very rough proposal of what I could do is:

  1. Switch to using the new release amalgamations for croaring and remove the amalgamation code from this repository.
  2. Streamline setup.py and the source distribution a bit:
    • add the cython source files to the source distribution
    • update the source installation procedure to compile the generated file, unless cython is available
  3. Extend the existing CI/release actions to test and build wheels for newer Python's 1
  4. Make a new release against the latest croaring.

I should add that I think all of the above is pretty straightforward, but I don't have a lot of experience at the C/Cython layer (part of the motivation for offering to help is because I want to learn more here).

Footnotes

  1. If this all goes smoothly I'd also be happy to take a go at moving the wheel building over to cibuildwheel for a hopefully smoother and more comprehensive approach to building wheels.

@Ezibenroc
Copy link
Owner

Wow, that would be great, thanks! I completely agree that packaging is not ideal here, any help is very welcome.
Your proposal looks fine to me, I would merge that.

@Ezibenroc
Copy link
Owner

A few months ago I had some troubles building the Linux wheel (e.g. see this build). If I remember well, this was somehow due to a problem in the action python-wheels-manylinux-build. I did not manage to fix this at the time, but maybe your proposal of using cibuildwheel could help us here!

@SamHames
Copy link
Contributor Author

I've started working on this in the WIP PR - that is at least proof of concept test+build against all currently supported Python versions on Linux/Mac.

I don't understand the Windows errors at all yet, but will be coming back to this later in the week.

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

Successfully merging a pull request may close this issue.

2 participants