plyvel
plyvel copied to clipboard
Add github actions CI/CD for building cross-platform(Linux, MacOS and Windows) wheels for `leveldb 1.23` and `snappy 1.1.9`
New Features:
- Support
manylinux_x86_64
,manylinux_aarch64
,manylinux_i686
forcp37* cp38* cp39*
in Linux usingcibuildwheel
- Support
x86_64
forcp37* cp38* cp39*
anduniversal2
forcp39*
in MacOS usingcibuildwheel
- Support
win32
andx64
forcp37* cp38* cp39*
in Windows usingcibuildwheel
- Support the version
1.23
ofleveldb
and the version1.1.9
ofsnappy
for all platforms(Linux, MacOS, Windows) - Support
pytest
in CI
Check and verify my new CI result at github actions CI/CD
Released wheels at https://github.com/liviaerxin/plyvel/releases/tag/v1.3.0-CI
TODOs:
- Apply a new version such as
1.3.0
forplyvel
. - Modify function
test_open_read_only_dir()
intest/test_plyvel.py
to pass pytest. - Publish built wheels to
pypi
using github action.
wow, i imagine this was quite some effort. thanks! :pray:
i will have a good look at this later.
I did not realize this was here!!
I have been working on this myself on a private repo because I don't want the user to need to be required to do a system install of leveldb..
I have wheels for all platforms here for python 3.6 3.7 3.8 3.9 : https://pypi.org/project/plyvel-wheels/#files
I've posted a PR for what it's worth. Whether you use it or not it's no worries 😄
Wow, @AustEcon thank you for presenting a idea to build windows
wheels.
I will try to add it into github actions CI/CD
later.
I have add to build windows wheel in github actions CI for leveldb
1.23 and snappy
1.1.9.
Please see new commits and CI results at plyvel github actions CI
@wbolster, when are you planning to review this PR and merge it. It will be a great help to the machine users for which wheels are missing on PyPI.
I've also made a fork to build wheels for windows which is build against the latest leveldb version(the main branch). Should we consider release the wheels derectly since install leveldb on windows is far more harder than that on unix? I could submit anothor pr for that.
I have released wheels built for Linux, Windows, and macOS. You can download your platform-specified plyvel
wheel at https://github.com/liviaerxin/plyvel/releases/tag/v1.3.0-CI and install them directly without building both snappy
and leveldb
.
hey @liviaerxin wow, that is fantastic! i see you built on top of my build scripts (which i only ever ran successfully in a local docker environment, not in CI) 👍🏼
it would be great if we can get this cleaned up a bit and make it official, and trigger everything from this repo. we could even do automatic releases + pypi based on git tags etc. are you interested in helping getting that set up?
(i can also arrange write access to this repo of course)
hey @liviaerxin wow, that is fantastic! i see you built on top of my build scripts (which i only ever ran successfully in a local docker environment, not in CI) 👍🏼
it would be great if we can get this cleaned up a bit and make it official, and trigger everything from this repo. we could even do automatic releases + pypi based on git tags etc. are you interested in helping getting that set up?
(i can also arrange write access to this repo of course)
Hello @wbolster, I'm glad to participate in the following work and assist you to publish pypi/release automatically by CI to help people use plyvel
package easily.
Hello @wbolster, I have not tracked your plyvel repo for a while and see it still does not provide binary wheels for cross-platform. Now I have some time and really wish your repo to be accessible for more people especially Windows
users with you.
I can add some improvement to do automatic releases + pypi based on git tags
, but it may need your helps such as setting some secret keys.
If you have other suggestions on CI, such as your mentioned code cleanup, feel free to tell me.
Then I can kick off the pull request again and simplify it by squashing commits.