Skip to content

v0.6.0

Compare
Choose a tag to compare
@masenf masenf released this 24 Sep 22:13
2b17a32

Overview of Changes from 0.5.0 to 0.6.0

Breaking Changes

Drop support for python 3.8

  • bump python>=3.10 for 0.6.0 (#3956)
  • Bring back py3.9 support with a deprecation warning. (#3976)

Remove Deprecated Features

  • rx.input.root (0.5.0)
  • rx.Component._apply_theme (0.5.0)
  • _type, _min, _max prop rewriting (0.4.0)
  • Passing props to rx.foreach (0.5.0)
  • rx.el aliases for defs, lineargradient, stop, path (use rx.el.svg namespace)
  • Lucide icons that were removed upstream (0.4.6)
  • passing children to rx.color_mode.button (0.5.0)
  • rx.cached_var (0.5.6)
  • Specifying REDIS_URL without a url scheme (0.3.6)

PRs

New Var System

A Var is a placeholder for a value which is sent to the frontend or rendered as Javascript code in the app. Most users of Reflex do not interact with the var system directly, but it becomes relevant for advanced users that are wrapping components or handling custom types.

  • rx.Var.create(...) now returns a LiteralVar subclass wrapping the provided value.
    • _var_is_string is deprecated, passing a string will always create a StringVar
  • rx.Var(...) returns an ImmutableVar representing a raw javascript expression.
    • Replaces the deprecated _var_is_local param
  • Vars are not automatically cast as bool, when passing a non-bool var to a prop that expects a boolean, add .bool() after the var -- error message will include this hint.

The new Var system brings a much more accurate translation of literal python values into javascript, especially of object and array types.

rx.chakra removed from main repo

First, pip install reflex-chakra. Then import reflex_chakra as rc. rx.chakra will still work until 0.7.0, but it is recommended to move now to avoid deprecation warning.

Var Shadowing Detection

When a dynamic route arg name conflicts with the name of an existing state Var, the framework will raise DynamicRouteArgShadowsStateVar. This is intended to avoid unexpected behavior wherein the dynamic var takes precedence over the state var, even in a substate. A fix for the underlying cause is forthcoming.

In the meantime, define any pages that use dynamic route arguments early, so the dynamic var is available for use in the page functions.


When a computed var name conflicts with the name of an existing state Var, the framework will raise ComputedVarShadowsStateVar.

rx.progress is now Radix Themes Progress

The previous Radis Primitives progress is available as rx.radix.primitives.progress

Watchfiles dependency removed

If you are upgrading reflex in an existing environment run pip uninstall watchfiles first to ensure the hot reload mechanism is properly ignoring the .web directory.

New Features

DiskStateManager - preserve state across hot reloads in dev mode

/_health endpoint

http://localhost:8000/_health
{"status":true,"db":true,"redis":false}

Improvements

Var System

  • fully migrate vars into new system by @adhami3310 in #3743
  • guess_type: if the type is optional, treat it like it's "not None" by @masenf in #3839
  • Fix double-quoting of defaultColorMode by @masenf in #3840
  • ImmutableVar perf optimizations by @masenf in #3814
  • Get attribute access type fix by @benedikt-bartscher in #3803
  • fix var in bare by @adhami3310 in #3873
  • add var_operation and move some operations to the new style by @adhami3310 in #3841
  • Adding array to array pluck operation. by @abulvenz in #3868
  • simplify ImmutableComputedVar.get by @benedikt-bartscher in #3902
  • Use old serializer system in LiteralVar by @adhami3310 in #3875
  • Fix type propagation in ToStringOperation by @abulvenz in #3895
  • [ENG-3833] handle object in is bool (#3974)
  • suggest bool() for wrong values (#3975)
  • use is true for bool var (#3973)
  • Add shim for format_event_chain (#3958)
  • use serializer before serializing base yourself (#3960)
  • [ENG-3817] deprecate _var_name_unwrapped (instead of removing it) (#3951)
  • move the filterwarning to appropriate file (#3952)
  • fix unionize recursion (#3948)
  • add special handling for infinity and nan (#3943)
  • use is true (#3946)
  • use serializer for state update and rework serializers (#3934)
  • replace old var system with immutable one (#3916)
  • Remove Pydantic from some classes (#3907)

Documentation / Error Messages

  • Add comments to DataList components by @elviskahoro in #3827
  • [REF-3589] raise EventHandlerArgMismatch when event handler args don't match spec by @masenf in #3853
  • better errors in state.py (#3929)

Other Changes

Bug Fixes

New Contributors

Full Changelog: v0.5.10...v0.6.0