stevewest/changelog

此包已被弃用,不再维护。作者建议使用 emlynwest/changelog 包。

用于解析变更日志的包

1.3.0 2018-12-12 15:49 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:43:17 UTC


README

Travis Build Code Coverage Code Quality Packagist

快速轻松地从各种来源修改变更日志。

当前该包只支持 KeepAChangeLog 格式的变更日志。

可以从/到以下位置读取和写入日志

  • 文件
  • Url(不支持输出)
  • 原生字符串
  • Flysystem
  • 通过 GitHub API 的 GitHub 仓库(目前不支持输出,因为我还没有找到一种合理的方式来实现它)

可以通过使用各种渲染类将日志格式化为 KeepAChangeLog 格式、xml 和 json。

快速示例

创建日志

<?php

// Create a new change log and set a title and description.
$log = new \ChangeLog\Log();
$log->setTitle('My Project Change Log');
$log->setDescription('This is my project\'s change log. Any crazy stuff that happens will appear here.');

// Create and add a new release.
$release1 = new \ChangeLog\Release('1.0.0');
$release1->addChange('Added', 'Awesome feature needed for release');
$log->addRelease($release1);

$release2 = new \ChangeLog\Release('0.3.0');
$release2->addChange('Added', 'Finally added a change log');
$release2->setChanges('Fixed', [
	'Bug 1',
	'Bug 2',
	'Bug 3',
]);
$log->addRelease($release2);

注意 版本按 语义版本化 自动排序,最新版本位于顶部。预期所有版本名称都遵循此格式,唯一的例外是 unreleased,它始终位于版本列表的顶部。

解析日志

<?php

$input = new \ChangeLog\IO\File([
	'file' => 'path/to/changelog.md'
]);

$parser = new \ChangeLog\Parser\KeepAChangeLog();

$cl = new \ChangeLog\ChangeLog;
$cl->setParser($parser);
$cl->setInput($input);

$log = $cl->parse();

// Instance of ChangeLog\Log
var_dump($log);

写入日志

<?php

$output = new \ChangeLog\IO\File([
	'file' => 'path/to/changelog.md'
]);

$renderer = new \ChangeLog\Renderer\KeepAChangeLog();

$cl = new \ChangeLog\ChangeLog;
$cl->setRenderer($renderer);
$cl->setOutput($output);

$log = new Log;
// Build up the log file information here

$cl->write($log);

合并日志

可以将日志合并在一起以创建单个变更日志。这包括版本及其更改。

$log1 = new Log;
// Add some releases or something

$log2 = new Log;
// Add some releases to this too

$log1->mergeLog($log2);
// $log1 now contains all releases and changes from $log2

根据您的用例,可能首先创建一个空日志,然后将其他日志合并到该日志中。

命令行工具

可以使用 ./vendor/bin/changelog 命令或通过 发布页面 上的 changelog.phar 来执行常见操作。

命令行工具期望在当前工作目录中存在一个名为 changelog.config.php 的配置文件,或者可以通过全局 --config 选项进行指定。示例配置文件可以在 changelog.config.example.php 中找到

所有命令都使用相同的四个选项来读取、解析、渲染,最后输出变更日志。这些默认值都对应于其各自的配置数组中的 "default" 条目。

      --input[=INPUT]        Config to use for input processor [default: "default"]
      --parser[=PARSER]      Config to use for parser processor [default: "default"]
      --renderer[=RENDERER]  Config to use for renderer processor [default: "default"]
      --output[=OUTPUT]      Config to use for output processor [default: "default"]

例如: changelog.phar --renderer=json 会使用配置文件中 renderer 条目的 json 条目来构建一个 ChangeLog\Renderer\Json 对象,用于创建最终内容。

当前命令有:

  • 添加:向版本中添加更改
  • 转换:在格式之间转换版本。简单地运行读取、解析、渲染、写入序列。
  • 发布:将 "unreleased" 版本转换为实际版本。可以接受例如 majorminorpatch 等名称以自动创建版本号。
  • 合并:合并多个变更日志到一个。

查看 changelog.phar help 获取更多信息。

开发

当前的开发计划可以在仓库的 问题跟踪器 中找到。如果您希望请求额外的功能,请打开一个问题或拉取请求,或者在 Twitter 或您能找到我的任何地方发给我一个提醒。

请随时在 问题跟踪器 上报告任何问题。

作者

Emlyn West