Repository navigation
Prepare Python 3.11 floors and phased 0.10 prereleases - #7464
Conversation
|
Merging this PR will regress 1 benchmark
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | test_state_access[read_inherited] |
40.8 ms | 43.2 ms | -5.55% |
| ⚡ | test_hydration_metadata[200] |
2 ms | 1.7 ms | +16.65% |
| ⚡ | test_hydration_metadata[20] |
215.6 µs | 206.9 µs | +4.21% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing codex/reflex-010-prerelease-floors (cfbd93a) with main (8239259)2
Footnotes
-
18 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
r/pre-2026.10.05-37378928999(052ca91) during the generation of this report, somain(8239259) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
A publish-last member now needs only the early members of its group, tagged at its own version: it plans from its own baseline, reuses a sibling tag that already exists, and otherwise plans the sibling at the same version. Early members release on their own. Two publish-last members no longer need each other, so pin-exact groups with several cannot deadlock on each other's tags. Planning computes targets first and checks the dependency pins of what it planned, holding back blocked packages and the packages that need them; an explicit selection that cannot release fails as before. The exact pin is checked against the declared requirement at plan time as well as at build time, so a floor raised past a reusable sibling tag stops the release before any changelog is bumped. prepare-publish requires every early member's tag before a publish-last member builds. Sibling floors use the .dev0 of each sibling's next version, and the docs, template comments and news fragments say the same thing in fewer words. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZxGmMwCvKGcUJu6TK99jZ
The planner skips a package with an unsatisfiable pin instead of computing its next version, so a release action that does not apply to a held dependent no longer stops its sibling's release. Blocked pins are gathered once for the selection and its lockstep partners; a dependent whose missing partner is blocked is held back with it, and a partner reused from an existing tag is not consulted at all. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZxGmMwCvKGcUJu6TK99jZ
There was a problem hiding this comment.
1 issue found across 33 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/release_from_changelog.yml">
<violation number="1" location=".github/workflows/release_from_changelog.yml:23">
P3: This says each exact-pin member waits for every package in the batch, but `publish-last` members require only early-member tags and can run alongside other late members. Name the required early siblings to avoid implying an unnecessary serial dependency.</violation>
</file>
The workflow comment described the late leg as waiting on every package in the batch; it runs after the first leg, but the gate is the tags of the siblings each late member pins. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZxGmMwCvKGcUJu6TK99jZ
…release-floors Keep this branch's sibling floors, which are above the reflex-base 0.9.13.dev0 bump the base brought in, and the base's fake build version in the wheelhouse test, which its assertion already expects. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MZxGmMwCvKGcUJu6TK99jZ
The 0.10 prerelease train needs sibling releases that include the Python 3.11 minimum. Raise every runtime sibling floor to the
.dev0of the sibling's next version, so each dependent's floor lifts to the release an earlier phase publishes. Exclude the earlier hosting CLI alpha that predates the Python floor change, and let the hosting CLI take the SDK's upcoming 0.1.0 train within its cap.Make
publish-lastlockstep groups directional:reflex-base) release on their own, from their own baseline, and get their own Dispatch checkbox.publish-lastmember (reflex) advances from its own baseline and needs every early member tagged at that version. An existing tag is reused; otherwise the early member is planned alongside. Planning checks the exact pin against the declared requirement, so a floor raised past the reusable tag stops the release before any changelog is bumped.publish-lastmembers need only the early members, never each other, so pin-exact groups with several late members cannot deadlock.prepare-publishrequires the early members' tags before a late member builds, including for a manual publish dispatch.publish-lastkeep their symmetric behaviour and shared checkbox.Release order
This is one valid schedule for the current branch. Component names below omit
reflex-components-. Wait for each phase's uploads and tags before materializing the next; whennew-prerelease-minorreturns a new branch, use that branch for subsequent phases.continued-prereleasenew-prerelease-minornew-prerelease-minorcontinued-prereleasenew-prerelease-minorcontinued-prereleasecontinued-prereleasecontinued-prereleasecontinued-prereleasecontinued-prereleaseValidation
uv lock --checkandreflex-release sync --checkare clean.scripts/check_min_deps.pypasses for reflex-hosting-cli and reflex-release. It fails for reflex and the components on this branch because uv does not opt into prereleases for a transitive dev floor (hosting-cli on reflex-build-sdk, core on sonner). Those floors lift to published versions as the phases run, and the check does not run for pull requests intor/pre-*.Submission checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01MZxGmMwCvKGcUJu6TK99jZ
<source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img alt="Turn on auto-fix" src="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg">