@@ -6,3 +6,95 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
88<!-- changelog-insert-here -->
9+
10+ ## [ 0.3.0] - 2026-03-22
11+
12+ ### Added
13+ - 100% test coverage for all Rust code (67 tests total)
14+ - Comprehensive unit tests for all traits: ` Num ` , ` SignNum ` , ` ToSigned ` , ` MaxValue ` , ` LinkType `
15+ - Edge case tests for unsigned to signed conversion (wrapping behavior)
16+ - Integration tests for combined trait usage
17+ - CI/CD pipeline with GitHub Actions for automated testing, linting, and releases
18+ - Code coverage reporting with cargo-llvm-cov
19+ - Changelog fragment system for automated version management
20+ - Contributing guidelines with development workflow documentation
21+ - Pre-commit hooks configuration for code quality checks
22+
23+ ### Changed
24+ - Migrated from nightly Rust (nightly-2022-08-22) to stable Rust toolchain
25+ - Updated Rust edition from 2018 to 2021
26+ - Updated ` num-traits ` dependency from 0.2.14 to 0.2.19
27+ - Set minimum Rust version (MSRV) to 1.70
28+
29+ ### Removed
30+ - ** BREAKING** : Removed ` Step ` trait bound from ` LinkType ` trait
31+ - The ` std::iter::Step ` trait remains unstable in Rust (tracking issue #42168 )
32+ - Types implementing ` LinkType ` no longer need to implement ` Step `
33+ - This is required for stable Rust compatibility
34+ - Removed ` #![feature(step_trait)] ` and ` #![feature(trait_alias)] ` feature flags
35+
36+ ### Fixed
37+
38+ - Corrected license declaration in ` rust/Cargo.toml ` from ` LGPL-3.0 ` to ` Unlicense ` (public domain)
39+ - Updated license description in ` CONTRIBUTING.md ` from ` LGPL-3.0 ` to ` Unlicense (public domain) `
40+
41+ ### Changed
42+
43+ - Added Unlicense badge to all README files (root, Rust, C#, C++)
44+ - Added License section to all README files explaining the Unlicense and its advantages over LGPL
45+
46+ ### Fixed
47+ - Added missing ` cargo publish ` step to CI/CD pipeline, fixing issue where releases
48+ were created on GitHub but never published to crates.io (#127 )
49+ - Fixed deprecated ` ::set-output ` command in ` version-and-commit.mjs `
50+ - Added ` RUSTFLAGS: -Dwarnings ` to CI/CD pipeline for stricter compilation checks
51+
52+ ### Changed
53+
54+ - Migrated all CI/CD pipeline scripts from Node.js (.mjs) to Rust (.rs) using rust-script
55+ - Updated workflow to use rust-script for all script execution, eliminating Node.js dependency
56+
57+ ### Added
58+
59+ - Smart change detection job (` detect-code-changes.rs ` ) to skip unnecessary CI jobs
60+ - Version modification check to prevent manual version edits in PRs
61+ - Crates.io-based release check instead of git tag check (` check-release-needed.rs ` )
62+ - Graceful crates.io publish script with auth error handling (` publish-crate.rs ` )
63+ - Clippy lint check in CI pipeline
64+ - Doc tests (` cargo test --doc ` ) in CI pipeline
65+ - Package verification (` cargo package --list ` ) in CI build
66+ - PR-diff-aware changelog fragment validation (` check-changelog-fragment.rs ` )
67+ - Changelog PR release mode for manual release workflow
68+ - Multi-language repository path detection utility (` rust-paths.rs ` )
69+ - Case study documentation for issue #132
70+
71+ ### Fixed
72+
73+ - CI/CD "Auto Release" failure caused by hard-failing on missing ` CARGO_REGISTRY_TOKEN `
74+ - Job dependency conditions now use ` always() && !cancelled() ` pattern for correct behavior
75+
76+ ### Added
77+
78+ - Rust-specific README.md with detailed description,
79+ usage examples, and crate badges
80+ - C# language-specific README.md with namespace docs,
81+ installation, and usage examples
82+ - C++ language-specific README.md with Conan
83+ installation and usage info
84+
85+ ### Changed
86+
87+ - Root README.md now uses a badge table for all
88+ language versions (C#, C++, Rust)
89+ - Replaced Gitpod badge with GitHub Codespaces badge
90+ - Updated Cargo.toml readme field to point to
91+ Rust-specific README.md
92+
93+ ### Fixed
94+
95+ - Rust crate on crates.io was displaying generic root
96+ README instead of Rust-specific documentation
97+
98+ ### Fixed
99+
100+ - Removed unused ` std::process::exit ` import from ` scripts/get-bump-type.rs ` that caused a compiler warning
0 commit comments