pub_semver 2.0.0-nullsafety.0 pub_semver: ^2.0.0-nullsafety.0 copied to clipboard
Versions and version constraints implementing pub's versioning policy. This is very similar to vanilla semver, with a few corner cases.
2.0.0-nullsafety.0 #
- Migrate to null safety.
Version.primary
now throwsStateError
if theversions
argument is empty.
1.4.4 #
- Fix a bug of
VersionRange.union
where ranges bounded at infinity would get combined wrongly.
1.4.3 #
- Update Dart SDK constraint to
>=2.0.0 <3.0.0
. - Update
package:collection
constraint to^1.0.0
.
1.4.2 #
- Set max SDK version to
<3.0.0
.
1.4.1 #
- Fix a bug where there upper bound of a version range with a build identifier could accidentally be rewritten.
1.4.0 #
-
Add a
Version.firstPreRelease
getter that returns the first possible pre-release of a version. -
Add a
Version.isFirstPreRelease
getter that returns whether a version is the first possible pre-release. -
new VersionRange()
with an exclusive maximum now replaces the maximum with its first pre-release version. This matches the existing semantics, where an exclusive maximum would exclude pre-release versions of that maximum.Explicitly representing this by changing the maximum version ensures that all operations behave correctly with respect to the special pre-release semantics. In particular, it fixes bugs where, for example,
(>=1.0.0 <2.0.0-dev).union(>=2.0.0-dev <2.0.0)
and(>=1.0.0 <3.0.0).difference(^1.0.0)
wouldn't include2.0.0-dev
. -
Add an
alwaysIncludeMaxPreRelease
parameter tonew VersionRange()
, which disables the replacement described above and allows users to create ranges that do include the pre-release versions of an exclusive max version.
1.3.7 #
- Fix more bugs with
VersionRange.intersect()
,VersionRange.difference()
, andVersionRange.union()
involving version ranges with pre-release maximums.
1.3.6 #
- Fix a bug where constraints that only allowed pre-release versions would be parsed as empty constraints.
1.3.5 #
- Fix a bug where
VersionRange.intersect()
would return incorrect results for pre-release versions with the same base version number as release versions.
1.3.4 #
- Fix a bug where
VersionRange.allowsAll()
,VersionRange.allowsAny()
, andVersionRange.difference()
would return incorrect results for pre-release versions with the same base version number as release versions.
1.3.3 #
- Fix a bug where
VersionRange.difference()
with a union constraint that covered the entire range would crash.
1.3.2 #
- Fix a checked-mode error in
VersionRange.difference()
.
1.3.1 #
- Fix a new strong mode error.
1.3.0 #
-
Make the
VersionUnion
class public. This was previously used internally to implementnew VersionConstraint.unionOf()
andVersionConstraint.union()
. Now it's public so you can use it too. -
Added
VersionConstraint.difference()
. This returns a constraint matching all versions matched by one constraint but not another. -
Make
VersionRange
implementComparable<VersionRange>
. Ranges are ordered first by lower bound, then by upper bound.
1.2.4 #
- Fix all remaining strong mode warnings.
1.2.3 #
- Addressed three strong mode warnings.
1.2.2 #
- Make the package analyze under strong mode and compile with the DDC (Dart Dev
Compiler). Fix two issues with a private subclass of
VersionConstraint
having different types for overridden methods.
1.2.1 #
- Allow version ranges like
>=1.2.3-dev.1 <1.2.3
to match pre-release versions of1.2.3
. Previously, these didn't match, since the pre-release versions had the same major, minor, and patch numbers as the max; now an exception has been added if they also have the same major, minor, and patch numbers as the min and the min is also a pre-release version.
1.2.0 #
-
Add a
VersionConstraint.union()
method and anew VersionConstraint.unionOf()
constructor. These each return a constraint that matches multiple existing constraints. -
Add a
VersionConstraint.allowsAll()
method, which returns whether one constraint is a superset of another. -
Add a
VersionConstraint.allowsAny()
method, which returns whether one constraint overlaps another. -
Version
now implementsVersionRange
.
1.1.0 #
-
Add support for the
^
operator for compatible versions according to pub's notion of compatibility.^1.2.3
is equivalent to>=1.2.3 <2.0.0
;^0.1.2
is equivalent to>=0.1.2 <0.2.0
. -
Add
Version.nextBreaking
, which returns the next version that introduces breaking changes after a given version. -
Add
new VersionConstraint.compatibleWith()
, which returns a range covering all versions compatible with a given version. -
Add a custom
VersionRange.hashCode
to make it properly hashable.
1.0.0 #
- Initial release.