chore: bump crate to 0.2.0, update CHANGELOG

This commit is contained in:
swaits committed 2025-10-07 19:39:24 -07:00
1 parent 608251618a
commit aa604e617f
5 files changed
+76 -25

No files matched your search

+49 -1
View File
@@ -5,6 +5,53 @@ 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).
## [0.2.0] - 2025-10-08
[View changes](https://github.com/swaits/dagx/compare/v0.1.0...v0.2.0)
### Changed
- **BREAKING**: Updated MSRV (Minimum Supported Rust Version) from 1.78.0 to 1.81.0
- Required by updated dependencies: `criterion@0.7.0`, `half@2.6.0`, `rayon@1.11.0`
- Updated in both `dagx` and `dagx-macros` crates
- Updated all documentation (README.md, CONTRIBUTING.md)
### Added
- Comprehensive test coverage improvements (82.61% → 92.94%)
- Added 9 new unit tests for error paths in `ExtractInput` implementations
- Added 3 new type conversion tests in `src/types/tests.rs`
- Added 1 new trait implementation test in `src/task/tests.rs`
- Added 1 new dependency tuple test in `src/deps/tests.rs`
- Added 6 new execution path tests in `tests/execution/basic.rs`
- Added error handling tests for HashMap, Result, Option, Vec, and Arc types
- Added tests for tuple dependency count validation
- Improved concurrent run protection test with better synchronization
- Added `tarpaulin_include` to lint configuration for coverage tooling compatibility
### Fixed
- Fixed GitHub Actions `cargo-audit` workflow
- Replaced deprecated `actions-rs/audit-check@v1` with direct `cargo audit` command
- Resolved "Resource not accessible by integration" error
- Fixed clippy warnings in test code
- Removed unnecessary borrows in `.depends_on()` calls
- Added `#[allow(clippy::clone_on_copy)]` for explicit clone test
- Marked timing-sensitive and resource-intensive tests with `#[cfg_attr(tarpaulin, ignore)]`
- `test_arc_parallel_execution` (timing unreliable under instrumentation)
- `test_100000_nodes_stress` (resource intensive)
- `test_10000_level_chain_stress` (resource intensive)
### Internal
- Improved test organization following existing patterns in `tests/` directory
- Enhanced error path coverage for all `ExtractInput` trait implementations
- Better separation between unit tests and integration tests
- Refactored `scripts/release_check.sh` to use configurable VERSION variable
- Replaced hardcoded version references throughout script
- Updated instructions to use `jj` commands instead of `git`
- Simplified version bumps for future releases
## [0.1.0] - 2025-10-05 ## [0.1.0] - 2025-10-05
### Added ### Added
@@ -97,4 +144,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- macOS (compatible) - macOS (compatible)
- Windows (compatible) - Windows (compatible)
[0.1.0]: https://github.com/swaits/dagx/releases/tag/v0.1.0 [0.2.0]: https://github.com/swaits/dagx/tree/v0.2.0
[0.1.0]: https://github.com/swaits/dagx/tree/v0.1.0
Generated
+2 -2
View File
@@ -434,7 +434,7 @@ dependencies = [
[[package]] [[package]]
name = "dagx" name = "dagx"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"async-executor", "async-executor",
"async-std", "async-std",
@@ -452,7 +452,7 @@ dependencies = [
[[package]] [[package]]
name = "dagx-macros" name = "dagx-macros"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
+2 -2
View File
@@ -3,7 +3,7 @@ members = ["dagx-macros"]
[package] [package]
name = "dagx" name = "dagx"
version = "0.1.0" version = "0.2.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>"]
@@ -23,7 +23,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.1.0", path = "./dagx-macros" } dagx-macros = { version = "0.2.0", path = "./dagx-macros" }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync"] } tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync"] }
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "dagx-macros" name = "dagx-macros"
version = "0.1.0" version = "0.2.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>"]
+22 -19
View File
@@ -1,12 +1,17 @@
#!/bin/bash #!/bin/bash
# Release Readiness Checker for dagx v0.1.0 # Release Readiness Checker for dagx
# This script performs EXHAUSTIVE checks before publishing to crates.io # This script performs EXHAUSTIVE checks before publishing to crates.io
set -e set -e
echo "========================================" # =============================================================================
echo "dagx v0.1.0 EXHAUSTIVE Release Check" # CONFIGURATION
echo "========================================" # =============================================================================
VERSION="0.2.0"
echo "=================="
echo "dagx Release Check"
echo "=================="
echo "" echo ""
# Color codes # Color codes
@@ -51,7 +56,7 @@ check_pass "Rust version compatible"
echo "" echo ""
echo "→ Checking for uncommitted changes..." echo "→ Checking for uncommitted changes..."
if ! git diff --quiet || ! git diff --cached --quiet; then if jj status 2>&1 | grep -q "Working copy changes:"; then
check_warn "Uncommitted changes found - you'll need to commit before publishing" check_warn "Uncommitted changes found - you'll need to commit before publishing"
else else
check_pass "No uncommitted changes" check_pass "No uncommitted changes"
@@ -136,8 +141,8 @@ check_pass "README.md looks perfect"
echo "" echo ""
echo "→ Verifying CHANGELOG.md..." echo "→ Verifying CHANGELOG.md..."
[ -f CHANGELOG.md ] || check_fail "CHANGELOG.md missing" [ -f CHANGELOG.md ] || check_fail "CHANGELOG.md missing"
grep -q "0.1.0" CHANGELOG.md || check_fail "CHANGELOG.md doesn't mention v0.1.0" grep -q "$VERSION" CHANGELOG.md || check_fail "CHANGELOG.md doesn't mention v$VERSION"
check_pass "CHANGELOG.md exists and mentions v0.1.0" check_pass "CHANGELOG.md exists and mentions v$VERSION"
echo "" echo ""
echo "→ Verifying LICENSE..." echo "→ Verifying LICENSE..."
@@ -182,7 +187,7 @@ section "CARGO.TOML METADATA"
echo "→ Checking dagx Cargo.toml..." echo "→ Checking dagx Cargo.toml..."
grep -q 'name = "dagx"' Cargo.toml || check_fail "Package name incorrect" grep -q 'name = "dagx"' Cargo.toml || check_fail "Package name incorrect"
grep -q 'version = "0.1.0"' Cargo.toml || check_fail "Version not 0.1.0" grep -q "version = \"$VERSION\"" Cargo.toml || check_fail "Version not $VERSION"
grep -q 'edition = "2021"' Cargo.toml || check_fail "Edition not 2021" grep -q 'edition = "2021"' Cargo.toml || check_fail "Edition not 2021"
grep -q 'license = "MIT"' Cargo.toml || check_fail "License not MIT" grep -q 'license = "MIT"' Cargo.toml || check_fail "License not MIT"
grep -q 'description = "A minimal, type-safe' Cargo.toml || check_fail "Description missing" grep -q 'description = "A minimal, type-safe' Cargo.toml || check_fail "Description missing"
@@ -197,7 +202,7 @@ check_pass "dagx Cargo.toml metadata complete and correct"
echo "" echo ""
echo "→ Checking dagx-macros Cargo.toml..." echo "→ Checking dagx-macros Cargo.toml..."
grep -q 'name = "dagx-macros"' dagx-macros/Cargo.toml || check_fail "dagx-macros name incorrect" grep -q 'name = "dagx-macros"' dagx-macros/Cargo.toml || check_fail "dagx-macros name incorrect"
grep -q 'version = "0.1.0"' dagx-macros/Cargo.toml || check_fail "dagx-macros version not 0.1.0" grep -q "version = \"$VERSION\"" dagx-macros/Cargo.toml || check_fail "dagx-macros version not $VERSION"
grep -q 'edition = "2021"' dagx-macros/Cargo.toml || check_fail "dagx-macros edition not 2021" grep -q 'edition = "2021"' dagx-macros/Cargo.toml || check_fail "dagx-macros edition not 2021"
grep -q 'license = "MIT"' dagx-macros/Cargo.toml || check_fail "dagx-macros license not MIT" grep -q 'license = "MIT"' dagx-macros/Cargo.toml || check_fail "dagx-macros license not MIT"
grep -q 'description = "Procedural macros for dagx"' dagx-macros/Cargo.toml || check_fail "dagx-macros description missing" grep -q 'description = "Procedural macros for dagx"' dagx-macros/Cargo.toml || check_fail "dagx-macros description missing"
@@ -230,8 +235,8 @@ check_pass "dagx-macros is ready to publish"
echo "" echo ""
echo "→ Testing dagx package (dry-run with --allow-dirty)..." echo "→ Testing dagx package (dry-run with --allow-dirty)..."
echo " Note: This will fail until dagx-macros is published to crates.io" echo " Note: This will fail until dagx-macros is published to crates.io"
if cargo publish --dry-run --allow-dirty 2>&1 | grep -q "no matching package named \`dagx-macros\`"; then if cargo publish --dry-run --allow-dirty 2>&1 | grep -q "failed to select a version for the requirement.*dagx-macros"; then
check_warn "dagx package check shows dependency on unpublished dagx-macros (expected)" check_warn "dagx package check shows dependency on unpublished dagx-macros v$VERSION (expected)"
else else
cargo publish --dry-run --allow-dirty || check_fail "dagx package check failed unexpectedly" cargo publish --dry-run --allow-dirty || check_fail "dagx package check failed unexpectedly"
check_pass "dagx package is ready (dagx-macros must be published first)" check_pass "dagx package is ready (dagx-macros must be published first)"
@@ -284,16 +289,15 @@ echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━
echo -e "${GREEN}✓ ALL CHECKS PASSED!${NC}" echo -e "${GREEN}✓ ALL CHECKS PASSED!${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo "" echo ""
echo "dagx v0.1.0 is READY FOR RELEASE!" echo "dagx v$VERSION is READY FOR RELEASE!"
echo "" echo ""
echo -e "${YELLOW}PUBLICATION INSTRUCTIONS:${NC}" echo -e "${YELLOW}PUBLICATION INSTRUCTIONS:${NC}"
echo "" echo ""
echo "1. Commit any uncommitted changes:" echo "1. Commit any uncommitted changes:"
echo " git add ." echo " jj commit -m 'chore: release v$VERSION'"
echo " git commit -m 'Release v0.1.0'"
echo "" echo ""
echo "2. Tag the release:" echo "2. Create a bookmark for the release:"
echo " git tag -a v0.1.0 -m 'Release v0.1.0'" echo " jj bookmark create v$VERSION"
echo "" echo ""
echo "3. Publish dagx-macros FIRST:" echo "3. Publish dagx-macros FIRST:"
echo " cd dagx-macros" echo " cd dagx-macros"
@@ -303,9 +307,8 @@ echo "4. Then publish dagx:"
echo " cd .." echo " cd .."
echo " cargo publish" echo " cargo publish"
echo "" echo ""
echo "5. Push changes and tag:" echo "5. Push changes and bookmark:"
echo " git push origin main" echo " jj git push"
echo " git push origin v0.1.0"
echo "" echo ""
echo -e "${BLUE}Note: dagx-macros MUST be published before dagx${NC}" echo -e "${BLUE}Note: dagx-macros MUST be published before dagx${NC}"
echo -e "${BLUE}because dagx depends on dagx-macros from crates.io${NC}" echo -e "${BLUE}because dagx depends on dagx-macros from crates.io${NC}"