{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/pub/issues/1415","repository_url":"https://api.github.com/repos/dart-lang/pub","labels_url":"https://api.github.com/repos/dart-lang/pub/issues/1415/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/pub/issues/1415/comments","events_url":"https://api.github.com/repos/dart-lang/pub/issues/1415/events","html_url":"https://github.com/dart-lang/pub/issues/1415","id":154081729,"number":1415,"title":"Offline upgrade failing due to version parsing bug","user":{"login":"pylaligand","id":1115379,"avatar_url":"https://avatars.githubusercontent.com/u/1115379?v=3","gravatar_id":"","url":"https://api.github.com/users/pylaligand","html_url":"https://github.com/pylaligand","followers_url":"https://api.github.com/users/pylaligand/followers","following_url":"https://api.github.com/users/pylaligand/following{/other_user}","gists_url":"https://api.github.com/users/pylaligand/gists{/gist_id}","starred_url":"https://api.github.com/users/pylaligand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pylaligand/subscriptions","organizations_url":"https://api.github.com/users/pylaligand/orgs","repos_url":"https://api.github.com/users/pylaligand/repos","events_url":"https://api.github.com/users/pylaligand/events{/privacy}","received_events_url":"https://api.github.com/users/pylaligand/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/pub/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"nex3","id":188,"avatar_url":"https://avatars.githubusercontent.com/u/188?v=3","gravatar_id":"","url":"https://api.github.com/users/nex3","html_url":"https://github.com/nex3","followers_url":"https://api.github.com/users/nex3/followers","following_url":"https://api.github.com/users/nex3/following{/other_user}","gists_url":"https://api.github.com/users/nex3/gists{/gist_id}","starred_url":"https://api.github.com/users/nex3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nex3/subscriptions","organizations_url":"https://api.github.com/users/nex3/orgs","repos_url":"https://api.github.com/users/nex3/repos","events_url":"https://api.github.com/users/nex3/events{/privacy}","received_events_url":"https://api.github.com/users/nex3/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2016-05-10T19:02:02Z","updated_at":"2016-05-10T20:09:11Z","closed_at":null,"body":"(see command output below)\r\n\r\nPub version: 1.17.0-dev.2.0\r\n\r\nI'm trying to run `pub upgrade --offline` on a package, knowing its dependencies are already in the cache. This fails on parsing package version number `alpha.1`. My package depends on `flutter` which in turns depends on `analyzer` version [0.27.4-alpha.1](https://github.com/flutter/flutter/blob/a59a713f75e1430633044c238b288aeb80aa73c9/packages/flutter_test/pubspec.yaml#L13). For some reason in offline mode pub tries to parse only the very last part of the version number as the whole version number, and fails. Here is [the point where the parsing fails](https://github.com/dart-lang/pub/blob/master/lib/src/source/hosted.dart#L274).\r\n\r\n```sh\r\n$ pub --trace upgrade --verbosity=error --offline\r\nCould not parse \"alpha.1\".\r\npackage:pub_semver/src/version.dart 118                   Version.Version.parse\r\npackage:pub/src/source/hosted.dart 274                    OfflineHostedSource.doGetVersions.<async>.<fn>\r\ndart:core                                                 Iterable.toList\r\npackage:pub/src/source/hosted.dart 276                    OfflineHostedSource.doGetVersions.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                _Completer.completeError\r\npackage:pub/src/source/hosted.dart 290                    OfflineHostedSource.doGetVersions.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/source/hosted.dart                        OfflineHostedSource.doGetVersions\r\npackage:pub/src/source.dart 103                           Source.getVersions\r\npackage:pub/src/solver/version_solver.dart 197            SolverCache.getVersions.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/solver/version_solver.dart                SolverCache.getVersions\r\npackage:pub/src/solver/unselected_package_queue.dart 121  UnselectedPackageQueue._getNumVersions.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue._getNumVersions\r\npackage:pub/src/solver/unselected_package_queue.dart 50   UnselectedPackageQueue.add.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue.add\r\npackage:pub/src/solver/version_selection.dart 68          VersionSelection.select.<async>.<fn>.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/version_selection.dart 70          VersionSelection.select.<async>.<fn>.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.forEach\r\npackage:pub/src/solver/version_selection.dart 61          VersionSelection.select.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/source.dart 137                           Source.describe.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                _asyncThenWrapperHelper\r\npackage:pub/src/solver/version_selection.dart             VersionSelection.select\r\npackage:pub/src/solver/backtracking_solver.dart 308       BacktrackingSolver._solve.<async>.<fn>.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 336       BacktrackingSolver._versionQueueFor.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 430       BacktrackingSolver._findValidVersion.<fn>.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 550       BacktrackingSolver._checkVersion.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/source.dart 137                           Source.describe.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/backtracking_solver.dart 312       BacktrackingSolver._solve.<async>.<fn>.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.doWhile\r\npackage:pub/src/solver/backtracking_solver.dart 273       BacktrackingSolver._solve.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/solver/backtracking_solver.dart           BacktrackingSolver._solve\r\npackage:pub/src/solver/backtracking_solver.dart 169       BacktrackingSolver.solve.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                _asyncThenWrapperHelper\r\npackage:pub/src/solver/backtracking_solver.dart           BacktrackingSolver.solve\r\npackage:pub/src/solver/version_solver.dart 38             resolveVersions.<fn>\r\npackage:pub/src/log.dart 407                              progress\r\npackage:pub/src/solver/version_solver.dart 36             resolveVersions\r\npackage:pub/src/entrypoint.dart 171                       Entrypoint.acquireDependencies.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/entrypoint.dart                           Entrypoint.acquireDependencies\r\npackage:pub/src/command/upgrade.dart 34                   UpgradeCommand.run.<async>\r\n===== asynchronous gap ===========================\r\ndart:async                                                Future.Future.microtask\r\npackage:pub/src/command/upgrade.dart                      UpgradeCommand.run\r\npackage:args/command_runner.dart 176                      CommandRunner.runCommand.<fn>\r\ndart:async                                                Future.Future.sync\r\npackage:args/command_runner.dart 129                      CommandRunner.runCommand\r\npackage:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>.<fn>\r\ndart:async                                                Future.Future.sync\r\npackage:pub/src/utils.dart 114                            captureErrors.<fn>\r\npackage:stack_trace                                       Chain.capture\r\npackage:pub/src/utils.dart 128                            captureErrors\r\npackage:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>\r\ndart:async                                                _SyncCompleter.complete\r\npackage:pub/src/command_runner.dart 217                   PubCommandRunner._validatePlatform.<async>\r\n---- Log transcript ----\r\nFINE: Pub 1.17.0-dev.2.0\r\nMSG : Resolving dependencies...\r\nSLVR: Solving dependencies:\r\n    | - flutter any from path ({path: ../third_party/flutter/packages/flutter, relative: true})\r\n    | - my_common any from path ({path: ../common, relative: true})\r\nIO  : Finding versions of typed_mock in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nSLVR: * start at root\r\nIO  : Finding versions of intl in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of collection in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of meta in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of crypto in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of vector_math in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nSLVR: | * select flutter 0.0.21 from path\r\nIO  : Finding versions of test in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of quiver in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nIO  : Finding versions of analyzer in /usr/local/google/home/pylaligand/.pub-cache/hosted/pub.dartlang.org\r\nSLVR: Could not get versions for analyzer from hosted:\r\n    | FormatException: Could not parse \"alpha.1\".\r\n    | \r\n    | package:pub_semver/src/version.dart 118                   Version.Version.parse\r\n    | package:pub/src/source/hosted.dart 274                    OfflineHostedSource.doGetVersions.<async>.<fn>\r\n    | dart:core                                                 Iterable.toList\r\n    | package:pub/src/source/hosted.dart 276                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _Completer.completeError\r\n    | package:pub/src/source/hosted.dart 290                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/source/hosted.dart                        OfflineHostedSource.doGetVersions\r\n    | package:pub/src/source.dart 103                           Source.getVersions\r\n    | package:pub/src/solver/version_solver.dart 197            SolverCache.getVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/version_solver.dart                SolverCache.getVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 121  UnselectedPackageQueue._getNumVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue._getNumVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 50   UnselectedPackageQueue.add.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue.add\r\n    | package:pub/src/solver/version_selection.dart 68          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 70          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.forEach\r\n    | package:pub/src/solver/version_selection.dart 61          VersionSelection.select.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/version_selection.dart             VersionSelection.select\r\n    | package:pub/src/solver/backtracking_solver.dart 308       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 336       BacktrackingSolver._versionQueueFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 430       BacktrackingSolver._findValidVersion.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 550       BacktrackingSolver._checkVersion.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 312       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.doWhile\r\n    | package:pub/src/solver/backtracking_solver.dart 273       BacktrackingSolver._solve.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver._solve\r\n    | package:pub/src/solver/backtracking_solver.dart 169       BacktrackingSolver.solve.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver.solve\r\n    | package:pub/src/solver/version_solver.dart 38             resolveVersions.<fn>\r\n    | package:pub/src/log.dart 407                              progress\r\n    | package:pub/src/solver/version_solver.dart 36             resolveVersions\r\n    | package:pub/src/entrypoint.dart 171                       Entrypoint.acquireDependencies.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/entrypoint.dart                           Entrypoint.acquireDependencies\r\n    | package:pub/src/command/upgrade.dart 34                   UpgradeCommand.run.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/command/upgrade.dart                      UpgradeCommand.run\r\n    | package:args/command_runner.dart 176                      CommandRunner.runCommand.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:args/command_runner.dart 129                      CommandRunner.runCommand\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:pub/src/utils.dart 114                            captureErrors.<fn>\r\n    | package:stack_trace                                       Chain.capture\r\n    | package:pub/src/utils.dart 128                            captureErrors\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/command_runner.dart 217                   PubCommandRunner._validatePlatform.<async>\r\nSLVR: Could not get versions for analyzer from hosted:\r\n    | FormatException: Could not parse \"alpha.1\".\r\n    | \r\n    | package:pub_semver/src/version.dart 118                   Version.Version.parse\r\n    | package:pub/src/source/hosted.dart 274                    OfflineHostedSource.doGetVersions.<async>.<fn>\r\n    | dart:core                                                 Iterable.toList\r\n    | package:pub/src/source/hosted.dart 276                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _Completer.completeError\r\n    | package:pub/src/source/hosted.dart 290                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/source/hosted.dart                        OfflineHostedSource.doGetVersions\r\n    | package:pub/src/source.dart 103                           Source.getVersions\r\n    | package:pub/src/solver/version_solver.dart 197            SolverCache.getVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/version_solver.dart                SolverCache.getVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 121  UnselectedPackageQueue._getNumVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue._getNumVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 50   UnselectedPackageQueue.add.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue.add\r\n    | package:pub/src/solver/version_selection.dart 68          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 70          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.forEach\r\n    | package:pub/src/solver/version_selection.dart 61          VersionSelection.select.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/version_selection.dart             VersionSelection.select\r\n    | package:pub/src/solver/backtracking_solver.dart 308       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 336       BacktrackingSolver._versionQueueFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 430       BacktrackingSolver._findValidVersion.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 550       BacktrackingSolver._checkVersion.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 312       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.doWhile\r\n    | package:pub/src/solver/backtracking_solver.dart 273       BacktrackingSolver._solve.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver._solve\r\n    | package:pub/src/solver/backtracking_solver.dart 169       BacktrackingSolver.solve.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver.solve\r\n    | package:pub/src/solver/version_solver.dart 38             resolveVersions.<fn>\r\n    | package:pub/src/log.dart 407                              progress\r\n    | package:pub/src/solver/version_solver.dart 36             resolveVersions\r\n    | package:pub/src/entrypoint.dart 171                       Entrypoint.acquireDependencies.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/entrypoint.dart                           Entrypoint.acquireDependencies\r\n    | package:pub/src/command/upgrade.dart 34                   UpgradeCommand.run.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/command/upgrade.dart                      UpgradeCommand.run\r\n    | package:args/command_runner.dart 176                      CommandRunner.runCommand.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:args/command_runner.dart 129                      CommandRunner.runCommand\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:pub/src/utils.dart 114                            captureErrors.<fn>\r\n    | package:stack_trace                                       Chain.capture\r\n    | package:pub/src/utils.dart 128                            captureErrors\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/command_runner.dart 217                   PubCommandRunner._validatePlatform.<async>\r\nSLVR: | | * select flutter_test 0.0.0 from path\r\nSLVR: BacktrackingSolver took 0:00:00.216225 seconds.\r\n    | - Requested 14 version lists\r\n    | - Looked up 3 cached version lists\r\n    | \r\nFINE: Resolving dependencies finished (0.2s).\r\nERR : Could not parse \"alpha.1\".\r\nFINE: Exception type: FormatException\r\nERR : package:pub_semver/src/version.dart 118                   Version.Version.parse\r\n    | package:pub/src/source/hosted.dart 274                    OfflineHostedSource.doGetVersions.<async>.<fn>\r\n    | dart:core                                                 Iterable.toList\r\n    | package:pub/src/source/hosted.dart 276                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _Completer.completeError\r\n    | package:pub/src/source/hosted.dart 290                    OfflineHostedSource.doGetVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/source/hosted.dart                        OfflineHostedSource.doGetVersions\r\n    | package:pub/src/source.dart 103                           Source.getVersions\r\n    | package:pub/src/solver/version_solver.dart 197            SolverCache.getVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/version_solver.dart                SolverCache.getVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 121  UnselectedPackageQueue._getNumVersions.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue._getNumVersions\r\n    | package:pub/src/solver/unselected_package_queue.dart 50   UnselectedPackageQueue.add.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/unselected_package_queue.dart      UnselectedPackageQueue.add\r\n    | package:pub/src/solver/version_selection.dart 68          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 70          VersionSelection.select.<async>.<fn>.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.forEach\r\n    | package:pub/src/solver/version_selection.dart 61          VersionSelection.select.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/version_selection.dart             VersionSelection.select\r\n    | package:pub/src/solver/backtracking_solver.dart 308       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 336       BacktrackingSolver._versionQueueFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 430       BacktrackingSolver._findValidVersion.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 550       BacktrackingSolver._checkVersion.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 601       BacktrackingSolver.depsFor.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 610       BacktrackingSolver._getPubspec.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/source.dart 137                           Source.describe.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/backtracking_solver.dart 312       BacktrackingSolver._solve.<async>.<fn>.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.doWhile\r\n    | package:pub/src/solver/backtracking_solver.dart 273       BacktrackingSolver._solve.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver._solve\r\n    | package:pub/src/solver/backtracking_solver.dart 169       BacktrackingSolver.solve.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/solver/version_selection.dart 71          VersionSelection.select.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                _asyncThenWrapperHelper\r\n    | package:pub/src/solver/backtracking_solver.dart           BacktrackingSolver.solve\r\n    | package:pub/src/solver/version_solver.dart 38             resolveVersions.<fn>\r\n    | package:pub/src/log.dart 407                              progress\r\n    | package:pub/src/solver/version_solver.dart 36             resolveVersions\r\n    | package:pub/src/entrypoint.dart 171                       Entrypoint.acquireDependencies.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/entrypoint.dart                           Entrypoint.acquireDependencies\r\n    | package:pub/src/command/upgrade.dart 34                   UpgradeCommand.run.<async>\r\n    | ===== asynchronous gap ===========================\r\n    | dart:async                                                Future.Future.microtask\r\n    | package:pub/src/command/upgrade.dart                      UpgradeCommand.run\r\n    | package:args/command_runner.dart 176                      CommandRunner.runCommand.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:args/command_runner.dart 129                      CommandRunner.runCommand\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>.<fn>\r\n    | dart:async                                                Future.Future.sync\r\n    | package:pub/src/utils.dart 114                            captureErrors.<fn>\r\n    | package:stack_trace                                       Chain.capture\r\n    | package:pub/src/utils.dart 128                            captureErrors\r\n    | package:pub/src/command_runner.dart 131                   PubCommandRunner.runCommand.<async>\r\n    | dart:async                                                _SyncCompleter.complete\r\n    | package:pub/src/command_runner.dart 217                   PubCommandRunner._validatePlatform.<async>\r\n---- End log transcript ----\r\n```"},"comment":{"url":"https://api.github.com/repos/dart-lang/pub/issues/comments/218275775","html_url":"https://github.com/dart-lang/pub/issues/1415#issuecomment-218275775","issue_url":"https://api.github.com/repos/dart-lang/pub/issues/1415","id":218275775,"user":{"login":"nex3","id":188,"avatar_url":"https://avatars.githubusercontent.com/u/188?v=3","gravatar_id":"","url":"https://api.github.com/users/nex3","html_url":"https://github.com/nex3","followers_url":"https://api.github.com/users/nex3/followers","following_url":"https://api.github.com/users/nex3/following{/other_user}","gists_url":"https://api.github.com/users/nex3/gists{/gist_id}","starred_url":"https://api.github.com/users/nex3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nex3/subscriptions","organizations_url":"https://api.github.com/users/nex3/orgs","repos_url":"https://api.github.com/users/nex3/repos","events_url":"https://api.github.com/users/nex3/events{/privacy}","received_events_url":"https://api.github.com/users/nex3/received_events","type":"User","site_admin":false},"created_at":"2016-05-10T20:09:11Z","updated_at":"2016-05-10T20:09:11Z","body":"Thanks for the thorough issue report!"}}