Crates.io | sheepit |
lib.rs | sheepit |
version | 0.3.1 |
source | src |
created_at | 2023-08-10 20:27:30.201381 |
updated_at | 2023-10-11 19:00:32.479991 |
description | A simple rust tool for releasing projects 🚀 |
homepage | |
repository | https://github.com/ncipollo/sheepit |
max_upload_size | |
id | 941328 |
size | 99,954 |
A simple rust tool for releasing projects 🚀.
cargo install sheepit
You can configure Sheepit by placing a sheepit.toml
or .sheepit.toml
file in your repository. This file has the
following options:
[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 = 'git@github.com: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.
The version token is {version}
. This can be used in a number of configuration properties and may represent the repo's
current version (as determined by the highest semver tag), or the next version. Generally the following rules apply:
{version}
is used in naming patterns or commit message it will be the next version.{version}
is used within a transform's find
string it will be the previous version.{version}
is used within a transform's replace
string it will be the next version.
replace
is used for both find
and replace
, {version}
will expand to the previous version while finding,
then the next versions file replacing.You don't need to specify all of the configuration properties listed at the top of the section. Sheepit tries to pick reasonable defaults. Defaults can be found here: config.rs.
Sheepit supports semantic version bumps. You can bump the major, minor and patch version. During a version bump, sheepit will do the following:
# 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