PackageTrack
Sign in Get early access

observable

Support for marking objects as observable

0.24.0 17K downloads/mo #2343 most downloaded on pub.dev google/observable

What this package is like to depend on

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

0 releases in the last 12 months

see the full history below

Release timeline

36 releases · Jun 2014 to Dec 2021
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 36
  1. 0.24.0 01 Dec 2021
    Release notes

    Bump dependencies and prepare for release

    Open source →
    Release notes
    • Migrate to null safety.
    • Fix issue where ObservableMap did not notify for all methods.
    Open source →
  2. 0.23.0 23 Mar 2021
    Release notes
    • Support latest dependencies.
    • Reintroduce custom equality for PropertyChangeRecord from 0.18.0.
    Open source →
  3. 0.22.2 05 Feb 2019
    Release notes
    • Add toObservableList and toObservableMap, better typed versions of toObservable.
    Open source →
  4. 0.22.1 23 Mar 2018
    Release notes

    0.22.1

    • 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.

    Open source →
    Release notes
    • 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.

    Open source →
  5. 0.22.1+1 03 May 2018
    Release notes

    Fixes for Dart2 runtime type errors.

    Open source →
    Release notes
    • Fixes for Dart2 runtime type errors.
    Open source →
  6. 0.22.1+2 18 May 2018
    Release notes

    Widen dependency on the quiver package.

    Open source →
    Release notes
    • Widen dependency on quiver to include v0.29.
    Open source →
  7. 0.22.1+3 25 May 2018
    Release notes

    Update implementations of the cast() and the deprecated retype() methods.

    • The retype() method on List and Map is deprecated and will be removed.
    • The cast() method should do what the retype() method did.
    Open source →
    Release notes

    Update implementations of the cast() and the deprecated retype() methods.

    • The retype() method on List and Map is deprecated and will be removed.
    • The cast() method should do what the retype() method did.
    Open source →
  8. 0.22.1+4 23 Jul 2018
    Release notes
    • Support Dart 2 stable.

    • Bump and widen dev dependencies on build packages.

    Open source →
  9. 0.22.1+5 10 Dec 2018
    Release notes

    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.

    Open source →
    Release notes

    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.

    Open source →
  10. 0.22.0 19 Mar 2018
    Release notes
    • 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.

    Open source →
  11. 0.21.3 13 Mar 2018
    Release notes
    • Support Dart 2 collection methods where previously threw UnimplementedError.
    Open source →
  12. 0.21.2 07 Mar 2018
    Release notes
    • Fix toObservable(deep: false) to be shallow again.
    • Remove use of Maps, for better compatibility with Dart 2.
    Open source →
  13. 0.21.1 01 Mar 2018
    Release notes
    • Updated one test to comply with Dart 2 voidness semantics.
    • Fix Dart 2 runtime cast failure in toObservable().
    • Loosen ObservableList.from() to take Iterable, not Iterable<T>. This matches List.from() and avoids some unnecessary cast failures.
    Open source →
  14. 0.21.0 12 Feb 2018
    Release notes

    Breaking Changes

    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.

    Reverted Changes

    (From 0.20.1)

    • Revert add Observable<List|Set|Map>.unmodifiable for immutable collections
    • Revert add Observable<List|Set|Map>.EMPTY for empty immutable collections
      • This can be used as an optimization for libraries that always need to return an observable collection, but don't want to allocate a new instance to represent an empty immutable.

    (From 0.20.0)

    • Revert add ObservableSet, SetChangeRecord, and SetDiffer

    (From 0.19.0)

    • Revert refactor and deprecate ObservableMap-specific API
      • ObservableMap no longer emits #keys and #values change records
      • ObservableMap.spy is deprecated, becomes .delegate instead
    • Revert Potentially breaking: ObservableMap may no longer be extended

    Revert considered deprecated to be notified of length changes.

    (From 0.18.0)

    • Revert refactor and deprecate ObservableList-specific API
      • ObservableList.applyChangeRecords
      • ObservableList.calculateChangeRecords
      • ObservableList.withLength
      • ObservableList.deliverListChanges
      • ObservableList.discardListChanges
      • ObservableList.hasListChanges
      • ObservableList.listChanges
      • ObservableList.notifyListChange
    • Revert potentially breaking: ObservableList may no longer be extended

    Revert considered deprecated to be notified of length, isEmpty and isNotEmpty PropertyChangeRecords on ObservableList

    Changes Applied on top of version 0.17.0+1

    (With internal change numbers)

    • Flip deliverChanges from @protected to @visibleForTesting. cl/147029982
    • Fix a typing bug in observable when running with DDC: ChangeRecord.NONE creates a List<ChangeRecord>, while the call sites expect a List<ListChangeRecord> or List<MapChangeRecord>, respectively. cl/155201160
    • Fix Observable._isNotGeneric check. cl/162282107
    • Fix issue with type in deliverChanges. cl/162493576
    • Stop using the comment syntax for generics. cl/163224019
    • Fix ListChangeRecord's added getter. Add checks for the added and removed getters in listChangeTests. cl/169261086.
    • Migrate observable to real generic method syntax. cl/170239122
    • Fix only USES_DYNAMIC_AS_BOTTOM error in observable. cl/179946618
    • Cherry pick https://github.com/dart-lang/observable/pull/46.
    • Stub out Dart 2 core lib changes in ObservableMap.
    • Removed Observable{List|Map}.NONE (not Dart2 compatible).
    • Fix issue with type in ObservableList._notifyListChange. cl/182284033
    Open source →
  15. 0.20.4 25 Feb 2017
    Release notes
    • Bug fix: Additional fix around ObservableList.listChanges
    Open source →
  16. 0.20.4+1 04 Apr 2017
    Release notes
    • Support the latest release of pkg/quiver (0.25).
    Open source →
  17. 0.20.4+2 27 Dec 2017
    Release notes
    • Support the latest release of pkg/quiver (0.26).
    • Bug fix: Some minor type fixes for strict runtimes (and Dart 2.0), namely:
      • PropertyChangeNotifier merely extends ChangeNotifier rather than extends ChangeNotifier<PropertyChangeRecord>.
      • Introduce new ListChangeRecord.NONE and MapChangeRecord.NONE.
    Open source →
  18. 0.20.4+3 09 Jan 2018
    Release notes
    • Support the latest release of pkg/quiver (0.27).
    Open source →
  19. 0.20.2 20 Dec 2016
    Release notes
    • Bug fix: Avoid emitting a no-op MapChangeRecord
    • Bug fix: Restore ObservableList.discardListChanges functionality
    Open source →
  20. 0.20.1 29 Nov 2016
    Release notes
    • Add Observable<List|Set|Map>.unmodifiable for immutable collections
    • Add Observable<List|Set|Map>.EMPTY for empty immutable collections
      • This can be used as an optimization for libraries that always need to return an observable collection, but don't want to allocate a new instance to represent an empty immutable.
    Open source →
  21. 0.19.0 23 Nov 2016
    Release notes
    • Refactor and deprecate ObservableMap-specific API
      • ObservableMap no longer emits #keys and #values change records
      • ObservableMap.spy is deprecated, becomes .delegate instead
    • Potentially breaking: ObservableMap may no longer be extended

    It is also considered deprecated to be notified of length changes.

    Open source →
  22. 0.18.1 22 Nov 2016
    Release notes
    • Bug fix: Do not throw when Observable<T>.notifyChange is used
    Open source →
  23. 0.18.0 22 Nov 2016
    Release notes
    • Refactor and deprecate ObservableList-specific API
      • ObservableList.applyChangeRecords
      • ObservableList.calculateChangeRecords
      • ObservableList.withLength
      • ObservableList.deliverListChanges
      • ObservableList.discardListChanges
      • ObservableList.hasListChanges
      • ObservableList.listChanges
      • ObservableList.notifyListChange
    • Potentially breaking: ObservableList may no longer be extended

    It 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>>.

    Open source →
  24. 0.17.0 17 Nov 2016
    Release notes

    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;
    }
    
    • Started deprecating the wide Observable interface
      • ChangeNotifier should be used as a base class for these methods:
        • Observable.observed
        • Observable.unobserved
        • Observable.hasObservers
        • Observable.deliverChanges
        • Observable.notifyChange
      • PropertyChangeNotifier should be used for these methods:
        • Observable.notifyPropertyChange
      • Temporarily, Observable uses ChangeNotifier
        • Existing users of anything but 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.
    • Added the ChangeNotifier and PropertyChangeNotifier classes
      • Can be used to implement Observable in a generic manner
    • Observable is now Observable<C extends ChangeRecord>
      • When passing a generic type C, notifyPropertyChange is illegal
    Open source →
  25. 0.17.0+1 21 Nov 2016
    Release notes
    • Revert PropertyChangeMixin, which does not work in dart2js
    Open source →
  26. 0.16.0 17 Nov 2016
    Release notes
    • Refactored MapChangeRecord
      • Added equality and hashCode checks
      • Added MapChangeRecord.apply to apply a change record
    • Added MapDiffer, which implements Differ for a Map
    Open source →
  27. 0.15.0+1 17 Nov 2016
    Release notes
    • Fix analysis errors caused via missing /*<E>*/ syntax in 0.15.0
    Open source →
  28. 0.14.0 23 Sep 2016

    Nothing published for this version

  29. 0.14.0+1 26 Sep 2016
    Release notes
    • Add a missing dependency on pkg/meta.
    Open source →
  30. 0.1.6 11 Jun 2014

    Nothing published for this version

  31. 0.1.5 11 Jun 2014

    Nothing published for this version

  32. 0.1.4 08 Jun 2014

    Nothing published for this version

  33. 0.1.3 08 Jun 2014

    Nothing published for this version

  34. 0.1.2 06 Jun 2014

    Nothing published for this version

  35. 0.1.1 06 Jun 2014

    Nothing published for this version

  36. 0.1.0 06 Jun 2014

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive