搜索插件、代码仓与 APP 分类

插件详情v11.11.1

pub_release

自动将 Dart 包发布到 pub.dev,包括运行 dartfmt、创建 Git 标签、递增包版本号并推送包到 pub.dev。

macOSWindowsLinux
近 30 天下载
970
喜欢数
22
Pub 分数
150

安装插件

flutter pub add pub_release

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

pub_release 是一个 Flutter/Dart 包,可自动将 Dart 包发布到 pub.dev。它通过运行 dartfmt 进行代码格式化、递增版本号、创建 git 标记并将更新后的包推送到 pub.dev 来简化发布流程。该工具专为频繁发布包的开发者设计,可减少手动步骤并降低发布工作流中的错误。支持 macOS、Windows 和 Linux,使其在主要开发环境中均可使用。

适合场景

  • 自动化软件包发布
  • 简化 pub.dev 发布
  • 确保代码格式一致
  • 管理版本递增
  • 减少手动发布错误

主要特点

  • 自动执行 dartfmt
  • 版本升级
  • Git 标签
  • 发布到 pub.dev
  • 跨平台支持

适合对象

  • Dart 包维护者
  • CI/CD 流水线集成
  • 频繁发布者
  • 开源贡献者

使用建议

  • 需要 git 设置
  • 需要 pub.dev 凭据
  • 依赖于正确的版本控制策略
  • 可能需要为复杂的工作流进行自定义配置

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

README

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:

  • Run pre/post release 'hook' scripts.
  • Formats all code using dartfmt
  • Increments the version no. using semantic versioning after asking what sort of changes have been made.
  • Creates a dart file containing the version no. in src/version/version.g.dart
  • Updates the pubspec.yaml with the new version no.
  • If you are using Git:
    • Generates a Git Tag using the new version no.
    • Generates release notes from commit messages since the last tag.
    • Publish any executables list in pubspec.yaml as assets on github
  • Allows you to edit the release notes.
  • Adds the release notes to CHANGELOG.MD along with the new version no.
  • Publishes the package to pub.dev.

Getting Started

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.

Common Workflows

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

Dry Run

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.

Commands

  • pub_release - release a single package (default).
  • pub_release multi - release related packages using tool/pubrelease.multi.yaml.
  • pub_release help - show usage.

Flags

  • --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.

Test Concurrency

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.

Multi Release Notes

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.

所属分类

依赖

依赖清单 10 项

源码仓库

使用此插件的项目

暂无相关数据。