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] Split Python wheel in two separate wheels #20700

Merged
merged 1 commit into from
Jul 14, 2022

Conversation

woody-apple
Copy link
Contributor

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 named chip-library (still fairly monolithic, with cluster library and interaction model in a single wheel), and a chip-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 and 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
@github-actions
Copy link

github-actions bot commented Jul 13, 2022

PR #20700: Size comparison from 0390a8d to c5f1670

Increases (4 builds for cc13x2_26x2, cyw30739, esp32)
platform target config section 0390a8d c5f1670 change % change
cc13x2_26x2 pump-controller-app LP_CC2652R7 (read only) 664015 664023 8 0.0
.text 579040 579048 8 0.0
shell LP_CC2652R7 (read only) 658534 658542 8 0.0
.text 573372 573380 8 0.0
cyw30739 ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582770 582778 8 0.0
.app_xip_area 462388 462396 8 0.0
esp32 all-clusters-app c3devkit (read only) 1019978 1019980 2 0.0
.flash.text 1019978 1019980 2 0.0
Decreases (7 builds for bl602, cc13x2_26x2, cyw30739, nrfconnect, telink)
platform target config section 0390a8d c5f1670 change % change
bl602 lighting-app bl602 .text 1058544 1058540 -4 -0.0
bl602+rpc (read/write) 1442898 1442890 -8 -0.0
.text 1090228 1090224 -4 -0.0
cc13x2_26x2 pump-controller-app LP_CC2652R7 (read/write) 178320 178312 -8 -0.0
shell LP_CC2652R7 (read/write) 188192 188184 -8 -0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579494 579486 -8 -0.0
.app_xip_area 458264 458256 -8 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 text 811392 811388 -4 -0.0
telink light-switch-app tlsr9518adk80d text 565596 565594 -2 -0.0
Full report (32 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 0390a8d c5f1670 change % change
bl602 lighting-app bl602 (read/write) 1397466 1397466 0 0.0
.bss 116978 116978 0 0.0
.data 4480 4480 0 0.0
.text 1058544 1058540 -4 -0.0
bl602+rpc (read/write) 1442898 1442890 -8 -0.0
.bss 124418 124418 0 0.0
.data 4600 4600 0 0.0
.text 1090228 1090224 -4 -0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 666043 666043 0 0.0
(read/write) 185180 185180 0 0.0
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88067 88067 0 0.0
.text 577660 577660 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 631851 631851 0 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77307 77307 0 0.0
.text 554220 554220 0 0.0
lock-ftd LP_CC2652R7 (read only) 668959 668959 0 0.0
(read/write) 172408 172408 0 0.0
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76207 76207 0 0.0
.text 592272 592272 0 0.0
lock-mtd LP_CC2652R7 (read only) 618367 618367 0 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76087 76087 0 0.0
.text 541792 541792 0 0.0
pump-app LP_CC2652R7 (read only) 678199 678199 0 0.0
(read/write) 164016 164016 0 0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88631 88631 0 0.0
.text 589084 589084 0 0.0
pump-controller-app LP_CC2652R7 (read only) 664015 664023 8 0.0
(read/write) 178320 178312 -8 -0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84495 84495 0 0.0
.text 579040 579048 8 0.0
shell LP_CC2652R7 (read only) 658534 658542 8 0.0
(read/write) 188192 188184 -8 -0.0
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84846 84846 0 0.0
.text 573372 573380 8 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579494 579486 -8 -0.0
.app_xip_area 458264 458256 -8 -0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585454 585454 0 0.0
.app_xip_area 459488 459488 0 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582770 582778 8 0.0
.app_xip_area 462388 462396 8 0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1081412 1081412 0 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 946348 946348 0 0.0
BRD4161A+rpc (read/write) 1135732 1135732 0 0.0
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983776 983776 0 0.0
BRD4161A+rs911x (read/write) 947924 947924 0 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 805088 805088 0 0.0
lock-app BRD4161A+wf200 (read/write) 1128760 1128760 0 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 982492 982492 0 0.0
window-app BRD4161A (read/write) 1075228 1075228 0 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 938660 938660 0 0.0
esp32 all-clusters-app c3devkit (read only) 1019978 1019980 2 0.0
(read/write) 1485690 1485690 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215576 215576 0 0.0
.flash.text 1019978 1019980 2 0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073927 1073927 0 0.0
(read/write) 487760 487760 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 246020 246020 0 0.0
.flash.text 1068543 1068543 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658544 658544 0 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 581236 581236 0 0.0
lock k32w061+release (read/write) 685348 685348 0 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607564 607564 0 0.0
linux chip-tool-no-interactive-ipv6only arm64 (read only) 10009972 10009972 0 0.0
(read/write) 683985 683985 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 622904 622904 0 0.0
.dynamic 528 528 0 0.0
.got 13496 13496 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 477156 477156 0 0.0
.text 7973508 7973508 0 0.0
thermostat-no-ble arm64 (read only) 2595044 2595044 0 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165604 165604 0 0.0
.text 2189664 2189664 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2448168 2448168 0 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410812 1410812 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1175183 1175183 0 0.0
bss 142900 142900 0 0.0
rodata 142008 142008 0 0.0
text 811392 811388 -4 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1155391 1155391 0 0.0
bss 142136 142136 0 0.0
rodata 133536 133536 0 0.0
text 800836 800836 0 0.0
p6 all-clusters-app default (read/write) 2566152 2566152 0 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1524416 1524416 0 0.0
all-clusters-minimal-app default (read/write) 2511440 2511440 0 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1469704 1469704 0 0.0
light-app default (read/write) 2441376 2441376 0 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1399640 1399640 0 0.0
lock-app default (read/write) 2468520 2468520 0 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1426784 1426784 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 797332 797332 0 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565596 565594 -2 -0.0
lighting-app tlsr9518adk80d (read/write) 817156 817156 0 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581920 581920 0 0.0

@andy31415 andy31415 merged commit 98aa026 into sve Jul 14, 2022
@andy31415 andy31415 deleted the cherry-pick-61dd4d020479ad877ee7010941cfc615b6fa1a86 branch July 14, 2022 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants