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

Build linux wheels for typed_python #393

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open

Conversation

changhiskhan
Copy link

@changhiskhan changhiskhan commented Jul 29, 2022

Using manylinux we can build wheels across different python versions. This makes it easier to create binary distributions of typed_python so that it doesn't always need to be built from the source distro when installing.

More details are in the build_scripts/README.md attached in this PR.

I've tested this by installing the wheel into a conda environment and going through the typed_python

I haven't dug into the numpy version compat issues. @braxtonmckee would you happen to have examples I can use to try and repro any such issues? Potentially if we need an exact version match, I think we could generate the requirements file during the wheels build using the Pipfile.lock, so then setup.py can pick up the pinned requirements versions and install those exact versions.

We can do the same thing in object_database to build wheels and make the distro for both a lot simpler?

Using manylinux we can build wheels across different
python versions. This makes it easier to create binary
distributions of typed_python so that it doesn't always
need to be built from the source distro when installing.
@changhiskhan
Copy link
Author

not sure why the tests are failing -- I've not touched any of the existing code

@braxtonmckee
Copy link
Collaborator

braxtonmckee commented Jul 29, 2022 via email

@changhiskhan
Copy link
Author

Manylinux is agnostic to how you want to manage dependencies. What I've done here is that I'm using the Pipfile.lock for each python version to build to install the dependencies before building the corresponding wheel. Using pipenv these are all isolated in separate virtualenvs.

WRT object_database, we could do the same thing. And as long as we keep the typed_python versioned pinned in object_database requirements then if we installed the odb wheel it should be able to automatically grab the right wheel for typed_python if the wrong version is installed.

I wish there was an easier way to be macOS builds working properly. I don't want @dkrasner 's hair to get even crazier

@changhiskhan
Copy link
Author

The Pipfile.lock all have different numpy versions but looking at them it doesn't seem like they're the oldest available. Should be a minor change though to get it using the build requires in pyproject.toml

@changhiskhan
Copy link
Author

ok i switched to using python -m build which does respect the build dependencies specified in pyproject.toml.

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.

2 participants