     done()
   )
 
+gulp.task '_tagRev', ['_build'], ->
+  gulp.src("#{DIST_DIR}/*.min.*")
+    .pipe(rev())
+    .pipe(gulp.dest(DIST_DIR))
+    .pipe(rev.manifest())
+    .pipe(gulp.dest(DIST_DIR))
 
 # -----------------------------------------------------------------------
 #  Production
 # -----------------------------------------------------------------------
 
-gulp.task '_archive', ['_build'], ->
-  destDir = './dist'
-  gulp.src("#{destDir}/*.min.*")
-    .pipe(rev())
-    .pipe(gulp.dest(destDir))
-    .pipe(rev.manifest())
-    .pipe(gulp.dest(destDir))
-
-  gulp.src(["#{destDir}/*"], base: destDir)
+gulp.task '_archive', ['_tagRev'], ->
+  gulp.src(["#{DIST_DIR}/*"], base: DIST_DIR)
     .pipe(tar('archive.tar'))
     .pipe(gzip())
-    .pipe(gulp.dest(destDir))
+    .pipe(gulp.dest(DIST_DIR))
 
 # -----------------------------------------------------------------------
 #  Development

  config = _.extend({}, webpackConfig, {
    plugins: [
      new ExtractTextPlugin("tutor.min.css")
    ]
  })
  config.output.filename = 'tutor.min.js'

  configFile: __dirname + '/test/karma-coverage.config.coffee'
  singleRun: false

DIST_DIR = './dist'

handleErrors = (title) => (args...) =>
  # TODO: Send error to notification center with gulp-notify
  console.error(title, args...)
