If the pubspec has a new dependency which causes an incompatibility with the
locked packages' version constraints, `pub install` will now unlock packages
one by one until a compatible version graph can be found.
`pub update <package>` will now always update the given package to its latest
version, even if that requires updating locked packages that depend on it
transitively. If no amount of updating will make the latest version valid, an
exception will be thrown.
This was originally submitted as r10779
Review URL: https://chromiumcodereview.appspot.com//10837274
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11119 260f80e4-7a28-3924-810f-c04153c831b5
If the pubspec has a new dependency which causes an incompatibility with the
locked packages' version constraints, `pub install` will now unlock packages
one by one until a compatible version graph can be found.
`pub update <package>` will now always update the given package to its latest
version, even if that requires updating locked packages that depend on it
transitively. If no amount of updating will make the latest version valid, an
exception will be thrown.
Review URL: https://chromiumcodereview.appspot.com//10854152
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10779 260f80e4-7a28-3924-810f-c04153c831b5
It does:
- Walk dependency graphs.
- Unify shared constraints.
- Go through Source to get dependency and version information.
- Handle the fact that everything is async.
- Find best versions that match all constraints.
- Error out if it can't find a match or gets stuck in a loop.
- Have an OK amount of tests.
It does not:
- Handle dependencies from different sources.
- Integrate with the rest of pub.
- Implement an actual "pub update" command.
- Do very much to minimize server traffic.
(Though it does cache pubspecs it has requested.)
Review URL: https://chromiumcodereview.appspot.com//10540151
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8985 260f80e4-7a28-3924-810f-c04153c831b5