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
# cargo-release configuration for edgefirst-schemas
#
# Release Process (using cargo-release steps):
# 1. cargo release version <patch|minor|major|<version>> --execute
# - Updates version in Cargo.toml only
# 2. cargo release replace --execute
# - Runs pre-release-replacements to update __init__.py, package.xml, and CHANGELOG.md
# 3. cargo release commit --execute
# - Commits all version changes
# 4. cargo release tag --execute
# - Creates git tag (format: vX.Y.Z with 'v' prefix)
# 5. cargo release push --execute
# - Pushes commits and tags to remote
# 6. GitHub workflows handle building and publishing to crates.io, PyPI, and Debian repos
#
# Or use single command: cargo release <patch|minor|major|<version>> --execute
# (runs all steps: version, replace, commit, tag, push)
# Only allow releases from main branch
= ["main"]
# Tag format (v-prefix to match existing convention)
= "v{{version}}"
# Commit message for version bump
= "Release {{version}}"
# Don't automatically publish to crates.io (handled by workflow)
= false
# Don't automatically push commits and tags (manual control via cargo release push)
= false
# Commit message for version bump
= "Release {{version}}"
# Pre-release replacements - sync versions across all three languages
# These run during the 'replace' step (after 'version' step, before 'commit' step)
= [
# Update CHANGELOG.md
{ = "CHANGELOG.md", = "## \\[Unreleased\\]", = "## [Unreleased]\n\n## [{{version}}] - {{date}}", = 1 },
# Update Python __init__.py version
{ = "edgefirst/schemas/__init__.py", = '__version__ = ".*"', = '__version__ = "{{version}}"', = 1 },
# Update ROS2 package.xml version
{ = "edgefirst_msgs/package.xml", = '<version>.*</version>', = '<version>{{version}}</version>', = 1 },
]