Skip to content

Prepare Python 3.11 floors and phased 0.10 prereleases - #7464

Merged
masenf merged 6 commits into
r/pre-2026.10.05-37378928999from
codex/reflex-010-prerelease-floors
Oct 7, 2026
Merged

masenf merged 6 commits into
r/pre-2026.10.05-37378928999from
codex/reflex-010-prerelease-floors

Conversation

@masenf

@masenf masenf commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

The 0.10 prerelease train needs sibling releases that include the Python 3.11 minimum. Raise every runtime sibling floor to the .dev0 of 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-last lockstep groups directional:

  • Early members (reflex-base) release on their own, from their own baseline, and get their own Dispatch checkbox.
  • A publish-last member (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-last members need only the early members, never each other, so pin-exact groups with several late members cannot deadlock.
  • A package with an unsatisfiable pin is held back before its version is planned, so an action that does not apply to it cannot stop its siblings. A package whose needed partner is blocked is held back with it; an explicit selection that cannot release fails.
  • prepare-publish requires the early members' tags before a late member builds, including for a manual publish dispatch.
  • Groups without publish-last keep 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; when new-prerelease-minor returns a new branch, use that branch for subsequent phases.

Phase Action Packages and target versions
1 continued-prerelease reflex-base 0.10.0a2
2 new-prerelease-minor reflex-build-sdk 0.1.0a1, reflex-release 0.2.0a1, lucide 1.1.0a1
3 new-prerelease-minor reflex-hosting-cli 0.2.0a1, sonner 0.10.0a1
4 continued-prerelease core, gridjs, moment 0.10.0a2
5 new-prerelease-minor dataeditor, react-player 0.10.0a1
6 continued-prerelease radix, plotly, recharts 0.10.0a2
7 continued-prerelease code 0.10.0a2
8 continued-prerelease markdown 0.10.0a2
9 continued-prerelease reflex 0.10.0a2, reusing the base tag from phase 1
10 continued-prerelease reflex-docgen 0.10.0a2

Validation

  • The release, min-deps and workflow-gate unit suites pass, with new coverage for tag reuse, the plan-time pin check, independent late members, a blocked dependent held back ahead of an inapplicable action, and explicit selection of a blocked dependent.
  • Ruff, pyright, uv lock --check and reflex-release sync --check are clean.
  • scripts/check_min_deps.py passes 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 into r/pre-*.

Submission checklist

  • Followed CONTRIBUTING.md and checked for an existing PR covering this change.
  • Added regression tests and verified them locally.
  • Updated documentation and package news fragments.
  • Linted and formatted the changes.

🤖 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">

@greptile-apps

greptile-apps Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[High risk] Restructures release workflow and dependency version floors.

No new blocking issue was established; the remaining action-order case belongs to the existing review thread.

What we checked:

  • Late builds cannot run ahead: prepare-publish rejects a late member when the required early tag is missing.

Summary

Raises sibling dependency floors for the Python 3.11 release train and lets early members of publish-last groups release separately.

  • Adds separate release checkboxes and reuses matching early-member tags.
  • Checks exact pins before changing changelogs and requires early-member tags before late builds.
  • Adds release-planning tests and isolates the minimum-dependency test from changing workspace floors.
  • masenf dismissed the timeout and missing-product findings because those changes came from main, outside this PR.

Reviews (6) · Last reviewed commit: "Merge branch 'r/pre-2026.10.05-373789289..." · Reviewed by Greptile

Comment thread packages/reflex-release/src/reflex_release/commands.py Outdated
Comment thread packages/reflex-release/src/reflex_release/commands.py Outdated
Comment thread .github/actions/setup_build_env/action.yml
Comment thread examples/playground/playground/states/editor.py
@codspeed

codspeed Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Merging this PR will regress 1 benchmark

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 2 improved benchmarks
❌ 1 regressed benchmark
✅ 147 untouched benchmarks
⏩ 18 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

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

Open in CodSpeed

Footnotes

  1. 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. ↩

  2. No successful run was found on r/pre-2026.10.05-37378928999 (052ca91) during the generation of this report, so main (8239259) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

@masenf masenf added the skip-changelog For doc/internal changes label Oct 6, 2026
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
Comment thread packages/reflex-release/src/reflex_release/commands.py Outdated
@masenf masenf added the on deck PRs lined up to review / merge next label Oct 7, 2026
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
@masenf
masenf changed the base branch from r/pre-2026.10.05-37378928999 to main October 7, 2026 01:12
@masenf
masenf changed the base branch from main to r/pre-2026.10.05-37378928999 October 7, 2026 01:13
@masenf
masenf marked this pull request as ready for review October 7, 2026 01:52
@masenf
masenf requested a review from a team as a code owner October 7, 2026 01:52

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Comment thread .github/workflows/release_from_changelog.yml Outdated
claude added 2 commits October 7, 2026 02:15
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
@masenf
masenf merged commit bf12bd4 into r/pre-2026.10.05-37378928999 Oct 7, 2026
9 checks passed
@masenf
masenf deleted the codex/reflex-010-prerelease-floors branch October 7, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

on deck PRs lined up to review / merge next skip-changelog For doc/internal changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants