feat(M019/S02): workspace compilation — dep alignment + D002 retirement #6

Merged
wollax merged 4 commits from kata/root/M019/S02 into main 2026-04-02 14:30:29 +00:00
Owner

Summary

Resolves all four Cargo workspace dependency version conflicts between assay and smelt, retires D002 by replacing smelt-core's StateBackendConfig mirror with a direct assay-types path dep, and fixes the integration test path to use the monorepo layout.

Changes

T01: Dep version alignment

  • Upgrade assay toml 0.8→1, which 7→8
  • smelt-cli reqwest 0.12→0.13 (workspace)
  • ratatui 0.29→0.30 (no code changes needed — API compatible)
  • Add 10 smelt-only deps to root [workspace.dependencies]

T02: D002 retirement

  • Add assay-types = { path = "../../../crates/assay-types" } to smelt-core
  • Delete StateBackendConfig enum from tracker.rs (~140 lines + 7 tests)
  • Add pub use assay_types::StateBackendConfig re-export
  • Update field names: endpoint_urlurl, token_envtoken (D006)
  • Remove D002 doc comment from assay.rs

T03: Integration test path + verification

  • Change docker_lifecycle.rs fallback from ../../assay to ../ (monorepo root)
  • cargo build --workspace: all 9 crates compile
  • cargo clippy --workspace --all-targets -- -D warnings: clean

Known pre-existing test failures (not introduced by this PR)

  • 2 docker tests: require Docker daemon
  • 6 forge tests: rustls CryptoProvider init issue in nextest parallel binary

These failures exist on main before this PR.

## Summary Resolves all four Cargo workspace dependency version conflicts between assay and smelt, retires D002 by replacing smelt-core's `StateBackendConfig` mirror with a direct assay-types path dep, and fixes the integration test path to use the monorepo layout. ## Changes ### T01: Dep version alignment - Upgrade assay `toml` 0.8→1, `which` 7→8 - smelt-cli `reqwest` 0.12→0.13 (workspace) - ratatui 0.29→0.30 (no code changes needed — API compatible) - Add 10 smelt-only deps to root `[workspace.dependencies]` ### T02: D002 retirement - Add `assay-types = { path = "../../../crates/assay-types" }` to smelt-core - Delete `StateBackendConfig` enum from `tracker.rs` (~140 lines + 7 tests) - Add `pub use assay_types::StateBackendConfig` re-export - Update field names: `endpoint_url`→`url`, `token_env`→`token` (D006) - Remove D002 doc comment from `assay.rs` ### T03: Integration test path + verification - Change `docker_lifecycle.rs` fallback from `../../assay` to `../` (monorepo root) - `cargo build --workspace`: all 9 crates compile ✅ - `cargo clippy --workspace --all-targets -- -D warnings`: clean ✅ ## Known pre-existing test failures (not introduced by this PR) - 2 docker tests: require Docker daemon - 6 forge tests: rustls CryptoProvider init issue in nextest parallel binary These failures exist on main before this PR.
- Upgrade toml from 0.8 to 1 in root workspace (D007)
- Upgrade which from 7 to 8 in root workspace (smelt's version)
- Add missing smelt workspace deps to root: base64, bollard, futures-util,
  indexmap, tokio-util, tokio-stream, uuid, assert_cmd, predicates, serde_yaml
- Update smelt-cli reqwest from direct 0.12 to workspace 0.13
- Update smelt-core serde_json and serde_yaml to workspace refs
- ratatui 0.30 (already in root) is API-compatible with smelt's 0.29 code
- cargo check --workspace compiles all 9 crates clean
- Add assay-types path dep to smelt-core
- Delete StateBackendConfig enum from tracker.rs (~140 lines + tests)
- Add pub use re-export from assay-types for backward compat
- Update Smelt variant field names: endpoint_url→url, token_env→token (D006)
- Custom variant now uses serde_json::Value (from assay-types canonical def)
- Remove D002 doc comment from assay.rs
- Keep SmeltRunManifest/SmeltSpec/SmeltCriterion as smelt-owned types (D008)
- Update manifest test fixtures for new field names
- All smelt-core tests pass (tracker + state_backend + assay)
feat(S02/T03): fix integration test path for monorepo layout
Some checks failed
CI / Validate plugins (pull_request) Successful in 2s
CI / Check (stable) (pull_request) Failing after 4m18s
d677fa05e3
- Change docker_lifecycle.rs fallback from sibling repo ../../assay to
  monorepo-relative ../ (smelt workspace root → assay repo root)
- Validate monorepo root by checking crates/assay-cli exists
- Update doc comments to describe monorepo layout
- Keep ASSAY_SOURCE_DIR env var override as escape hatch
- cargo build --workspace: all 9 crates compile
- cargo test --workspace: 8 pre-existing failures (Docker + rustls crypto)
- cargo clippy --workspace --all-targets -- -D warnings: passes
test(S02): add ssh + custom StateBackendConfig TOML round-trip tests
Some checks failed
CI / Validate plugins (pull_request) Successful in 3s
CI / Check (stable) (pull_request) Failing after 6m58s
1074c5691c
- Closes coverage gap from deleted tracker.rs tests
- manifest_state_backend_ssh: verifies Ssh variant from TOML
- manifest_state_backend_custom_json_value_from_toml: verifies serde_json::Value
  deserializes correctly from TOML (cross-format serde compatibility)
- All 10 state_backend tests pass
wollax merged commit 60169d21ab into main 2026-04-02 14:30:29 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
wollax/assay!6
No description provided.