Scriv 更改日志管理工具
项目描述
Scriv 更改日志管理工具
概述
Scriv 是一个帮助开发者维护有用的更改日志的命令行工具。它管理一个更改日志片段的目录。它将它们聚合到 CHANGELOG 文件中的条目。
入门指南
Scriv 将更改日志片段写入名为“changelog.d”的目录中。首先创建这个目录。(顺便说一句,就像 scriv 操作的许多方面一样,您可以为此目录选择不同的名称。)
要创建新的更改日志片段,请使用 scriv create 命令。它将创建一个新文件,文件名使用当前日期和时间、您的 GitHub 或 Git 用户名以及您的分支名称。更改日志片段应与您分支上的所有其他更改一起提交。
当您准备发布项目时,使用 scriv collect 命令将所有片段聚合到您的更改日志文件中的一个新条目。
您还可以选择使用 scriv github-release 命令将更改日志条目发布为 GitHub 发布。它解析更改日志文件并创建或更新与之一致的 GitHub 发布。即使对于不是由 scriv 创建的更改日志文件,也可以使用。
文档
许可
本仓库中的代码除非另有说明,否则均受Apache软件许可证2.0版许可。
请参阅 LICENSE.txt 了解详细信息。
如何贡献
欢迎贡献。感谢迄今为止的所有贡献者
变更日志
未发布
请参阅 changelog.d 目录 中的片段文件。
1.5.1 — 2023-12-14
修复
修复了在ReadTheDocs上构建文档的问题。修复了 问题118。
1.5.0 — 2023-10-18
新增
RST到Markdown的转换现在可以更严格。使用 --fail-if-warn 选项在 scriv github-releases 命令中,如果RST转换生成警告(例如由于格式错误的链接引用),则命令将失败。
现在,scriv github-release 命令具有 --check-links 选项来检查URL。每个URL都会被检索,如果发生错误,将显示未成功的URL的警告。
修复
命令不再显示由scriv代码引发的异常的完整跟踪。
1.4.0 — 2023-10-12
新增
可以从 .cabal 文件中提取字面量。感谢 Javier Sagredo。
使用 git config scriv.user_nick 为片段文件的用户昵称部分。感谢 Ronny Pfannschmidt,修复了 问题103。
现在可以将设置前缀为 command: 来执行设置其余部分作为shell命令。命令的输出将用作设置的值。
修复
如果没有变更日志片段,scriv collect 现在将退出状态码为2,修复了 问题110。
现在,scriv collect 会生成一个可理解的错误消息,如果变更日志具有非版本标题,感谢 James Gerity,修复了 问题100。
1.3.1 — 2023-04-16
修复
1.3.0版中引入的Version类破坏了 scriv github-release 命令。现在已修复。
1.3.0 — 2023-04-16
新增
现在可以使用 literal: 设置读取 .cfg 文件,感谢 Matias Guijarro。
修复
1.2.1 — 2023-02-18
修复
1.2.0 — 2023-01-18
新增
scriv github-release 现在有一个 --repo= 选项,可以在有多个远程时指定要使用的 GitHub 仓库。
更改
改进了当无法在 git 远程中识别 GitHub 仓库时,scriv github-release 的错误信息。
1.1.0 — 2023-01-16
新增
scriv github-release 命令新增了一个设置 ghrel_template。这是一个用于构建发布文本的模板,可以在从变更日志中提取的 Markdown 之前或之后添加文本。
scriv github-release 命令现在有一个 --dry-run 选项,可以显示会发生什么,而无需发布到 GitHub。
更改
对于指定为 file: 设置的文件名,如果它们包含路径组件,将相对于当前目录进行解释。如果文件名没有斜杠或反斜杠,则保持旧的行为:文件将在片段目录中查找,或作为内置模板。
Scriv 抛出的所有异常现在都是 ScrivException。
修复
解析变更日志现在会考虑 insert-marker 设置。只有插入标记行之后的内容会被解析。
记录了更多内部活动,以帮助调试操作。
1.0.0 — 2022-12-03
新增
现在可以从 YAML 文件中读取 literal 配置设置。关闭了 问题 69。感谢 Florian Küpper。
修复
通过缩短帮助摘要来修复了截断的帮助摘要,关闭了 问题 63。
0.17.0 — 2022-09-18
新增
collect 命令现在有一个 --title=TEXT 选项,可以提供用于新变更日志条目标题的确切文本。完成了 问题 48。
更改
github_release 命令现在只考虑变更日志中最顶层的条目。您可以使用 --all 选项继续对所有条目进行创建或更新 GitHub 发布的行为。
此更改使项目更容易开始使用带有现有已填充变更日志文件的 scriv。
关闭了 问题 57。
修复
如果没有要收集的片段,scriv collect 会在新变更日志中创建一个新的空部分。这是错误的,现在已修复。现在在这种情况下,变更日志保持不变。关闭了 问题 55。
github-release 命令现在会对没有版本号的变更日志条目发出警告。这些不能制作成发布,所以会被跳过。(问题 56)。
如果版本号会重复现有变更日志条目中的版本号,则 scriv collect 现在将以错误结束。修复了 问题 26。
0.16.0 — 2022-07-24
新增
github_release 命令现在将使用存储在 GITHUB_TOKEN 环境变量中的 GitHub 个人访问令牌,或者从 .netrc 文件中。
修复
github_release 命令在应该使用 git tag 的地方使用了 git tags 作为命令。
创建 GitHub 发布时,变更日志中的锚点被包含在了前面的部分。这个问题已经修复,关闭了 问题 53。
0.15.2 — 2022-06-18
修复
引用命令失败,因此我们无法确定 GitHub 远程。
0.15.1 — 2022-06-18
新增
添加了 scriv github-release 的文档。
修复
在 Windows 上正确调用 pandoc 以执行 github_release 命令。
0.15.0 — 2022-04-24
已移除
停止支持 Python 3.6。
新增
github-release 命令解析变更日志并从条目创建 GitHub 发布。更改的条目将更新相应的发布。
添加了 --version 选项。
更改
现在解析只关注顶级章节标题,而不是在所有标题上拆分,而是包括嵌套标题。
0.14.0 — 2022-03-23
新增
在 scriv collect 的输出中为每个版本部分添加锚点,以便每个新版本的章节 URL 都是可预测和稳定的(修复了 问题 46)。感谢 Abhilash Raj 和 Rodrigo Girão Serrão。
修复
Markdown 片段没有正确合并。现在它们已经合并了。感谢 Rodrigo Girão Serrão。
0.13.0 — 2022-01-23
新增
使用 literal 配置指令在 TOML 文件(如 pyproject.toml)中查找版本信息。感谢 Kurt McKee。
0.12.0 — 2021-07-28
新增
如果片段目录中的片段文件匹配新的配置值 skip_fragments(一个 glob 模式),则会跳过该片段文件。默认值是 “README.*”。这允许您在该目录中放置一个 README.md 文件来解释其目的,如 问题 40 所请求的。
更改
将读取 TOML 文件的库从“toml”切换到“tomli”。
修复
设置 format=md 并未正确地级联到其他默认设置,导致您拥有需要显式覆盖的 RST 设置(问题 39)。现在已修复。
0.11.0 — 2021-06-22
新增
有一个新的文档不足的 API 可用。请参阅 scriv.scriv 模块中的 Scriv、Changelog 和 Fragment 类。
更改
Python 3.6 现在是最低支持的 Python 版本。
修复
变更日志现在始终以 UTF-8 编写,而不管系统的默认编码如何。感谢 Hei (yhlam)。
0.10.0 — 2020-12-27
新增
现在可以从 pyproject.toml 文件中读取设置。通过使用“[toml]”额外信息来确保 TOML 支持可用。关闭 问题 9。
添加了文档的哲学部分。
更改
默认条目标题不再将版本号放在方括号中:这是对 keepachangelog 格式的误解。
尊重变更日志文件的现有换行风格。(#14)这意味着在 Windows 平台上具有 Linux 换行符的变更日志文件将使用 Linux 换行符更新,而不是用 Windows 换行符重写。感谢 Kurt McKee。
修复
0.9.2 — 2020-08-29
打包修复。
0.9.0 — 2020-08-29
新增
支持Markdown格式,包括片段和变更日志条目。
可以混合使用片段(一些.rst和一些.md)。它们将被收集并按照设置中配置的格式输出。
文档。
现在“python -m scriv”可以正常工作。
更改
版本号现在显示在帮助信息中。
0.8.1 — 2020-08-09
新增
在“scriv create”过程中编辑新的片段时,如果编辑的片段没有内容(只有注释或空白行),则创建操作将被终止,并且文件将被删除。(关闭问题2。)
更改
如果片段目录不存在,将显示简单的直接消息,而不是误导性的FileNotFound错误(关闭问题1)。
修复
当不使用分类时,片段文件中的注释会被复制到变更日志文件中(问题3)。现在已修复。
RST语法现在理解得更好,因此超链接引用和指令将被保留。之前,它们被错误地解释为注释并丢弃。
0.8.0 — 2020-08-04
新增
添加了collect命令。
现在从setup.cfg或tox.ini中读取配置。
一个新的配置设置,rst_section_char,用于确定.rst文件中章节标题下划线所使用的字符。
new_entry_template配置设置是新条目创建时使用的模板文件名称。该文件位于fragment_directory目录中。文件名默认为new_entry.FMT.j2。如果文件不存在,将使用内部默认值。
现在collect命令还包括整个条目的标题。下划线由“rst_header_char”设置确定。标题文本由“header”设置确定,默认为当前日期。
配置中的类别列表可以为空,表示条目不分类。
创建命令现在接受–edit(在文本编辑器中打开新条目),以及–add(对新的条目执行“git add”)。
collect命令现在接受–edit(在收集新条目后在编辑器中打开变更日志文件)和–add(对变更日志文件执行git-add并对条目执行git-rm)。
主git分支的名称现在可以在配置文件中配置为“main_branches”。默认值为“master”、“main”和“develop”。
现在可以通过在前面加上“file:”来从文件中读取配置值。文件名将解释为相对于changelog.d目录的相对路径,或者将找到scriv安装的几个文件。
配置值可以使用“${config:format}”来插入当前配置的格式(rst或md)。
新模板的默认值现在为“file: new_entry.${config:format}.j2”。
可以使用“literal:”前缀从Python代码中的字符串字面量中读取配置值。
现在“version”是一个配置设置。当与“literal:”前缀一起使用时,这将非常有用。
默认情况下,收集的变更日志条目的标题包括版本号(如果已定义)。
collect命令现在接受一个--version选项来设置变更日志条目标题中使用的版本名称。
更改
RST现在使用减号而不是等号。
创建命令现在在条目文件名中包括时间以及日期。
现在将用于收集的 -delete 选项称为 -keep,默认为 False。默认情况下,收集到的条目文件会被删除。
创建的文件名现在包括从当前时间开始的秒数。
“scriv create” 将拒绝覆盖现有的条目文件。
使术语更统一:changelog.d 中的文件是“片段”。当收集在一起时,它们组成一个 changelog 的“条目”。
收集到的 changelog 条目的标题文本现在由“entry_title_template”配置设置创建。它是一个 Jinja2 模板。
将 rst_header_char 和 rst_section_char 设置合并为一个:rst_header_chars,它必须是两个字符。
RST 片段的解析更灵活:部分可以使用任何有效的 RST 标题字符作为下划线。以前,它必须匹配配置的 RST 标题字符。
修复
如果使用类别,则没有类别标题的片段会被丢弃。现在已修复。未分类的片段现在在分类片段之前排序。
0.1.0 — 2019-12-30
目前还没有真正做任何事情。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
scriv-1.5.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 30ae9ff8d144f8e0cf394c4e1d379542f1b3823767642955b54ec40dc00b32b6 |
|
MD5 | 97e7dcac11763ed2d9d38232d76b78c4 |
|
BLAKE2b-256 | 56356e05af688bc3f983a207a6f89acf139aa16693473360d0cbc2a9bda19efc |
scriv-1.5.1-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3adc657733b4124fcb54527a5f3daab0d3c300de82d0fd2b9b297b243151b78 |
|
MD5 | abff2919bad978a6d108337d942b2e07 |
|
BLAKE2b-256 | 3ee6cf5c273f57ded9dd0b22430eb62c2af3c883578bab0d824700355f4c16b2 |