-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease.toml
More file actions
61 lines (53 loc) · 3.12 KB
/
Copy pathrelease.toml
File metadata and controls
61 lines (53 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# cargo-release configuration for stackable-odbc-core.
#
# cargo-release is dry-run by default; --execute is required to mutate state.
# Publication to crates.io is deliberately disabled: this configuration only
# bumps the version, rewrites CHANGELOG.md, commits, tags and pushes.
# Publishing is a separate, manual step for now.
publish = false
push = true
# Signing is requested here rather than left to the releaser's `tag.gpgsign` /
# `commit.gpgsign`, so a release tag is signed regardless of whose machine it
# is cut on — and fails loudly instead of silently producing an unsigned tag
# when no signing key is configured.
sign-tag = true
sign-commit = true
consolidate-commits = false
# Day-to-day work happens on feature branches. Without this, a stray
# `--execute` would tag whichever branch happened to be checked out.
allow-branch = ["main"]
# No git hooks are installed in .git/hooks, so pre-commit does not run on the
# commit cargo-release makes. Run it explicitly instead. This executes against
# the pre-bump tree, so it validates code rather than version strings.
pre-release-hook = ["pre-commit", "run", "--all-files"]
# Both follow the conventional-commit style used throughout this repo's
# history, rather than cargo-release's defaults.
pre-release-commit-message = "chore(release): version {{version}}"
tag-message = "chore(release): version {{version}}"
[[pre-release-replacements]]
file = "CHANGELOG.md"
search = "## \\[Unreleased\\]"
replace = "## [Unreleased]\n\n## [{{version}}] — {{date}}"
exactly = 1
# The next two rules maintain the link-reference footer. Exactly one of them
# applies to any given release, and the order matters: replacements run
# sequentially, so the compare-form rule must come first. Reversed, the
# `commits/HEAD` rule would write a `compare/...` link that the compare-form
# rule then matched in the same pass, emitting the tag link twice.
# Subsequent-release case: rewrite the `[Unreleased]` compare link to point at
# the new version, and prepend a `[{version}]` tag link. With `min = 0`, this
# rule is a silent no-op on the first release, when the footer still holds the
# `commits/HEAD` placeholder; after that it matches on every release.
[[pre-release-replacements]]
file = "CHANGELOG.md"
search = "\\[Unreleased\\]: https://github.com/stackabletech/stackable-odbc-core/compare/v[0-9]+\\.[0-9]+\\.[0-9]+\\.\\.\\.HEAD"
replace = "[Unreleased]: https://github.com/stackabletech/stackable-odbc-core/compare/v{{version}}...HEAD\n[{{version}}]: https://github.com/stackabletech/stackable-odbc-core/releases/tag/v{{version}}"
min = 0
# First-release case: the initial placeholder points at `commits/HEAD`.
# Fires exactly once — on the first release — after which the line is in the
# `compare/...` form the rule above owns, and this one never matches again.
[[pre-release-replacements]]
file = "CHANGELOG.md"
search = "\\[Unreleased\\]: https://github.com/stackabletech/stackable-odbc-core/commits/HEAD"
replace = "[Unreleased]: https://github.com/stackabletech/stackable-odbc-core/compare/v{{version}}...HEAD\n[{{version}}]: https://github.com/stackabletech/stackable-odbc-core/releases/tag/v{{version}}"
min = 0