router icon indicating copy to clipboard operation
router copied to clipboard

chore(deps): update cargo pre-1.0 packages (minor)

Open renovate[bot] opened this issue 1 year ago β€’ 6 comments

Mend Renovate

This PR contains the following updates:

Package Type Update Change
axum dev-dependencies minor 0.6.20 -> 0.7.0
axum dependencies minor 0.6.20 -> 0.7.0
base64 dependencies minor 0.21 -> 0.22
base64 dependencies minor 0.21.7 -> 0.22.0
console-subscriber (source) dependencies minor 0.2.0 -> 0.3.0
env_logger dependencies minor 0.9.0 -> 0.11.0
env_logger dependencies minor 0.10.2 -> 0.11.0
graphql_client dependencies minor 0.13.0 -> 0.14.0
heck dependencies minor 0.4.1 -> 0.5.0
hyper-rustls dependencies minor 0.24.2 -> 0.27.0
itertools dependencies minor 0.12.1 -> 0.13.0
jsonpath-rust dependencies minor 0.3.5 -> 0.6.0
jsonschema dependencies minor 0.17.1 -> 0.18.0
mockall dev-dependencies minor 0.11.4 -> 0.12.0
mockall dependencies minor 0.11.4 -> 0.12.0
moka dependencies minor 0.8.5 -> 0.12.0
multimap dependencies minor 0.9.1 -> 0.10.0
nu-ansi-term dependencies minor 0.49 -> 0.50
reqwest dependencies minor 0.11 -> 0.12
reqwest dev-dependencies minor 0.11.24 -> 0.12.0
reqwest workspace.dependencies minor 0.11.24 -> 0.12.0
rustls dependencies minor 0.21.11 -> 0.23.0
rustls-native-certs dependencies minor 0.6.3 -> 0.7.0
serde_yaml dependencies minor 0.8.26 -> 0.9.0
strum_macros dependencies minor 0.25.3 -> 0.26.0
test-span dev-dependencies minor 0.7 -> 0.8
tokio-rustls dependencies minor 0.24.1 -> 0.26.0
tokio-tungstenite dependencies minor 0.20.1 -> 0.23.0
tonic dependencies minor 0.9.2 -> 0.11.0
tonic-build build-dependencies minor 0.9.2 -> 0.11.0
tower-http dependencies minor 0.4.4 -> 0.5.0
wiremock dev-dependencies minor 0.5.22 -> 0.6.0
wiremock dependencies minor 0.5.22 -> 0.6.0

Release Notes

tokio-rs/axum (axum)

v0.7.5: axum - v0.7.5

Compare Source

  • fixed: Fixed layers being cloned when calling axum::serve directly with a Router or MethodRouter (#​2586)
  • fixed: h2 is no longer pulled as a dependency unless the http2 feature is enabled (#​2605)

v0.7.4: axum - v0.7.4

Compare Source

  • fixed: Fix performance regression present since axum 0.7.0 (#​2483)
  • fixed: Improve debug_handler on tuple response types (#​2201)
  • added: Add must_use attribute to Serve and WithGracefulShutdown (#​2484)
  • added: Re-export axum_core::body::BodyDataStream from axum

v0.7.3: axum - v0.7.3

Compare Source

  • added: Body implements From<()> now (#​2411)
  • change: Update version of multer used internally for multipart (#​2433)
  • change: Update tokio-tungstenite to 0.21 (#​2435)
  • added: Enable tracing feature by default (#​2460)
  • added: Support graceful shutdown on serve (#​2398)
  • added: RouterIntoService implements Clone (#​2456)

v0.7.2: axum - v0.7.2

Compare Source

v0.7.1: axum - v0.7.1

Compare Source

  • fix: Fix readme.

v0.7.0: axum - v0.7.0

Compare Source

  • breaking: Update public dependencies. axum now requires
  • breaking: axum now requires tower-http 0.5
  • breaking: Remove deprecated WebSocketUpgrade::max_send_queue
  • breaking: The following types/traits are no longer generic over the request body (i.e. the B type param has been removed) (#​1751 and #​1789):
    • FromRequestParts
    • FromRequest
    • HandlerService
    • HandlerWithoutStateExt
    • Handler
    • LayeredFuture
    • Layered
    • MethodRouter
    • Next
    • RequestExt
    • RouteFuture
    • Route
    • Router
  • breaking: axum no longer re-exports hyper::Body as that type is removed in hyper 1.0. Instead axum has its own body type at axum::body::Body (#​1751)
  • breaking: extract::BodyStream has been removed as body::Body implements Stream and FromRequest directly (#​1751)
  • breaking: Change sse::Event::json_data to use axum_core::Error as its error type (#​1762)
  • breaking: Rename DefaultOnFailedUpdgrade to DefaultOnFailedUpgrade (#​1664)
  • breaking: Rename OnFailedUpdgrade to OnFailedUpgrade (#​1664)
  • breaking: TypedHeader has been move to axum-extra (#​1850)
  • breaking: Removed re-exports of Empty and Full. Use axum::body::Body::empty and axum::body::Body::from respectively (#​1789)
  • breaking: The response returned by IntoResponse::into_response must use axum::body::Body as the body type. axum::response::Response does this (#​1789)
  • breaking: Removed the BoxBody type alias and its box_body constructor. Use axum::body::Body::new instead (#​1789)
  • breaking: Remove RawBody extractor. axum::body::Body implements FromRequest directly (#​1789)
  • breaking: The following types from http-body no longer implement IntoResponse:
    • Full, use Body::from instead
    • Empty, use Body::empty instead
    • BoxBody, use Body::new instead
    • UnsyncBoxBody, use Body::new instead
    • MapData, use Body::new instead
    • MapErr, use Body::new instead
  • added: Add axum::extract::Request type alias where the body is axum::body::Body (#​1789)
  • added: Add Router::as_service and Router::into_service to workaround type inference issues when calling ServiceExt methods on a Router (#​1835)
  • breaking: Removed axum::Server as it was removed in hyper 1.0. Instead use axum::serve(listener, service) or hyper/hyper-util for more configuration options (#​1868)
  • breaking: Only inherit fallbacks for routers nested with Router::nest. Routers nested with Router::nest_service will no longer inherit fallbacks (#​1956)
  • fixed: Don't remove the Sec-WebSocket-Key header in WebSocketUpgrade (#​1972)
  • added: Add axum::extract::Query::try_from_uri (#​2058)
  • added: Implement IntoResponse for Box<str> and Box<[u8]> ([#​2035])
  • breaking: Simplify MethodFilter. It no longer uses bitflags (#​2073)
  • fixed: Fix bugs around merging routers with nested fallbacks (#​2096)
  • fixed: Fix .source() of composite rejections (#​2030)
  • fixed: Allow unreachable code in #[debug_handler] (#​2014)
  • change: axum's MSRV is now 1.66 (#​1882)
  • added: Implement IntoResponse for (R,) where R: IntoResponse (#​2143)
  • changed: For SSE, add space between field and value for compatibility (#​2149)
  • added: Add NestedPath extractor (#​1924)
  • added: Add handle_error function to existing ServiceExt trait (#​2235)
  • breaking: impl<T> IntoResponse(Parts) for Extension<T> now requires T: Clone, as that is required by the http crate (#​1882)
  • added: Add axum::Json::from_bytes (#​2244)
  • added: Implement FromRequestParts for http::request::Parts (#​2328)
  • added: Implement FromRequestParts for http::Extensions (#​2328)
  • fixed: Clearly document applying DefaultBodyLimit to individual routes (#​2157)
marshallpierce/rust-base64 (base64)

v0.22.1

Compare Source

  • Correct the symbols used for the predefined alphabet::BIN_HEX.

v0.22.0

Compare Source

  • DecodeSliceError::OutputSliceTooSmall is now conservative rather than precise. That is, the error will only occur if the decoded output cannot fit, meaning that Engine::decode_slice can now be used with exactly-sized output slices. As part of this, Engine::internal_decode now returns DecodeSliceError instead of DecodeError, but that is not expected to affect any external callers.
  • DecodeError::InvalidLength now refers specifically to the number of valid symbols being invalid (i.e. len % 4 == 1), rather than just the number of input bytes. This avoids confusing scenarios when based on interpretation you could make a case for either InvalidLength or InvalidByte being appropriate.
  • Decoding is somewhat faster (5-10%)

v0.21.7

Compare Source

  • Support getting an alphabet's contents as a str via Alphabet::as_str()

v0.21.6

Compare Source

  • Improved introductory documentation and example

v0.21.5

Compare Source

  • Add Debug and Clone impls for the general purpose Engine

v0.21.4

Compare Source

  • Make encoded_len const, allowing the creation of arrays sized to encode compile-time-known data lengths

v0.21.3

Compare Source

  • Implement source instead of cause on Error types
  • Roll back MSRV to 1.48.0 so Debian can continue to live in a time warp
  • Slightly faster chunked encoding for short inputs
  • Decrease binary size
tokio-rs/console (console-subscriber)

v0.3.0

Compare Source

console-subscriber-v0.3.0 - (2024-06-10)

Breaking Changes
  • Bump tonic to 0.11 (#​547) (ef6816c)
    This is a breaking change for users of console-api and console-subscriber, as it changes the public tonic dependency to a semver-incompatible version. This breaks compatibility with tonic 0.10.x.
Added
Documented
Fixed
Updated
rust-cli/env_logger (env_logger)

v0.11.3

Compare Source

Features
  • Experimental support for key-value logging behind unstable-kv

v0.11.2

Compare Source

v0.11.1

Compare Source

Fixes
  • Allow styling with Target::Pipe

v0.11.0

Compare Source

Migration Guide

env_logger::fmt::Style: The bespoke styling API, behind color, was removed, in favor of accepting any ANSI styled string and adapting it to the target stream's capabilities.

Possible styling libraries include:

  • anstyle is a minimal, runtime string styling API and is re-exported as env_logger::fmt::style
  • owo-colors is a feature rich runtime string styling API
  • color-print for feature-rich compile-time styling API

custom_format.rs uses anstyle via Formatter::default_level_style

Breaking Change
  • Removed bespoke styling API
    • env_logger::fmt::Formatter::style
    • env_logger::fmt::Formatter::default_styled_level
    • env_logger::fmt::Style
    • env_logger::fmt::Color
    • env_logger::fmt::StyledValue
  • Removed env_logger::filter in favor of env_filter
Compatibility

MSRV changed to 1.71

Features
  • Automatically adapt ANSI escape codes in logged messages to the current terminal's capabilities
  • Add support for NO_COLOR and CLICOLOR_FORCE, see https://bixense.com/clicolors/
Fixes
  • Print colors when is_test(true)

v0.10.2

Compare Source

Performance
  • Avoid extra UTF-8 validation performed in some cases
Fixes
  • Ensure custom pipes/stdout get flushed
  • Don't panic on broken pipes when color is disabled

v0.10.1

Compare Source

Performance
  • Avoid hashing directives and accessing RNG on startup
Documentation
  • Tweak RUST_LOG documentation

v0.10.0

Compare Source

MSRV changed to 1.60 to hide optional dependencies

Fixes
  • Resolved soundness issue by switching from atty to is-terminal
Breaking Changes

To open room for changing dependencies:

  • Renamed termcolor feature to color
  • Renamed atty feature to auto-color
graphql-rust/graphql-client (graphql_client)

v0.14.0

Compare Source

  • Add support for GraphQL’s extend type directive
  • Add support for graphqls:// schema
  • Expose generate_module_token_stream_from_string to allow custom macro wrappers
withoutboats/heck (heck)

v0.5.0

  • Add no_std support.
  • Remove non-additive unicode feature. The library now uses char::is_alphanumeric instead of the unicode-segmentation library to determine word boundaries in all cases.
rust-itertools/itertools (itertools)

v0.13.0

Compare Source

Breaking
  • Removed implementation of DoubleEndedIterator for ConsTuples (#​853)
  • Made MultiProduct fused and fixed on an empty iterator (#​835, #​834)
  • Changed iproduct! to return tuples for maxi one iterator too (#​870)
  • Changed PutBack::put_back to return the old value (#​880)
  • Removed deprecated repeat_call, Itertools::{foreach, step, map_results, fold_results} (#​878)
  • Removed TakeWhileInclusive::new (#​912)
Added
Changed
  • Deprecated Itertools::group_by (renamed chunk_by) (#​866, #​879)
  • Deprecated unfold (use std::iter::from_fn instead) (#​871)
  • Optimized GroupingMapBy (#​873, #​876)
  • Relaxed Fn bounds to FnMut in diff_with, Itertools::into_group_map_by (#​886)
  • Relaxed Debug/Clone bounds for MapInto (#​889)
  • Documented the use_alloc feature (#​887)
  • Optimized Itertools::set_from (#​888)
  • Removed badges in README.md (#​890)
  • Added "no-std" categories in Cargo.toml (#​894)
  • Fixed Itertools::k_smallest on short unfused iterators (#​900)
  • Deprecated Itertools::tree_fold1 (renamed tree_reduce) (#​895)
  • Deprecated GroupingMap::fold_first (renamed reduce) (#​902)
  • Fixed Itertools::k_smallest(0) to consume the iterator, optimized Itertools::k_smallest(1) (#​909)
  • Specialized Combinations::nth (#​914)
  • Specialized MergeBy::fold (#​920)
  • Specialized CombinationsWithReplacement::nth (#​923)
  • Specialized FlattenOk::{fold, rfold} (#​927)
  • Specialized Powerset::nth (#​924)
  • Documentation fixes (#​882, #​936)
  • Fixed assert_equal for iterators longer than i32::MAX (#​932)
  • Updated the must_use message of non-lazy KMergeBy and TupleCombinations (#​939)
Notable Internal Changes
besok/jsonpath-rust (jsonpath-rust)

v0.4.0

Compare Source

Stranger6667/jsonschema-rs (jsonschema)

v0.18.0

Added
  • Custom keywords support. #​379
  • Expose JsonPointerNode that can be converted into JSONPointer. This is needed for the upcoming custom validators support.
Changed
  • Bump base64 to 0.22.
  • Bump clap to 4.5.
  • Bump fancy-regex to 0.13.
  • Bump fraction to 0.15.
  • Bump memchr to 2.7.
  • Bump once_cell to 1.19.
  • Bump percent-encoding to 2.3.
  • Bump regex to 1.10.
  • Bump url to 2.5.
  • Build CLI only if the cli feature is enabled.
  • BREAKING: Extend CompilationOptions to support more ways to define custom format checkers (for example in Python bindings). In turn it changes ValidationErrorKind::Format to contain a String instead of a &'static str.
Fixed
  • Incorrect schema_path when multiple errors coming from the $ref keyword #​426
Performance
  • Optimize building JSONPointer for validation errors by allocating the exact amount of memory needed.
  • Avoid cloning path segments during validation.
asomers/mockall (mockall)

v0.12.1

Compare Source

Fixed
  • Fixed using #[mockall::concretize] on functions whose generic types contain trait bounds, yet are still object safe. (#​531)

  • Fixed mocking methods that use raw identifiers for their names. This was a regression in 0.12.0. (#​534)

v0.12.0

Compare Source

Added
  • Added #[mockall::concretize], which can be used to mock some generic methods that have non-'static generic parameters. It works by turning the generic arguments into trait objects for the expectation. (#​408)

  • When mocking functions with a non-default ABI (Like extern "C"), the mock function will now use the same ABI as the original. Name mangling will also be disabled, so the mock function will be callable from external code. For example, from C functions. (#​504)

Changed
  • Raised predicates, which is reexported, to 3.0.0. This may affect backwards compatibility for users who make use of predicates's "color" feature. (#​467)

  • Raised MSRV to 1.64.0 because predicates-core and predicates-tree did. (#​430) (#​467)

  • Better "No matching expectation found" messages on stable. (#​425)

Fixed
  • Fixed mocking non-private inherent methods that have attributes with syn version 2.0.9 and later. (#​486)

  • Suppress clippy::too_many_arguments warnings in the generated code. This is most useful when mocking static functions with exactly 7 arguments. (#​487)

  • Fixed unused_attributes warnings in the generated code when mocking FFI functions that use #[link_name]. (#​503)

  • Fix a panic during Drop for static methods. One way to trigger it is by calling the method more times than is allowed by a .times() constraint. Another way would be to explicitly panic during the .returning method. (#​516)

Removed
  • Removed syntax deprecated since 0.9.0: using #[automock] directly on an extern "C" block, and using trait Foo {} syntax inside of mock!. (#​476)

  • Removed default features from predicates dependency. Reexports no longer include difflib, normalize-line-endings, regex and float-cmp features. (#​517)

moka-rs/moka (moka)

v0.12.7

Compare Source

Changed
  • Ensure a single call to run_pending_tasks to evict as many entries as possible from the cache ([#​417][gh-pull-0417]).

v0.12.6

Compare Source

Fixed
  • Fixed a bug in future::Cache that pending run_pending_tasks calls may cause infinite busy loop in an internal schedule_write_op method ([#​412][gh-issue-0412]):
    • This bug was introduced in v0.12.0 when the background threads were removed from future::Cache.
    • This bug can occur when run_pending_task method is called by user code while cache is receiving a very high number of concurrent cache write operations. (e.g. insert, get_with, invalidate etc.)
    • When it occurs, the schedule_write_op method will be spinning in a busy loop forever, causing high CPU usage and all other async tasks to be starved.
Changed
  • Upgraded async-lock crate used by future::Cache from v2.4 to the latest v3.3.

v0.12.5

Compare Source

Added
  • Added support for a plain LRU (Least Recently Used) eviction policy ([#​390][gh-pull-0390]):
    • The LRU policy is enabled by calling the eviction_policy method of the cache builder with a policy obtained by EvictionPolicy::lru function.
    • The default eviction policy remains the TinyLFU (Tiny, Least Frequently Used) as it maintains better hit rate than LRU for most use cases. TinyLFU combines LRU eviction policy and popularity-based admission policy. A probabilistic data structure is used to estimate historical popularity of both hit and missed keys. (not only the keys currently in the cache.)
    • However, some use cases may prefer LRU policy over TinyLFU. An example is recency biased workload such as streaming data processing. LRU policy can be used for them to achieve better hit rate.
    • Note that we are planning to add an adaptive eviction/admission policy called Window-TinyLFU in the future. It will adjust the balance between recency and frequency based on the current workload.

v0.12.4

Compare Source

Fixed
  • Ensure crossbeam-epoch to run GC when dropping a cache ([#​384][gh-pull-0384]):
    • crossbeam-epoch crate provides an epoch-based memory reclamation scheme for concurrent data structures. It is used by Moka cache to safely drop cached entries while they are still being accessed by other threads.
    • crossbeam-epoch does its best to reclaim memory (drop the entries evicted from the cache) when the epoch is advanced. However, it does not guarantee that memory will be reclaimed immediately after the epoch is advanced. This means that entries can remain in the memory for a while after the cache is dropped.
    • This fix ensures that, when a cache is dropped, the epoch is advanced and crossbeam-epoch's thread local buffers are flushed, helping to reclaim memory immediately.
    • Note that there are still chances that some entries remain in the memory for a while after a cache is dropped. We are looking for alternatives to crossbeam-epoch to improve this situation (e.g. [#​385][gh-issue-0385]).
Added
  • Added an example for reinserting expired entries to the cache. ([#​382][gh-pull-0382])

v0.12.3

Compare Source

Added
  • Added the upsert and compute methods for modifying a cached entry ([#​370][gh-pull-0370]):
    • Now the entry and entry_by_ref APIs have the following methods:
      • and_upsert_with method to insert or update the entry.
      • and_compute_with method to insert, update, remove or do nothing on the entry.
      • and_try_compute_with method, which is similar to above but returns Result.
Fixed
  • Raised the version requirement of the quanta from >=0.11.0, <0.12.0 to >=0.12.2, <0.13.0 to avoid under-measuring the elapsed time on Apple silicon Macs ([#​376][gh-pull-0376]).
    • Due to this under-measurement, cached entries on macOS arm64 can expire sightly later than expected.

v0.12.2

Compare Source

Fixed
  • Prevent timing issues in writes that cause inconsistencies between the cache's internal data structures ([#​348][gh-pull-0348]):
    • One way to trigger the issue is that insert the same key twice quickly, once when the cache is full and a second time when there is a room in the cache.
      • When it occurs, the cache will not return the value inserted in the second call (which is wrong), and the entry_count method will keep returning a non zero value after calling the invalidate_all method (which is also wrong).
  • Now the last access time of a cached entry is updated immediately after the entry is read ([#​363][gh-pull-0363]):
    • When the time-to-idle of a cache is set, the last access time of a cached entry is used to determine if the entry has been expired.
    • Before this fix, the access time was updated (to the time when it was read) when pending tasks were processed. This delay caused issue that some entries become temporarily unavailable for reads even though they have been accessed recently. And then they will become available again after the pending tasks are processed.
    • Now the last access time is updated immediately after the entry is read. The entry will remain valid until the time-to-idle has elapsed.

Note that both of [#​348][gh-pull-0348] and [#​363][gh-pull-0363] were already present in v0.11.x and older versions. However they were less likely to occur because they had background threads to periodically process pending tasks. So there were much shorter time windows for these issues to occur.

Changed
  • Updated the Rust edition from 2018 to 2021. ([#​339][gh-pull-0339], by [@​nyurik][gh-nyurik])
    • The MSRV remains at Rust 1.65.
  • Changed to use inline format arguments throughout the code, including examples. ([#​340][gh-pull-0340], by [@​nyurik][gh-nyurik])
Added

v0.12.1

Compare Source

Fixed
  • Fixed memory leak in future::Cache that occurred when get_with(), entry().or_insert_with(), and similar methods were used ([#​329][gh-issue-0329]).
    • This bug was introduced in v0.12.0. Versions prior to v0.12.0 do not have this bug.
Changed

v0.12.0

Compare Source

Note v0.12.0 has major breaking changes on the API and internal behavior.

  • sync caches are no longer enabled by default: Please use a crate feature sync to enable it.

  • No more background threads: All cache types future::Cache, sync::Cache, and sync::SegmentedCache no longer spawn background threads.

    • The scheduled-thread-pool crate was removed from the dependency.
    • Because of this change, many private methods and some public methods under the future module were converted to async methods. You may need to add .await to your code for those methods.
  • Immediate notification delivery: The notification::DeliveryMode enum for the eviction listener was removed. Now all cache types behave as if the Immediate delivery mode is specified.

Please read the MIGRATION-GUIDE.md for more details.

Changed
  • Removed the thread pool from future cache ([#​294][gh-pull-0294]) and sync caches ([#​316][gh-pull-0316]).
  • Improved async cancellation safety of future::Cache. ([#​309][gh-pull-0309])
Fixed
  • Fixed a bug that an internal do_insert_with_hash method gets the current Instant too early when eviction listener is enabled. ([#​322][gh-issue-0322])

v0.11.3

Compare Source

Fixed
  • Fixed a bug in sync::Cache and sync::SegmentedCache where memory usage kept increasing when the eviction listener was set with the Immediate delivery mode. ([#​295][gh-pull-0295])

v0.11.2

Compare Source

Bumped the minimum supported Rust version (MSRV) to 1.65 (Nov 3, 2022). ([#​275][gh-pull-0275])

Removed
  • Removed num_cpus crate from the dependency. ([#​277][gh-pull-0277])
Changed
  • Refactored internal methods of the concurrent hash table to reduce compile times. ([#​265][gh-pull-0265], by [@​Swatinem][gh-Swatinem])

v0.11.1

Compare Source

Fixed
  • Fixed occasional panic in internal FrequencySketch in debug build. ([#​272][gh-pull-0272])
Added

v0.11.0

Compare Source

Added
  • Added support for per-entry expiration ([#​248][gh-pull-0248]):
    • In addition to the existing TTL and TTI (time-to-idle) expiration times that apply to all entries in the cache, the sync and future caches can now allow different expiration times for individual entries.
  • Added the remove method to the sync and future caches (#​255):
    • Like the invalidate method, this method discards any cached value for the key, but returns a clone of the value.
Fixed
  • Fixed the caches mutating a deque node through a NonNull pointer derived from a shared reference. ([#​259][gh-pull-0259])
Removed
  • Removed unsync cache that was marked as deprecated in v0.10.0.

v0.10.4

Compare Source

v0.10.3

Compare Source

v0.10.2

Compare Source

Bumped the minimum supported Rust version (MSRV) to 1.60 (Apr 7, 2022). ([#​252][gh-issue-0252])

Changed
  • Upgraded quanta crate to v0.11.0. ([#​251][gh-pull-0251])
    • This resolved "[RUSTSEC-2020-0168]: mach is unmaintained" ([#​243][gh-issue-0243]) by replacing mach with mach2.
    • quanta v0.11.0's MSRV is 1.60, so we also bumped the MSRV of Moka to 1.60.

v0.10.1

Compare Source

Fixed
  • Fixed a bug that future cache's blocking().invalidate(key) method does not trigger the eviction listener. ([#​242][gh-issue-0242])
Changed
  • Now sync and future caches will not cache anything when the max capacity is set to zero ([#​230][gh-issue-0230]):
    • Previously, they would cache some entries for short time (< 0.5 secs) even though the max capacity is zero.

v0.10.0

Compare Source

Breaking Changes
  • The following caches have been moved to a separate crate called [Mini-Moka][mini-moka-crate]:
    • moka::unsync::Cache β†’ mini_moka::unsync::Cache
    • moka::dash::Cache β†’ mini_moka::sync::Cache
  • The following methods have been removed from sync and future caches ([#​199][gh-pull-0199]). They were deprecated in v0.8.0:
    • get_or_insert_with (Use get_with instead)
    • get_or_try_insert_with (Use try_get_with instead)
  • The following methods of sync and future caches have been marked as deprecated ([#​193][gh-pull-0193]):
    • get_with_if (Use entry API's or_insert_with_if instead)
Added
  • Add entry and entry_by_ref APIs to sync and future caches ([#​193][gh-pull-0193]):
    • They allow users to perform more complex operations on a cache entry. At this point, the following operations (methods) are provided:
      • or_default
      • or_insert
      • or_insert_with
      • or_insert_with_if
      • or_optionally_insert_with
      • or_try_insert_with
    • The above methods return Entry type, which provides is_fresh method to check if the value was freshly computed or already existed in the cache.

v0.9.9

Compare Source

v0.9.8

Compare Source

v0.9.7

Compare Source

Fixed
  • Fix an issue that get_with method of future cache inflates future size by ~7x, sometimes causing stack overflow ([#​212][gh-issue-0212]):
    • This was caused by a known rustc optimization issue on async functions ([rust-lang/rust#62958][gh-rust-issue-62958]).
    • Added a workaround to our cache and now it will only inflate the size by ~2.5x.
  • Fix a bug that setting the number of segments of sync cache will disable notifications. ([#​207][gh-issue-0207])
Added
  • Add examples for build_with_hasher method of cache builders. ([#​216][gh-pull-0216])

v0.9.6

Compare Source

Fixed
  • Prevent race condition in get_with family methods to avoid evaluating init closure or future multiple times in concurrent calls. ([#​195][gh-pull-0195])

v0.9.5

Compare Source

Added
  • Add optionally_get_with method to sync and future caches ([#​187][gh-pull-0187], by [@​LMJW][gh-LMJW]):
    • It is similar to try_get_with but takes an init closure/future returning an Option<V> instead of Result<V, E>.
  • Add by_ref version of API for get_with, optionally_get_with, and try_get_with of sync and future caches ([#​190][gh-pull-0190], by [@​LMJW][gh-LMJW]):
    • They are similar to the non-by_ref versions but take a reference of the key instead of an owned key. If the key does not exist in the cache, the key will be cloned to create new entry in the cache.
Changed
  • Change the CI to run Linux AArch64 tests on real hardware using Cirrus CI. ([#​180][gh-pull-0180], by [@​ClSlaid][gh-ClSlaid])
Fixed

v0.9.4

Compare Source

Fixed
  • Fix memory leak after dropping a sync or future cache ([#​177][gh-pull-0177]):
    • This leaked the value part of cache entries.
Added
  • Add an experimental js feature to make unsync and sync caches to compile for wasm32-unknown-unknown target (#​173, by [@​aspect][gh-aspect]):
    • Note that we have not tested if these caches work correctly in wasm32 environment.

v0.9.3

Compare Source

Added
  • Add an option to the cache builder of the following caches not to start and use the global thread pools for housekeeping tasks ([#​165][gh-pull-0165]):
    • sync::Cache
    • sync::SegmentedCache
Fixed
  • Ensure that the following caches will drop the value of evicted entries immediately after eviction ([#​169][gh-pull-0169]):
    • sync::Cache
    • sync::SegmentedCache
    • future::Cache

v0.9.2

Fixed
  • Fix segmentation faults in sync and future caches under heavy loads on many-core machine ([#​34][gh-issue-0034]):
    • NOTE: Although this issue was found in our testing environment ten months ago (v0.5.1), no user reported that they had the same issue.
    • NOTE: In v0.8.4, we added a mitigation to reduce the chance of the segfaults occurring.
Changed
  • Upgrade crossbeam-epoch from v0.8.2 to v0.9.9 ([#​157][gh-pull-0157]):
    • This will make GitHub Dependabot to stop alerting about a security advisory [CVE-2022-23639][ghsa-qc84-gqf4-9926] for crossbeam-utils versions < 0.8.7.
    • Moka v0.9.1 or older was not vulnerable to the CVE:
      • Although the older crossbeam-epoch v0.8.2 depends on an affected version of crossbeam-utils, epoch v0.8.2 does not use the affected functions of utils. ([#​162][gh-issue-0162])

v0.9.1

Fixed
  • Relax a too restrictive requirement Arc<K>: Borrow<Q> for the key &Q of the contains_key, get and invalidate methods in the following caches (with K as the key type) ([#​167][gh-pull-0167]). The requirement is now K: Borrow<Q> so these methods will accept &[u8] for the key &Q when the stored key K is Vec<u8>.
    • sync::Cache
    • sync::SegmentedCache
    • future::Cache

v0.9.0

Compare Source

Added
  • Add support for eviction listener to the following caches ([#​145][gh-pull-0145]). Eviction listener is a callback function that will be called when an entry is removed from the cache:
    • sync::Cache
    • sync::SegmentedCache
    • future::Cache
  • Add a crate feature sync for enabling and disabling sync caches. ([#​141][gh-pull-0141] by [@​Milo123459][gh-Milo123459], and [#​143][gh-pull-0143])
    • This feature is enabled by default.
    • When using experimental dash cache, opting out of sync will reduce the number of dependencies.
  • Add a crate feature logging to enable optional log crate dependency. ([#​159][gh-pull-0159])
    • Currently log will be emitted only when an eviction listener has panicked.
nushell/nu-ansi-term (nu-ansi-term)

v0.50.0

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/nushell/nu-ansi-term/compare/v0.49.0...v0.50.0

seanmonstar/reqwest (reqwest)

v0.12.5

Compare Source

  • Add `blocking::ClientBuild

Configuration

πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» 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.


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

This PR has been generated by Mend Renovate. View repository job log here.

renovate[bot] avatar Aug 21 '23 14:08 renovate[bot]

@renovate[bot], please consider creating a changeset entry in /.changesets/. These instructions describe the process and tooling.

github-actions[bot] avatar Aug 21 '23 14:08 github-actions[bot]

CI performance tests

  • [x] step - Basic stress test that steps up the number of users over time
  • [ ] events_without_dedup - Stress test for events with a lot of users and deduplication DISABLED
  • [ ] xlarge-request - Stress test with 10 MB request payload
  • [ ] xxlarge-request - Stress test with 100 MB request payload
  • [ ] events_big_cap_high_rate - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity
  • [x] const - Basic stress test that runs with a constant number of users
  • [ ] reload - Reload test over a long period of time at a constant rate of users
  • [ ] large-request - Stress test with a 1 MB request payload
  • [ ] events - Stress test for events with a lot of users and deduplication ENABLED
  • [ ] step-jemalloc-tuning - Clone of the basic stress test for jemalloc tuning
  • [ ] no-graphos - Basic stress test, no GraphOS.

router-perf[bot] avatar Aug 21 '23 14:08 router-perf[bot]

Some notes:

  • The aws deps are all actually at 1.0 now, but all the actual breaking changes seemed to happen in pre-1.0 versions.
  • The serde_yaml does some major breaking stuff in ways that might actually be problematic.
  • tonic is beyond my abilities in updating, but I think it's tied into all the OpenTelemetry packages and it might be worth breaking out of these grouped PRs because I don't think it can ever be updated in these big PRs.

abernix avatar Nov 24 '23 16:11 abernix

Some notes:

  • The aws deps are all actually at 1.0 now, but all the actual breaking changes seemed to happen in pre-1.0 versions.
  • The serde_yaml does some major breaking stuff in ways that might actually be problematic.
  • tonic is beyond my abilities in updating, but I think it's tied into all the OpenTelemetry packages and it might be worth breaking out of these grouped PRs because I don't think it can ever be updated in these big PRs.

I recommend that we wait for the original author to fix up the AWS changes, since it will require spending time to understand AWS signing properly by whomever fixes this.

The tonic changes are blocked by otel, so maybe we should add tonic and tonic-build into the same group as the otel stuff in our Cargo.toml?

The tower-http changes seem problematic and I read somewhere on the internet (can't find the reference right now) that there is a "problem" with tower-http 0.5.0. Can't remember the details. We should either wait for 0.5.1 or stick on 0.4.4 for now.

garypen avatar Nov 27 '23 08:11 garypen

⚠ Artifact update problem

Renovate failed to update artifacts 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 apollo-router/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `reqwest`.
    ... required by package `apollo-router v1.46.0 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.46.0) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.12.0` are: 0.12.4, 0.12.3, 0.12.2, 0.12.1, 0.12.0

the package `apollo-router` depends on `reqwest`, with features: `rustls-native-certs` but `reqwest` does not have these features.
 It has an optional dependency with that name, but that dependency uses the "dep:" syntax in the features table, so it does not have an implicit feature with that name.


failed to select a version for `reqwest` which could resolve this conflict

File name: xtask/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path xtask/Cargo.toml --package [email protected] --precise 0.22.1
    Updating crates.io index
error: failed to select a version for the requirement `base64 = "^0.21"`
candidate versions found which didn't match: 0.22.1
location searched: crates.io index
required by package `reqwest v0.11.18`
    ... which satisfies dependency `reqwest-crate = "^0.11"` (locked to 0.11.18) of package `graphql_client v0.14.0`
    ... which satisfies dependency `graphql_client = "^0.14.0"` (locked to 0.14.0) of package `xtask v1.5.0 (/tmp/renovate/repos/github/apollographql/router/xtask)`
perhaps a crate was updated and forgotten to be re-vendored?

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path apollo-router-scaffold/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `reqwest`.
    ... required by package `apollo-router v1.46.0 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.46.0) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.12.0` are: 0.12.4, 0.12.3, 0.12.2, 0.12.1, 0.12.0

the package `apollo-router` depends on `reqwest`, with features: `rustls-native-certs` but `reqwest` does not have these features.
 It has an optional dependency with that name, but that dependency uses the "dep:" syntax in the features table, so it does not have an implicit feature with that name.


failed to select a version for `reqwest` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path fuzz/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `reqwest`.
    ... required by package `apollo-router v1.46.0 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.46.0) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.12.0` are: 0.12.4, 0.12.3, 0.12.2, 0.12.1, 0.12.0

the package `apollo-router` depends on `reqwest`, with features: `rustls-native-certs` but `reqwest` does not have these features.
 It has an optional dependency with that name, but that dependency uses the "dep:" syntax in the features table, so it does not have an implicit feature with that name.


failed to select a version for `reqwest` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `reqwest`.
    ... required by package `apollo-router v1.46.0 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.46.0) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.12.0` are: 0.12.4, 0.12.3, 0.12.2, 0.12.1, 0.12.0

the package `apollo-router` depends on `reqwest`, with features: `rustls-native-certs` but `reqwest` does not have these features.
 It has an optional dependency with that name, but that dependency uses the "dep:" syntax in the features table, so it does not have an implicit feature with that name.


failed to select a version for `reqwest` which could resolve this conflict

renovate[bot] avatar Nov 27 '23 08:11 renovate[bot]

⚠️ Artifact update problem

Renovate failed to update artifacts 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 fuzz/subgraph/Cargo.toml --workspace
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/apollographql/router/apollo-router-scaffold/scaffold-test/Cargo.toml
workspace: /tmp/renovate/repos/github/apollographql/router/Cargo.toml
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `apollo-router v1.52.1 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.52.1) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.7.0` are: 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0

the package `apollo-router` depends on `axum`, with features: `headers` but `axum` does not have these features.


failed to select a version for `axum` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path apollo-router/Cargo.toml --workspace
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/apollographql/router/apollo-router-scaffold/scaffold-test/Cargo.toml
workspace: /tmp/renovate/repos/github/apollographql/router/Cargo.toml
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `apollo-router v1.52.1 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.52.1) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.7.0` are: 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0

the package `apollo-router` depends on `axum`, with features: `headers` but `axum` does not have these features.


failed to select a version for `axum` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path fuzz/Cargo.toml --workspace
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/apollographql/router/apollo-router-scaffold/scaffold-test/Cargo.toml
workspace: /tmp/renovate/repos/github/apollographql/router/Cargo.toml
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `apollo-router v1.52.1 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.52.1) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.7.0` are: 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0

the package `apollo-router` depends on `axum`, with features: `headers` but `axum` does not have these features.


failed to select a version for `axum` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --workspace
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/apollographql/router/apollo-router-scaffold/scaffold-test/Cargo.toml
workspace: /tmp/renovate/repos/github/apollographql/router/Cargo.toml
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `apollo-router v1.52.1 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.52.1) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.7.0` are: 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0

the package `apollo-router` depends on `axum`, with features: `headers` but `axum` does not have these features.


failed to select a version for `axum` which could resolve this conflict

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path apollo-router-scaffold/scaffold-test/Cargo.toml --workspace
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/apollographql/router/apollo-router-scaffold/scaffold-test/Cargo.toml
workspace: /tmp/renovate/repos/github/apollographql/router/Cargo.toml
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `apollo-router v1.52.1 (/tmp/renovate/repos/github/apollographql/router/apollo-router)`
    ... which satisfies path dependency `apollo-router` (locked to 1.52.1) of package `add-timestamp-header v0.1.0 (/tmp/renovate/repos/github/apollographql/router/examples/add-timestamp-header/rhai)`
versions that meet the requirements `^0.7.0` are: 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0

the package `apollo-router` depends on `axum`, with features: `headers` but `axum` does not have these features.


failed to select a version for `axum` which could resolve this conflict

renovate[bot] avatar May 13 '24 10:05 renovate[bot]