Skip to content

v2.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Apr 13:21

Crates.io Docs.rs

Added

  • Test coverage infrastructure using cargo-tarpaulin with 90% minimum threshold
  • Comprehensive unit tests achieving 94.57% code coverage
  • rust-toolchain.toml to pin nightly-2022-08-22 for stable feature compatibility
  • Coverage check job in CI/CD pipeline to prevent coverage regression

Changed

  • CI workflow now requires coverage check to pass before build

Added

  • Modern CI/CD pipeline from rust-ai-driven-development-pipeline-template
  • GitHub Actions workflow for automated testing, linting, and releases
  • Multi-platform testing (Ubuntu, macOS, Windows)
  • Pre-commit hooks configuration for code quality
  • Fragment-based changelog system
  • Automated release workflow with version management
  • File size checking for Rust source files
  • Contributing guidelines (CONTRIBUTING.md)

Changed

  • Migrated from nightly Rust to stable Rust toolchain (requires Rust 1.79+)
  • Removed all unstable feature flags:
    • try_trait_v2 - Flow no longer implements Try trait
    • type_alias_impl_trait - Point now uses explicit PointIter type
    • const_trait_impl, const_convert, const_deref, const_refs_to_cell, const_result_drop - LinkType/FuntyPart traits are no longer const
    • step_trait - LinkType no longer requires Step bound
    • associated_type_bounds - still used but stabilized in Rust 1.79
  • Flow type changes:
    • Added into_control_flow() method for use with try_for_each
    • Removed Try and FromResidual trait implementations (nightly-only)
  • Point type changes:
    • Added explicit PointIter iterator type (publicly exported)
  • LinkType trait changes:
    • Removed Step trait bound
    • Removed const from trait and impl
  • FuntyPart trait changes:
    • Simplified implementation without const generics
    • Now uses expect() instead of unreachable_unchecked()
  • Updated CI/CD pipeline to use dtolnay/rust-toolchain@stable

Fixed

  • Crate now compiles on stable Rust without any feature flags

Changed

  • Migrated all CI/CD scripts from Python to JavaScript ES modules (.mjs) for enhanced performance
  • Updated release workflow to use Node.js 20.x for script execution
  • Added automatic version bumping based on changelog fragment frontmatter

Added

  • New get-bump-type.mjs script that parses changelog fragments and determines version bump type
  • Frontmatter support in changelog fragments with bump: major|minor|patch specification
  • Automatic version bumping during release based on highest priority bump type from fragments

Documentation

  • Updated changelog.d/README.md with comprehensive frontmatter documentation and examples
  • Updated CONTRIBUTING.md with new script references and fragment format instructions

Changed

  • Upgraded to Rust edition 2024 with MSRV 1.85
  • Updated all dependencies to latest stable versions (thiserror 2.x, quickcheck 1.1, quickcheck_macros 1.2)
  • Migrated CI/CD scripts from Node.js to Rust (rust-script)
  • Upgraded CI/CD workflow with change detection, version check, Codecov coverage, and GitHub Pages docs deployment
  • Added clippy pedantic and nursery lints configuration
  • Added release profile optimization (LTO, single codegen unit, symbol stripping)
  • Fixed repository URL and package metadata

Added

  • Converter roundtrip tests and error variant tests (94 total test cases)
  • GitHub Pages documentation deployment
  • Crates.io publishing support in CI/CD
  • Case study document for issue #14

Changed

  • Replaced funty dependency with platform-num 0.8.0 (LinkReference trait)
  • Replaced all LinkType bounds with LinkReference from platform-num
  • Replaced FuntyPart::funty(n) calls with LinkReference::from_byte(n)
  • Simplified all generic bounds from T: LinkReference + WrappingAdd to T: LinkReference (WrappingArithmetic is now a supertrait of LinkReference in platform-num 0.8.0)

Removed

  • Removed funty dependency
  • Removed num-traits dependency (re-exported by platform-num)
  • Removed LinkType trait entirely (replaced by LinkReference)
  • Removed FuntyPart trait (replaced by LinkReference::from_byte)
  • Removed link_type.rs module