anchor.diff:  }
   
   void _zip(GrinderContext context, String dirToZip, String destFile) {
  -    if (Platform.isWindows) {
  -      try {
  -        // 7z a -r '${destFile}'
  -        runProcess(
  -            context,
  -            '7z',
  -            arguments: ['a', '-r', destFile, '.'],
  -            workingDirectory: dirToZip,
  -            quiet: true);
  -      } on ProcessException catch(e) {
  -        context.fail("Unable to execute 7z.\n"
  -          "Please install 7zip. Add 7z directory to the PATH environment variable.");
  -      }
  -    } else {
  -      // zip '${destFile}' . -r -q -x .*
  +  final String destPath = path.relative(destFile, from: dirToZip);
  +
  +  if (Platform.isWindows) {
  +    try {
  +      // 7z a -r '${destFile}'
         runProcess(
             context,
  -          'zip',
  -          arguments: [destFile, '.', '-qr', '-x', '.*'],
  -          workingDirectory: dirToZip);
  +          '7z',
  +          arguments: ['a', '-r', destPath, '.'],
  +          workingDirectory: dirToZip,
  +          quiet: true);
  +    } on ProcessException catch(e) {
  +      context.fail("Unable to execute 7z.\n"
  +        "Please install 7zip. Add 7z directory to the PATH environment variable.");
       }
  +  } else {
  +    // zip '${destFile}' . -r -q -x .*
  +    runProcess(
  +        context,
  +        'zip',
  +        arguments: [destPath, '.', '-qr', '-x', '.*'],
  +        workingDirectory: dirToZip);
  +  }
   }
   
   void _polymerDeploy(GrinderContext context, Directory sourceDir, Directory destDir) {
     deleteEntity(getDir('${sourceDir.path}'), context);
     deleteEntity(getDir('${destDir.path}'), context);
   
  -  // copy spark/widgets to spark/ide/build/widgets
  +  // Copy spark/widgets to spark/ide/build/widgets. This is necessary because
  +  // spark_widgets is a relative "path" dependency in pubspec.yaml.
     copyDirectory(getDir('../widgets'), joinDir(BUILD_DIR, ['widgets']), context);
   
  -  // copy the app directory to target/web
  +  // Copy the app directory to target/web.
     copyFile(new File('pubspec.yaml'), sourceDir);
     copyFile(new File('pubspec.lock'), sourceDir);
     copyDirectory(new Directory('app'), joinDir(sourceDir, ['web']), context);
  
positive.code: 
  import 'package:grinder/grinder.dart';
  import 'package:intl/intl.dart';
  
  final NumberFormat _NF = new NumberFormat.decimalPattern();
  
  
negative.code: 
    defineTask('docs', taskFunction: docs, depends : ['setup']);
    defineTask('stats', taskFunction: stats);
    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', 'deploy']);
    }
  
    defineTask('clean', taskFunction: clean);
  