A specialized Cargo workspace tool for managing intra-repository Rust crate dependencies in the Embassy ecosystem.
- Dependency Analysis: List crate dependencies and dependents within the repository
- Build Management: Build specific crates or all crates in the workspace.
- Semantic Version Checking: Automatically detect required version bumps using semver analysis
- Release Preparation: Automate the process of preparing crate releases with proper version bumping and changelog updates
Formats the crate.
Display all crates and their direct dependencies in topological order.
Show all dependencies for a specific crate.
Show all crates that depend on a specific crate.
Build a specific crate or all crates if none specified.
Run semantic version analysis to determine the minimum required version bump for a crate.
Prepare a crate and all its dependents for release by:
- Running semver checks to determine version bumps
- Updating version numbers in Cargo.toml files
- Updating changelogs
- Generating git commands for tagging and publishing
cargo install --path .The tool must be run from within a git repository containing Embassy crates. It automatically discovers the repository root and scans for crates with embassy-* dependencies.
# List all crates
cargo embassy-devtool list
# Show dependencies for embassy-time
cargo embassy-devtool dependencies embassy-time
# Prepare embassy-boot for release
cargo embassy-devtool prepare-release embassy-bootCrates can be configured through Cargo.toml metadata:
[package]
publish = false # If the crate should not be checked and published.
[package.metadata.embassy]
skip = true # Skip this crate during discovery
build = [
{ features = ["std"], target = "x86_64-unknown-linux-gnu" },
{ features = ["defmt"] }
]Embassy is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.