refactor: remove cycle checking becuase API prevents cycles
This commit is contained in:
11 files changed
+543
-75
No files matched your search
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user