Flutter版本管理辅助插件version_assist的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter版本管理辅助插件version_assist的使用

安装 🚀

如果CLI应用在pub上可用,可以通过以下命令全局激活:

dart pub global activate version_assist

本地开发 🛠️

1. 克隆仓库

git clone git@github.com:kuyazee/Version-Assist.git
cd version_assist

2. 安装依赖

dart pub get

3. 在开发期间本地运行

# 直接用Dart运行
dart run bin/version_assist.dart bump

# 如果有make命令,可以使用
dart run bin/version_assist.dart bump --path=/path/to/pubspec.yaml

4. 本地激活以进行测试

# 从version_assist目录运行
dart pub global activate --source path .

# 现在可以像全局命令一样运行它
version_assist bump

使用

版本升级

该工具支持几种版本控制选项:

语义化版本控制(major.minor.patch)
  • 主版本(x.0.0):不兼容变更
  • 次版本(0.x.0):新增功能,向下兼容
  • 补丁版本(0.0.x):修复bug,向下兼容
版本格式
  • 不带构建号:1.0.0(默认)
  • 带构建号:1.0.0+1(可选)
构建号选项
  • 简单递增:增加构建号1
  • 基于日期的格式:使用格式yymmddbn,其中:
    • yy:年(例如,24代表2024年)
    • mm:月(01-12)
    • dd:日(01-31)
    • bn:当日的构建号(00-99)

基本使用示例:

# 语义化版本升级(保持格式不变)
$ version_assist bump --major    # 1.0.0 -> 2.0.0
$ version_assist bump --minor    # 1.0.0 -> 1.1.0
$ version_assist bump --patch    # 1.0.0 -> 1.0.1

# 构建号管理
$ version_assist bump --add-build-number          # 1.0.0 -> 1.0.0+1
$ version_assist bump --date-based-build-number   # 1.0.0 -> 1.0.0+24020800
$ version_assist bump --no-build-number           # 1.0.0+1 -> 1.0.0

# 组合操作
$ version_assist bump --major --add-build-number  # 1.0.0 -> 2.0.0+1
$ version_assist bump --minor --no-build-number   # 1.0.0+1 -> 1.1.0

# 预览更改而不实际执行
$ version_assist bump --dry-run

设置版本

手动设置特定版本号:

# 设置不带构建号的版本
$ version_assist set --version 2.0.0    # 设置版本为2.0.0

# 设置带构建号的版本
$ version_assist set --version 2.0.0+1  # 设置版本为2.0.0+1

# 预览更改而不实际执行
$ version_assist set --version 2.0.0 --dry-run

# 设置版本并创建提交/标签
$ version_assist set --version 2.0.0 --auto-commit

选项:

  • --version, -v:要设置的版本(必需,格式为x.y.z或x.y.z+build)
  • --path, -p:pubspec.yaml路径(默认:pubspec.yaml)
  • --dry-run, -d:显示将发生的情况而不做更改
  • --auto-commit:自动提交和标记版本更改

版本控制

该工具提供了两种方式来创建版本提交和标签:

使用commit命令(推荐):
# 首先升级版本
$ version_assist bump --major

# 然后创建提交和标签
$ version_assist commit
使用--auto-commit标志与bump命令(遗留):
$ version_assist bump --major --auto-commit

这两种方法都会:

  1. 使用git add添加pubspec.yaml文件
  2. 创建一个提交消息为build(version): Bump version to {version}的提交
  3. 创建一个git标签

单独的commit命令提供了更多的灵活性,可以独立使用:

# 创建版本提交和标签
$ version_assist commit

# 预览提交而不实际执行
$ version_assist commit --dry-run

# 使用自定义pubspec路径
$ version_assist commit --path=/path/to/pubspec.yaml

更新版本徽章

更新README.md中的版本徽章,使其与pubspec.yaml中的当前版本匹配。这对于保持文档与包版本同步非常有用。

# 更新版本徽章
$ version_assist badge

# 预览更改而不实际执行
$ version_assist badge --dry-run

# 使用自定义文件路径
$ version_assist badge --pubspec-path=/path/to/pubspec.yaml --readme-path=/path/to/README.md

选项:

  • --pubspec-path, -p:pubspec.yaml路径(默认:pubspec.yaml)
  • --readme-path, -r:README.md路径(默认:README.md
  • --dry-run, -d:显示将发生的情况而不做更改

更新CLI

更新CLI工具到最新版本。

$ version_assist update

通用命令

# 显示CLI版本
$ version_assist --version

# 显示帮助信息
$ version_assist --help

运行测试并查看覆盖率 🧪

要运行所有单元测试,请使用以下命令:

$ dart pub global activate coverage 1.2.0
$ dart test --coverage=coverage
$ dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info

要查看生成的覆盖率报告,可以使用lcov

# 生成覆盖率报告
$ genhtml coverage/lcov.info -o coverage/

# 打开覆盖率报告
$ open coverage/index.html

更多关于Flutter版本管理辅助插件version_assist的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter版本管理辅助插件version_assist的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用version_assist插件来管理版本的一个示例。version_assist是一个用于简化Flutter项目版本管理的插件,尽管它不是Flutter官方提供的插件,但假设它提供了类似功能,我们可以编写一个示例来展示如何使用它。

首先,你需要在pubspec.yaml文件中添加version_assist依赖:

dependencies:
  flutter:
    sdk: flutter
  version_assist: ^x.y.z  # 请替换为实际的版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以使用version_assist来读取和修改pubspec.yaml文件中的版本号。以下是一个示例代码,展示了如何使用该插件来读取和更新版本:

import 'package:version_assist/version_assist.dart';  // 假设这是插件的导入路径
import 'package:yaml/yaml.dart';  // 这个库通常用于解析YAML文件

void main() async {
  // 读取pubspec.yaml文件
  File pubspecFile = File('pubspec.yaml');
  String yamlContent = await pubspecFile.readAsString();
  
  // 解析YAML内容
  YamlMap yamlMap = loadYaml(yamlContent) as YamlMap;
  String currentVersion = yamlMap['version'] as String;
  
  print('Current version: $currentVersion');

  // 使用version_assist插件来更新版本(假设插件提供了这样的API)
  // 注意:这里的API是假设的,具体API请参考version_assist的文档
  VersionAssist versionAssist = VersionAssist(pubspecFilePath: 'pubspec.yaml');
  
  // 更新版本号(例如,增加补丁版本号)
  String newVersion = versionAssist.incrementPatch();
  
  // 将新版本号写回pubspec.yaml文件
  yamlMap['version'] = newVersion;
  String newYamlContent = Yaml().dump(yamlMap);
  await pubspecFile.writeAsString(newYamlContent);
  
  print('Updated version: $newVersion');
}

注意

  1. 上面的代码示例是基于假设version_assist提供了incrementPatch()等方法的。实际使用时,你需要参考version_assist的文档来确定其提供的API。
  2. 通常情况下,版本管理工具可能会有自己的命令行接口(CLI)或者更高级的功能,如自动化提交和标签创建等。在实际项目中,你可能需要更复杂的脚本来处理这些任务。
  3. 由于version_assist并不是Flutter官方插件,所以具体的API和实现可能会有所不同。如果你找不到这个插件,或者它不支持你需要的功能,你可以考虑使用其他工具或手动管理版本。

希望这个示例能帮助你理解如何在Flutter项目中使用版本管理辅助插件。如果你有任何其他问题,欢迎继续提问!

回到顶部