NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2264 most downloaded on pub.dev
Support for marking objects as observable
Last release 5 years ago
no release in 18 months
Ships unpredictably
gaps range from 1 weeks to 2.1 years
Most releases are documented
notes for 28 of 36 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
36 releases · first in 2014
Bump dependencies and prepare for release
Bump dependencies and prepare for release
ObservableMap did not notify for all methods.Reintroduce custom equality for PropertyChangeRecord from 0.18.0.
PropertyChangeRecord from 0.18.0.One column per quarter.
Add toObservableList and toObservableMap, better typed versions of toObservable.
toObservableList and toObservableMap, better typed versions of
toObservable.Added ObservableList.castFrom , similar to List.castFrom .
Added ObservableList.castFrom, similar to List.castFrom.
Changed ObservableList's cast and retype function to create a forwarding
instance of ObservableList instead of an instance of List.
Fixes for Dart2 runtime type errors.
Fixes for Dart2 runtime type errors.
Widen dependency on the quiver package.
Widen dependency on the quiver package.
Update implementations of the cast() and the deprecated retype() methods.
Update implementations of the cast() and the deprecated retype() methods.
retype() method on List and Map is deprecated and will be removed.cast() method should do what the retype() method did.Bump and widen dev dependencies on build packages.
Support Dart 2 stable.
Bump and widen dev dependencies on build packages.
Fix generic type error that occurs when using ChangeNotifier with a subclass of ChangeRecord. Previously, calling notifyChanges() on class Foo with Ch
Fix generic type error that occurs when using ChangeNotifier with a subclass of
ChangeRecord. Previously, calling notifyChanges() on
class Foo with ChangeNotifier<CustomChangeRecord> {} would throw a type error.
Now, the changes stream emits a custom ChangeRecords class that implements
the List interface. This change is backwards compatible.
Added ObservableMap.castFrom, similar to Map.castFrom.
Added ObservableMap.castFrom, similar to Map.castFrom.
Fixed a bug where ObservableMap's cast and retype function would create
a new empty instance instead of a forwarding instance.
Support Dart 2 collection methods where previously threw UnimplementedError.
UnimplementedError.Fix toObservable(deep: false) to be shallow again.
toObservable(deep: false) to be shallow again.Maps, for better compatibility with Dart 2.Updated one test to comply with Dart 2 voidness semantics.
toObservable().ObservableList.from() to take Iterable, not Iterable<T>. This
matches List.from() and avoids some unnecessary cast failures.Revert refactor and deprecate ObservableMap-specific API
Version 0.21.0 reverts to version 0.17.0+1 with fixes to support Dart 2. Versions 0.18, 0.19, and 0.20 were not used by the package authors and effectively unsupported. This resolves the fork that happened at version 0.18 and development can now be supported by the authors.
(From 0.20.1)
Observable<List|Set|Map>.unmodifiable for immutable collectionsObservable<List|Set|Map>.EMPTY for empty immutable collections
(From 0.20.0)
ObservableSet, SetChangeRecord, and SetDiffer(From 0.19.0)
ObservableMap-specific API
ObservableMap no longer emits #keys and #values change recordsObservableMap.spy is deprecated, becomes .delegate insteadObservableMap may no longer be extendedRevert considered deprecated to be notified of length changes.
(From 0.18.0)
ObservableList-specific API
ObservableList.applyChangeRecordsObservableList.calculateChangeRecordsObservableList.withLengthObservableList.deliverListChangesObservableList.discardListChangesObservableList.hasListChangesObservableList.listChangesObservableList.notifyListChangeObservableList may no longer be extendedRevert considered deprecated to be notified of length, isEmpty and
isNotEmpty PropertyChangeRecords on ObservableList
(With internal change numbers)
@protected to @visibleForTesting. cl/147029982ChangeRecord.NONE
creates a List<ChangeRecord>, while the call sites expect a
List<ListChangeRecord> or List<MapChangeRecord>, respectively.
cl/155201160Observable._isNotGeneric check. cl/162282107Observable{List|Map}.NONE (not Dart2 compatible).ObservableList._notifyListChange. cl/182284033Support the latest release of pkg/quiver (0.26).
pkg/quiver (0.26).extends ChangeNotifier rather than extends ChangeNotifier<PropertyChangeRecord>.ListChangeRecord.NONE and MapChangeRecord.NONE.Support the latest release of pkg/quiver (0.27).
pkg/quiver (0.27).Bug fix: Additional fix around ObservableList.listChanges
ObservableList.listChangesSupport the latest release of pkg/quiver (0.25).
pkg/quiver (0.25).Bug fix: Avoid emitting a no-op MapChangeRecord
MapChangeRecordObservableList.discardListChanges functionalityAdd Observable .unmodifiable for immutable collections
Observable<List|Set|Map>.unmodifiable for immutable collectionsObservable<List|Set|Map>.EMPTY for empty immutable collections
Refactor and deprecate ObservableMap-specific API
ObservableMap-specific API
ObservableMap no longer emits #keys and #values change recordsObservableMap.spy is deprecated, becomes .delegate insteadObservableMap may no longer be extendedIt is also considered deprecated to be notified of length changes.
Bug fix: Do not throw when Observable .notifyChange is used
Observable<T>.notifyChange is usedRefactor and deprecate ObservableList-specific API
ObservableList-specific API
ObservableList.applyChangeRecordsObservableList.calculateChangeRecordsObservableList.withLengthObservableList.deliverListChangesObservableList.discardListChangesObservableList.hasListChangesObservableList.listChangesObservableList.notifyListChangeObservableList may no longer be extendedIt is also considered deprecated to be notified of length, isEmpty
and isNotEmpty PropertyChangeRecords on ObservableList - in a
future release ObservableList.changes will be
Stream<List<ListChangeRecord>>.
Started deprecating the wide Observable interface
This is a larger change with a goal of no runtime changes for current
customers, but in the future Observable will become a very
lightweight interface, i.e.:
abstract class Observable<C extends ChangeRecord> {
Stream<List<C>> get changes;
}
Observable interface
ChangeNotifier should be used as a base class for these methods:
Observable.observedObservable.unobservedObservable.hasObserversObservable.deliverChangesObservable.notifyChangePropertyChangeNotifier should be used for these methods:
Observable.notifyPropertyChangeObservable uses ChangeNotifier
implements Observable should
move to implementing or extending ChangeNotifier. In a
future release Observable will reduce API surface down to
an abstract Stream<List<C>> get changes.ChangeNotifier and PropertyChangeNotifier classes
Observable in a generic mannerObservable<C extends ChangeRecord>
C, notifyPropertyChange is illegalRevert PropertyChangeMixin, which does not work in dart2js
PropertyChangeMixin, which does not work in dart2jsAdded equality and hashCode checks
MapChangeRecord
MapChangeRecord.apply to apply a change recordMapDiffer, which implements Differ for a MapFix analysis errors caused via missing /* */ syntax in 0.15.0
/*<E>*/ syntax in 0.15.0Nothing published for this version
Add a missing dependency on pkg/meta.
pkg/meta.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 →