google / uri.dart

Utilities for working with URIs in Dart
https://pub.dev/packages/uri
BSD 3-Clause "New" or "Revised" License
78 stars 40 forks source link

increased upper bound on quiver and matcher and fixed NPE #19

Closed Andersmholmgren closed 9 years ago

cbracken commented 9 years ago

lgtm

With the NPE fix, we should bump to 0.9.5; if so, then 0.9.4+1 will never be released (unless anyone can think of a good reason), so we should update the release notes to have the changes fall under 0.9.5 as well.

Andersmholmgren commented 9 years ago

Isn't the npe fix just a bug fix? I thought that was the purpose of the + version numbers for pre 1.0 packages and that you'd only bump to 0.9.5 if a new feature was added

cbracken commented 9 years ago

The z component of x.y.z versions of Dart packages indicates backward-compatbile bugfixes. Details at: http://semver.org/.

+ versions indicate build numbers with no functional changes at all. An example would be non-breaking changes to a pubspec.yaml.

Andersmholmgren commented 9 years ago

But pub semver is slightly different https://github.com/dart-lang/pub_semver On Tue, 6 Jan 2015 at 8:59 am, Chris Bracken notifications@github.com wrote:

The z component of x.y.z versions indicates backward-compatbile bugfixes. Details at: http://semver.org/

— Reply to this email directly or view it on GitHub https://github.com/google/uri.dart/pull/19#issuecomment-68789639.

cbracken commented 9 years ago

But pub semver is slightly different https://github.com/dart-lang/pub_semver

Correct, there are differences, but none that are relevant to the versioning of backward-compatible bugfixes, for which we bump the patch version.

Andersmholmgren commented 9 years ago
There is a notion of compatibility between pre-1.0.0 versions. Semver deems all pre-1.0.0 versions to be incompatible. This means that the only way to ensure compatibility when depending on a pre-1.0.0 package is to pin the dependency to an exact version. Pinned version constraints prevent automatic patch and pre-release updates. To avoid this situation, pub defines the "next breaking" version as the version which increments the major version if it's greater than zero, and the minor version otherwise, resets subsequent digits to zero, and strips any pre-release or build suffix. For example, here are some versions along with their next breaking ones:

0.0.3 -> 0.1.0 0.7.2-alpha -> 0.8.0 1.2.3 -> 2.0.0

To make use of this, pub defines a "^" operator which yields a version constraint greater than or equal to a given version, but less than its next breaking one.

/cc @kevmoo

I'm happy to resubmit with a bumped version, however I maintain several pub packages and I'd hate to think I'd been managing the versioning wrong all this time so I'd really like to clarify this.

My understanding is that for pre 1.0 all the numbers shift right. i.e.

0.9.5 is treated as a minor number change (similar to what 9.5.0 would be) and 0.9.4+1 is like 9.4.1 for a post 1.0 release

Andersmholmgren commented 9 years ago

See also https://www.dartlang.org/tools/pub/versioning.html#semantic-versions

cbracken commented 9 years ago

Discussed offline with Bob and indeed bumping the build number is one perfectly OK approach pre-1.0.0.

It turns out there is some variation in opinion on how we manage this even amongst ourselves on the Dart team, which probably means we should close some nit-picky loopholes in our phrasing. Either way, I'm good with this as is unless Justin has any objection.

Andersmholmgren commented 9 years ago

Haha fair enough. Fwiw I think bumping the build number works well pre 1.0. There are a lot of pre 1.0 packages in dart. All mine are On Tue, 6 Jan 2015 at 10:07 am, Chris Bracken notifications@github.com wrote:

Discussed offline with Bob and indeed bumping the build number is one perfectly OK approach pre-1.0.0.

It turns out there is some variation in opinion on how we manage this even amongst ourselves on the Dart team, which probably means we should close some nit-picky loopholes in our phrasing. Either way, I'm good with this as is unless Justin has any objection.

— Reply to this email directly or view it on GitHub https://github.com/google/uri.dart/pull/19#issuecomment-68798819.

Andersmholmgren commented 9 years ago

BTW I got the impression that Justin will be off the air for a while. If you think it will be less contentious in his absence then I can bump to 0.9.5

thoughts?

kevmoo commented 9 years ago

0.9.5 is fine for me.

justinfagnani commented 9 years ago

+1 to 0.9.5

Andersmholmgren commented 9 years ago

OK I've bumped to 0.9.5

Please merge and publish

Andersmholmgren commented 9 years ago

Thanks On Wed, 14 Jan 2015 at 12:24 pm, Justin Fagnani notifications@github.com wrote:

Merged #19 https://github.com/google/uri.dart/pull/19.

— Reply to this email directly or view it on GitHub https://github.com/google/uri.dart/pull/19#event-219003891.