Skip to content

Conversation

@renovate
Copy link

@renovate renovate bot commented Nov 22, 2025

This PR contains the following updates:

Package Type Update Change
arrayvec05 dependencies minor 0.5 -> 0.7
arrayvec07 dependencies patch 0.7.4 -> 0.7.6
bigdecimal03 dependencies minor 0.3 -> 0.4
bigdecimal04 dependencies patch 0.4.2 -> 0.4.9
bytes dependencies minor 1.5.0 -> 1.11.0
chrono dependencies patch 0.4.31 -> 0.4.42
dyn-clone dependencies patch 1.0.14 -> 1.0.20
either dependencies minor 1.9.0 -> 1.15.0
enumset dependencies patch 1.1.3 -> 1.1.10
indexmap2 dependencies minor 2.0.2 -> 2.12.1
pretty_assertions dev-dependencies patch 1.4.0 -> 1.4.1
proc-macro2 dependencies patch 1.0.69 -> 1.0.103
quote dependencies patch 1.0.33 -> 1.0.42
rust_decimal dependencies minor 1.32.0 -> 1.39.0
semver dependencies patch 1.0.20 -> 1.0.27
serde (source) dependencies patch 1.0.189 -> 1.0.228
serde_derive_internals (source) dependencies patch 0.29.0 -> 0.29.1
serde_json dependencies patch 1.0.107 -> 1.0.145
smallvec dependencies minor 1.11.1 -> 1.15.1
smol_str dependencies minor 0.1.17 -> 0.3.0
syn dependencies patch 2.0.38 -> 2.0.111
trybuild dev-dependencies patch 1.0.85 -> 1.0.114
url dependencies minor 2.4.1 -> 2.5.7
uuid1 dependencies minor 1.5.0 -> 1.18.1

Release Notes

bluss/arrayvec (arrayvec05)

v0.7.6

Compare Source

v0.7.5

Compare Source

v0.7.4

Compare Source

  • Add feature zeroize to support the Zeroize trait by @​elichai

v0.7.3

Compare Source

v0.7.2

Compare Source

v0.7.1

Compare Source

  • Add new ArrayVec methods .take() and .into_inner_unchecked() by @​conradludgate
  • clone_from now uses truncate when needed by @​a1phyr

v0.7.0

Compare Source

  • fn new_const is now the way to const-construct arrayvec and arraystring,
    and fn new has been reverted to a regular "non-const" function.
    This works around performance issue #​182, where the const fn version did not
    optimize well. Change by @​bluss with thanks to @​rodrimati1992 and @​niklasf
    for analyzing the problem.

  • The deprecated feature flag unstable-const-fn was removed, since it's not needed

  • Optimize .retain() by using the same algorithm as in std, change by @​niklasf,
    issue #​174. Original optimization in Rust std by @​oxalica in Optimize Vec::retain rust-lang/rust#81126

v0.6.1

Compare Source

  • The ArrayVec::new and ArrayString::new constructors are properly
    const fns on stable and the feature flag unstable-const-fn is now deprecated.
    by @​rodrimati1992

  • Small fix to the capacity check macro by @​Xaeroxe

  • Typo fix in documentation by @​cuviper

  • Small code cleanup by @​bluss

v0.6.0

Compare Source

  • The const generics release 🎉. Arrayvec finally implements what it
    wanted to implement, since its first version: a vector backed by an array,
    with generic parameters for the arbitrary element type and backing array
    capacity.

    The New type syntax is ArrayVec<T, CAP> where CAP is the arrayvec capacity.
    For arraystring the syntax is ArrayString<CAP>.

    Length is stored internally as u32; this limits the maximum capacity. The size
    of the ArrayVec or ArrayString structs for the same capacity may grow
    slightly compared with the previous version (depending on padding requirements
    for the element type). Change by @​bluss.

  • Arrayvec's .extend() and FromIterator/.collect() to arrayvec now
    panic if the capacity of the arrayvec is exceeded. Change by @​bluss.

  • Arraystring now implements TryFrom<&str> and TryFrom<fmt::Arguments> by
    @​c410-f3r

  • Minimum supported rust version is Rust 1.51

akubera/bigdecimal-rs (bigdecimal03)

v0.4.9

Compare Source

Changes
  • Add methods BigDecimal::{powi, powi_with_context} for raising a decimal to a i64 power

    • the powi uses Default Context
  • Add methods BigDecimal::mul_with_context for efficient multiplication to fixed precision

    • uses precision and rounding-mode in the Context
  • Add method BigDecimal::decimal_digit_count, returning number of decimal digits (i.e. precision) of the number

  • Add method BigDecimal::order_of_magnitude, returning position of most significant digit of this decimal

  • Add method BigDecimal::is_one_quickcheck, returning Option<bool> indicating if the value is 1.0 if it can be calculated without allocating, or None if too large

    • Replaced is_one in multiplication methods when used for optimizations
      • Should test if that actually speeds it up
    • Eg value 1.00000000000000000000000000000000000000000 is stored internally as
      [4870020673419870208, 16114848830623546549, 293] E -41 and it's hard to tell this is equivalent to 1
  • Add optimizations to inverse

    • small powers of ten will simply flip their scale 1/10e-5 -> 10e5
    • convert to f64 to make initial guess when before iterative algorithm
  • Add Context::invert(&self, BigDecimalRef), equivalent to BigDecimal::inverse_with_context(&self, &ctx)

    • Still has a bug where rounding ignores sign, affecting floor/ceiling modes

v0.4.8

Compare Source

What's Changed

Full Changelog: akubera/bigdecimal-rs@v0.4.7...v0.4.8

v0.4.7

Compare Source

Changes
  • Fixed bug in BigDecimal::to_f64
  • Impl num_traits::ToPrimitive for BigDecimalRef
  • Added methods BigDecimal::{ToPlainString,WritePlainString}
  • Added Justfile to repo

v0.4.6

Compare Source

Changes
  • Fix error in formatting code that would skip "carrying the one" when rounding up series of nines, overflowing

  • Improved implementation of sqrt and cbrt

  • Uses consistent rounding implementations in formatting and arithmetic operations

  • Add new constructor methods BigDecimal::from_bigint & BigDecimal::from_biguint

v0.4.5

Compare Source

Changes
  • Remove restrictions on num-* dependencies.

    • num-traits and num-bigint need to be specified for users using Rust versions older than 1.60 (let me know if this should be continued to be supported)
  • Fix some bad assumptions when running in 32 bit mode.

    • Uses of as usize have been replaced with as u64

v0.4.4

Compare Source

Changes
  • Revert formatting semantics to match Rust's meanings rather than Python's
    • The meaning of the formatting string "{:.4}" has returned to "4 digits after decimal place" rather than "four digits of precision"
  • Add new compile-time parameters for safer formatting
    • Configurable thresholds prevent printing out full decimal form of large numbers, like 1e99999 (could be used in)
  • Improved JSON serialization / formatting routines

[!NOTE]
Please add your own tests to ensure this library formats (and continues to format) numbers as you expect

  • Added methods

    • BigDecimalRef::clone_into
    • BigDecimal::set_scale (mutable version of take_and_scale)
  • Optimized bigdecimal comparison algorithms

  • Restricted versions of num-* crates to respect Minimum Supported Rust Version (1.43)

    • I may raise this up soon

v0.4.3

Compare Source

Changes
  • Use exponential formatting (scientific-notation) if number of leading zeros is greater than 5
    • so 1234e-304 is formatted as 1.234e-301 rather than 0.00.....(300-zeros)....00123
    • Fixes "out of memory errors" when massive amounts of zeros would have been printed
  • Add methods for printing using scientific-notation & engineering-notation
  • Add derived Clone trait to ParseBigDecimalError
  • Preserve scale when adding zero
    • Mimics Python's Decimal behavior:
      >>> Decimal("1.2") + Decimal("0.00000")
      Decimal('1.20000')
  • Minor optimizations removing unnecessary clones in addition and multiplication

