#version #configuration #releasing #projects #git #toml #repository

bin+lib sheepit

一个简单的Rust发布项目工具 🚀

8个不稳定版本 (3个破坏性更新)

0.3.1 2023年10月11日
0.3.0 2023年9月28日
0.2.1 2023年9月20日
0.1.2 2023年8月31日
0.0.1 2023年8月10日

#369 in Cargo插件

Download history 95/week @ 2024-03-13 2/week @ 2024-03-27 4/week @ 2024-04-03

每月 58 次下载

MIT 许可证

73KB
2K SLoC

sheepit 🐑

一个简单的Rust发布项目工具 🚀。

安装

cargo install sheepit

配置

您可以通过在您的仓库中放置一个 sheepit.toml.sheepit.toml 文件来配置Sheepit。此文件具有以下选项

[repository]
branch_pattern = 'branch/{version}' # The naming pattern for the branch if one is created.
commit_message = 'Sheeping {version}' # Commit message if we will create a commit
default_branch = 'main' # Default branch in the repo. 
enable_branch = true # When true sheepit will create a release branch before commiting and tagging.
enable_commit = true # When true sheepit will apply transforms and commit changes.
enable_tag = true # When true sheepit will create a tag from your latest commit.
enable_push = true # When true sheepit will push changes to origin (unless you dry-run)
tag_pattern = '{version}' # The naming pattern to use when creating a tag 

# Each of the below subprojects will point to another git repo. Sheepit will clone this project, then
# use it's sheepit config to apply the update. The version info will reflect the main project, meaning the
# previous version and next version will be derived from the main project's update.
[[subprojects]]
repo_url = '[email protected]:some-user/test-sub-sheep.git' # Git remote url for subproject

# Each of the below transforms will find and replace a single string in the specified file. If you need to 
# replace multiple strings, add multiple transforms.
[[transforms]]
path = 'relative/path.file' # The relative path to the file.
find = 'version: {version}' # An optional, explicit string to find. If omitted, replace will be used for find & replace.
replace = 'version: sheep_{version}' # The replace string.

版本令牌

版本令牌是 {version}。这可以在多个配置属性中使用,可能表示仓库的当前版本(根据最高的semver标签确定),或下一个版本。通常以下规则适用

  • {version} 用于命名模式或提交消息时,它将是 下一个 版本。
  • {version} 用于转换的 find 字符串时,它将是 上一个 版本。
  • {version} 用于转换的 replace 字符串时,它将是 下一个 版本。
    • 如果同时使用 replacefindreplace,则在查找时 {version} 将展开为上一个版本,然后在替换时文件将变为下一个版本。

默认值

您不需要指定本节顶部列出的所有配置属性。Sheepit会尝试选择合理的默认值。默认值可以在以下位置找到: config.rs

版本升级

Sheepit 支持语义版本升级。您可以升级主版本、次版本和补丁版本。在进行版本升级时,sheepit 将执行以下操作

  • 通过查看您的仓库标签列表来找到最新版本。
  • 根据升级类型确定下一个版本。
  • 可选地为您创建一个发布分支。
  • 可选地在对任何必要的转换执行后创建一个提交(即将推出!)。
  • 可选地创建一个标签。
  • 可选地推送到远程。

命令

# Assuming your version is 1.1.1
sheepit major # bumps the version to 2.0.0
sheepit minor # bumps the version to 1.2.0
sheepit patch # bumps the version to 1.1.2

依赖项

~13–23MB
~420K SLoC