writePackageChangelog method

void writePackageChangelog(
  1. MelosPendingPackageUpdate update
)

Implementation

void writePackageChangelog(MelosPendingPackageUpdate update) {
  final config = update.workspace.config;
  final includeDate = config.commands.version.includeDateInChangelogEntry;

  // Changelog entry header.
  write('## ');
  if (includeDate) {
    final now = DateTime.now();

    write(update.nextVersion);
    write(' - ');
    writeln(now.toFormattedString());
  } else {
    writeln(update.nextVersion);
  }
  writeln();

  if (update.reason == PackageUpdateReason.dependency) {
    // Dependency change entry.
    writeln(' - Update a dependency to the latest release.');
    writeln();
  }

  if (update.reason == PackageUpdateReason.graduate) {
    // Package graduation entry.
    writeln(
      ' - Graduate package to a stable release. See pre-releases prior to '
      'this version for changelog entries.',
    );
    writeln();
  }

  if (update.reason == PackageUpdateReason.commit ||
      update.reason == PackageUpdateReason.manual) {
    // Breaking change note.
    if (update.hasBreakingChanges) {
      writeln('> Note: This release has breaking changes.');
      writeln();
    }

    writePackageUpdateChanges(update);
  }
}