| Crates.io | workspacer-bump |
| lib.rs | workspacer-bump |
| version | 0.1.3 |
| created_at | 2025-04-01 06:37:32.435244+00 |
| updated_at | 2025-07-13 00:52:21.519062+00 |
| description | A Rust crate to manage and increment semantic versions within a workspace with support for async version bumping and recursive downstream updates. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1614465 |
| size | 203,546 |
workspacer-bump is a Rust crate designed for managing and incrementing semantic versions within a workspace. It provides automated version management by applying different release types such as Major, Minor, Patch, or Alpha with granularity on semantic versioning fields.
workspacer-bump is suitable for projects that rely on a well-organized versioning mechanism, particularly those involving multiple interconnected crates that depend on each other, such as:
use workspacer_3p::semver::Version;
use workspacer_bump::ReleaseType;
let mut v = Version::parse("1.2.3").unwrap();
ReleaseType::Major.apply_to(&mut v);
assert_eq!(v.to_string(), "2.0.0");
The crate defines various traits such as Bump, BumpAll, BumpCrateAndDownstreams, and WorkspaceDownstreamExt to facilitate version management across a workspace. Users can implement these traits in their crate structures to provide customized versioning logic.
BumpAll: Applies a version bump across all crates within a workspace.BumpCrateAndDownstreams: Targets a specific crate and its downstream dependencies for versioning adjustment.#[async_trait]
impl BumpAll for MyWorkspace {
async fn bump_all(&mut self, release: ReleaseType) -> Result<(), Self::Error> {
// Implementation
}
}
The crate includes a macro gen_bump_all_for_workspace to streamline the implementation of the BumpAll trait for both real and mock workspaces.
Bug reports and pull requests are welcome on GitHub. Each contribution is expected to adhere to the specified coding and contribution guidelines provided in our documentation.
This project is licensed under the MIT License.