45 个版本

0.16.0 2023年12月14日
0.15.0 2022年11月30日
0.14.0 2022年11月30日
0.11.0 2022年4月4日
0.3.4 2020年11月17日

#174 in 开发工具

MIT 许可证

400KB
8K SLoC

Build Status

cranko

克朗科是一个实现即时版本化工作流程的发布自动化工具。它是跨平台的,可以作为单个可执行文件安装,支持多种语言和打包系统,并从底层设计用于与 单仓库 一起工作。

要了解更多信息,请查看书籍

为了使用克朗科,它必须具有对您所使用的语言/项目/包类型的显式支持。它目前支持

  • NPM / Node.js
  • Python (PyPA 标准)
  • Rust
  • Visual Studio C# 项目

为了添加对新语言的支持,必须实现一个“加载器”,它可以检测项目文件并提取元数据,以及一个或多个“重写器”,可以将这些文件更新为克朗科确定的版本。通常可以通过几百行 Rust 代码实现简单的支持。

安装

克朗科作为一个独立的可执行文件提供,便于在持续集成系统中安装。在类 Unix 系统(包括 macOS)上,以下命令将在当前目录下创建一个名为 cranko 的可执行文件

curl --proto '=https' --tlsv1.2 -sSf https://pkgw.github.io/cranko/fetch-latest.sh | sh

在 Windows 系统上,以下命令将在 PowerShell 窗口中执行相同的操作

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://pkgw.github.io/cranko/fetch-latest.ps1'))

有关更多详细信息和其他方法,请参阅书籍的安装部分

入门

由于克朗科是一个工作流程工具,为了真正开始使用它,您需要了解一些它的基本工作原理,然后考虑如何将其集成到您的开发流程中。要了解更多信息,请查看书籍中的入门即时版本化部分。

未来方向

克朗科仍然是一个新项目,缺少许多有用的功能。以下是一些可能的工作方向

  • 支持更多项目类型(语言)、CI 框架等。
  • 一种手动定义项目和重写的方式,以便Cranko可以用于当前没有内置集成的项目。
  • 想清楚我们将如何为这个“巨兽”制作测试套件。
  • 将主要实现分割成多个crate。
  • 可插拔的框架用于自动生成发布说明(例如,利用常规提交格式,自动链接到GitHub拉取请求)。
  • 可插拔的框架用于确定何时发布以及如何增加版本号(例如,常规提交加上语义发布类型标准)。
  • 可插拔的框架用于决定哪些提交影响哪些项目。
  • 发布说明、标签名等额外的模板。
  • 更健壮的CLI界面,用于查询项目/发布图,以便外部工具可以以Cranko为底层基础构建。

cargo功能

cranko Cargo软件包提供了以下可选的功能

  • vendored-openssl — 使用内置的OpenSSL库构建带有vendored-openssl功能的git2依赖项,而不是尝试链接到系统版本。这在交叉编译时很有用,因为目标环境通常缺乏OpenSSL。

贡献

欢迎!请向pkgw/cranko存储库提交拉取请求或问题。

法律事宜

Cranko版权由Peter Williams和Cranko项目贡献者持有。源代码根据MIT许可证授权。

依赖关系

~30–46MB
~781K SLoC