-
Notifications
You must be signed in to change notification settings - Fork 33
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
Add a GitHub Actions workflow for automatically publishing releases to PyPI #141
base: main
Are you sure you want to change the base?
Conversation
6f7be65
to
36eb1cf
Compare
taking into account CentOS vs. Debian-based manylinux images. Solution taken from: sfackler/rust-openssl#2036 (comment)
85b1b6c
to
aabc5fa
Compare
3a4e755
to
ad8dccc
Compare
sccache: 'true' | ||
manylinux: auto | ||
# BEGIN EDITED SECTION # | ||
# Install OpenSSL development headers into the manylinux docker container |
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.
I'm a bit confused why we need to install openssl if we're using vendored openssl? In general I'd rather not use vendored openssl where possible
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.
I agree that it's not the nicest solution to vendor OpenSSL.
I've gone ahead and reverted the vendoring, and while we do install libssl-dev
and pkg-config
, the openssl-sys
crate continues to fail to find the headers.
And for the life of me I can't get it to find them! So very tempted to vendor here.
.github/workflows/pypi.yaml
Outdated
- runner: ubuntu-latest | ||
target: s390x | ||
- runner: ubuntu-latest | ||
target: ppc64le |
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.
Do we really want to build wheels for all these targets?
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.
Good point - I think we can safely drop s390x
and ppc64le
. I've done that in 6221bab.
I'm not sure whether to keep x86
around - some people may realistically still be using it.
This reverts commit aabc5fa.
To save on CI runner time.
b59ca20
to
5244678
Compare
5244678
to
024b203
Compare
This CI workflow was generated by running
maturin generate-ci github
(how handy!). But did require a bit of finagling to satisfy the dependency on OpenSSL (boo!). Specifically, I ran into sfackler/rust-openssl#2036 (comment). I also found that I needed to set thevendored
feature flag on theopenssl
dependency in order to get building on Linux working.To authorise to PyPI, we ended up using PyPI's Trusted Publishers feature, which the
maturin publish
command supports out of the box. This involved configuring this repo and workflow name in PyPI, and then removing theenv: MATURIN_PYPI_TOKEN
line from the generated CI config (solution referenced here).I haven't tested this, but given that the config came from the
maturin
command directly, I have fairly high confidence. After this merges, I'll run the workflow manually on thev0.1.4
tag.