v0.7.13 Pre-release thread #5330
Closed
adhami3310
announced in
Release
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Please report any problems you encounter in this discussion thread or as separate issues on reflex-dev/reflex.
pip install 'reflex~=0.7.13a'Schedule
2025-05-22 15:00 PST: 0.7.13a1 pre-release published for testing
2025-05-23 14:45 PST: 0.7.13a2 pre-release published for testing
2025-05-26: Planned Public release of 0.7.13
0.7.13a2
Release Notes
Remove Pydantic as a base class of Component
rx.Componentused to inherit fromBaseModel, but that's no longer the case. We opted to write our own Metaclass to handle the specific needs of Components better.This has great improvements for hot reload time for small apps as Pydantic spent around 75% of import time just deep copying fields. On my own machine, a hot reload of a simple app went down from ~1.2sec to just around 200ms!
While this is not intended to be a breaking change, it's likely that a very introspective code could behave differently with this one. So please test it and report to us so we can preserve behavior as best as possible.
length() for dicts
If you are using object vars (State fields of type dict or Base/dataclasses), you can now call
.length()on them. This is a simple wrapper over.keys().length().Allow Vars to be the result of the render function of Foreach
This relaxes the requirement from being a component. Vars are wrapped in a Fragment.
Prefix Config Vars with
REFLEX_The environment variables defined in
Configwill now be read withREFLEX_as a prefix. Previous not prefixed names are still names but are deprecated.Stronger type checking against partially filled variables
If you were unlucky enough, you might have written some code where you capture some arguments but reflex decides that it wants to give your event handler even more arguments. In these cases, we weren't checking the types of such arguments against the event callback. This now triggers a compilation error.
Ignore certain file formats from hot reload
Granian was reloading on more file formats than necessary, so we manually exclude a set of file formats that are unlikely to be a cause of hot reload. If you still notice weird hot reloads on file changes that are irrelevant to your application, we can append that list with more values.
Tailwind V3 is now contained in a module (and rudimentary Reflex Plugin System)
We now have a basic plugins system with a few hooks. It's not very documented, but you can basically provide a list of plugins to the plugins argument in
rx.Config. You can add compile time hooks to create files, modify files, define stylesheets, define javascript dependencies, and more.We moved our tailwind v3 code to use such plugin system. You should either set
tailwind=Noneinside of yourrx.Configor setpluginsto[rx.plugins.TailwindV3Plugin()]. Automatic assumption of tailwind is deprecated.We're also starting our work on Tailwind V4. A plugin that is likely to work but not fully is available under
rx.plugins.TailwindV4Plugin.Bugfixes
Chores
Full Changelog: v0.7.12...release/reflex-0.7.13
Beta Was this translation helpful? Give feedback.
All reactions