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

Python binding setup refactoring + cibuildwheel workflow #2026

Merged
merged 14 commits into from
Oct 17, 2024

Conversation

Antelox
Copy link
Contributor

@Antelox Antelox commented Oct 11, 2024

  • Moved test scripts into tests folder to make them handy for pytest (this is just a preliminary step to actually porting current tests to pytest-compliant. However it's enough as of now since it makes the job to test if the wheel is ok or not...)
  • Updated CMakeLists.txt in order to set CMAKE_OSX_ARCHITECTURES var
  • Moved project package settings to the new TOML format: pyproject.toml
  • Refactored setup.py to cleanup/improve the code and make it ready for cibuildwheel
  • Updated README.md with the package long description part
  • Updated MANIFEST.in with new paths
  • Removed setup.cfg since universal wheel building will be deprecated soon
  • Replaced old PyPI-publishing.yml workflow with brand-new one based on cibuildwheel: Leveraged the GitHub matrix strategy in order to execute more build types in parallel rather one-by-one. This is crucial for the Linux aarch64 builds since they will be built within Ubuntu x64 and cibuildwheel uses QEMU under the hood (hence slow!). The workflow is configured in a way that it builds for each platforms/architectures just python 3.8 wheel, and all the remaining python versions wheels only for a tag release (for a matter of workflow time execution of course)
  • Removed old building scripts
  • Removed .gdb_history file
  • Updated .gitignore to exclude PyCharm-related files/folders
  • Replaced macos-12 runner with macos-13 since it will be removed soon
  • Select build type according to the presence of tag release

@Antelox Antelox force-pushed the refactor/bindings/python branch 2 times, most recently from 70c1620 to 72da31a Compare October 14, 2024 07:57
@Antelox Antelox changed the base branch from master to dev October 14, 2024 12:43
@Antelox Antelox force-pushed the refactor/bindings/python branch 2 times, most recently from ae2bfc2 to eade532 Compare October 15, 2024 07:15
@Antelox Antelox force-pushed the refactor/bindings/python branch 4 times, most recently from 618841b to c1a764c Compare October 17, 2024 08:00
Antelox and others added 14 commits October 17, 2024 10:41
- Moved project package settings to the new TOML format
- Refactored setup.py to cleanup/improve the code and make it ready for cibuildwheel
- Updated README.md with the package long description part
- Removed setup.cfg since universal wheel building will be deprecated soon
- Replaced old PyPI-publishing.yml workflow with brand-new one based on cibuildwheel
- Removed old building scripts
… x86_64 runner as per cibuildwheel warning message
- Replaced macos-14 runner with macos-latest
- Bumped cibuildwheel GitHub action to 2.21.3 version
- Adapt test_uc_ctl_tb_cache test to the recent changes
- Fixed typos
- PEP8 fixes
…type according to the presence of tag release
@Antelox Antelox force-pushed the refactor/bindings/python branch from c1a764c to a2a2d76 Compare October 17, 2024 08:41
@wtdcode
Copy link
Member

wtdcode commented Oct 17, 2024

Finally, we have some modern infrastructure for building wheels. I hope this fixes various wheels-related issues.

@wtdcode wtdcode merged commit 6fbbf30 into unicorn-engine:dev Oct 17, 2024
36 checks passed
@Antelox Antelox deleted the refactor/bindings/python branch October 17, 2024 11:47
hyunmin-furiosa pushed a commit to hyunmin-furiosa/unicorn that referenced this pull request Jan 17, 2025
…ine#2026)

* Python bindings: Make the test scripts handy for pytest

* Python bindings: Update MANIFEST.in with new paths

* Update .gitignore to exclude PyCharm-related files/folders

* Python bindings: Update CMakeLists.txt in order to set CMAKE_OSX_ARCHITECTURES var

* Python bindings:
- Moved project package settings to the new TOML format
- Refactored setup.py to cleanup/improve the code and make it ready for cibuildwheel
- Updated README.md with the package long description part
- Removed setup.cfg since universal wheel building will be deprecated soon

* Python bindings:
- Replaced old PyPI-publishing.yml workflow with brand-new one based on cibuildwheel
- Removed old building scripts

* Replaced macos-12 runner with macos-13 since it will be removed soon

* Python bindings: Specify SYSTEM_VERSION_COMPAT=0 env var for macos-13 x86_64 runner as per cibuildwheel warning message

* Python bindings: Enable i686 for debugging

* Python bindings: Enable DEBUG flag according to the presence of tag release

* Python bindings: Added matrix to cover i686 manylinux/musllinux builds

* Python bindings:
- Replaced macos-14 runner with macos-latest
- Bumped cibuildwheel GitHub action to 2.21.3 version

* Python bindings:
- Adapt test_uc_ctl_tb_cache test to the recent changes
- Fixed typos
- PEP8 fixes

* GitHub Action Workflow: Introduce BUILD_TYPE env var to select build type according to the presence of tag release

---------

Co-authored-by: mio <[email protected]>
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