File tree Expand file tree Collapse file tree 7 files changed +216
-7
lines changed
Expand file tree Collapse file tree 7 files changed +216
-7
lines changed Original file line number Diff line number Diff line change @@ -21,15 +21,11 @@ AGENTS.md
2121* .key
2222
2323# Documentation
24- docs /design-no_op-experimental
2524rules.md
26- ARCHITECTURE.md
2725style.md
28- demos /
29- test.md
30- examples /RECORDING_TEMPLATE.md
31- examples /issues.md
32- commands_check.md
26+ examples /split-recording-guide.txt
27+ examples /unify-recording-guide.txt
28+ examples /release-recording-guide.txt
3329
3430# Cargo-Rail (Testing)
3531* rail.toml
Original file line number Diff line number Diff line change 1+ # release demo
2+
3+ Demonstrates release validation and planning using tikv (70+ component workspace).
4+
5+ ## Workflow
6+
7+ ``` bash
8+ cargo rail init # Base config
9+ cargo rail release init tikv # Configure crate for release
10+ cargo rail release check tikv # Basic validation
11+ cargo rail release check tikv --extended # Full validation (dry-run, MSRV)
12+ cargo rail release run tikv --check # Preview release plan
13+ cargo rail release run tikv --bump minor # Execute minor release
14+ ```
15+
16+ ## Config
17+
18+ ``` toml
19+ [release ]
20+ tag_prefix = " v"
21+ tag_format = " {crate}-{prefix}{version}"
22+ require_clean = true
23+ publish_delay = 5
24+ create_github_release = false
25+ require_changelog_entries = false
26+
27+ [crates .tikv .release ]
28+ publish = false
29+ ```
30+
31+ | Option | Value | Why |
32+ | --------| -------| -----|
33+ | ` tag_format ` | ` {crate}-{prefix}{version} ` | Produces ` tikv-v9.0.1 ` style tags |
34+ | ` require_clean ` | ` true ` | Enforce clean git state |
35+ | ` create_github_release ` | ` false ` | Skip gh CLI for demo |
36+ | ` publish ` | ` false ` | tikv isn't published to crates.io |
37+
38+ ## What this shows
39+
40+ - ` cargo rail release init ` - Configure a crate for release
41+ - ` cargo rail release check ` - Basic validation
42+ - ` cargo rail release check --extended ` - Full dry-run + MSRV check
43+ - ` cargo rail release run --check ` - Preview release plan
44+ - ` --bump patch/minor/major ` - Version bump options
45+ - ` --skip-publish ` - Tag-only releases
Original file line number Diff line number Diff line change 1+ # split/sync demo
2+
3+ Demonstrates crate extraction with git history preservation using ruff's ` ruff_cache ` crate.
4+
5+ ## Workflow
6+
7+ ``` bash
8+ cargo rail init # Base config
9+ cargo rail split init ruff_cache # Configure crate for split
10+ cargo rail split run ruff_cache --check # Preview
11+ cargo rail split run ruff_cache # Execute split
12+ cargo rail sync ruff_cache --check # Preview sync
13+ ```
14+
15+ ## Config
16+
17+ ``` toml
18+ [crates .ruff_cache .split ]
19+ remote = " /tmp/ruff-split-test"
20+ branch = " main"
21+ mode = " single"
22+ paths = [{ crate = " crates/ruff_cache" }]
23+ include = [" LICENSE" ]
24+ ```
25+
26+ | Option | Value | Why |
27+ | --------| -------| -----|
28+ | ` remote ` | ` /tmp/... ` | Local path for demo (use git URL in production) |
29+ | ` mode ` | ` single ` | One crate per split repo |
30+ | ` paths ` | ` [{ crate = "..." }] ` | Crate location in monorepo |
31+ | ` include ` | ` ["LICENSE"] ` | Extra files to copy |
32+
33+ ## What this shows
34+
35+ - ` cargo rail split init ` - Configure a crate for splitting
36+ - ` cargo rail split run --check ` - Preview before executing
37+ - ` cargo rail split run ` - Extract crate with full git history
38+ - ` cargo rail sync --to-remote ` - Push monorepo changes to split
39+ - ` cargo rail sync --from-remote ` - Pull split repo changes back
Original file line number Diff line number Diff line change 1+ # helix-db unify demo
2+
3+ Emerging graph database workspace (6 crates). Demonstrates unification on a growing project.
4+
5+ ## Config choices
6+
7+ ``` toml
8+ [unify ]
9+ msrv = true
10+ detect_unused = true
11+ remove_unused = true
12+ prune_dead_features = true
13+ strict_version_compat = true
14+ ```
15+
16+ | Option | Value | Why |
17+ | --------| -------| -----|
18+ | ` msrv ` | true | Compute MSRV as project matures |
19+ | ` detect_unused ` | true | Keep deps clean during rapid development |
20+ | ` remove_unused ` | true | Auto-clean unused deps |
21+ | ` prune_dead_features ` | true | Remove feature cruft |
22+ | ` strict_version_compat ` | true | Safe defaults for new project |
23+
24+ ## What this shows
25+
26+ - cargo-rail on a small, actively developed workspace
27+ - Clean unification for projects heading toward v1
28+ - Standard workflow: init → check → unify → verify
Original file line number Diff line number Diff line change 1+ # polars unify demo
2+
3+ Large data processing workspace (50+ crates, pyo3 bindings). Aggressive settings.
4+
5+ ## Config choices
6+
7+ ``` toml
8+ targets = [" x86_64-unknown-linux-gnu" , " aarch64-apple-darwin" ]
9+
10+ [unify ]
11+ msrv = true
12+ detect_unused = true
13+ remove_unused = true
14+ prune_dead_features = true
15+ pin_transitives = true
16+ transitive_host = " root"
17+ strict_version_compat = false
18+ major_version_conflict = " bump"
19+ ```
20+
21+ | Option | Value | Why |
22+ | --------| -------| -----|
23+ | ` msrv ` | true | Compute floor for edition 2024 workspace |
24+ | ` detect_unused ` | true | Find orphaned deps in large workspace |
25+ | ` remove_unused ` | true | Auto-clean |
26+ | ` prune_dead_features ` | true | Many optional features across crates |
27+ | ` pin_transitives ` | true | ** Key demo** : workspace-hack replacement |
28+ | ` transitive_host ` | root | Pin transitives in root Cargo.toml |
29+ | ` strict_version_compat ` | false | Allow version flexibility |
30+ | ` major_version_conflict ` | bump | Force highest resolved version |
31+
32+ ## What this shows
33+
34+ - Handling large workspace with 50+ crates
35+ - ` pin_transitives ` as cargo-hakari replacement
36+ - Aggressive ` major_version_conflict = "bump" ` for leaner graph
37+ - polars already uses ` [workspace.dependencies] ` - cargo-rail enhances it
Original file line number Diff line number Diff line change 1+ # ripgrep unify demo
2+
3+ Small, focused CLI workspace (9 crates). Demonstrates baseline unification.
4+
5+ ## Config choices
6+
7+ ``` toml
8+ targets = [" x86_64-unknown-linux-gnu" , " aarch64-apple-darwin" ]
9+
10+ [unify ]
11+ msrv = true
12+ detect_unused = true
13+ remove_unused = true
14+ prune_dead_features = true
15+ strict_version_compat = true
16+ ```
17+
18+ | Option | Value | Why |
19+ | --------| -------| -----|
20+ | ` msrv ` | true | ripgrep already sets ` rust-version ` ; verify cargo-rail computes same |
21+ | ` detect_unused ` | true | Find any deps declared but not resolved |
22+ | ` remove_unused ` | true | Auto-clean them |
23+ | ` prune_dead_features ` | true | Remove empty feature no-ops |
24+ | ` strict_version_compat ` | true | Default safety - no surprises |
25+
26+ ## What this shows
27+
28+ - Basic unification flow on a well-maintained workspace
29+ - MSRV computation matching existing ` rust-version = "1.85" `
30+ - Fast execution on small workspace
Original file line number Diff line number Diff line change 1+ # tokio unify demo
2+
3+ Foundational async runtime (5 public + 5 internal crates). Conservative settings.
4+
5+ ## Config choices
6+
7+ ``` toml
8+ targets = [" x86_64-unknown-linux-gnu" , " aarch64-apple-darwin" ]
9+
10+ [unify ]
11+ msrv = true
12+ detect_unused = true
13+ remove_unused = true
14+ prune_dead_features = true
15+ strict_version_compat = true
16+ exact_pin_handling = " warn"
17+ major_version_conflict = " warn"
18+ ```
19+
20+ | Option | Value | Why |
21+ | --------| -------| -----|
22+ | ` msrv ` | true | Compute buildable floor from deps |
23+ | ` detect_unused ` | true | Ecosystem crate - should be clean |
24+ | ` remove_unused ` | true | Auto-apply cleanup |
25+ | ` prune_dead_features ` | true | tokio has many conditional features |
26+ | ` strict_version_compat ` | true | Conservative - don't break ecosystem |
27+ | ` exact_pin_handling ` | warn | Report any exact pins but don't fail |
28+ | ` major_version_conflict ` | warn | Skip conflicts, don't force bump |
29+
30+ ## What this shows
31+
32+ - Safe unification on core ecosystem library
33+ - Conservative version handling (warn, don't break)
34+ - Multi-crate workspace with internal test crates
You can’t perform that action at this time.
0 commit comments