Skip to content

Pub's version resolution goes exponential on a simple pubspec #874

Closed
@DartBot

Description

@DartBot

<img src="https://avatars.githubusercontent.com/u/188?v=3" align="left" width="96" height="96"hspace="10"> Issue by nex3
Originally opened as dart-lang/sdk#16961


The following pubspec causes pub's version resolution to go exponential:

  name: app
  dependencies:
    intl: 0.9.0
    polymer: "<=0.9.5"

This happens as of 1.2.0-edge.32615; the exponential churn involves pub's barback constraint, so it may change in future versions. The same pattern should persist, though.

This is caused by a conflicting constraint (intl and recent stack_trace versions have disjoint constraints on path), and compounded by the fact that pub tries to backtrack through every archived version of polymer. We may be able to mitigate this behavior by more aggressively checking for disjoint constraints; we may not be able to avoid checking all older polymer versions, but we can quickly discard them by noticing that their barback constraint is disjoint with pub's.

Metadata

Metadata

Assignees

Labels

type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions