Repository navigation
Releases
zclick 0.1.1a3
zclick 0.1.1a3
Prerelease. Full Click compatibility is not yet complete.
1 known compatibility item remains unfinished:
UNFINISHED: Import and command invocation in Python subinterpreters
zclick requires the main interpreter. Its native module rejects initialization in subinterpreters with ImportError.
Reference behavior: Click 8.5.1 imports and invokes commands in CPython 3.12 isolated and shared-GIL subinterpreters after initialization in the main interpreter.
The pinned PyO3 0.30.1 binding does not support independent subinterpreter module and type state. Bypassing its isolation checks would risk sharing Python objects across interpreters.
The complete disclosure and compatibility report record the limits and reproducer.
Validation and scope
The compatibility target is Click 8.5.1, source commit cf19179e8e2fd54c601378cec9e0d21bb12b6fb1. Publishing requires evidence accounting for all 33,459 fixed upstream case IDs, with the original platform skips and expected failures retained, plus API contracts, actual Shell completion, interpreter safety, dependency checks and executable distribution checks. These gates do not remove the unfinished item above.
- Source for this release
- API and behavior compatibility
- Performance results and method
- Build, platform and release details
- Migration and third-party extension behavior
Evidence assets
compatibility-evidence.zip contains the complete per-case reports, API audits, actual Shell results, subinterpreter difference and safe-rejection evidence, the known gap list, and wheel/source-archive execution checks. Original reference crashes or platform exclusions remain visible in those records.
benchmarks.json contains raw measurements from this immutable release commit on a separate CI host. Timing is workload-specific: a ratio above 1 means lower zclick latency, and a ratio below 1 means a regression at that boundary.
Measurements on the release CI host
| Warm Python API workload | Click µs | zclick µs | Ratio |
|---|---|---|---|
construct/1 |
4.524 | 4.361 | 1.037× |
parse/1 |
2.156 | 2.108 | 1.023× |
invoke/1 |
32.028 | 28.075 | 1.141× |
help/1 |
79.286 | 30.269 | 2.619× |
construct/10 |
38.119 | 36.518 | 1.044× |
parse/10 |
6.156 | 7.214 | 0.853× |
invoke/10 |
86.777 | 66.920 | 1.297× |
help/10 |
127.513 | 67.599 | 1.886× |
construct/100 |
381.480 | 364.365 | 1.047× |
parse/100 |
47.949 | 54.997 | 0.872× |
invoke/100 |
677.390 | 496.221 | 1.365× |
help/100 |
608.002 | 426.075 | 1.427× |
construct/1000 |
3967.816 | 3739.228 | 1.061× |
parse/1000 |
630.123 | 546.141 | 1.154× |
invoke/1000 |
11070.030 | 5201.535 | 2.128× |
help/1000 |
5333.284 | 4011.592 | 1.329× |
nested-command |
57.815 | 52.508 | 1.101× |
wrap-text |
450.214 | 49.721 | 9.055× |
| Fresh process, import, construction and action | Click ms | zclick ms | Ratio |
|---|---|---|---|
command/1 |
41.504 | 34.170 | 1.215× |
help/1 |
46.121 | 38.501 | 1.198× |
command/10 |
41.408 | 33.927 | 1.221× |
help/10 |
46.613 | 37.889 | 1.230× |
command/100 |
42.376 | 34.856 | 1.216× |
help/100 |
48.427 | 40.257 | 1.203× |
command/1000 |
62.502 | 48.833 | 1.280× |
help/1000 |
64.183 | 55.141 | 1.164× |
Change from published zclick 0.1.1a2
| Warm Python API workload | Published baseline µs | Candidate µs | Baseline / candidate |
|---|---|---|---|
construct/1 |
4.387 | 4.361 | 1.006× |
parse/1 |
3.528 | 2.108 | 1.674× |
invoke/1 |
30.809 | 28.075 | 1.097× |
help/1 |
28.342 | 30.269 | 0.936× |
construct/10 |
36.612 | 36.518 | 1.003× |
parse/10 |
9.507 | 7.214 | 1.318× |
invoke/10 |
71.208 | 66.920 | 1.064× |
help/10 |
65.640 | 67.599 | 0.971× |
construct/100 |
364.772 | 364.365 | 1.001× |
parse/100 |
66.463 | 54.997 | 1.208× |
invoke/100 |
520.041 | 496.221 | 1.048× |
help/100 |
432.794 | 426.075 | 1.016× |
construct/1000 |
3726.953 | 3739.228 | 0.997× |
parse/1000 |
636.707 | 546.141 | 1.166× |
invoke/1000 |
5375.468 | 5201.535 | 1.033× |
help/1000 |
4068.650 | 4011.592 | 1.014× |
nested-command |
59.993 | 52.508 | 1.143× |
wrap-text |
49.120 | 49.721 | 0.988× |
The three implementations run in fresh isolated processes for 12 rounds, using two minimal wheel environments. The reference environment contains fixed Click and the published baseline; the candidate environment contains the same Click wheel and the candidate. Ordering is seeded (20261111); every six rounds include all six package orders. Cold scenarios use independently seeded orders. Full output checksums and immutable wheel/runtime hashes are verified. Raw data also includes the old-version cold timings, every allocation sample and per-process RSS.
Recorded CPU affinity: [0]. CPU frequency and shared-host activity are not locked. Small differences are not claimed to be significant. Python allocation samples do not measure every Rust allocation.
Installation and publication
Wheel assets are attached for the listed Python/platform combinations, together with a source archive. GitHub artifact publication and PyPI publication are separate jobs. The existence of this GitHub release does not by itself establish that the PyPI upload succeeded.
zclick 0.1.1a2
zclick 0.1.1a2
Prerelease. Full Click compatibility is not yet complete.
1 known compatibility item remains unfinished:
UNFINISHED: Import and command invocation in Python subinterpreters
zclick requires the main interpreter. Its native module rejects initialization in subinterpreters with ImportError.
Reference behavior: Click 8.5.1 imports and invokes commands in CPython 3.12 isolated and shared-GIL subinterpreters after initialization in the main interpreter.
The pinned PyO3 0.30.1 binding does not support independent subinterpreter module and type state. Bypassing its isolation checks would risk sharing Python objects across interpreters.
The complete disclosure and compatibility report record the limits and reproducer.
Validation and scope
The compatibility target is Click 8.5.1, source commit cf19179e8e2fd54c601378cec9e0d21bb12b6fb1. Publishing requires evidence accounting for all 33,459 fixed upstream case IDs, with the original platform skips and expected failures retained, plus API contracts, actual Shell completion, interpreter safety, dependency checks and executable distribution checks. These gates do not remove the unfinished item above.
- Source for this release
- API and behavior compatibility
- Performance results and method
- Build, platform and release details
- Migration and third-party extension behavior
Evidence assets
compatibility-evidence.zip contains the complete per-case reports, API audits, actual Shell results, subinterpreter difference and safe-rejection evidence, the known gap list, and wheel/source-archive execution checks. Original reference crashes or platform exclusions remain visible in those records.
benchmarks.json contains raw measurements from this immutable release commit on a separate CI host. Timing is workload-specific: a ratio above 1 means lower zclick latency, and a ratio below 1 means a regression at that boundary.
Measurements on the release CI host
| Warm Python API workload | Click µs | zclick µs | Ratio |
|---|---|---|---|
construct/1 |
6.199 | 5.981 | 1.036× |
parse/1 |
2.907 | 4.711 | 0.617× |
invoke/1 |
68.058 | 69.487 | 0.979× |
help/1 |
160.319 | 57.461 | 2.790× |
construct/10 |
51.102 | 48.681 | 1.050× |
parse/10 |
8.576 | 13.192 | 0.650× |
invoke/10 |
147.040 | 129.905 | 1.132× |
help/10 |
232.380 | 111.570 | 2.083× |
construct/100 |
509.940 | 487.971 | 1.045× |
parse/100 |
68.096 | 92.697 | 0.735× |
invoke/100 |
928.616 | 720.583 | 1.289× |
help/100 |
896.932 | 611.180 | 1.468× |
construct/1000 |
5273.717 | 4959.468 | 1.063× |
parse/1000 |
836.866 | 857.956 | 0.975× |
invoke/1000 |
14169.504 | 7023.316 | 2.017× |
help/1000 |
7243.400 | 5486.346 | 1.320× |
nested-command |
119.839 | 131.907 | 0.909× |
wrap-text |
650.213 | 69.811 | 9.314× |
| Fresh process, import, construction and action | Click ms | zclick ms | Ratio |
|---|---|---|---|
command/1 |
47.971 | 39.650 | 1.210× |
help/1 |
54.821 | 45.123 | 1.215× |
command/10 |
48.305 | 39.811 | 1.213× |
help/10 |
55.592 | 45.297 | 1.227× |
command/100 |
49.844 | 41.480 | 1.202× |
help/100 |
56.866 | 46.616 | 1.220× |
command/1000 |
74.481 | 57.698 | 1.291× |
help/1000 |
74.790 | 65.037 | 1.150× |
Change from published zclick 0.1.1a1
| Warm Python API workload | Published baseline µs | Candidate µs | Baseline / candidate |
|---|---|---|---|
construct/1 |
6.847 | 5.981 | 1.145× |
parse/1 |
5.987 | 4.711 | 1.271× |
invoke/1 |
73.169 | 69.487 | 1.053× |
help/1 |
69.845 | 57.461 | 1.216× |
construct/10 |
56.406 | 48.681 | 1.159× |
parse/10 |
22.096 | 13.192 | 1.675× |
invoke/10 |
144.753 | 129.905 | 1.114× |
help/10 |
138.535 | 111.570 | 1.242× |
construct/100 |
561.699 | 487.971 | 1.151× |
parse/100 |
200.341 | 92.697 | 2.161× |
invoke/100 |
803.018 | 720.583 | 1.114× |
help/100 |
788.245 | 611.180 | 1.290× |
construct/1000 |
5711.841 | 4959.468 | 1.152× |
parse/1000 |
2019.259 | 857.956 | 2.354× |
invoke/1000 |
7377.726 | 7023.316 | 1.050× |
help/1000 |
7158.829 | 5486.346 | 1.305× |
nested-command |
135.448 | 131.907 | 1.027× |
wrap-text |
72.940 | 69.811 | 1.045× |
The three implementations run in fresh isolated processes for 12 rounds, using two minimal wheel environments. The reference environment contains fixed Click and the published baseline; the candidate environment contains the same Click wheel and the candidate. Ordering is seeded (20261111); every six rounds include all six package orders. Cold scenarios use independently seeded orders. Full output checksums and immutable wheel/runtime hashes are verified. Raw data also includes the old-version cold timings, every allocation sample and per-process RSS.
Recorded CPU affinity: [0]. CPU frequency and shared-host activity are not locked. Small differences are not claimed to be significant. Python allocation samples do not measure every Rust allocation.
Installation and publication
Wheel assets are attached for the listed Python/platform combinations, together with a source archive. GitHub artifact publication and PyPI publication are separate jobs. The existence of this GitHub release does not by itself establish that the PyPI upload succeeded.
zclick 0.1.1a1
zclick 0.1.1a1
Prerelease. Full Click compatibility is not yet complete.
1 known compatibility item remains unfinished:
UNFINISHED: Import and command invocation in Python subinterpreters
zclick requires the main interpreter. Its native module rejects initialization in subinterpreters with ImportError.
Reference behavior: Click 8.5.1 imports and invokes commands in CPython 3.12 isolated and shared-GIL subinterpreters after initialization in the main interpreter.
The pinned PyO3 0.30.1 binding does not support independent subinterpreter module and type state. Bypassing its isolation checks would risk sharing Python objects across interpreters.
The complete disclosure and compatibility report record the limits and reproducer.
Validation and scope
The compatibility target is Click 8.5.1, source commit cf19179e8e2fd54c601378cec9e0d21bb12b6fb1. Publishing requires evidence accounting for all 33,459 fixed upstream case IDs, with the original platform skips and expected failures retained, plus API contracts, actual Shell completion, interpreter safety, dependency checks and executable distribution checks. These gates do not remove the unfinished item above.
- Source for this release
- API and behavior compatibility
- Performance results and method
- Build, platform and release details
- Migration and third-party extension behavior
Evidence assets
compatibility-evidence.zip contains the complete per-case reports, API audits, actual Shell results, subinterpreter difference and safe-rejection evidence, the known gap list, and wheel/source-archive execution checks. Original reference crashes or platform exclusions remain visible in those records.
benchmarks.json contains raw measurements from this immutable release commit on a separate CI host. Timing is workload-specific: a ratio above 1 means lower zclick latency, and a ratio below 1 means a regression at that boundary.
Measurements on the release CI host
| Warm Python API workload | Click µs | zclick µs | Ratio |
|---|---|---|---|
construct/1 |
4.650 | 4.932 | 0.943× |
parse/1 |
2.221 | 4.266 | 0.520× |
invoke/1 |
33.176 | 31.372 | 1.058× |
help/1 |
86.071 | 34.204 | 2.516× |
construct/10 |
38.758 | 41.444 | 0.935× |
parse/10 |
6.248 | 15.722 | 0.397× |
invoke/10 |
90.180 | 78.331 | 1.151× |
help/10 |
123.294 | 82.330 | 1.498× |
construct/100 |
373.818 | 408.062 | 0.916× |
parse/100 |
47.263 | 137.088 | 0.345× |
invoke/100 |
669.676 | 572.830 | 1.169× |
help/100 |
600.138 | 557.844 | 1.076× |
construct/1000 |
3856.818 | 4267.831 | 0.904× |
parse/1000 |
634.544 | 1459.968 | 0.435× |
invoke/1000 |
11148.740 | 5581.622 | 1.997× |
help/1000 |
5321.224 | 5262.660 | 1.011× |
nested-command |
56.485 | 63.561 | 0.889× |
wrap-text |
448.322 | 51.389 | 8.724× |
| Fresh process, import, construction and action | Click ms | zclick ms | Ratio |
|---|---|---|---|
command/1 |
41.160 | 39.809 | 1.034× |
help/1 |
45.944 | 44.286 | 1.037× |
command/10 |
41.355 | 40.134 | 1.030× |
help/10 |
46.324 | 44.331 | 1.045× |
command/100 |
42.631 | 40.433 | 1.054× |
help/100 |
48.078 | 45.708 | 1.052× |
command/1000 |
63.205 | 55.066 | 1.148× |
help/1000 |
63.471 | 62.415 | 1.017× |
Packages run in fixed order on a shared host, without CPU affinity or frequency locking. Small timing differences are not claimed to be significant. Python allocation samples do not measure every Rust allocation.
Installation and publication
Wheel assets are attached for the listed Python/platform combinations, together with a source archive. GitHub artifact publication and PyPI publication are separate jobs. The existence of this GitHub release does not by itself establish that the PyPI upload succeeded.