NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2954 most downloaded on pub.dev
A state management library written in dart that enforces immutability
Last release 19 days ago
18 Sep 2026
Ships fairly regularly
a new release about every 7 months
Some releases are documented
notes for 33 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
68 releases · first in 2017
Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
Notes created on Friday, September 18 09:19 PM UTC
>=10.0.0 <15.0.0Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
One column per quarter.
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
Notes created on Sunday, February 15 02:22 PM UTC
^3.10.0^10.0.0Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
Notes created on Monday, November 04 04:27 PM UTC
>=5.0.0 <7.0.0)build, built_value, and source_gen* restrict analyzer to 5.x
* open analyzer range to 5
Nothing published for this version
* reopen analyzer range
only use nndb in generator if nndb feature is enabled. prevents build issues for non nndb consumers
updated analyzer range to allow 2.x.x
updated analyzer, source_gen, build, build_test dependency ranges
address deprecations in generator
ActionDispatcher.call are no longer optional. when dispatching an action a payload a value must be provided. if the payload type is nullable null must be explicitly provided. append a ? to the ActionDispatcher type parameter for any actions that can be dispatched with a null payload, e.g. ActionDispatcher<int?>.Nothing published for this version
Nothing published for this version
Nothing published for this version
* allow analyzer 0.39.0 * make dispatcher name public * fix documentation typo
remove usage of new keyword in code and examples
add type_annotate_public_apis lint ignore to generated files
rework generator to lift analyzer version constraint.
open built value range restrict analyzer to less than 0.38.3, issue was introduced in 0.38.3 patch
open built value range restrict analyzer to less than 0.38.3, issue was introduced in 0.38.3 patch
add dart2js:noInline annotations
add dart2js:noInline annotations
update analyzer dependency to allow '>=0.33.0 <0.39.0'
update analyzer dependency to allow '>=0.33.0 <0.39.0'
update analyzer dependency to allow '>=0.33.0 <0.37.0' fix type in built_redux_test_utils.dart
update analyzer dependency to allow '>=0.33.0 <0.37.0' fix type in built_redux_test_utils.dart
update analyzer dependency to allow '>=0.33.0 <0.36.0'
update analyzer dependency to allow '>=0.33.0 <0.36.0'
update analyzer dependency to allow ^0.33.0
update analyzer dependency to allow ^0.33.0
update build dependencies
update build dependencies
allow 4.x.x of built_collection
update built_value and source_gen dependencies
update generator to use typedef names in actiondispatcher generics
update generator to use typedef names in actiondispatcher generics
update dependency range on analyzer
Nothing published for this version
add lint ignores to generated files
fix cast issues around store changes in dart 2
* open sourc-gen range * run tests on the dev compiler
add built_redux_test_utils library - exposes an expectDispatched function for expecting a given action gets dispatched asynchronously
add build.yaml and build.dart to comply with build_runner 0.7.x
With the dev tag you can consume the latest versions of built_value, build, and build_runner that are only compatable with dart 2.
In order to migrate:
build_runner: ^0.7.9
targets:
$default:
builders:
built_value_generator|built_value:
enabled: false
pub run build_runner build.The build script is only a temporary measure until https://github.com/dart-lang/source_gen/issues/319 is resolved.
Nothing published for this version
Nothing published for this version
update readme to include link to todoMVC repo
open dependency range on the build package
open dependency range on the built_collection package
* dispose is now awaitable
Added actionStream stream to the store api so one can listen to changes resulting from a specific action name.
Added reducer builders for all collection types in built_collection. This means you can now write reducers that rebuild just a collection. Examples: h
A breaking change in behavior was made to action dispatchers. Before action dispatchers executed the middleware/reducers asynchronously, but they now…
For example you may have:
int getCount(store) {
print(store.state.count); // prints 0
store.actions.increment(1);
print(store.state.count); // would print 1 if actions were sync, 0 if async
return store.state.count; // would return 1 if actions were sync, 0 if async
}
Before this function would return 0 because the state update that occurs from actions.increment would be processed in a future task. Now this function will return 1 because the state update that occurs from actions.increment is processed in the current task
Nothing published for this version
Nothing published for this version
Removes the BuiltReducer interface and the generated BuiltReducer implementation in favor of building a reducer function and passing it to the store a
Removes the BuiltReducer interface and the generated BuiltReducer implementation in favor of building a reducer function and passing it to the store at instantiation.
Reasoning:
Examples:
Before:
abstract class Counter extends Object
with CounterReducer
implements Built<Counter, CounterBuilder> {
int get count;
get reducer => _reducer;
Counter._();
factory BaseCounter() => new _$BaseCounter._(count: 1);
}
After:
abstract class Counter implements Built<Counter, CounterBuilder> {
int get count;
Counter._();
factory BaseCounter() => new _$BaseCounter._(count: 1);
}
Before
// Built Reducer
abstract class BaseCounter extends Object
with BaseCounterReducer
implements Built<BaseCounter, BaseCounterBuilder> {
int get count;
BuiltList<int> get indexOutOfRangeList;
NestedCounter get nestedCounter;
@override
get reducer => _baseReducer;
// Built value constructor
BaseCounter._();
factory BaseCounter() => new _$BaseCounter._(
count: 1,
nestedCounter: new NestedCounter(),
);
}
final _baseReducer = (new ReducerBuilder<BaseCounter, BaseCounterBuilder>()
..add(BaseCounterActionsNames.increment, _baseIncrement)
..add(BaseCounterActionsNames.decrement, _baseDecrement))
.build();
abstract class NestedCounter extends Object
with NestedCounterReducer
implements Built<NestedCounter, NestedCounterBuilder> {
int get count;
get reducer => _nestedReducer;
// Built value constructor
NestedCounter._();
factory NestedCounter() => new _$NestedCounter._(count: 1);
}
final _nestedReducer = (new ReducerBuilder<NestedCounter, NestedCounterBuilder>()
..add(NestedCounterActionsNames.increment, _nestedIncrement)
..add(NestedCounterActionsNames.decrement, _nestedDecrement))
.build();
After
abstract class BaseCounter implements Built<BaseCounter, BaseCounterBuilder> {
int get count;
NestedCounter get nestedCounter;
BaseCounter._();
factory BaseCounter() => new _$BaseCounter._(
count: 1,
nestedCounter: new NestedCounter(),
);
}
// the reducer passed to the store
final reducer = (new ReducerBuilder<BaseCounter, BaseCounterBuilder>()
..add(BaseCounterActionsNames.increment, _baseIncrement)
..add(BaseCounterActionsNames.decrement, _baseDecrement)
..combineNested(_nestedReducer))
.build();
abstract class NestedCounter implements Built<NestedCounter, NestedCounterBuilder> {
int get count;
// Built value constructor
NestedCounter._();
factory NestedCounter() => new _$NestedCounter._(count: 1);
}
final _nestedReducer = new NestedReducerBuilder<BaseCounter, BaseCounterBuilder,
NestedCounter, NestedCounterBuilder>(
(state) => state.nestedCounter,
(builder) => builder.nestedCounter,
)
..add(NestedCounterActionsNames.increment, _nestedIncrement)
..add(NestedCounterActionsNames.decrement, _nestedDecrement);
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →