Flutter更新日志展示插件changelog_bubbler的使用

Flutter 更新日志展示插件 changelog_bubbler 的使用


概览

changelog_bubbler 是一个用于自动化创建 Flutter 和 Dart 应用程序变更日志差异的包。此包旨在为每次发布生成主变更日志。它会生成一个文档,包含根包的更改以及每个子包的更改。


它如何工作

该包生成一个名为 CHANGELOG_BUBBLED.md 的文件,其中包含了应用程序及其依赖项的变更日志差异。构建过程如下:

  1. 读取传入的参数(例如,通过运行 dart pub run changelog_bubbler --help 查看参数)
  2. 将源仓库复制到临时文件夹并检出指定的引用
  3. 收集当前状态和以前状态的仓库信息
    • 运行 pub get
    • 读取 pubspec.lock
    • 基于 pubspec.lockpub_cache 构建依赖列表
    • pub_cache 路径存储在依赖类中以供后续引用
  4. 构建已更改依赖项的列表
    • 按主机 URL 分组(如 pub.dev, git 或托管引用)
    • 只收集已更改的依赖项
    • 打印:
      • 包名称 1.0.0 -> 2.0.0
      • 包的变更日志差异
  5. 根据以上收集的信息创建一个文件

使用方法

以下是使用 changelog_bubbler 的步骤:

  1. pubspec.yaml 中添加 changelog_bubblerdev_dependencies
name: example_cli
dev_dependencies:
  changelog_bubbler: ^1.0.0
  1. 运行构建命令
> dart pub run changelog_bubbler
  1. 生成的 CHANGELOG_BUBBLED.md 文件内容如下

Example app

pub.dev

my_app_core 1.0.0 - 1.1.0

1.1.0

  • chore: something changed

pub.dev - Transitive

analyzer 1.0.0 - 2.0.0

2.0.0

  • chore: something changed

1.3.0

  • chore: something changed

1.1.0

  • chore: something changed

查看完整的输出示例:[示例应用输出](https://github.com/m-skolnick/changelog_bubbler/blob/main/example/my_output_file.md)

**注意** 如果你在 GitHub Actions 中使用此工具,需要将 `checkout` 命令的 `fetch-depth` 设置为 `0`,以便获取标签。

```yaml
steps:
  - uses: actions/checkout[@v3](/user/v3)
    with:
      # Fetch depth 0 so that tags are fetched
      fetch-depth: 0

高级功能

指定之前的引用

默认情况下,变更日志是基于当前 git 状态与上一个标签之间的差异生成的。要指定一个不同的引用进行比较,可以传递一个名为 previous-ref 的标志。

dart pub run changelog_bubbler --previous-ref 8762db
dart pub run changelog_bubbler --previous-ref v2.0.0
输出文件路径

可以通过传递一个名为 output 的标志来更改生成文件的路径。

dart pub run changelog_bubbler --output MY_COOL_CHANGELOG_NAME.md
模板

所有输出都基于位于 模板文件夹 中的模板构建。可以通过传递路径选项覆盖任何模板。

dart pub run changelog_bubbler --changelog-template-path '/Users/micaiah.skolnick/Repos/alkami/changelog_bubbler/asset_test/changelog_template.html'

更多关于Flutter更新日志展示插件changelog_bubbler的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter更新日志展示插件changelog_bubbler的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


changelog_bubbler 是一个用于在 Flutter 应用中展示更新日志的插件。它可以帮助开发者将应用的历史更新记录以美观的方式展示给用户。以下是使用 changelog_bubbler 的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  changelog_bubbler: ^1.0.0  # 请根据最新版本号进行替换

然后,运行 flutter pub get 来获取依赖。

2. 创建更新日志数据

你可以将更新日志数据存储在一个 JSON 文件中,或者在代码中直接定义。以下是直接在代码中定义的一个简单示例:

final List<Map<String, dynamic>> changelogData = [
  {
    'version': '1.1.0',
    'date': '2023-10-01',
    'changes': [
      'Added new feature X',
      'Improved performance of Y',
      'Fixed bug Z',
    ],
  },
  {
    'version': '1.0.0',
    'date': '2023-09-15',
    'changes': [
      'Initial release',
    ],
  },
];

3. 使用 ChangelogBubbler 展示更新日志

你可以在应用中的任何页面使用 ChangelogBubbler 来展示更新日志。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:changelog_bubbler/changelog_bubbler.dart';

class ChangelogPage extends StatelessWidget {
  final List<Map<String, dynamic>> changelogData = [
    {
      'version': '1.1.0',
      'date': '2023-10-01',
      'changes': [
        'Added new feature X',
        'Improved performance of Y',
        'Fixed bug Z',
      ],
    },
    {
      'version': '1.0.0',
      'date': '2023-09-15',
      'changes': [
        'Initial release',
      ],
    },
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Changelog'),
      ),
      body: ChangelogBubbler(
        changelogData: changelogData,
        // 可选的自定义样式
        titleStyle: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
        versionStyle: TextStyle(fontSize: 18, color: Colors.blue),
        dateStyle: TextStyle(fontSize: 14, color: Colors.grey),
        changeStyle: TextStyle(fontSize: 16),
      ),
    );
  }
}

4. 导航到更新日志页面

你可以在应用的任何地方通过导航来展示更新日志页面:

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => ChangelogPage()),
);
回到顶部