Closed JoeZiminski closed 12 months ago
Thank you so much, this looks great!
Question... I don't see anything here about the fix you proposed in https://github.com/flatironinstitute/mountainsort5/issues/6 to get this to build on mac...
No problem! I think once the generated wheels are uploaded to pypi, if a wheel exists for the OS then that will be automatically downloaded rather than the having to build the package from the tar source file. So in the case of that issue (presuming all has worked correctly) it should not be necessary to build from source at all. Or, if their macOS version is not working with the available wheels we can re-configure cibuildwheel
to cover that case too.
Currently (I am not so familiar with this) I believe the wheels have to be generated by the CI then manually added to the pypi page like this.
However, maybe it is easier to create a deploy.yml similar to mountainsort's that will test and build the package, as well as building and depliying the wheels to pypi automatically; happy to make a PR on this!
However, maybe it is easier to create a deploy.yml similar to mountainsort's that will test and build the package, as well as building and depliying the wheels to pypi automatically; happy to make a PR on this!
If you are willing to do it, that would be awesome!
Hi @magland sorry for the delay! am happy to will make an issue and assign to myself
@JoeZiminski should I go ahead and merge this PR?
Hi @magland, this PR adds CI for
cibuildwheels
which is a nice tool that automates building many wheels cross-platform using CI. These can then be downloaded either from the Actions page Summary (at the bottom) once the workflow has run, or this could be configured to run and automatically push to pypi on new version release.Currently this runs
on: [push, pull_request]
but maybe it would be better to either run with a commit prompt, or on new version release and deploy to pypi.A summary of the changes:
build_wheels.yaml
which will automate the wheel building on CI.isosplit6
runs, to check wheels have built properly. This required addingtests/
directory at top level, removingtest*
from the.gitignore
and adding a couple of optional[dev]
dependencies in the pyproject.tomlAn example of the output is here, the wheels can be downloaded manually from the Artifacts section under the Summary tab.