anchor.diff:    Future<PackageVersion> upload(Stream<List<int>> data) {
       _logger.info('Starting upload.');
       return withAuthenticatedUser((AuthenticatedUser user) {
  -      final userEmail = user.email;
  -      _logger.info('User: $userEmail.');
  +      _logger.info('User: ${user.userId} / ${user.email}.');
   
         return withTempDirectory((Directory dir) async {
           final filename = '${dir.absolute.path}/tarball.tar.gz';
           await _saveTarballToFS(data, filename);
  -        return _performTarballUpload(userEmail, filename, (package, version) {
  +        return _performTarballUpload(user, filename, (package, version) {
             return storage.upload(
                 package, version, new File(filename).openRead());
           });
  
positive.code:   }
  
    Future<PackageVersion> _performTarballUpload(
        String userEmail,
        String filename,
        Future tarballUpload(String name, String version)) async {
      _logger.info('Examining tarball content.');
  
      // Parse metadata from the tarball.
      final validatedUpload =
          await _parseAndValidateUpload(db, filename, userEmail);
      final newVersion = validatedUpload.packageVersion;
  
      models.Package package;
  
negative.code:     ..downloads = 0
      ..latestVersionKey = version.key
      ..latestDevVersionKey = version.key
      ..uploaders = [authenticatedUser.userId]
      ..uploaderEmails = [authenticatedUser.email];
  }
  
  