-
Notifications
You must be signed in to change notification settings - Fork 530
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
Automated Wheel Creation using Github Actions #1409
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1409 +/- ##
=======================================
Coverage 72.40% 72.40%
=======================================
Files 633 633
Lines 90228 90228
=======================================
Hits 65334 65334
Misses 24894 24894 Continue to review full report at Codecov.
|
@jsiirola @blnicho - I have some questions about the release process and how to make appropriate changes to accommodate. I will email you. Let me, however, detail other changes that need to happen (and please provide input if you have any):
|
Some thoughts:
|
|
@mrmundt: I was just looking into the Linux wheels. Is there a reason we generate |
The main difference between 1 and 2010 is what they're built on - CentOS 5 vs. CentOS 6 (PEP 571). The action we are using to make the manylinux wheels just makes all of them by default, and we can pick which ones we want to upload. Currently, EDIT: It doesn't look like manylinux2010 has actually been fully released for use, but their tracking issue for its release has indicated that it's flagged for a final state. So maybe it's ACTUALLY going to be released soon, and then we can migrate to using those ones. EDIT EDIT: Oh, actually, reading through all of the notes in that tracking issue (and there are a LOT of them), they consider it rolled out. So. Up to you if we want to use the manylinux1 or manylinux2010 wheels. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great.
python-versions: 'cp27-cp27mu cp35-cp35m cp36-cp36m cp37-cp37m cp38-cp38' | ||
build-requirements: 'cython' | ||
package-path: '' | ||
pip-wheel-args: '--no-deps' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Out of curiosity, what is the --no-deps
doing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Per pip wheel
documentation:
--no-deps
Don’t install package dependencies.
I'm not sure if that's necessary for us. Thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does that apply to setting up the build environment, or is that somehow embedded into the resulting wheel? Regardless, I think that you are correct and that it is not necessary (there are only a few Pyomo dependencies and they all install reliably).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's somehow embedded into the resulting wheel. Documentation for the manylinux action states that the default is --no-deps
(hence why I didn't change it), but I'll remove that.
(NOTE: Documentation also specifies that the linux
wheels that are created NOT be uploaded to PyPi. Not sure why the Action creator doesn't just remove them in his action, but I can add a middle step to remove all linux
files before we upload the artifacts, if you'd like.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jsiirola - Ah, I remember why I had --no-deps
now - my local testing fails because it can't find the right PyUtilib distribution (because PyUtilib 5.8.1.dev0 isn't on PyPi, doy). This isn't a problem if we do PyPi uploads first and THEN do the Pyomo wheel creation, however.
Fixes N/A
Summary/Motivation:
Cutting new releases would be made significantly better with automation. In addition, we would be able to create more than just a universal wheel - we'd be able to release cythonized wheels to improve user performance.
Changes proposed in this PR:
Legal Acknowledgement
By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution: