version method

Future<void> version({
  1. GlobalOptions? global,
  2. PackageFilters? packageFilters,
  3. bool asPrerelease = false,
  4. bool asStableRelease = false,
  5. bool updateChangelog = true,
  6. bool updateDependentsConstraints = true,
  7. bool updateDependentsVersions = true,
  8. bool gitTag = true,
  9. bool gitCommit = true,
  10. bool? releaseUrl,
  11. String? message,
  12. bool force = false,
  13. bool showPrivatePackages = false,
  14. String? preid,
  15. String? dependentPreid,
  16. bool versionPrivatePackages = false,
  17. Map<String, ManualVersionChange> manualVersions = const {},
})
inherited

Version packages automatically based on the git history or with manually specified versions.

Implementation

Future<void> version({
  GlobalOptions? global,
  PackageFilters? packageFilters,
  bool asPrerelease = false,
  bool asStableRelease = false,
  bool updateChangelog = true,
  bool updateDependentsConstraints = true,
  bool updateDependentsVersions = true,
  bool gitTag = true,
  bool gitCommit = true,
  bool? releaseUrl,
  String? message,
  bool force = false,
  // all
  bool showPrivatePackages = false,
  String? preid,
  String? dependentPreid,
  bool versionPrivatePackages = false,
  Map<String, versioning.ManualVersionChange> manualVersions = const {},
}) async {
  if (asPrerelease && asStableRelease) {
    throw ArgumentError('Cannot use both asPrerelease and asStableRelease.');
  }

  if (updateDependentsVersions && !updateDependentsConstraints) {
    throw ArgumentError(
      'Cannot use updateDependentsVersions without '
      'updateDependentsConstraints.',
    );
  }

  if ((asPrerelease || asStableRelease) && manualVersions.isNotEmpty) {
    throw ArgumentError(
      'Cannot use manualVersions with asPrerelease or asStableRelease.',
    );
  }

  final workspace = await createWorkspace(
    global: global,
    // We ignore `diff` package list filtering on the 'version' command as it
    // already filters it itself, filtering here would map dependant version
    // fail as it won't be aware of any packages that have been filtered out
    // here because of the 'diff' filter.
    packageFilters: packageFilters?.copyWithDiff(null),
  );

  return _runLifecycle(workspace, CommandWithLifecycle.version, () {
    return _version(
      workspace: workspace,
      global: global,
      packageFilters: packageFilters,
      asPrerelease: asPrerelease,
      asStableRelease: asStableRelease,
      updateChangelog: updateChangelog,
      updateDependentsConstraints: updateDependentsConstraints,
      updateDependentsVersions: updateDependentsVersions,
      gitTag: gitTag,
      gitCommit: gitCommit,
      releaseUrl: releaseUrl,
      message: message,
      force: force,
      showPrivatePackages: showPrivatePackages,
      preid: preid,
      dependentPreid: dependentPreid,
      versionPrivatePackages: versionPrivatePackages,
      manualVersions: manualVersions,
    );
  });
}