anchor.diff:  
     defineTask('docs', taskFunction: docs, depends : ['setup']);
     defineTask('stats', taskFunction: stats);
  -  defineTask('archive', taskFunction: archive, depends : ['mode-notest', 'compile']);
  +  defineTask('archive', taskFunction: archive, depends : ['mode-notest', 'deploy']);
   
     // For now, we won't be building the webstore version from Windows.
     if (!Platform.isWindows) {
  -    defineTask('release', taskFunction: release, depends : ['mode-notest', 'compile']);
  +    defineTask('release', taskFunction: release, depends : ['mode-notest', 'deploy']);
     }
   
     defineTask('clean', taskFunction: clean);
  
positive.code: }
  
  // Creates an archive of the Chrome App.
  // - Sources will be compiled in Javascript using "compile" task
  //
  // We'll create an archive using the content of build-chrome-app.
  // - Copy the compiled sources to build/chrome-app/spark
  // - We clean all packages/ folders that have been duplicated into every
  //   folders by the "compile" task
  // - Copy the packages/ directory in build/chrome-app/spark/packages
  // - Remove test
  // - Zip the content of build/chrome-app-spark to dist/spark.zip
  void archive(GrinderContext context, [String outputZip]) {
    String sparkZip = outputZip == null ? '${DIST_DIR.path}/spark.zip' :
                                          '${DIST_DIR.path}/${outputZip}';
    _delete(sparkZip);
    _zip(context, 'app', '../${sparkZip}');
    _printSize(context, getFile(sparkZip));
  }
  
  
negative.code: 
  import 'package:grinder/grinder.dart';
  import 'package:intl/intl.dart';
  import 'package:path/path.dart' as path;
  
  final NumberFormat _NF = new NumberFormat.decimalPattern();
  
  