Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Issue 1247203002: Allow using analyzer 0.26.0-alpha.0. (Closed)

Created:
5 years, 5 months ago by Bob Nystrom
Modified:
5 years, 5 months ago
Reviewers:
nweiz, pquitslund
CC:
reviews_dartlang.org
Base URL:
https://github.com/dart-lang/test.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Patch Set 1 #

Patch Set 2 : Bump test version. #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+3 lines, -3 lines) Patch
M pubspec.yaml View 1 2 chunks +3 lines, -3 lines 1 comment Download

Messages

Total messages: 10 (2 generated)
Bob Nystrom
5 years, 5 months ago (2015-07-21 23:58:05 UTC) #2
pquitslund
https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml File pubspec.yaml (right): https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml#newcode9 pubspec.yaml:9: analyzer: '>=0.23.0 <=0.26.0-alpha.0' This alpha is likely to get ...
5 years, 5 months ago (2015-07-22 00:01:01 UTC) #4
Bob Nystrom
On 2015/07/22 00:01:01, pquitslund wrote: > https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml > File pubspec.yaml (right): > > https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml#newcode9 > ...
5 years, 5 months ago (2015-07-22 00:02:58 UTC) #5
pquitslund
On 2015/07/22 00:02:58, Bob Nystrom wrote: > On 2015/07/22 00:01:01, pquitslund wrote: > > https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml ...
5 years, 5 months ago (2015-07-22 00:11:52 UTC) #6
Bob Nystrom
On 2015/07/22 00:11:52, pquitslund wrote: > On 2015/07/22 00:02:58, Bob Nystrom wrote: > > On ...
5 years, 5 months ago (2015-07-22 00:20:46 UTC) #7
nweiz
Bob: lgtm On 2015/07/22 00:11:52, pquitslund wrote: > On 2015/07/22 00:02:58, Bob Nystrom wrote: > ...
5 years, 5 months ago (2015-07-22 00:36:56 UTC) #8
Bob Nystrom
Committed patchset #2 (id:20001) manually as 6f9acac18cf7044e2caafa0a7d59797c570f7b1e (presubmit successful).
5 years, 5 months ago (2015-07-22 00:40:18 UTC) #9
pquitslund
5 years, 5 months ago (2015-07-22 16:17:32 UTC) #10
Message was sent while issue was closed.
On 2015/07/22 00:36:56, nweiz wrote:
> Bob: lgtm
> 
> On 2015/07/22 00:11:52, pquitslund wrote:
> > On 2015/07/22 00:02:58, Bob Nystrom wrote:
> > > On 2015/07/22 00:01:01, pquitslund wrote:
> > > > https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml
> > > > File pubspec.yaml (right):
> > > > 
> > > >
> https://codereview.chromium.org/1247203002/diff/20001/pubspec.yaml#newcode9
> > > > pubspec.yaml:9: analyzer: '>=0.23.0 <=0.26.0-alpha.0'
> > > > This alpha is likely to get bumped real soon.  Can we make this a looser
> > > > constraint?
> > > 
> > > Looser to what? What compatibility promises are you giving for these later
> > > versions?
> > > 
> > > - bob
> > 
> > Great question.  We bumped to 0.26 because we made an API breaking change. 
We
> > marked it alpha because we're still experimenting.  To be fair these
> experiments
> > should not affect test (or dart_style) but we still need to be able to tag
> them.
> > 
> > Should we be doing this differently?
> > 
> > Sorry BTW for not having thought through the impact of bumping this version.

> It
> > seems like I'm not quite done learning this lesson!
> 
> The fundamental issue is that breaking changes are really problematic, and you
> should strive not to make them. This is exponentially more true for packages
> like analyzer that are in the Dart repo, since everything there has to be
> mutually compatible.
> 
> Looking at the changelog, it seems like the only change in 0.26.0-alpha.0 is
> adding an optional parameter to UriResolver. This doesn't seem like a breaking
> change at all, unless you expect external users to implement their own
> UriResolvers.
> 
> Even if you do, there would be ways to make this change without it being
> breaking. You could add a new interface (e.g. UriResolverWithActual) that
> defined the method with the new parameter, and have clients check for that
> interface before passing the parameter. That's more painful, but it localizes
> the pain to your package rather than spreading it across the ecosystem.
> 
> On a broader scope, you would be able to do more refactors without risking
> causing users problems if the analyzer package had a well-defined API. Right
now
> almost none of its functionality is exposed publicly (that is, importable
> without diving into src/). But people need access to that functionality, so by
> necessity they import private files, which means that almost any refactor
could
> be breaking. If you carefully curated a set of public APIs with strong
stability
> guarantees, you'd have more freedom to change their private underpinnings
> without breaking users.

All great points.  We've been here before too. :/

I agree that this is just more motivation to tighten up our notion of explicit
API (reigning in the implicit bits that have leaked out).

Thanks, as always, for the input.

Powered by Google App Engine
This is Rietveld 408576698