qiwi / multi-semantic-release

Proof of concept that wraps semantic-release to work with monorepos.
BSD Zero Clause License
86 stars 34 forks source link

generateNotes "waitFor" condition might unreachable sometimes #6

Closed antongolub closed 4 years ago

antongolub commented 4 years ago

generateNotes "waitFor" condition might unreachable if some packages do not trigger the release, but hang up and still present todo queue. semrel

const nextRelease = {
    type: await plugins.analyzeCommits(context),
    channel: context.branch.channel || null,
    gitHead: await getGitHead({cwd, env}),
  };
  if (!nextRelease.type) {
    logger.log('There are no relevant changes, so no new version is released.');
    return context.releases.length > 0 ? {releases: context.releases} : false;
  }

multi-semrel

        const generateNotes = async (pluginOptions, context) => {
            // Set nextRelease for package.
            pkg._nextRelease = context.nextRelease;

            // Wait until all todo packages are ready to generate notes.
            await waitFor("_nextRelease");

So packages must be filtered by (p) => p._nextType.

qiwibot commented 4 years ago

:tada: This issue has been resolved in version 3.0.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket: