chore: bump crate to 0.3.0, update CHANGELOG
This commit is contained in:
6 files changed
+37
-13
No files matched your search
+29
-5
@@ -5,7 +5,9 @@ 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/),
|
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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [0.3.0] - 2025-10-08
|
||||||
|
|
||||||
|
[View changes](https://github.com/swaits/dagx/compare/v0.2.3...v0.3.0)
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
@@ -13,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Comprehensive documentation with `compile_fail` tests proving cycles are impossible
|
- Comprehensive documentation with `compile_fail` tests proving cycles are impossible
|
||||||
- New integration test suite `tests/cycle_prevention.rs` demonstrating type-state pattern
|
- 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)
|
- Documents how the type system prevents cycles at compile-time (zero runtime cost)
|
||||||
|
- Added prominent documentation section in README.md explaining the feature
|
||||||
|
|
||||||
- **New `DagError::ConcurrentExecution` variant**
|
- **New `DagError::ConcurrentExecution` variant**
|
||||||
- Replaces misuse of `CycleDetected` for concurrent run protection
|
- Replaces misuse of `CycleDetected` for concurrent run protection
|
||||||
@@ -23,14 +26,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- **Removed `DagError::CycleDetected` error variant**
|
- **Removed `DagError::CycleDetected` error variant**
|
||||||
- Cycles are provably impossible via the public API due to type-state pattern
|
- Cycles are provably impossible via the public API due to type-state pattern
|
||||||
- Removed 24 lines of unreachable cycle detection code from `runner.rs`
|
- Removed 24 lines of unreachable cycle detection code from `runner.rs`
|
||||||
- Migration: If you were handling `DagError::CycleDetected`, remove that match arm
|
- **Migration**: If you were handling `DagError::CycleDetected`, remove that match arm
|
||||||
- This error could never occur in practice, so no runtime behavior changes
|
- This error could never occur in practice, so no runtime behavior changes
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- **Documentation improvements**
|
||||||
|
- Added comprehensive "Compile-Time Cycle Prevention" section to README.md
|
||||||
|
- Updated lib.rs documentation to highlight cycle prevention as first feature
|
||||||
|
- Fixed rustdoc links in `src/cycle_prevention.rs`
|
||||||
|
- Updated all error documentation references (removed cycle detection)
|
||||||
|
- Added code examples demonstrating type-state pattern
|
||||||
|
- Updated tagline to emphasize compile-time cycle prevention
|
||||||
|
|
||||||
- **Test coverage improvements**
|
- **Test coverage improvements**
|
||||||
- Added `#[cfg(not(tarpaulin_include))]` to untestable type alias
|
- Added `#[cfg(not(tarpaulin_include))]` to untestable type alias
|
||||||
- Coverage at ~83% after removing dead code
|
- Coverage at ~83% after removing dead code (target set to 80%)
|
||||||
- Remaining uncovered lines are primarily tracing macros and unreachable error paths
|
- Remaining uncovered lines are primarily tracing macros and unreachable error paths
|
||||||
|
|
||||||
- **Enhanced CI configuration** (`.github/workflows/ci.yml`)
|
- **Enhanced CI configuration** (`.github/workflows/ci.yml`)
|
||||||
@@ -39,14 +50,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- New cargo check job for all feature combinations
|
- New cargo check job for all feature combinations
|
||||||
- Lint (clippy) now runs on all feature combinations
|
- Lint (clippy) now runs on all feature combinations
|
||||||
- Doc generation for all feature combinations
|
- Doc generation for all feature combinations
|
||||||
- Coverage threshold lowered to 83% (accounts for removal of dead code and tracing macros)
|
- Coverage threshold set to 80% (accounts for tracing macros and unreachable error paths)
|
||||||
|
|
||||||
- **Release check script improvements** (`scripts/release_check.sh`)
|
- **Release check script improvements** (`scripts/release_check.sh`)
|
||||||
- Now reads MSRV from `Cargo.toml` instead of hardcoded version
|
- Now reads MSRV from `Cargo.toml` instead of hardcoded version
|
||||||
- Uses `cargo msrv verify` for all feature combinations
|
- Uses `cargo msrv verify` for all feature combinations
|
||||||
- Tests all feature combinations (no-default, all, default)
|
- Tests all feature combinations (no-default, all, default)
|
||||||
- Runs clippy, check, and tests on all feature combos
|
- Runs clippy, check, and tests on all feature combos
|
||||||
- Includes coverage verification with 83% threshold
|
- Includes coverage verification with 80% threshold
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Clippy lints in test code**
|
||||||
|
- Removed unnecessary `.clone()` call on `Copy` type in `tests/cycle_prevention.rs`
|
||||||
|
- Removed unnecessary borrow in test dependency wiring
|
||||||
|
|
||||||
|
- **Flaky timing test on macOS CI**
|
||||||
|
- Increased timeout threshold from 140ms to 200ms in `test_arc_parallel_execution`
|
||||||
|
- macOS CI runners are significantly slower than Linux/Windows
|
||||||
|
- 200ms threshold still proves parallelism while accounting for CI variability
|
||||||
|
|
||||||
## [0.2.3] - 2025-10-08
|
## [0.2.3] - 2025-10-08
|
||||||
|
|
||||||
@@ -233,6 +255,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- macOS (compatible)
|
- macOS (compatible)
|
||||||
- Windows (compatible)
|
- Windows (compatible)
|
||||||
|
|
||||||
|
[0.3.0]: https://github.com/swaits/dagx/tree/v0.3.0
|
||||||
|
[0.2.3]: https://github.com/swaits/dagx/tree/v0.2.3
|
||||||
[0.2.2]: https://github.com/swaits/dagx/tree/v0.2.2
|
[0.2.2]: https://github.com/swaits/dagx/tree/v0.2.2
|
||||||
[0.2.1]: https://github.com/swaits/dagx/tree/v0.2.1
|
[0.2.1]: https://github.com/swaits/dagx/tree/v0.2.1
|
||||||
[0.2.0]: https://github.com/swaits/dagx/tree/v0.2.0
|
[0.2.0]: https://github.com/swaits/dagx/tree/v0.2.0
|
||||||
|
|||||||
Generated
+2
-2
@@ -434,7 +434,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dagx"
|
name = "dagx"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-executor",
|
"async-executor",
|
||||||
"async-std",
|
"async-std",
|
||||||
@@ -454,7 +454,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dagx-macros"
|
name = "dagx-macros"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@ members = ["dagx-macros"]
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "dagx"
|
name = "dagx"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.81"
|
rust-version = "1.81"
|
||||||
authors = ["Stephen Waits <steve@waits.net>"]
|
authors = ["Stephen Waits <steve@waits.net>"]
|
||||||
@@ -27,7 +27,7 @@ unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)', 'cfg(tarpauli
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
parking_lot = "0.12"
|
parking_lot = "0.12"
|
||||||
dagx-macros = { version = "0.2.3", path = "./dagx-macros" }
|
dagx-macros = { version = "0.3.0", path = "./dagx-macros" }
|
||||||
tracing = { version = "0.1", optional = true }
|
tracing = { version = "0.1", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ dagx provides optional observability through the `tracing` crate with **zero run
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
dagx = { version = "0.2", features = ["tracing"] }
|
dagx = { version = "0.3", features = ["tracing"] }
|
||||||
tracing-subscriber = "0.3"
|
tracing-subscriber = "0.3"
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -335,7 +335,7 @@ Add to your `Cargo.toml`:
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
dagx = "0.2"
|
dagx = "0.3"
|
||||||
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
|
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "dagx-macros"
|
name = "dagx-macros"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.81"
|
rust-version = "1.81"
|
||||||
authors = ["Stephen Waits <steve@waits.net>"]
|
authors = ["Stephen Waits <steve@waits.net>"]
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ set -e
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
VERSION="0.2.3"
|
VERSION="0.3.0"
|
||||||
|
|
||||||
echo "=================="
|
echo "=================="
|
||||||
echo "dagx Release Check"
|
echo "dagx Release Check"
|
||||||
|
|||||||
Reference in new issue
Block a user