pub_release
Automates the release of a dart package to pub.dev including running dartfmt, creating a git tag, incrementing the packages version no. and pushing the package to pub.dev.
Pub Release is a package to assist in publishing dart/flutter packages to pub.dev.
^2.3.1^10.1.0^10.1.0^9.4.0^1.3.0^2.0.0^1.8.3^2.1.0^4.0.1^8.1.0^8.0.1^1.26.3English project snapshot. Visit GitHub for the latest content.
Pub Release is a package that automates publishing dart/flutter packages to pub.dev.
Pub Release also supports the simultaneous release of multiple related packages.
Pub Release performs the following operations:
Install Pub Release globally:
dart pub global activate pub_release
Run it from your package root:
pub_release
Read the full documentation to learn how to use it.
Dry-run a release (no publish):
pub_release --dry-run
Set a specific version and skip prompts:
pub_release --setVersion=1.2.3 --autoAnswer
Run multi-package release in a mono-repo:
pub_release multi
Use --dry-run to validate a release without publishing. During a dry run,
pub_release performs the publish step inside a temporary copy of your package
to avoid git working tree warnings while still validating the generated
version and changelog.
If you need to allow warnings from dart pub publish, pass
--ignore-warnings.
pub_release - release a single package (default).pub_release multi - release related packages using tool/pubrelease.multi.yaml.pub_release help - show usage.--dry-run - validate but do not publish.--ignore-warnings - pass --ignore-warnings to dart pub publish.--[no]-test - enable/disable unit tests (default: on).--test-concurrency=<n> - maximum concurrent test suites (positive integer); overrides the project setting.--line=<n> - formatter line length (default: 80).--[no]-format - enable/disable formatting (default: on).--verbose - enable verbose logging.--git - enable git operations (default: on).--no-multi - disable multi-release even if a multi config exists.--askVersion - prompt for version (default).--setVersion=<x.y.z> - set version directly.--autoAnswer - suppress prompts (requires --setVersion).--tags=<tag,...> - only run tests matching tags.--exclude-tags=<tag,...> - exclude tests by tag.--skip-packages=<name,...> - skip named packages when running the multi command.For projects whose tests share external state, run test suites serially by adding
the following to tool/.pubrelease.yaml:
test-concurrency: 1
Override the project setting for a release with:
pub_release --test-concurrency=4
Pub Release passes the selected value to critical_test as --concurrency=<n>.
The value must be a positive integer. If neither setting is provided,
critical_test's default concurrency is unchanged. For multi-package releases,
the selected value applies to every released package. --no-test still skips
tests regardless of the concurrency setting.
When using pub_release multi, the first package that generates a changelog
entry will have its release notes propagated to the other packages unless they
already contain notes for that version.