Skip to content

deps: bump fraction from 0.15.4 to 0.17.0 - #887

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/fraction-0.17.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/fraction-0.17.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bumps fraction from 0.15.4 to 0.17.0.

Release notes

Sourced from fraction's releases.

0.17.0

[0.17.0] - 2026-08-23

Changed

  • Breaking: GenericFraction::<T>::from_unicode_str now requires T: CheckedAdd + CheckedMul. Custom backing types must provide both operations for mixed-component combination; standard bounded, big-integer, and dynamic backings satisfy these bounds.
  • Breaking: Numeric-component forms in ordinary Fraction/Decimal, Unicode, GenericFraction radix, and Juniper parsing reject component-local signs while retaining one sign for the complete value. Fraction Juniper input still requires its explicit outer sign; Decimal Juniper input delegates to ordinary Decimal grammar. From<&str> for GenericDecimal continues to map parse failures to NaN.
  • Breaking: GenericFraction changes its Num::FromStrRadixErr associated type from ParseRatioError to ParseError. Its fraction-only numerator/denominator grammar is unchanged, zero denominators return ParseError::ZeroDenominator, and direct Ratio parsing still uses ParseRatioError.
  • Breaking: ParseError is now non-exhaustive; downstream matches must include a wildcard arm.
  • Breaking: DynaInt changes its Num::FromStrRadixErr associated type to ParseError; malformed inputs and values that neither backing type can represent return ParseError::ParseIntError.

Fixed

  • Unicode mixed-number parsing now returns ParseIntError when the raw combined numerator (whole × denominator + numerator) is not representable by the backing integer type, instead of panicking in debug builds or wrapping in release builds.
  • Signed backing types no longer allow component-local signs to create negative magnitudes inside stored ratios; component-local signed-minimum inputs now fail deterministically.
  • GenericFraction and DynaInt radix parsing no longer panic for bases outside 2 through 36; they return ParseError::UnsupportedBase instead of forwarding invalid bases to their backing integer implementations.

0.16.0

[0.16.0] - 2026-08-09

Changed

  • Replaced optional lazy_static usage with std::sync::OnceLock and num-bigint constants for approximation accuracy multipliers (special thanks to Expyron for the std::sync::OnceLock patch).
  • Breaking: Rust 1.70 is now the minimum supported Rust version (MSRV).

Fixed

  • Fraction and Decimal parsing now routes zero-denominator inputs to signed infinity or NaN (including optional Unicode from_unicode_str) rather than panicking.
  • Restored Decimal Ord/PartialOrd/Eq/Hash consistency by comparing each value using its stored precision, including truncation and canonical zero handling (-0, -0.9@p0, -0.04@p1), so ordered and hashed collections now agree.
  • Added PostgreSQL NUMERIC infinity round-trip support for both Fraction and Decimal, encoding/decoding ±Infinity using 0xD000/0xF000 markers and documenting PostgreSQL 14+/unconstrained NUMERIC requirements.
Changelog

Sourced from fraction's changelog.

[0.17.0] - 2026-08-23

Changed

  • Breaking: GenericFraction::<T>::from_unicode_str now requires T: CheckedAdd + CheckedMul. Custom backing types must provide both operations for mixed-component combination; standard bounded, big-integer, and dynamic backings satisfy these bounds.
  • Breaking: Numeric-component forms in ordinary Fraction/Decimal, Unicode, GenericFraction radix, and Juniper parsing reject component-local signs while retaining one sign for the complete value. Fraction Juniper input still requires its explicit outer sign; Decimal Juniper input delegates to ordinary Decimal grammar. From<&str> for GenericDecimal continues to map parse failures to NaN.
  • Breaking: GenericFraction changes its Num::FromStrRadixErr associated type from ParseRatioError to ParseError. Its fraction-only numerator/denominator grammar is unchanged, zero denominators return ParseError::ZeroDenominator, and direct Ratio parsing still uses ParseRatioError.
  • Breaking: ParseError is now non-exhaustive; downstream matches must include a wildcard arm.
  • Breaking: DynaInt changes its Num::FromStrRadixErr associated type to ParseError; malformed inputs and values that neither backing type can represent return ParseError::ParseIntError.

Fixed

  • Unicode mixed-number parsing now returns ParseIntError when the raw combined numerator (whole × denominator + numerator) is not representable by the backing integer type, instead of panicking in debug builds or wrapping in release builds.
  • Signed backing types no longer allow component-local signs to create negative magnitudes inside stored ratios; component-local signed-minimum inputs now fail deterministically.
  • GenericFraction and DynaInt radix parsing no longer panic for bases outside 2 through 36; they return ParseError::UnsupportedBase instead of forwarding invalid bases to their backing integer implementations.

[0.16.0] - 2026-08-09

Changed

  • Replaced optional lazy_static usage with std::sync::OnceLock and num-bigint constants for approximation accuracy multipliers (special thanks to Expyron for the std::sync::OnceLock patch).
  • Breaking: Rust 1.70 is now the minimum supported Rust version (MSRV).

Fixed

  • Fraction and Decimal parsing now routes zero-denominator inputs to signed infinity or NaN (including optional Unicode from_unicode_str) rather than panicking.
  • Restored Decimal Ord/PartialOrd/Eq/Hash consistency by comparing each value using its stored precision, including truncation and canonical zero handling (-0, -0.9@p0, -0.04@p1), so ordered and hashed collections now agree.
  • Added PostgreSQL NUMERIC infinity round-trip support for both Fraction and Decimal, encoding/decoding ±Infinity using 0xD000/0xF000 markers and documenting PostgreSQL 14+/unconstrained NUMERIC requirements.
Commits
  • 53d04cd chore(release): prepare 0.17.0
  • ca92bcd docs(parse): prepare parser contract for review
  • 4e3fd9f perf(parse): benchmark DynaInt radix parsing
  • df1dff2 fix(parse): make DynaInt radix parsing panic-free
  • 1767207 ci(msrv): lint the parser smoke harness
  • e7c2387 fix(parse): reject signs inside numeric components
  • 5051604 fix(unicode): reject overflowing mixed numerators
  • d24249d chore(release): prepare 0.16.0
  • fde4af5 docs(rustdoc): fix generic type rendering
  • 23cce20 docs(postgres): explain infinity support
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [fraction](https://github.com/dnsl48/fraction) from 0.15.4 to 0.17.0.
- [Release notes](https://github.com/dnsl48/fraction/releases)
- [Changelog](https://github.com/dnsl48/fraction/blob/master/CHANGELOG.md)
- [Commits](dnsl48/fraction@0.15.4...0.17.0)

---
updated-dependencies:
- dependency-name: fraction
  dependency-version: 0.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants