refactor: remove cycle checking becuase API prevents cycles

This commit is contained in:
swaits committed 2025-10-08 14:28:54 -06:00
1 parent 683579a18b
commit 802e584646
11 files changed
+543 -75

No files matched your search

+43
View File
@@ -5,6 +5,49 @@ All notable changes to dagx will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- **Compile-time cycle prevention proof** via new `src/cycle_prevention.rs` module
- Comprehensive documentation with `compile_fail` tests proving cycles are impossible
- New integration test suite `tests/cycle_prevention.rs` demonstrating type-state pattern
- Documents how the type system prevents cycles at compile-time (zero runtime cost)
- **New `DagError::ConcurrentExecution` variant**
- Replaces misuse of `CycleDetected` for concurrent run protection
- More semantically accurate error reporting
### Removed - **BREAKING CHANGES**
- **Removed `DagError::CycleDetected` error variant**
- Cycles are provably impossible via the public API due to type-state pattern
- Removed 24 lines of unreachable cycle detection code from `runner.rs`
- Migration: If you were handling `DagError::CycleDetected`, remove that match arm
- This error could never occur in practice, so no runtime behavior changes
### Changed
- **Test coverage improvements**
- Added `#[cfg(not(tarpaulin_include))]` to untestable type alias
- Coverage at ~83% after removing dead code
- Remaining uncovered lines are primarily tracing macros and unreachable error paths
- **Enhanced CI configuration** (`.github/workflows/ci.yml`)
- MSRV verification now tests all 3 feature combinations (no-default, all, default)
- Test matrix expanded to 18 runs (3 platforms × 2 Rust versions × 3 feature combos)
- New cargo check job for all feature combinations
- Lint (clippy) now runs on all feature combinations
- Doc generation for all feature combinations
- Coverage threshold lowered to 83% (accounts for removal of dead code and tracing macros)
- **Release check script improvements** (`scripts/release_check.sh`)
- Now reads MSRV from `Cargo.toml` instead of hardcoded version
- Uses `cargo msrv verify` for all feature combinations
- Tests all feature combinations (no-default, all, default)
- Runs clippy, check, and tests on all feature combos
- Includes coverage verification with 83% threshold
## [0.2.3] - 2025-10-08
[View changes](https://github.com/swaits/dagx/compare/v0.2.2...v0.2.3)