anchor.diff:      assert(Directory(directory).existsSync());
   
       final pubspecPath = p.join(directory, 'pubspec.yaml');
  +
  +    _print('open pubspec: $pubspecPath');
   
       return Pubspec.parse(
         File(pubspecPath).readAsStringSync(),
  
positive.code: import 'util.dart';
  
  class PubDataService extends Service {
    final _client = http.Client();
  
    void close() => _client.close();
  
negative.code:     String packageName,
      bool includePreRelease,
    ) async {
      final body = await _retryGet('https://pub.dev/packages/$packageName.json');
  
      final json = jsonDecode(body);
  
      assert(json['name'] == packageName);
  
      final versions = (json['versions'] as List)
          .map((str) => Version.parse(str as String))
          .toList();
  
      final primary = primaryVersion(versions, includePreRelease);
  
      return primary;
    }
  
    Future<String> _retryGet(String path) async {
      http.Response response;
  
      var retries = 0;
      for (;;) {
        try {
          // TODO(kevmoo): use http_retry
          _print('requesting package json: $path');
          response = await _client.get(path, headers: _headers);
          break;
        } catch (e) {
  