Releases: linksplatform/Numbers
Releases · linksplatform/Numbers
v0.5.0
Added
- 100% test coverage for all Rust code (67 tests total)
- Comprehensive unit tests for all traits:
Num,SignNum,ToSigned,MaxValue,LinkType - Edge case tests for unsigned to signed conversion (wrapping behavior)
- Integration tests for combined trait usage
- CI/CD pipeline with GitHub Actions for automated testing, linting, and releases
- Code coverage reporting with cargo-llvm-cov
- Changelog fragment system for automated version management
- Contributing guidelines with development workflow documentation
- Pre-commit hooks configuration for code quality checks
Changed
- Migrated from nightly Rust (nightly-2022-08-22) to stable Rust toolchain
- Updated Rust edition from 2018 to 2021
- Updated
num-traitsdependency from 0.2.14 to 0.2.19 - Set minimum Rust version (MSRV) to 1.70
Removed
- BREAKING: Removed
Steptrait bound fromLinkTypetrait- The
std::iter::Steptrait remains unstable in Rust (tracking issue #42168) - Types implementing
LinkTypeno longer need to implementStep - This is required for stable Rust compatibility
- The
- Removed
#![feature(step_trait)]and#![feature(trait_alias)]feature flags
Fixed
- Corrected license declaration in
rust/Cargo.tomlfromLGPL-3.0toUnlicense(public domain) - Updated license description in
CONTRIBUTING.mdfromLGPL-3.0toUnlicense (public domain)
Changed
- Added Unlicense badge to all README files (root, Rust, C#, C++)
- Added License section to all README files explaining the Unlicense and its advantages over LGPL
Fixed
- Added missing
cargo publishstep to CI/CD pipeline, fixing issue where releases
were created on GitHub but never published to crates.io (#127) - Fixed deprecated
::set-outputcommand inversion-and-commit.mjs - Added
RUSTFLAGS: -Dwarningsto CI/CD pipeline for stricter compilation checks
Changed
- Migrated all CI/CD pipeline scripts from Node.js (.mjs) to Rust (.rs) using rust-script
- Updated workflow to use rust-script for all script execution, eliminating Node.js dependency
Added
- Smart change detection job (
detect-code-changes.rs) to skip unnecessary CI jobs - Version modification check to prevent manual version edits in PRs
- Crates.io-based release check instead of git tag check (
check-release-needed.rs) - Graceful crates.io publish script with auth error handling (
publish-crate.rs) - Clippy lint check in CI pipeline
- Doc tests (
cargo test --doc) in CI pipeline - Package verification (
cargo package --list) in CI build - PR-diff-aware changelog fragment validation (
check-changelog-fragment.rs) - Changelog PR release mode for manual release workflow
- Multi-language repository path detection utility (
rust-paths.rs) - Case study documentation for issue #132
Fixed
- CI/CD "Auto Release" failure caused by hard-failing on missing
CARGO_REGISTRY_TOKEN - Job dependency conditions now use
always() && !cancelled()pattern for correct behavior
Added
- Rust-specific README.md with detailed description,
usage examples, and crate badges - C# language-specific README.md with namespace docs,
installation, and usage examples - C++ language-specific README.md with Conan
installation and usage info
Changed
- Root README.md now uses a badge table for all
language versions (C#, C++, Rust) - Replaced Gitpod badge with GitHub Codespaces badge
- Updated Cargo.toml readme field to point to
Rust-specific README.md
Fixed
- Rust crate on crates.io was displaying generic root
README instead of Rust-specific documentation
Fixed
- Removed unused
std::process::exitimport fromscripts/get-bump-type.rsthat caused a compiler warning
Fixed
- Fixed panic in
scripts/create-github-release.rscaused by unsupported regex lookahead assertion(?=...)in Rust'sregexcrate, which prevented GitHub release creation for v0.3.0
Changed
- Rename Rust traits to use full English words:
Num→Number,SignNum→SignedNumber,LinkType→LinkReference - Add documentation comments to all public traits with examples
v0.4.0
Added
- 100% test coverage for all Rust code (67 tests total)
- Comprehensive unit tests for all traits:
Num,SignNum,ToSigned,MaxValue,LinkType - Edge case tests for unsigned to signed conversion (wrapping behavior)
- Integration tests for combined trait usage
- CI/CD pipeline with GitHub Actions for automated testing, linting, and releases
- Code coverage reporting with cargo-llvm-cov
- Changelog fragment system for automated version management
- Contributing guidelines with development workflow documentation
- Pre-commit hooks configuration for code quality checks
Changed
- Migrated from nightly Rust (nightly-2022-08-22) to stable Rust toolchain
- Updated Rust edition from 2018 to 2021
- Updated
num-traitsdependency from 0.2.14 to 0.2.19 - Set minimum Rust version (MSRV) to 1.70
Removed
- BREAKING: Removed
Steptrait bound fromLinkTypetrait- The
std::iter::Steptrait remains unstable in Rust (tracking issue #42168) - Types implementing
LinkTypeno longer need to implementStep - This is required for stable Rust compatibility
- The
- Removed
#![feature(step_trait)]and#![feature(trait_alias)]feature flags
Fixed
- Corrected license declaration in
rust/Cargo.tomlfromLGPL-3.0toUnlicense(public domain) - Updated license description in
CONTRIBUTING.mdfromLGPL-3.0toUnlicense (public domain)
Changed
- Added Unlicense badge to all README files (root, Rust, C#, C++)
- Added License section to all README files explaining the Unlicense and its advantages over LGPL
Fixed
- Added missing
cargo publishstep to CI/CD pipeline, fixing issue where releases
were created on GitHub but never published to crates.io (#127) - Fixed deprecated
::set-outputcommand inversion-and-commit.mjs - Added
RUSTFLAGS: -Dwarningsto CI/CD pipeline for stricter compilation checks
Changed
- Migrated all CI/CD pipeline scripts from Node.js (.mjs) to Rust (.rs) using rust-script
- Updated workflow to use rust-script for all script execution, eliminating Node.js dependency
Added
- Smart change detection job (
detect-code-changes.rs) to skip unnecessary CI jobs - Version modification check to prevent manual version edits in PRs
- Crates.io-based release check instead of git tag check (
check-release-needed.rs) - Graceful crates.io publish script with auth error handling (
publish-crate.rs) - Clippy lint check in CI pipeline
- Doc tests (
cargo test --doc) in CI pipeline - Package verification (
cargo package --list) in CI build - PR-diff-aware changelog fragment validation (
check-changelog-fragment.rs) - Changelog PR release mode for manual release workflow
- Multi-language repository path detection utility (
rust-paths.rs) - Case study documentation for issue #132
Fixed
- CI/CD "Auto Release" failure caused by hard-failing on missing
CARGO_REGISTRY_TOKEN - Job dependency conditions now use
always() && !cancelled()pattern for correct behavior
Added
- Rust-specific README.md with detailed description,
usage examples, and crate badges - C# language-specific README.md with namespace docs,
installation, and usage examples - C++ language-specific README.md with Conan
installation and usage info
Changed
- Root README.md now uses a badge table for all
language versions (C#, C++, Rust) - Replaced Gitpod badge with GitHub Codespaces badge
- Updated Cargo.toml readme field to point to
Rust-specific README.md
Fixed
- Rust crate on crates.io was displaying generic root
README instead of Rust-specific documentation
Fixed
- Removed unused
std::process::exitimport fromscripts/get-bump-type.rsthat caused a compiler warning
Fixed
- Fixed panic in
scripts/create-github-release.rscaused by unsupported regex lookahead assertion(?=...)in Rust'sregexcrate, which prevented GitHub release creation for v0.3.0
v0.3.0
Added
- 100% test coverage for all Rust code (67 tests total)
- Comprehensive unit tests for all traits:
Num,SignNum,ToSigned,MaxValue,LinkType - Edge case tests for unsigned to signed conversion (wrapping behavior)
- Integration tests for combined trait usage
- CI/CD pipeline with GitHub Actions for automated testing, linting, and releases
- Code coverage reporting with cargo-llvm-cov
- Changelog fragment system for automated version management
- Contributing guidelines with development workflow documentation
- Pre-commit hooks configuration for code quality checks
- Smart change detection job, version modification check, crates.io-based release check
- Clippy lint check and doc tests in CI pipeline
- PR-diff-aware changelog fragment validation
- Multi-language repository path detection utility
- Case study documentation for issues #127, #132, #135
Changed
- Migrated from nightly Rust (nightly-2022-08-22) to stable Rust toolchain
- Updated Rust edition from 2018 to 2021
- Updated
num-traitsdependency from 0.2.14 to 0.2.19 - Set minimum Rust version (MSRV) to 1.70
- Migrated all CI/CD scripts from Node.js (.mjs) to Rust (.rs) using rust-script
Removed
- BREAKING: Removed
Steptrait bound fromLinkTypetrait (required for stable Rust compatibility) - Removed
#![feature(step_trait)]and#![feature(trait_alias)]feature flags
Fixed
- Corrected license declaration from
LGPL-3.0toUnlicense(public domain) - Added missing
cargo publishstep to CI/CD pipeline - Removed unused
std::process::exitimport fromscripts/get-bump-type.rs - Fixed CI/CD auto release failure caused by hard-failing on missing
CARGO_REGISTRY_TOKEN
v0.2.1
Release v0.2.1
v0.2.0
Release v0.2.0
v0.1.0
Release v0.1.0
[C++] 0.1.0
[C#] 0.9.0
https://www.nuget.org/packages/Platform.Numbers/
Generic math is used.
[C#] 0.8.0
https://www.nuget.org/packages/Platform.Numbers/
Constraint of template parameter in the class Bit is changed from INumber to INumberBase.
[C#] 0.7.0
https://www.nuget.org/packages/Platform.Numbers/
Stopped using dynamic compilation and replaced it with generic math from .NET 7.