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 开发工具
400KB
8K SLoC
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