Repository navigation
Release v0.120.1 - #654
Merged
Merged
Release v0.120.1#654
Conversation
A patch: no C symbol was added or removed since v0.120.0, the case v0.52.2 set the precedent for. The behaviour changes that shipped entry points now answer with go in the release notes' "What moves under you" section.
Compared against v0.120.0. What moves under a caller: an unconfined infinite grid reports an unbounded tape.bounds and meshing refuses it without a region (#645), bounds narrow per operator (#637), the undo bound reports a grab rather than its node (#648), the node influence bound widens behind a smooth sibling (#653), the brick build keeps a grab the cull cannot judge (#652), voxel sculpt-layer operations and creation are undo steps (#647, #651), and pyclay's multires Layer brushes gain layer_height (#636, #646). The ABI section is diffed against the tag: zero symbols added or removed, no '-' line inside a typedef struct. The device gate result is a marked placeholder until the iOS 27.0 same-OS run lands.
A patch with no ABI surface change that a caller still observes in seven ways, each with its measurement, and the eleven merges that carried the released 0.120.0 line without being in v0.120.0.
v0.120.0's notes said its hardware and device gates were stale: that section was written before the gates ran and not updated before the tag. As tagged, the four hardware gates were waived at 59e42cc and the device gate passed at 704f2d4 on iOS 27.0 -- the re-baseline run, which is why v0.120.0 had no regression coverage. Corrected with a dated note above the original text, which is kept. make-voxel-sculpt-layer-creation-a-step (#651) had all 11 tasks ticked and was not archived by the PR that finished it; archived here, with its scene-model delta synced. The roadmap header is recounted: 21 capabilities, 240 archived, 41 open. The v0.120.1 notes now say why this is a patch although pyclay gained a keyword argument, citing the 0.24.2 precedent.
One row per PR merged since the last published release, each with the headline number from its own section, which names what it was measured on. No new figure is introduced.
iPad15,5 on iOS 27.0 (24A437), claycore 7f6cf38 at ABI 0.120.1: seven cold sessions, 75 cases, thermal state nominal at both ends, tree clean. Scored against the iOS 27.0 baseline taken at v0.120.0 -- the first same-OS comparison since the re-baseline, so REGRESSION could fire this time. Nothing failed: median ratio 0.998 across 75 cases, none above both the 1.4 tolerance and the 0.125 ms floor. The canary drifted x1.65 across the run while thermalState read nominal; sdf_flatten and sdf_relax were measured past x1.3 of it and their budgets held.
The gate passed against the iOS 27.0 baseline: median ratio 0.998 over 75 cases, none above both the tolerance and the floor. stroke_build (#634) read 0.324 ms against the baseline's 0.488 -- it fell rather than held or rose, so the notes' two predictions are replaced with what was measured, and the ambiguity about v0.120.0's high reading is stated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts v0.120.1, a patch on top of v0.120.0 (published 2026-09-18, the latest published release). It covers the eleven PRs merged since that tag: #635–#638, #645–#648, #651–#653.
Why a patch
No C ABI symbol was added or removed, and no struct was re-laid out: 708
clay_*(symbols on both sides, and every-line in theclay.hdiff is theCLAY_ABI_PATCHdefine or a comment. That is what moves this repo's minor. pyclay did gain one keyword argument (layer_heighton the multires and sculpt-layer Layer brushes), which the Python API's SemVer would call a minor; the notes say so and follow the 0.24.2 precedent. The version moved in all three files in7f6cf38f.What lands
docs/release-notes/v0.120.1.md. It opens with a one-row-per-PR summary of everything since v0.120.0, then a section per change, What moves under you (formats, then entry points), the ABI diff, the gates, Known limits (including everything carried from v0.120.0), and Upgrading by risk.docs/RELEASE.md: the 0.120.1 history entry.tests/device/last-gate.json: this release's device gate.make-voxel-sculpt-layer-creation-a-step(Make a voxel sculpt layer's creation, and each edit inside it, an undo step #651) archived: all 11 tasks were ticked, but it was left unarchived. The roadmap header is recounted to 21 capabilities, 240 archived, 41 open.The headline changes, for a caller who changes nothing
tape.bounds. Meshing, rasterizing, baking, pyclay'sVolumeconstructors andclay_sdf_smooth_beginnow refuse one without a region, instead of silently dropping material (5,824 of 5,824 samples were outside the box).resolution=gets finer at the same resolution; nothing is lost at a fixed voxel size.Verification
release_check.py --skip-slow: every row PASS, exit 0.bindingschecked against a real built pyclay (766 capabilities).dialectcovers the cpu, cuda and metal profiles.paritycompared cpu only; cuda, opencl and vulkan were not built.Device gate: PASSED, and this time against a real baseline.
7f6cf38f, 75 cases, seven cold sessions, thermal state nominal at both ends, no RunningBoard kill lines.REGRESSIONcould fire. v0.120.0 had no such check.thermalStateread nominal, sosdf_flattenandsdf_relaxwere measured warm. Their budgets held.The four GPU hardware gates are carried as waivers at
59e42ccf. Nothing they depend on changed since then:git diffover the full kernel-relevant set is empty. No GPU backend ran against this tree.Closes #634:
stroke_buildreads 0.324 ms against the baseline's 0.488 (0.66x), within 1.09x of its iOS 26.5.2 figure. So the 1.64x at v0.120.0 neither persisted nor came from the OS. Whether that reading was high or something in this range recovered it, a one-shot gallery case cannot say; the notes state the ambiguity rather than resolve it.After merge
Tag
v0.120.1on the merge commit. The release workflow builds the wheels, the xcframework with its SwiftPM checksum and the kernels artifact, and opens a draft. The draft's body will be replaced withdocs/release-notes/v0.120.1.md, the artifacts checked, and the release published.