Python package building rework#2538
Conversation
cbd180e to
190ac23
Compare
There was a problem hiding this comment.
Looks way way cleaner! Thanks a lot.
I start the CI once for all the jobs. But in general we have to discuss with @kabeor about the possible CI runtimes with this one.
Also, do I see this right? You test only on 3.8 and 3.9 here?
Testing on 3.8 + 3.13 (or whatever is the oldest/newest) is better IMHO.
|
The failing tests are possibly related to #2416. Both are clearly 32bit system issues. |
…or different platforms, improve and cleanup the code - Updated README.txt - Removed old Makefile and build_wheel.sh scripts - Created a new workflow that takes care of building and testing python packages for different platforms/architectures/python versions
190ac23 to
e0342f3
Compare
…uired` flag. It turns to have a mandatory tests folder path - integration_tests.py: Use pathlib to determine the required path - GitHub action: Simplified the tests execution command
…r native runners only during testings and the rest during tag release
b95bca1 to
7f9054d
Compare
- Fixed the cibw_build matrix element - Added a step to prepare artifact name
There was a problem hiding this comment.
Very nice! Thanks a lot for the edits. Just some more small things please.
Also please do a release in your fork on this branch. So we can test if the release workflow works.
Only the actual publish/pypip upload step should fail.
Thanks a lot for cleaning up all this.
|
@kabeor This PR opens the question if Capstone supports x86 systems. The tests fail on 32bit systems (at least Windows). I think it is a good idea to support it. Because there are also modern 32bit CPU architectures out there. So having at least a single x86 job is good reduces the chance of bugs also on the other archtectures. |
|
Something is still wrong with the naming: |
That is ugly I know, but it's like that because that job is skipped hence the matrix doesn't get created and finally the placeholders don't get replaced |
This comment was marked as resolved.
This comment was marked as resolved.
…ls-publish.yml workflow file - Minor fixes to the workflow as pointed out in the PR review - Updated MANIFEST.in to reflect the actual libraries built during python wheel creation process - Use subprocess.run in place of os.system in run_tests.py script
e73fe63 to
80e12b5
Compare
|
This one is weird: https://github.com/capstone-engine/capstone/actions/runs/11818841771/job/32927697780?pr=2538 |
Rot127
left a comment
There was a problem hiding this comment.
Last little nitpick. Then it looks good to me.
I check the build wheels later this day. And will check a last time after kabeor is done.
- Run qemu step only if non-native Linux runner - Added arch:universal2 matrix element for macos-latest runner
a1c8113 to
1c9dc46
Compare
Should be internal GitHub networking issue |
Rot127
left a comment
There was a problem hiding this comment.
@aquynh Can you please check how many runner minutes are used currently?
According to these Github docs all latest Linux, Windows and MacOS runners (even an M1 instance) are free.
I can't see if this is also the case for all architectures (like Linux + AArch64, Windows + AArch64 or Windows i686). But if all those are free, we should absolutely enable some more runners.
Those are not native runners so it's not the case. |
|
@kabeor The run in case of tag creation: https://github.com/Antelox/capstone/actions/runs/11839185045 |
|
Binaries look good as well: |
This comment was marked as resolved.
This comment was marked as resolved.
…for sdist archive
This comment was marked as resolved.
This comment was marked as resolved.
* Update changelog for V6.0.0-Alpha1 (#2493) * update version to v6-alpha1 * update bindings const values * Update changelog for V6.0.0-Alpha1 * Remove irrelevant changes. (#2495) * Fixing UB santizer, `LITBASE` and assert errors. (#2499) * Update labeler with Xtensa and v6 files. (#2500) * Add hard asserts to all SStream functions and memset MCInst. (#2501) * Only trigger on released action. (#2497) * Fix cstest build with Ninja (#2506) * Tricore EA calculation (#2504) * Update libcyaml dependency in cstest to 1.4.2 (#2508) * AArch64: Replace vararg add_cs_detail by multiple concrete functions Fixes UB caused by various mismatches on how these arguments are passed and read. This became visible when running on PowerPC hosts with e.g. `cstool -d aarch64 204862f8`. Apart from the UB fix, this is meant to be a pure refactor. Partially addresses #2458 * xtensa: Fix Branch Target (#2516) * xtensa: Fix Branch Target * auto-sync: fix byte pattern * xtensa: add branch insn tests * Revert "auto-sync: fix byte pattern" This reverts commit cf8e870. * Fix #2509. (#2510) Compatibility headers should always include the header in the same dir. * Fix stringop-truncation warning some compilers raise. (#2522) * Add CC and VAS compatibility macros (#2525) * Fix endianess issue during assignment. (#2528) * This time actually fix big endian issue. (#2530) * tricore: fixes #2474 (#2523) * tricore: fix auto-sync tricore * tricore: fixes TriCoreGenCSMappingInsnName.inc * tricore: fixes * tricore: try fix ld.a SC * tricore: fixes all * Add TriCore to .github/workflows/auto-sync.yaml * Add TriCore details tests(a15, d15, a10|sp) * Change CI to create Debian Package to Release (#2521) * Updating CI to create Debian package and version is assigned by tag version. Also updating release CI to not use end-of-life workflows * Clear up usage of static libraries. - Python bindings only use the dynamic lib. But built and copied the static ones sometimes nonetheless. - Add toggles to build only static, static/dyn or only dynamic. --------- Co-authored-by: Rot127 <unisono@quyllur.org> * Rename build arguments: (#2534) - BUILD_SHARED_LIBS -> CAPSTONE_BUILD_SHARED_LIBS - BUILD_STATIC_LIBS -> CAPSTONE_BUILD_STATIC_LIBS - BUILD_STATIC_LIBS -> CAPSTONE_BUILD_STATIC_MSVC_RUNTIME * xtensa: update to espressif/llvm-project (#2533) * fix coverity (#2546) - cid 514642 - cid 514643 - cid 514644 - cid 514645 * Move debian package generation to a dispatch only workflow (#2543) * Move deb package gen files int package/deb * Fix basename check * Make debian package generation dispatch only * Python package building rework (#2538) * - Refactored setup.py to remove hacks regarding packaging of wheels for different platforms, improve and cleanup the code - Updated README.txt - Removed old Makefile and build_wheel.sh scripts - Created a new workflow that takes care of building and testing python packages for different platforms/architectures/python versions * Added SPDX headers to the setup.py * - cstest_py: Fixed positional argument since it doesn't accept a `required` flag. It turns to have a mandatory tests folder path - integration_tests.py: Use pathlib to determine the required path - GitHub action: Simplified the tests execution command * GitHub Actions: Run python 3.8 (lowest) and 3.13 (current highest) for native runners only during testings and the rest during tag release * GitHub Action: - Fixed the cibw_build matrix element - Added a step to prepare artifact name * GitHub Action: Added run_tests.py script to run all tests during CI workflow * - Added SPDX headers to the run_tests.py script and to the build-wheels-publish.yml workflow file - Minor fixes to the workflow as pointed out in the PR review - Updated MANIFEST.in to reflect the actual libraries built during python wheel creation process - Use subprocess.run in place of os.system in run_tests.py script * GitHub Action: - Run qemu step only if non-native Linux runner - Added arch:universal2 matrix element for macos-latest runner * Python bindings: Refreshed the list of files needed to be copied for sdist archive * GitHub Action: Commented out arch:x86 matrix elements * GitHub Action: Run qemu step only if non-native Linux runner * GitHub Action: Minor fixes * Python bindings: Added missing .in pattern when collecting src files for sdist archive * Auto-Sync reproducability + ARM update (#2532) * fix xtensa DecodeMR23RegisterClass and add tests for MAC16 instru… (#2551) * fix xtensa `DecodeMR23RegisterClass` and add tests for `MAC16` instructions * revert * Prepare for update (#2552) * Bindings(chore): Fix DeprecationWarning * Version(upgrade): update bindings const * Fix(chore): Fix ARMCC_Invalid is not defined * Update Changelog Version to 6.0.0-Alpha2 (#2553) * Bindings(chore): Fix DeprecationWarning * Version(upgrade): update bindings const * Fix(chore): Fix ARMCC_Invalid is not defined * Changelog: Update to version 6.0.0-Alpha2 --------- Co-authored-by: Rot127 <45763064+Rot127@users.noreply.github.com> Co-authored-by: Florian Märkl <info@florianmaerkl.de> Co-authored-by: billow <billow.fun@gmail.com> Co-authored-by: Andrew <afq2101@columbia.edu> Co-authored-by: Rot127 <unisono@quyllur.org> Co-authored-by: @Antelox <anteloxrce@gmail.com>
* Update changelog for V6.0.0-Alpha1 (capstone-engine#2493) (capstone-engine#2494) * update version to v6-alpha1 * update bindings const values * Update changelog for V6.0.0-Alpha1 * Remove irrelevant changes. (capstone-engine#2496) * Fixing UB santizer, `LITBASE` and assert errors. (capstone-engine#2499) * Update labeler with Xtensa and v6 files. (capstone-engine#2500) * Add hard asserts to all SStream functions and memset MCInst. (capstone-engine#2501) * Only trigger on released action. (capstone-engine#2497) * Fix cstest build with Ninja (capstone-engine#2506) * Tricore EA calculation (capstone-engine#2504) * Update libcyaml dependency in cstest to 1.4.2 (capstone-engine#2508) * AArch64: Replace vararg add_cs_detail by multiple concrete functions Fixes UB caused by various mismatches on how these arguments are passed and read. This became visible when running on PowerPC hosts with e.g. `cstool -d aarch64 204862f8`. Apart from the UB fix, this is meant to be a pure refactor. Partially addresses capstone-engine#2458 * xtensa: Fix Branch Target (capstone-engine#2516) * xtensa: Fix Branch Target * auto-sync: fix byte pattern * xtensa: add branch insn tests * Revert "auto-sync: fix byte pattern" This reverts commit cf8e870. * Fix capstone-engine#2509. (capstone-engine#2510) Compatibility headers should always include the header in the same dir. * Fix stringop-truncation warning some compilers raise. (capstone-engine#2522) * Add CC and VAS compatibility macros (capstone-engine#2525) * Fix endianess issue during assignment. (capstone-engine#2528) * This time actually fix big endian issue. (capstone-engine#2530) * tricore: fixes capstone-engine#2474 (capstone-engine#2523) * tricore: fix auto-sync tricore * tricore: fixes TriCoreGenCSMappingInsnName.inc * tricore: fixes * tricore: try fix ld.a SC * tricore: fixes all * Add TriCore to .github/workflows/auto-sync.yaml * Add TriCore details tests(a15, d15, a10|sp) * Change CI to create Debian Package to Release (capstone-engine#2521) * Updating CI to create Debian package and version is assigned by tag version. Also updating release CI to not use end-of-life workflows * Clear up usage of static libraries. - Python bindings only use the dynamic lib. But built and copied the static ones sometimes nonetheless. - Add toggles to build only static, static/dyn or only dynamic. --------- Co-authored-by: Rot127 <unisono@quyllur.org> * Rename build arguments: (capstone-engine#2534) - BUILD_SHARED_LIBS -> CAPSTONE_BUILD_SHARED_LIBS - BUILD_STATIC_LIBS -> CAPSTONE_BUILD_STATIC_LIBS - BUILD_STATIC_LIBS -> CAPSTONE_BUILD_STATIC_MSVC_RUNTIME * xtensa: update to espressif/llvm-project (capstone-engine#2533) * fix coverity (capstone-engine#2546) - cid 514642 - cid 514643 - cid 514644 - cid 514645 * Move debian package generation to a dispatch only workflow (capstone-engine#2543) * Move deb package gen files int package/deb * Fix basename check * Make debian package generation dispatch only * Python package building rework (capstone-engine#2538) * - Refactored setup.py to remove hacks regarding packaging of wheels for different platforms, improve and cleanup the code - Updated README.txt - Removed old Makefile and build_wheel.sh scripts - Created a new workflow that takes care of building and testing python packages for different platforms/architectures/python versions * Added SPDX headers to the setup.py * - cstest_py: Fixed positional argument since it doesn't accept a `required` flag. It turns to have a mandatory tests folder path - integration_tests.py: Use pathlib to determine the required path - GitHub action: Simplified the tests execution command * GitHub Actions: Run python 3.8 (lowest) and 3.13 (current highest) for native runners only during testings and the rest during tag release * GitHub Action: - Fixed the cibw_build matrix element - Added a step to prepare artifact name * GitHub Action: Added run_tests.py script to run all tests during CI workflow * - Added SPDX headers to the run_tests.py script and to the build-wheels-publish.yml workflow file - Minor fixes to the workflow as pointed out in the PR review - Updated MANIFEST.in to reflect the actual libraries built during python wheel creation process - Use subprocess.run in place of os.system in run_tests.py script * GitHub Action: - Run qemu step only if non-native Linux runner - Added arch:universal2 matrix element for macos-latest runner * Python bindings: Refreshed the list of files needed to be copied for sdist archive * GitHub Action: Commented out arch:x86 matrix elements * GitHub Action: Run qemu step only if non-native Linux runner * GitHub Action: Minor fixes * Python bindings: Added missing .in pattern when collecting src files for sdist archive * Auto-Sync reproducability + ARM update (capstone-engine#2532) * fix xtensa DecodeMR23RegisterClass and add tests for MAC16 instru… (capstone-engine#2551) * fix xtensa `DecodeMR23RegisterClass` and add tests for `MAC16` instructions * revert * Prepare for update (capstone-engine#2552) * Bindings(chore): Fix DeprecationWarning * Version(upgrade): update bindings const * Fix(chore): Fix ARMCC_Invalid is not defined * Update Changelog Version to 6.0.0-Alpha2 (capstone-engine#2553) * Bindings(chore): Fix DeprecationWarning * Version(upgrade): update bindings const * Fix(chore): Fix ARMCC_Invalid is not defined * Changelog: Update to version 6.0.0-Alpha2 --------- Co-authored-by: Wu ChenXu <kabeor00@gmail.com> Co-authored-by: Florian Märkl <info@florianmaerkl.de> Co-authored-by: billow <billow.fun@gmail.com> Co-authored-by: Andrew <afq2101@columbia.edu> Co-authored-by: @Antelox <anteloxrce@gmail.com>
Your checklist for this pull request
Detailed description
setup.pyto remove hacks regarding packaging of wheels for different platforms, improve and cleanup the codeREADME.txtMakefileandbuild_wheel.shscriptscstest_pypositional argumentintegration_tests.pyrun_tests.pyscript to run all the python unittestssrcfolder forsdistarchiveTest plan
There are 6 tests failing for both Linux and Windows x86 arch.
Closing issues
I suppose it should close: