chore(deps): update all dependencies #34
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.0.75
->1.0.81
0.4.28
->0.4.37
4.4.1
->4.5.4
1.2.0
->2.2.0
0.6.2
->0.6.6
1.9.4
->1.10.4
0.11.20
->0.12.3
1.0.18
->1.0.22
0.9.25
->0.9.34+deprecated
0.3.17
->0.3.18
2.4.1
->2.5.0
Release Notes
dtolnay/anyhow
v1.0.81
Compare Source
v1.0.80
Compare Source
v1.0.79
Compare Source
v1.0.78
Compare Source
v1.0.77
Compare Source
anyhow::Error::backtrace
available on stable Rust compilers 1.65+ (#293, thanks @LukasKalbertodt)v1.0.76
Compare Source
unsafe_op_in_unsafe_fn
lint (#329)chronotope/chrono
v0.4.37
Compare Source
Version 0.4.36 introduced an unexpected breaking change and was yanked. In it
LocalResult
was renamed toMappedLocalTime
to avoid the impression that it is aResult
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 nameMappedLocalTime
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:Additions
DateTime::with_time()
(#1510)Deprecations
TimeDelta
deprecations (#1543)TimeStamp::timestamp_subsec_nanos
, which was missed in the 0.4.35 release (#1486)Documentation
Internal
Copy
andSend
impls (#1492, thanks @erickt)NaiveDate
unit tests (#1500, thanks @Zomtir)LocalResult
toTzResolution
, add alias (#1501)NaiveDate::from_yof
(#1518)DateTime::date_naive
andNaiveDate::diff_months
(#1530)unwrap
in UnixLocal
type (#1533)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. TheNaiveDateTime
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 theDateTime<Utc>
type, or from theTimeZone
trait.Converting from
NaiveDateTime
toDateTime<Utc>
is simple with.and_utc()
, and in the other direction with.naive_utc()
.The panicking constructors of
TimeDelta
(the new name of theDuration
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 nowOption<NaiveDate>
,Option<NaiveDateTime>
andOption<DateTime<Tz>>
are the same size as their base types.format::Numeric
andformat::Fixed
are marked asnon_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
DateTime::{from_timestamp_micros, from_timestamp_nanos}
(#1234)Parsed
(#1465)Deprecations
NaiveDateTime
(#1473)TimeDelta
(#1450)Changes/fixes
NonZeroI32
insideNaiveDate
(#1207)format::Numeric
andformat::Fixed
asnon_exhaustive
(#1430)Parsed
fixes to error values (#1439)overflowing_naive_local
inDateTime::checked_add*
(#1333)Parsed::set_*
(#1465)Documentation
Parsed
(#1439)Internal
internals
module (#1428, #1429, #1431, #1432, #1433, #1438)x86_64-unknown-illumos
instead of Solaris (#1437)cargo hack check
on Linux (#1442)parse_internal
(#1459)SerdeError
(#1458)NaiveDate::from_isoywd
a bit (#1464)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.34
Compare Source
Notable changes
Duration
type toTimeDelta
. This removes the confusion between chrono's type and the laterDuration
type in the standard library. It will remain available under the old name as a type alias for compatibility.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.Display
format ofTimeDelta
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
TimeDelta::milliseconds
(#1385, thanks @danwilliams)DurationExceedsTimestamp
inDurationRound
(#1403, thanks @joroKr21)%X
(https://github.com/chronotope/pure-rust-locales/pull/12, #1420)GetTimeZoneInformationForYear
(#1017)Additions
TimeDelta::try_milliseconds
(#1385, thanks @danwilliams)TimeDelta::new
(#1337)StrftimeItems::{parse, parse_to_owned}
and more documentation (#1184)format::Locale
(via https://github.com/chronotope/pure-rust-locales/pull/8)Changes
Duration
toTimeDelta
, add type alias (#1406)TimeDelta
methods const (#1337)NaiveDate
,NaiveWeek
,NaiveTime
andNaiveDateTime
const where possible (#1337)DateTime
const where possible (#1400)Display
format ofTimeDelta
conform better to ISO 8601 (#1328)Documentation
timestamp_micros
's Example doc (#1338 via #1386, thanks @emikitas)TimeDelta
constructors (#1385, thanks @danwilliams)Internal
main
branch, work on 0.5 happens in the0.5.x
branch (#1390, #1402).impl Arbitrary for DateTime
and set up CI test (#1336)codecov/codecov-action
from 3 to 4 (#1404)-0000
offset (#1411)TOO_LONG
error out ofparse_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
rkyv
feature implysize_32
(#1383)Duration::hours()
exception (#1384, thanks @danwilliams)v0.4.32
Compare Source
In this release we shipped part of the effort to reduce the number of methods that could unexpectedly panic, notably for the
DateTime
andDuration
types.Chrono internally stores the value of a
DateTime
in UTC, and transparently converts it to the local value as required. For example adding a second to aDateTime
needs to be done in UTC to get the correct result, but adding a day needs to be done in local time to be correct. What happens when the value is near the edge of the representable range, and the implicit conversions pushes it beyond the representable range? Many methods could panic on such inputs, including formatting the value forDebug
output.In chrono 0.4.32 the range of
NaiveDate
,NaiveDateTime
andDateTime
is made slightly smaller. This allows us to always do the implicit conversion, and in many cases return the expected result. Specifically the range is now from January 1, -262144 until December 31, 262143, one year less on both sides than before. We expect this may trip up tests if you hardcoded theMIN
andMAX
dates.Duration
had a similar issue. The range of this type was pretty arbitrary picked to match the range of ani64
in milliseconds. Negating ani64::MIN
pushes a value out of range, and in the same way negatingDuration::MIN
could push it out of our defined range and cause a panic. This turns out to be somewhat common and hidden behind many layers of abstraction. We adjusted the type to have a minimum value of-Duration::MAX
instead and prevent the panic case.Other highlights:
Duration
gained new fallible initialization methods.rkyv
.NaiveDateTime
are now const.DateTime
const in a future release.Complete list of changes:
Fixes
TimeZone::from_local_datetime
(#1071)DateTime
getters and setters (#1317, #1329)Additions
NaiveDateTime::checked_(add|sub)_offset
(#1313)DateTime::to_utc
(#1325)Default
forDuration
(#1327)Duration::subsec_nanos
(#1327)try_*
builders toDuration
(#1327)AddAssign
andSubAssign
forDuration
(#1327)NaiveDateTime
const where possible (#1286)clock
feature intoclock
andnow
(#1343, thanks @mmastrac)From<NaiveDate>
forNaiveDateTime
(#1355, thanks @dcechano)NaiveDateTime::from_timestamp_nanos
(#1357, thanks @Ali-Mirghasemi)Months::num_months()
andnum_years()
(#1373, thanks @danwilliams)DateTime<Utc>::from_timestamp_millis
(#1374, thanks @xmakro)Changes
Duration::MIN.abs()
(adjustDuration::MIN
by 1 millisecond) (#1334)Deprecations
format
functions (#1306)Documentation
doc_auto_cfg
(#1305, #1326)Add
/Sub
impls and useexpect
(#1316)TimeZone::datetime_from_str
(#1342, thanks @tmccombs)Datelike
impl forDateTime
(#1376, thanks @ElectrifyPro)Rkyv support
Archived*
types inrkyv
module (#1304)Archived*
types (#1271, thanks @Awpteamoose)Changes to unstable features
unstable-locales
imply thealloc
feature (#1307)format::{format_localized, format_item_localized}
(#1311)write_rfc2822_inner
, don't localize (#1322)Internal
DateTime::with_*
(#1309)*_DAYS_FROM_YEAR_0
calculation (#1312)NaiveTime::overflowing_(add|sub)_offset
(#1310)DateTime::overflowing_(add|sub)_offset
(#1069)set env LC_ALL
(#1315, thanks @jtmoon79)deny.toml
(#1320)with: node-version
(#1352, thanks @jtmoon79)toml
job (#1371, thanks @gibbz00)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.31
Compare Source
Another maintenance release.
It was not a planned effort to improve our support for UNIX timestamps, yet most PRs seem related to this.
Deprecations
timestamp_nanos
in favor of the non-panickingtimestamp_nanos_opt
(#1275)Additions
DateTime::<Utc>::from_timestamp
(#1279, thanks @demurgos)TimeZone::timestamp_micros
(#1285, thanks @emikitas)DateTime<Tz>::timestamp_nanos_opt
andNaiveDateTime::timestamp_nanos_opt
(#1275)UNIX_EPOCH
constants (#1291)Fixes
This makes many methods a little more strict:
NaiveTime::from_hms_milli
NaiveTime::from_hms_milli_opt
NaiveTime::from_hms_micro
NaiveTime::from_hms_micro_opt
NaiveTime::from_hms_nano
NaiveTime::from_hms_nano_opt
NaiveTime::from_num_seconds_from_midnight
NaiveTime::from_num_seconds_from_midnight_opt
NaiveDate::and_hms_milli
NaiveDate::and_hms_milli_opt
NaiveDate::and_hms_micro
NaiveDate::and_hms_micro_opt
NaiveDate::and_hms_nano
NaiveDate::and_hms_nano_opt
NaiveDateTime::from_timestamp
NaiveDateTime::from_timestamp_opt
TimeZone::timestamp
TimeZone::timestamp_opt
NaiveDateTime::timestamp_nanos_opt
(#1294, thanks @crepererum)Documentation
Internal
__doctest
feature anddoc_comment
dependency (#1276)actions/checkout
from 3 to 4 (#1280)NaiveDate::add_days
for small values (#1214)pure-rust-locales
to 0.7.0 (#1288, thanks @jeremija wo did good improvements onpure-rust-locales
)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.30
Compare Source
In this release, we have decided to swap out the
chrono::Duration
type (which has been a re-export of time 0.1Duration
type) with our own definition, which exposes a strict superset of thetime::Duration
API. This helps avoid warnings about the CVE-2020-26235 and RUSTSEC-2020-0071 advisories for downstream users and allows us to improve theDuration
API going forward.While this is technically a SemVer-breaking change, we expect the risk of downstream users experiencing actual incompatibility to be exceedingly limited (see our analysis of public code using a crater-like experiment), and not enough justification for the large ecosystem churn of a 0.5 release. If you have any feedback on these changes, please let us know in #1268.
Additions
NaiveDate::leap_year
(#1261)Documentation
Timelike::num_seconds_from_midnight
is a simple mapping (#1255)Relation between chrono and time 0.1
Rust first had a
time
module added tostd
in its 0.7 release. It later moved tolibextra
, and then to alibtime
library shipped alongside the standard library. In 2014 work on chrono started in order to provide a full-featured date and time library in Rust. Some improvements from chrono made it into the standard library; notably,chrono::Duration
was included asstd::time::Duration
(rust#15934) in 2014.In preparation of Rust 1.0 at the end of 2014
libtime
was moved out of the Rust distro and into thetime
crate to eventually be redesigned (rust#18832, rust#18858), like thenum
andrand
crates. Of course chrono kept its dependency on thistime
crate.time
started re-exportingstd::time::Duration
during this period. Later, the standard library was changed to have a more limited unsignedDuration
type (rust#24920, RFC 1040), while thetime
crate kept the full functionality withtime::Duration
.time::Duration
had been a part of chrono's public API.By 2016
time
0.1 lived under therust-lang-deprecated
organisation and was not actively maintained (time#136). chrono absorbed the platform functionality andDuration
type of thetime
crate in chrono#478 (the work started in chrono#286). In order to preserve compatibility with downstream crates depending ontime
andchrono
sharing aDuration
type, chrono kept depending on time 0.1. chrono offered the option to opt out of thetime
dependency by disabling theoldtime
feature (swapping it out for an effectively similar chrono type). In 2019, @jhpratt took over maintenance on thetime
crate and released what amounts to a new crate astime
0.2.Security advisories
In November of 2020 CVE-2020-26235 and RUSTSEC-2020-0071 were opened against the
time
crate. @quininer had found that calls tolocaltime_r
may be unsound (chrono#499). Eventually, almost a year later, this was also made into a security advisory against chrono as RUSTSEC-2020-0159, which had platform code similar totime
.On Unix-like systems a process is given a timezone id or description via the
TZ
environment variable. We need this timezone data to calculate the current local time from a value that is in UTC, such as the time from the system clock.time
0.1 and chrono used the POSIX functionlocaltime_r
to do the conversion to local time, which reads theTZ
variable.Rust assumes the environment to be writable and uses locks to access it from multiple threads. Some other programming languages and libraries use similar locking strategies, but these are typically not shared across languages. More importantly, POSIX declares modifying the environment in a multi-threaded process as unsafe, and
getenv
in libc can't be changed to take a lock because it returns a pointer to the data (see rust#27970 for more discussion).Since version 4.20 chrono no longer uses
localtime_r
, instead using Rust code to query the timezone (from theTZ
variable or viaiana-time-zone
as a fallback) and work with data from the system timezone database directly. The code for this was forked from the tz-rs crate by @x-hgg-x. As such, chrono now respects the Rust lock when reading theTZ
environment variable. In general, code should avoid modifying the environment.Removing time 0.1
Because time 0.1 has been unmaintained for years, however, the security advisory mentioned above has not been addressed. While chrono maintainers were careful not to break backwards compatibility with the
time::Duration
type, there has been a long stream of issues from users inquiring about the time 0.1 dependency with the vulnerability. We investigated the potential breakage of removing the time 0.1 dependency in chrono#1095 using a crater-like experiment and determined that the potential for breaking (public) dependencies is very low. We reached out to those few crates that did still depend on compatibility with time 0.1.As such, for chrono 0.4.30 we have decided to swap out the time 0.1
Duration
implementation for a local one that will offer a strict superset of the existing API going forward. This will prevent most downstream users from being affected by the security vulnerability in time 0.1 while minimizing the ecosystem impact of semver-incompatible version churn.Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.29
Compare Source
This release fixes a panic introduced in chrono 0.4.27 in
FromStr<DateTime<Utc>>
(#1253).Chrono now has a Discord channel.
Fixes
parse_rfc3339_relaxed
(#1254)Deprecations
TimeZone::datetime_from_str
(#1251)Documentation
FromStr
forWeekday
andMonth
(#1226, thanks @wfraser)Internal improvements
i686
andwasm32-wasi
(#1237)This allows us to upgrade the criterion dependency to 5.1 without changing our MSRV.
Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
clap-rs/clap
v4.5.4
Compare Source
Fixes
#[arg(id)]
attributes againv4.5.3
Compare Source
Internal
heck
v4.5.2
Compare Source
Fixes
v4.5.1
Compare Source
Fixes
--
even if there is a "did you mean" so long aslast
ortrailing_var_arg
is usedv4.5.0
Compare Source
Compatibility
v4.4.18
Compare Source
Fixes
usage
feature, ensure the list of required arguments is uniquev4.4.17
Compare Source
Fixes
panic!
when mixingargs_conflicts_with_subcommands
withArgGroup
(which is implicit withderive
) introduced in 4.4.15v4.4.16
Compare Source
Fixes
v4.4.15
Compare Source
Fixes
args_conflicts_with_subcommands
args_conflicts_with_subcommands
when using subcommand short and long flagsv4.4.14
Compare Source
Documentation
find
cookbook entry to allow repeats of flags/optionsFeatures
num_args(0)
on options which allows making them emulate being a flag for position-tracking flagsv4.4.13
Compare Source
Documentation
v4.4.12
Compare Source
Performance
TypedValueParser
for possible values if neededv4.4.11
Compare Source
Features
Command::mut_group
v4.4.10
Compare Source
Documentation
v4.4.9
Compare Source
Fixes
Command::about
under flattened headingshide
when flattening subcommandsv4.4.8
Compare Source
Features
Command::flatten_help
to allowgit stash -h
like help for subcommandsv4.4.7
Compare Source
Performance
v4.4.6
Compare Source
Internal
anstream
v4.4.5
Compare Source
Fixes
name
orlong_flag
, allow ambiguous-looking matches that unambiguously map back to the same commandlong_flag
, don't panicv4.4.4
Compare Source
Internal
terminal_size
to 0.3v4.4.3
Compare Source
Documentation
v4.4.2
Compare Source
Performance
once_cell
dependencyorhun/git-cliff
v2.2.0
Compare Source
⛰️ Features
🐛 Bug Fixes
yarn npm publish
(#574) - (5a0ce6a)📚 Documentation
--include-path
(#567) - (4a7aa7e)⚙️ Miscellaneous Tasks
v2.1.2
Compare Source
⛰️ Features
--tag-pattern
argument (#526) - (b4e7a34)🐛 Bug Fixes
🚜 Refactor
📚 Documentation
🎨 Styling
⚙️ Miscellaneous Tasks
v2.1.1
Compare Source
v2.1.0
Compare Source
v2.0.4
Compare Source
⛰️ Features
🐛 Bug Fixes
📚 Documentation
⚙️ Miscellaneous Tasks
v2.0.3
Compare Source
git-cliff
now supports integration with GitHub repositories! 🚀✨ Read the highlights of this release: https://git-cliff.org/blog/2.0.0
2.0.3 - 2024-02-21
⛰️ Features
⚙️ Miscellaneous Tasks
v2.0.2
Compare Source
📚 Documentation
v2.0.1
Compare Source
⚙️ Miscellaneous Tasks
v2.0.0
Compare Source
⛰️ Features
--no-exec
flag for skipping command execution (#458) - (7ae77ff)-x
short argument for--context
- (327512a)CHANGELOG.md
as default missing value for output option (#354) - (04d149e).cliffignore
and--skip-commit
(#413) - (faa00c6)--bump
(#347) - (2399e57)0.0.1
via--bump
if no tags exist - (3291eb9)🐛 Bug Fixes
🚜 Refactor
--bump
for processed releases (#408) - (89e4c72)📚 Documentation
🎨 Styling
🧪 Testing
⚙️ Miscellaneous Tasks
◀️ Revert
v1.4.0
Compare Source
⛰️ Features
--bump
(#309) - (bcfcd1f)📚 Documentation
⚙️ Miscellaneous Tasks
v1.3.1
Compare Source
⛰️ Features
🐛 Bug Fixes
🚜 Refactor
📚 Documentation
⚙️ Miscellaneous Tasks
◀️ Revert
v1.3.0
Compare Source
⛰️ Features
🐛 Bug Fixes
🚜 Refactor
📚 Documentation
🎨 Styling
🧪 Testing
docs:
prefix (#167) - (3a717e2)⚙️ Miscellaneous Tasks
git-cliff
on PyPI (#158) - (2b7a1ef)taiki-e/parse-changelog
v0.6.6
Compare Source
Remove dependency on
once_cell
.Note: This raises the minimum supported Rust version of this crate from Rust 1.65 to Rust 1.70.
v0.6.5
Compare Source
#[must_use]
toParser::new
andError::is_*
.v0.6.4
Compare Source
v0.6.3
Compare Source
rust-lang/regex
v1.10.4
Compare Source
v1.10.3
Compare Source
===================
This is a new patch release that fixes the feature configuration of optional
dependencies, and fixes an unsound use of bounds check elision.
Bug fixes:
Set
default-features=false
for thememchr
andaho-corasick
dependencies.Fix unsound bounds check elision.
v1.10.2
Compare Source
===================
This is a new patch release that fixes a search regression where incorrect
matches could be reported.
Bug fixes:
Revert broadening of reverse suffix literal optimization introduced in 1.10.1.
v1.10.1
Compare Source
===================
This is a new patch release with a minor increase in the number of valid
patterns and a broadening of some literal optimizations.
New features:
Loosen ASCII-compatible rules such that regexes like
(?-u:☃)
are now allowed.Performance improvements:
Broader the reverse suffix optimization to apply in more cases.
v1.10.0
Compare Source
===================
This is a new minor release of
regex
that adds support for start and endword boundary assertions. That is,
\<
and\>
. The minimum supported Rustversion has also been raised to 1.65, which was released about one year ago.
The new word boundary assertions are:
\<
or\b{start}
: a Unicode start-of-word boundary (\W|\A
on the left,\w
on the right).\>
or\b{end}
: a Unicode end-of-word boundary (\w
on the left,\W|\z
on the right)).
\b{start-half}
: half of a Unicode start-of-word boundary (\W|\A
on theleft).
\b{end-half}
: half of a Unicode end-of-word boundary (\W|\z
on theright).
The
\<
and\>
are GNU extensions to POSIX regexes. They have been addedto the
regex
crate because they enjoy somewhat broad support in other regexengines as well (for example, vim). The
\b{start}
and\b{end}
assertionsare aliases for
\<
and\>
, respectively.The
\b{start-half}
and\b{end-half}
assertions are not found in anyother regex engine (although regex engines with general look-around support
can certainly express them). They were added principally to support the
implementation of word matching in grep programs, where one generally wants to
be a bit more flexible in what is considered a word boundary.
New features:
Add support for
\<
and\>
word boundary assertions.DFAs now have a
start_state
method that doesn't use anInput
.Performance improvements:
Unicode character class operations have been optimized in
regex-syntax
.Make patterns containing lots of literal characters use less memory.
Bug fixes:
Fix a bug that could result in incorrect match spans when using a Unicode word
boundary and searching non-ASCII strings.
Fix panics that can occur in
Ast->Hir
translation (not reachable fromregex
crate).
Remove guarantees in the API that connect the
u
flag with a specific HIRrepresentation.
regex-automata
breaking change release:This release includes a
regex-automata 0.4.0
breaking change release, whichwas necessary in order to support the new word boundary assertions. For
example, the
Look
enum has new variants and theLookSet
type now usesu32
instead of
u16
to represent a bitset of look-around assertions. These areoverall very minor changes, and most users of
regex-automata
should be ableto move to
0.4
from0.3
without any changes at all.regex-syntax
breaking change release:This release also includes a
regex-syntax 0.8.0
breaking change release,which, like
regex-automata
, was necessary in order to support the new wordboundary assertions. This release also includes some changes to the
Ast
type to reduce heap usage in some cases. If you are using the
Ast
typedirectly, your code may require some minor modifications. Otherwise, users of
regex-syntax 0.7
should be able to migrate to0.8
without any code changes.regex-lite
release:The
regex-lite 0.1.1
release contains support for the new word boundaryassertions. There are no breaking changes.
v1.9.6
Compare Source
==================
This is a patch release that fixes a panic that can occur when the default
regex size limit is increased to a large number.
Fix a bug where computing the maximum haystack length for the bounded
backtracker could result underflow and thus provoke a panic later in a search
due to a broken invariant.
v1.9.5
Compare Source
==================
This is a patch release that hopefully mostly fixes a performance bug that
occurs when sharing a regex across multiple threads.
Issue #934
explains this in more detail. It is also noted in the crate
documentation.
The bug can appear when sharing a regex across multiple threads simultaneously,
as might be the case when using a regex from a
OnceLock
,lazy_static
orsimilar primitive. Usually high contention only results when using many threads
to execute searches on small haystacks.
One can avoid the contention problem entirely through one of two methods.
The first is to use lower level APIs from
regex-automata
that require passingstate explicitly, such as
meta::Regex::search_with
.The second is to clone a regex and send it to other threads explicitly. This
will not use any additional memory usage compared to sharing the regex. The
only downside of this approach is that it may be less convenient, for example,
it won't work with things like
OnceLock
orlazy_static
oronce_cell
.With that said, as of this release, the contention performance problems have
been greatly reduced. This was achieved by changing the free-list so that it
was sharded across threads, and that ensuring each sharded mutex occupies a
single cache line to mitigate false sharing. So while contention may still
impact performance in some cases, it should be a lot better now.
Because of the changes to how the free-list works, please report any issues you
find with this release. That not only includes search time regressions but also
significant regressions in memory usage. Reporting improvements is also welcome
as well! If possible, provide a reproduction.
Bug fixes:
Fix a performance bug where high contention on a single regex led to massive
slow downs.
seanmonstar/reqwest
v0.12.3
Compare Source
FromStr
fordns::Name
.ClientBuilder::built_in_webpki_certs(bool)
to enable them separately.ClientBuilder::built_in_native_certs(bool)
to enable them separately.content-length: 0
for GET requests.content_length()
to return value when timeout is configured.ClientBuilder::resolve()
to use lowercase domain names.v0.12.2
Compare Source
v0.12.1
Compare Source
ClientBuilder::interface()
when no TLS is enabled.TlsInfo::peer_certificate()
being truncated with rustls.http2
feature disabled but TLS negotiated h2 in ALPN.Display
forError
to not include its source error.v0.12.0
Compare Source
hyper
,http
, andhttp-body
v1.http::Request
andhttp::Response
.http2
optional cargo feature, default on.charset
optional cargo feature, default on.macos-system-configuration
cargo feature, default on.ClientBuilder::interface(str)
to specify the local interface to bind to.http3
feature temporarily.v0.11.27
hickory-dns
feature, deprecatingtrust-dns
.Form::text()
to not set octet-stream for plain text fields.v0.11.26
system-configuration
upgrade, which broke MSRV on macOS.v0.11.25
Certificate::from_pem_bundle()
parsing.v0.11.24
Certificate::from_pem_bundle()
to add a bundle.http3_prior_knowledge()
to blocking client builder.Sync
bounds requirement forBody::wrap_stream()
.REFUSED_STREAM
requests.Url
toUri
that could panic.v0.11.23
Proxy::custom_http_auth(val)
for setting the rawProxy-Authorization
header when connecting to proxies.http://
orhttps://
.nodelay
when TLS is enabled but URL is HTTP.ClientBuilder::user_agent(val)
.multipart::Form::headers(headers)
.v0.11.22
trust-dns
is enabled.v0.11.21
ClientBuilder::tls_info(bool)
, which will puttls::TlsInfo
into the response extensions.v0.11.20
deflate
decompression back to using zlib, as outlined in the spec.v0.11.19
ClientBuilder::http1_ignore_invalid_headers_in_responses()
option.ClientBuilder::http1_allow_spaces_after_header_name_in_responses()
option.ALL_PROXY
environment variable.use_preconfigured_tls
when combined with HTTP/3.deflate
decompression from using the zlib decoder.Response::{text, text_with_charset}()
to strip BOM characters.v0.11.18
RequestBuilder::json()
method from overriding a previously setcontent-type
header. An existing value will be left in place.v0.11.17
v0.11.16
Cargo.toml
.v0.11.15
RequestBuilder
methods to split and reconstruct from its parts.connection_verbose
to logwrite_vectored
calls.v0.11.14
Proxy::no_proxy(url)
that works like the NO_PROXY environment variable.multipart::Part::headers(headers)
method to add custom headers.Response::bytes_stream()
.v0.11.13
ClientBuilder::dns_resolver()
option for custom DNS resolvers.ClientBuilder::tls_sni(bool)
option to enable or disable TLS Server Name Indication.Identity::from_pkcs8_pem()
constructor when usingnative-tls
.redirect::Policy::limited(0)
from following any redirects.v0.11.12
ClientBuilder::resolve_to_addrs()
which allows a slice of IP addresses to be specified for a single host.Response::upgrade()
to await whether the server agrees to an HTTP upgrade.v0.11.11
ClientBuilder
.ClientBuilder::http1_allow_obsolete_multiline_headers_in_responses()
.impl Service<Request>
forClient
and&'_ Client
.RequestBuilder::basic_auth()
.RequestBuilder::header
to not overridesensitive
if user explicitly set on aHeaderValue
.v0.11.10
Error::url()
to access the URL of an error.Response::extensions()
to access thehttp::Extensions
of a response.rustls-native-certs
to log an error instead of panicking when loading an invalid system certificate.v0.11.9
ClientBuilder::http09_responses(bool)
option to allow receiving HTTP/0.9 responses.v0.11.8
v0.11.7
blocking::ClientBuilder::resolve()
option, matching the async builder.From<tokio::fs::File>
forBody
.blocking
request-scoped timeout applying to bodies as well.rustls
to 0.20.v0.11.6
v0.11.5
ClientBuilder::http1_only()
method.tls::Version
type, andClientBuilder::min_tls_version()
andClientBuilder::max_tls_version()
methods.TryFrom<Request>
forhttp::Request
.Clone
forIdentity
.NO_PROXY
environment variable parsing to more closely match curl's. Comma-separated entries are now trimmed for whitespace, and*
is allowed to match everything.https_only
option.Body::as_bytes()
method.JsValue
.v0.11.4
ClientBuilder::resolve()
option to override DNS resolution for specific domains.native-tls-alpn
Cargo feature to use ALPN with the native-tls backend.ClientBuilder::deflate()
option anddeflate
Cargo feature to support decoding response bodies using deflate.RequestBuilder::version()
to allow setting the HTTP version of a request.rustls-tls
backend, when the server uses TLS v1.2 or v1.3.try_clone
toRequest
andRequestBuilder
v0.11.3
impl From<hyper::Body> for reqwest::Body
.RequestBuilder
.v0.11.2
CookieStore
trait to customize the type that stores and retrieves cookies for a session.cookie::Jar
as a defaultCookieStore
, easing creating some session cookies before creating theClient
.ClientBuilder::http2_adaptive_window()
option to configure an adaptive HTTP2 flow control behavior.ClientBuilder::http2_max_frame_size()
option to adjust the maximum HTTP2 frame size that can be received.IntoUrl
forString
, making it more convenient to create requests withformat!
.v0.11.1
ClientBuilder::tls_built_in_root_certs()
option to disable built-in root certificates.rustls-tls
glue to more often support ALPN to upgrade to HTTP/2.http://
if no scheme is found.runtime
feature.Request::new()
constructor.v0.11.27
Compare Source
hickory-dns
feature, deprecatingtrust-dns
.Form::text()
to not set octet-stream for plain text fields.v0.11.26
Compare Source
system-configuration
upgrade, which broke MSRV on macOS.v0.11.25
Compare Source
Certificate::from_pem_bundle()
parsing.v0.11.24
Compare Source
Certificate::from_pem_bundle()
to add a bundle.http3_prior_knowledge()
to blocking client builder.Sync
bounds requirement forBody::wrap_stream()
.REFUSED_STREAM
requests.Url
toUri
that could panic.v0.11.23
Compare Source
Proxy::custom_http_auth(val)
for setting the rawProxy-Authorization
header when connecting to proxies.http://
orhttps://
.nodelay
when TLS is enabled but URL is HTTP.ClientBuilder::user_agent(val)
.multipart::Form::headers(headers)
.v0.11.22
Compare Source
trust-dns
is enabled.v0.11.21
Compare Source
ClientBuilder::tls_info(bool)
, which will puttls::TlsInfo
into the response extensions.dtolnay/semver
v1.0.22
Compare Source
v1.0.21
Compare Source
v1.0.20
Compare Source
v1.0.19
Compare Source
dtolnay/serde-yaml
v0.9.34+deprecated
Compare Source
v0.9.33
Compare Source
v0.9.32
Compare Source
v0.9.31
Compare Source
swap_remove
andshift_remove
methods on Mapping (#408)v0.9.30
Compare Source
v0.9.29
Compare Source
deny(unsafe_op_in_unsafe_fn)
lintv0.9.28
Compare Source
unsafe-libyaml
dependency to pull in unaligned write fixv0.9.27
Compare Source
v0.9.26
Compare Source
.nan
is deserialized as a positive NaN (#392, #393)tokio-rs/tracing
v0.3.18
: tracing-subscriber 0.3.18Compare Source
This release of
tracing-subscriber
adds support for the [NO_COLOR
][NO_COLOR] environmentvariable (an informal standard to disable emitting ANSI color escape codes) in
fmt::Layer
, reintroduces support for the [chrono
][chrono] crate, and increases theminimum supported Rust version (MSRV) to Rust 1.63.0.
It also introduces several minor API improvements.
Added
chrono
][chrono] implementations ofFormatTime
(#2690)NO_COLOR
][NO_COLOR] environment variable infmt::Layer
(#2647)format::Writer::new()
public (#2680)layer::Filter
forOption<Filter>
(#2407)Changed
tracing-log
to 0.2 (#2772)Thanks to @shayne-fletcher, @dmlary, @kaifastromai, and @jsgf for contributing!
servo/rust-url
v2.5.0
Compare Source
What's Changed
Position
docs by @sprocklem in https://github.com/servo/rust-url/pull/875New Contributors
Full Changelog: https://github.com/servo/rust-url/compare/v2.4.1...v2.5.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
chore(deps): update rust crate git-cliff-core to 1.3.0to chore(deps): update all dependenciesc9dbd0ebaa
tod14ac2cd87
d14ac2cd87
tobd73589ea5
bd73589ea5
tod76e33794c
d76e33794c
to2e82d45718
2e82d45718
to6715605e58
6715605e58
to3b1f13d888
3b1f13d888
to20af1bea08
20af1bea08
toa8828baae7
a8828baae7
toe57518a756
e57518a756
to9e4eb06bf3
9e4eb06bf3
to3ceb0834c3
3ceb0834c3
to666036605d
666036605d
tof9e95e547c
f9e95e547c
tocafd705b6b
cafd705b6b
tof75980a9a4
f75980a9a4
to6c17b6ce28
6c17b6ce28
toa2f8f89fa3
a2f8f89fa3
todf763cf531
df763cf531
to2244334600
2244334600
to309eebf78a
309eebf78a
toe485c0bcbf
e485c0bcbf
to13b7a01958
13b7a01958
tod88422db6a
d88422db6a
toe719970df0
e719970df0
to573dc80dde
573dc80dde
to09ac67422a
09ac67422a
tof09f38aa85
chore(deps): update all dependenciesto fix(deps): update all dependenciesf09f38aa85
to2e606aba14
2e606aba14
toccfa23d631
ccfa23d631
tof7504edce5
f7504edce5
todf81cee2a0
df81cee2a0
toc38f634fee
c38f634fee
to62cfc563a8
62cfc563a8
to5ab101e998
fix(deps): update all dependenciesto chore(deps): update all dependencies5ab101e998
to46d215021b
46d215021b
to3b8443ccce
3b8443ccce
toceaa84ce9b
ceaa84ce9b
to0593b3ec4e
0593b3ec4e
tobe52cb7e0f
be52cb7e0f
tobfb7209f8a
bfb7209f8a
to8b3ff541f6
8b3ff541f6
toedcdce7fa3
edcdce7fa3
to79a59f3690
79a59f3690
toe0534b27cb
e0534b27cb
to7f7e100748
7f7e100748
tob34b8dd104
b34b8dd104
to3b1ac40562
3b1ac40562
to9b59c31061
9b59c31061
toc1e10637d8
c1e10637d8
to7ff707cd54
7ff707cd54
to30d3578206
30d3578206
to2a5d111e37
2a5d111e37
toce6134e498
ce6134e498
tof7315c587f
f7315c587f
to698c4eb036
698c4eb036
toe74039758f
e74039758f
toa8bac92a0e
a8bac92a0e
tobb4ccc2877
bb4ccc2877
to64fa386d43
64fa386d43
to474cd1839d
474cd1839d
toabaeb7bd8d
abaeb7bd8d
to3a4551bac1
3a4551bac1
to337fd06490
337fd06490
to09ad93180c
09ad93180c
to25bfb17793
25bfb17793
to22ce36f668
22ce36f668
toa592ad2a13
a592ad2a13
to857a1955f5
857a1955f5
to00cf21becd
00cf21becd
to5b55251a88
5b55251a88
tobd1b1ca122
bd1b1ca122
toc766ec2b0e
c766ec2b0e
toab24960b62
ab24960b62
to62f8aeb62c
62f8aeb62c
to75bfca77aa
75bfca77aa
to5480f50017
5480f50017
toc1fdfcc06c
c1fdfcc06c
to14bdca7e12
14bdca7e12
to1b498c9a10
1b498c9a10
to38cc676158
38cc676158
to6235063665
6235063665
to00ca8f97ee
00ca8f97ee
to1d28428853
1d28428853
to56f10aca4e
56f10aca4e
toc20d716eeb
c20d716eeb
to71856bfdb9
/contractor retry
71856bfdb9
toe226967d28
e226967d28
tod158b2b617
d158b2b617
to9201ff9294