Skip to content

Commit ea8155b

Browse files
authored
Publish changelogs for reflex v0.9.4 release (#6601)
* Publish changelogs for reflex v0.9.4 release * missed this change in previous commit
1 parent bb8b6f5 commit ea8155b

21 files changed

Lines changed: 57 additions & 21 deletions

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## v0.9.4 (2026-06-03)
2+
3+
### Deprecations
4+
5+
- `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))
6+
- `@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))
7+
8+
### Features
9+
10+
- 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))
11+
- 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))
12+
- 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))
13+
- `@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))
14+
15+
### Miscellaneous
16+
17+
- 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))
18+
- 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))

β€ŽCONTRIBUTING.mdβ€Ž

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ If you don't yet know the PR number, use an [orphan fragment](https://towncrier.
8888

8989
**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.
9090

91+
**Publishing CHANGELOG.md**: This step should be completed by maintainers during
92+
the release process. If you have access to publish a release, you can run the
93+
following command to generate the `CHANGELOG.md` file in each subpackage.
94+
95+
```bash
96+
uv run towncrier build --config pyproject.toml --version v0.9.4
97+
```
98+
9199
## βœ… Making a PR
92100

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

164172
## Editing Templates
165173

166-
To edit the templates in Reflex you can do so in two way.
167-
168-
Change to the basic `blank` template can be done in the `reflex/.templates/apps/blank` directory.
169-
170-
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.
174+
Changes to the basic `blank` template can be done in the `reflex/.templates/apps/blank` directory.
171175

172176
## Other Notes
173177

β€Žnews/3806.feature.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6350.misc.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6517.deprecation.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6517.feature.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6592.misc.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6598.deprecation.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6598.feature.1.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žnews/6598.feature.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
Β (0)