yeoman / update-notifier

Update notifications for your CLI app
BSD 2-Clause "Simplified" License
1.76k stars 132 forks source link

Conflicts happen if two projects use the same local package #196

Open petersg83 opened 4 years ago

petersg83 commented 4 years ago

Hello :)

context I would like to use update-notifier in https://github.com/strapi/strapi in order to ask users of strapi to update their local package.

Issue In the case the user has 2 strapi projects, they share the same configStore file: ~/.config/configstore/update-notifier-strapi.json and that may lead to incorrect behavior concerning the variable lastUpdateCheck (and update I think).

lastUpdateCheck is updated by both projects and only one of them will be notified when a new version is out. If one project is used way more often than the other, it would be quite the only one to have the notifications. The more strapi projects the user has, the more the problem is visible.

Code

  const notifier = updateNotifier({
    pkg,
    updateCheckInterval: 1000 * 60 * 60 * 24 * 7, // 1 week
    shouldNotifyInNpmScript: true,
  });

  const currentVersionLog = chalk.dim('{currentVersion}');
  const newVersionLog = chalk.green('{latestVersion}');
  const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');
  let message = `
  A new version of Strapi is available ${currentVersionLog} → ${newVersionLog}
  Check out new releases at: ${releaseLink}
  `;

  notifier.notify({ defer: false, message: message.trim() });