v0.4.2

Compare Source

Changes

  • Add Context struct

    • For user-controlled precision and rounding
    • Support for a few BigDecimal functions added (eg: sqrt_with_context(&self, ctx: &Context)) , more to come in future versions.
    • Note standard operations use default (compile-time-defined) context
  • Add BigDecimalRef struct

    • Non-owning BigDecimal struct that has some non-digit-changing methods (i.e. change sign/scale without copying digits) for more efficient calculations
    • Implements math operations Add,Sub
    • Implement From<&BigInt> for BigDecimalRef
  • Compile-time default rounding mode may be set by environment variable RUST_BIGDECIMAL_DEFAULT_ROUNDING_MODE

  • Fix issue recompiling if RUST_BIGDECIMAL_DEFAULT_PRECISION haddn't changed

  • Add BigDecimal::with_precision_round()

    • trim the bigdecimal after operations, rounding at given point
  • Add BigDecimal::fractional_digit_count()

    • Return's the bigdecimal's "scale", (number of digits right of the decimal point)
  • Support reading subnormal floating-point numbers

  • Improve initial "guess" in calculation of inverted value.

  • Fix panic in from_str_radix (#​115)

  • (internal) Reorganize std::ops implementations by moving each to separate functions (src/impl_ops_add.rs, src/impl_ops_sub.rs, etc)

Performance Improvements
  • BigDecimal::eq takes into account trailing zeros, avoids aligning digits
  • (internal) ten_to_the - used everywhere to align BigIntegers within BigDecimals, all operations with high precision numbers should be faster

v0.4.1

Compare Source

Changes

  • Fix issue where RUST_BIGDECIMAL_DEFAULT_PRECISION envar would always
    trigger a rebuild

  • Fix issue where .neg() could be called on {signed-int}::MIN values

  • Add implementations of Add/Sub/Mul/Div for primitive values

  • Use 'proptest' crate to improve arithmetic testing

v0.4.0

Compare Source

Changes

  • no_std feature support #​97

    • To disable std, change your Cargo.toml dependency to:
      bigdecimal = { version = "0.4", default-features = false }
    • Still depends on alloc (I think we will always need dynamic storage)
  • Allow user to set default max-precision at compile time

    • Use environment variable RUST_BIGDECIMAL_DEFAULT_PRECISION
    • Defaults to 100
    • This "is the number of 3s in calculation of 1/3"
    • Better solutions are being considered
      • This is tricky: Do we set a global variable? Do we require every math operation to specify precision? Do we store precision in each BigDecimal? Is that set from a global variable? Should we use macros to balance explicit precision and tidy code?
  • Add rounding module with RoundingMode enum

    • Used in new method: BigDecimal::with_scale_round
    • Finally, you can truncate your decimal with the rounding you prefer!
    • Will be coming to more methods, soon
  • Reimplement parsing from {32,64}-bit float values

    • Use binary bits instead of formatting to string and parsing
    • Already surprising users: #​103
  • Bump Minimum Supported Rust Version from 1.34 to 1.43

    • Was breaking a few test dependencies
    • Able to do more at compile time
    • Probably wont affect too many people?
  • Fix implementations of to_u128/to_i128 #​101

    • Default implementations cast values to 64 bit ints
  • Fix issue where underscores after the decimal counted towards total digit count (giving wrong exponent) #​99

  • Fix case of panic during rounding #​90

  • Add preliminary benchmarking code

    • Unsatisfied with statistics: more work to be done with Criterion
    • Eventually get some answers on how best to parse strings, and in what format should the digits be stored
  • Started using my crazy approach to unit testing

tokio-rs/bytes (bytes)

v1.11.0

Compare Source

Fixed
  • fix: BytesMut only reuse if src has remaining (#​803)
  • Specialize BytesMut::put::<Bytes> (#​793)
  • Reserve capacity in BytesMut::put (#​794)
  • Change BytesMut::remaining_mut to use isize::MAX instead of usize::MAX (#​795)
Internal changes
  • Guarantee address in slice() for empty slices. (#​780)
  • Rename Vtable::to_* -> Vtable::into_* (#​776)
  • Fix latest clippy warnings (#​787)
  • Ignore BytesMut::freeze doctest on wasm (#​790)
  • Move drop_fn of from_owner into vtable (#​801)

v1.10.1

Compare Source

Fixed
  • Fix memory leak when using to_vec with Bytes::from_owner (#​773)

v1.10.0

Compare Source

Added
  • Add feature to support platforms without atomic CAS (#​467)
  • try_get_* methods for Buf trait (#​753)
  • Implement Buf::chunks_vectored for Take (#​617)
  • Implement Buf::chunks_vectored for VecDeque<u8> (#​708)
Fixed
  • Remove incorrect guarantee for chunks_vectored (#​754)
  • Ensure that tests pass under panic=abort (#​749)

v1.9.0

Compare Source

Added
  • Add Bytes::from_owner to enable externally-allocated memory (#​742)
Documented
  • Fix typo in Buf::chunk() comment (#​744)
Internal changes
  • Replace BufMut::put with BufMut::put_slice in Writer impl (#​745)
  • Rename hex_impl! to fmt_impl! and reuse it for fmt::Debug (#​743)

v1.8.0

Compare Source

  • Guarantee address in split_off/split_to for empty slices (#​740)

v1.7.2

Compare Source

Fixed
  • Fix default impl of Buf::{get_int, get_int_le} (#​732)
Documented
  • Fix double spaces in comments and doc comments (#​731)
Internal changes
  • Ensure BytesMut::advance reduces capacity (#​728)

v1.7.1

Compare Source

This release reverts the following change due to a regression:

  • Reuse capacity when possible in <BytesMut as Buf>::advance impl (#​698)

The revert can be found at #​726.

v1.7.0

Compare Source

Added
  • Add conversion from Bytes to BytesMut (#​695, #​710)
  • Add reclaim method without additional allocation (#​686)
Documented
  • Clarify how BytesMut::zeroed works (#​714)
  • Clarify the behavior of Buf::chunk (#​717)
Changed
  • Change length condition of BytesMut::truncate
  • Reuse capacity when possible in <BytesMut as Buf>::advance impl (#​698)
  • Improve must_use suggestion of BytesMut::split (#​699)
Internal changes
  • Use ManuallyDrop instead of mem::forget (#​678)
  • Don't set len in BytesMut::reserve (#​682)
  • Optimize Bytes::copy_to_bytes (#​688)
  • Refactor BytesMut::truncate (#​694)
  • Refactor BytesMut::resize (#​696)
  • Reorder assertion in Bytes::split_to, Bytes::split_off (#​689, #​693)
  • Use offset_from in more places (#​705)
  • Correct the wrong usage of IntoIter (#​707)

v1.6.1

Compare Source

This release fixes a bug where Bytes::is_unique returns incorrect values when
the Bytes originates from a shared BytesMut. (#​718)

v1.6.0

Compare Source

Added
Documented
Internal changes
  • Move comment to correct constant (#​629)
  • Various cleanup (#​635)
  • Simplify UninitSlice::as_uninit_slice_mut() logic (#​644)
  • Use self. instead of Self:: (#​642)
  • BytesMut: Assert alignment of Shared (#​652)
  • Remove unnecessary namespace qualifier (#​660)
  • Remove an unnecessary else branch (#​662)
  • Remove unreachable else branch (#​661)
  • make parameter mut in From<Vec> (#​667)
  • Restore commented tests (#​665)
  • Use sub instead of offset (#​668)
  • Calculate original capacity only if necessary (#​666)
  • set_vec_pos does not need a second parameter (#​672)
  • get_vec_pos: use &self instead of &mut self (#​670)
  • Refactor split_at/split_to (#​663)
  • Use Iterator from the prelude (#​673)
  • copy_to_bytes: Add panic section to docs (#​676)
  • Remove redundant reserve call (#​674)
  • Use ManuallyDrop instead of mem::forget (#​675)
chronotope/chrono (chrono)

v0.4.42: 0.4.42

Compare Source

What's Changed

v0.4.41

Compare Source

What's Changed

v0.4.40: 0.4.40

Compare Source

What's Changed

v0.4.39: 0.4.39

Compare Source

What's Changed

v0.4.38

Compare Source

This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient days_since method for the Weekday type.

Chrono 0.4.38 also removes the long deprecated rustc-serialize feature. Support for rustc-serialize will be soft-destabilized in the next Rust edition. Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono.

In chrono 0.4.36 we made an accidental breaking change by switching to derive(Copy) for DateTime instead of a manual implementation. It is reverted in this release.

Removals

Additions

Fixes

  • Return error when rounding with a zero duration (#​1474, thanks @​Dav1dde)
  • Manually implement Copy for DateTime if offset is Copy (#​1573)

Internal

  • Inline test_encodable_json and test_decodable_json functions (#​1550)
  • CI: Reduce combinations in cargo hack check (#​1553)
  • Refactor formatting code (#​1335)
  • Optimize number formatting (#​1558)
  • Only package files needed for building and testing (#​1554)

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

v0.4.37

Compare Source

Version 0.4.36 introduced an unexpected breaking change and was yanked. In it LocalResult was renamed to MappedLocalTime to avoid the impression that it is a Result type were some of the results are errors. For backwards compatibility a type alias with the old name was added.

As it turns out there is one case where a type alias behaves differently from the regular enum: you can't import enum variants from a type alias with use chrono::LocalResult::*. With 0.4.37 we make the new name MappedLocalTime the alias, but keep using it in function signatures and the documentation as much as possible.

See also the release notes of chrono 0.4.36 from yesterday for the yanked release.

v0.4.36

Compare Source

This release un-deprecates the methods on TimeDelta that were deprecated with the 0.4.35 release because of the churn they are causing for the ecosystem.

New is the DateTime::with_time() method. As an example of when it is useful:

use chrono::{Local, NaiveTime};
// Today at 12:00:00
let today_noon = Local::now().with_time(NaiveTime::from_hms_opt(12, 0, 0).unwrap());

Additions

Deprecations

  • Revert TimeDelta deprecations (#​1543)
  • Deprecate TimeStamp::timestamp_subsec_nanos, which was missed in the 0.4.35 release (#​1486)

Documentation

  • Correct version number of deprecation notices (#​1486)
  • Fix some typos (#​1505)
  • Slightly improve serde documentation (#​1519)
  • Main documentation: simplify links and reflow text (#​1535)

Internal

  • CI: Lint benchmarks (#​1489)
  • Remove unnessary Copy and Send impls (#​1492, thanks @​erickt)
  • Backport streamlined NaiveDate unit tests (#​1500, thanks @​Zomtir)
  • Rename LocalResult to TzResolution, add alias (#​1501)
  • Update windows-bindgen to 0.55 (#​1504)
  • Avoid duplicate imports, which generate warnings on nightly (#​1507)
  • Add extra debug assertions to NaiveDate::from_yof (#​1518)
  • Some small simplifications to DateTime::date_naive and NaiveDate::diff_months (#​1530)
  • Remove unwrap in Unix Local type (#​1533)
  • Use different method to ignore feature-dependent doctests (#​1534)

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

v0.4.35

Compare Source

Most of our efforts have shifted to improving the API for a 0.5 release, for which cleanups and refactorings are landing on the 0.4.x branch.

The most significant changes in this release are two sets of deprecations.

  • We deprecated all timestamp-related methods on NaiveDateTime. The reason is that a timestamp is defined to be in UTC. The NaiveDateTime type doesn't know the offset from UTC, so it was technically wrong to have these methods. The alternative is to use the similar methods on the DateTime<Utc> type, or from the TimeZone trait.

    Converting from NaiveDateTime to DateTime<Utc> is simple with .and_utc(), and in the other direction with .naive_utc().

  • The panicking constructors of TimeDelta (the new name of the Duration type) are deprecated. This was the last part of chrono that defaulted to panicking on error, dating from before rust 1.0.

  • A nice change is that NaiveDate now includes a niche. So now Option<NaiveDate>, Option<NaiveDateTime> and Option<DateTime<Tz>> are the same size as their base types.

  • format::Numeric and format::Fixed are marked as non_exhaustive. This will allow us to improve our formatting and parsing support, and we have reason to believe this breaking change will have little to no impact on users.

Additions

  • Add DateTime::{from_timestamp_micros, from_timestamp_nanos} (#​1234)
  • Add getters to Parsed (#​1465)

Deprecations

  • Deprecate timestamp methods on NaiveDateTime (#​1473)
  • Deprecate panicking constructors of TimeDelta (#​1450)

Changes/fixes

  • Use NonZeroI32 inside NaiveDate (#​1207)
  • Mark format::Numeric and format::Fixed as non_exhaustive (#​1430)
  • Parsed fixes to error values (#​1439)
  • Use overflowing_naive_local in DateTime::checked_add* (#​1333)
  • Do complete range checks in Parsed::set_* (#​1465)

Documentation

Internal

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

v0.4.34

Compare Source

Notable changes

  • In chrono 0.4.34 we finished the work to make all methods const where doing so is supported by rust 1.61.
  • We renamed the Duration type to TimeDelta. This removes the confusion between chrono's type and the later Duration type in the standard library. It will remain available under the old name as a type alias for compatibility.
  • The Windows implementation of Local is rewritten. The new version avoids panics when the date is outside of the range supported by windows (the years 1601 to 30828), and gives more accurate results during DST transitions.
  • The Display format of TimeDelta is modified to conform better to ISO 8601. Previously it converted all values greater than 24 hours to a value with days. This is not correct, as doing so changes the duration from an 'accurate' to a 'nominal' representation to use ISO 8601 terms.

Fixes

Additions

Changes

  • Rename Duration to TimeDelta, add type alias (#​1406)
  • Make TimeDelta methods const (#​1337)
  • Make remaining methods of NaiveDate, NaiveWeek, NaiveTime and NaiveDateTime const where possible (#​1337)
  • Make methods on DateTime const where possible (#​1400)
  • Make Display format of TimeDelta conform better to ISO 8601 (#​1328)

Documentation

Internal

  • Switch branch names: 0.4.x releases are the main branch, work on 0.5 happens in the 0.5.x branch (#​1390, #​1402).
  • Don't use deprecated method in impl Arbitrary for DateTime and set up CI test (#​1336)
  • Remove workaround for Rust < 1.61 (#​1393)
  • Bump codecov/codecov-action from 3 to 4 (#​1404)
  • Remove partial support for handling -0000 offset (#​1411)
  • Move TOO_LONG error out of parse_internal (#​1419)

Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

v0.4.33

Compare Source

This release fixes the broken docrs.rs build of chrono 0.4.32.

What's Changed


Configuration

📅 Schedule: Branch creation - "before 10am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Author

renovate bot commented Nov 22, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path schemars/Cargo.toml --package [email protected] --precise 0.4.9
error: package ID specification `[email protected]` did not match any packages
help: there are similar package ID specifications:

  [email protected]

@renovate renovate bot force-pushed the renovate/rust-crates branch from 89334f0 to f6b3cb2 Compare November 23, 2025 08:04
@renovate renovate bot force-pushed the renovate/rust-crates branch from f6b3cb2 to c2d8ffd Compare November 23, 2025 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant