cargo-release v0.22.0 Release Notes
Release Date: 2022-10-21 // over 1 year ago-
Highlights
๐ The goal of this release is improved workspace support, including
- ๐ฆ Workspace inheritance support
- ๐ Greater control over versioning by supporting calling
cargo release version
as needed and thencargo release --unpublished
- ๐ง Setting configured crate owners when publishing new crates
- ๐ Identifying failures early like missing metadata, hitting rate limits, etc
- ๐ Inspect changes with
cargo release changes
, including conventional commit support - ๐ Improved defaults
๐ This does mean that
cargo release
(no other args) changed from recovering ๐ from a failed release to releasing the currently specified versions of crates. ๐ Recovery is now done more manually withcargo release publish
, etc.๐ฅ Breaking Changes
- โ Removed
dev-version
support - 0๏ธโฃ
consolidate-commits
is now the default for workspaces- It is also now all-or-nothing
consolidate-pushes
is now exclusively used- โฌ๏ธ
dependent-versions = "upgrade"
is now the default- Removed
ignore
,warn
, anderror
- Removed
- ๐
Cargo.toml
'spackage.publish = false
disables release - โ Removed
--dump-config
in favor ofcargo release config
- โ Remove
--token
in favor in favor of more secure ways of authenticating - ๐
cargo release
is no longer used for recovery, instead usecargo release publish
,cargo release tag
, etc - ๐ Error if nothing to release
- ๐ Changed standard exit code to 101
Compatibility
MSRV is now 1.64.0
๐ Fixes
- โ Turn some verification errors into warnings on steps
- โ Run replacements when no version is bumped
- Be smarter about finding previous tags
- Bail out early when we'll hit crates.io rate limits
- Bail out early when we'll hit
cargo publish
missing field errors - ๐ฆ Implicitly layer package over workspace for workspace config when not in a workspace
- โก๏ธ Only update versions for path dependencies
- Cleaned up output
- โ Ignore tests when tracking changes
๐ Features
- ๐ฆ
package.version.workspace = true
support- Forces
consolidate-commits = true
- Forces
shared-version = "workspace"
- Forces
- ๐
dependency.<name>.workspace = true
support - ๐ฆ
package.publish.workspace = true
support owners = []
to set crate owners for new workspace members- Use
cargo release owner
to update owners for existing crates
- Use
- ๐ In addition to
shared-version = true
, we now support named groups, likeshared-version = "foo"
- ๐
--unpublished
flag to automatically release unpublished crates - ๐ฆ Expose
changes
,hook
, andcommit
steps