Repository navigation
Commit ffd4044
committed
Publish dev versions of the ESP-IDF component from the nightly branch
Projects that need the component before the next release can now pin a
dev version from the registry instead of generating the component from
an ExecuTorch checkout. A manual run of publish-espressif-idf.yml on the
nightly branch with version_suffix -dev publishes X.Y.Z-dev.YYYYMMDD of
that branch's commit, through the same packing, testing, review and
registry checks as a release. The generator's new --version-suffix -dev
stamps HEAD's commit date, and like the other published stamps checks
the checkout: HEAD must be on the nightly branch, checked out or fetched
from origin, and free of uncommitted changes to what the generator
reads. --allow-dev-stamp stays the unchecked stamp for local builds.
A dev version's kernel bundles need executorch from the component's
exact commit. ExecuTorch's nightly wheels are built from the nightly
branch's commits, so the plan refuses -dev on any other ref and any
other suffix on the nightly branch. That check runs from the nightly
branch's copy of the workflow, which is main's, so it guards against
mistakes rather than changes to it: the runbook protects the nightly
branch with a ruleset before the environment trusts it, and has the
approver of a dev upload review what changed since the last approved one
in every file the environment's jobs run: the workflow, the upload
script and its requirements, and the test script whose fetch mode they
run. Before the build, the new wheel mode of
test_espressif_idf_nightly.sh checks that the nightly index has the
version's wheels for every platform and CPython the wheel workflows
build, and that all of them record that commit, which takes about 30
seconds. It refuses a version dated today, since a second nightly the
same day, which has happened, replaces that day's wheels; the runbook
has the workflow run between 00:00 UTC and the next nightly, and once
with dry_run set before the first dev upload. The nightly matrix gains a
job, which its pull requests run, that checks the wheel check's refusals
and runs it on the finished nightlies of the last 60 days that have
every wheel, newest first, until one passes, since a second nightly the
same day can leave a day's wheels from two commits. It fails if none
passes, or if the index has every wheel of a day no nightly commit is
dated, which means the dev version's dates no longer match the wheels';
otherwise nightly wheels can fail to build for days, so finding none
only warns.
ExecuTorch's wheels declare no torch, so the component's VERSION now
records the torch requirement install_requirements.py builds the wheels
against, and the CPU index of its TORCH_URL_BASE, which it installs
torch from and which also serves torch release candidates. The generator
reads both before --version exits, so the stamp checks catch a pin it
cannot read, and counts install_requirements.py among its inputs. The
new torch mode checks that the requirement resolves from that index for
every platform and CPython, in the package job before upload and in the
nightly's prepare job every day, and the component test checks both
lines. The component's README gives the exact pip commands for its
version, a release's, an RC's or a dev version's, and the component test
checks the release's and the RC's. torch comes from its own index in a
command of its own, because download.pytorch.org's test and release
indexes also serve executorch builds, as X.Y.Z+cpu, which pip would
prefer to PyPI's X.Y.Z and which gen_kernels.py accepts for a release
without a commit check. and gen_kernels.py names the nightly wheel a dev
version needs. The nightly index keeps about 60 days of wheels, so a
project moves to a newer dev version, or to the release, before its pin
ages out; firmware builds from a committed kernel bundle are unaffected.
Dev versions are semver pre-releases, which a version range picks up
only if it opts in, so they go to production without reaching projects
on releases. They read 1.6.0-dev.YYYYMMDD, as the nightly wheels do,
until main's version.txt moves past 1.6.0, and sort below 1.6.0
meanwhile; exact pins are unaffected. Dev runs queue in the nightly
branch's concurrency group, so one cannot replace a pending release run.
Before the first dev upload, a repo admin protects the nightly branch
and adds it to the deployment branches of the esp-component-registry
environment. The workflow accepts -dev once this change reaches the
nightly branch.
Authored with Claude Code.1 parent afd8dd9 commit ffd4044
9 files changed
Lines changed: 414 additions & 62 deletions
File tree
- .ci/scripts
- .github/workflows
- examples/espressif
- idf_component_template
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
96 | 98 | | |
97 | 99 | | |
98 | 100 | | |
99 | | - | |
| 101 | + | |
100 | 102 | | |
101 | 103 | | |
102 | 104 | | |
103 | 105 | | |
104 | 106 | | |
105 | 107 | | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
106 | 115 | | |
107 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
108 | 125 | | |
109 | 126 | | |
110 | 127 | | |
| |||
116 | 133 | | |
117 | 134 | | |
118 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
119 | 141 | | |
120 | 142 | | |
121 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
37 | 54 | | |
38 | 55 | | |
39 | 56 | | |
40 | 57 | | |
41 | | - | |
| 58 | + | |
42 | 59 | | |
43 | 60 | | |
44 | 61 | | |
45 | 62 | | |
46 | 63 | | |
47 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
48 | 70 | | |
49 | 71 | | |
50 | 72 | | |
| |||
400 | 422 | | |
401 | 423 | | |
402 | 424 | | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
403 | 564 | | |
404 | 565 | | |
405 | 566 | | |
| |||
434 | 595 | | |
435 | 596 | | |
436 | 597 | | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
437 | 601 | | |
438 | 602 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
60 | 81 | | |
61 | 82 | | |
62 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
18 | | - | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
29 | | - | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
| |||
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
90 | | - | |
91 | | - | |
92 | | - | |
| 92 | + | |
| 93 | + | |
93 | 94 | | |
94 | 95 | | |
95 | | - | |
96 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
97 | 107 | | |
98 | 108 | | |
99 | 109 | | |
| |||
150 | 160 | | |
151 | 161 | | |
152 | 162 | | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
153 | 177 | | |
154 | 178 | | |
155 | 179 | | |
156 | 180 | | |
157 | 181 | | |
158 | 182 | | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | 183 | | |
163 | | - | |
| 184 | + | |
164 | 185 | | |
165 | 186 | | |
166 | 187 | | |
167 | 188 | | |
168 | 189 | | |
| 190 | + | |
169 | 191 | | |
170 | 192 | | |
171 | 193 | | |
| |||
0 commit comments