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
# Release config for the ferrocrypt (lib) crate.
#
# cargo-release applies a rule to a pre-release version (0.3.0-beta.3,
# 1.0.0-rc.1, …) only if the rule sets `prerelease = true`. Every rule here sets
# it except the README rule. Every rule runs during the lib's release step; the
# lib is always part of a shared-version release.
#
# Paths are relative to this directory (ferrocrypt-lib/):
# - ../CHANGELOG.md workspace-root changelog; gets a dated section.
# - ../ferrocrypt-desktop/... excluded from the workspace, so shared-version
# does not bump it; its version is synced here.
# - ../README.md the crates.io page of both crates; its version
# links and install commands are synced here.
# The hook updates the lock files outside the workspace and runs the tests,
# once for the whole workspace, before the release commit; a failure stops the
# release. It is set here rather than in ../release.toml, which would run it
# once for every crate. cargo-release runs it in this directory.
= ["bash", "../scripts/release_hook.sh"]
[[]]
= "../CHANGELOG.md"
= "(?m)^## \\[Unreleased\\]\\n\\n"
= """## [Unreleased]
## [{{version}}] - {{date}}
"""
= true
[[]]
= "../ferrocrypt-desktop/Cargo.toml"
= '^version = ".*"'
= 'version = "{{version}}"'
= 1
= true
# No `prerelease = true`: a pre-release leaves the versions in the README as
# they are, so its install commands keep naming the last release without a
# pre-release suffix. Set it only for a pre-release whose README describes a
# changed API or CLI, such as 0.4.0-rc.1.
#
# A README that gains or loses a pinned version stops the release here until
# `exactly` is updated with it.
[[]]
= "../README.md"
= '(crates\.io/crates/ferrocrypt(?:-cli)?/|docs\.rs/ferrocrypt/|cargo add ferrocrypt@|cargo install ferrocrypt-cli@)[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?'
= '${1}{{version}}'
= 5