Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## v0.9.4 (2026-06-03)

### Deprecations

- `rx._x.memo` is deprecated in favor of `rx.memo`. The old name remains a working alias for now; update imports to use `rx.memo` directly. ([#6517](https://github.com/reflex-dev/reflex/issues/6517))
- `@rx.memo` now expects each parameter to be annotated as `rx.Var[...]` (or `rx.RestProp`/`rx.EventHandler`) and the function to declare an `rx.Component` or `rx.Var[...]` return type. Memos that still use bare Python types (e.g. `name: str`) or omit the return annotation keep working — the values are coerced to `rx.Var[...]`/`rx.Component` and a deprecation warning points at the parameters and return type that need explicit annotations — but this fallback will be removed in 1.0. ([#6598](https://github.com/reflex-dev/reflex/issues/6598))

### Features

- Added `rx._x.hybrid_property`, a property decorator usable on State classes that works like a normal Python property for backend access while also rendering on the frontend at class level. Use the same method for both, or register a separate frontend implementation with `@<name>.var`. ([#3806](https://github.com/reflex-dev/reflex/issues/3806))
- Promoted the component memo system to a first-class `rx.memo` API. Memo-decorated components now accept `rx.EventHandler` parameters and carry annotated return types so they type-check correctly at call sites. ([#6517](https://github.com/reflex-dev/reflex/issues/6517))
- Added `rx.EMPTY_VAR_COMPONENT`, an empty-component `rx.Var[rx.Component]` sentinel for use as a default on `@rx.memo` `children` slots (and any `rx.Var[rx.Component]` prop) — the component counterpart to `rx.EMPTY_VAR_STR` and `rx.EMPTY_VAR_INT`. ([#6598](https://github.com/reflex-dev/reflex/issues/6598))
- `@rx.memo` now evaluates the decorated function body lazily — on first use (component instantiation) or at compile time — instead of at import time. This speeds up startup and lets a memo reference modules that aren't fully imported yet, sidestepping circular-import errors during decoration. Body-dependent errors (e.g. a var-returning memo that uses hooks or non-bundled imports) now surface when the memo is first used or compiled rather than at import. ([#6598](https://github.com/reflex-dev/reflex/issues/6598))

### Miscellaneous

- Introduced towncrier-based changelog management. Each PR that changes package source now adds a fragment under the affected package's `news/` directory; fragments are assembled into `CHANGELOG.md` at release time. See CONTRIBUTING.md for the full workflow. ([#6350](https://github.com/reflex-dev/reflex/issues/6350))
- Removed the "choose templates" option from `reflex init`. The interactive prompt now offers only a blank app or the AI builder, and no longer opens the open-source templates page. ([#6592](https://github.com/reflex-dev/reflex/issues/6592))
14 changes: 9 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,14 @@ If you don't yet know the PR number, use an [orphan fragment](https://towncrier.

**Skipping the fragment check:** for PRs that are genuinely not user-facing (CI-only tweaks, script fixes, test-only changes), apply the `skip-changelog` label on the PR to bypass the changelog CI check.

**Publishing CHANGELOG.md**: This step should be completed by maintainers during
the release process. If you have access to publish a release, you can run the
following command to generate the `CHANGELOG.md` file in each subpackage.

```bash
uv run towncrier build --config pyproject.toml --version v0.9.4
```

Comment thread
masenf marked this conversation as resolved.
## ✅ Making a PR

Once you solve a current issue or improvement to Reflex, you can make a PR, and we will review the changes.
Expand Down Expand Up @@ -163,11 +171,7 @@ Paths must start with `/`, have no trailing slash, and are prefix-matched. An em

## Editing Templates

To edit the templates in Reflex you can do so in two way.

Change to the basic `blank` template can be done in the `reflex/.templates/apps/blank` directory.

Others templates can be edited in their own repository. For example the `sidebar` template can be found in the [`reflex-sidebar`](https://github.com/reflex-dev/sidebar-template) repository.
Changes to the basic `blank` template can be done in the `reflex/.templates/apps/blank` directory.

## Other Notes

Expand Down
1 change: 0 additions & 1 deletion news/3806.feature.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6350.misc.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6517.deprecation.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6517.feature.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6592.misc.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6598.deprecation.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6598.feature.1.md

This file was deleted.

1 change: 0 additions & 1 deletion news/6598.feature.md

This file was deleted.

19 changes: 19 additions & 0 deletions packages/reflex-base/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## v0.9.4 (2026-06-03)

### Deprecations

- Component-returning `@rx.memo` again accepts `key` without an `rx.RestProp` (with a deprecation warning), so `rx.foreach` call sites that set the react `key` keep working; this fallback is removed in 1.0. Other base props (`id`, `class_name`, `style`, `custom_attrs`, `ref`) and identity fields like `tag`/`library` still raise — declare an `rx.RestProp` to forward them.

### Features

- Dependency tracking now follows through hybrid properties, so computed vars that read a `hybrid_property` correctly recompute when the underlying state vars change. ([#3806](https://github.com/reflex-dev/reflex/issues/3806))
- The component memo implementation now lives in `reflex_base.components.memo` and is exported as `rx.memo`. Added `EMPTY_VAR_STR` and `EMPTY_VAR_INT` sentinel vars as memo-friendly defaults. ([#6517](https://github.com/reflex-dev/reflex/issues/6517))

### Bug Fixes

- Pin `es-toolkit@1.46.1` via package overrides to work around upstream breakage in recharts and es-toolkit. ([#6570](https://github.com/reflex-dev/reflex/issues/6570))
- Unpin `es-toolkit@1.46.1` via package overrides and bump vite to 8.0.14 to work around upstream breakage in recharts and es-toolkit. ([#6571](https://github.com/reflex-dev/reflex/issues/6571))

### Miscellaneous

- Removed the `Templates.CHOOSE_TEMPLATES` and `Templates.REFLEX_TEMPLATES_URL` constants, which supported the now-removed open-source templates `reflex init` option. ([#6592](https://github.com/reflex-dev/reflex/issues/6592))

This file was deleted.

1 change: 0 additions & 1 deletion packages/reflex-base/news/3806.feature.md

This file was deleted.

1 change: 0 additions & 1 deletion packages/reflex-base/news/6517.feature.md

This file was deleted.

1 change: 0 additions & 1 deletion packages/reflex-base/news/6570.bugfix.md

This file was deleted.

2 changes: 0 additions & 2 deletions packages/reflex-base/news/6571.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion packages/reflex-base/news/6592.misc.md

This file was deleted.

5 changes: 5 additions & 0 deletions packages/reflex-components-markdown/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## v0.9.3 (2026-06-03)

### Miscellaneous

- Updated markdown custom-code collection to use the new `rx.memo` component API instead of the removed `CustomComponent` handling. ([#6517](https://github.com/reflex-dev/reflex/issues/6517))
1 change: 0 additions & 1 deletion packages/reflex-components-markdown/news/6517.misc.md

This file was deleted.

3 changes: 3 additions & 0 deletions packages/reflex-components-radix/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## v0.9.4 (2026-06-03)

No significant changes.
3 changes: 3 additions & 0 deletions packages/reflex-docgen/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## v0.9.2 (2026-06-03)

No significant changes.
Loading