Version Synchronization Summary
This document summarizes the version management setup completed for the Scarab workspace.
Overview
All workspace crates have been synchronized to version 0.1.0-alpha.1 with shared metadata inheritance and automated release tooling configured.
Changes Made
1. Root Cargo.toml Updates
Added [workspace.package] section with shared metadata:
[workspace.package]
version = "0.1.0-alpha.1"
authors = ["Scarab Team <team@raibid-labs.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/raibid-labs/scarab"
homepage = "https://github.com/raibid-labs/scarab"
edition = "2021"
rust-version = "1.75"Location: /home/beengud/raibid-labs/scarab/Cargo.toml
2. Individual Crate Updates
Updated all 10 workspace crates to inherit from workspace metadata:
| Crate | Version | Description |
|---|---|---|
| scarab-client | 0.1.0-alpha.1 | Bevy-based GUI client |
| scarab-daemon | 0.1.0-alpha.1 | Headless daemon server |
| scarab-protocol | 0.1.0-alpha.1 | IPC protocol definitions |
| scarab-plugin-api | 0.1.0-alpha.1 | Plugin API |
| scarab-plugin-compiler | 0.1.0-alpha.1 | Fusabi plugin compiler |
| scarab-config | 0.1.0-alpha.1 | Configuration system |
| scarab-platform | 0.1.0-alpha.1 | Platform abstraction layer |
| scarab-nav | 0.1.0-alpha.1 | Navigation and window management |
| scarab-session | 0.1.0-alpha.1 | Session management |
| scarab-palette | 0.1.0-alpha.1 | Color palette management |
Each crate now uses workspace inheritance:
[package]
name = "scarab-client"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Bevy-based GUI client for Scarab terminal emulator"3. VERSION File
Created root-level version file for CI/CD and automation:
Location: /home/beengud/raibid-labs/scarab/VERSION
Content: 0.1.0-alpha.1
4. Documentation
Created comprehensive versioning documentation:
docs/VERSIONING.md
Complete versioning strategy including:
- Semantic versioning guidelines
- Pre-1.0 development conventions
- Alpha/Beta/RC release workflows
- Version bumping procedures
- Release checklist
- Workspace synchronization details
Location: /home/beengud/raibid-labs/scarab/docs/VERSIONING.md
docs/VERSION_MANAGEMENT_QUICKSTART.md
Quick reference guide with:
- Common version commands
- cargo-release usage
- Manual version updates
- Version consistency checks
- Troubleshooting tips
Location: /home/beengud/raibid-labs/scarab/docs/VERSION_MANAGEMENT_QUICKSTART.md
5. cargo-release Configuration
Created automated release configuration:
Location: /home/beengud/raibid-labs/scarab/.cargo/release.toml
Features:
- Workspace-aware releasing
- Pre-release hooks (runs tests before release)
- Automatic VERSION file updates
- CHANGELOG.md integration
- Git tag creation with proper naming (v{version})
- Consolidated commits for workspace releases
- Package ordering for proper dependency releases
6. Version Verification Script
Created automated verification script:
Location: /home/beengud/raibid-labs/scarab/scripts/verify-versions.sh
Checks:
- VERSION file consistency
- Workspace version in Cargo.toml
- All crate versions match
- No hardcoded versions
- All crates use workspace inheritance
Verification Results
All verification checks passed:
=== Scarab Version Verification ===
1. VERSION file: 0.1.0-alpha.1
2. Workspace version: 0.1.0-alpha.1
3. All 10 crates at: 0.1.0-alpha.1
4. ✓ All crates use workspace version inheritance
5. ✓ All 10 crates inherit workspace version
=== All version checks passed! ===
Build Verification
Workspace builds successfully with new versions:
cargo check --workspace
# ✓ All checks passedUsage Examples
Check current version
cat VERSION
# Output: 0.1.0-alpha.1Verify version consistency
./scripts/verify-versions.shBump to next alpha
cargo release --version 0.1.0-alpha.2 --workspace --dry-run
cargo release --version 0.1.0-alpha.2 --workspace --executeRelease beta
cargo release --version 0.1.0-beta.1 --workspace --executeRelease stable patch
cargo release patch --workspace --executeInternal Dependencies
All internal workspace dependencies use path-based references without version constraints:
[dependencies]
scarab-protocol = { path = "../scarab-protocol" }
scarab-plugin-api = { path = "../scarab-plugin-api" }
scarab-config = { path = "../scarab-config" }This ensures automatic version synchronization across the workspace.
Benefits
- Consistent Versioning: All crates share the same version number
- Single Source of Truth: Version defined once in workspace root
- Automated Releases: cargo-release handles version bumping, tagging, and changelog
- Reduced Errors: No manual version updates across multiple files
- Clear Compatibility: Same version = guaranteed compatibility
- Easy Maintenance: Update version in one place
Next Steps
For Alpha Release Preparation
- Update CHANGELOG.md with changes for 0.1.0-alpha.1
- Run full test suite:
cargo test --workspace --all-features - Run benchmarks:
cargo bench --workspace - Build release binaries:
cargo build --workspace --release - Test binaries on target platforms
- Create release with:
cargo release --workspace --execute
For Future Releases
- Follow guidelines in
docs/VERSIONING.md - Use
cargo releasefor automated version management - Run
./scripts/verify-versions.shbefore each release - Maintain CHANGELOG.md with each release
- Tag releases with
v{version}format
File Locations
| File | Location |
|---|---|
| Workspace Cargo.toml | /home/beengud/raibid-labs/scarab/Cargo.toml |
| VERSION file | /home/beengud/raibid-labs/scarab/VERSION |
| cargo-release config | /home/beengud/raibid-labs/scarab/.cargo/release.toml |
| Versioning docs | /home/beengud/raibid-labs/scarab/docs/VERSIONING.md |
| Quick start guide | /home/beengud/raibid-labs/scarab/docs/VERSION_MANAGEMENT_QUICKSTART.md |
| Verification script | /home/beengud/raibid-labs/scarab/scripts/verify-versions.sh |
References
Status: ✓ Complete Version: 0.1.0-alpha.1 Date: 2025-11-24 Verified: All workspace crates synchronized