anchor.diff:    FileSet srcVer = new FileSet.fromFile(srcVersionFile);
     FileSet destVer = new FileSet.fromFile(destVersionFile);
   
  -  Directory compilerDir = new Directory('packages/compiler');
  -
     // check the state of the sdk/version file, to see if things are up-to-date
  -  if (!destVer.upToDate(srcVer) || !compilerDir.existsSync()) {
  +  if (!destVer.upToDate(srcVer)) {
       // copy files over
       context.log('copying SDK');
       copyFile(srcVersionFile, destSdkDir);
       copyDirectory(joinDir(srcSdkDir, ['lib']), joinDir(destSdkDir, ['lib']));
   
  -    // Create a synthetic package:compiler package in the packages directory.
  -    compilerDir.createSync();
  -
  -    runCommandSync(context, 'rm -rf packages/compiler/compiler');
  -    runCommandSync(context, 'rm -rf packages/compiler/lib');
  -    runCommandSync(context, 'rm -rf app/sdk/lib/_internal/compiler/samples');
  -    runCommandSync(context, 'mv app/sdk/lib/_internal/compiler packages/compiler');
  -    runCommandSync(context, 'mv app/sdk/lib/_internal/lib packages/compiler');
  -    runCommandSync(context, 'cp app/sdk/lib/_internal/libraries.dart packages/compiler');
  -    runCommandSync(context, 'rm -rf app/sdk/lib/_internal/pub');
  -    runCommandSync(context, 'rm -rf app/sdk/lib/_internal/dartdoc');
  +    // lib/_internal/compiler, dartdoc, and pub are not sdk libraries, but do
  +    // take up a lot of space; remove them
  +    _runCommandSync(context, 'rm -rf app/sdk/lib/_internal/compiler');
  +    _runCommandSync(context, 'rm -rf app/sdk/lib/_internal/dartdoc');
  +    _runCommandSync(context, 'rm -rf app/sdk/lib/_internal/pub');
   
       // traverse directories, creating a .files json directory listing
       context.log('creating SDK directory listings');
  -    createDirectoryListings(destSdkDir);
  +    _createDirectoryListings(destSdkDir);
     }
   }
   
  
positive.code:   context.log('** A commit has been created, you need to push it. ***');
  }
  
  /**
   * Populate the 'app/sdk' directory from the current Dart SDK.
   */
  void populateSdk(GrinderContext context) {
    Directory srcSdkDir = sdkDir;
    Directory destSdkDir = new Directory('app/sdk');
  
  
negative.code: 
    PubTools pub = new PubTools();
    pub.install(context);
  
    _populateSdk(context);
  
    // copy from ./packages to ./app/packages
    copyDirectory(
        joinDir(Directory.current, ['packages']),
        joinDir(Directory.current, ['app', 'packages']));
  
    BUILD_DIR.createSync();
    DIST_DIR.createSync();
  }
  
  /**
   * Copy all source to `build/deploy`. Do a polymer deploy to `build/deploy-out`.
   * This builds the regular (non-test) version of the app.
   */
  void deploy(GrinderContext context) {
    Directory sourceDir = joinDir(BUILD_DIR, ['deploy']);
    Directory destDir = joinDir(BUILD_DIR, ['deploy-out']);
  
    _polymerDeploy(context, sourceDir, destDir);
  
    _dart2jsCompile(context,
        joinDir(destDir, ['web']), 'spark.html_bootstrap.dart');
  }
  
  /**
   * Copy all source to `build/deploy-test`. Do a polymer deploy to
   * `build/deploy-test-out`. This builds a test version of the app.
   */
  void deployTest(GrinderContext context) {
    Directory sourceDir = joinDir(BUILD_DIR, ['deploy-test']);
    Directory destDir = joinDir(BUILD_DIR, ['deploy-test-out']);
  
    _polymerDeploy(context, sourceDir, destDir);
  
    _dart2jsCompile(context,
        joinDir(destDir, ['web']), 'spark.html_bootstrap.dart');
  }
  
  // Creates a release build to be uploaded to Chrome Web Store.
  