-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[python] Split Python wheel in two separate wheels #20054
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 < 8000 a class="Link--inTextBlock" href="https://docs.github.com/privacy" target="_blank">privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[python] Split Python wheel in two separate wheels #20054
Conversation
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.
Fast tracking tooling updates
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Pass library name via command line arguments. This makes build-chip-wheel.py more generic.
d6dca6f
to
1f02266
Compare
PR #20054: Size comparison from 06599bb to 1f02266 Increases (2 builds for cc13x2_26x2, telink)
Decreases (3 builds for bl602, cc13x2_26x2, telink)
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #20054: Size comparison from 06599bb to 97231f0 Increases (3 builds for cc13x2_26x2, telink)
Decreases (8 builds for bl602, cc13x2_26x2, esp32, linux)
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
* Move package information into manifest file * Specify scripts in manifest as well * Make build-chip-wheel.py independent of build variant Pass library name via command line arguments. This makes build-chip-wheel.py more generic. * Move package requirements to manifest file as well * Split Python into library and repl package * Introduce common GN template chip_python_wheel_action * Add runtime dependency between chip-repl and chip-library * Split chip-library into chip-core and chip-clusters * Apply restyled * Install all wheels for unit tests * Use new chip-repl build target * Fix Cirque failures * Fix wheel names for chip_clusters/chip_repl
* Move package information into manifest file * Specify scripts in manifest as well * Make build-chip-wheel.py independent of build variant Pass library name via command line arguments. This makes build-chip-wheel.py more generic. * Move package requirements to manifest file as well * Split Python into library and repl package * Introduce common GN template chip_python_wheel_action * Add runtime dependency between chip-repl and chip-library * Split chip-library into chip-core and chip-clusters * Apply restyled * Install all wheels for unit tests * Use new chip-repl build target * Fix Cirque failures * Fix wheel names for chip_clusters/chip_repl Co-authored-by: Stefan Agner <stefan@agner.ch>
As of 61dd4d0 ("[python] Split Python wheel in two separate wheels (project-chip#20054)") ninja will forever try to regenerate this file because the filename is specified incorrectly: ninja: Entering directory `out/debug' ninja explain: output linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl is dirty ninja explain: output linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl is dirty ninja explain: linux_x64_gcc/obj/src/controller/python/chip-repl.stamp is dirty ninja explain: linux_x64_gcc/obj/default.stamp is dirty ninja explain: obj/host_gcc.stamp is dirty ninja explain: obj/default.stamp is dirty [2/3] ACTION //src/controller/python:chip-clusters(//build/toolchain/host:linux_x64_gcc) Fix the filename.
As of 61dd4d0 ("[python] Split Python wheel in two separate wheels (#20054)") ninja will forever try to regenerate this file because the filename is specified incorrectly: ninja: Entering directory `out/debug' ninja explain: output linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl is dirty ninja explain: output linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl is dirty ninja explain: linux_x64_gcc/obj/src/controller/python/chip-repl.stamp is dirty ninja explain: linux_x64_gcc/obj/default.stamp is dirty ninja explain: obj/host_gcc.stamp is dirty ninja explain: obj/default.stamp is dirty [2/3] ACTION //src/controller/python:chip-clusters(//build/toolchain/host:linux_x64_gcc) Fix the filename.
As of 61dd4d0 ("[python] Split Python wheel in two separate wheels (project-chip#20054)") ninja will forever try to regenerate this file because the filename is specified incorrectly: ninja: Entering directory `out/debug' ninja explain: output linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_repl-0.0-py3-any.whl is dirty ninja explain: output linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl doesn't exist ninja explain: linux_x64_gcc/controller/python/chip_clusters-0.0-py3-any.whl is dirty ninja explain: linux_x64_gcc/obj/src/controller/python/chip-repl.stamp is dirty ninja explain: linux_x64_gcc/obj/default.stamp is dirty ninja explain: obj/host_gcc.stamp is dirty ninja explain: obj/default.stamp is dirty [2/3] ACTION //src/controller/python:chip-clusters(//build/toolchain/host:linux_x64_gcc) Fix the filename.
Problem
Currently the Python Controller library is one large wheel, with the native library, the clusters, the interaction model and the REPL packed in a single wheel.
This PR is a first step in break out the library into smaller wheels.
Change overview
The first few commits aim to make the current wheel build logic more generic by moving most wheel specific information into
BUILD.gn
. Then this splits it in two wheels: The main wheel namedchip-library
(still fairly monolithic, with cluster library and interaction model in a single wheel), and achip-repl
, with the REPL and its dependency.This lowers the dependency of
chip-library
already. I also plan to split the fairly independent cluster library into a separate wheel in a follow up PR.Testing
Build and runtime tested locally (using
scripts/build_python.sh -m minimal -i separate
andchip-repl
).