NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #222 most downloaded on pub.dev
Quiver is a set of utility libraries for Dart that makes using many Dart libraries easier and more convenient, or adds additional functionality.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 8 days to 1.7 years
Most releases are documented
notes for 46 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
84 releases · first in 2013
Re-deprecate Optional but provide more nuance to the documentation.
Optional but provide more nuance to the documentation.Un-deprecate Optional. Causing breaks with hints internally at Google. Need to remove all usages before we try to land again.
Optional. Causing breaks with hints internally at Google.
Need to remove all usages before we try to land again.One column per quarter.
Deprecate Optional. With the introduction of non-null by default in Dart SDK 2.12, existing users should migrate to non-nullable types. This type will…
Optional. With the introduction of non-null by default in Dart SDK
2.12, existing users should migrate to non-nullable types. This type will be
removed in Quiver 4.0.0.TreeIterator not implement deprecated BidirectionalIterator. The
movePrevious method still exists on TreeIterator.Fix: Make Cache.get ifAbsent parameter nullable. The parameter was always optional; this just corrects the type.
Add documentation to Optional suggesting that adding new uses be avoided and existing uses should be migrated to nullable types in codebases where non
Optional suggesting that adding new uses be avoided and
existing uses should be migrated to nullable types in codebases where non-null
by default has been enabled.Fix: Eliminate null check error on removal of root node of AVLTree.
AVLTree.current getter.BREAKING CHANGE: This version requires Dart SDK 2.12.0 or later.
assertCheckedMode. This was deprecated in 2.1.2.
Checked mode no longer exists in Dart 2.0 since the vast majority of what
checked mode did is now done in the type system itself.doWhileAsync. This was deprecated in 2.1.1. Existing
callers should migrate to Future.doWhile().TreeSet.first and TreeSet.last now throw StateError if no
element exists, as specified by the Set API contract both with null safety
enabled or disabled.TreeSet iterators now throw if Iterator.current is called
before moveNext is called, or after moveNext has returned false when
running with null safety enabled.checkNotNull. Users of this function should migrate to
ArgumentError.checkNotNull. This will be removed in 4.0.0.firstNonNull. Users of this function should migrate to
var v = o1 ?? o2 ?? o3 ?? o4; ArgumentError.checkNotNull(v);. This will be
removed in 4.0.0Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Deprecate forEachAsync, reduceAsync. Existing callers should migrate to Future.forEach. Migration examples have been added to the documentation for th…
forEachAsync, reduceAsync. Existing callers should migrate to
Future.forEach. Migration examples have been added to the documentation for
these methods. This will be removed in Quiver 3.0.0.Move stringFromByteStream from the IO library to the async library. The original in IO has been deprecated and will be removed in 3.0.0. Users should…
stringFromByteStream from the IO library to the async library. The
original in IO has been deprecated and will be removed in 3.0.0. Users should
update their code to import this function from quiver/async.dart. If both
quiver/io.dart and quiver.async.dart are imported in the same file, users
should hide the symbol from IO as described here:
https://dart.dev/guides/language/language-tour#importing-only-part-of-a-librarygetFullPath. Users should use
File(path).resolveSymbolicLinksSync. This will be removed in 3.0.0.visitDirectory. This will be removed in 3.0.0. The source can be
copied under the terms of the Apache 2.0 license.Fix: Add dart:async import to async/string.dart. Stream wasn't exported from dart:core until Dart 2.1 but Quiver supports back to Dart 2.0.
Fix: revert const constructor change to Optional.transform, Optional.transformNull which causes type errors when used in combination with certain oper
Optional.transform,
Optional.transformNull which causes type errors when used in combination
with certain operations that trigger an implicit type check. The error in
question was introduced in 2.1.2.Deprecate assertCheckedMode. Checked mode no longer exists in Dart 2.0 since the vast majority of what checked mode did is now done in the type system…
assertCheckedMode. Checked mode no longer exists in Dart 2.0 since
the vast majority of what checked mode did is now done in the type system
itself. This will be removed in Quiver 3.0.0.Minor linter fix: added curly brackets on flow-control structures to make Pana package scoring happier.
Deprecate doWhileAsync. Existing callers should migrate to Future.doWhile() from dart:async. This will be removed in Quiver 3.0.0.
doWhileAsync. Existing callers should migrate to
Future.doWhile() from dart:async. This will be removed in Quiver 3.0.0.LruMap.putIfAbsent when maximumSize is 1.Upgraded matcher dependency lower-bound from 0.10.0 to 0.12.5 to migrate from isInstanceOf to isA in tests.
isInstanceOf to isA in tests.Added isNotBlank to strings library.
isNotBlank to strings library.Added FakeAsync.pendingTimersDebugInfo.
FakeAsync.pendingTimersDebugInfo.Do not cache failed ifAbsent calls in MapCache.
ifAbsent calls in MapCache.partition is now a generic function.
partition is now a generic function.isNotPresent getter alongside the existing
isPresent getter.New: Optional now includes transformNullable to pass maybe present values through a transformer with a nullable return value.
transformNullable to pass maybe present values
through a transformer with a nullable return value.BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.61 or later.
Updated Dart SDK constraint to >=2.0.0-dev.61 < 3.0.0.
Nothing published for this version
BREAKING CHANGE: StreamBuffer has been changed from implementing StreamConsumer to StreamConsumer >. Users of StreamBuffer > can simply change declara…
StreamConsumer<T> to StreamConsumer<List<T>>. Users of
StreamBuffer<List<T>> can simply change declarations to StreamBuffer<T>.
In cases where the generic type is already not a list type, inputs to the list
may need to be wrapped in a list.BREAKING CHANGE: Deleted createTimer and createTimerPeriodic, which were deprecated in 0.26.0.
createTimer and createTimerPeriodic, which were
deprecated in 0.26.0.reverse, which was deprecated in 0.25.0.FutureGroup, which was deprecated in 0.25.0.InfiniteIterable.singleWhere now throws UnsupportedError.BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.30 or later. Bugfixes will be backported to the 0.28.x series for Dart 1 users.
addEntries, get entries,
map, removeWhere, update, and updateAll.followedBy,
and accepts the orElse parameter on singleWhere.operator +,
indexWhere, and lastIndexWhere.addEntries, get entries,
removeWhere, update, and updateAll.Multimap.asMap() now includes real implementations
of get entries and removeWhere. This class also has "real" implementations
of addEntries, map, update, and updateAll, which just throw an
UnsupportedError, as inserts and updates are not allowed on map views.ListMultimap now include real implementations of
operator +, indexWhere, and lastIndexWhere.ListMultimap and SetMultimap now include a real
implementation of followedBy, and accept the orElse parameter on
singleWhere.Nothing published for this version
Fix: Eliminate a bug where LruMap linkage is incorrectly preserved when items are removed.
LruMap linkage is incorrectly preserved when
items are removed.Remove use of Maps.mapToString in LruMap.
Maps.mapToString in LruMap.@visibleForTesting annotation in AvlTreeSet.BREAKING CHANGE: The signature of MultiMap's update stub has changed from V update(K key, C update(C value), {C ifAbsent()}) to C update(K key, C upda…
MultiMap's update stub has changed from
V update(K key, C update(C value), {C ifAbsent()}) to
C update(K key, C update(C value), {C ifAbsent()}).BREAKING CHANGE: all classes that implement Iterable, List, Map, Queue, Set, or Timer now implement stubs of upcoming Dart 2.0 methods. Any class that…
Iterable, List, Map,
Queue, Set, or Timer now implement stubs of upcoming Dart 2.0 methods.
Any class that reimplements these classes also needs new method
implementations. The classes with these breaking changes include: HashBiMap,
DelegatingIterable, DelegatingList, DelegatingMap,DelegatingQueue,
DelegatingSet, LinkedLruHashMap, TreeSet, and AvlTreeSet.FakeAsync. PR
#265Fix: re-adding the most-recently-used entry to a LinkedLruHashMap previously introduced a loop in the internal linked list.
LinkedLruHashMap previously
introduced a loop in the internal linked list.LinkedLruHashMap, the
recency list was not correctly re-linked.Fix: when removing the last item, LinkedLruHashMap was put into a state such that the next cache eviction could cause a null-pointer exception. Issue
BREAKING CHANGE: eliminated deprecated flip. Replaced by reverse in 0.25.0.
flip. Replaced by reverse in
0.25.0.repeat. Deprecated in 0.25.0. Callers
should use String's * operator.collect, concat, doWhileAsync, enumerate, extent,
forEachAsync, max, merge, min, reduceAsync, and zip are now type
parameterized. Depending on the inferred value of each type parameter, the
return type of each function may change in existing code.Optional's == operator now takes into account T, the
type of the value. This changes, e.g. Optional<int>.absent() to no longer be
equal to Optional<String>.absent().Cache and MapCache.reverse in the strings library. No replacement is provided.createTimer, createTimerPeriodic in the async library. These
were originally written to support FakeTimer, which is superseded by
FakeAsync.isLeapYear, daysInMonth, clampDayOfMonth APIs in the time
library.contains to know if an association key/value exists.BREAKING CHANGE: minimum SDK constraint increased to 1.21.0. This allows use of async-await and generic function in Quiver.
FakeTimer.StreamBuffer<T> now implements StreamConsumer<T> as
opposed to StreamConsumer<T|List<T>>.FutureGroup. Use the replacement in package:async which
requires a close() call to trigger auto-completion when the count of pending
tasks drops to 0.repeat in the strings library. Use the * operator on the
String class.flip has been renamed reverse. flip
is deprecated and will be removed in the next release.enumerate is now generic.indexOf.BREAKING CHANGE: eliminated deprecated nullToEmpty, emptyToNull.
nullToEmpty, emptyToNull.Set.difference takes a
Set<Object> parameter.BREAKING CHANGE: eliminated deprecated multimap toMap.
nullToEmpty, emptyToNull deprecated. Removal in 0.24.0.toMap.pad*, trim* string functions.BREAKING CHANGE: streams and async libraries have been merged into one async library
streams and async libraries have been
merged
into one async libraryOptional now implements Iterable and its methods are generic (using
temporary syntax)isNotEmpty and isDigit in strings.dartMultimap.fromIterableTreeSearch from class to enum.fake_async.dart timers are now active while executing the callbackAdd stats reporting for fake async tests. You can query the number of pending microtasks and timers via microtaskCount, periodicTimerCount, nonPeriodi
microtaskCount, periodicTimerCount,
nonPeriodicTimerCount.Bugfix: fixed return type on some methods (e.g. where of Iterables returned by Multimap.
where of Iterables
returned by Multimap.- Switch from unittest to test.
Un-deprecate Glob; feedback was that package:glob was not a suitable replacement in many cases. Key reasons: dependency on dart:io and significantly p…
Metronome.LruMap to quiver/collection.Deprecate Glob. Use package:glob. Will be removed in 0.22.0.
Glob.allMatches() to match superclass method
signature.Pattern returned by matchesAny() to match
superclass method signature.Multimap: toMap() is deprecated and replaced with asMap(). toMap() will be removed in v0.22.0.
toMap() is deprecated and replaced with asMap(). toMap() will
be removed in v0.22.0.areEqualityGroups matcher for testing operator== and hashCode.Replace equalsTester dependency on unittest with finer-grained dependency on matcher.
equalsTester dependency on unittest with finer-grained dependency
on matcher.path is now a dev dependency.Fix hanging FakeAsync unit test.
FakeAsync unit test.Document that the deprecated functions padLeft, padRight, trimLeft, trimRight will be removed in 0.22.0.
padLeft, padRight, trimLeft,
trimRight will be removed in 0.22.0.Multimap: better toString() on returned collections.
toString() on returned collections.fold.strings.Nothing published for this version
Corrected version constraint suggestion in README.md.
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 →