docs: function ensureGagarinVersionsMatch(pathToApp, verbose) {
  
    var pathToMeteorPackages = path.join(pathToApp, '.meteor', 'packages');
    var nodeModuleVersion    = require('../../package.json').version;
  
    return new Promise(function (resolve, reject) {
  
      utils.getGagarinPackageVersion(pathToApp).then(function (packageVersion) {
  
        if (packageVersion === nodeModuleVersion) {
          logs.system("node module and smart package versions match, " + packageVersion);
          return resolve();
        }
  
        tools.getReleaseVersion(pathToApp).then(function (meteorReleaseVersion) {
  
          if (meteorReleaseVersion < "0.9.0") {
            // really, we can do nothing about package version
            // without a decent package management system
            logs.system("meteor version is too old to automatically fix package version");
            return resolve();
          }
  
          logs.system("meteor add anti:gagarin@=" + nodeModuleVersion);
  
          var meteor = spawn('meteor', [ 'add', 'anti:gagarin@=' + nodeModuleVersion ], {
  
            stdio: verbose ? 'inherit' : 'ignore', cwd: pathToApp
          });
  
          /*
          meteor.stdout.on('data', function (data) {
            if (!verbose) {
              return;
            }
            process.stdout.write(chalk.gray(stripAnsi(data)));
          });
          */
  
          meteor.on('error', reject);
  
          meteor.on('exit', function (code) {
            if (code > 0) {
              return reject(new Error('meteor exited with code ' + code));
            }
            logs.system("anti:gagarin is now in version " + nodeModuleVersion);
            resolve();
          });
  
        }).catch(reject);
  
      }).catch(reject);
  
    }); // Promise
  }