跳转到主要内容

Scriv 更改日志管理工具

项目描述

Scriv 更改日志管理工具

PyPI Build status Coverage Documentation
Supported Python versions License Sponsor me on GitHub nedbat on Mastodon

概述

Scriv 是一个帮助开发者维护有用的更改日志的命令行工具。它管理一个更改日志片段的目录。它将它们聚合到 CHANGELOG 文件中的条目。

入门指南

Scriv 将更改日志片段写入名为“changelog.d”的目录中。首先创建这个目录。(顺便说一句,就像 scriv 操作的许多方面一样,您可以为此目录选择不同的名称。)

要创建新的更改日志片段,请使用 scriv create 命令。它将创建一个新文件,文件名使用当前日期和时间、您的 GitHub 或 Git 用户名以及您的分支名称。更改日志片段应与您分支上的所有其他更改一起提交。

当您准备发布项目时,使用 scriv collect 命令将所有片段聚合到您的更改日志文件中的一个新条目。

您还可以选择使用 scriv github-release 命令将更改日志条目发布为 GitHub 发布。它解析更改日志文件并创建或更新与之一致的 GitHub 发布。即使对于不是由 scriv 创建的更改日志文件,也可以使用。

文档

完整文档在 https://scriv.readthedocs.org

许可

本仓库中的代码除非另有说明,否则均受Apache软件许可证2.0版许可。

请参阅 LICENSE.txt 了解详细信息。

如何贡献

欢迎贡献。感谢迄今为止的所有贡献者

Ned Batchelder
Abhilash Raj
Agustín Piqueres
Flo Kuepper
James Gerity
Javier Sagredo
Kurt McKee
Matias Guijarro
Rodrigo Girão Serrão
Ronny Pfannschmidt

变更日志

未发布

请参阅 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

修复

  • 遵守 PEP 440,现在比较版本号时忽略开头的“v”字符。这使得scriv在各个地方(代码字面量、变更日志条目、git标签等)呈现版本号时更加灵活。修复了 问题89

1.2.1 — 2023-02-18

修复

  • 如果未安装 [toml] 额外组件,Scriv将尝试导入tomllib失败,Python <3.11。现在已修复,关闭 问题80

  • 指定为 file: 的设置现在将在变更日志目录和当前目录中搜索文件。唯一的例外是,如果第一个组件是 ...,则只考虑当前目录。修复了 问题82

  • 现在可以使用 literal: settings 来读取带类型注解的 Python 变量,修复了 问题 85

  • 对于格式错误的 literal: 配置值,错误信息更加精确,如 问题 84 中所请求的。

  • 设置验证的错误信息现在是 ScrivExceptions,并在某些情况下更早地报告配置问题。

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

新增

修复

  • 通过缩短帮助摘要来修复了截断的帮助摘要,关闭了 问题 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。

修复

  • 支持 Windows 的目录分隔符(\)在单元测试输出中。(#15)这允许单元测试在 Windows 环境中运行。感谢 Kurt McKee。

  • 显式指定 Black 应扫描的目录和文件。(#16)这防止 Black 扫描虚拟环境中的每个文件。感谢 Kurt McKee。

  • 在配置文件中使用“literal:”值在Python 3.6或3.7中不起作用,如问题18中所述。现在已修复。

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 (84.4 kB 查看哈希)

上传时间

构建分发

scriv-1.5.1-py2.py3-none-any.whl (35.3 kB 查看哈希)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面