fix(deps): update all dependencies #19

Open
kjuulh wants to merge 1 commits from renovate/all into main
Owner

This PR contains the following updates:

Package Type Update Change
anyhow dependencies patch 1.0.75 -> 1.0.95
anyhow workspace.dependencies patch 1.0.75 -> 1.0.95
argon2 (source) workspace.dependencies patch 0.5.1 -> 0.5.3
async-graphql workspace.dependencies major 5.0.9 -> 7.0.0
async-graphql-axum workspace.dependencies major 5.0.9 -> 7.0.0
async-trait workspace.dependencies patch 0.1.73 -> 0.1.83
axum dependencies minor 0.6.1 -> 0.7.0
axum workspace.dependencies minor 0.6.18 -> 0.7.0
axum-extra workspace.dependencies minor 0.7.4 -> 0.9.0
axum-sessions workspace.dependencies minor 0.5.0 -> 0.6.0
chrono workspace.dependencies patch 0.4.26 -> 0.4.39
clap workspace.dependencies minor 4.3.23 -> 4.5.23
console_log dependencies major 0.2 -> 1.0
graphql_client dependencies minor 0.13.0 -> 0.14.0
lazy_static dependencies minor 1.4.0 -> 1.5.0
leptos dependencies minor 0.5.1 -> 0.7.2
leptos_axum dependencies minor 0.5.1 -> 0.7.2
leptos_dom dependencies minor 0.5.1 -> 0.7.2
leptos_meta dependencies minor 0.5.1 -> 0.7.2
leptos_router dependencies minor 0.5.1 -> 0.7.2
log dependencies patch 0.4.20 -> 0.4.22
oauth2 dependencies patch 4.4.1 -> 4.4.2
openidconnect dependencies minor 3.3.0 -> 3.5.0
postgres (source) final major 14-alpine -> 17-alpine
pretty_assertions workspace.dependencies patch 1.4.0 -> 1.4.1
sealed_test workspace.dependencies minor 1.0.0 -> 1.1.0
serde_json dependencies patch 1.0.107 -> 1.0.134
serde_json workspace.dependencies patch 1.0.105 -> 1.0.134
simple_logger dependencies major 4 -> 5
sqlx workspace.dependencies minor 0.6.2 -> 0.8.0
thiserror dependencies major 1 -> 2
tokio (source) dependencies minor 1.33.0 -> 1.42.0
tokio (source) workspace.dependencies minor 1.32.0 -> 1.42.0
tower dependencies minor 0.4.13 -> 0.5.0
tower-http dependencies minor 0.3.4 -> 0.6.0
tower-http dependencies minor 0.4.0 -> 0.6.0
uuid workspace.dependencies minor 1.4.1 -> 1.11.0
zitadel dependencies major 3.3.1 -> 5.0.0

Release Notes

dtolnay/anyhow (anyhow)

v1.0.95

Compare Source

v1.0.94

Compare Source

  • Documentation improvements

v1.0.93

Compare Source

  • Update dev-dependencies to thiserror v2

v1.0.92

Compare Source

  • Support Rust 1.82's &raw const and &raw mut syntax inside ensure! (#​390)

v1.0.91

Compare Source

  • Ensure OUT_DIR is left with deterministic contents after build script execution (#​388)

v1.0.90

Compare Source

  • Documentation improvements

v1.0.89

Compare Source

  • Make anyhow::Error's UnwindSafe and RefUnwindSafe impl consistently available between versions of Rust newer and older than 1.72 (#​386)

v1.0.88

Compare Source

  • Documentation improvements

v1.0.87

Compare Source

  • Support more APIs, including Error::new and Error::chain, in no-std mode on Rust 1.81+ (#​383)

v1.0.86

Compare Source

  • Fix parse error in ensure! with non-literal after minus sign (#​373)

v1.0.85

Compare Source

  • Improve ensure! macro's rules to unblock some rustc pretty-printer improvements (#​368, #​371)

v1.0.84

Compare Source

  • Disallow calling ensure! through a Not impl for a type that is not bool (#​367)

v1.0.83

Compare Source

  • Integrate compile-time checking of cfgs (#​363)

v1.0.82

Compare Source

  • Documentation improvements

v1.0.81

Compare Source

  • Make backtrace support available when using -Dwarnings (#​354)

v1.0.80

Compare Source

  • Fix unused_imports warnings when compiled by rustc 1.78

v1.0.79

Compare Source

  • Work around improperly cached build script result by sccache (#​340)

v1.0.78

Compare Source

  • Reduce spurious rebuilds under RustRover IDE when using a nightly toolchain (#​337)

v1.0.77

Compare Source

v1.0.76

Compare Source

  • Opt in to unsafe_op_in_unsafe_fn lint (#​329)
RustCrypto/password-hashes (argon2)

v0.5.3

Compare Source

v0.5.2

Compare Source

async-graphql/async-graphql (async-graphql)

v7.0.13

Compare Source

  • add support introspection inputValueDeprecation #​1621

v7.0.12

  • update MSRV to 1.81.0
  • Add specified complexity for fields in SimpleObject.
  • feat: expose SDL export utilities in ExtensionContext #​1606
  • feat(dynamic-schema): specify type directives in schema #​1607
  • Make http2 optional for actix #​1612
  • chore: use std OnceLock instead LazyLock #​1613
  • Add UUID validator #​1588
  • Update secrecy and support new types #​1627
  • fix #​1626
  • Allow non-native concrete types in generic structs deriving SimpleObject + InputObject #​1629
  • chore: update opentelemetry to 0.27 #​1614
  • connection: Allow 'first' and 'last' parameters to exist at the same time #​1602
  • feat(dynamic-schema): specify type directives in schema #​1607
  • Make boxed_any and borrowed_any for FieldValue work with trait objects again #​1636
  • Add new altair option #​1642
  • Fix Clippy for latest stable #​1639
  • Add boxed-trait feature #​1641
  • Support directive in complex object #​1644

v7.0.11

v7.0.10

  • add SchemeBuilder.limit_directives method to set the maximum number of directives on a single field.
  • remove needless ?Sized #​1593
  • fix: generate each variant description correctly. #​1589
  • Make From<T> for [Error] set source #​1561
  • feat(graphiql): add support for WS connection params #​1597

v7.0.9

  • add on_ping callback to WebSocket

v7.0.8

  • chore: Make Extensions nullable #​1563
  • expose rejection in async_graphql_axum #​1571
  • Updated crate time to 3.36, as it fixes a compilation error in rust 1.80 #​1572
  • Impl Debug for dynamic::FieldValue & Improve error messages for its methods #​1582
  • Support scraping #[doc = ...] attributes when generating descriptions #​1581
  • add Websocket::keepalive_timeout method to sets a timeout for receiving an acknowledgement of the keep-alive ping.

v7.0.7

  • Support raw values from serde_json #​1554
  • The custom directive ARGUMENT_DEFINITION is not being output at the appropriate location in SDL #​1559
  • Support for JSON extended representations of BSON ObjectId and Uuid #​1542
  • feat: get directives from SelectionField #​1548
  • Support Directives on Subscriptions #​1500
  • fix subscription err typo #​1556

v7.0.6

  • add license files to each project #​1523
  • Improve alignment of directive behavior with GraphQL spec #​1524
  • dynamic schema: pass default vals to ResolverContext #​1527
  • Add altair source #​1530
  • feat: Add support for using Interface and OneofObject on the same struct #​1534

v7.0.5

  • Fix compiler and clippy warnings #​1501
  • Added support for deploying to wasm targets with axum - (without subscriptions) #​1517
  • Bump opentelemetry (0.21.0 -> 0.22.0) #​1513
  • Update lru dependency #​1504
  • Support TypeDirective for ArgumentDefinition, Enum, EnumValue, InputFieldDefinition, InputObject, Interface #​1509
  • Add display attribute for Enum macro #​1518

v7.0.3

  • Sort schema fields & enums if required #​1475
  • Change the type_name of EmptySubscription fix #​1435 #​1475
  • add Request::set_parsed_query method #​1483
  • Upgrade strum to 0.26 #​1485
  • Fix validation of non-nullable variables with default values #​1491
  • add NextExecute::run_with_data method to attach context data before execution
  • feat: add registry method in dynamic::Registry #​1492
  • Allow non-scalars to be used as directive arguments #​1493
  • fix: add description to __schema introspection result #​1489

v7.0.2

  • Fix #[derive(OneofObject)] rejecting enums where the type comes from a macro subsitution #​1473
  • Optimize object proc-macro codegen #​1470
  • Use impl Future instead of async-trait in most traits. #​1468
  • Upgrade base64 to 0.21 #​1466
  • Standardize space between Args, Lists and Binary items #​1392
  • feat: support bigdecimal 0.4.x #​1358

v7.0.1

  • add support introspection inputValueDeprecation #​1621

v7.0.0

  • upgrade to http1
  • Feature extend ResolveInfo with field attribute #​1428

v6.0.11

v6.0.10

  • bump opentelemetry 0.20.0 #​1406
  • fix check for serial #​1405
  • fixes complexity visitor
  • bump Rocket from 0.5.0-rc.2 to 0.5.0-rc.4

v6.0.9

  • add support uploading files in dynamic schema #​1384
  • Include @composeDirective in Federation's _service field and document #[TypeDirective] #​1400

v6.0.7

  • initialize source field in tracing extension parse_query method #​1367
  • test(variables): empty object passes but empty array fails #​1377
  • Add support for entities without a reference resolver #​1378
  • Fixes #​1356

v6.0.6

  • fixed SDL formatting for resolver argument comments regressed #​1363

v6.0.5

  • Implement exporting argument documentation #​1352
  • Add ValueAccessor::as_value and ListAccessor::as_values_slice methods #​1353
  • dynamic: fixes key not found when using entity resolver #​1362
  • fix panic in complexity visitor #​1359
  • update MSRV to 1.70.0

v6.0.4

  • Parse "repeatable" in directive definitions. #​1336
  • add support multipart/mixed request. #​1348
  • async-graphql-actix-web: add GraphQL handler.
  • async-graphql-axum: add GraphQL service.

v6.0.3

  • dynamic: fix the error that some methods of XXXAccessor return reference lifetimes that are smaller than expected.
  • dynamic: no longer throws an error if the Query object does not contain any fields but the schema contains entities.
  • chore: make accessors public and reexport indexmap #​1329
  • feat: added OutputType implementation for std::sync::Weak #​1334

v6.0.1

v6.0.0

  • Bump syn from 1.0 to 2.0
  • Bump darling from 0.14 to 0.20
  • Bump indexmap from 1.6.2 to 2
  • Attributes guard, process_with, complexity support expression or string as value #​1295
  • Schema (type) level directive support with optional support of federation composeDirective #​1308
  • Add support for generic structs derriving InputObject and SimpleObject #​1313
  • chore: trim up some unnecessary code #​1324
  • Adds Dataloader::get_cached_values method to the dataloader cache so that callers can access the contents of the cache without knowing the keys. #​1326

Breaking Changes


#[derive(Interface)]
#[graphql(field(name = "id", ty = "&i32"))] // rename from type to ty
enum Node {
    MyObj(MyObj),
}
  • Change the parameter location of the macro Directive to PascalCase
// #[Directive(location = "field")]

#[Directive(location = "Field")]
pub fn lowercase() -> impl CustomDirective {
    LowercaseDirective
}
dtolnay/async-trait (async-trait)

v0.1.83

Compare Source

  • Prevent needless_arbitrary_self_type lint being produced in generated code (#​278)

v0.1.82

Compare Source

  • Prevent elided_named_lifetimes lint being produced in generated code (#​276)

v0.1.81

Compare Source

v0.1.80

Compare Source

v0.1.79

Compare Source

  • Clean up some dead code

v0.1.78

Compare Source

  • Prevent unused_qualifications lint being triggered in generated code in nightly-2024-03-05 and up (#​260)

v0.1.77

Compare Source

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

v0.1.76

Compare Source

  • Documentation improvements

v0.1.75

Compare Source

  • Documentation improvements

v0.1.74

Compare Source

  • Documentation improvements
tokio-rs/axum (axum)

v0.7.9: axum - v0.7.9

Compare Source

  • fixed: Avoid setting content-length before middleware (#​3031)

v0.7.8: axum - v0.7.8

Compare Source

  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#​2992)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#​2903)
  • added: Add MethodFilter::CONNECT, routing::connect[_service]
    and MethodRouter::connect[_service] (#​2961)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#​2978)

v0.7.7: axum - v0.7.7

Compare Source

  • change: Remove manual tables of content from the documentation, since
    rustdoc now generates tables of content in the sidebar (#​2921)

v0.7.6: axum - v0.7.6

Compare Source

  • change: Avoid cloning Arc during deserialization of Path
  • added: axum::serve::Serve::tcp_nodelay and axum::serve::WithGracefulShutdown::tcp_nodelay (#​2653)
  • added: Router::has_routes function (#​2790)
  • change: Update tokio-tungstenite to 0.23 (#​2841)
  • added: Serve::local_addr and WithGracefulShutdown::local_addr functions (#​2881)

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

  • added: Add axum::body::to_bytes (#​2373)
  • fixed: Gracefully handle accept errors in serve (#​2400)

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)
maxcountryman/axum-sessions (axum-sessions)

v0.6.1

Compare Source

v0.6.0: Migration to tower-sessions

Compare Source

!IMPORTANT]

# **Migration to `tower-sessions`**

**Development of this crate has moved to [`tower-sessions`](https://github.com/maxcountryman/tower-sessions).** Please consider migrating.

Numerous bugs and a significant design flaw with `axum-sessions` are addressed with `tower-sessions`.
chronotope/chrono (chrono)

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

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 and Duration 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 a DateTime 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 for Debug output.

In chrono 0.4.32 the range of NaiveDate, NaiveDateTime and DateTime 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 the MIN and MAX dates.

Duration had a similar issue. The range of this type was pretty arbitrary picked to match the range of an i64 in milliseconds. Negating an i64::MIN pushes a value out of range, and in the same way negating Duration::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.
  • Better support for rkyv.
  • Most methods on NaiveDateTime are now const.
  • We had to bump our MSRV to 1.61 to keep building with our dependencies. This will also allow us to make more methods on DateTime const in a future release.

Complete list of changes:

Fixes

  • Fix panic in TimeZone::from_local_datetime (#​1071)
  • Fix out of range panics in DateTime getters and setters (#​1317, #​1329)

Additions

Changes

  • Fix panic in Duration::MIN.abs() (adjust Duration::MIN by 1 millisecond) (#​1334)
  • Bump MSRV to 1.61 (#​1347)
  • Update windows-targets requirement from 0.48 to 0.52 (#​1360)
  • Update windows-bindgen to 0.52 (#​1379)

Deprecations

  • Deprecate standalone format functions (#​1306)

Documentation

Rkyv support

Changes to unstable features

  • Don't let unstable-locales imply the alloc feature (#​1307)
  • Remove format::{format_localized, format_item_localized} (#​1311)
  • Inline write_rfc2822_inner, don't localize (#​1322)

Internal

  • Add benchmark for DateTime::with_* (#​1309)
  • Fix *_DAYS_FROM_YEAR_0 calculation (#​1312)
  • Add NaiveTime::overflowing_(add|sub)_offset (#​1310)
  • Rewrite DateTime::overflowing_(add|sub)_offset (#​1069)
  • Tests calling date command set env LC_ALL (#​1315, thanks @​jtmoon79)
  • Update deny.toml (#​1320)
  • Bump actions/setup-node from 3 to 4 (#​1346)
  • test.yml remove errant with: node-version (#​1352, thanks @​jtmoon79)
  • CI Linting: Fix missing sources checkout in toml job (#​1371, thanks @​gibbz00)
  • Silence clippy lint for test code with Rust 1.74.0 (#​1362)

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
  • Deprecate timestamp_nanos in favor of the non-panicking timestamp_nanos_opt (#​1275)
Additions
Fixes
  • Format day of month in RFC 2822 without padding (#​1272)
  • Don't allow strange leap seconds which are not on a minute boundary initialization methods (#​1283)
    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
  • Fix underflow in NaiveDateTime::timestamp_nanos_opt (#​1294, thanks @​crepererum)
Documentation
  • Add more documentation about the RFC 2822 obsolete date format (#​1267)
Internal
  • Remove internal __doctest feature and doc_comment dependency (#​1276)
  • CI: Bump actions/checkout from 3 to 4 (#​1280)
  • Optimize NaiveDate::add_days for small values (#​1214)
  • Upgrade pure-rust-locales to 0.7.0 (#​1288, thanks @​jeremija wo did good improvements on pure-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.1 Duration type) with our own definition, which exposes a strict superset of the time::Duration API. This helps avoid warnings about the CVE-2020-26235 and RUSTSEC-2020-0071 advisories for downstream users and allows us to improve the Duration 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
Documentation

Relation between chrono and time 0.1

Rust first had a time module added to std in its 0.7 release. It later moved to libextra, and then to a libtime 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 as std::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 the time crate to eventually be redesigned (rust#18832, rust#18858), like the num and rand crates. Of course chrono kept its dependency on this time crate. time started re-exporting std::time::Duration during this period. Later, the standard library was changed to have a more limited unsigned Duration type (rust#24920, RFC 1040), while the time crate kept the full functionality with time::Duration. time::Duration had been a part of chrono's public API.

By 2016 time 0.1 lived under the rust-lang-deprecated organisation and was not actively maintained (time#136). chrono absorbed the platform functionality and Duration type of the time crate in chrono#478 (the work started in chrono#286). In order to preserve compatibility with downstream crates depending on time and chrono sharing a Duration type, chrono kept depending on time 0.1. chrono offered the option to opt out of the time dependency by disabling the oldtime feature (swapping it out for an effectively similar chrono type). In 2019, @​jhpratt took over maintenance on the time crate and released what amounts to a new crate as time 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 to localtime_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 to time.

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 function localtime_r to do the conversion to local time, which reads the TZ 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 the TZ variable or via iana-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 the TZ 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

  • Fix arbitrary string slicing in parse_rfc3339_relaxed (#​1254)

Deprecations

  • Deprecate TimeZone::datetime_from_str (#​1251)

Documentation

Internal improvements

  • Revert "add test_issue_866" (#​1238)
  • CI: run tests on i686 and wasm32-wasi (#​1237)
  • CI: Include doctests for code coverage (#​1248)
  • Move benchmarks to a separate crate (#​1243)
    This allows us to upgrade the criterion dependency to 5.1 without changing our MSRV.
  • Add Discord link to README (#​1240, backported in #​1256)

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

v0.4.28

Compare Source

This release fixes a test failure on 32-bit targets introduced with 0.4.27, see https://github.com/chronotope/chrono/issues/1234.

v0.4.27

Compare Source

This release bumps the MSRV from 1.56 to 1.57. This allows us to take advantage of the panicking in const feature. In this release most methods on NaiveDate and NaiveTime are made const, NaiveDateTime and others will follow in a later release.

The parser for the %+ formatting specifier and the RFC3339 formatting item is switched from a strict to a relaxed parser (see https://github.com/chronotope/chrono/pull/1145). This matches the existing documentation, and the parser used by DateTime::from_str. If you need to validate the input, consider using DateTime::from_rfc3339.

Deprecations

Additions

Fixes

Documentation

Internal improvements

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

clap-rs/clap (clap)

v4.5.23

Compare Source

Fixes
  • (parser) When check allow_negative_numbers, allow E again

v4.5.22

Compare Source

Fixes
  • (assert) Catch bugs with arguments requiring themself

v4.5.21

Compare Source

Fixes
  • (parser) Ensure defaults are filled in on error with ignore_errors(true)

v4.5.20

Compare Source

Features
  • (unstable) Add CommandExt

v4.5.19

Compare Source

Internal
  • Update dependencies

v4.5.18

Compare Source

Features
  • (builder) Expose Arg::get_display_order and Command::get_display_order

v4.5.17

Compare Source

Fixes
  • (help) Style required argument groups
  • (derive) Improve error messages when unsupported fields are used

v4.5.16

Compare Source

Fixes
  • (derive) Improve error messages when derive feature is missing

v4.5.15

Compare Source

Compatiblity
  • (unstable-ext) Arg::remove changed return types
Fixes
  • (unstable-ext) Make Arg::remove return the removed item

v4.5.14

Compare Source

Features
  • (unstable-ext) Added Arg::add for attaching arbitrary state, like completion hints, to Arg without Arg knowing about it

v4.5.13

Compare Source

Fixes
  • (derive) Improve error message when #[flatten]ing an optional #[group(skip)]
  • (help) Properly wrap long subcommand descriptions in help

v4.5.12

Compare Source

v4.5.11

Compare Source

v4.5.10

Compare Source

v4.5.9

Compare Source

Fixes
  • (error) When defining a custom help flag, be sure to suggest it like we do the built-in one

v4.5.8

Compare Source

Fixes
  • Reduce extra flushes

v4.5.7

Compare Source

Fixes
  • Clean up error message when too few arguments for num_args

v4.5.6

Compare Source

v4.5.5

Compare Source

Fixes
  • Allow exclusive to override required_unless_present, required_unless_present_any, required_unless_present_all

v4.5.4

Compare Source

Fixes
  • (derive) Allow non-literal #[arg(id)] attributes again

v4.5.3

Compare Source

Internal
  • (derive) Update heck

v4.5.2

Compare Source

Fixes
  • (parser) When check allow_negative_numbers, allow E again

v4.5.1

Compare Source

Internal
  • Update dependencies

v4.5.0

Compare Source

Compatibility
  • Update MSRV to 1.74

v4.4.18

Compare Source

Fixes
  • (error) When lacking usage feature, ensure the list of required arguments is unique

v4.4.17

Compare Source

Fixes
  • Fix panic! when mixing args_conflicts_with_subcommands with ArgGroup (which is implicit with derive) introduced in 4.4.15

v4.4.16

Compare Source

Fixes
  • Ensure invalid escape sequences in user-defined strings are correctly stripped when terminal doesn't support color

v4.4.15

Compare Source

Fixes
  • Improve error for args_conflicts_with_subcommands
  • Ensure we error for args_conflicts_with_subcommands when using subcommand short and long flags

v4.4.14

Compare Source

Documentation
  • Fix find cookbook entry to allow repeats of flags/options
Features
  • Allow num_args(0) on options which allows making them emulate being a flag for position-tracking flags

v4.4.13

Compare Source

Documentation
  • Fix link to structopt migration guide

v4.4.12

Compare Source

Performance
  • Only ask TypedValueParser for possible values if needed

v4.4.11

Compare Source

Features
  • Add Command::mut_group

v4.4.10

Compare Source

Documentation
  • Link out to changelog
  • Cross link derive's attribute reference to derive tutorial

v4.4.9

Compare Source

Fixes
  • (help) Show correct Command::about under flattened headings
  • (help) Respect hide when flattening subcommands

v4.4.8

Compare Source

Features
  • Add Command::flatten_help to allow git stash -h like help for subcommands

v4.4.7

Compare Source

Performance
  • Reduced code size

v4.4.6

Compare Source

Internal
  • Upgrade anstream

v4.4.5

Compare Source

Fixes
  • (parser) When inferring subcommand name or long_flag, allow ambiguous-looking matches that unambiguously map back to the same command
  • (parser) When inferring subcommand long_flag, don't panic
  • (assert) Clarify what action is causing a positional that doesn't set values which is especially useful for derive users

v4.4.4

Compare Source

Internal
  • Update terminal_size to 0.3

v4.4.3

Compare Source

Documentation
  • (derive) Clarify use of attributes within the tutorial
  • Split sections in the builder and derive tutorials into separate modules

v4.4.2

Compare Source

Performance
  • Improve build times by removing once_cell dependency

v4.4.1

Compare Source

Fixes
  • (error) When lacking usage feature, ensure the list of required arguments is unique

v4.4.0

Compare Source

compatibility
  • update msrv to 1.70.0

v4.3.24

Compare Source

Fixes
  • Ensure column padding is preserved in --help with custom templates
iamcodemaker/console_log (console_log)

v1.0.0

Compare Source

This is a re-release of v0.2.2. There have been no major code changes for over two years. Let's call it stable. 🎉

Full Changelog: https://github.com/iamcodemaker/console_log/compare/0.2.2...1.0.0

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
rust-lang-nursery/lazy-static.rs (lazy_static)

v1.5.0

Compare Source

leptos-rs/leptos (leptos)

v0.7.2

Compare Source

If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.

This is a small patch release including a couple of bugfixes, importantly to the hydration of static text nodes on nightly.

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.1...v0.7.2

v0.7.1

Compare Source

If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes here.

This is just a small patch release, two weeks after the 0.7.0 release, geared toward fixing in bugs and filling in API holes since then.

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.7.0...v0.7.1

v0.7.0

Compare Source

At long last, as the culmination of more than a year of work, the 0.7 release has arrived!

0.7 is a nearly-complete rewrite of the internals of the framework, with the following goals:

  • maintain backwards compatibility for as much user application code as possible
  • improve the async story and fix Suspense edge cases and limitations
  • reduce WASM binary size
  • reduce HTML size
  • faster HTML rendering
  • allow signals to be sent across threads
  • enhance the ergonomics of things like prop spreading and accessing the HTML shell of your application
  • build the foundation for future work
    • reactive stores to make nested reactivity more pleasant
    • client-side routing with islands and state preservation
    • integrating with native UI toolkits to create desktop applications
Getting Started

0.7 works with the current cargo-leptos version. If you want to start exploring, there are starter templates for Axum and Actix. Each template is only three files. They show some of the boilerplate differences; for more details, see below.

Axum: cargo leptos new --git https://github.com/leptos-rs/start-axum (repo)
Actix: cargo leptos new --git https://github.com/leptos-rs/start-actix (repo)

New Features
.await on resources and async in <Suspense/>

Currently, create_resource allows you to synchronously access the value of some async data as either None or Some(_). However, it requires that you always access it this way. This has some drawbacks:

  • requires that you null-check every piece of data
  • makes it difficult for one resource to wait for another resource to load

Now, you can .await a resource, and you can use async blocks within a <Suspense/> via the Suspend wrapper, which makes it easier to chain two resources:

let user = Resource::new(|| (), |_| user_id());
let posts = Resource::new(
    // resources still manually track dependencies (necessary for hydration)
    move || user.get(),
    move |_| async move {
        // but you can .await a resource inside another
        let user = user.await?;
        get_posts(user).await
    },
);

view! {
    <Suspense>
        // you can `.await` resources to avoid dealing with the `None` state
        <p>"User ID: " {move || Suspend::new(async move {
            match user.await {
                // ...
            }
        })}</p>
        // or you can still use .get() to access resources in things like component props
        <For
            each=move || posts.get().and_then(Result::ok).unwrap_or_default()
            key=|post| post.id
            let:post
        >
            // ...
        </For>
    </Suspense>
}
Reference-counted signal types

One of the awkward edge cases of current Leptos is that our Copy arena for signals makes it possible to leak memory if you have a collection of nested signals and do not dispose them. (See 0.6 example.) 0.7 exposes ArcRwSignal, ArcReadSignal, etc., which are Clone but not Copy and manage their memory via reference counting, but can easily be converted into the copyable RwSignal etc. This makes working with nested signal correctly much easier, without sacrificing ergonomics meaningfully. See the 0.7 counters example for more.

.read() and .write() on signals

You can now use .read() and .write() to get immutable and mutable guards for the value of a signal, which will track/update appropriately: these work like .with() and .update() but without the extra closure, or like .get() but without cloning.

let long_vec = RwSignal::new(vec![42; 1000]);
let short_vec = RwSignal::new(vec![13; 2]);
// bad: clones both Vecs
let bad_len = move || long_vec.get().len() + short_vec.get().len();
// ugly: awkward nested syntax (or a macro)
let ugly_len = move || long_vec.with(|long| short_vec.with(|short| long.len() + short.len()));
// readable but doesn't clone
let good_len = move || long_vec.read().len() + short_vec.read().len();

These should always be used for short periods of time, not stored somewhere for longer-term use, just like any guard or lock, or you can cause deadlocks or panics.

Custom HTML shell

The HTML document "shell" for server rendering is currently hardcoded as part of the server integrations, limiting your ability to customize it. Now you simply include it as part of your application, which also means that you can customize things like teh <title> without needing to use leptos_meta.

pub fn shell(options: LeptosOptions) -> impl IntoView {
    view! {
        <!DOCTYPE html>
        <html lang="en">
            <head>
                <meta charset="utf-8"/>
                <meta name="viewport" content="width=device-width, initial-scale=1"/>
                <AutoReload options=options.clone() />
                <HydrationScripts options/>
                <MetaTags/>
            </head>
            <body>
                <App/>
            </body>
        </html>
    }
}
Enhanced attribute spreading

Any valid attribute can now be spread onto any component, allowing you to extend the UI created by a component however you want. This works through multiple components: for example, if you spread attributes onto a Suspense they will be passed through to whatever it returns.

// attributes that are spread onto a component will be applied to *all* elements returned as part of
// the component's view. to apply attributes to a subset of the component, pass them via a component prop
<ComponentThatTakesSpread
    // the class:, style:, prop:, on: syntaxes work just as they do on elements
    class:foo=true
    style:font-weight="bold"
    prop:cool=42
    on:click=move |_| alert("clicked ComponentThatTakesSpread")
    // props are passed as they usually are on components
    some_prop=13
    // to pass a plain HTML attribute, prefix it with attr:
    attr:id="foo"
    // or, if you want to include multiple attributes, rather than prefixing each with
    // attr:, you can separate them from component props with the spread {..}
    {..} // everything after this is treated as an HTML attribute
    title="ooh, a title!"
    {..spread_onto_component}
/>
Improved <ProtectedRoute/>

The current ProtectedRoute component is not great: it checks the condition once, synchronously, on navigation, and so it doesn't respond to changes and can't easily be used with async data. The new ProtectedRoute is reactive and uses Suspense so you can use resources or reactive data. There are examples of this now in router and ssr_modes_axum.

Two-way binding with bind: syntax

Two-way binding allows you to pass signals directly to inputs, rather than separately managing prop:value and on:input to sync the signals to the inputs.

// You can use `RwSignal`s
let is_awesome = RwSignal::new(true);
let sth = RwSignal::new("one".to_string());

// And you can use split signals
let (text, set_text) = signal("Hello world".to_string());

view! {
    // Use `bind:checked` and a `bool` signal for a checkbox
    <input type="checkbox" bind:checked=is_awesome />

    // Use `bind:group` and `String` for radio inputs
    <input type="radio" value="one" bind:group=sth />
    <input type="radio" value="two" bind:group=sth />
    <input type="radio" value="trhee" bind:group=sth />

    // Use `bind:value` and `String` for everything else
    <input type="text" bind:value=(text, set_text) />
    <textarea bind:value=(text, set_text) />
}
Reactive Stores

Stores are a new reactive primitive that allow you to reactively access deeply-nested fields in a struct without needing to create signals inside signals; rather, you can use plain data types, annotated with #[derive(Store)], and then access fields with reactive getters/setters.

Updating one subfield of a Store does not trigger effects only listening to a sibling field; listening to one field of a store does not track the sibling fields.

Stores are most useful for nested data structures, so a succinct example is difficult, but the stores example shows a complete use case.

Support the View Transition API for router animations

The Routes/FlatRoutes component now have a transition prop. Setting this to true will cause the router to use the browser's View Transition API during navigation. You can control animations during navigation using CSS classes. Which animations are used can be controlled using classes that the router will set on the <html> element: .routing-progress while navigating, .router-back during a back navigation, and .router-outlet-{n} for the depth of the outlet that is being changed (0 for the root page changing, 1 for the first Outlet, etc.) The router example uses this API.

Note: View Transitions are not supported on all browsers, but have been accepted as a standard and can be polyfilled. Using a built-in browser API is much better in the long term than our bug-prone and difficult-to-maintain custom implementation.

Breaking Changes
Imports

I'm reorganizing the module structure to improve docs and discoverability. We will still have a prelude that can be used for glob imports of almost everything that's currently exported from the root.

- use leptos::*;
+ use leptos::prelude::*;

Likewise, the router exposes things via leptos_router::components and leptos_router::hooks. rust-analyzer can help fix imports fairly well.

I'm hoping for feedback on the new module structure, whether it makes sense, and any improvements. I have not done too much work to sort through the reexports, look at how docs look, etc. yet.

Naming

We're migrating away from create_ naming toward more idiomatic Rust naming patterns:

  • create_signal to signal (like channel)
  • create_rw_signal to RwSignal::new()
  • etc.

I've left some of the current functions in, marked deprecated; others may have been missed, but should be easy to find via docs.rs.

Type erasure and view types

One of the major changes in this release is replacing the View enum with statically-typed views, which is where most of the binary size savings come from. If you need to branch and return one of several types, you can either use one of the Either enums in leptos::either, or you can use .into_any() to erase the type. Generally speaking the compiler can do its job better if you maintain more type information so the Either types should be preferred, but AnyView is not bad to use when needed.

// Either
if some_condition {
    Either::Left(view! { <p>"Foo"</p> })
} else {
    Either::Right("Bar")
}

// .into_any()
if some_condition {
    view! { <p>"Foo"</p> }.into_any()
} else {
    "Bar".into_any()
}
Boilerplate

There have been changes to the SSR and hydration boilerplate, which include (but aren't limited to)

  • get_configuration is sync (remove the .await)
  • you provide the app shell
  • .leptos_routes no longer takes LeptosOptions as an argument
  • use leptos::mount::hydrate_body (hydration) instead of leptos::mount::mount_to_body (which is now CSR-specific)
  • ... and probably more

Check the starter templates for a good setup.

Route definitions

The patterns for route definition have changed in several ways.

  • fallback is now a required prop on <Routes/>, rather than an optional prop on <Router/>
  • If you do not need nested routes, there is now a <FlatRoutes/> component that optimizes for this case
  • If you use nested routes, any routes with children should be <ParentRoute/>
  • Route paths are defined with static types, rather than strings: path="foo" becomes path=StaticSegment("foo"), and there are path=":id" becomes path=ParamSegment("id"), path="posts/:id" becomes path=(StaticSegment("posts"), ParamSegment("id")), and so on. There is a path!() macro that will do this for you: i.e., it will expand path!("/foo/:id") to path=(StaticSegment("foo"), ParamSegment("id")).

See the router and hackernews examples.

Send/Sync signals

By default, the data held in reactive primitives (signals, memos, effects) must be safe to send across threads. For non-threadsafe types, there is a "storage" generic on signal types. This defaults to SyncStorage, but you can optionally specify LocalStorage instead. Many APIs have _local() alternatives to enable this.

let (foo, bar) = signal("baz");
// error: `std::rc::Rc<&str>` cannot be shared between threads safely
// let (foo, bar) = signal(Rc::new("baz"));
let (foo, bar) = signal_local(Rc::new("baz"));
let qux = RwSignal::new("baz");
// error: `std::rc::Rc<&str>` cannot be shared between threads safely
// let qux = RwSignal::new(Rc::new("baz"));
let qux = RwSignal::new_local(Rc::new("baz"));
Custom IntoView and IntoAttribute implementations

If you currently have implementations of IntoView or IntoAttribute for custom data types, in a way that allows you to use them directly in the view, you should replace those with implementations of IntoRender and IntoAttributeValue, respectively. See this PR for examples.

Minor Breaking Changes
  • The Await component now takes a plain Future for its future prop rather than a Fn() -> Future, because it uses an optimized resource implementation
  • Views for arbitrary data types can now be added by implementing IntoRender rather than IntoView (see discussion in #​3062)
  • ParamsMap supports multiple values per key (which is supported by query strings), so the API now differentiates between inserting a new value for the same key and replacing the value, and between getting one value and getting all values for a key
  • The Stylesheet component no longer automatically works with the file hashing feature of cargo-leptos. You can use HashedStylesheet and pass it the appropriate props instead.
  • A number of components previously had props that existed only to pass an HTML attribute down to the element they create. (For example, an <A> component with a class prop that set the class on the <a> element.) These have been replaced by the new attribute-spreading API, to reduce complexity of the components themselves.
  • LeptosOptions now uses Arc<str> for its fields that were formerly String, so that it is less expensive to clone. In practice, this usually only means using &field or field.as_ref() in a few places that require &str, and so on.
  • experimental-islands feature renamed to islands
  • The batch function no longer exists: all updates now exhibit the batching behavior that was previously opt-in via batch
  • Recursive components now need to be boxed/type-erased, to allow the compiler to calculate the size of the view tree correctly. You can do this by simply adding .into_any() at the end of the component that you are going to use recursively.
  • Signal<T> no longer directly implements From<Fn() -> T>, which allows it to implement From<T> and therefore to be a more useful replacement for MaybeSignal<T>, for a prop that is "some T or any signal that returns T." To convert a closure into a Signal<_> you can call Signal::derive() explicitly. I know this makes the ergonomics of using the Signal<_> wrapper slightly worse, but it adds additional expressiveness by supporting plain T. (If you want to keep the old behavior, consider taking impl Fn() -> T as a prop if you are using nightly, where all the signals as well as closures implement this trait.)
Miscellaneous

I'm sure there are a bunch of small and larger changes I have not mentioned above. By the time of final release, help compiling a total list of breaking changes/migration guide would be much appreciated. At present, the starter templates and the examples directory in the PR can provide a pretty comprehensive set of changes.

On storing views in signals...

There's a pattern I've seen many use that I do not particularly like, but accidentally enabled through the way APIs happened to be (or needed to be) designed in Leptos 0.1-0.6, in which a user stores some view in a signal and then reads it somewhere else. This was possible because View needed to be Clone for internal reasons. Some users used this to create custom control flow: for example, you could create a global "header view" signal, and then update it from leaf components by storing a new view in it.

I'd consider this a bit of an antipattern, for a couple reasons:

  1. Ideally the application is designed so that data flows through the reactive graph, and the view is defined declaratively at the "leaves" of the application by components that take that reactive data
  2. More practically, DOM elements are Clone but in a surprising way: you can clone the reference to a DOM node, but that is a shallow, not a deep clone, and if you use it in multiple places by .get()ing the signal more than once, it will only appear in the last location

In the statically-typed view tree, views are not necessarily cloneable (including the AnyView type), so they can't easily be stored in a signal.

However, it is possible to achieve a similar goal by using a "reactive channel" pattern instead:

let count = RwSignal::new(0);

let trigger = ArcTrigger::new();
let (tx, rx) = std::sync::mpsc::channel();

let on_click = {
    let trigger = trigger.clone();
    move |_| {
        leptos::logging::log!("clicked");
        *count.write() += 1;
        tx.send(if *count.read() % 2 == 0 {
            view! { <p>"An even paragraph"</p> }.into_any()
        } else {
            view! { <span>"An odd span"</span> }.into_any()
        })
        .unwrap();
        trigger.trigger();
    }
};

view! {
    <div>
        <button on:click=on_click>"Update view"</button>
        {move || {
            trigger.track();
            rx.try_recv().unwrap_or_else(|_| view! {
                <p>"Click the button once to begin."</p>
            }.into_any())
        }}
    </div>
}

Send the views through a channel means they do not need to be cloned, and won't be used in more than once place (avoiding the edge cases of 2 above.) Each time you send a view through the channel, simply trigger the trigger.

v0.6.15

Compare Source

Belated release notes for 0.6.15. This was a quick patch release to incorporate two changes, one to improve rust-analyzer support and the other to switch from the unmaintained proc-macro-error to proc-macro-error2 per RUSTSEC.

What's Changed
  • 0.6] fix: Rust-Analyzer hover information / redundant spans by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2840
    
  • leptos 0.6: Switch to proc-macro-error2 to address unmaintained security advisory. by @​azriel91 in https://github.com/leptos-rs/leptos/pull/2935

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.14...v0.6.15

v0.6.14

Compare Source

Hello everyone, The biggest change in this update is to handle wasm-bindgen 0.2.93 and web_sys 0.3.70 Thanks to @​sabify and @​maccesch for those PRs. As always, let us know if there's issues.

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.13...v0.6.14

v0.6.13

Compare Source

This release mostly includes a series of small bugfixes (see below), but also includes a fix for the annoying issues we'd been having with rust-analyzer (#​2527).

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.12...v0.6.13

v0.6.12

Compare Source

This is mainly a maintenance release, but includes a couple new features that I want to point out:

impl Trait in Component Props

You can now use impl Trait syntax directly in component props, rather than explicitly specifying a generic and a where clause

before

#[component]
fn ProgressBar<F>(#[prop(default = 100)] max: u16, progress: F) -> impl IntoView
where
    F: Fn() -> i32 + 'static,
{
    view! {
        <progress
            max=max
            value=progress
        />
    }
}
after

#[component]
fn ProgressBar(
    #[prop(default = 100)] max: u16,
    progress: impl Fn() -> i32 + 'static,
) -> impl IntoView {
    view! {
        <progress
            max=max
            value=progress
        />
    }
}
Support spreading dynamic attributes from one component to another

In the following code Bar doesn't currently inherit attributes from Foo when it spreads its attributes. PR #​2534 fixes this.

fn main() {
    let (count, set_count) = create_signal(0);

    mount_to_body(move || {
        view! {
            <Foo
                attr:hello=move || count.get().to_string()
            />

            <button on:click=move|_| { set_count.update(|count| *count += 1) }>"+ count"</button>
        }
    });
}

#[component]
fn Foo(#[prop(attrs)] attrs: Vec<(&'static str, Attribute)>) -> impl IntoView {
    view! {
        <Bar {..attrs} />
    }
}

#[component]
fn Bar(#[prop(attrs)] attrs: Vec<(&'static str, Attribute)>) -> impl IntoView {
    view! {
        <div {..attrs}>"hello world"</div>
    }
}
Complete Changelog
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.11...v0.6.12

v0.6.11

Compare Source

The primary purpose of this release is that it includes a fix for an unfortunate memory leak when using leptos_router on the server.

Also included are

  • the ability to spread both attributes and event handlers onto an element (see the new spread example for the full set of possibilities)
  • implementing IntoView directly for Rc<str>
  • massive improvements to the spans for error reporting in the view macro
  • migrating all our examples to use the stable features/syntax by default, to reduce confusion for new users

It's important to me to say that all three of the new features above were implemented by community members. This release brings us to over 250 total contributors over time, not to mention everyone who's done work on docs, templates, or libraries that exist outside this repo. Thank you to everyone who's been involved in this project so far.

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.10...v0.6.11

v0.6.10

Compare Source

Mostly a patch release with a number of bugfixes, as well as some nice quality-of-life improvements:

  • allowing #[prop(attrs)] on slots
  • add support for on: to dynamic children of components (i.e., when you do <MyComponent on:.../>, the event listener is now applied correctly to more of the children of <MyComponent/>)
What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.9...v0.6.10

v0.6.9

Compare Source

Mostly this release exists to fix imports in Cargo, as well as a few minor bug fixes

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.8...v0.6.9

v0.6.8

Compare Source

Mostly this release is to disable file hashing by default, and streamline it's use. It can now be enabled by setting hash-files=true in your Cargo.toml or setting the LEPTOS_HASH_FILES=true env var when running cargo-leptos. If you're using Docker or moving the bin to a new folder, you need to copy the (by default) hash.txt file from target/{release_profile_name} to the same folder as your binary, and make sure the env var or cargo.toml option is enabled. Also some minor bug fixes

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.7...v0.6.8

v0.6.7: 0.6.7

Compare Source

Hello everyone! Some lovely changes in here. My favorite is the addition of version hashes to css,js, and wasm files to automatically invalidate browser caching issues. Be sure to update to the latest version of cargo leptos(v0.2.8) to test out this feature. As always, big thanks to our returning contributors and welcome to the new folks!

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.6...v0.6.7

v0.6.6

Compare Source

Fixed some issues with examples, integrated a server macro for Spin, and improved a number of typos. Thanks to all that participated!
For general 0.6 release notes, see here.

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.5...v0.6.6

v0.6.5: 0.6.5

Compare Source

This fixes a few bugs that have popped up since 0.6. For general 0.6 release notes, see here.

What's Changed

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.4...v0.6.5

v0.6.4: 0.6.4

Compare Source

This fixes a few bugs that have popped up since 0.6.3. For general 0.6 migration notes, see here.

What's Changed

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.6.3...v0.6.4

v0.6.3: 0.6.3

Compare Source

This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.

Migration
Actix
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
Axum
  • This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult the diff on one of the examples. (Note that along with Axum 0.7, you'll need to update to http 1.0 and tower_http 0.5.)
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
  • RequestParts has been removed, as http::request::Parts now implements Clone: any use_context::<RequestParts>() should be updated to use Parts directly instead.
ServerFnError::new()

The addition of custom error types means that constructing ServerFnError inside server functions can cause type inference errors:

let oops = Err(ServerFnError::ServerError("No server state".to_string()));
return oops;  // this is fine
oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError`

As a result, we've added a helper ServerFnError::new which simply constructs a ServerFnError::<NoCustomError>::ServerError:

let oops = Err(ServerFnError::new("No server state"));
return oops;  // this is fine
oops? // this is also fine now

This has the benefit of being more concise than the earlier pattern in any case.

Features

A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing

  • automatic setup of server fn handlers with .leptos_routes() from the integrations
  • a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) (#​1868, #​1989)
  • support for streaming responses from server functions (#​1284)
  • ability to create custom user encodings for input and output by deriving IntoReq, FromReq, IntoRes, and/or FromRes traits
  • ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported
  • custom error types (#​1657)
  • a #[middleware] macro to add per-server-function middleware from the Tower or Actix ecosystems (#​1461)

Note: The additional included encodings (serde_lite, rkyv, multipart form data) are all enabled by additive features on the server_fn crate. If you want to use them you can just add that crate as a dependency and enable the required features.

Example: You can find a comprehensive example of these new features in the new server_fns_axum example.

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.3

v0.6.2

Compare Source

This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.

Migration
Actix
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
Axum
  • This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult the diff on one of the examples. (Note that along with Axum 0.7, you'll need to update to http 1.0 and tower_http 0.5.)
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
  • RequestParts has been removed, as http::request::Parts now implements Clone: any use_context::<RequestParts>() should be updated to use Parts directly instead.
ServerFnError::new()

The addition of custom error types means that constructing ServerFnError inside server functions can cause type inference errors:

let oops = Err(ServerFnError::ServerError("No server state".to_string()));
return oops;  // this is fine
oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError`

As a result, we've added a helper ServerFnError::new which simply constructs a ServerFnError::<NoCustomError>::ServerError:

let oops = Err(ServerFnError::new("No server state"));
return oops;  // this is fine
oops? // this is also fine now

This has the benefit of being more concise than the earlier pattern in any case.

Features

A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing

  • automatic setup of server fn handlers with .leptos_routes() from the integrations
  • a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) (#​1868, #​1989)
  • support for streaming responses from server functions (#​1284)
  • ability to create custom user encodings for input and output by deriving IntoReq, FromReq, IntoRes, and/or FromRes traits
  • ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported
  • custom error types (#​1657)
  • a #[middleware] macro to add per-server-function middleware from the Tower or Actix ecosystems (#​1461)

Note: The additional included encodings (serde_lite, rkyv, multipart form data) are all enabled by additive features on the server_fn crate. If you want to use them you can just add that crate as a dependency and enable the required features.

Example: You can find a comprehensive example of these new features in the new server_fns_axum example.

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.2

v0.6.1: 0.6.1

Compare Source

This is release for our new server functions rewrite and Axum 0.7 support.
This should be a relatively feature-rich release, with limited breaking changes.

Migration
Actix
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
Axum
  • This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult the diff on one of the examples.
  • You can remove any explicit .handle_server_fns() call in your main.rs, as server functions are now handled in .leptos_routes()
  • The current extract function has been removed, and replaced with a new extract that has the same API as the current extractor. I think this API is strictly better, but please share feedback if you disagree.
  • RequestParts has been removed, as http::request::Parts now implements Clone: any use_context::<RequestParts>() should be updated to use Parts directly instead.
ServerFnError::new()

The addition of custom error types means that constructing ServerFnError inside server functions can cause type inference errors:

let oops = Err(ServerFnError::ServerError("No server state".to_string()));
return oops;  // this is fine
oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError`

As a result, we've added a helper ServerFnError::new which simply constructs a ServerFnError::<NoCustomError>::ServerError:

let oops = Err(ServerFnError::new("No server state"));
return oops;  // this is fine
oops? // this is also fine now

This has the benefit of being more concise than the earlier pattern in any case.

Features

A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing

  • automatic setup of server fn handlers with .leptos_routes() from the integrations
  • a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) (#​1868, #​1989)
  • support for streaming responses from server functions (#​1284)
  • ability to create custom user encodings for input and output by deriving IntoReq, FromReq, IntoRes, and/or FromRes traits
  • ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported
  • custom error types (#​1657)
  • a #[middleware] macro to add per-server-function middleware from the Tower or Actix ecosystems (#​1461)

Note: The additional included encodings (serde_lite, rkyv, multipart form data) are all enabled by additive features on the server_fn crate. If you want to use them you can just add that crate as a dependency and enable the required features.

Example: You can find a comprehensive example of these new features in the new server_fns_axum example.

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.6...v0.6.1

v0.5.7

Compare Source

This has been a rocky week for releases. While finalizing the work on 0.6.0, I intended to publish a final 0.5.5 that would contain all the remaining changes to the 0.5 series. Unfortunately, this release contained two serious issues:

  1. breaking doc comments on server functions (fixed and rereleased in 0.5.6)
  2. The trailing_slash changes to the router in 0.5.5 broke the current routing behavior in several situations (see #​2203 for details)

Because some (many?) existing 0.5 apps would break with this new feature under 0.5 — and worse, because they would compile and then either panic or display the wrong page — I decide to revert the feature immediately. This meant a semver-breaking change between 0.5.6 and 0.5.7, so I have yanked 0.5.5 and 0.5.6 of all the crates.

We've added some appropriate regression tests for those issues. Apologies to anyone whose work was affected by this!

v0.5.6

Compare Source

Fix issue were doc comments on server functions caused an error. Sorry bout that!

What's Changed

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.5...v0.5.6

v0.5.5

Compare Source

This is a (mostly) bug fix and documentation improvements release. If you're interested in the full list, check out the full What's Changed list below.

What's New
Trailing Slash Changes

@​NfNitLoop discovered that by default the leptos_router strips trailing slashes from routes, which might not be what users expect. By default, leptos_router drops the trailing slash on /foo/. He's added a new optional setting on Router that could allow you to keep the slashes and have routes for both /foo and /foo/ or redirect from /foo/ to /foo. Check out the docs for details: https://docs.rs/leptos_router/0.5.5/leptos_router/enum.TrailingSlash.html
Thanks @​NfNitLoop!

Thanks to all our new and existing contributors, the 0.6 alpha will be coming out soon with fancy new server functions, so don't go away!

What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.4...v0.5.5

v0.5.4

Compare Source

v0.5.4

v0.5.3 inadvertently introduced a regression in the <A/> tag that broke [aria-current=page]. Here's 0.5.4 with a fix!

0.5.3 release notes below:


Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release.

Improved rust-analyzer support in #[component] macro body

Good LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the #[component] macro emits code in order to enable better rust-analyzer support within the body of components.

If you've disabled rust-analyzer inside #[component] for better DX, try toggling that off and see if this is a better experience than it was before!

Apologies for any regressions this causes. Please report any issues that arise.

There is still additional work to be done to support rust-analyzer in the view! macro. The hoped-for improvements here are solely inside the #[component] body.

Optional Context <Provider/> Component

Since 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see #​1986, #​2038).

This release includes a <Provider/> component that provides a certain value via context only to its children:


#[component]
pub fn App() -> impl IntoView {
    // each Provider will only provide the value to its children
    view! {
        <Provider value=1u8>
            // correctly gets 1 from context
            {use_context::<u8>().unwrap_or(0)}
        </Provider>
        <Provider value=2u8>
            // correctly gets 2 from context
            {use_context::<u8>().unwrap_or(0)}
        </Provider>
        // does not find any u8 in context
        {use_context::<u8>().unwrap_or(0)}
    }
}

provide_context continues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use <Provider/>. If you have no idea what I mean, check the issues above for examples of the bugs this fixes.

What's Changed

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.3...v0.5.4

v0.5.3

Compare Source

v0.5.3

Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release.

Improved rust-analyzer support in #[component] macro body

Good LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the #[component] macro emits code in order to enable better rust-analyzer support within the body of components.

If you've disabled rust-analyzer inside #[component] for better DX, try toggling that off and see if this is a better experience than it was before!

Apologies for any regressions this causes. Please report any issues that arise.

There is still additional work to be done to support rust-analyzer in the view! macro. The hoped-for improvements here are solely inside the #[component] body.

Optional Context <Provider/> Component

Since 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see #​1986, #​2038).

This release includes a <Provider/> component that provides a certain value via context only to its children:


#[component]
pub fn App() -> impl IntoView {
    // each Provider will only provide the value to its children
    view! {
        <Provider value=1u8>
            // correctly gets 1 from context
            {use_context::<u8>().unwrap_or(0)}
        </Provider>
        <Provider value=2u8>
            // correctly gets 2 from context
            {use_context::<u8>().unwrap_or(0)}
        </Provider>
        // does not find any u8 in context
        {use_context::<u8>().unwrap_or(0)}
    }
}

provide_context continues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use <Provider/>. If you have no idea what I mean, check the issues above for examples of the bugs this fixes.

Complete Changelog
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.2...v0.5.3

v0.5.2

Compare Source

This has a bunch of bugfixes, small docs improvements, etc. but there are actually a bunch of cool new features, mostly from our growing body of contributors. See the full changelog below, but here are some highlights (apologies if I missed anything big)

Features
extractor() function with better API

The extract API is awkward due to closure. This adds an extractor function which is a little more ergonomic.


#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Search {
    q: String,
}

// Actix

#[server]
pub async fn query_extract() -> Result<Search, ServerFnError> {
    use actix_web::web::Query;
    use leptos_actix::extractor;

    let Query(query) = extractor().await?;
    Ok(query)
}

// Axum

#[server]
pub async fn data() -> Result<Search, ServerFnError> {
    use axum::extract::Query;
    use leptos_axum::extractor;
    
    let Query(query) = extractor().await?;
    Ok(query)
}
<Portal/>

Adds a portal component that lets you render some view mounted in a location other than where it appears in the view tree.

<Show when=show_overlay fallback=|| ()>
    <div>Show</div>
    <Portal mount=document().get_element_by_id("app").unwrap()>
        <div style="position: fixed; z-index: 10; width: 100vw; height: 100vh; top: 0; left: 0; background: rgba(0, 0, 0, 0.8); color: white;">
            <p>This is in the body element</p>
            <button id="btn-hide" on:click=move |_| set_show_overlay(false)>
                Close Overlay
            </button>
            <button id="btn-toggle" on:click=move |_| set_show_inside_overlay(!show_inside_overlay())>
                Toggle inner
            </button>

            <Show when=show_inside_overlay fallback=|| view! { "Hidden" }>
                Visible
            </Show>
        </div>
    </Portal>
</Show>
Server Function Named Arguments

Now that we've made all server function arguments optional, this adds in the ability to pass in one or more named arguments:


#[server(endpoint = "/path/to/my/endpoint")]
pub async fn my_server_action() -> Result<(), ServerFnError> {
    Ok(())
}

#[server(encoding = "GetJson")]
pub async fn my_server_action() -> Result<(), ServerFnError> {
    Ok(())
}
Directives

Adds support for directive functions, which can be used with use: in the view:

// This doesn't take an attribute value
fn my_directive(el: HtmlElement<AnyElement>) {
    // do sth
}

// This requires an attribute value
fn another_directive(el: HtmlElement<AnyElement>, params: i32) {
    // do sth
}

// ... in the view
view! {
  <div use:my_directive></div>
  <SomeComponent use:another_directive=5 />
}
slice!() macro

Makes it easier to define slices. Expands to the same output as create_slice:


#[derive(Default)]
pub struct State {
    count: i32,
    name: String,
}

let state = create_rw_signal(State::default());

let (count, set_count) = slice!(state.count);
What's Changed
New Contributors

Full Changelog: https://github.com/leptos-rs/leptos/compare/v0.5.1...v0.5.2

rust-lang/log (log)

v0.4.22

Compare Source

v0.4.21

Compare Source

ramosbugs/oauth2-rs (oauth2)

v4.4.2

Compare Source

Bug Fixes
  • Enable chrono wasmbind feature to fix panic in WASM environments (#​230)
Other Changes
  • Fix token URL for Microsoft device code flow example (#​220)
  • Add Microsoft device code example with tenant ID (#​222)
ramosbugs/openidconnect-rs (openidconnect)

v3.5.0

Compare Source

New Features
Bug Fixes

Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/3.4.0...3.5.0

v3.4.0

Compare Source

New Features
  • Take JSON Web Key alg field into account during key selection (#​131). This change is gated by a non-default jwk-alg feature flag, which was added to avoid introducing breaking changes. During a future major version, this feature flag will be removed and the functionality will be included unconditionally.
  • Support EdDSA signatures (#​130)

Full Changelog: https://github.com/ramosbugs/openidconnect-rs/compare/3.3.1...3.4.0

v3.3.1

Compare Source

Bug Fixes
  • Enable chrono wasmbind feature to fix panic in WASM environments (#​127)
rust-pretty-assertions/rust-pretty-assertions (pretty_assertions)

v1.4.1

Compare Source

Fixed

Internal

oknozor/sealed-test (sealed_test)

v1.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/oknozor/sealed-test/commits/1.1.0

serde-rs/json (serde_json)

v1.0.134

Compare Source

  • Add RawValue associated constants for literal null, true, false (#​1221, thanks @​bheylin)

v1.0.133

Compare Source

  • Implement From<[T; N]> for serde_json::Value (#​1215)

v1.0.132

Compare Source

  • Improve binary size and compile time for JSON array and JSON object deserialization by about 50% (#​1205)
  • Improve performance of JSON array and JSON object deserialization by about 8% (#​1206)

v1.0.131

Compare Source

  • Implement Deserializer and IntoDeserializer for Map<String, Value> and &Map<String, Value> (#​1135, thanks @​swlynch99)

v1.0.130

Compare Source

  • Support converting and deserializing Number from i128 and u128 (#​1141, thanks @​druide)

v1.0.129

Compare Source

v1.0.128

Compare Source

v1.0.127

Compare Source

v1.0.126

Compare Source

  • Improve string parsing on targets that use 32-bit pointers but also have fast 64-bit integer arithmetic, such as aarch64-unknown-linux-gnu_ilp32 and x86_64-unknown-linux-gnux32 (#​1182, thanks @​CryZe)

v1.0.125

Compare Source

v1.0.124

Compare Source

v1.0.123

Compare Source

v1.0.122

Compare Source

  • Support using json! in no-std crates (#​1166)

v1.0.121

Compare Source

v1.0.120

Compare Source

v1.0.119

Compare Source

v1.0.118

Compare Source

v1.0.117

Compare Source

  • Resolve unexpected_cfgs warning (#​1130)

v1.0.116

Compare Source

v1.0.115

Compare Source

  • Documentation improvements

v1.0.114

Compare Source

  • Fix unused_imports warnings when compiled by rustc 1.78

v1.0.113

Compare Source

  • Add swap_remove and shift_remove methods on Map (#​1109)

v1.0.112

Compare Source

  • Improve formatting of "invalid type" error messages involving floats (#​1107)

v1.0.111

Compare Source

v1.0.110

Compare Source

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

v1.0.109

Compare Source

  • Documentation improvements

v1.0.108

Compare Source

borntyping/rust-simple_logger (simple_logger)

v5.0.0

Compare Source

What's Changed

  • Fix stderr color dependence on stdout by @​spoutn1k in https://github.com/borntyping/rust-simple_logger/pull/91
    • When using the stderr and colors features, logs will be printed in colour even when STDOUT is redirected.
    • Fixes #​71.
    • This also cleans up the feature names used in the code. All references should now be to the colors feature, not the colored dependency.
  • Removed set_up_color_terminal from the public API. This has been called by init() for a while now.

New Contributors

Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.3.3...v5.0.0

v4.3.3

Compare Source

What's Changed

  • Added notes on project status to the README (v4.3.1).
  • Ensure module_levels is always sorted, so that enabled() correctly selects the most specific target. Fixes #​90, thanks @​nikarh.

Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.3.0...v4.3.2

v4.3.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/borntyping/rust-simple_logger/compare/v4.2.0...v4.3.0

launchbadge/sqlx (sqlx)

v0.8.2

Compare Source

10 pull requests were merged this release cycle.

This release addresses a few regressions that have occurred, and refines SQLx's MSRV policy (see the FAQ).

Added
  • [#&#8203;3447]]: Clarify usage of Json/Jsonb in query macros \[\[[@&#8203;Lachstec](https://github.com/Lachstec)]]
    
    
Changed
  • [#&#8203;3424]]: Remove deprecated feature-names from `Cargo.toml` files in examples \[\[[@&#8203;carschandler](https://github.com/carschandler)]]
    
    
Fixed
  • [#&#8203;3403]]: Fix ([#&#8203;3395](https://github.com/launchbadge/sqlx/issues/3395)) sqlx::test macro in 0.8 \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]]
    
  • [#&#8203;3411]]: fix: Use rfc3339 to decode date from text \[\[[@&#8203;pierre-wehbe](https://github.com/pierre-wehbe)]]
    
  • [#&#8203;3453]]: fix([#&#8203;3445](https://github.com/launchbadge/sqlx/issues/3445)): PgHasArrayType \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]]
    -   Fixes `#[sqlx(no_pg_array)]` being forbidden on `#[derive(Type)]` structs.
    
  • [#&#8203;3454]]: fix: non snake case warning \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]]
    
  • [#&#8203;3459]]: Pgsql cube type compile fail \[\[[@&#8203;kdesjard](https://github.com/kdesjard)]]
    
  • [#&#8203;3465]]: fix(postgres): max number of binds is 65535, not 32767 (regression) \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3467]]: fix cancellation issues with `PgListener`, `PgStream::recv()` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   Fixes cryptic `unknown message: "\\0"` error
    
  • [#&#8203;3474]]: Fix try_get example in README.md \[\[[@&#8203;luveti](https://github.com/luveti)]]
    
    

v0.8.1

Compare Source

16 pull requests were merged this release cycle.

This release contains a fix for RUSTSEC-2024-0363.

Postgres users are advised to upgrade ASAP as a possible exploit has been demonstrated:
#​3440 (comment)

MySQL and SQLite do not appear to be exploitable, but upgrading is recommended nonetheless.

Added
  • [#&#8203;3421]]: correct spelling of `MySqlConnectOptions::no_engine_substitution()` \[\[[@&#8203;kolinfluence](https://github.com/kolinfluence)]]
    -   Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in favor of the correctly spelled version.
    
    
Changed
  • [#&#8203;3376]]: doc: hide `spec_error` module \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   This is a helper module for the macros and was not meant to be exposed.
    -   It is not expected to receive any breaking changes for the 0.8.x release, but is not designed as a public API.
        Use at your own risk.
    
  • [#&#8203;3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support sqlite 3.46 \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3385]]: chore(examples):Migrated the pg-chat example to ratatui \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3399]]: Upgrade to rustls 0.23 \[\[[@&#8203;djc](https://github.com/djc)]]
    -   RusTLS now has pluggable cryptography providers: `ring` (the existing implementation),
        and `aws-lc-rs` which has optional FIPS certification.
    -   The existing features activating RusTLS (`runtime-tokio-rustls`, `runtime-async-std-rustls`, `tls-rustls`)
        enable the `ring` provider of RusTLS to match the existing behavior so this *should not* be a breaking change.
    -   Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs` provider.
        -   If using `runtime-tokio-rustls` or `runtime-async-std-rustls`,
            this will necessitate switching to the appropriate non-legacy runtime feature:
            `runtime-tokio` or `runtime-async-std`
    -   See the RusTLS README for more details: <https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers>
    
    
Fixed
  • [#&#8203;2786]]: fix(sqlx-cli): do not clean sqlx during prepare \[\[[@&#8203;cycraig](https://github.com/cycraig)]]
    
  • [#&#8203;3354]]: sqlite: fix inconsistent read-after-write \[\[[@&#8203;ckampfe](https://github.com/ckampfe)]]
    
  • [#&#8203;3371]]: Fix encoding and decoding of MySQL enums in `sqlx::Type` \[\[[@&#8203;alu](https://github.com/alu)]]
    
  • [#&#8203;3374]]: fix: usage of `node12` in `SQLx` action \[\[[@&#8203;hamirmahal](https://github.com/hamirmahal)]]
    
  • [#&#8203;3380]]: chore: replace structopt with clap in examples \[\[[@&#8203;tottoto](https://github.com/tottoto)]]
    
  • [#&#8203;3381]]: Fix CI after Rust 1.80, remove dead feature references \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3384]]: chore(tests): fixed deprecation warnings \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1` to avoid yanked `v0.14.3` \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3389]]: fix(cli): typo in error for required DB URL \[\[[@&#8203;ods](https://github.com/ods)]]
    
  • [#&#8203;3417]]: Update version to 0.8 in README \[\[[@&#8203;soucosmo](https://github.com/soucosmo)]]
    
  • [#&#8203;3441]]: fix: audit protocol handling \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   This addresses [RUSTSEC-2024-0363] and includes regression tests for MySQL, Postgres and SQLite.
    
    

v0.8.0

Compare Source

70 pull requests were merged this release cycle.

#​2697 was merged the same day as release 0.7.4 and so was missed by the automatic CHANGELOG generation.

Breaking
  • [#&#8203;2697]]: fix(macros): only enable chrono when time is disabled \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;2973]]: Generic Associated Types in Database, replacing HasValueRef, HasArguments, HasStatement \[\[[@&#8203;nitn3lav](https://github.com/nitn3lav)]]
    
  • [#&#8203;2482]]: chore: bump syn to 2.0 \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    -   Deprecated type ascription syntax in the query macros was removed.
    
  • [#&#8203;2736]]: Fix describe on PostgreSQL views with rules \[\[[@&#8203;tsing](https://github.com/tsing)]]
    -   Potentially breaking: nullability inference changes for Postgres.
    
  • [#&#8203;2869]]: Implement PgHasArrayType for all references \[\[[@&#8203;tylerhawkes](https://github.com/tylerhawkes)]]
    -   Conflicts with existing manual implementations.
    
  • [#&#8203;2940]]: fix: Decode and Encode derives ([#&#8203;1031](https://github.com/launchbadge/sqlx/issues/1031)) \[\[[@&#8203;benluelo](https://github.com/benluelo)]]
    -   Changes lifetime obligations for field types.
    
  • [#&#8203;3064]]: Sqlite explain graph \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    -   Potentially breaking: nullability inference changes for SQLite.
    
  • [#&#8203;3123]]: Reorder attrs in sqlx::test macro \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]]
    -   Potentially breaking: attributes on `#[sqlx::test]` usages are applied in the correct order now.
    
  • [#&#8203;3126]]: Make Encode return a result \[\[[@&#8203;FSMaxB](https://github.com/FSMaxB)]]
    
  • [#&#8203;3130]]: Add version information for failed cli migration ([#&#8203;3129](https://github.com/launchbadge/sqlx/issues/3129)) \[\[[@&#8203;FlakM](https://github.com/FlakM)]]
    -   Breaking changes to `MigrateError`.
    
  • [#&#8203;3181]]: feat: no tx migration \[\[[@&#8203;cleverjam](https://github.com/cleverjam)]]
    -   (Postgres only) migrations that should not run in a transaction can be flagged by adding `-- no-transaction` to the beginning.
    -   Breaking change: added field to `Migration`
    
  • [#&#8203;3184]]: \[BREAKING} fix(sqlite): always use `i64` as intermediate when decoding \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   integer decoding will now loudly error on overflow instead of silently truncating.
    -   some usages of the query!() macros might change an i32 to an i64.
    
  • [#&#8203;3252]]: fix `#[derive(sqlx::Type)]` in Postgres \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   Manual implementations of PgHasArrayType for enums will conflict with the generated one. Delete the manual impl or add `#[sqlx(no_pg_array)]` where conflicts occur.
    -   Type equality for PgTypeInfo is now schema-aware.
    
  • [#&#8203;3329]]: fix: correct handling of arrays of custom types in Postgres \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   Potential breaking change: `PgTypeInfo::with_name()` infers types that start with `_` to be arrays of the un-prefixed type. Wrap type names in quotes to bypass this behavior.
    
  • [#&#8203;3356]]: breaking: fix name collision in `FromRow`, return `Error::ColumnDecode` for `TryFrom` errors \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   Breaking behavior change: errors with `#[sqlx(try_from = "T")]` now return `Error::ColumnDecode` instead of `Error::ColumnNotFound`.
    -   Breaking because `#[sqlx(default)]` on an individual field or the struct itself would have previously suppressed the error.
        This doesn't seem like good behavior as it could result in some potentially very difficult bugs.
        -   Instead, create a wrapper implementing `From` and apply the default explicitly.
    
  • [#&#8203;3337]]: allow rename with rename_all (close [#&#8203;2896](https://github.com/launchbadge/sqlx/issues/2896)) \[\[[@&#8203;DirectorX](https://github.com/DirectorX)]]
    -   Changes the precedence of `#[sqlx(rename)]` and `#[sqlx(rename_all)]` to match the expected behavior (`rename` wins).
    
  • [#&#8203;3285]]: fix: use correct names for sslmode options \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]]
    -   Changes the output of `ConnectOptions::to_url_lossy()` to match what parsing expects.
    
    
Added
  • [#&#8203;2917]]: Add Debug impl for PgRow \[\[[@&#8203;g-bartoszek](https://github.com/g-bartoszek)]]
    
  • [#&#8203;3113]]: feat: new derive feature flag \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;3154]]: feat: add `MySqlTime`, audit `mysql::types` for panics \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3188]]: feat(cube): support postgres cube \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]]
    
  • [#&#8203;3244]]: feat: support `NonZero*` scalar types \[\[[@&#8203;AlphaKeks](https://github.com/AlphaKeks)]]
    
  • [#&#8203;3260]]: feat: Add set_update_hook on SqliteConnection \[\[[@&#8203;gridbox](https://github.com/gridbox)]]
    
  • [#&#8203;3291]]: feat: support the Postgres Bool type for the Any driver \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]]
    
  • [#&#8203;3293]]: Add LICENSE-\* files to crates \[\[[@&#8203;LecrisUT](https://github.com/LecrisUT)]]
    
  • [#&#8203;3303]]: add array support for NonZeroI\* in postgres \[\[[@&#8203;JohannesIBK](https://github.com/JohannesIBK)]]
    
  • [#&#8203;3311]]: Add example on how to use Transaction as Executor \[\[[@&#8203;Lachstec](https://github.com/Lachstec)]]
    
  • [#&#8203;3343]]: Add support for PostgreSQL HSTORE data type \[\[[@&#8203;KobusEllis](https://github.com/KobusEllis)]]
    
    
Changed
  • [#&#8203;2652]]: MySQL: Remove collation compatibility check for strings \[\[[@&#8203;alu](https://github.com/alu)]]
    
  • [#&#8203;2960]]: Removed `Send` trait bound from argument binding \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]]
    
  • [#&#8203;2970]]: refactor: lift type mappings into driver crates \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3148]]: Bump libsqlite3-sys to v0.28 \[\[[@&#8203;NfNitLoop](https://github.com/NfNitLoop)]]
    -   Note: version bumps to `libsqlite3-sys` are not considered breaking changes as per our semver guarantees.
    
  • [#&#8203;3265]]: perf: box `MySqlConnection` to reduce sizes of futures \[\[[@&#8203;stepantubanov](https://github.com/stepantubanov)]]
    
  • [#&#8203;3352]]: chore:added a testcase for `sqlx migrate add ...` \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3340]]: ci: Add job to check that sqlx builds with its declared minimum dependencies \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
    
Fixed
  • [#&#8203;2702]]: Constrain cyclic associated types to themselves \[\[[@&#8203;BadBastion](https://github.com/BadBastion)]]
    
  • [#&#8203;2954]]: Fix several inter doc links \[\[[@&#8203;ralpha](https://github.com/ralpha)]]
    
  • [#&#8203;3073]]: feat(logging): Log slow acquires from connection pool \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3137]]: SqliteConnectOptions::filename() memory fix ([#&#8203;3136](https://github.com/launchbadge/sqlx/issues/3136)) \[\[[@&#8203;hoxxep](https://github.com/hoxxep)]]
    
  • [#&#8203;3138]]: PostgreSQL Bugfix: Ensure connection is usable after failed COPY inside a transaction \[\[[@&#8203;feikesteenbergen](https://github.com/feikesteenbergen)]]
    
  • [#&#8203;3146]]: fix(sqlite): delete unused `ConnectionHandleRaw` type \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3162]]: Drop urlencoding dependency \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;3165]]: Bump deps that do not need code changes \[\[[@&#8203;GnomedDev](https://github.com/GnomedDev)]]
    
  • [#&#8203;3167]]: fix(ci): use `docker compose` instead of `docker-compose` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3172]]: fix: Option decoding in any driver \[\[[@&#8203;pxp9](https://github.com/pxp9)]]
    
  • [#&#8203;3173]]: fix(postgres) : int type conversion while decoding \[\[[@&#8203;RaghavRox](https://github.com/RaghavRox)]]
    
  • [#&#8203;3190]]: Update time to 0.3.36 \[\[[@&#8203;BlackSoulHub](https://github.com/BlackSoulHub)]]
    
  • [#&#8203;3191]]: Fix unclean TLS shutdown \[\[[@&#8203;levkk](https://github.com/levkk)]]
    
  • [#&#8203;3194]]: Fix leaking connections in fetch_optional ([#&#8203;2647](https://github.com/launchbadge/sqlx/issues/2647)) \[\[[@&#8203;danjpgriffin](https://github.com/danjpgriffin)]]
    
  • [#&#8203;3216]]: security: bump rustls to 0.21.11 \[\[[@&#8203;toxeus](https://github.com/toxeus)]]
    
  • [#&#8203;3230]]: fix: sqlite pragma order for auto_vacuum \[\[[@&#8203;jasonish](https://github.com/jasonish)]]
    
  • [#&#8203;3233]]: fix: get_filename should not consume self \[\[[@&#8203;jasonish](https://github.com/jasonish)]]
    
  • [#&#8203;3234]]: fix(ci): pin Rust version, ditch unmaintained actions \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3236]]: fix: resolve `path` ownership problems when using `sqlx_macros_unstable` \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]]
    
  • [#&#8203;3254]]: fix: hide `sqlx_postgres::any` \[\[[@&#8203;Zarathustra2](https://github.com/Zarathustra2)]]
    
  • [#&#8203;3266]]: ci: MariaDB - add back 11.4 and add 11.5 \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]]
    
  • [#&#8203;3267]]: ci: syntax fix \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]]
    
  • [#&#8203;3271]]: docs(sqlite): fix typo - unixtime() -> unixepoch() \[\[[@&#8203;joelkoen](https://github.com/joelkoen)]]
    
  • [#&#8203;3276]]: Invert boolean for `migrate` error message. ([#&#8203;3275](https://github.com/launchbadge/sqlx/issues/3275)) \[\[[@&#8203;nk9](https://github.com/nk9)]]
    
  • [#&#8203;3279]]: fix Clippy errors \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3288]]: fix: sqlite update_hook char types \[\[[@&#8203;jasonish](https://github.com/jasonish)]]
    
  • [#&#8203;3297]]: Pass the `persistent` query setting when preparing queries with the `Any` driver \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]]
    
  • [#&#8203;3298]]: Track null arguments in order to provide the appropriate type when converting them. \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]]
    
  • [#&#8203;3312]]: doc: Minor rust docs fixes \[\[[@&#8203;SrGesus](https://github.com/SrGesus)]]
    
  • [#&#8203;3327]]: chore: fixed one usage of `select_input_type!()` being unhygenic \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3328]]: fix(ci): comment not separated from other characters \[\[[@&#8203;hamirmahal](https://github.com/hamirmahal)]]
    
  • [#&#8203;3341]]: refactor: Resolve cargo check warnings in postgres examples \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3346]]: fix(postgres): don't panic if `M` or `C` Notice fields are not UTF-8 \[\[[@&#8203;YgorSouza](https://github.com/YgorSouza)]]
    
  • [#&#8203;3350]]: fix:the `json`-feature should activate `sqlx-postgres?/json` as well \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]]
    
  • [#&#8203;3353]]: fix: build script new line at eof \[\[[@&#8203;Zarthus](https://github.com/Zarthus)]]
    
  • (no PR): activate clock and std features of workspace.dependencies.chrono.

v0.7.4

Compare Source

38 pull requests were merged this release cycle.

This is officially the last release of the 0.7.x release cycle.

As of this release, development of 0.8.0 has begun on main and only high-priority bugfixes may be backported.

Added
  • [#&#8203;2891]]: feat: expose getters for connect options fields \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;2902]]: feat: add `to_url_lossy` to connect options \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]]
    
  • [#&#8203;2927]]: Support `query!` for cargo-free systems \[\[[@&#8203;kshramt](https://github.com/kshramt)]]
    
  • [#&#8203;2997]]: doc(FAQ): add entry explaining prepared statements \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3001]]: Update README to clarify MariaDB support \[\[[@&#8203;iangilfillan](https://github.com/iangilfillan)]]
    
  • [#&#8203;3004]]: feat(logging): Add numeric elapsed time field elapsed_secs \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3007]]: feat: add `raw_sql` API \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   This hopefully makes it easier to find how to execute statements which are not supported by the default
        prepared statement interfaces `query*()` and `query!()`.
    -   Improved documentation across the board for the `query*()` functions.
    -   Deprecated: `execute_many()` and `fetch_many()` on interfaces that use prepared statements.
        -   Multiple SQL statements in one query string were only supported by SQLite because its prepared statement
            interface is the *only* way to execute SQL. All other database flavors forbid multiple statements in
            one prepared statement string as an extra defense against SQL injection.
        -   The new `raw_sql` API retains this functionality because it explicitly does *not* use prepared statements.
            Raw or text-mode query interfaces generally allow multiple statements in one query string, and this is
            supported by all current databases. Due to their nature, however, one cannot use bind parameters with them.
        -   If this change affects you, an issue is open for discussion: https://github.com/launchbadge/sqlx/issues/3108
    
  • [#&#8203;3011]]: Added support to IpAddr with MySQL/MariaDB. \[\[[@&#8203;Icerath](https://github.com/Icerath)]]
    
  • [#&#8203;3013]]: Add default implementation for PgInterval \[\[[@&#8203;pawurb](https://github.com/pawurb)]]
    
  • [#&#8203;3018]]: Add default implementation for PgMoney \[\[[@&#8203;pawurb](https://github.com/pawurb)]]
    
  • [#&#8203;3026]]: Update docs to reflect support for MariaDB data types \[\[[@&#8203;iangilfillan](https://github.com/iangilfillan)]]
    
  • [#&#8203;3037]]: feat(mysql): allow to connect with mysql driver without default behavor \[\[[@&#8203;darkecho731](https://github.com/darkecho731)]]
    
    
Changed
  • [#&#8203;2900]]: Show latest url to docs for macro.migrate \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]]
    
  • [#&#8203;2914]]: Use `create_new` instead of `atomic-file-write` \[\[[@&#8203;mattfbacon](https://github.com/mattfbacon)]]
    
  • [#&#8203;2926]]: docs: update example for `PgConnectOptions` \[\[[@&#8203;Fyko](https://github.com/Fyko)]]
    
  • [#&#8203;2989]]: sqlx-core: Remove dotenvy dependency \[\[[@&#8203;joshtriplett](https://github.com/joshtriplett)]]
    
  • [#&#8203;2996]]: chore: Update ahash to 0.8.7 \[\[[@&#8203;takenoko-gohan](https://github.com/takenoko-gohan)]]
    
  • [#&#8203;3006]]: chore(deps): Replace unmaintained tempdir crate with tempfile \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3008]]: chore: Ignore .sqlx folder created by running ci steps locally \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3009]]: chore(dev-deps): Upgrade env_logger from 0.9 to 0.11 \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3010]]: chore(deps): Upgrade criterion to 0.5.1 \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]]
    
  • [#&#8203;3050]]: Optimize SASL auth in sqlx-postgres \[\[[@&#8203;mirek26](https://github.com/mirek26)]]
    
  • [#&#8203;3055]]: Set TCP_NODELAY option on TCP sockets \[\[[@&#8203;mirek26](https://github.com/mirek26)]]
    
  • [#&#8203;3065]]: Improve max_lifetime handling \[\[[@&#8203;mirek26](https://github.com/mirek26)]]
    
  • [#&#8203;3072]]: Change the name of "inner" function generated by `#[sqlx::test]` \[\[[@&#8203;ciffelia](https://github.com/ciffelia)]]
    
  • [#&#8203;3083]]: Remove sha1 because it's not being used in postgres \[\[[@&#8203;rafaelGuerreiro](https://github.com/rafaelGuerreiro)]]
    
    
Fixed
  • [#&#8203;2898]]: Fixed docs \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]]
    
  • [#&#8203;2905]]: fix(mysql): Close prepared statement if persistence is disabled \[\[[@&#8203;larsschumacher](https://github.com/larsschumacher)]]
    
  • [#&#8203;2913]]: Fix handling of deferred constraints \[\[[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw)]]
    
  • [#&#8203;2919]]: fix duplicate "\`" in FromRow "default" attribute doc comment \[\[[@&#8203;shengsheng](https://github.com/shengsheng)]]
    
  • [#&#8203;2932]]: fix(postgres): avoid unnecessary flush in PgCopyIn::read_from \[\[[@&#8203;tsing](https://github.com/tsing)]]
    
  • [#&#8203;2955]]: Minor fixes \[\[[@&#8203;Dawsoncodes](https://github.com/Dawsoncodes)]]
    
  • [#&#8203;2963]]: Fixed ReadMe badge styling \[\[[@&#8203;tadghh](https://github.com/tadghh)]]
    
  • [#&#8203;2976]]: fix: AnyRow not support PgType::Varchar \[\[[@&#8203;holicc](https://github.com/holicc)]]
    
  • [#&#8203;3053]]: fix: do not panic when binding a large BigDecimal \[\[[@&#8203;Ekleog](https://github.com/Ekleog)]]
    
  • [#&#8203;3056]]: fix: spans in sqlite tracing ([#&#8203;2876](https://github.com/launchbadge/sqlx/issues/2876)) \[\[[@&#8203;zoomiti](https://github.com/zoomiti)]]
    
  • [#&#8203;3089]]: fix(migrate): improve error message when parsing version from filename \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;3098]]: Migrations fixes \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   Unhides `sqlx::migrate::Migrator`.
    -   Improves I/O error message when failing to read a file in `migrate!()`.
    
    

v0.7.3

38 pull requests were merged this release cycle.

Added
  • [#&#8203;2478]]: feat(citext): support postgres citext \[\[[@&#8203;hgranthorner](https://github.com/hgranthorner)]]
    
  • [#&#8203;2545]]: Add `fixtures_path` in sqlx::test args \[\[[@&#8203;ripa1995](https://github.com/ripa1995)]]
    
  • [#&#8203;2665]]: feat(mysql): support packet splitting \[\[[@&#8203;tk2217](https://github.com/tk2217)]]
    
  • [#&#8203;2752]]: Enhancement [#&#8203;2747](https://github.com/launchbadge/sqlx/issues/2747) Provide `fn PgConnectOptions::get_host(&self)` \[\[[@&#8203;boris-lok](https://github.com/boris-lok)]]
    
  • [#&#8203;2769]]: Customize the macro error message based on the metadata \[\[[@&#8203;Nemo157](https://github.com/Nemo157)]]
    
  • [#&#8203;2793]]: derived Hash trait for PgInterval \[\[[@&#8203;yasamoka](https://github.com/yasamoka)]]
    
  • [#&#8203;2801]]: derive FromRow: sqlx(default) for all fields \[\[[@&#8203;grgi](https://github.com/grgi)]]
    
  • [#&#8203;2827]]: Add impl `FromRow` for the unit type \[\[[@&#8203;nanoqsh](https://github.com/nanoqsh)]]
    
  • [#&#8203;2871]]: Add `MySqlConnectOptions::get_database()`  \[\[[@&#8203;shiftrightonce](https://github.com/shiftrightonce)]]
    
  • [#&#8203;2873]]: Sqlx Cli: Added force flag to drop database for postgres \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]]
    
  • [#&#8203;2894]]: feat: `Text` adapter \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
    
Changed
  • [#&#8203;2701]]: Remove documentation on offline feature \[\[[@&#8203;Baptistemontan](https://github.com/Baptistemontan)]]
    
  • [#&#8203;2713]]: Add additional info regarding using Transaction and PoolConnection as… \[\[[@&#8203;satwanjyu](https://github.com/satwanjyu)]]
    
  • [#&#8203;2770]]: Update README.md \[\[[@&#8203;snspinn](https://github.com/snspinn)]]
    
  • [#&#8203;2797]]: doc(mysql): document behavior regarding `BOOLEAN` and the query macros \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2803]]: Don't use separate temp dir for query jsons (2)  \[\[[@&#8203;mattfbacon](https://github.com/mattfbacon)]]
    
  • [#&#8203;2819]]: postgres begin cancel safe \[\[[@&#8203;conradludgate](https://github.com/conradludgate)]]
    
  • [#&#8203;2832]]: Update extra_float_digits default to 2 instead of 3 \[\[[@&#8203;brianheineman](https://github.com/brianheineman)]]
    
  • [#&#8203;2865]]: Update Faq - Bulk upsert with optional fields  \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]]
    
  • [#&#8203;2880]]: feat: use specific message for slow query logs \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2882]]: Do not require db url for prepare \[\[[@&#8203;tamasfe](https://github.com/tamasfe)]]
    
  • [#&#8203;2890]]: doc(sqlite): cover lack of `NUMERIC` support \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • No PR]: Upgraded `libsqlite3-sys` to 0.27.0
    -   Note: linkage to `libsqlite3-sys` is considered semver-exempt;
        see the release notes for 0.7.0 below for details.
    
    
Fixed
  • [#&#8203;2640]]: fix: sqlx::macro db cleanup race condition by adding a margin to current timestamp \[\[[@&#8203;fhsgoncalves](https://github.com/fhsgoncalves)]]
    
  • [#&#8203;2655]]: \[fix] Urlencode when passing filenames to sqlite3 \[\[[@&#8203;uttarayan21](https://github.com/uttarayan21)]]
    
  • [#&#8203;2684]]: Make PgListener recover from UnexpectedEof \[\[[@&#8203;hamiltop](https://github.com/hamiltop)]]
    
  • [#&#8203;2688]]: fix: Make rust_decimal and bigdecimal decoding more lenient \[\[[@&#8203;cameronbraid](https://github.com/cameronbraid)]]
    
  • [#&#8203;2754]]: Is tests/x.py maintained? And I tried fix it. \[\[[@&#8203;qwerty2501](https://github.com/qwerty2501)]]
    
  • [#&#8203;2784]]: fix: decode postgres time without subsecond \[\[[@&#8203;granddaifuku](https://github.com/granddaifuku)]]
    
  • [#&#8203;2806]]: Depend on version of async-std with non-private spawn-blocking \[\[[@&#8203;A248](https://github.com/A248)]]
    
  • [#&#8203;2820]]: fix: correct decoding of `rust_decimal::Decimal` for high-precision values \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2822]]: issue [#&#8203;2821](https://github.com/launchbadge/sqlx/issues/2821) Update error handling logic when opening a TCP connection \[\[[@&#8203;anupj](https://github.com/anupj)]]
    
  • [#&#8203;2826]]: chore: bump some sqlx-core dependencies \[\[[@&#8203;djc](https://github.com/djc)]]
    
  • [#&#8203;2838]]: Fixes rust_decimal scale for Postgres \[\[[@&#8203;jkleinknox](https://github.com/jkleinknox)]]
    
  • [#&#8203;2847]]: Fix comment in `sqlx migrate add` help text \[\[[@&#8203;cryeprecision](https://github.com/cryeprecision)]]
    
  • [#&#8203;2850]]: fix(core): avoid unncessary wakeups in `try_stream!()` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2856]]: Prevent warnings running `cargo build` \[\[[@&#8203;nyurik](https://github.com/nyurik)]]
    
  • [#&#8203;2864]]: fix(sqlite): use `AtomicUsize` for thread IDs \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2892]]: Fixed force dropping bug \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]]
    
    

v0.7.2

23 pull requests were merged this release cycle.

Added
  • [#&#8203;2121]]: Add JSON support to `FromRow` derive \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]]
    
  • [#&#8203;2533]]: Implement mysql_clear_password \[\[[@&#8203;ldanilek](https://github.com/ldanilek)]]
    
  • [#&#8203;2538]]: cli: add --target-version CLI flags for migrate run/revert \[\[[@&#8203;inahga](https://github.com/inahga)]]
    
  • [#&#8203;2577]]: supplement Postgres listen example with a small chat example \[\[[@&#8203;JockeM](https://github.com/JockeM)]]
    
  • [#&#8203;2602]]: Support naming migrations sequentially \[\[[@&#8203;vmax](https://github.com/vmax)]]
    
  • [#&#8203;2634]]: Adding PgHasArrayType for &\[u8;N] \[\[[@&#8203;snf](https://github.com/snf)]]
    
  • [#&#8203;2646]]: Support for setting client certificate and key from bytes \[\[[@&#8203;wyhaya](https://github.com/wyhaya)]]
    
  • [#&#8203;2664]]: Automatically infer migration type \[\[[@&#8203;vmax](https://github.com/vmax)]]
    
  • [#&#8203;2712]]: Add impl for `Type`, `Decode`, and `Encode` for `Box<str>` and `Box<[u8]>` \[\[[@&#8203;grant0417](https://github.com/grant0417)]]
    
    
Changed
  • [#&#8203;2650]]: Cleanup format arguments \[\[[@&#8203;nyurik](https://github.com/nyurik)]]
    
  • [#&#8203;2695]]: remove \&mut PoolConnection from Executor docs \[\[[@&#8203;olback](https://github.com/olback)]]
    -   This impl was removed in 0.7.0 because of coherence issues.
    
  • [#&#8203;2706]]: Clarify where optional features should be enabled \[\[[@&#8203;kryptan](https://github.com/kryptan)]]
    
  • [#&#8203;2717]]: Update README.md \[\[[@&#8203;fermanjj](https://github.com/fermanjj)]]
    
  • [#&#8203;2739]]: Bump mariadb CI images + mysql unpin \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]]
    
  • [#&#8203;2742]]: Implemented poll_flush for Box\<S:Socket> \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]]
    
  • [#&#8203;2740]]: Remove sealed trait comments from documentation \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]]
    
  • [#&#8203;2750]]: Fix [#&#8203;2384](https://github.com/launchbadge/sqlx/issues/2384), bump flume to v0.11.0 \[\[[@&#8203;madadam](https://github.com/madadam)]]
    
  • [#&#8203;2757]]: Remove unused `remove_dir_all` crate from `sqlx-cli`, fixes RUSTSEC-2023-0018 \[\[[@&#8203;aldur](https://github.com/aldur)]]
    
    
Fixed
  • [#&#8203;2624]]: Documentation typo: BYTE -> BINARY \[\[[@&#8203;sebastianv89](https://github.com/sebastianv89)]]
    
  • [#&#8203;2628]]: docs: 0.7 is stable in the entire README \[\[[@&#8203;marcusirgens](https://github.com/marcusirgens)]]
    
  • [#&#8203;2630]]: fix(postgres): fix buffer management in PgCopyIn::read_from \[\[[@&#8203;tsing](https://github.com/tsing)]]
    
  • [#&#8203;2651]]: Chore: Fix few build warnings, and make CI fail on warn \[\[[@&#8203;nyurik](https://github.com/nyurik)]]
    
  • [#&#8203;2670]]: fix: ignore extra fields in Postgres describe parsing \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2687]]: docs: Fix description of `min_connections` \[\[[@&#8203;hakoerber](https://github.com/hakoerber)]]
    
    

v0.7.1

Compare Source

This release mainly addresses issues reported with the 0.7.0 release.

16 pull requests were merged this release cycle.

Added
  • [#&#8203;2551]]: Introduce build_query_scalar for QueryBuilder \[\[[@&#8203;iamquang95](https://github.com/iamquang95)]]
    
  • [#&#8203;2605]]: Implement Default for QueryBuilder \[\[[@&#8203;Xydez](https://github.com/Xydez)]]
    
  • [#&#8203;2616]]: feat(sqlx-core): add table function to database error \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;2619]]: feat: allow opt-out of `PgHasArrayType` with `#[derive(sqlx::Type)]` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   TL;DR: if you're getting errors from `#[derive(sqlx::Type)]` with `#[sqlx(transparent)]`
        regarding `PgHasArrayType` not being implemented, add `#[sqlx(no_pg_array)]` to fix.
    
    
Changed
  • [#&#8203;2566]]: improve docs about migration files \[\[[@&#8203;jnnnnn](https://github.com/jnnnnn)]]
    
  • [#&#8203;2576]]: Major Version Update clap to 4.0 \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]]
    
  • [#&#8203;2597]]: Bump webpki-roots to v0.24 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2603]]: docs(changelog): be more verbose about offline mode breaking change \[\[[@&#8203;mrl5](https://github.com/mrl5)]]
    
    
Fixed
  • [#&#8203;2553]]: Implement `Clone` for `PoolOptions` manually ([#&#8203;2548](https://github.com/launchbadge/sqlx/issues/2548)) \[\[[@&#8203;alilleybrinker](https://github.com/alilleybrinker)]]
    
  • [#&#8203;2580]]: Update README.md now that 0.7.0 is no longer in alpha \[\[[@&#8203;saolof](https://github.com/saolof)]]
    
  • [#&#8203;2585]]: Fix for Issue [#&#8203;2549](https://github.com/launchbadge/sqlx/issues/2549) - cannot use feature "rust_decimal" without also using "bigdecimal" \[\[[@&#8203;deneut](https://github.com/deneut)]]
    
  • [#&#8203;2586]]: Fix optional dependency on sqlx-macros \[\[[@&#8203;kitterion](https://github.com/kitterion)]]
    
  • [#&#8203;2593]]: Correct mention of the `tls-native-tls` in the documentation. \[\[[@&#8203;denschub](https://github.com/denschub)]]
    
  • [#&#8203;2599]]: Remove incorrect CAST in test database cleanup for MySQL. \[\[[@&#8203;fd](https://github.com/fd)]]
    
  • [#&#8203;2613]]: Fix readme.md to reduce confusion about optional features (decimal->rust_decimal) \[\[[@&#8203;vabka](https://github.com/vabka)]]
    
  • [#&#8203;2620]]: fix(sqlite/any): encode bool as integer \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
    

v0.7.0

Compare Source

At least 70 pull requests were merged this release cycle! (The exact count is muddied with pull requests for alpha
releases and such.) And we gained 43 new contributors! Thank you to everyone who helped make this release a reality.

Breaking

Many revisions were made to query analysis in the SQLite driver; these are all potentially breaking changes
as they can change the output of sqlx::query!() et al. We'd like to thank [[@​tyrelr]] for their numerous PRs to
this area.

The MSSQL driver has been removed as it was not nearly at the same maturity level as the other drivers.
As previously announced, we have plans to introduce a fully featured replacement as a premium offering,
alongside drivers for other proprietary databases, with the goal to support full-time development on SQLx.

If interested, please email your inquiry to sqlx@launchbadge.com.

The offline mode for the queries has been changed to use a separate file per query!() invocation,
which is intended to reduce the number of conflicts when merging branches in a project that both modified queries.
This means that CLI flag --merged is no longer supported. See [#​2363] for details and make sure that your
sqlx-cli version is in sync with the sqlx version in your project.

The type ascription override syntax for the query macros has been deprecated,
as parse support for it has been removed in syn 2.0, which we'll be upgrading to in the next breaking release.
This can be replaced with type overrides using casting syntax (as).
See [#​2483] for details.

  • [#&#8203;1946]]: Fix compile time verification performance regression for sqlite \[\[[@&#8203;liningpan](https://github.com/liningpan)]]
    
  • [#&#8203;1960]]: Fix sqlite update return and order by type inference \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
  • [#&#8203;1984]]: Sqlite EXPLAIN type inference improvements \[\[[@&#8203;rongcuid](https://github.com/rongcuid)]]
    
  • [#&#8203;2039]]: Break drivers out into separate crates, clean up some technical debt \[\[[@&#8203;abonander](https://github.com/abonander)]]
    -   All deprecated items have been removed.
    -   The `mssql` feature and associated database driver has been deleted from the source tree. It will return as part of our planned SQLx Pro offering as a from-scratch rewrite with extra features (such as TLS) and type integrations that were previously missing.
    -   The `runtime-actix-*` features have been deleted. They were previously changed to be aliases of their `runtime-tokio-*` counterparts for backwards compatibility reasons, but their continued existence is misleading as SQLx has no special knowledge of Actix anymore.
        -   To fix, simply replace the `runtime-actix-*` feature with its `runtime-tokio-*` equivalent.
    -   The `git2` feature has been removed. This was a requested integration from a while ago that over time made less and less sense to be part of SQLx itself. We have to be careful with the crates we add to our public API as each one introduces yet another semver hazard. The expected replacement is to make `#[derive(sqlx::Type)]` useful enough that users can write wrapper types for whatever they want to use without SQLx needing to be specifically aware of it.
    -   The `Executor` impls for `Transaction` and `PoolConnection` have been deleted because they cannot exist in the new crate architecture without rewriting the `Executor` trait entirely.
        -   To fix this breakage, simply add a dereference where an `impl Executor` is expected, as they both dereference to the inner connection type which will still implement it:
            -   `&mut transaction` -> `&mut *transaction`
            -   `&mut connection` -> `&mut *connection`
        -   These cannot be blanket impls as it triggers an overflow in the compiler due to the lack of lazy normalization, and
            the driver crates cannot provide their own impls due to the orphan rule.
        -   We're expecting to do another major refactor of traits to incorporate generic associated types (GAT).
            This will mean another major release of SQLx but ideally most API usage will not need to change significantly, if at all.
    -   The fields of `Migrator` are now `#[doc(hidden)]` and semver-exempt; they weren't meant to be public.
    -   The `offline` feature has been removed from the `sqlx` facade crate and is enabled unconditionally as most users are expected to have enabled it anyway and disabling it doesn't seem to appreciably affect compile times.
    -   The `decimal` feature has been renamed to `rust_decimal` to match the crate it actually provides integrations for.
    -   `AnyDriver` and `AnyConnection` now require either `sqlx::any::install_drivers()` or `sqlx::any::install_default_drivers()` to be called at some point during the process' lifetime before the first connection is made, as the set of possible drivers is now determined at runtime. This was determined to be the least painful way to provide knowledge of database drivers to `Any` without them being hardcoded.
    -   The `AnyEncode` trait has been removed.
    
  • [#&#8203;2109]]: feat: better database errors \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;2094]]: Update libsqlite3-sys to 0.25.1 \[\[[@&#8203;penberg](https://github.com/penberg)]]
    -   Alongside this upgrade, we are now considering the linkage to `libsqlite3-sys` to be **semver-exempt**,
        and we reserve the right to upgrade it as necessary. If you are using `libsqlite3-sys` directly or a crate that
        links it such as `rusqlite`, you should pin the versions of both crates to avoid breakages from `cargo update`:
    
    
[dependencies]
sqlx = { version = "=0.7.0", features = ["sqlite"] }
rusqlite = "=0.29.0"
  • [#&#8203;2132]]: fix: use owned Builder pattern for ConnectOptions \[\[[@&#8203;ar3s3ru](https://github.com/ar3s3ru)]]
    
  • [#&#8203;2253]]: Sqlite describe fixes \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
  • [#&#8203;2285]]: `time`: Assume UTC when decoding a DATETIME column in sqlite \[\[[@&#8203;nstinus](https://github.com/nstinus)]]
    
  • [#&#8203;2363]]: \[offline] Change prepare to one-file-per-query \[\[[@&#8203;cycraig](https://github.com/cycraig)]]
    
  • [#&#8203;2387]]: PATCH: bump libsqlite3-sys to patched version \[\[[@&#8203;grantkee](https://github.com/grantkee)]]
    
  • [#&#8203;2409]]: fix([#&#8203;2407](https://github.com/launchbadge/sqlx/issues/2407)): respect the HaltIfNull opcode when determining nullability \[\[[@&#8203;arlyon](https://github.com/arlyon)]]
    
  • [#&#8203;2459]]: limit the number of instructions that can be evaluated \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
  • [#&#8203;2467]]: Add and improve sqlite describe performance benchmarks \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
  • [#&#8203;2491]]: sqlite date macro support \[\[[@&#8203;Arcayr](https://github.com/Arcayr)]]
    -   Changes `OffsetDateTime` to be the first type used when deserializing a `timestamp` type.
    
  • [#&#8203;2496]]: Bump to libsqlite3-sys 0.26 \[\[[@&#8203;mdecimus](https://github.com/mdecimus)]]
    
  • [#&#8203;2508]]: Sqlite analytical \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
    
Added
  • [#&#8203;1850]]: Add client SSL authentication using key-file for Postgres, MySQL and MariaDB \[\[[@&#8203;ThibsG](https://github.com/ThibsG)]]
    
  • [#&#8203;2088]]: feat: Add set_connect_options method to Pool \[\[[@&#8203;moatra](https://github.com/moatra)]]
    
  • [#&#8203;2113]]: Expose PoolOptions for reading \[\[[@&#8203;FSMaxB](https://github.com/FSMaxB)]]
    
  • [#&#8203;2115]]: Allow using complex types in `try_from` when deriving `FromRow` \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]]
    
  • [#&#8203;2116]]: \[SQLite] Add option to execute `PRAGMA optimize;` on close of a connection \[\[[@&#8203;miles170](https://github.com/miles170)]]
    
  • [#&#8203;2189]]: Added regexp support in sqlite \[\[[@&#8203;VictorKoenders](https://github.com/VictorKoenders)]]
    
  • [#&#8203;2224]]: Add From impls for Json \[\[[@&#8203;dbeckwith](https://github.com/dbeckwith)]]
    
  • [#&#8203;2256]]: add progress handler support to sqlite \[\[[@&#8203;nbaztec](https://github.com/nbaztec)]]
    
  • [#&#8203;2366]]: Allow ignoring attributes for deriving FromRow \[\[[@&#8203;grgi](https://github.com/grgi)]]
    
  • [#&#8203;2369]]: new type support in query_as \[\[[@&#8203;0xdeafbeef](https://github.com/0xdeafbeef)]]
    
  • [#&#8203;2379]]: feat: add `Connection::shrink_buffers`, `PoolConnection::close` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2400]]: fix(docs): example of `sqlx_macros_unstable` in config.toml \[\[[@&#8203;df51d](https://github.com/df51d)]]
    
  • [#&#8203;2469]]: Add Simple format for Uuid for MySQL & SQLite. \[\[[@&#8203;MidasLamb](https://github.com/MidasLamb)]]
    
  • [#&#8203;2483]]: chore: add deprecation notice for type ascription use \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]]
    
  • [#&#8203;2506]]: add args to query builder ([#&#8203;2494](https://github.com/launchbadge/sqlx/issues/2494)) \[\[[@&#8203;cemoktra](https://github.com/cemoktra)]]
    
  • [#&#8203;2554]]: Impl `AsMut` for advisory lock types ([#&#8203;2520](https://github.com/launchbadge/sqlx/issues/2520)) \[\[[@&#8203;alilleybrinker](https://github.com/alilleybrinker)]]
    
  • [#&#8203;2559]]: Add CLI autocompletion using clap_complete \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]]
    
    
Changed
  • [#&#8203;2185]]: Initial work to switch to `tracing` \[\[[@&#8203;CosmicHorrorDev](https://github.com/CosmicHorrorDev)]]
    
  • [#&#8203;2193]]: Start testing on Postgres 15 and drop Postgres 10 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    -   We reserve the right to drop support for end-of-lifed database versions [as discussed in our FAQ][faq-db-version].
    
  • [#&#8203;2213]]: Use `let else` statements in favor of macro \[\[[@&#8203;OverHash](https://github.com/OverHash)]]
    
  • [#&#8203;2365]]: Update dependencies \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2371]]: Disable rustls crate logging feature by default up to date \[\[[@&#8203;sergeiivankov](https://github.com/sergeiivankov)]]
    
  • [#&#8203;2373]]: chore: Use tracing's fields to get structured logs \[\[[@&#8203;jaysonsantos](https://github.com/jaysonsantos)]]
    
  • [#&#8203;2393]]: Lower default logging level for statements to Debug \[\[[@&#8203;bnoctis](https://github.com/bnoctis)]]
    
  • [#&#8203;2445]]: Traverse symlinks when resolving migrations \[\[[@&#8203;tgeoghegan](https://github.com/tgeoghegan)]]
    
  • [#&#8203;2485]]: chore(sqlx-postgres): replace `dirs` with `home` & `etcetera` \[\[[@&#8203;utkarshgupta137](https://github.com/utkarshgupta137)]]
    
  • [#&#8203;2515]]: Bump mac_address to 1.1.5 \[\[[@&#8203;repnop](https://github.com/repnop)]]
    
  • [#&#8203;2440]]: Update rustls to 0.21, webpki-roots to 0.23 \[\[[@&#8203;SergioBenitez](https://github.com/SergioBenitez)]]
    
  • [#&#8203;2563]]: Update rsa to 0.9 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2564]]: Update bitflags to v2 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2565]]: Bump indexmap and ahash \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2574]]: doc: make it clear that `ConnectOptions` types impl `FromStr` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
    
Fixed
  • [#&#8203;2098]]: Fix sqlite compilation \[\[[@&#8203;cycraig](https://github.com/cycraig)]]
    
  • [#&#8203;2120]]: fix logical merge conflict \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]]
    
  • [#&#8203;2133]]: Postgres OID resolution query does not take into account current `search_path` \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]]
    
  • [#&#8203;2156]]: Fixed typo. \[\[[@&#8203;cdbfoster](https://github.com/cdbfoster)]]
    
  • [#&#8203;2179]]: fix: ensures recover from fail with PgCopyIn \[\[[@&#8203;andyquinterom](https://github.com/andyquinterom)]]
    
  • [#&#8203;2200]]: Run CI on \*-dev branch \[\[[@&#8203;joehillen](https://github.com/joehillen)]]
    
  • [#&#8203;2222]]: Add context to confusing sqlx prepare parse error \[\[[@&#8203;laundmo](https://github.com/laundmo)]]
    
  • [#&#8203;2271]]: feat: support calling Postgres procedures with the macros \[\[[@&#8203;bgeron](https://github.com/bgeron)]]
    
  • [#&#8203;2282]]: Don't run EXPLAIN nullability analysis on Materialize \[\[[@&#8203;benesch](https://github.com/benesch)]]
    
  • [#&#8203;2319]]: Set whoami default-features to false \[\[[@&#8203;thedodd](https://github.com/thedodd)]]
    
  • [#&#8203;2352]]: Preparing 0.7.0-alpha.1 release \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2355]]: Fixed the example code for `sqlx::test` \[\[[@&#8203;kenkoooo](https://github.com/kenkoooo)]]
    
  • [#&#8203;2367]]: Fix sqlx-cli create, drop, migrate \[\[[@&#8203;cycraig](https://github.com/cycraig)]]
    
  • [#&#8203;2376]]: fix(pool): close when last handle is dropped, extra check in `try_acquire` \[\[[@&#8203;abonander](https://github.com/abonander)]]
    
  • [#&#8203;2378]]: Fix README build badge \[\[[@&#8203;dbrgn](https://github.com/dbrgn)]]
    
  • [#&#8203;2398]]: fix(prepare): store temporary query files inside the workspace \[\[[@&#8203;aschey](https://github.com/aschey)]]
    
  • [#&#8203;2402]]: fix: drop old time 0.1.44 dep \[\[[@&#8203;codahale](https://github.com/codahale)]]
    
  • [#&#8203;2413]]: fix(macros-core): use of undeclared `tracked_path` \[\[[@&#8203;df51d](https://github.com/df51d)]]
    
  • [#&#8203;2420]]: Enable runtime-tokio feature of sqlx when building sqlx-cli \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]]
    
  • [#&#8203;2453]]: in README.md, correct spelling and grammar \[\[[@&#8203;vizvasrj](https://github.com/vizvasrj)]]
    
  • [#&#8203;2454]]: fix: ensure fresh test db's aren't accidentally deleted by do_cleanup \[\[[@&#8203;phlip9](https://github.com/phlip9)]]
    
  • [#&#8203;2507]]: Exposing the Oid of PostgreSQL types \[\[[@&#8203;Razican](https://github.com/Razican)]]
    
  • [#&#8203;2519]]: Use ::std::result::Result::Ok in output.rs \[\[[@&#8203;southball](https://github.com/southball)]]
    
  • [#&#8203;2569]]: Fix broken links to mysql error documentation \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]]
    
  • [#&#8203;2570]]: Add a newline to the generated JSON files \[\[[@&#8203;nyurik](https://github.com/nyurik)]]
    
  • [#&#8203;2572]]: Do not panic when `PrepareOk` fails to decode \[\[[@&#8203;stepantubanov](https://github.com/stepantubanov)]]
    
  • [#&#8203;2573]]: fix(sqlite) Do not drop notify mutex guard until after condvar is triggered \[\[[@&#8203;andrewwhitehead](https://github.com/andrewwhitehead)]]
    
    
dtolnay/thiserror (thiserror)

v2.0.9

Compare Source

  • Work around missing_inline_in_public_items clippy restriction being triggered in macro-generated code (#​404)

v2.0.8

Compare Source

  • Improve support for macro-generated derive(Error) call sites (#​399)

v2.0.7

Compare Source

  • Work around conflict with #[deny(clippy::allow_attributes)] (#​397, thanks @​zertosh)

v2.0.6

Compare Source

  • Suppress deprecation warning on generated From impls (#​396)

v2.0.5

Compare Source

  • Prevent deprecation warning on generated impl for deprecated type (#​394)

v2.0.4

Compare Source

v2.0.3

Compare Source

  • Support the same Path field being repeated in both Debug and Display representation in error message (#​383)
  • Improve error message when a format trait used in error message is not implemented by some field (#​384)

v2.0.2

Compare Source

  • Fix hang on invalid input inside #[error(...)] attribute (#​382)

v2.0.1

Compare Source

  • Support errors that contain a dynamically sized final field (#​375)
  • Improve inference of trait bounds for fields that are interpolated multiple times in an error message (#​377)

v2.0.0

Compare Source

Breaking changes

  • Referencing keyword-named fields by a raw identifier like {r#type} inside a format string is no longer accepted; simply use the unraw name like {type} (#​347)

    This aligns thiserror with the standard library's formatting macros, which gained support for implicit argument capture later than the release of this feature in thiserror 1.x.

    #[derive(Error, Debug)]
    #[error("... {type} ...")]  // Before: {r#type}
    pub struct Error {
        pub r#type: Type,
    }
    
  • Trait bounds are no longer inferred on fields whose value is shadowed by an explicit named argument in a format message (#​345)

    // Before: impl<T: Octal> Display for Error<T>
    // After: impl<T> Display for Error<T>
    #[derive(Error, Debug)]
    #[error("{thing:o}", thing = "...")]
    pub struct Error<T> {
        thing: T,
    }
    
  • Tuple structs and tuple variants can no longer use numerical {0} {1} access at the same time as supplying extra positional arguments for a format message, as this makes it ambiguous whether the number refers to a tuple field vs a different positional arg (#​354)

    #[derive(Error, Debug)]
    #[error("ambiguous: {0} {}", $N)]
    //                  ^^^ Not allowed, use #[error("... {0} {n}", n = $N)]
    pub struct TupleError(i32);
    
  • Code containing invocations of thiserror's derive(Error) must now have a direct dependency on the thiserror crate regardless of the error data structure's contents (#​368, #​369, #​370, #​372)

Features

  • Support disabling thiserror's standard library dependency by disabling the default "std" Cargo feature: thiserror = { version = "2", default-features = false } (#​373)

  • Support using r#source as field name to opt out of a field named "source" being treated as an error's Error::source() (#​350)

    #[derive(Error, Debug)]
    #[error("{source} ==> {destination}")]
    pub struct Error {
        r#source: char,
        destination: char,
    }
    
    let error = Error { source: 'S', destination: 'D' };
    
  • Infinite recursion in a generated Display impl now produces an unconditional_recursion warning (#​359)

    #[derive(Error, Debug)]
    #[error("??? {self}")]
    pub struct Error;
    
  • A new attribute #[error(fmt = path::to::myfmt)] can be used to write formatting logic for an enum variant out-of-line (#​367)

    #[derive(Error, Debug)]
    pub enum Error {
        #[error(fmt = demo_fmt)]
        Demo { code: u16, message: Option<String> },
    }
    
    fn demo_fmt(code: &u16, message: &Option<String>, formatter: &mut fmt::Formatter) -> fmt::Result {
        write!(formatter, "{code}")?;
        if let Some(msg) = message {
            write!(formatter, " - {msg}")?;
        }
        Ok(())
    }
    
  • Enums with an enum-level format message are now able to have individual variants that are transparent to supersede the enum-level message (#​366)

    #[derive(Error, Debug)]
    #[error("my error {0}")]
    pub enum Error {
        Json(#[from] serde_json::Error),
        Yaml(#[from] serde_yaml::Error),
        #[error(transparent)]
        Other(#[from] anyhow::Error),
    }
    

v1.0.69

Compare Source

v1.0.68

Compare Source

  • Handle incomplete expressions more robustly in format arguments, such as while code is being typed (#​341, #​344)

v1.0.67

Compare Source

v1.0.66

Compare Source

  • Improve compile error on malformed format attribute (#​327)

v1.0.65

Compare Source

  • Ensure OUT_DIR is left with deterministic contents after build script execution (#​325)

v1.0.64

Compare Source

v1.0.63

Compare Source

  • Documentation improvements

v1.0.62

Compare Source

  • Support referring to nested tuple struct fields inside #[error("…", …)] attribute (#​309)

v1.0.61

Compare Source

  • Use core::fmt and core::panic to facilitate error_in_core support (#​299, thanks @​jordens)

v1.0.60

Compare Source

  • Resolve unexpected_cfgs warning (#​298)

v1.0.59

Compare Source

  • Unblock testing of rustc debug-fmt-detail option (#​297)

v1.0.58

Compare Source

  • Make backtrace support available when using -Dwarnings (#​292)

v1.0.57

Compare Source

  • Generate more efficient Display impl for error message which do not contain any interpolated value (#​286, thanks @​nyurik)

v1.0.56

Compare Source

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

v1.0.55

Compare Source

  • Work around improperly cached build script result by sccache – second attempt (#​280)

v1.0.54

Compare Source

  • Work around improperly cached build script result by sccache – first attempt (#​279)

v1.0.53

Compare Source

  • Reduce spurious rebuilds under RustRover IDE when using a nightly toolchain (#​270)

v1.0.52

Compare Source

  • Fix interaction with RUSTC_BOOTSTRAP (#​269)

v1.0.51

Compare Source

  • Improve diagnostics when an invalid attribute previously caused thiserror to generate no Error impl (#​266)
tokio-rs/tokio (tokio)

v1.42.0: Tokio v1.42.0

Compare Source

1.42.0 (Dec 3rd, 2024)

Added
  • io: add AsyncFd::{try_io, try_io_mut} (#​6967)
Fixed
  • io: avoid ptr->ref->ptr roundtrip in RegistrationSet (#​6929)
  • runtime: do not defer yield_now inside block_in_place (#​6999)
Changes
  • io: simplify io readiness logic (#​6966)
Documented
  • net: fix docs for tokio::net::unix::{pid_t, gid_t, uid_t} (#​6791)
  • time: fix a typo in Instant docs (#​6982)

v1.41.1: Tokio v1.41.1

Compare Source

1.41.1 (Nov 7th, 2024)

Fixed
  • metrics: fix bug with wrong number of buckets for the histogram (#​6957)
  • net: display net requirement for net::UdpSocket in docs (#​6938)
  • net: fix typo in TcpStream internal comment (#​6944)

v1.41.0: Tokio v1.41.0

Compare Source

1.41.0 (Oct 22th, 2024)

Added
Added (unstable)
  • metrics: add H2 Histogram option to improve histogram granularity (#​6897)
  • metrics: rename some histogram apis (#​6924)
  • runtime: add LocalRuntime (#​6808)
Changed
  • runtime: box futures larger than 16k on release mode (#​6826)
  • sync: add #[must_use] to Notified (#​6828)
  • sync: make watch cooperative (#​6846)
  • sync: make broadcast::Receiver cooperative (#​6870)
  • task: add task size to tracing instrumentation (#​6881)
  • wasm: enable cfg_fs for wasi target (#​6822)
Fixed
  • net: fix regression of abstract socket path in unix socket (#​6838)
Documented
  • io: recommend OwnedFd with AsyncFd (#​6821)
  • io: document cancel safety of AsyncFd methods (#​6890)
  • macros: render more comprehensible documentation for join and try_join (#​6814, #​6841)
  • net: fix swapped examples for TcpSocket::set_nodelay and TcpSocket::nodelay (#​6840)
  • sync: document runtime compatibility (#​6833)

v1.40.0: Tokio v1.40.0

Compare Source

1.40.0 (August 30th, 2024)

Added
  • io: add util::SimplexStream (#​6589)
  • process: stabilize Command::process_group (#​6731)
  • sync: add {TrySendError,SendTimeoutError}::into_inner (#​6755)
  • task: add JoinSet::join_all (#​6784)
Added (unstable)
  • runtime: add Builder::{on_task_spawn, on_task_terminate} (#​6742)
Changed
  • io: use vectored io for write_all_buf when possible (#​6724)
  • runtime: prevent niche-optimization to avoid triggering miri (#​6744)
  • sync: mark mpsc types as UnwindSafe (#​6783)
  • sync,time: make Sleep and BatchSemaphore instrumentation explicit roots (#​6727)
  • task: use NonZeroU64 for task::Id (#​6733)
  • task: include panic message when printing JoinError (#​6753)
  • task: add #[must_use] to JoinHandle::abort_handle (#​6762)
  • time: eliminate timer wheel allocations (#​6779)
Documented
  • docs: clarify that [build] section doesn't go in Cargo.toml (#​6728)
  • io: clarify zero remaining capacity case (#​6790)
  • macros: improve documentation for select! (#​6774)
  • sync: document mpsc channel allocation behavior (#​6773)

v1.39.3: Tokio v1.39.3

Compare Source

1.39.3 (August 17th, 2024)

This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. (#​6772)

v1.39.2: Tokio v1.39.2

Compare Source

1.39.2 (July 27th, 2024)

This release fixes a regression where the select! macro stopped accepting expressions that make use of temporary lifetime extension. (#​6722)

v1.39.1: Tokio v1.39.1

Compare Source

1.39.1 (July 23rd, 2024)

This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. (#​6715)

v1.39.0: Tokio v1.39.0

Compare Source

1.39.0 (July 23rd, 2024)

  • This release bumps the MSRV to 1.70. (#​6645)
  • This release upgrades to mio v1. (#​6635)
  • This release upgrades to windows-sys v0.52 (#​6154)
Added
  • io: implement AsyncSeek for Empty (#​6663)
  • metrics: stabilize num_alive_tasks (#​6619, #​6667)
  • process: add Command::as_std_mut (#​6608)
  • sync: add watch::Sender::same_channel (#​6637)
  • sync: add {Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count} (#​6661)
  • sync: implement Default for watch::Sender (#​6626)
  • task: implement Clone for AbortHandle (#​6621)
  • task: stabilize consume_budget (#​6622)
Changed
  • io: improve panic message of ReadBuf::put_slice() (#​6629)
  • io: read during write in copy_bidirectional and copy (#​6532)
  • runtime: replace num_cpus with available_parallelism (#​6709)
  • task: avoid stack overflow when passing large future to block_on (#​6692)
  • time: avoid traversing entries in the time wheel twice (#​6584)
  • time: support IntoFuture with timeout (#​6666)
  • macros: support IntoFuture with join! and select! (#​6710)
Fixed
  • docs: fix docsrs builds with the fs feature enabled (#​6585)
  • io: only use short-read optimization on known-to-be-compatible platforms (#​6668)
  • time: fix overflow panic when using large durations with Interval (#​6612)
Added (unstable)
  • macros: allow unhandled_panic behavior for #[tokio::main] and #[tokio::test] (#​6593)
  • metrics: add spawned_tasks_count (#​6114)
  • metrics: add worker_park_unpark_count (#​6696)
  • metrics: add worker thread id (#​6695)
Documented
  • io: update tokio::io::stdout documentation (#​6674)
  • macros: typo fix in join.rs and try_join.rs (#​6641)
  • runtime: fix typo in unhandled_panic (#​6660)
  • task: document behavior of JoinSet::try_join_next when all tasks are running (#​6671)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)
tower-rs/tower (tower)

v0.5.2: tower 0.5.2

Compare Source

Added
  • util: Add BoxCloneSyncService which is a Clone + Send + Sync boxed Service (#​777)
  • util: Add BoxCloneSyncServiceLayer which is a Clone + Send + Sync boxed Layer (#​802)

v0.5.1: tower 0.5.1

Compare Source

  • Fix minimum version of tower-layer dependency (#​787)

v0.5.0: tower 0.5.0

Compare Source

Fixed
  • util: BoxService is now Sync (#​702)
Changed
  • util: Removed deprecated ServiceExt::ready_and method and ReadyAnd
    future (#​652)
  • retry: Breaking Change retry::Policy::retry now accepts &mut Req and &mut Res instead of the previous mutable versions. This
    increases the flexibility of the retry policy. To update, update your method signature to include mut for both parameters. (#​584)
  • retry: Breaking Change Change Policy to accept &mut self (#​681)
  • retry: Add generic backoff utilities (#​685)
  • retry: Add Budget trait. This allows end-users to implement their own budget and bucket implementations. (#​703)
  • reconnect: Breaking Change Remove unused generic parameter from Reconnect::new (#​755)
  • ready-cache: Allow iteration over ready services (#​700)
  • discover: Implement Clone for Change (#​701)
  • util: Add a BoxCloneServiceLayer (#​708)
  • rng: use a simpler random 2-sampler (#​716)
  • filter: Derive Clone for AsyncFilterLayer (#​731)
  • general: Update IndexMap (#​741)
  • MSRV: Increase MSRV to 1.63.0 (#​741)
tower-rs/tower-http (tower-http)

v0.6.2

Compare Source

Changed:
  • CompressionBody<B> now propagates B's size hint in its http_body::Body
    implementation, if compression is disabled (#​531)
    • this allows a content-length to be included in an HTTP message with this
      body for those cases
New Contributors

Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.1...tower-http-0.6.2

v0.6.1: v0.6.1

Compare Source

Fixed
  • decompression: reuse scratch buffer to significantly reduce allocations and improve performance (#​521)
New Contributors

v0.6.0: v0.6.0

Compare Source

Changed:
  • body module is disabled except for catch-panic, decompression-*, fs, or limit features (BREAKING) (#​477)
  • Update to tower 0.5 (#​503)
Fixed
  • fs: Precompression of static files now supports files without a file extension (#​507)

v0.5.2: v0.5.2

Compare Source

Added:
  • compression: Will now send a vary: accept-encoding header on compressed responses (#​399)
  • compression: Support x-gzip as equivalent to gzip in accept-encoding request header (#​467)
Fixed
  • compression: Skip compression for range requests (#​446)
  • compression: Skip compression for SSE responses by default (#​465)
  • cors: Actually keep Vary headers set by the inner service when setting response headers (#​473)
    • Version 0.5.1 intended to ship this, but the implementation was buggy and didn't actually do anything

v0.5.1: v0.5.1

Compare Source

  • fs: Support files precompressed with zstd in ServeFile
  • trace: Add default generic parameters for ResponseBody and ResponseFuture (#​455)
  • trace: Add type aliases HttpMakeClassifier and GrpcMakeClassifier (#​455)
Fixed
  • cors: Keep Vary headers set by the inner service when setting response headers (#​398)
  • fs: ServeDir now no longer redirects from /directory to /directory/
    if append_index_html_on_directories is disabled (#​421)

v0.5.0: v0.5.0

Compare Source

Changed
  • Bump Minimum Supported Rust Version to 1.66 (#​433)
  • Update to http-body 1.0 (#​348)
  • Update to http 1.0 (#​348)
  • Preserve service error type in RequestDecompression (#​368)
Fixed
  • Accepts range headers with ranges where the end of range goes past the end of the document by bumping
    http-range-header to 0.4

v0.4.4: v0.4.4

Compare Source

  • trace: Default implementations for trace bodies.

v0.4.3: v0.4.3

Compare Source

Fixed

  • compression: Fix accidental breaking change in 0.4.2.

v0.4.2: v0.4.2

Compare Source

Added

  • cors: Add support for private network preflights (#​373)
  • compression: Implement Default for DecompressionBody (#​370)

Changed

  • compression: Update to async-compression 0.4 (#​371)

Fixed

  • compression: Override default brotli compression level 11 -> 4 (#​356)
  • trace: Simplify dynamic tracing level application (#​380)
  • normalize_path: Fix path normalization for preceding slashes (#​359)

v0.4.1: v0.4.1

Compare Source

Added

  • request_id: Derive Default for MakeRequestUuid (#​335)
  • fs: Derive Default for ServeFileSystemResponseBody (#​336)
  • compression: Expose compression quality on the CompressionLayer (#​333)

Fixed

  • compression: Improve parsing of Accept-Encoding request header (#​220)
  • normalize_path: Fix path normalization of index route (#​347)
  • decompression: Enable multiple_members for GzipDecoder (#​354)

v0.4.0: v0.4.0

Compare Source

Added

  • decompression: Add RequestDecompression middleware (#​282)
  • compression: Implement Default for CompressionBody (#​323)
  • compression, decompression: Support zstd (de)compression (#​322)

Changed

  • serve_dir: ServeDir and ServeFile's error types are now Infallible and any IO errors
    will be converted into responses. Use try_call to generate error responses manually (BREAKING) (#​283)
  • serve_dir: ServeDir::fallback and ServeDir::not_found_service now requires
    the fallback service to use Infallible as its error type (BREAKING) (#​283)
  • compression, decompression: Tweak prefered compression encodings (#​325)

Removed

  • Removed RequireAuthorization in favor of ValidateRequest (BREAKING) (#​290)

Fixed

  • serve_dir: Don't include identity in Content-Encoding header (#​317)
  • compression: Do compress SVGs (#​321)
  • serve_dir: In ServeDir, convert io::ErrorKind::NotADirectory to 404 Not Found (#​331)
uuid-rs/uuid (uuid)

v1.11.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0

v1.10.0

Compare Source

Deprecations

This release deprecates and renames the following functions:

  • Builder::from_rfc4122_timestamp -> Builder::from_gregorian_timestamp
  • Builder::from_sorted_rfc4122_timestamp -> Builder::from_sorted_gregorian_timestamp
  • Timestamp::from_rfc4122 -> Timestamp::from_gregorian
  • Timestamp::to_rfc4122 -> Timestamp::to_gregorian

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0

v1.9.1

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.9.0...1.9.1

v1.9.0

Compare Source

Uuid::now_v7() is guaranteed to be monotonic

Before this release, Uuid::now_v7() would only use the millisecond-precision timestamp for ordering. It now also uses a global 42-bit counter that's re-initialized each millisecond so that the following will always pass:

let a = Uuid::now_v7();
let b = Uuid::now_v7();

assert!(a < b);

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.8.0...1.9.0

v1.8.0

Compare Source

⚠️ Potential Breakage ⚠️

A new impl AsRef<Uuid> for Uuid bound has been added, which can break inference on code like:

let b = uuid.as_ref();

You can fix these by explicitly typing the result of the conversion:

let b: &[u8] = uuid.as_ref();

or by calling as_bytes instead:

let b = uuid.as_bytes();

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0

v1.7.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0

v1.6.1

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1

v1.6.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0

v1.5.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.4.1...1.5.0

buehler/zitadel-rust (zitadel)

v5.3.2

Compare Source

Bug Fixes

v5.3.1

Compare Source

Bug Fixes

v5.2.0

Compare Source

Features
  • Add project_roles and metadata to all IntrospectedUser (#​571) (d3d3997)

v5.1.0

Compare Source

Features

v5.0.0

Compare Source

Features
BREAKING CHANGES
  • Return types of the client builder
    have changed. Please update to the newest returned types
    to use the client builder. This removed the ChainedInterceptor
    which essentially has hidden the cloneable feature for
    interceptors.
  • This removes the "roles" enum
    from the introspected user. It is possible to achieve the same
    mechanism with the following work around:
enum Role {
  Admin,
  Client
}

trait MyExtIntrospectedUser {
    fn role(&self, role: Role) -> Option<..>;
}

impl MyExtIntrospectedUser for IntrospectedUser {
   fn role(&self, role: Role) -> Option<..> {
     // convenience impl here

  }
}

v4.4.0

Compare Source

Features
  • Upgrade apis to v2 & allow to select apis via feature flag for optimized compile times (#​565) (d1528a2)

v4.3.5

Compare Source

Bug Fixes

v4.3.4

Compare Source

Bug Fixes

v4.3.3

Compare Source

Bug Fixes
  • deps: update rust crate document-features to 0.2.8 (#​554) (728dd31)

v4.3.2

Compare Source

Bug Fixes

v4.3.1

Compare Source

Bug Fixes

v4.3.0

Compare Source

Features

v4.2.5

Compare Source

Bug Fixes

v4.2.4

Compare Source

Bug Fixes

v4.2.3

Compare Source

Bug Fixes

v4.2.2

Compare Source

Bug Fixes

v4.2.1

Compare Source

Bug Fixes

v4.2.0

Compare Source

Features

v4.1.6

Compare Source

Bug Fixes

v4.1.5

Compare Source

Bug Fixes

v4.1.4

Compare Source

Bug Fixes

v4.1.3

Compare Source

Bug Fixes

v4.1.2

Compare Source

Bug Fixes

v4.1.1

Compare Source

Bug Fixes

v4.1.0

Compare Source

Features

v4.0.5

Compare Source

Bug Fixes
  • axum: Expose IntrospectionConfig to facilitate creating Axum substates (#​523) (f1133ad)

v4.0.4

Compare Source

Bug Fixes

v4.0.3

Compare Source

Bug Fixes

v4.0.2

Compare Source

Bug Fixes

v4.0.1

Compare Source

Bug Fixes

v4.0.0

Compare Source

Features
  • clients: Add v2 API clients and centralize client generation (#​522) (07c244f)
BREAKING CHANGES
  • clients: The modules for client instantiation
    have changed. There is no module "with access token"
    or "with service account" anymore. Instead, there is a
    centralized ClientBuilder in the clients module of the
    api to create and configure the gRPC clients. The new
    builder allows configuring auth methods beforehand
    and then create the according client out of it.

v3.5.1

Compare Source

Bug Fixes

v3.5.0

Compare Source

Features

v3.4.29

Compare Source

Bug Fixes

v3.4.28

Compare Source

Bug Fixes

v3.4.27

Compare Source

Bug Fixes

v3.4.26

Compare Source

Bug Fixes

v3.4.25

Compare Source

Bug Fixes

v3.4.24

Compare Source

Bug Fixes

v3.4.23

Compare Source

Bug Fixes

v3.4.22

Compare Source

Bug Fixes

v3.4.21

Compare Source

Bug Fixes

v3.4.20

Compare Source

Bug Fixes

v3.4.19

Compare Source

Bug Fixes

v3.4.18

Compare Source

Bug Fixes

v3.4.17

Compare Source

Bug Fixes

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.


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

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://github.com/dtolnay/anyhow) | dependencies | patch | `1.0.75` -> `1.0.95` | | [anyhow](https://github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.75` -> `1.0.95` | | [argon2](https://github.com/RustCrypto/password-hashes/tree/master/argon2) ([source](https://github.com/RustCrypto/password-hashes)) | workspace.dependencies | patch | `0.5.1` -> `0.5.3` | | [async-graphql](https://github.com/async-graphql/async-graphql) | workspace.dependencies | major | `5.0.9` -> `7.0.0` | | [async-graphql-axum](https://github.com/async-graphql/async-graphql) | workspace.dependencies | major | `5.0.9` -> `7.0.0` | | [async-trait](https://github.com/dtolnay/async-trait) | workspace.dependencies | patch | `0.1.73` -> `0.1.83` | | [axum](https://github.com/tokio-rs/axum) | dependencies | minor | `0.6.1` -> `0.7.0` | | [axum](https://github.com/tokio-rs/axum) | workspace.dependencies | minor | `0.6.18` -> `0.7.0` | | [axum-extra](https://github.com/tokio-rs/axum) | workspace.dependencies | minor | `0.7.4` -> `0.9.0` | | [axum-sessions](https://github.com/maxcountryman/axum-sessions) | workspace.dependencies | minor | `0.5.0` -> `0.6.0` | | [chrono](https://github.com/chronotope/chrono) | workspace.dependencies | patch | `0.4.26` -> `0.4.39` | | [clap](https://github.com/clap-rs/clap) | workspace.dependencies | minor | `4.3.23` -> `4.5.23` | | [console_log](https://github.com/iamcodemaker/console_log) | dependencies | major | `0.2` -> `1.0` | | [graphql_client](https://github.com/graphql-rust/graphql-client) | dependencies | minor | `0.13.0` -> `0.14.0` | | [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) | dependencies | minor | `1.4.0` -> `1.5.0` | | [leptos](https://github.com/leptos-rs/leptos) | dependencies | minor | `0.5.1` -> `0.7.2` | | [leptos_axum](https://github.com/leptos-rs/leptos) | dependencies | minor | `0.5.1` -> `0.7.2` | | [leptos_dom](https://github.com/leptos-rs/leptos) | dependencies | minor | `0.5.1` -> `0.7.2` | | [leptos_meta](https://github.com/leptos-rs/leptos) | dependencies | minor | `0.5.1` -> `0.7.2` | | [leptos_router](https://github.com/leptos-rs/leptos) | dependencies | minor | `0.5.1` -> `0.7.2` | | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.20` -> `0.4.22` | | [oauth2](https://github.com/ramosbugs/oauth2-rs) | dependencies | patch | `4.4.1` -> `4.4.2` | | [openidconnect](https://github.com/ramosbugs/openidconnect-rs) | dependencies | minor | `3.3.0` -> `3.5.0` | | [postgres](https://hub.docker.com/_/postgres) ([source](https://github.com/docker-library/postgres)) | final | major | `14-alpine` -> `17-alpine` | | [pretty_assertions](https://github.com/rust-pretty-assertions/rust-pretty-assertions) | workspace.dependencies | patch | `1.4.0` -> `1.4.1` | | [sealed_test](https://github.com/oknozor/sealed-test) | workspace.dependencies | minor | `1.0.0` -> `1.1.0` | | [serde_json](https://github.com/serde-rs/json) | dependencies | patch | `1.0.107` -> `1.0.134` | | [serde_json](https://github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.105` -> `1.0.134` | | [simple_logger](https://github.com/borntyping/rust-simple_logger) | dependencies | major | `4` -> `5` | | [sqlx](https://github.com/launchbadge/sqlx) | workspace.dependencies | minor | `0.6.2` -> `0.8.0` | | [thiserror](https://github.com/dtolnay/thiserror) | dependencies | major | `1` -> `2` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dependencies | minor | `1.33.0` -> `1.42.0` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.32.0` -> `1.42.0` | | [tower](https://github.com/tower-rs/tower) | dependencies | minor | `0.4.13` -> `0.5.0` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | minor | `0.3.4` -> `0.6.0` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | minor | `0.4.0` -> `0.6.0` | | [uuid](https://github.com/uuid-rs/uuid) | workspace.dependencies | minor | `1.4.1` -> `1.11.0` | | [zitadel](https://github.com/buehler/zitadel-rust) | dependencies | major | `3.3.1` -> `5.0.0` | --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.95`](https://github.com/dtolnay/anyhow/releases/tag/1.0.95) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.94...1.0.95) - Add [`Error::from_boxed`](https://docs.rs/anyhow/1/anyhow/struct.Error.html#method.from_boxed) ([#&#8203;401](https://github.com/dtolnay/anyhow/issues/401), [#&#8203;402](https://github.com/dtolnay/anyhow/issues/402)) ### [`v1.0.94`](https://github.com/dtolnay/anyhow/releases/tag/1.0.94) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.93...1.0.94) - Documentation improvements ### [`v1.0.93`](https://github.com/dtolnay/anyhow/releases/tag/1.0.93) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.92...1.0.93) - Update dev-dependencies to `thiserror` v2 ### [`v1.0.92`](https://github.com/dtolnay/anyhow/releases/tag/1.0.92) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.91...1.0.92) - Support Rust 1.82's `&raw const` and `&raw mut` syntax inside `ensure!` ([#&#8203;390](https://github.com/dtolnay/anyhow/issues/390)) ### [`v1.0.91`](https://github.com/dtolnay/anyhow/releases/tag/1.0.91) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.90...1.0.91) - Ensure OUT_DIR is left with deterministic contents after build script execution ([#&#8203;388](https://github.com/dtolnay/anyhow/issues/388)) ### [`v1.0.90`](https://github.com/dtolnay/anyhow/releases/tag/1.0.90) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.89...1.0.90) - Documentation improvements ### [`v1.0.89`](https://github.com/dtolnay/anyhow/releases/tag/1.0.89) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.88...1.0.89) - Make anyhow::Error's `UnwindSafe` and `RefUnwindSafe` impl consistently available between versions of Rust newer and older than 1.72 ([#&#8203;386](https://github.com/dtolnay/anyhow/issues/386)) ### [`v1.0.88`](https://github.com/dtolnay/anyhow/releases/tag/1.0.88) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.87...1.0.88) - Documentation improvements ### [`v1.0.87`](https://github.com/dtolnay/anyhow/releases/tag/1.0.87) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.86...1.0.87) - Support more APIs, including `Error::new` and `Error::chain`, in no-std mode on Rust 1.81+ ([#&#8203;383](https://github.com/dtolnay/anyhow/issues/383)) ### [`v1.0.86`](https://github.com/dtolnay/anyhow/releases/tag/1.0.86) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.85...1.0.86) - Fix parse error in `ensure!` with non-literal after minus sign ([#&#8203;373](https://github.com/dtolnay/anyhow/issues/373)) ### [`v1.0.85`](https://github.com/dtolnay/anyhow/releases/tag/1.0.85) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.84...1.0.85) - Improve `ensure!` macro's rules to unblock some rustc pretty-printer improvements ([#&#8203;368](https://github.com/dtolnay/anyhow/issues/368), [#&#8203;371](https://github.com/dtolnay/anyhow/issues/371)) ### [`v1.0.84`](https://github.com/dtolnay/anyhow/releases/tag/1.0.84) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.83...1.0.84) - Disallow calling `ensure!` through a `Not` impl for a type that is not `bool` ([#&#8203;367](https://github.com/dtolnay/anyhow/issues/367)) ### [`v1.0.83`](https://github.com/dtolnay/anyhow/releases/tag/1.0.83) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.82...1.0.83) - Integrate compile-time checking of cfgs ([#&#8203;363](https://github.com/dtolnay/anyhow/issues/363)) ### [`v1.0.82`](https://github.com/dtolnay/anyhow/releases/tag/1.0.82) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.81...1.0.82) - Documentation improvements ### [`v1.0.81`](https://github.com/dtolnay/anyhow/releases/tag/1.0.81) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81) - Make backtrace support available when using -Dwarnings ([#&#8203;354](https://github.com/dtolnay/anyhow/issues/354)) ### [`v1.0.80`](https://github.com/dtolnay/anyhow/releases/tag/1.0.80) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.79...1.0.80) - Fix unused_imports warnings when compiled by rustc 1.78 ### [`v1.0.79`](https://github.com/dtolnay/anyhow/releases/tag/1.0.79) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.78...1.0.79) - Work around improperly cached build script result by sccache ([#&#8203;340](https://github.com/dtolnay/anyhow/issues/340)) ### [`v1.0.78`](https://github.com/dtolnay/anyhow/releases/tag/1.0.78) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.77...1.0.78) - Reduce spurious rebuilds under RustRover IDE when using a nightly toolchain ([#&#8203;337](https://github.com/dtolnay/anyhow/issues/337)) ### [`v1.0.77`](https://github.com/dtolnay/anyhow/releases/tag/1.0.77) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.76...1.0.77) - Make `anyhow::Error::backtrace` available on stable Rust compilers 1.65+ ([#&#8203;293](https://github.com/dtolnay/anyhow/issues/293), thanks [@&#8203;LukasKalbertodt](https://github.com/LukasKalbertodt)) ### [`v1.0.76`](https://github.com/dtolnay/anyhow/releases/tag/1.0.76) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.75...1.0.76) - Opt in to `unsafe_op_in_unsafe_fn` lint ([#&#8203;329](https://github.com/dtolnay/anyhow/issues/329)) </details> <details> <summary>RustCrypto/password-hashes (argon2)</summary> ### [`v0.5.3`](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.2...argon2-v0.5.3) [Compare Source](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.2...argon2-v0.5.3) ### [`v0.5.2`](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.1...argon2-v0.5.2) [Compare Source](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.1...argon2-v0.5.2) </details> <details> <summary>async-graphql/async-graphql (async-graphql)</summary> ### [`v7.0.13`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#7013-2024-12-10) [Compare Source](https://github.com/async-graphql/async-graphql/compare/v7.0.12...v7.0.13) - add support introspection inputValueDeprecation [#&#8203;1621](https://github.com/async-graphql/async-graphql/issues/1621) ### [`v7.0.12`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#7012-2024-12-08) - update MSRV to `1.81.0` - Add specified complexity for fields in `SimpleObject`. - feat: expose SDL export utilities in ExtensionContext [#&#8203;1606](https://github.com/async-graphql/async-graphql/pull/1606) - feat(dynamic-schema): specify type directives in schema [#&#8203;1607](https://github.com/async-graphql/async-graphql/pull/1607) - Make http2 optional for actix [#&#8203;1612](https://github.com/async-graphql/async-graphql/pull/1612) - chore: use std OnceLock instead LazyLock [#&#8203;1613](https://github.com/async-graphql/async-graphql/pull/1613) - Add UUID validator [#&#8203;1588](https://github.com/async-graphql/async-graphql/pull/1588) - Update secrecy and support new types [#&#8203;1627](https://github.com/async-graphql/async-graphql/pull/1627) - fix [#&#8203;1626](https://github.com/async-graphql/async-graphql/issues/1626) - Allow non-native concrete types in generic structs deriving SimpleObject + InputObject [#&#8203;1629](https://github.com/async-graphql/async-graphql/pull/1629) - chore: update opentelemetry to 0.27 [#&#8203;1614](https://github.com/async-graphql/async-graphql/pull/1614) - connection: Allow 'first' and 'last' parameters to exist at the same time [#&#8203;1602](https://github.com/async-graphql/async-graphql/pull/1602) - feat(dynamic-schema): specify type directives in schema [#&#8203;1607](https://github.com/async-graphql/async-graphql/pull/1607) - Make boxed_any and borrowed_any for FieldValue work with trait objects again [#&#8203;1636](https://github.com/async-graphql/async-graphql/pull/1636) - Add new altair option [#&#8203;1642](https://github.com/async-graphql/async-graphql/pull/1642) - Fix Clippy for latest stable [#&#8203;1639](https://github.com/async-graphql/async-graphql/pull/1639) - Add `boxed-trait` feature [#&#8203;1641](https://github.com/async-graphql/async-graphql/pull/1641) - Support directive in complex object [#&#8203;1644](https://github.com/async-graphql/async-graphql/pull/1644) ### [`v7.0.11`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#7011-2024-09-26) - fix [#&#8203;1598](https://github.com/async-graphql/async-graphql/issues/1598) ### [`v7.0.10`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#7010-2024-09-24) - add `SchemeBuilder.limit_directives` method to set the maximum number of directives on a single field. - remove needless ?Sized [#&#8203;1593](https://github.com/async-graphql/async-graphql/pull/1593) - fix: generate each variant description correctly. [#&#8203;1589](https://github.com/async-graphql/async-graphql/pull/1589) - Make `From<T>` for \[Error] set source [#&#8203;1561](https://github.com/async-graphql/async-graphql/pull/1561) - feat(graphiql): add support for WS connection params [#&#8203;1597](https://github.com/async-graphql/async-graphql/pull/1597) ### [`v7.0.9`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#709-2024-09-02) - add `on_ping` callback to `WebSocket` ### [`v7.0.8`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#708-2024-09-01) - chore: Make Extensions nullable [#&#8203;1563](https://github.com/async-graphql/async-graphql/pull/1563) - expose `rejection` in `async_graphql_axum` [#&#8203;1571](https://github.com/async-graphql/async-graphql/pull/1571) - Updated crate `time` to `3.36`, as it fixes a compilation error in rust `1.80` [#&#8203;1572](https://github.com/async-graphql/async-graphql/pull/1572) - Impl `Debug` for `dynamic::FieldValue` & Improve error messages for its methods [#&#8203;1582](https://github.com/async-graphql/async-graphql/pull/1582) - Support scraping `#[doc = ...]` attributes when generating descriptions [#&#8203;1581](https://github.com/async-graphql/async-graphql/pull/1581) - add `Websocket::keepalive_timeout` method to sets a timeout for receiving an acknowledgement of the keep-alive ping. ### [`v7.0.7`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#707-2024-07-14) - Support raw values from serde_json [#&#8203;1554](https://github.com/async-graphql/async-graphql/pull/1554) - The custom directive `ARGUMENT_DEFINITION` is not being output at the appropriate location in SDL [#&#8203;1559](https://github.com/async-graphql/async-graphql/pull/1559) - Support for JSON extended representations of BSON ObjectId and Uuid [#&#8203;1542](https://github.com/async-graphql/async-graphql/pull/1542) - feat: get directives from SelectionField [#&#8203;1548](https://github.com/async-graphql/async-graphql/pull/1548) - Support Directives on Subscriptions [#&#8203;1500](https://github.com/async-graphql/async-graphql/pull/1500) - fix subscription err typo [#&#8203;1556](https://github.com/async-graphql/async-graphql/pull/1556) ### [`v7.0.6`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#706-2024-06-08) - add license files to each project [#&#8203;1523](https://github.com/async-graphql/async-graphql/issues/1523) - Improve alignment of directive behavior with GraphQL spec [#&#8203;1524](https://github.com/async-graphql/async-graphql/pull/1524) - dynamic schema: pass default vals to ResolverContext [#&#8203;1527](https://github.com/async-graphql/async-graphql/pull/1527) - Add [altair](https://github.com/altair-graphql/altair) source [#&#8203;1530](https://github.com/async-graphql/async-graphql/pull/1530) - feat: Add support for using `Interface` and `OneofObject` on the same struct [#&#8203;1534](https://github.com/async-graphql/async-graphql/pull/1534) ### [`v7.0.5`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#705-2024-05-09) - Fix compiler and clippy warnings [#&#8203;1501](https://github.com/async-graphql/async-graphql/pull/1501) - Added support for deploying to wasm targets with axum - (without subscriptions) [#&#8203;1517](https://github.com/async-graphql/async-graphql/pull/1517) - Bump opentelemetry (0.21.0 -> 0.22.0) [#&#8203;1513](https://github.com/async-graphql/async-graphql/pull/1513) - Update lru dependency [#&#8203;1504](https://github.com/async-graphql/async-graphql/pull/1504) - Support TypeDirective for ArgumentDefinition, Enum, EnumValue, InputFieldDefinition, InputObject, Interface [#&#8203;1509](https://github.com/async-graphql/async-graphql/pull/1509) - Add `display` attribute for Enum macro [#&#8203;1518](https://github.com/async-graphql/async-graphql/issues/1518) ### [`v7.0.3`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#703-2024-03-16) - Sort schema fields & enums if required [#&#8203;1475](https://github.com/async-graphql/async-graphql/pull/1475) - Change the `type_name` of `EmptySubscription` fix [#&#8203;1435](https://github.com/async-graphql/async-graphql/issues/1435) [#&#8203;1475](https://github.com/async-graphql/async-graphql/pull/1475) - add `Request::set_parsed_query` method [#&#8203;1483](https://github.com/async-graphql/async-graphql/pull/1483) - Upgrade strum to 0.26 [#&#8203;1485](https://github.com/async-graphql/async-graphql/pull/1485) - Fix validation of non-nullable variables with default values [#&#8203;1491](https://github.com/async-graphql/async-graphql/pull/1491) - add `NextExecute::run_with_data` method to attach context data before execution - feat: add registry method in dynamic::Registry [#&#8203;1492](https://github.com/async-graphql/async-graphql/pull/1492) - Allow non-scalars to be used as directive arguments [#&#8203;1493](https://github.com/async-graphql/async-graphql/pull/1493) - fix: add description to \__schema introspection result [#&#8203;1489](https://github.com/async-graphql/async-graphql/pull/1489) ### [`v7.0.2`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#702-2024-02-18) - Fix `#[derive(OneofObject)]` rejecting enums where the type comes from a macro subsitution [#&#8203;1473](https://github.com/async-graphql/async-graphql/pull/1473) - Optimize object proc-macro codegen [#&#8203;1470](https://github.com/async-graphql/async-graphql/pull/1470) - Use `impl Future` instead of `async-trait` in most traits. [#&#8203;1468](https://github.com/async-graphql/async-graphql/pull/1468) - Upgrade `base64` to `0.21` [#&#8203;1466](https://github.com/async-graphql/async-graphql/pull/1466) - Standardize space between Args, Lists and Binary items [#&#8203;1392](https://github.com/async-graphql/async-graphql/pull/1392) - feat: support bigdecimal 0.4.x [#&#8203;1358](https://github.com/async-graphql/async-graphql/pull/1358) ### [`v7.0.1`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#7013-2024-12-10) - add support introspection inputValueDeprecation [#&#8203;1621](https://github.com/async-graphql/async-graphql/issues/1621) ### [`v7.0.0`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#700-2024-01-06) - upgrade to `http1` - Feature extend ResolveInfo with field attribute [#&#8203;1428](https://github.com/async-graphql/async-graphql/pull/1428) ### [`v6.0.11`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#6011-2023-11-19) - Clean up example docs [#&#8203;1411](https://github.com/async-graphql/async-graphql/pull/1411) - Run batch requests concurrently [#&#8203;1420](https://github.com/async-graphql/async-graphql/pull/1420) - Update opentelemetry to `v0.21.x` [#&#8203;1422](https://github.com/async-graphql/async-graphql/pull/1422) ### [`v6.0.10`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#6010-2023-11-04) - bump opentelemetry `0.20.0` [#&#8203;1406](https://github.com/async-graphql/async-graphql/pull/1406) - fix check for serial [#&#8203;1405](https://github.com/async-graphql/async-graphql/pull/1405) - fixes complexity visitor - bump Rocket from `0.5.0-rc.2` to `0.5.0-rc.4` ### [`v6.0.9`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#609-2023-10-21) - add support uploading files in dynamic schema [#&#8203;1384](https://github.com/async-graphql/async-graphql/discussions/1384) - Include `@composeDirective` in Federation's `_service` field and document `#[TypeDirective]` [#&#8203;1400](https://github.com/async-graphql/async-graphql/pull/1400) ### [`v6.0.7`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#607-2023-09-23) - initialize source field in tracing extension parse_query method [#&#8203;1367](https://github.com/async-graphql/async-graphql/pull/1367) - test(variables): empty object passes but empty array fails [#&#8203;1377](https://github.com/async-graphql/async-graphql/pull/1377) - Add support for entities without a reference resolver [#&#8203;1378](https://github.com/async-graphql/async-graphql/pull/1378) - Fixes [#&#8203;1356](https://github.com/async-graphql/async-graphql/pull/1356) ### [`v6.0.6`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#606-2023-09-04) - fixed SDL formatting for resolver argument comments regressed [#&#8203;1363](https://github.com/async-graphql/async-graphql/issues/1363) ### [`v6.0.5`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#605-2023-08-20) - Implement exporting argument documentation [#&#8203;1352](https://github.com/async-graphql/async-graphql/pull/1352) - Add `ValueAccessor::as_value` and `ListAccessor::as_values_slice` methods [#&#8203;1353](https://github.com/async-graphql/async-graphql/pull/1353) - dynamic: fixes key not found when using entity resolver [#&#8203;1362](https://github.com/async-graphql/async-graphql/issues/1362) - fix panic in complexity visitor [#&#8203;1359](https://github.com/async-graphql/async-graphql/pull/1359) - update MSRV to `1.70.0` ### [`v6.0.4`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#604-2023-08-18) - Parse "repeatable" in directive definitions. [#&#8203;1336](https://github.com/async-graphql/async-graphql/pull/1336) - add support `multipart/mixed` request. [#&#8203;1348](https://github.com/async-graphql/async-graphql/issues/1348) - async-graphql-actix-web: add `GraphQL` handler. - async-graphql-axum: add `GraphQL` service. ### [`v6.0.3`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#603-2023-08-15) - dynamic: fix the error that some methods of `XXXAccessor` return reference lifetimes that are smaller than expected. - dynamic: no longer throws an error if the Query object does not contain any fields but the schema contains entities. - chore: make accessors public and reexport indexmap [#&#8203;1329](https://github.com/async-graphql/async-graphql/pull/1329) - feat: added `OutputType` implementation for `std::sync::Weak` [#&#8203;1334](https://github.com/async-graphql/async-graphql/pull/1334) ### [`v6.0.1`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#6011-2023-11-19) - Clean up example docs [#&#8203;1411](https://github.com/async-graphql/async-graphql/pull/1411) - Run batch requests concurrently [#&#8203;1420](https://github.com/async-graphql/async-graphql/pull/1420) - Update opentelemetry to `v0.21.x` [#&#8203;1422](https://github.com/async-graphql/async-graphql/pull/1422) ### [`v6.0.0`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#600-2023-07-29) - Bump `syn` from `1.0` to `2.0` - Bump `darling` from `0.14` to `0.20` - Bump `indexmap` from `1.6.2` to `2` - Attributes `guard`, `process_with`, `complexity` support expression or string as value [#&#8203;1295](https://github.com/async-graphql/async-graphql/issues/1295) - Schema (type) level directive support with optional support of federation composeDirective [#&#8203;1308](https://github.com/async-graphql/async-graphql/pull/1308) - Add support for generic structs derriving InputObject and SimpleObject [#&#8203;1313](https://github.com/async-graphql/async-graphql/pull/1313) - chore: trim up some unnecessary code [#&#8203;1324](https://github.com/async-graphql/async-graphql/pull/1324) - Adds `Dataloader::get_cached_values` method to the dataloader cache so that callers can access the contents of the cache without knowing the keys. [#&#8203;1326](https://github.com/async-graphql/async-graphql/pull/1326) #### Breaking Changes - Since `syn 2.0` no longer supports keywords as meta path, rename the parameter used to specify interface field types from `type` to `ty`. https://github.com/dtolnay/syn/issues/1458 https://github.com/TedDriggs/darling/issues/238 ```rust #[derive(Interface)] #[graphql(field(name = "id", ty = "&i32"))] // rename from type to ty enum Node { MyObj(MyObj), } ``` - Change the parameter `location` of the macro `Directive` to *PascalCase* ```rust // #[Directive(location = "field")] #[Directive(location = "Field")] pub fn lowercase() -> impl CustomDirective { LowercaseDirective } ``` </details> <details> <summary>dtolnay/async-trait (async-trait)</summary> ### [`v0.1.83`](https://github.com/dtolnay/async-trait/releases/tag/0.1.83) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.82...0.1.83) - Prevent needless_arbitrary_self_type lint being produced in generated code ([#&#8203;278](https://github.com/dtolnay/async-trait/issues/278)) ### [`v0.1.82`](https://github.com/dtolnay/async-trait/releases/tag/0.1.82) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.81...0.1.82) - Prevent elided_named_lifetimes lint being produced in generated code ([#&#8203;276](https://github.com/dtolnay/async-trait/issues/276)) ### [`v0.1.81`](https://github.com/dtolnay/async-trait/releases/tag/0.1.81) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.80...0.1.81) - Turn off unneeded features of `syn` dependency ([#&#8203;272](https://github.com/dtolnay/async-trait/issues/272), thanks [@&#8203;klensy](https://github.com/klensy)) ### [`v0.1.80`](https://github.com/dtolnay/async-trait/releases/tag/0.1.80) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.79...0.1.80) - Fix unreachable code warning for async functions that return `!` ([#&#8203;265](https://github.com/dtolnay/async-trait/issues/265), thanks [@&#8203;de-vri-es](https://github.com/de-vri-es)) ### [`v0.1.79`](https://github.com/dtolnay/async-trait/releases/tag/0.1.79) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.78...0.1.79) - Clean up some dead code ### [`v0.1.78`](https://github.com/dtolnay/async-trait/releases/tag/0.1.78) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.77...0.1.78) - Prevent unused_qualifications lint being triggered in generated code in nightly-2024-03-05 and up ([#&#8203;260](https://github.com/dtolnay/async-trait/issues/260)) ### [`v0.1.77`](https://github.com/dtolnay/async-trait/releases/tag/0.1.77) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.76...0.1.77) - Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache ### [`v0.1.76`](https://github.com/dtolnay/async-trait/releases/tag/0.1.76) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.75...0.1.76) - Documentation improvements ### [`v0.1.75`](https://github.com/dtolnay/async-trait/releases/tag/0.1.75) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.74...0.1.75) - Documentation improvements ### [`v0.1.74`](https://github.com/dtolnay/async-trait/releases/tag/0.1.74) [Compare Source](https://github.com/dtolnay/async-trait/compare/0.1.73...0.1.74) - Documentation improvements </details> <details> <summary>tokio-rs/axum (axum)</summary> ### [`v0.7.9`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.9): axum - v0.7.9 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.8...axum-v0.7.9) - **fixed:** Avoid setting content-length before middleware ([#&#8203;3031]) [#&#8203;3031]: https://github.com/tokio-rs/axum/pull/3031 ### [`v0.7.8`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.8): axum - v0.7.8 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.7...axum-v0.7.8) - **fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#&#8203;2992]) - **added:** Add `method_not_allowed_fallback` to set a fallback when a path matches but there is no handler for the given HTTP method ([#&#8203;2903]) - **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]` and `MethodRouter::connect[_service]` ([#&#8203;2961]) - **added:** Add `NoContent` as a self-described shortcut for `StatusCode::NO_CONTENT` ([#&#8203;2978]) [#&#8203;2903]: https://github.com/tokio-rs/axum/pull/2903 [#&#8203;2961]: https://github.com/tokio-rs/axum/pull/2961 [#&#8203;2978]: https://github.com/tokio-rs/axum/pull/2978 [#&#8203;2992]: https://github.com/tokio-rs/axum/pull/2992 ### [`v0.7.7`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.7): axum - v0.7.7 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.6...axum-v0.7.7) - **change**: Remove manual tables of content from the documentation, since rustdoc now generates tables of content in the sidebar ([#&#8203;2921]) [#&#8203;2921]: https://github.com/tokio-rs/axum/pull/2921 ### [`v0.7.6`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.6): axum - v0.7.6 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.5...axum-v0.7.6) - **change:** Avoid cloning `Arc` during deserialization of `Path` - **added:** `axum::serve::Serve::tcp_nodelay` and `axum::serve::WithGracefulShutdown::tcp_nodelay` ([#&#8203;2653]) - **added:** `Router::has_routes` function ([#&#8203;2790]) - **change:** Update tokio-tungstenite to 0.23 ([#&#8203;2841]) - **added:** `Serve::local_addr` and `WithGracefulShutdown::local_addr` functions ([#&#8203;2881]) [#&#8203;2653]: https://github.com/tokio-rs/axum/pull/2653 [#&#8203;2790]: https://github.com/tokio-rs/axum/pull/2790 [#&#8203;2841]: https://github.com/tokio-rs/axum/pull/2841 [#&#8203;2881]: https://github.com/tokio-rs/axum/pull/2881 ### [`v0.7.5`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.5): axum - v0.7.5 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.4...axum-v0.7.5) - **fixed:** Fixed layers being cloned when calling `axum::serve` directly with a `Router` or `MethodRouter` ([#&#8203;2586]) - **fixed:** `h2` is no longer pulled as a dependency unless the `http2` feature is enabled ([#&#8203;2605]) [#&#8203;2586]: https://github.com/tokio-rs/axum/pull/2586 [#&#8203;2605]: https://github.com/tokio-rs/axum/pull/2605 ### [`v0.7.4`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.4): axum - v0.7.4 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.3...axum-v0.7.4) - **fixed:** Fix performance regression present since axum 0.7.0 ([#&#8203;2483]) - **fixed:** Improve `debug_handler` on tuple response types ([#&#8203;2201]) - **added:** Add `must_use` attribute to `Serve` and `WithGracefulShutdown` ([#&#8203;2484]) - **added:** Re-export `axum_core::body::BodyDataStream` from axum [#&#8203;2201]: https://github.com/tokio-rs/axum/pull/2201 [#&#8203;2483]: https://github.com/tokio-rs/axum/pull/2483 [#&#8203;2201]: https://github.com/tokio-rs/axum/pull/2201 [#&#8203;2484]: https://github.com/tokio-rs/axum/pull/2484 ### [`v0.7.3`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.3): axum - v0.7.3 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.2...axum-v0.7.3) - **added:** `Body` implements `From<()>` now ([#&#8203;2411]) - **change:** Update version of multer used internally for multipart ([#&#8203;2433]) - **change:** Update tokio-tungstenite to 0.21 ([#&#8203;2435]) - **added:** Enable `tracing` feature by default ([#&#8203;2460]) - **added:** Support graceful shutdown on `serve` ([#&#8203;2398]) - **added:** `RouterIntoService` implements `Clone` ([#&#8203;2456]) [#&#8203;2411]: https://github.com/tokio-rs/axum/pull/2411 [#&#8203;2433]: https://github.com/tokio-rs/axum/pull/2433 [#&#8203;2435]: https://github.com/tokio-rs/axum/pull/2435 [#&#8203;2460]: https://github.com/tokio-rs/axum/pull/2460 [#&#8203;2398]: https://github.com/tokio-rs/axum/pull/2398 [#&#8203;2456]: https://github.com/tokio-rs/axum/pull/2456 ### [`v0.7.2`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.2): axum - v0.7.2 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.1...axum-v0.7.2) - **added:** Add `axum::body::to_bytes` ([#&#8203;2373]) - **fixed:** Gracefully handle accept errors in `serve` ([#&#8203;2400]) [#&#8203;2373]: https://github.com/tokio-rs/axum/pull/2373 [#&#8203;2400]: https://github.com/tokio-rs/axum/pull/2400 ### [`v0.7.1`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.1): axum - v0.7.1 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.7.0...axum-v0.7.1) - **fix**: Fix readme. ### [`v0.7.0`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.7.0): axum - v0.7.0 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.20...axum-v0.7.0) - **breaking:** Update public dependencies. axum now requires - [hyper](https://crates.io/crates/hyper) 1.0 - [http](https://crates.io/crates/http) 1.0 - [http-body](https://crates.io/crates/http-body) 1.0 - **breaking:** axum now requires [tower-http](https://crates.io/crates/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) ([#&#8203;1751] and [#&#8203;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` ([#&#8203;1751]) - **breaking:** `extract::BodyStream` has been removed as `body::Body` implements `Stream` and `FromRequest` directly ([#&#8203;1751]) - **breaking:** Change `sse::Event::json_data` to use `axum_core::Error` as its error type ([#&#8203;1762]) - **breaking:** Rename `DefaultOnFailedUpdgrade` to `DefaultOnFailedUpgrade` ([#&#8203;1664]) - **breaking:** Rename `OnFailedUpdgrade` to `OnFailedUpgrade` ([#&#8203;1664]) - **breaking:** `TypedHeader` has been move to `axum-extra` ([#&#8203;1850]) - **breaking:** Removed re-exports of `Empty` and `Full`. Use `axum::body::Body::empty` and `axum::body::Body::from` respectively ([#&#8203;1789]) - **breaking:** The response returned by `IntoResponse::into_response` must use `axum::body::Body` as the body type. `axum::response::Response` does this ([#&#8203;1789]) - **breaking:** Removed the `BoxBody` type alias and its `box_body` constructor. Use `axum::body::Body::new` instead ([#&#8203;1789]) - **breaking:** Remove `RawBody` extractor. `axum::body::Body` implements `FromRequest` directly ([#&#8203;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` ([#&#8203;1789]) - **added:** Add `Router::as_service` and `Router::into_service` to workaround type inference issues when calling `ServiceExt` methods on a `Router` ([#&#8203;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 ([#&#8203;1868]) - **breaking:** Only inherit fallbacks for routers nested with `Router::nest`. Routers nested with `Router::nest_service` will no longer inherit fallbacks ([#&#8203;1956]) - **fixed:** Don't remove the `Sec-WebSocket-Key` header in `WebSocketUpgrade` ([#&#8203;1972]) - **added:** Add `axum::extract::Query::try_from_uri` ([#&#8203;2058]) - **added:** Implement `IntoResponse` for `Box<str>` and `Box<[u8]>` (\[[#&#8203;2035](https://github.com/tokio-rs/axum/issues/2035)]) - **breaking:** Simplify `MethodFilter`. It no longer uses bitflags ([#&#8203;2073]) - **fixed:** Fix bugs around merging routers with nested fallbacks ([#&#8203;2096]) - **fixed:** Fix `.source()` of composite rejections ([#&#8203;2030]) - **fixed:** Allow unreachable code in `#[debug_handler]` ([#&#8203;2014]) - **change:** axum's MSRV is now 1.66 ([#&#8203;1882]) - **added:** Implement `IntoResponse` for `(R,) where R: IntoResponse` ([#&#8203;2143]) - **changed:** For SSE, add space between field and value for compatibility ([#&#8203;2149]) - **added:** Add `NestedPath` extractor ([#&#8203;1924]) - **added:** Add `handle_error` function to existing `ServiceExt` trait ([#&#8203;2235]) - **breaking:** `impl<T> IntoResponse(Parts) for Extension<T>` now requires `T: Clone`, as that is required by the http crate ([#&#8203;1882]) - **added:** Add `axum::Json::from_bytes` ([#&#8203;2244]) - **added:** Implement `FromRequestParts` for `http::request::Parts` ([#&#8203;2328]) - **added:** Implement `FromRequestParts` for `http::Extensions` ([#&#8203;2328]) - **fixed:** Clearly document applying `DefaultBodyLimit` to individual routes ([#&#8203;2157]) [#&#8203;1664]: https://github.com/tokio-rs/axum/pull/1664 [#&#8203;1751]: https://github.com/tokio-rs/axum/pull/1751 [#&#8203;1762]: https://github.com/tokio-rs/axum/pull/1762 [#&#8203;1789]: https://github.com/tokio-rs/axum/pull/1789 [#&#8203;1835]: https://github.com/tokio-rs/axum/pull/1835 [#&#8203;1850]: https://github.com/tokio-rs/axum/pull/1850 [#&#8203;1868]: https://github.com/tokio-rs/axum/pull/1868 [#&#8203;1882]: https://github.com/tokio-rs/axum/pull/1882 [#&#8203;1924]: https://github.com/tokio-rs/axum/pull/1924 [#&#8203;1956]: https://github.com/tokio-rs/axum/pull/1956 [#&#8203;1972]: https://github.com/tokio-rs/axum/pull/1972 [#&#8203;2014]: https://github.com/tokio-rs/axum/pull/2014 [#&#8203;2021]: https://github.com/tokio-rs/axum/pull/2021 [#&#8203;2030]: https://github.com/tokio-rs/axum/pull/2030 [#&#8203;2058]: https://github.com/tokio-rs/axum/pull/2058 [#&#8203;2073]: https://github.com/tokio-rs/axum/pull/2073 [#&#8203;2096]: https://github.com/tokio-rs/axum/pull/2096 [#&#8203;2140]: https://github.com/tokio-rs/axum/pull/2140 [#&#8203;2143]: https://github.com/tokio-rs/axum/pull/2143 [#&#8203;2149]: https://github.com/tokio-rs/axum/pull/2149 [#&#8203;2157]: https://github.com/tokio-rs/axum/pull/2157 [#&#8203;2235]: https://github.com/tokio-rs/axum/pull/2235 [#&#8203;2244]: https://github.com/tokio-rs/axum/pull/2244 [#&#8203;2328]: https://github.com/tokio-rs/axum/pull/2328 </details> <details> <summary>maxcountryman/axum-sessions (axum-sessions)</summary> ### [`v0.6.1`](https://github.com/maxcountryman/axum-sessions/compare/v0.6.0...v0.6.1) [Compare Source](https://github.com/maxcountryman/axum-sessions/compare/v0.6.0...v0.6.1) ### [`v0.6.0`](https://github.com/maxcountryman/axum-sessions/releases/tag/v0.6.0): Migration to `tower-sessions` [Compare Source](https://github.com/maxcountryman/axum-sessions/compare/v0.5.0...v0.6.0) > \[!IMPORTANT] > > # **Migration to `tower-sessions`** > > **Development of this crate has moved to [`tower-sessions`](https://github.com/maxcountryman/tower-sessions).** Please consider migrating. > > Numerous bugs and a significant design flaw with `axum-sessions` are addressed with `tower-sessions`. </details> <details> <summary>chronotope/chrono (chrono)</summary> ### [`v0.4.39`](https://github.com/chronotope/chrono/releases/tag/v0.4.39): 0.4.39 [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.38...v0.4.39) #### What's Changed - [#&#8203;1577](https://github.com/chronotope/chrono/issues/1577): Changed years_since documentation to match its implementation by [@&#8203;Taxalo](https://github.com/Taxalo) in https://github.com/chronotope/chrono/pull/1578 - Remove obsolete weird feature guard by [@&#8203;djc](https://github.com/djc) in https://github.com/chronotope/chrono/pull/1582 - Fix format::strftime docs link by [@&#8203;frederikhors](https://github.com/frederikhors) in https://github.com/chronotope/chrono/pull/1581 - Fix micros (optional) limit in and_hms_micro_opt by [@&#8203;qrilka](https://github.com/qrilka) in https://github.com/chronotope/chrono/pull/1584 - Update windows-bindgen requirement from 0.56 to 0.57 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/chronotope/chrono/pull/1589 - native/date: Improve DelayedFormat doc re Panics by [@&#8203;behnam-oneschema](https://github.com/behnam-oneschema) in https://github.com/chronotope/chrono/pull/1590 - Fix typo in rustdoc of `from_timestamp_nanos()` by [@&#8203;sgoll](https://github.com/sgoll) in https://github.com/chronotope/chrono/pull/1591 - Update windows-bindgen requirement from 0.57 to 0.58 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/chronotope/chrono/pull/1594 - docs: document century cutoff for %y by [@&#8203;MarcoGorelli](https://github.com/MarcoGorelli) in https://github.com/chronotope/chrono/pull/1598 - Checked `NaiveWeek` methods by [@&#8203;bragov4ik](https://github.com/bragov4ik) in https://github.com/chronotope/chrono/pull/1600 - Impl serde::Serialize and serde::Deserialize for TimeDelta by [@&#8203;Awpteamoose](https://github.com/Awpteamoose) in https://github.com/chronotope/chrono/pull/1599 - Derive `PartialEq`,`Eq`,`Hash`,`Copy` and `Clone` on `NaiveWeek` by [@&#8203;DSeeLP](https://github.com/DSeeLP) in https://github.com/chronotope/chrono/pull/1618 - Support ohos tzdata since ver.oh35 by [@&#8203;MirageLyu](https://github.com/MirageLyu) in https://github.com/chronotope/chrono/pull/1613 - Use Formatter::pad (instead of write_str) for Weekdays by [@&#8203;horazont](https://github.com/horazont) in https://github.com/chronotope/chrono/pull/1621 - Fix typos by [@&#8203;szepeviktor](https://github.com/szepeviktor) in https://github.com/chronotope/chrono/pull/1623 - Fix comment. by [@&#8203;khuey](https://github.com/khuey) in https://github.com/chronotope/chrono/pull/1624 - chore: add `#[inline]` to `num_days` by [@&#8203;CommanderStorm](https://github.com/CommanderStorm) in https://github.com/chronotope/chrono/pull/1627 - fix typo by [@&#8203;futreall](https://github.com/futreall) in https://github.com/chronotope/chrono/pull/1633 - Update mod.rs by [@&#8203;donatik27](https://github.com/donatik27) in https://github.com/chronotope/chrono/pull/1638 ### [`v0.4.38`](https://github.com/chronotope/chrono/releases/tag/v0.4.38) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.37...v0.4.38) 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](https://github.com/rust-lang/rust/pull/116016). 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 - Remove `rustc-serialize` feature ([#&#8203;1548](https://github.com/chronotope/chrono/issues/1548), thanks [@&#8203;workingjubilee](https://github.com/workingjubilee)) ### Additions - Add `Weekday::days_since` ([#&#8203;1249](https://github.com/chronotope/chrono/issues/1249), based on [#&#8203;216](https://github.com/chronotope/chrono/issues/216) by [@&#8203;clarfonthey](https://github.com/clarfonthey)) - Add `TimeDelta::checked_mul` and `TimeDelta::checked_div` ([#&#8203;1565](https://github.com/chronotope/chrono/issues/1565), thanks [@&#8203;Zomtir](https://github.com/Zomtir)) ### Fixes - Return error when rounding with a zero duration ([#&#8203;1474](https://github.com/chronotope/chrono/issues/1474), thanks [@&#8203;Dav1dde](https://github.com/Dav1dde)) - Manually implement `Copy` for `DateTime` if offset is `Copy` ([#&#8203;1573](https://github.com/chronotope/chrono/issues/1573)) ### Internal - Inline `test_encodable_json` and `test_decodable_json` functions ([#&#8203;1550](https://github.com/chronotope/chrono/issues/1550)) - CI: Reduce combinations in `cargo hack check` ([#&#8203;1553](https://github.com/chronotope/chrono/issues/1553)) - Refactor formatting code ([#&#8203;1335](https://github.com/chronotope/chrono/issues/1335)) - Optimize number formatting ([#&#8203;1558](https://github.com/chronotope/chrono/issues/1558)) - Only package files needed for building and testing ([#&#8203;1554](https://github.com/chronotope/chrono/issues/1554)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.37`](https://github.com/chronotope/chrono/releases/tag/v0.4.37) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.36...v0.4.37) 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](https://github.com/chronotope/chrono/releases/tag/v0.4.36) from yesterday for the yanked release. ### [`v0.4.36`](https://github.com/chronotope/chrono/releases/tag/v0.4.36) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.35...v0.4.36) 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: ```rust 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 - Add `DateTime::with_time()` ([#&#8203;1510](https://github.com/chronotope/chrono/issues/1510)) ### Deprecations - Revert `TimeDelta` deprecations ([#&#8203;1543](https://github.com/chronotope/chrono/issues/1543)) - Deprecate `TimeStamp::timestamp_subsec_nanos`, which was missed in the 0.4.35 release ([#&#8203;1486](https://github.com/chronotope/chrono/issues/1486)) ### Documentation - Correct version number of deprecation notices ([#&#8203;1486](https://github.com/chronotope/chrono/issues/1486)) - Fix some typos ([#&#8203;1505](https://github.com/chronotope/chrono/issues/1505)) - Slightly improve serde documentation ([#&#8203;1519](https://github.com/chronotope/chrono/issues/1519)) - Main documentation: simplify links and reflow text ([#&#8203;1535](https://github.com/chronotope/chrono/issues/1535)) ### Internal - CI: Lint benchmarks ([#&#8203;1489](https://github.com/chronotope/chrono/issues/1489)) - Remove unnessary `Copy` and `Send` impls ([#&#8203;1492](https://github.com/chronotope/chrono/issues/1492), thanks [@&#8203;erickt](https://github.com/erickt)) - Backport streamlined `NaiveDate` unit tests ([#&#8203;1500](https://github.com/chronotope/chrono/issues/1500), thanks [@&#8203;Zomtir](https://github.com/Zomtir)) - Rename `LocalResult` to `TzResolution`, add alias ([#&#8203;1501](https://github.com/chronotope/chrono/issues/1501)) - Update windows-bindgen to 0.55 ([#&#8203;1504](https://github.com/chronotope/chrono/issues/1504)) - Avoid duplicate imports, which generate warnings on nightly ([#&#8203;1507](https://github.com/chronotope/chrono/issues/1507)) - Add extra debug assertions to `NaiveDate::from_yof` ([#&#8203;1518](https://github.com/chronotope/chrono/issues/1518)) - Some small simplifications to `DateTime::date_naive` and `NaiveDate::diff_months` ([#&#8203;1530](https://github.com/chronotope/chrono/issues/1530)) - Remove `unwrap` in Unix `Local` type ([#&#8203;1533](https://github.com/chronotope/chrono/issues/1533)) - Use different method to ignore feature-dependent doctests ([#&#8203;1534](https://github.com/chronotope/chrono/issues/1534)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.35`](https://github.com/chronotope/chrono/releases/tag/v0.4.35) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.34...v0.4.35) 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}` ([#&#8203;1234](https://github.com/chronotope/chrono/issues/1234)) - Add getters to `Parsed` ([#&#8203;1465](https://github.com/chronotope/chrono/issues/1465)) ### Deprecations - Deprecate timestamp methods on `NaiveDateTime` ([#&#8203;1473](https://github.com/chronotope/chrono/issues/1473)) - Deprecate panicking constructors of `TimeDelta` ([#&#8203;1450](https://github.com/chronotope/chrono/issues/1450)) ### Changes/fixes - Use `NonZeroI32` inside `NaiveDate` ([#&#8203;1207](https://github.com/chronotope/chrono/issues/1207)) - Mark `format::Numeric` and `format::Fixed` as `non_exhaustive` ([#&#8203;1430](https://github.com/chronotope/chrono/issues/1430)) - `Parsed` fixes to error values ([#&#8203;1439](https://github.com/chronotope/chrono/issues/1439)) - Use `overflowing_naive_local` in `DateTime::checked_add*` ([#&#8203;1333](https://github.com/chronotope/chrono/issues/1333)) - Do complete range checks in `Parsed::set_*` ([#&#8203;1465](https://github.com/chronotope/chrono/issues/1465)) ### Documentation - Rustfmt doctests ([#&#8203;1452](https://github.com/chronotope/chrono/issues/1452)) - Improve docs for crate features ([#&#8203;1455](https://github.com/chronotope/chrono/issues/1455), thanks [@&#8203;edmorley](https://github.com/edmorley)) - Add more documentation and examples to `Parsed` ([#&#8203;1439](https://github.com/chronotope/chrono/issues/1439)) ### Internal - Refactor `internals` module ([#&#8203;1428](https://github.com/chronotope/chrono/issues/1428), [#&#8203;1429](https://github.com/chronotope/chrono/issues/1429), [#&#8203;1431](https://github.com/chronotope/chrono/issues/1431), [#&#8203;1432](https://github.com/chronotope/chrono/issues/1432), [#&#8203;1433](https://github.com/chronotope/chrono/issues/1433), [#&#8203;1438](https://github.com/chronotope/chrono/issues/1438)) - CI: test cross-compiling to `x86_64-unknown-illumos` instead of Solaris ([#&#8203;1437](https://github.com/chronotope/chrono/issues/1437)) - CI: lint Windows target, fix clippy warning ([#&#8203;1441](https://github.com/chronotope/chrono/issues/1441)) - CI: only run `cargo hack check` on Linux ([#&#8203;1442](https://github.com/chronotope/chrono/issues/1442)) - Update windows-bindgen to 0.54 ([#&#8203;1462](https://github.com/chronotope/chrono/issues/1462), [#&#8203;1483](https://github.com/chronotope/chrono/issues/1483)) - Simplify error value of `parse_internal` ([#&#8203;1459](https://github.com/chronotope/chrono/issues/1459)) - Simplify `SerdeError` ([#&#8203;1458](https://github.com/chronotope/chrono/issues/1458)) - Simplify `NaiveDate::from_isoywd` a bit ([#&#8203;1464](https://github.com/chronotope/chrono/issues/1464)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.34`](https://github.com/chronotope/chrono/releases/tag/v0.4.34) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.33...v0.4.34) ### 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 - Add missing range check in `TimeDelta::milliseconds` ([#&#8203;1385](https://github.com/chronotope/chrono/issues/1385), thanks [@&#8203;danwilliams](https://github.com/danwilliams)) - Remove check for `DurationExceedsTimestamp` in `DurationRound` ([#&#8203;1403](https://github.com/chronotope/chrono/issues/1403), thanks [@&#8203;joroKr21](https://github.com/joroKr21)) - Fix localized formatting with `%X` (https://github.com/chronotope/pure-rust-locales/pull/12, [#&#8203;1420](https://github.com/chronotope/chrono/issues/1420)) - Windows: base implementation on `GetTimeZoneInformationForYear` ([#&#8203;1017](https://github.com/chronotope/chrono/issues/1017)) ### Additions - Add `TimeDelta::try_milliseconds` ([#&#8203;1385](https://github.com/chronotope/chrono/issues/1385), thanks [@&#8203;danwilliams](https://github.com/danwilliams)) - Add `TimeDelta::new` ([#&#8203;1337](https://github.com/chronotope/chrono/issues/1337)) - Add `StrftimeItems::{parse, parse_to_owned}` and more documentation ([#&#8203;1184](https://github.com/chronotope/chrono/issues/1184)) - More standard traits and documentation for `format::Locale` (via https://github.com/chronotope/pure-rust-locales/pull/8) ### Changes - Rename `Duration` to `TimeDelta`, add type alias ([#&#8203;1406](https://github.com/chronotope/chrono/issues/1406)) - Make `TimeDelta` methods const ([#&#8203;1337](https://github.com/chronotope/chrono/issues/1337)) - Make remaining methods of `NaiveDate`, `NaiveWeek`, `NaiveTime` and `NaiveDateTime` const where possible ([#&#8203;1337](https://github.com/chronotope/chrono/issues/1337)) - Make methods on `DateTime` const where possible ([#&#8203;1400](https://github.com/chronotope/chrono/issues/1400)) - Make `Display` format of `TimeDelta` conform better to ISO 8601 ([#&#8203;1328](https://github.com/chronotope/chrono/issues/1328)) ### Documentation - Fix the formatting of `timestamp_micros`'s Example doc ([#&#8203;1338](https://github.com/chronotope/chrono/issues/1338) via [#&#8203;1386](https://github.com/chronotope/chrono/issues/1386), thanks [@&#8203;emikitas](https://github.com/emikitas)) - Specify branch for GitHub Actions badge and fix link ([#&#8203;1388](https://github.com/chronotope/chrono/issues/1388)) - Don't mention some deprecated methods in docs ([#&#8203;1395](https://github.com/chronotope/chrono/issues/1395)) - Remove stray documentation from main ([#&#8203;1397](https://github.com/chronotope/chrono/issues/1397)) - Improved documentation of `TimeDelta` constructors ([#&#8203;1385](https://github.com/chronotope/chrono/issues/1385), thanks [@&#8203;danwilliams](https://github.com/danwilliams)) ### Internal - Switch branch names: 0.4.x releases are the `main` branch, work on 0.5 happens in the `0.5.x` branch ([#&#8203;1390](https://github.com/chronotope/chrono/issues/1390), [#&#8203;1402](https://github.com/chronotope/chrono/issues/1402)). - Don't use deprecated method in `impl Arbitrary for DateTime` and set up CI test ([#&#8203;1336](https://github.com/chronotope/chrono/issues/1336)) - Remove workaround for Rust < 1.61 ([#&#8203;1393](https://github.com/chronotope/chrono/issues/1393)) - Bump `codecov/codecov-action` from 3 to 4 ([#&#8203;1404](https://github.com/chronotope/chrono/issues/1404)) - Remove partial support for handling `-0000` offset ([#&#8203;1411](https://github.com/chronotope/chrono/issues/1411)) - Move `TOO_LONG` error out of `parse_internal` ([#&#8203;1419](https://github.com/chronotope/chrono/issues/1419)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.33`](https://github.com/chronotope/chrono/releases/tag/v0.4.33) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.32...v0.4.33) This release fixes the broken docrs.rs build of [chrono 0.4.32](https://github.com/chronotope/chrono/releases/tag/v0.4.32). #### What's Changed - Make `rkyv` feature imply `size_32` ([#&#8203;1383](https://github.com/chronotope/chrono/issues/1383)) - Fixed typo in `Duration::hours()` exception ([#&#8203;1384](https://github.com/chronotope/chrono/issues/1384), thanks [@&#8203;danwilliams](https://github.com/danwilliams)) ### [`v0.4.32`](https://github.com/chronotope/chrono/releases/tag/v0.4.32) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.31...v0.4.32) In this release we shipped part of the effort to reduce the number of methods that could unexpectedly panic, notably for the `DateTime` and `Duration` 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 a `DateTime` 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 for `Debug` output. In chrono 0.4.32 the range of `NaiveDate`, `NaiveDateTime` and `DateTime` 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 the `MIN` and `MAX` dates. `Duration` had a similar issue. The range of this type was pretty arbitrary picked to match the range of an `i64` in milliseconds. Negating an `i64::MIN` pushes a value out of range, and in the same way negating `Duration::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. - Better support for `rkyv`. - Most methods on `NaiveDateTime` are now const. - We had to bump our MSRV to 1.61 to keep building with our dependencies. This will also allow us to make more methods on `DateTime` const in a future release. Complete list of changes: #### Fixes - Fix panic in `TimeZone::from_local_datetime` ([#&#8203;1071](https://github.com/chronotope/chrono/issues/1071)) - Fix out of range panics in `DateTime` getters and setters ([#&#8203;1317](https://github.com/chronotope/chrono/issues/1317), [#&#8203;1329](https://github.com/chronotope/chrono/issues/1329)) #### Additions - Add `NaiveDateTime::checked_(add|sub)_offset` ([#&#8203;1313](https://github.com/chronotope/chrono/issues/1313)) - Add `DateTime::to_utc` ([#&#8203;1325](https://github.com/chronotope/chrono/issues/1325)) - Derive `Default` for `Duration` ([#&#8203;1327](https://github.com/chronotope/chrono/issues/1327)) - Add `Duration::subsec_nanos` ([#&#8203;1327](https://github.com/chronotope/chrono/issues/1327)) - Add `try_*` builders to `Duration` ([#&#8203;1327](https://github.com/chronotope/chrono/issues/1327)) - Implement `AddAssign` and `SubAssign` for `Duration` ([#&#8203;1327](https://github.com/chronotope/chrono/issues/1327)) - Make methods on `NaiveDateTime` const where possible ([#&#8203;1286](https://github.com/chronotope/chrono/issues/1286)) - Split `clock` feature into `clock` and `now` ([#&#8203;1343](https://github.com/chronotope/chrono/issues/1343), thanks [@&#8203;mmastrac](https://github.com/mmastrac)) - Add `From<NaiveDate>` for `NaiveDateTime` ([#&#8203;1355](https://github.com/chronotope/chrono/issues/1355), thanks [@&#8203;dcechano](https://github.com/dcechano)) - Add `NaiveDateTime::from_timestamp_nanos` ([#&#8203;1357](https://github.com/chronotope/chrono/issues/1357), thanks [@&#8203;Ali-Mirghasemi](https://github.com/Ali-Mirghasemi)) - Add `Months::num_months()` and `num_years()` ([#&#8203;1373](https://github.com/chronotope/chrono/issues/1373), thanks [@&#8203;danwilliams](https://github.com/danwilliams)) - Add `DateTime<Utc>::from_timestamp_millis` ([#&#8203;1374](https://github.com/chronotope/chrono/issues/1374), thanks [@&#8203;xmakro](https://github.com/xmakro)) #### Changes - Fix panic in `Duration::MIN.abs()` (adjust `Duration::MIN` by 1 millisecond) ([#&#8203;1334](https://github.com/chronotope/chrono/issues/1334)) - Bump MSRV to 1.61 ([#&#8203;1347](https://github.com/chronotope/chrono/issues/1347)) - Update windows-targets requirement from 0.48 to 0.52 ([#&#8203;1360](https://github.com/chronotope/chrono/issues/1360)) - Update windows-bindgen to 0.52 ([#&#8203;1379](https://github.com/chronotope/chrono/issues/1379)) #### Deprecations - Deprecate standalone `format` functions ([#&#8203;1306](https://github.com/chronotope/chrono/issues/1306)) #### Documentation - Improve doc comment and tests for timestamp_nanos_opt ([#&#8203;1299](https://github.com/chronotope/chrono/issues/1299), thanks [@&#8203;mlegner](https://github.com/mlegner)) - Switch to `doc_auto_cfg` ([#&#8203;1305](https://github.com/chronotope/chrono/issues/1305), [#&#8203;1326](https://github.com/chronotope/chrono/issues/1326)) - Document panics in `Add`/`Sub` impls and use `expect` ([#&#8203;1316](https://github.com/chronotope/chrono/issues/1316)) - Improve types listed in top-level documentation ([#&#8203;1274](https://github.com/chronotope/chrono/issues/1274)) - Improve deprecation note of `TimeZone::datetime_from_str` ([#&#8203;1342](https://github.com/chronotope/chrono/issues/1342), thanks [@&#8203;tmccombs](https://github.com/tmccombs)) - Fix typos in `Datelike` impl for `DateTime` ([#&#8203;1376](https://github.com/chronotope/chrono/issues/1376), thanks [@&#8203;ElectrifyPro](https://github.com/ElectrifyPro)) #### Rkyv support - Export `Archived*` types in `rkyv` module ([#&#8203;1304](https://github.com/chronotope/chrono/issues/1304)) - Duplicate derives on `Archived*` types ([#&#8203;1271](https://github.com/chronotope/chrono/issues/1271), thanks [@&#8203;Awpteamoose](https://github.com/Awpteamoose)) - Archive derive of PartialEq for rkyv ([#&#8203;959](https://github.com/chronotope/chrono/issues/959), thanks [@&#8203;mkatychev](https://github.com/mkatychev)) - Expose rkyv features as features for chrono users ([#&#8203;1368](https://github.com/chronotope/chrono/issues/1368), thanks [@&#8203;gz](https://github.com/gz)) #### Changes to unstable features - Don't let `unstable-locales` imply the `alloc` feature ([#&#8203;1307](https://github.com/chronotope/chrono/issues/1307)) - Remove `format::{format_localized, format_item_localized}` ([#&#8203;1311](https://github.com/chronotope/chrono/issues/1311)) - Inline `write_rfc2822_inner`, don't localize ([#&#8203;1322](https://github.com/chronotope/chrono/issues/1322)) #### Internal - Add benchmark for `DateTime::with_*` ([#&#8203;1309](https://github.com/chronotope/chrono/issues/1309)) - Fix `*_DAYS_FROM_YEAR_0` calculation ([#&#8203;1312](https://github.com/chronotope/chrono/issues/1312)) - Add `NaiveTime::overflowing_(add|sub)_offset` ([#&#8203;1310](https://github.com/chronotope/chrono/issues/1310)) - Rewrite `DateTime::overflowing_(add|sub)_offset` ([#&#8203;1069](https://github.com/chronotope/chrono/issues/1069)) - Tests calling date command `set env LC_ALL` ([#&#8203;1315](https://github.com/chronotope/chrono/issues/1315), thanks [@&#8203;jtmoon79](https://github.com/jtmoon79)) - Update `deny.toml` ([#&#8203;1320](https://github.com/chronotope/chrono/issues/1320)) - Bump actions/setup-node from 3 to 4 ([#&#8203;1346](https://github.com/chronotope/chrono/issues/1346)) - test.yml remove errant `with: node-version` ([#&#8203;1352](https://github.com/chronotope/chrono/issues/1352), thanks [@&#8203;jtmoon79](https://github.com/jtmoon79)) - CI Linting: Fix missing sources checkout in `toml` job ([#&#8203;1371](https://github.com/chronotope/chrono/issues/1371), thanks [@&#8203;gibbz00](https://github.com/gibbz00)) - Silence clippy lint for test code with Rust 1.74.0 ([#&#8203;1362](https://github.com/chronotope/chrono/issues/1362)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.31`](https://github.com/chronotope/chrono/releases/tag/v0.4.31) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.30...v0.4.31) Another maintenance release. It was not a planned effort to improve our support for UNIX timestamps, yet most PRs seem related to this. ##### Deprecations - Deprecate `timestamp_nanos` in favor of the non-panicking `timestamp_nanos_opt` ([#&#8203;1275](https://github.com/chronotope/chrono/issues/1275)) ##### Additions - Add `DateTime::<Utc>::from_timestamp` ([#&#8203;1279](https://github.com/chronotope/chrono/issues/1279), thanks [@&#8203;demurgos](https://github.com/demurgos)) - Add `TimeZone::timestamp_micros` ([#&#8203;1285](https://github.com/chronotope/chrono/issues/1285), thanks [@&#8203;emikitas](https://github.com/emikitas)) - Add `DateTime<Tz>::timestamp_nanos_opt` and `NaiveDateTime::timestamp_nanos_opt` ([#&#8203;1275](https://github.com/chronotope/chrono/issues/1275)) - Add `UNIX_EPOCH` constants ([#&#8203;1291](https://github.com/chronotope/chrono/issues/1291)) ##### Fixes - Format day of month in RFC 2822 without padding ([#&#8203;1272](https://github.com/chronotope/chrono/issues/1272)) - Don't allow strange leap seconds which are not on a minute boundary initialization methods ([#&#8203;1283](https://github.com/chronotope/chrono/issues/1283)) 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` - Fix underflow in `NaiveDateTime::timestamp_nanos_opt` ([#&#8203;1294](https://github.com/chronotope/chrono/issues/1294), thanks [@&#8203;crepererum](https://github.com/crepererum)) ##### Documentation - Add more documentation about the RFC 2822 obsolete date format ([#&#8203;1267](https://github.com/chronotope/chrono/issues/1267)) ##### Internal - Remove internal `__doctest` feature and `doc_comment` dependency ([#&#8203;1276](https://github.com/chronotope/chrono/issues/1276)) - CI: Bump `actions/checkout` from 3 to 4 ([#&#8203;1280](https://github.com/chronotope/chrono/issues/1280)) - Optimize `NaiveDate::add_days` for small values ([#&#8203;1214](https://github.com/chronotope/chrono/issues/1214)) - Upgrade `pure-rust-locales` to 0.7.0 ([#&#8203;1288](https://github.com/chronotope/chrono/issues/1288), thanks [@&#8203;jeremija](https://github.com/jeremija) wo did good improvements on `pure-rust-locales`) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.30`](https://github.com/chronotope/chrono/releases/tag/v0.4.30) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.29...v0.4.30) In this release, we have decided to swap out the `chrono::Duration` type (which has been a re-export of time 0.1 `Duration` type) with our own definition, which exposes a strict superset of the `time::Duration` API. This helps avoid warnings about the [CVE-2020-26235] and [RUSTSEC-2020-0071] advisories for downstream users and allows us to improve the `Duration` 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](https://github.com/chronotope/chrono/pull/1095#issuecomment-1571716955) 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 [#&#8203;1268](https://github.com/chronotope/chrono/issues/1268). ##### Additions - Add `NaiveDate::leap_year` ([#&#8203;1261](https://github.com/chronotope/chrono/issues/1261)) ##### Documentation - Update main documentation from README ([#&#8203;1260](https://github.com/chronotope/chrono/issues/1260), thanks [@&#8203;Stygmates](https://github.com/Stygmates)) - Add history of relation between chrono and time 0.1 to documentation (https://github.com/chronotope/chrono/pull/1264, https://github.com/chronotope/chrono/pull/1266) - Clarify `Timelike::num_seconds_from_midnight` is a simple mapping ([#&#8203;1255](https://github.com/chronotope/chrono/issues/1255)) #### Relation between chrono and time 0.1 Rust first had a `time` module added to `std` in its 0.7 release. It later moved to `libextra`, and then to a `libtime` 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 as `std::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 the `time` crate to eventually be redesigned ([rust#18832], [rust#18858]), like the `num` and `rand` crates. Of course chrono kept its dependency on this `time` crate. `time` started re-exporting `std::time::Duration` during this period. Later, the standard library was changed to have a more limited unsigned `Duration` type ([rust#24920], [RFC 1040]), while the `time` crate kept the full functionality with `time::Duration`. `time::Duration` had been a part of chrono's public API. By 2016 `time` 0.1 lived under the `rust-lang-deprecated` organisation and was not actively maintained ([time#136]). chrono absorbed the platform functionality and `Duration` type of the `time` crate in [chrono#478] (the work started in [chrono#286]). In order to preserve compatibility with downstream crates depending on `time` and `chrono` sharing a `Duration` type, chrono kept depending on time 0.1. chrono offered the option to opt out of the `time` dependency by disabling the `oldtime` feature (swapping it out for an effectively similar chrono type). In 2019, [@&#8203;jhpratt](https://github.com/jhpratt) took over maintenance on the `time` crate and released what amounts to a new crate as `time` 0.2. [rust#15934]: https://github.com/rust-lang/rust/pull/15934 [rust#18832]: https://github.com/rust-lang/rust/pull/18832#issuecomment-62448221 [rust#18858]: https://github.com/rust-lang/rust/pull/18858 [rust#24920]: https://github.com/rust-lang/rust/pull/24920 [RFC 1040]: https://rust-lang.github.io/rfcs/1040-duration-reform.html [time#136]: https://github.com/time-rs/time/issues/136 [chrono#286]: https://github.com/chronotope/chrono/pull/286 [chrono#478]: https://github.com/chronotope/chrono/pull/478 ##### Security advisories In November of 2020 [CVE-2020-26235] and [RUSTSEC-2020-0071] were opened against the `time` crate. [@&#8203;quininer](https://github.com/quininer) had found that calls to `localtime_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 to `time`. 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 function `localtime_r` to do the conversion to local time, which reads the `TZ` 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 the `TZ` variable or via `iana-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 [@&#8203;x-hgg-x](https://github.com/x-hgg-x). As such, chrono now respects the Rust lock when reading the `TZ` environment variable. In general, code should avoid modifying the environment. [CVE-2020-26235]: https://nvd.nist.gov/vuln/detail/CVE-2020-26235 [RUSTSEC-2020-0071]: https://rustsec.org/advisories/RUSTSEC-2020-0071 [chrono#499]: https://github.com/chronotope/chrono/pull/499 [RUSTSEC-2020-0159]: https://rustsec.org/advisories/RUSTSEC-2020-0159.html [rust#27970]: https://github.com/rust-lang/rust/issues/27970 [chrono#677]: https://github.com/chronotope/chrono/pull/677 [tz-rs crate]: https://crates.io/crates/tz-rs ##### 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. [chrono#1095]: https://github.com/chronotope/chrono/pull/1095 Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.29`](https://github.com/chronotope/chrono/releases/tag/v0.4.29) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.28...v0.4.29) This release fixes a panic introduced in chrono 0.4.27 in `FromStr<DateTime<Utc>>` ([#&#8203;1253](https://github.com/chronotope/chrono/issues/1253)). Chrono now has a [Discord channel](https://discord.gg/sXpav4PS7M). #### Fixes - Fix arbitrary string slicing in `parse_rfc3339_relaxed` ([#&#8203;1254](https://github.com/chronotope/chrono/issues/1254)) #### Deprecations - Deprecate `TimeZone::datetime_from_str` ([#&#8203;1251](https://github.com/chronotope/chrono/issues/1251)) #### Documentation - Correct documentation for `FromStr` for `Weekday` and `Month` ([#&#8203;1226](https://github.com/chronotope/chrono/issues/1226), thanks [@&#8203;wfraser](https://github.com/wfraser)) #### Internal improvements - Revert "add test_issue\_866" ([#&#8203;1238](https://github.com/chronotope/chrono/issues/1238)) - CI: run tests on `i686` and `wasm32-wasi` ([#&#8203;1237](https://github.com/chronotope/chrono/issues/1237)) - CI: Include doctests for code coverage ([#&#8203;1248](https://github.com/chronotope/chrono/issues/1248)) - Move benchmarks to a separate crate ([#&#8203;1243](https://github.com/chronotope/chrono/issues/1243)) This allows us to upgrade the criterion dependency to 5.1 without changing our MSRV. - Add Discord link to README ([#&#8203;1240](https://github.com/chronotope/chrono/issues/1240), backported in [#&#8203;1256](https://github.com/chronotope/chrono/issues/1256)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! ### [`v0.4.28`](https://github.com/chronotope/chrono/releases/tag/v0.4.28) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.27...v0.4.28) This release fixes a test failure on 32-bit targets introduced with 0.4.27, see https://github.com/chronotope/chrono/issues/1234. ### [`v0.4.27`](https://github.com/chronotope/chrono/releases/tag/v0.4.27) [Compare Source](https://github.com/chronotope/chrono/compare/v0.4.26...v0.4.27) This release bumps the MSRV from 1.56 to 1.57. This allows us to take advantage of the panicking in const feature. In this release most methods on `NaiveDate` and `NaiveTime` are made const, `NaiveDateTime` and others will follow in a later release. The parser for the `%+` formatting specifier and the `RFC3339` formatting item is switched from a strict to a relaxed parser (see https://github.com/chronotope/chrono/pull/1145). This matches the existing documentation, and the parser used by `DateTime::from_str`. If you need to validate the input, consider using `DateTime::from_rfc3339`. #### Deprecations - Deprecate `DateTime::{from_local, from_utc}` (https://github.com/chronotope/chrono/pull/1175) #### Additions - Let `DateTime::signed_duration_since` take argument with `Borrow` (https://github.com/chronotope/chrono/pull/1119) - Implement `PartialOrd` for `Month` (https://github.com/chronotope/chrono/pull/999, thanks [@&#8203;Munksgaard](https://github.com/Munksgaard)) - Add `Ord` and `Eq` for types which already derive `PartialOrd` and `PartialEq` (https://github.com/chronotope/chrono/pull/1128, thanks [@&#8203;totikom](https://github.com/totikom)) - implement `FusedIterator` for `NaiveDateDaysIterator` and `NaiveDateWeeksIterator` (https://github.com/chronotope/chrono/pull/1134) - Make `NaiveDateDaysIterator` and `NaiveDateWeeksIterator` public (https://github.com/chronotope/chrono/pull/1134) - Add `FromStr` for `FixedOffset` (https://github.com/chronotope/chrono/pull/1157, thanks [@&#8203;mcronce](https://github.com/mcronce)) - Remove `Tz::Offset: Display` requirement from `DateTime::to_rfc*` (https://github.com/chronotope/chrono/pull/1160) - More flexible offset formatting (not exposed yet) (https://github.com/chronotope/chrono/pull/1160) - Make `StrftimeItems` with `unstable-locales` work without allocating (https://github.com/chronotope/chrono/pull/1152) - Make `NaiveDate::from_ymd_opt` const (https://github.com/chronotope/chrono/pull/1172, thanks [@&#8203;kamadorueda](https://github.com/kamadorueda)) - Implement `Error` trait for `ParseWeekdayError` and `ParseMonthError` (https://github.com/chronotope/chrono/pull/539, thanks [@&#8203;mike-kfed](https://github.com/mike-kfed)) - Make methods on `NaiveTime` const, update MSRV to 1.57 (https://github.com/chronotope/chrono/pull/1080) - Make methods on `NaiveDate` const (https://github.com/chronotope/chrono/pull/1205) - Implement operations for `core::time::Duration` on `DateTime` types (https://github.com/chronotope/chrono/pull/1229) #### Fixes - Ensure `timestamp_nanos` panics on overflow in release builds (https://github.com/chronotope/chrono/pull/1123) - Fix `offset_from_local_datetime` for `wasm_bindgen` (https://github.com/chronotope/chrono/pull/1131) - Parsing: Consider `%s` to be a timestamp in UTC (https://github.com/chronotope/chrono/pull/1136) - Don't panic when formatting with `%#z` (https://github.com/chronotope/chrono/pull/1140, thanks [@&#8203;domodwyer](https://github.com/domodwyer)) - Parsing: allow MINUS SIGN (U+2212) in offset (https://github.com/chronotope/chrono/pull/1087, thanks [@&#8203;jtmoon79](https://github.com/jtmoon79)) - Fix locale formatting for `%c` and `%r` (https://github.com/chronotope/chrono/pull/1165) - Localize decimal point with `unstable-locales` feature (https://github.com/chronotope/chrono/pull/1168) - Fix panic on macOS 10.12 caused by using version 1 of the TZif file format (https://github.com/chronotope/chrono/pull/1201, thanks to help from [@&#8203;jfro](https://github.com/jfro)) - Fix deserialization of negative timestamps (https://github.com/chronotope/chrono/pull/1194) - Do not use `Offset`'s `Debug` impl when serializing `DateTime` (https://github.com/chronotope/chrono/pull/1035) - Allow missing seconds in `NaiveTime::from_str` (https://github.com/chronotope/chrono/pull/1181) - Do not depend on `android-tzdata` if the `clock` feature is not enabled (https://github.com/chronotope/chrono/pull/1220, thanks [@&#8203;AlexTMjugador](https://github.com/AlexTMjugador)) - Small fixes to the RFC 3339 parsers (https://github.com/chronotope/chrono/pull/1145) #### Documentation - Add "Errors" and "Panics" sections to API docs (https://github.com/chronotope/chrono/pull/1120) - Specify licenses in SPDX format (https://github.com/chronotope/chrono/pull/1132, backport of https://github.com/chronotope/chrono/issues/910, thanks [@&#8203;LingMan](https://github.com/LingMan)) - Fix `NaiveTime` doc typo (https://github.com/chronotope/chrono/pull/1146, thanks [@&#8203;zachs18](https://github.com/zachs18)) - Clarify nanosecond formatting specifier doc (https://github.com/chronotope/chrono/pull/1173) - Add warning against combining multiple `Datelike::with_*` (https://github.com/chronotope/chrono/pull/1199) - Fix typo "accepted" (https://github.com/chronotope/chrono/pull/1209, thanks [@&#8203;simon04](https://github.com/simon04)) - Add some examples to `Utc::now` and `Local::now` (https://github.com/chronotope/chrono/pull/1192) - Add example to `Weekday::num_days_from_monday` (https://github.com/chronotope/chrono/pull/1193) - Fix some comments and panic messages (https://github.com/chronotope/chrono/pull/1221, thanks [@&#8203;umanwizard](https://github.com/umanwizard)) #### Internal improvements - `DateTime::to_rfc_*` optimizations (https://github.com/chronotope/chrono/pull/1200) - Move all tests into modules, fix clippy warnings (https://github.com/chronotope/chrono/pull/1138) - Offset parsing cleanup (https://github.com/chronotope/chrono/pull/1158) - Factor out formatting to `format/formatting.rs` (https://github.com/chronotope/chrono/pull/1156) - Format refactorings (https://github.com/chronotope/chrono/pull/1198) - Format toml files with taplo (https://github.com/chronotope/chrono/pull/1117, thanks [@&#8203;tottoto](https://github.com/tottoto)) - Stop vendoring `saturating_abs` (https://github.com/chronotope/chrono/pull/1124) - CI: shell set -eux, use bash (https://github.com/chronotope/chrono/pull/1103, thanks [@&#8203;jtmoon79](https://github.com/jtmoon79)) - Fix dead code error when running dateutils test on Windows (https://github.com/chronotope/chrono/pull/1125) - Remove `Makefile` (https://github.com/chronotope/chrono/pull/1133) - CI: Test `wasm-bindgen` feature (https://github.com/chronotope/chrono/pull/1131) - Stop using deprecated methods in parse module (https://github.com/chronotope/chrono/pull/1142) - Add formatting benchmarks (https://github.com/chronotope/chrono/pull/1155) - Feature gate tests instead of methods (https://github.com/chronotope/chrono/pull/1159, https://github.com/chronotope/chrono/pull/1162) - Parallelize `try_verify_against_date_command` (https://github.com/chronotope/chrono/pull/1161) - CI: also run integration tests with `no_std` (https://github.com/chronotope/chrono/pull/1166) - Split ` test_parse ` (https://github.com/chronotope/chrono/pull/1170) - Remove `#![deny(dead_code)]` (https://github.com/chronotope/chrono/pull/1187) - Clippy fixes for Rust 1.71 (https://github.com/chronotope/chrono/pull/1186) - Various small improvements (https://github.com/chronotope/chrono/pull/1191) - Add unit test for uncovered regions (https://github.com/chronotope/chrono/pull/1149, thanks [@&#8203;CXWorks](https://github.com/CXWorks)) - Don't test the same thing twice in `test_date_extreme_offset` (https://github.com/chronotope/chrono/pull/1195) - CI: Add workflow code coverage report and upload (https://github.com/chronotope/chrono/pull/1178, https://github.com/chronotope/chrono/pull/1215, thanks [@&#8203;jtmoon79](https://github.com/jtmoon79)) - CI: fail on warnings in `features-check` (https://github.com/chronotope/chrono/pull/1216) - Switch to windows-bindgen (https://github.com/chronotope/chrono/pull/1202, thanks to help from [@&#8203;MarijnS95](https://github.com/MarijnS95)) Thanks to all contributors on behalf of the chrono team, [@&#8203;djc](https://github.com/djc) and [@&#8203;pitdicker](https://github.com/pitdicker)! </details> <details> <summary>clap-rs/clap (clap)</summary> ### [`v4.5.23`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4523---2024-12-05) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.22...v4.5.23) ##### Fixes - *(parser)* When check `allow_negative_numbers`, allow `E` again ### [`v4.5.22`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4522---2024-12-03) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.21...v4.5.22) ##### Fixes - *(assert)* Catch bugs with arguments requiring themself ### [`v4.5.21`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4521---2024-11-13) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.20...v4.5.21) ##### Fixes - *(parser)* Ensure defaults are filled in on error with `ignore_errors(true)` ### [`v4.5.20`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4520---2024-10-08) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.19...v4.5.20) ##### Features - *(unstable)* Add `CommandExt` ### [`v4.5.19`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4519---2024-10-01) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.18...v4.5.19) ##### Internal - Update dependencies ### [`v4.5.18`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4518---2024-09-20) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.17...v4.5.18) ##### Features - *(builder)* Expose `Arg::get_display_order` and `Command::get_display_order` ### [`v4.5.17`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4517---2024-09-04) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.16...v4.5.17) ##### Fixes - *(help)* Style required argument groups - *(derive)* Improve error messages when unsupported fields are used ### [`v4.5.16`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4516---2024-08-15) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.15...v4.5.16) ##### Fixes - *(derive)* Improve error messages when `derive` feature is missing ### [`v4.5.15`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4515---2024-08-10) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.14...v4.5.15) ##### Compatiblity - *(unstable-ext)* `Arg::remove` changed return types ##### Fixes - *(unstable-ext)* Make `Arg::remove` return the removed item ### [`v4.5.14`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4514---2024-08-08) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.13...v4.5.14) ##### Features - *(unstable-ext)* Added `Arg::add` for attaching arbitrary state, like completion hints, to `Arg` without `Arg` knowing about it ### [`v4.5.13`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4513---2024-07-31) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.12...v4.5.13) ##### Fixes - *(derive)* Improve error message when `#[flatten]`ing an optional `#[group(skip)]` - *(help)* Properly wrap long subcommand descriptions in help ### [`v4.5.12`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4512---2024-07-31) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.11...v4.5.12) ### [`v4.5.11`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4511---2024-07-25) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.10...v4.5.11) ### [`v4.5.10`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4510---2024-07-23) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.9...v4.5.10) ### [`v4.5.9`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#459---2024-07-09) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.8...v4.5.9) ##### Fixes - *(error)* When defining a custom help flag, be sure to suggest it like we do the built-in one ### [`v4.5.8`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#458---2024-06-28) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.7...v4.5.8) ##### Fixes - Reduce extra flushes ### [`v4.5.7`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#457---2024-06-10) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.6...v4.5.7) ##### Fixes - Clean up error message when too few arguments for `num_args` ### [`v4.5.6`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#456---2024-06-06) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.5...v4.5.6) ### [`v4.5.5`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#455---2024-06-06) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.4...v4.5.5) ##### Fixes - Allow `exclusive` to override `required_unless_present`, `required_unless_present_any`, `required_unless_present_all` ### [`v4.5.4`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#454---2024-03-25) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.3...v4.5.4) ##### Fixes - *(derive)* Allow non-literal `#[arg(id)]` attributes again ### [`v4.5.3`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#453---2024-03-15) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.2...v4.5.3) ##### Internal - *(derive)* Update `heck` ### [`v4.5.2`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4523---2024-12-05) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.1...v4.5.2) ##### Fixes - *(parser)* When check `allow_negative_numbers`, allow `E` again ### [`v4.5.1`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4519---2024-10-01) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.0...v4.5.1) ##### Internal - Update dependencies ### [`v4.5.0`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#450---2024-02-08) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.18...v4.5.0) ##### Compatibility - Update MSRV to 1.74 ### [`v4.4.18`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4418---2024-01-16) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.17...v4.4.18) ##### Fixes - *(error)* When lacking `usage` feature, ensure the list of required arguments is unique ### [`v4.4.17`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4417---2024-01-15) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.16...v4.4.17) ##### Fixes - Fix `panic!` when mixing `args_conflicts_with_subcommands` with `ArgGroup` (which is implicit with `derive`) introduced in 4.4.15 ### [`v4.4.16`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4416---2024-01-12) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.15...v4.4.16) ##### Fixes - Ensure invalid escape sequences in user-defined strings are correctly stripped when terminal doesn't support color ### [`v4.4.15`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4415---2024-01-11) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.14...v4.4.15) ##### Fixes - Improve error for `args_conflicts_with_subcommands` - Ensure we error for `args_conflicts_with_subcommands` when using subcommand short and long flags ### [`v4.4.14`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4414---2024-01-08) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.13...v4.4.14) ##### Documentation - Fix `find` cookbook entry to allow repeats of flags/options ##### Features - Allow `num_args(0)` on options which allows making them emulate being a flag for position-tracking flags ### [`v4.4.13`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4413---2024-01-04) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.12...v4.4.13) ##### Documentation - Fix link to structopt migration guide ### [`v4.4.12`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4412---2023-12-28) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.11...v4.4.12) ##### Performance - Only ask `TypedValueParser` for possible values if needed ### [`v4.4.11`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4411---2023-12-04) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.10...v4.4.11) ##### Features - Add `Command::mut_group` ### [`v4.4.10`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4410---2023-11-28) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.9...v4.4.10) ##### Documentation - Link out to changelog - Cross link derive's attribute reference to derive tutorial ### [`v4.4.9`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#449---2023-11-27) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.8...v4.4.9) ##### Fixes - *(help)* Show correct `Command::about` under flattened headings - *(help)* Respect `hide` when flattening subcommands ### [`v4.4.8`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#448---2023-11-10) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.7...v4.4.8) ##### Features - Add `Command::flatten_help` to allow `git stash -h` like help for subcommands ### [`v4.4.7`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#447---2023-10-24) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.6...v4.4.7) ##### Performance - Reduced code size ### [`v4.4.6`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#446---2023-09-28) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.5...v4.4.6) ##### Internal - Upgrade `anstream` ### [`v4.4.5`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#445---2023-09-25) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.4...v4.4.5) ##### Fixes - *(parser)* When inferring subcommand `name` or `long_flag`, allow ambiguous-looking matches that unambiguously map back to the same command - *(parser)* When inferring subcommand `long_flag`, don't panic - *(assert)* Clarify what action is causing a positional that doesn't set values which is especially useful for derive users ### [`v4.4.4`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#444---2023-09-18) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.3...v4.4.4) ##### Internal - Update `terminal_size` to 0.3 ### [`v4.4.3`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#443---2023-09-12) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.2...v4.4.3) ##### Documentation - *(derive)* Clarify use of attributes within the tutorial - Split sections in the builder and derive tutorials into separate modules ### [`v4.4.2`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#442---2023-08-31) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.1...v4.4.2) ##### Performance - Improve build times by removing `once_cell` dependency ### [`v4.4.1`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4418---2024-01-16) [Compare Source](https://github.com/clap-rs/clap/compare/v4.4.0...v4.4.1) ##### Fixes - *(error)* When lacking `usage` feature, ensure the list of required arguments is unique ### [`v4.4.0`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#440---2023-08-24) [Compare Source](https://github.com/clap-rs/clap/compare/v4.3.24...v4.4.0) ##### compatibility - update msrv to 1.70.0 ### [`v4.3.24`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4324---2023-08-23) [Compare Source](https://github.com/clap-rs/clap/compare/v4.3.23...v4.3.24) ##### Fixes - Ensure column padding is preserved in `--help` with custom templates </details> <details> <summary>iamcodemaker/console_log (console_log)</summary> ### [`v1.0.0`](https://github.com/iamcodemaker/console_log/releases/tag/1.0.0) [Compare Source](https://github.com/iamcodemaker/console_log/compare/0.2.2...1.0.0) This is a re-release of [v0.2.2](https://github.com/iamcodemaker/console_log/releases/tag/0.2.2). There have been no major code changes for over two years. Let's call it stable. 🎉 **Full Changelog**: https://github.com/iamcodemaker/console_log/compare/0.2.2...1.0.0 </details> <details> <summary>graphql-rust/graphql-client (graphql_client)</summary> ### [`v0.14.0`](https://github.com/graphql-rust/graphql-client/blob/HEAD/CHANGELOG.md#0140---2024-03-26) [Compare Source](https://github.com/graphql-rust/graphql-client/compare/0.13.0...0.14.0) - 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 </details> <details> <summary>rust-lang-nursery/lazy-static.rs (lazy_static)</summary> ### [`v1.5.0`](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0) [Compare Source](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0) </details> <details> <summary>leptos-rs/leptos (leptos)</summary> ### [`v0.7.2`](https://github.com/leptos-rs/leptos/releases/tag/v0.7.2) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.7.1...v0.7.2) **If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes [here](https://github.com/leptos-rs/leptos/releases/tag/v0.7.0).** This is a small patch release including a couple of bugfixes, importantly to the hydration of static text nodes on `nightly`. ##### What's Changed - Update elements.rs to include `popovertarget` and `popovertargetaction` for the `<button>` element by [@&#8203;Figments](https://github.com/Figments) in https://github.com/leptos-rs/leptos/pull/3379 - fix(ci): missing glib in ci by [@&#8203;sabify](https://github.com/sabify) in https://github.com/leptos-rs/leptos/pull/3376 - docs: showcase let syntax in for_loop by [@&#8203;purung](https://github.com/purung) in https://github.com/leptos-rs/leptos/pull/3383 - Add `From<ArcStore<T>>` for `Store<T, S>` by [@&#8203;mscofield0](https://github.com/mscofield0) in https://github.com/leptos-rs/leptos/pull/3389 - fix: correct span for `let:` syntax (closes [#&#8203;3387](https://github.com/leptos-rs/leptos/issues/3387)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3391 - fix(ci): add missing glib for semver checks by [@&#8203;sabify](https://github.com/sabify) in https://github.com/leptos-rs/leptos/pull/3393 - fix: correct hydration position for static text nodes in `nightly` (closes [#&#8203;3395](https://github.com/leptos-rs/leptos/issues/3395)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3396 ##### New Contributors - [@&#8203;Figments](https://github.com/Figments) made their first contribution in https://github.com/leptos-rs/leptos/pull/3379 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.7.1...v0.7.2 ### [`v0.7.1`](https://github.com/leptos-rs/leptos/releases/tag/v0.7.1) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.7.0...v0.7.1) **If you're migrating from 0.6 to 0.7, please see the 0.7.0 release notes [here](https://github.com/leptos-rs/leptos/releases/tag/v0.7.0).** This is just a small patch release, two weeks after the 0.7.0 release, geared toward fixing in bugs and filling in API holes since then. ##### What's Changed - fix: prevent multiple location headers on redirect ([#&#8203;3298](https://github.com/leptos-rs/leptos/issues/3298)) by [@&#8203;veigaribo](https://github.com/veigaribo) in https://github.com/leptos-rs/leptos/pull/3311 - Remove the Send requirement on a local Action's future (fixes [#&#8203;3309](https://github.com/leptos-rs/leptos/issues/3309)) by [@&#8203;rjmac](https://github.com/rjmac) in https://github.com/leptos-rs/leptos/pull/3310 - fix: wait for blocking resources before sending subsequent chunks (closes [#&#8203;3280](https://github.com/leptos-rs/leptos/issues/3280)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3282 - chore: fix typo by [@&#8203;mahdi739](https://github.com/mahdi739) in https://github.com/leptos-rs/leptos/pull/3320 - chore(deps): bump postcard from 1.0.10 to 1.1.1 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3319 - chore(deps): bump wasm-bindgen-futures from 0.4.45 to 0.4.47 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3318 - chore(deps): bump js-sys from 0.3.72 to 0.3.74 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3306 - chore(deps): bump bytes from 1.8.0 to 1.9.0 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3297 - chore(deps): bump url from 2.5.3 to 2.5.4 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3291 - chore(deps): bump tracing from 0.1.40 to 0.1.41 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3294 - chore(deps): bump wasm-bindgen from 0.2.95 to 0.2.97 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3317 - chore(deps): bump rkyv from 0.8.8 to 0.8.9 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3290 - chore(deps): bump hyper from 1.5.0 to 1.5.1 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3265 - chore(deps): bump rustls from 0.23.16 to 0.23.18 in the cargo group across 1 directory by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/3289 - fix: correctly swap `Vec<_>` in the DOM (closes [#&#8203;3321](https://github.com/leptos-rs/leptos/issues/3321)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3324 - fix: correctly support `!Send` Actix APIs in server functions by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3326 - fix: correctly mount/unmount hydrated static text nodes in nightly mode (closes [#&#8203;3334](https://github.com/leptos-rs/leptos/issues/3334)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3336 - feat: add `scroll` prop to `<A/>` component to control scrolling behavior (closes [#&#8203;2666](https://github.com/leptos-rs/leptos/issues/2666)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3333 - Increase number of branch arms for `either!` macro by [@&#8203;bicarlsen](https://github.com/bicarlsen) in https://github.com/leptos-rs/leptos/pull/3337 - Fix a doc typo and one broken intra-doc link by [@&#8203;FreezyLemon](https://github.com/FreezyLemon) in https://github.com/leptos-rs/leptos/pull/3341 - fix: nested keyed fields in stores (closes [#&#8203;3338](https://github.com/leptos-rs/leptos/issues/3338)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3344 - fix: don't try to hydrate inside `<noscript>` (closes [#&#8203;3360](https://github.com/leptos-rs/leptos/issues/3360)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3363 - feat : implemented actix multipart by [@&#8203;sutantodadang](https://github.com/sutantodadang) in https://github.com/leptos-rs/leptos/pull/3361 - Minor typo fix in `ToChildren::to_children` docs. by [@&#8203;bicarlsen](https://github.com/bicarlsen) in https://github.com/leptos-rs/leptos/pull/3352 - TypedChildrenFn impl Clone trait by [@&#8203;redforks](https://github.com/redforks) in https://github.com/leptos-rs/leptos/pull/3349 - Opt in locations in release mode with --cfg locations by [@&#8203;zakstucke](https://github.com/zakstucke) in https://github.com/leptos-rs/leptos/pull/3281 - fix docs by [@&#8203;mscofield0](https://github.com/mscofield0) in https://github.com/leptos-rs/leptos/pull/3350 - Referential context: with_context and update_context by [@&#8203;zakstucke](https://github.com/zakstucke) in https://github.com/leptos-rs/leptos/pull/3279 - fix: Implement PatchField for `usize` by [@&#8203;marcuswhybrow](https://github.com/marcuswhybrow) in https://github.com/leptos-rs/leptos/pull/3346 - Fix memo check behavior by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3356 - feat: AttributeInterceptor component to allow passing attributes to other elements by [@&#8203;paul-hansen](https://github.com/paul-hansen) in https://github.com/leptos-rs/leptos/pull/3340 - docs: clarify `Signal::derive()` behavior by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3351 - fix: rebuilding of `InertElement` (closes [#&#8203;3368](https://github.com/leptos-rs/leptos/issues/3368)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3370 - chore: reenable `cargo-semver-checks` on PRs by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/3375 - Implement signal.into_inner() by [@&#8203;stefnotch](https://github.com/stefnotch) in https://github.com/leptos-rs/leptos/pull/3343 - Implement IntoSplitSignal for Field. by [@&#8203;fiadliel](https://github.com/fiadliel) in https://github.com/leptos-rs/leptos/pull/3364 ##### New Contributors - [@&#8203;veigaribo](https://github.com/veigaribo) made their first contribution in https://github.com/leptos-rs/leptos/pull/3311 - [@&#8203;FreezyLemon](https://github.com/FreezyLemon) made their first contribution in https://github.com/leptos-rs/leptos/pull/3341 - [@&#8203;sutantodadang](https://github.com/sutantodadang) made their first contribution in https://github.com/leptos-rs/leptos/pull/3361 - [@&#8203;redforks](https://github.com/redforks) made their first contribution in https://github.com/leptos-rs/leptos/pull/3349 - [@&#8203;mscofield0](https://github.com/mscofield0) made their first contribution in https://github.com/leptos-rs/leptos/pull/3350 - [@&#8203;marcuswhybrow](https://github.com/marcuswhybrow) made their first contribution in https://github.com/leptos-rs/leptos/pull/3346 - [@&#8203;fiadliel](https://github.com/fiadliel) made their first contribution in https://github.com/leptos-rs/leptos/pull/3364 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.7.0...v0.7.1 ### [`v0.7.0`](https://github.com/leptos-rs/leptos/releases/tag/v0.7.0) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.15...v0.7.0) At long last, as the culmination of more than a year of work, the 0.7 release has arrived! 0.7 is a nearly-complete rewrite of the internals of the framework, with the following goals: - maintain backwards compatibility for as much user application code as possible - improve the async story and fix Suspense edge cases and limitations - reduce WASM binary size - reduce HTML size - faster HTML rendering - allow signals to be sent across threads - enhance the ergonomics of things like prop spreading and accessing the HTML shell of your application - build the foundation for future work - reactive stores to make nested reactivity more pleasant - client-side routing with islands and state preservation - integrating with native UI toolkits to create desktop applications ##### Getting Started 0.7 works with the current `cargo-leptos` version. If you want to start exploring, there are starter templates for Axum and Actix. Each template is only three files. They show some of the boilerplate differences; for more details, see below. Axum: `cargo leptos new --git https://github.com/leptos-rs/start-axum` ([repo](https://github.com/leptos-rs/start-axum)) Actix: `cargo leptos new --git https://github.com/leptos-rs/start-actix` ([repo](https://github.com/leptos-rs/start-actix)) ##### New Features ##### `.await` on resources and `async` in `<Suspense/>` Currently, `create_resource` allows you to synchronously access the value of some async data as either `None` or `Some(_)`. However, it requires that you *always* access it this way. This has some drawbacks: - requires that you null-check every piece of data - makes it difficult for one resource to wait for another resource to load Now, you can `.await` a resource, and you can use `async` blocks within a `<Suspense/>` via the `Suspend` wrapper, which makes it easier to chain two resources: ```rust let user = Resource::new(|| (), |_| user_id()); let posts = Resource::new( // resources still manually track dependencies (necessary for hydration) move || user.get(), move |_| async move { // but you can .await a resource inside another let user = user.await?; get_posts(user).await }, ); view! { <Suspense> // you can `.await` resources to avoid dealing with the `None` state <p>"User ID: " {move || Suspend::new(async move { match user.await { // ... } })}</p> // or you can still use .get() to access resources in things like component props <For each=move || posts.get().and_then(Result::ok).unwrap_or_default() key=|post| post.id let:post > // ... </For> </Suspense> } ``` ##### Reference-counted signal types One of the awkward edge cases of current Leptos is that our `Copy` arena for signals makes it possible to leak memory if you have a collection of nested signals and do not dispose them. ([See 0.6 example](https://github.com/leptos-rs/leptos/blob/c53fc67d382616f84b6d28b663a3d24fb56debf9/examples/counters/src/lib.rs#L92-L102).) 0.7 exposes `ArcRwSignal`, `ArcReadSignal`, etc., which are `Clone` but not `Copy` and manage their memory via reference counting, but can easily be converted into the copyable `RwSignal` etc. This makes working with nested signal correctly much easier, without sacrificing ergonomics meaningfully. See the [0.7 `counters` example](https://github.com/leptos-rs/leptos/blob/leptos\_0.7/examples/counters/src/lib.rs) for more. ##### `.read()` and `.write()` on signals You can now use `.read()` and `.write()` to get immutable and mutable guards for the value of a signal, which will track/update appropriately: these work like `.with()` and `.update()` but without the extra closure, or like `.get()` but without cloning. ```rust let long_vec = RwSignal::new(vec![42; 1000]); let short_vec = RwSignal::new(vec![13; 2]); // bad: clones both Vecs let bad_len = move || long_vec.get().len() + short_vec.get().len(); // ugly: awkward nested syntax (or a macro) let ugly_len = move || long_vec.with(|long| short_vec.with(|short| long.len() + short.len())); // readable but doesn't clone let good_len = move || long_vec.read().len() + short_vec.read().len(); ``` > These should always be used for short periods of time, not stored somewhere for longer-term use, just like any guard or lock, or you can cause deadlocks or panics. ##### Custom HTML shell The HTML document "shell" for server rendering is currently hardcoded as part of the server integrations, limiting your ability to customize it. Now you simply include it as part of your application, which also means that you can customize things like teh `<title>` without needing to use `leptos_meta`. ```rust pub fn shell(options: LeptosOptions) -> impl IntoView { view! { <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <AutoReload options=options.clone() /> <HydrationScripts options/> <MetaTags/> </head> <body> <App/> </body> </html> } } ``` ##### Enhanced attribute spreading Any valid attribute can now be spread onto any component, allowing you to extend the UI created by a component however you want. This works through multiple components: for example, if you spread attributes onto a `Suspense` they will be passed through to whatever it returns. ```xml // attributes that are spread onto a component will be applied to *all* elements returned as part of // the component's view. to apply attributes to a subset of the component, pass them via a component prop <ComponentThatTakesSpread // the class:, style:, prop:, on: syntaxes work just as they do on elements class:foo=true style:font-weight="bold" prop:cool=42 on:click=move |_| alert("clicked ComponentThatTakesSpread") // props are passed as they usually are on components some_prop=13 // to pass a plain HTML attribute, prefix it with attr: attr:id="foo" // or, if you want to include multiple attributes, rather than prefixing each with // attr:, you can separate them from component props with the spread {..} {..} // everything after this is treated as an HTML attribute title="ooh, a title!" {..spread_onto_component} /> ``` ##### Improved `<ProtectedRoute/>` The current `ProtectedRoute` component is not great: it checks the condition once, synchronously, on navigation, and so it doesn't respond to changes and can't easily be used with async data. The new `ProtectedRoute` is reactive and uses Suspense so you can use resources or reactive data. There are examples of this now in [`router`](https://github.com/leptos-rs/leptos/tree/leptos\_0.7/examples/router) and [`ssr_modes_axum`](https://github.com/leptos-rs/leptos/tree/leptos\_0.7/examples/ssr_modes_axum). ##### Two-way binding with `bind:` syntax Two-way binding allows you to pass signals directly to inputs, rather than separately managing `prop:value` and `on:input` to sync the signals to the inputs. ```rust // You can use `RwSignal`s let is_awesome = RwSignal::new(true); let sth = RwSignal::new("one".to_string()); // And you can use split signals let (text, set_text) = signal("Hello world".to_string()); view! { // Use `bind:checked` and a `bool` signal for a checkbox <input type="checkbox" bind:checked=is_awesome /> // Use `bind:group` and `String` for radio inputs <input type="radio" value="one" bind:group=sth /> <input type="radio" value="two" bind:group=sth /> <input type="radio" value="trhee" bind:group=sth /> // Use `bind:value` and `String` for everything else <input type="text" bind:value=(text, set_text) /> <textarea bind:value=(text, set_text) /> } ``` ##### Reactive Stores Stores are a new reactive primitive that allow you to reactively access deeply-nested fields in a struct without needing to create signals inside signals; rather, you can use plain data types, annotated with `#[derive(Store)]`, and then access fields with reactive getters/setters. Updating one subfield of a `Store` does not trigger effects only listening to a sibling field; listening to one field of a store does not track the sibling fields. Stores are most useful for nested data structures, so a succinct example is difficult, but the [`stores`](https://github.com/leptos-rs/leptos/blob/main/examples/stores/src/lib.rs) example shows a complete use case. ##### Support the View Transition API for router animations The `Routes`/`FlatRoutes` component now have a `transition` prop. Setting this to `true` will cause the router to use the browser's View Transition API during navigation. You can control animations during navigation using CSS classes. Which animations are used can be controlled using classes that the router will set on the `<html>` element: `.routing-progress` while navigating, `.router-back` during a back navigation, and `.router-outlet-{n}` for the depth of the outlet that is being changed (`0` for the root page changing, `1` for the first `Outlet`, etc.) The [`router` example](https://github.com/leptos-rs/leptos/tree/main/examples/router) uses this API. > Note: View Transitions are not supported on all browsers, but have been accepted as a standard and can be [polyfilled](https://github.com/demarketed/view-transitions-polyfill). Using a built-in browser API is much better in the long term than our bug-prone and difficult-to-maintain custom implementation. ##### Breaking Changes ##### Imports I'm reorganizing the module structure to improve docs and discoverability. We will still have a prelude that can be used for glob imports of almost everything that's currently exported from the root. ```diff - use leptos::*; + use leptos::prelude::*; ``` Likewise, the router exposes things via `leptos_router::components` and `leptos_router::hooks`. rust-analyzer can help fix imports fairly well. I'm hoping for feedback on the new module structure, whether it makes sense, and any improvements. I have not done too much work to sort through the reexports, look at how docs look, etc. yet. ##### Naming We're migrating away from `create_` naming toward more idiomatic Rust naming patterns: - `create_signal` to `signal` (like `channel`) - `create_rw_signal` to `RwSignal::new()` - etc. I've left some of the current functions in, marked deprecated; others may have been missed, but should be easy to find [via docs.rs](https://docs.rs/leptos/0.7.0-alpha/leptos). ##### Type erasure and view types One of the major changes in this release is replacing the `View` enum with statically-typed views, which is where most of the binary size savings come from. If you need to branch and return one of several types, you can either use one of the `Either` enums in `leptos::either`, or you can use `.into_any()` to erase the type. Generally speaking the compiler can do its job better if you maintain more type information so the `Either` types should be preferred, but `AnyView` is not bad to use when needed. ```rust // Either if some_condition { Either::Left(view! { <p>"Foo"</p> }) } else { Either::Right("Bar") } // .into_any() if some_condition { view! { <p>"Foo"</p> }.into_any() } else { "Bar".into_any() } ``` ##### Boilerplate There have been changes to the SSR and hydration boilerplate, which include (but aren't limited to) - `get_configuration` is sync (remove the `.await`) - you provide the app shell - `.leptos_routes` no longer takes `LeptosOptions` as an argument - use `leptos::mount::hydrate_body` (hydration) instead of `leptos::mount::mount_to_body` (which is now CSR-specific) - ... and probably more Check the starter templates for a good setup. ##### Route definitions The patterns for route definition have changed in several ways. - `fallback` is now a required prop on `<Routes/>`, rather than an optional prop on `<Router/>` - If you do not need nested routes, there is now a `<FlatRoutes/>` component that optimizes for this case - If you use nested routes, any routes with children should be `<ParentRoute/>` - Route paths are defined with static types, rather than strings: `path="foo"` becomes `path=StaticSegment("foo")`, and there are `path=":id"` becomes `path=ParamSegment("id")`, `path="posts/:id"` becomes `path=(StaticSegment("posts"), ParamSegment("id"))`, and so on. There is a `path!()` macro that will do this for you: i.e., it will expand `path!("/foo/:id")` to `path=(StaticSegment("foo"), ParamSegment("id"))`. See the `router` and `hackernews` examples. ##### `Send`/`Sync` signals By default, the data held in reactive primitives (signals, memos, effects) must be safe to send across threads. For non-threadsafe types, there is a "storage" generic on signal types. This defaults to `SyncStorage`, but you can optionally specify `LocalStorage` instead. Many APIs have `_local()` alternatives to enable this. ```rust let (foo, bar) = signal("baz"); // error: `std::rc::Rc<&str>` cannot be shared between threads safely // let (foo, bar) = signal(Rc::new("baz")); let (foo, bar) = signal_local(Rc::new("baz")); let qux = RwSignal::new("baz"); // error: `std::rc::Rc<&str>` cannot be shared between threads safely // let qux = RwSignal::new(Rc::new("baz")); let qux = RwSignal::new_local(Rc::new("baz")); ``` ##### Custom `IntoView` and `IntoAttribute` implementations If you currently have implementations of `IntoView` or `IntoAttribute` for custom data types, in a way that allows you to use them directly in the view, you should replace those with implementations of `IntoRender` and `IntoAttributeValue`, respectively. See [this PR](https://github.com/leptos-rs/leptos/pull/3062) for examples. ##### Minor Breaking Changes - The `Await` component now takes a plain `Future` for its `future` prop rather than a `Fn() -> Future`, because it uses an optimized resource implementation - Views for arbitrary data types can now be added by implementing `IntoRender` rather than `IntoView` (see discussion in [#&#8203;3062](https://github.com/leptos-rs/leptos/issues/3062)) - `ParamsMap` supports multiple values per key (which is supported by query strings), so the API now differentiates between inserting a new value for the same key and replacing the value, and between getting one value and getting all values for a key - The `Stylesheet` component no longer automatically works with the file hashing feature of `cargo-leptos`. You can use `HashedStylesheet` and pass it the appropriate props instead. - A number of components previously had props that existed only to pass an HTML attribute down to the element they create. (For example, an `<A>` component with a `class` prop that set the `class` on the `<a>` element.) These have been replaced by the new attribute-spreading API, to reduce complexity of the components themselves. - `LeptosOptions` now uses `Arc<str>` for its fields that were formerly `String`, so that it is less expensive to clone. In practice, this usually only means using `&field` or `field.as_ref()` in a few places that require `&str`, and so on. - `experimental-islands` feature renamed to `islands` - The `batch` function no longer exists: all updates now exhibit the batching behavior that was previously opt-in via `batch` - Recursive components now need to be boxed/type-erased, to allow the compiler to calculate the size of the view tree correctly. You can do this by simply adding `.into_any()` at the end of the component that you are going to use recursively. - `Signal<T>` no longer directly implements `From<Fn() -> T>`, which allows it to implement `From<T>` and therefore to be a more useful replacement for `MaybeSignal<T>`, for a prop that is "some `T` or any signal that returns `T`." To convert a closure into a `Signal<_>` you can call `Signal::derive()` explicitly. I know this makes the ergonomics of using the `Signal<_>` wrapper slightly worse, but it adds additional expressiveness by supporting plain `T`. (If you want to keep the old behavior, consider taking `impl Fn() -> T` as a prop if you are using nightly, where all the signals as well as closures implement this trait.) ##### Miscellaneous I'm sure there are a bunch of small and larger changes I have not mentioned above. By the time of final release, help compiling a total list of breaking changes/migration guide would be much appreciated. At present, the starter templates and the `examples` directory in the PR can provide a pretty comprehensive set of changes. ##### On storing views in signals... There's a pattern I've seen many use that I do not particularly like, but accidentally enabled through the way APIs happened to be (or needed to be) designed in Leptos 0.1-0.6, in which a user stores some view in a signal and then reads it somewhere else. This was possible because `View` needed to be `Clone` for internal reasons. Some users used this to create custom control flow: for example, you could create a global "header view" signal, and then update it from leaf components by storing a new view in it. I'd consider this a bit of an antipattern, for a couple reasons: 1. Ideally the application is designed so that data flows through the reactive graph, and the view is defined declaratively at the "leaves" of the application by components that take that reactive data 2. More practically, DOM elements are `Clone` but in a surprising way: you can clone the reference to a DOM node, but that is a shallow, not a deep clone, and if you use it in multiple places by `.get()`ing the signal more than once, it will only appear in the last location In the statically-typed view tree, views are not necessarily cloneable (including the `AnyView` type), so they can't easily be stored in a signal. However, it is possible to achieve a similar goal by using a "reactive channel" pattern instead: ```rust let count = RwSignal::new(0); let trigger = ArcTrigger::new(); let (tx, rx) = std::sync::mpsc::channel(); let on_click = { let trigger = trigger.clone(); move |_| { leptos::logging::log!("clicked"); *count.write() += 1; tx.send(if *count.read() % 2 == 0 { view! { <p>"An even paragraph"</p> }.into_any() } else { view! { <span>"An odd span"</span> }.into_any() }) .unwrap(); trigger.trigger(); } }; view! { <div> <button on:click=on_click>"Update view"</button> {move || { trigger.track(); rx.try_recv().unwrap_or_else(|_| view! { <p>"Click the button once to begin."</p> }.into_any()) }} </div> } ``` Send the views through a channel means they do not need to be cloned, and won't be used in more than once place (avoiding the edge cases of 2 above.) Each time you send a view through the channel, simply trigger the trigger. ### [`v0.6.15`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.15) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.14...v0.6.15) Belated release notes for 0.6.15. This was a quick patch release to incorporate two changes, one to improve rust-analyzer support and the other to switch from the unmaintained `proc-macro-error` to `proc-macro-error2` per [RUSTSEC](https://rustsec.org/advisories/RUSTSEC-2024-0370.html). ##### What's Changed - \[0.6] fix: Rust-Analyzer hover information / redundant spans by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2840 - leptos 0.6: Switch to `proc-macro-error2` to address unmaintained security advisory. by [@&#8203;azriel91](https://github.com/azriel91) in https://github.com/leptos-rs/leptos/pull/2935 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.14...v0.6.15 ### [`v0.6.14`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.14) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.13...v0.6.14) Hello everyone, The biggest change in this update is to handle wasm-bindgen 0.2.93 and web_sys 0.3.70 Thanks to [@&#8203;sabify](https://github.com/sabify) and [@&#8203;maccesch](https://github.com/maccesch) for those PRs. As always, let us know if there's issues. ##### What's Changed - fix: untrack children in Portal to avoid re-triggering it accidentally (closes [#&#8203;2693](https://github.com/leptos-rs/leptos/issues/2693)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2713 - chore: fix some comments by [@&#8203;renshuncui](https://github.com/renshuncui) in https://github.com/leptos-rs/leptos/pull/2712 - Mnior: As of rust1.80: cargo clippy now reports doc indentation issues. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2728 - chore(ci): update nightly by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2755 - chore: update gloo-net and reqwest to http 1.0 (closes [#&#8203;2688](https://github.com/leptos-rs/leptos/issues/2688)) (leptos 0.6) by [@&#8203;sabify](https://github.com/sabify) in https://github.com/leptos-rs/leptos/pull/2751 - fix: update `wasm-bindgen` and `web-sys` for leptos 0.6 by [@&#8203;sabify](https://github.com/sabify) in https://github.com/leptos-rs/leptos/pull/2830 ##### New Contributors - [@&#8203;renshuncui](https://github.com/renshuncui) made their first contribution in https://github.com/leptos-rs/leptos/pull/2712 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.13...v0.6.14 ### [`v0.6.13`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.13) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.12...v0.6.13) This release mostly includes a series of small bugfixes (see below), but also includes a fix for the annoying issues we'd been having with rust-analyzer ([#&#8203;2527](https://github.com/leptos-rs/leptos/issues/2527)). ##### What's Changed - Fix failing CI by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2611 - fix: extract dyn_bindings impl into DynBindings trait by [@&#8203;Upbolt](https://github.com/Upbolt) in https://github.com/leptos-rs/leptos/pull/2619 - docs: remove duplicated code block in example of For by [@&#8203;tversteeg](https://github.com/tversteeg) in https://github.com/leptos-rs/leptos/pull/2622 - fix: try_with should not panic on disposed resources (closes [#&#8203;2620](https://github.com/leptos-rs/leptos/issues/2620)) by [@&#8203;otopetrik](https://github.com/otopetrik) in https://github.com/leptos-rs/leptos/pull/2621 - fix `rkyv` feature interaction with Axum integration by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2631 - style: simplify string interpolation by [@&#8203;hamirmahal](https://github.com/hamirmahal) in https://github.com/leptos-rs/leptos/pull/2626 - Russian book branch: Translating titles of sections in SUMMARY by [@&#8203;solweo](https://github.com/solweo) in https://github.com/leptos-rs/leptos/pull/2542 - docs: Add docs for `ToChildren` by [@&#8203;spencewenski](https://github.com/spencewenski) in https://github.com/leptos-rs/leptos/pull/2643 - book_ru: SUMMARY.md by [@&#8203;kakserpom](https://github.com/kakserpom) in https://github.com/leptos-rs/leptos/pull/2648 - fix: ensure everything is disposed of consistently by [@&#8203;Giovanni-Tably](https://github.com/Giovanni-Tably) in https://github.com/leptos-rs/leptos/pull/2639 - Server function streaming with serializable types by [@&#8203;ealmloff](https://github.com/ealmloff) in https://github.com/leptos-rs/leptos/pull/2623 - fix: do not unescape / and other route characters when following a link by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2651 - feat: Add Compression to Hacker News w/ Islands Example by [@&#8203;Th3Whit3Wolf](https://github.com/Th3Whit3Wolf) in https://github.com/leptos-rs/leptos/pull/2613 - docs: generate link to definition by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2656 - Fix of [#&#8203;2652](https://github.com/leptos-rs/leptos/issues/2652) by [@&#8203;domwst](https://github.com/domwst) in https://github.com/leptos-rs/leptos/pull/2653 - Fixed several warnings in check pipeline by [@&#8203;domwst](https://github.com/domwst) in https://github.com/leptos-rs/leptos/pull/2654 - add impl IntoStyle for Style by [@&#8203;alfatm](https://github.com/alfatm) in https://github.com/leptos-rs/leptos/pull/2682 - Remove unnecessary 'static lifetime from argument in Style::as_value_string() by [@&#8203;alfatm](https://github.com/alfatm) in https://github.com/leptos-rs/leptos/pull/2683 - fix: move lint rules outside of quote_spanned by [@&#8203;Ar4ys](https://github.com/Ar4ys) in https://github.com/leptos-rs/leptos/pull/2709 ##### New Contributors - [@&#8203;otopetrik](https://github.com/otopetrik) made their first contribution in https://github.com/leptos-rs/leptos/pull/2621 - [@&#8203;hamirmahal](https://github.com/hamirmahal) made their first contribution in https://github.com/leptos-rs/leptos/pull/2626 - [@&#8203;spencewenski](https://github.com/spencewenski) made their first contribution in https://github.com/leptos-rs/leptos/pull/2643 - [@&#8203;kakserpom](https://github.com/kakserpom) made their first contribution in https://github.com/leptos-rs/leptos/pull/2648 - [@&#8203;Th3Whit3Wolf](https://github.com/Th3Whit3Wolf) made their first contribution in https://github.com/leptos-rs/leptos/pull/2613 - [@&#8203;domwst](https://github.com/domwst) made their first contribution in https://github.com/leptos-rs/leptos/pull/2653 - [@&#8203;alfatm](https://github.com/alfatm) made their first contribution in https://github.com/leptos-rs/leptos/pull/2682 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.12...v0.6.13 ### [`v0.6.12`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.12) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.11...v0.6.12) This is mainly a maintenance release, but includes a couple new features that I want to point out: ##### `impl Trait` in Component Props You can now use `impl Trait` syntax directly in component props, rather than explicitly specifying a generic and a `where` clause ##### before ```rust #[component] fn ProgressBar<F>(#[prop(default = 100)] max: u16, progress: F) -> impl IntoView where F: Fn() -> i32 + 'static, { view! { <progress max=max value=progress /> } } ``` ##### after ```rust #[component] fn ProgressBar( #[prop(default = 100)] max: u16, progress: impl Fn() -> i32 + 'static, ) -> impl IntoView { view! { <progress max=max value=progress /> } } ``` ##### Support spreading dynamic attributes from one component to another In the following code `Bar` doesn't currently inherit attributes from `Foo` when it spreads its attributes. PR [#&#8203;2534](https://github.com/leptos-rs/leptos/issues/2534) fixes this. ```rust fn main() { let (count, set_count) = create_signal(0); mount_to_body(move || { view! { <Foo attr:hello=move || count.get().to_string() /> <button on:click=move|_| { set_count.update(|count| *count += 1) }>"+ count"</button> } }); } #[component] fn Foo(#[prop(attrs)] attrs: Vec<(&'static str, Attribute)>) -> impl IntoView { view! { <Bar {..attrs} /> } } #[component] fn Bar(#[prop(attrs)] attrs: Vec<(&'static str, Attribute)>) -> impl IntoView { view! { <div {..attrs}>"hello world"</div> } } ``` ##### Complete Changelog - Update spin_sdk to spin v3 by [@&#8203;benwis](https://github.com/benwis) in https://github.com/leptos-rs/leptos/pull/2525 - Add beginner tip to ErrorBoundary by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2385 - Minor: Bumped serde_qs to 0.13. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2512 - fix: do not submit `<ActionForm>` on `formmethod="dialog"` submission (closes [#&#8203;2523](https://github.com/leptos-rs/leptos/issues/2523)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2531 - Add id to ActionForm and MultiActionForm by [@&#8203;benwis](https://github.com/benwis) in https://github.com/leptos-rs/leptos/pull/2535 - Minor: Bumped trunk-action to 0.5. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2533 - chore: publish `Oco` separately as `oco_ref` crate so that it can be used elsewhere by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2536 - Adding Russian book branch by [@&#8203;solweo](https://github.com/solweo) in https://github.com/leptos-rs/leptos/pull/2516 - fix: make TextProp's IntoView and IntoAttribute impls reactive by [@&#8203;0e4ef622](https://github.com/0e4ef622) in https://github.com/leptos-rs/leptos/pull/2518 - feat: spread component attrs by [@&#8203;Upbolt](https://github.com/Upbolt) in https://github.com/leptos-rs/leptos/pull/2534 - docs: remove unnecessary type parameter and trait bound in component macro 'bad' example by [@&#8203;ethanniser](https://github.com/ethanniser) in https://github.com/leptos-rs/leptos/pull/2520 - Adds ability to use multiple classes in view macro using array syntax. by [@&#8203;bicarlsen](https://github.com/bicarlsen) in https://github.com/leptos-rs/leptos/pull/2532 - Add 'create_query_signal_with_options' to leptos_router by [@&#8203;kryesh](https://github.com/kryesh) in https://github.com/leptos-rs/leptos/pull/2517 - projects directory with 4 projects by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2500 - docs: add caveats for ProtectedRoute by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2558 - Update leptos-spin-macro reference by [@&#8203;itowlson](https://github.com/itowlson) in https://github.com/leptos-rs/leptos/pull/2570 - Minor: examples/server_fns_axum FileWatcher logs errors to the console. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2547 - Add an example for generating sitemaps by [@&#8203;JoeyMckenzie](https://github.com/JoeyMckenzie) in https://github.com/leptos-rs/leptos/pull/2553 - Added an Index to Project README by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2555 - added project by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2556 - docs: clarify the purpose of local resources by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2543 - Use trunk built-in way of handling tailwind by [@&#8203;SleeplessOne1917](https://github.com/SleeplessOne1917) in https://github.com/leptos-rs/leptos/pull/2557 - Debug NodeRef Warning ([#&#8203;2414](https://github.com/leptos-rs/leptos/issues/2414)) by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2467 - feat: add `input_derive` parameter to `#[server]` macro (closes [#&#8203;2544](https://github.com/leptos-rs/leptos/issues/2544)) by [@&#8203;luxalpa](https://github.com/luxalpa) in https://github.com/leptos-rs/leptos/pull/2545 - Fix `empty_docs` warnings in `#[component]` macro by [@&#8203;abusch](https://github.com/abusch) in https://github.com/leptos-rs/leptos/pull/2574 - fix: don't insert empty child for comment/doctype (closes [#&#8203;2549](https://github.com/leptos-rs/leptos/issues/2549)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2581 - fix: allow temporaries as props (closes [#&#8203;2541](https://github.com/leptos-rs/leptos/issues/2541)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2582 - The counter example, with Dwarf debugging (breakpoints, single stepping in vscode and the browser) by [@&#8203;Hecatron](https://github.com/Hecatron) in https://github.com/leptos-rs/leptos/pull/2563 - fix: StoredValue and Resource panic during cleanup by [@&#8203;luxalpa](https://github.com/luxalpa) in https://github.com/leptos-rs/leptos/pull/2583 - fix: only issue NodeRef warning in debug mode (necessary to compile in `--release`) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2587 - fix: grammar typo for MultiActon doc comment by [@&#8203;pitoniak32](https://github.com/pitoniak32) in https://github.com/leptos-rs/leptos/pull/2589 - Example using the bevy 3d game engine and leptos by [@&#8203;Hecatron](https://github.com/Hecatron) in https://github.com/leptos-rs/leptos/pull/2577 - feat: `#[component]` now handles `impl Trait` by converting to generic type params, fix [#&#8203;2274](https://github.com/leptos-rs/leptos/issues/2274) by [@&#8203;MingweiSamuel](https://github.com/MingweiSamuel) in https://github.com/leptos-rs/leptos/pull/2599 - Allow slice! macro to index tuples by [@&#8203;SleeplessOne1917](https://github.com/SleeplessOne1917) in https://github.com/leptos-rs/leptos/pull/2598 - fix: URL encoding issue (closes [#&#8203;2602](https://github.com/leptos-rs/leptos/issues/2602)) by [@&#8203;luxalpa](https://github.com/luxalpa) in https://github.com/leptos-rs/leptos/pull/2601 ##### New Contributors - [@&#8203;0e4ef622](https://github.com/0e4ef622) made their first contribution in https://github.com/leptos-rs/leptos/pull/2518 - [@&#8203;ethanniser](https://github.com/ethanniser) made their first contribution in https://github.com/leptos-rs/leptos/pull/2520 - [@&#8203;bicarlsen](https://github.com/bicarlsen) made their first contribution in https://github.com/leptos-rs/leptos/pull/2532 - [@&#8203;kryesh](https://github.com/kryesh) made their first contribution in https://github.com/leptos-rs/leptos/pull/2517 - [@&#8203;JoeyMckenzie](https://github.com/JoeyMckenzie) made their first contribution in https://github.com/leptos-rs/leptos/pull/2553 - [@&#8203;abusch](https://github.com/abusch) made their first contribution in https://github.com/leptos-rs/leptos/pull/2574 - [@&#8203;Hecatron](https://github.com/Hecatron) made their first contribution in https://github.com/leptos-rs/leptos/pull/2563 - [@&#8203;pitoniak32](https://github.com/pitoniak32) made their first contribution in https://github.com/leptos-rs/leptos/pull/2589 - [@&#8203;MingweiSamuel](https://github.com/MingweiSamuel) made their first contribution in https://github.com/leptos-rs/leptos/pull/2599 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.11...v0.6.12 ### [`v0.6.11`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.11) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.10...v0.6.11) The primary purpose of this release is that it includes a fix for an unfortunate memory leak when using `leptos_router` on the server. Also included are - the ability to spread both attributes and event handlers onto an element (see the new [`spread` example](https://github.com/leptos-rs/leptos/blob/main/examples/spread/src/lib.rs) for the full set of possibilities) - implementing `IntoView` directly for `Rc<str>` - massive improvements to the spans for error reporting in the `view` macro - migrating all our examples to use the stable features/syntax by default, to reduce confusion for new users It's important to me to say that all three of the new features above were implemented by community members. This release brings us to over 250 total contributors over time, not to mention everyone who's done work on docs, templates, or libraries that exist outside this repo. Thank you to everyone who's been involved in this project so far. ##### What's Changed - stable todomvc example by [@&#8203;mahmoud-eltahawy](https://github.com/mahmoud-eltahawy) in https://github.com/leptos-rs/leptos/pull/2489 - fix(ci): false leptos changes detected by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2491 - ci(examples/error-boundary): use stable syntax by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2496 - ex: counter_url_query; to stable by [@&#8203;solweo](https://github.com/solweo) in https://github.com/leptos-rs/leptos/pull/2499 - stable examples change by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2497 - stable todo_app_sqlite_axum example by [@&#8203;mahmoud-eltahawy](https://github.com/mahmoud-eltahawy) in https://github.com/leptos-rs/leptos/pull/2493 - Implement IntoView for Rc<str> by [@&#8203;ydirson](https://github.com/ydirson) in https://github.com/leptos-rs/leptos/pull/2462 - Allow spreading of both attributes and event handlers by [@&#8203;lpotthast](https://github.com/lpotthast) in https://github.com/leptos-rs/leptos/pull/2432 - chore(ci): move example CI over to stable by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2502 - move channels to stable by [@&#8203;mahmoud-eltahawy](https://github.com/mahmoud-eltahawy) in https://github.com/leptos-rs/leptos/pull/2501 - chore(ci): run all examples under stable and fix remaining linting issue by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2503 - Fix error reporting in view macro by [@&#8203;Ar4ys](https://github.com/Ar4ys) in https://github.com/leptos-rs/leptos/pull/2289 - fix: invalid `Location` header when using `leptos_actix::redirect()` without JS/WASM (closes [#&#8203;2506](https://github.com/leptos-rs/leptos/issues/2506)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2507 - chore(ci): remove nightly feature on `counter_isomorphic` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2510 - Simplify stable syntax in examples by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2511 - fix: stable Router IDs (closes [#&#8203;2514](https://github.com/leptos-rs/leptos/issues/2514)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2515 ##### New Contributors - [@&#8203;mahmoud-eltahawy](https://github.com/mahmoud-eltahawy) made their first contribution in https://github.com/leptos-rs/leptos/pull/2489 - [@&#8203;solweo](https://github.com/solweo) made their first contribution in https://github.com/leptos-rs/leptos/pull/2499 - [@&#8203;ydirson](https://github.com/ydirson) made their first contribution in https://github.com/leptos-rs/leptos/pull/2462 - [@&#8203;Ar4ys](https://github.com/Ar4ys) made their first contribution in https://github.com/leptos-rs/leptos/pull/2289 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.10...v0.6.11 ### [`v0.6.10`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.10) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.9...v0.6.10) Mostly a patch release with a number of bugfixes, as well as some nice quality-of-life improvements: - allowing `#[prop(attrs)]` on slots - add support for `on:` to dynamic children of components (i.e., when you do `<MyComponent on:.../>`, the event listener is now applied correctly to more of the children of `<MyComponent/>`) ##### What's Changed - remove printlns that run many times by [@&#8203;ChristopherBiscardi](https://github.com/ChristopherBiscardi) in https://github.com/leptos-rs/leptos/pull/2402 - feat: allow #\[prop(attrs)] on slots by [@&#8203;Upbolt](https://github.com/Upbolt) in https://github.com/leptos-rs/leptos/pull/2396 - fix: re-throw errors in delegated event listeners by [@&#8203;Giovanni-Tably](https://github.com/Giovanni-Tably) in https://github.com/leptos-rs/leptos/pull/2382 - fix: prevent setting the same event listener twice by [@&#8203;Giovanni-Tably](https://github.com/Giovanni-Tably) in https://github.com/leptos-rs/leptos/pull/2383 - chore: Disallow prints to stdout by [@&#8203;mondeja](https://github.com/mondeja) in https://github.com/leptos-rs/leptos/pull/2404 - chore: update to gloo-net 0.5 (closes [#&#8203;2411](https://github.com/leptos-rs/leptos/issues/2411)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2416 - fix some comments by [@&#8203;battmdpkq](https://github.com/battmdpkq) in https://github.com/leptos-rs/leptos/pull/2413 - fix(ci): leptos examples fail with bindgen schema error by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2428 - chore: update attribute-derive by [@&#8203;ModProg](https://github.com/ModProg) in https://github.com/leptos-rs/leptos/pull/2438 - build(examples): clean more output by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2420 - For the session_auth_axum example, move the passhash into a separate non-serializable struct. by [@&#8203;rcythr](https://github.com/rcythr) in https://github.com/leptos-rs/leptos/pull/2446 - chore(ci): upgrade actions to node 20 by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2444 - register server_fn first to allow for wildcard Route path by [@&#8203;sify21](https://github.com/sify21) in https://github.com/leptos-rs/leptos/pull/2435 - chore: examples/tailwind_axum bumped tailwindcss to 3.4.2. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2443 - Added missing link for #\[server] macro by [@&#8203;ratulb](https://github.com/ratulb) in https://github.com/leptos-rs/leptos/pull/2437 - fix(ci): trunk command not found by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2453 - Chore(ci) bumping tj-actions/changed-files to version 43. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2454 - Bumped base64 to 0.22. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2457 - test(ci): check semver by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2450 - Persist parent span context within resource fetchers by [@&#8203;boyswan](https://github.com/boyswan) in https://github.com/leptos-rs/leptos/pull/2456 - Minor: Ran cargo clippy --fix by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2461 - Fix: Small fix for location hash/fragment by [@&#8203;BToersche](https://github.com/BToersche) in https://github.com/leptos-rs/leptos/pull/2464 - Allow CDN_PKG_PATH at runtime. by [@&#8203;zakstucke](https://github.com/zakstucke) in https://github.com/leptos-rs/leptos/pull/2466 - Remove panic for axum ResponseOptions by [@&#8203;jollygreenlaser](https://github.com/jollygreenlaser) in https://github.com/leptos-rs/leptos/pull/2468 - Fix: Environment variables do not overwrite Config.toml options by [@&#8203;GrumiumXD](https://github.com/GrumiumXD) in https://github.com/leptos-rs/leptos/pull/2433 - ci: disable semver checks by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2471 - Add repository field to server_fn_macro by [@&#8203;paolobarbolini](https://github.com/paolobarbolini) in https://github.com/leptos-rs/leptos/pull/2474 - chore: bump nightly version in examples by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2479 - fix: correctly handle empty `view! {}` in hot-reloading code (closes [#&#8203;2421](https://github.com/leptos-rs/leptos/issues/2421)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2478 - View::on support for CoreComponent::{DynChild, Each} by [@&#8203;zakstucke](https://github.com/zakstucke) in https://github.com/leptos-rs/leptos/pull/2422 - fix: handle directives properly in SSR mode (closes [#&#8203;2448](https://github.com/leptos-rs/leptos/issues/2448)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2477 - chore(ci): run semver checks on push by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2483 ##### New Contributors - [@&#8203;ChristopherBiscardi](https://github.com/ChristopherBiscardi) made their first contribution in https://github.com/leptos-rs/leptos/pull/2402 - [@&#8203;Upbolt](https://github.com/Upbolt) made their first contribution in https://github.com/leptos-rs/leptos/pull/2396 - [@&#8203;Giovanni-Tably](https://github.com/Giovanni-Tably) made their first contribution in https://github.com/leptos-rs/leptos/pull/2382 - [@&#8203;battmdpkq](https://github.com/battmdpkq) made their first contribution in https://github.com/leptos-rs/leptos/pull/2413 - [@&#8203;rcythr](https://github.com/rcythr) made their first contribution in https://github.com/leptos-rs/leptos/pull/2446 - [@&#8203;sify21](https://github.com/sify21) made their first contribution in https://github.com/leptos-rs/leptos/pull/2435 - [@&#8203;ratulb](https://github.com/ratulb) made their first contribution in https://github.com/leptos-rs/leptos/pull/2437 - [@&#8203;boyswan](https://github.com/boyswan) made their first contribution in https://github.com/leptos-rs/leptos/pull/2456 - [@&#8203;BToersche](https://github.com/BToersche) made their first contribution in https://github.com/leptos-rs/leptos/pull/2464 - [@&#8203;zakstucke](https://github.com/zakstucke) made their first contribution in https://github.com/leptos-rs/leptos/pull/2466 - [@&#8203;GrumiumXD](https://github.com/GrumiumXD) made their first contribution in https://github.com/leptos-rs/leptos/pull/2433 - [@&#8203;paolobarbolini](https://github.com/paolobarbolini) made their first contribution in https://github.com/leptos-rs/leptos/pull/2474 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.9...v0.6.10 ### [`v0.6.9`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.9) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.8...v0.6.9) Mostly this release exists to fix imports in Cargo, as well as a few minor bug fixes ##### What's Changed - Minor: examples/todomvc - Rename Todos::new() as Todos::default(). by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2390 - Add MessagePack codec by [@&#8203;johnbchron](https://github.com/johnbchron) in https://github.com/leptos-rs/leptos/pull/2371 ##### New Contributors - [@&#8203;johnbchron](https://github.com/johnbchron) made their first contribution in https://github.com/leptos-rs/leptos/pull/2371 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.8...v0.6.9 ### [`v0.6.8`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.8) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.7...v0.6.8) Mostly this release is to disable file hashing by default, and streamline it's use. It can now be enabled by setting `hash-files=true` in your Cargo.toml or setting the `LEPTOS_HASH_FILES=true` env var when running cargo-leptos. If you're using Docker or moving the bin to a new folder, you need to copy the (by default) `hash.txt` file from `target/{release_profile_name}` to the same folder as your binary, and make sure the env var or cargo.toml option is enabled. Also some minor bug fixes ##### What's Changed - Specify path to wasm bindgen in island macro by [@&#8203;Baptistemontan](https://github.com/Baptistemontan) in https://github.com/leptos-rs/leptos/pull/2387 - add note on how to get leptos_axum::ResponseOptions by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2380 - fix(ci): "needless borrow" error and example never exiting by [@&#8203;paul-hansen](https://github.com/paul-hansen) in https://github.com/leptos-rs/leptos/pull/2392 - fix: ignore this Axum integration as with other doctests for now by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2395 - Unnecessary trait bound `PartialEq` removed from `create_owning_memo` by [@&#8203;zroug](https://github.com/zroug) in https://github.com/leptos-rs/leptos/pull/2394 - fix: correctly reset hydration status in islands mode Suspense (closes [#&#8203;2332](https://github.com/leptos-rs/leptos/issues/2332)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2393 - Rename env var and tweak hashing to align with cargo leptos by [@&#8203;benwis](https://github.com/benwis) in https://github.com/leptos-rs/leptos/pull/2398 ##### New Contributors - [@&#8203;zroug](https://github.com/zroug) made their first contribution in https://github.com/leptos-rs/leptos/pull/2394 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.7...v0.6.8 ### [`v0.6.7`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.7): 0.6.7 [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.6...v0.6.7) Hello everyone! Some lovely changes in here. My favorite is the addition of version hashes to css,js, and wasm files to automatically invalidate browser caching issues. Be sure to update to the latest version of cargo leptos(v0.2.8) to test out this feature. As always, big thanks to our returning contributors and welcome to the new folks! ##### What's Changed - feat: Add owning memos to allow memos that re-use the previous value by [@&#8203;pheki](https://github.com/pheki) in https://github.com/leptos-rs/leptos/pull/2139 - feat: add `impl_from` argument to `#[server]` proc_macro by [@&#8203;videobitva](https://github.com/videobitva) in https://github.com/leptos-rs/leptos/pull/2335 - Make it so that cancelled timeouts don't leak by [@&#8203;rjmac](https://github.com/rjmac) in https://github.com/leptos-rs/leptos/pull/2331 - Update suspense_component.rs documentation to use .get() instead of .… by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2346 - add comment specifying edgecase of server function prefixes by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2345 - feat(leptos-axum): propagate trace context to server functions by [@&#8203;janu-cambrelen](https://github.com/janu-cambrelen) in https://github.com/leptos-rs/leptos/pull/2340 - finish doc sentence by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2348 - Fix Broken Doc links and Deprecate `FromUtf8Error` in `oco.rs` by [@&#8203;zoomiti](https://github.com/zoomiti) in https://github.com/leptos-rs/leptos/pull/2318 - ci(examples): build hackernews_js_fetch with deno by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2344 - chore(ci): fix failing CI by removing deprecation note by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2362 - Trailing slashes ([#&#8203;2154](https://github.com/leptos-rs/leptos/issues/2154)) take 2 by [@&#8203;skirsdeda](https://github.com/skirsdeda) in https://github.com/leptos-rs/leptos/pull/2217 - feat: add method to RouteContext ([#&#8203;1808](https://github.com/leptos-rs/leptos/issues/1808)) by [@&#8203;zoomiti](https://github.com/zoomiti) in https://github.com/leptos-rs/leptos/pull/2315 - Replace Resrouce::read() in doc examples with Resource::get() by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2372 - fix: do not strip query in redirect hook when using client-side navigation by [@&#8203;haslersn](https://github.com/haslersn) in https://github.com/leptos-rs/leptos/pull/2376 - added hashes generated from cargo-leptos by [@&#8203;maccesch](https://github.com/maccesch) in https://github.com/leptos-rs/leptos/pull/2373 - Add MSRV by [@&#8203;paul-hansen](https://github.com/paul-hansen) in https://github.com/leptos-rs/leptos/pull/2360 ##### New Contributors - [@&#8203;pheki](https://github.com/pheki) made their first contribution in https://github.com/leptos-rs/leptos/pull/2139 - [@&#8203;videobitva](https://github.com/videobitva) made their first contribution in https://github.com/leptos-rs/leptos/pull/2335 - [@&#8203;rjmac](https://github.com/rjmac) made their first contribution in https://github.com/leptos-rs/leptos/pull/2331 - [@&#8203;janu-cambrelen](https://github.com/janu-cambrelen) made their first contribution in https://github.com/leptos-rs/leptos/pull/2340 - [@&#8203;skirsdeda](https://github.com/skirsdeda) made their first contribution in https://github.com/leptos-rs/leptos/pull/2217 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.6...v0.6.7 ### [`v0.6.6`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.6) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.5...v0.6.6) Fixed some issues with examples, integrated a server macro for Spin, and improved a number of typos. Thanks to all that participated! For general 0.6 release notes, [see here](https://github.com/leptos-rs/leptos/releases/tag/v0.6.3). ##### What's Changed - Update rkyv example button text to accurately reflect what it does by [@&#8203;Innominus](https://github.com/Innominus) in https://github.com/leptos-rs/leptos/pull/2250 - example/counter_isomorphic Removed console warning. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2244 - Chore: Minor, ran `cargo fmt` by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2254 - examples/hackernews: Add a "Suspense" wrapper. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2253 - fix: error rather than panicking if unable to send response in Axum integration by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2241 - docs: fix broken link in leptos_router by [@&#8203;nootr](https://github.com/nootr) in https://github.com/leptos-rs/leptos/pull/2256 - Adding a Beginner's Tip to HtmlElement<El> by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2218 - Percent Decode Url Parameters by [@&#8203;zoomiti](https://github.com/zoomiti) in https://github.com/leptos-rs/leptos/pull/2251 - feat(axum): provide state to server fn context by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2257 - Fix typo in actix integrations docs by [@&#8203;SleeplessOne1917](https://github.com/SleeplessOne1917) in https://github.com/leptos-rs/leptos/pull/2258 - docs: typos in examples by [@&#8203;ngutech21](https://github.com/ngutech21) in https://github.com/leptos-rs/leptos/pull/2260 - fix: guarantee execution order of effects (closes [#&#8203;2261](https://github.com/leptos-rs/leptos/issues/2261)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2262 - fix: make directive `.into()` calls consistent by [@&#8203;blorbb](https://github.com/blorbb) in https://github.com/leptos-rs/leptos/pull/2249 - chore: fix typo by [@&#8203;saikatdas0790](https://github.com/saikatdas0790) in https://github.com/leptos-rs/leptos/pull/2267 - Create an axum-no-default feature for server_fn and sets leptos_axum to rely on it instead. by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2270 - fix: add key/value pair from submit button when parsing form event by [@&#8203;haslersn](https://github.com/haslersn) in https://github.com/leptos-rs/leptos/pull/2268 - fix(ci): address clippy issue by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2278 - fix(test-report) should show all cargo-make leptos configuration by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2282 - Fix remaining CI issues by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2285 - docs: give a warning when you try to `.dispatch()` an action immediately (closes [#&#8203;2225](https://github.com/leptos-rs/leptos/issues/2225)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2286 - fix(ci): empty directory vector error by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2288 - fix(examples): align crate name and output name (closes [#&#8203;2206](https://github.com/leptos-rs/leptos/issues/2206)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2291 - pub export server is either from leptos_macro or leptos_spin_macro depending on if spin feature is enabled. by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2280 - ci(examples): configure leptos examples to build with cargo-leptos when possible by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2294 - session_auth_axum compiles and works again by [@&#8203;drebbe-intrepid](https://github.com/drebbe-intrepid) in https://github.com/leptos-rs/leptos/pull/2310 - I have been looking the "github actions" build warnings. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2303 - fix(meta): provide meta context missing in example by [@&#8203;EstebanBorai](https://github.com/EstebanBorai) in https://github.com/leptos-rs/leptos/pull/2311 - Error type detection only worked without type path by [@&#8203;maccesch](https://github.com/maccesch) in https://github.com/leptos-rs/leptos/pull/2298 - feat: use cdn url for static assets ([#&#8203;2281](https://github.com/leptos-rs/leptos/issues/2281)) by [@&#8203;zoomiti](https://github.com/zoomiti) in https://github.com/leptos-rs/leptos/pull/2283 - Bumping config to 0.14. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2302 - fix: Transition in hydrate mode that isn't initially created (closes [#&#8203;2279](https://github.com/leptos-rs/leptos/issues/2279)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2314 - docs(examples): update docs by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2313 - docs: log error on failing to convert form to ServerFn type, in addition to setting action value by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2319 - chore(ci): reduce set of tested features to prevent running out of disk space in `server_fn` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2320 - examples: fix CSS file name in `tailwind_axum` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2324 - fix: handle cross-origin redirects in server function redirect hook by [@&#8203;haslersn](https://github.com/haslersn) in https://github.com/leptos-rs/leptos/pull/2329 - Fixed href path in tailwind_csr example by [@&#8203;itsDrac](https://github.com/itsDrac) in https://github.com/leptos-rs/leptos/pull/2328 ##### New Contributors - [@&#8203;Innominus](https://github.com/Innominus) made their first contribution in https://github.com/leptos-rs/leptos/pull/2250 - [@&#8203;nootr](https://github.com/nootr) made their first contribution in https://github.com/leptos-rs/leptos/pull/2256 - [@&#8203;zoomiti](https://github.com/zoomiti) made their first contribution in https://github.com/leptos-rs/leptos/pull/2251 - [@&#8203;ngutech21](https://github.com/ngutech21) made their first contribution in https://github.com/leptos-rs/leptos/pull/2260 - [@&#8203;haslersn](https://github.com/haslersn) made their first contribution in https://github.com/leptos-rs/leptos/pull/2268 - [@&#8203;drebbe-intrepid](https://github.com/drebbe-intrepid) made their first contribution in https://github.com/leptos-rs/leptos/pull/2310 - [@&#8203;EstebanBorai](https://github.com/EstebanBorai) made their first contribution in https://github.com/leptos-rs/leptos/pull/2311 - [@&#8203;itsDrac](https://github.com/itsDrac) made their first contribution in https://github.com/leptos-rs/leptos/pull/2328 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.5...v0.6.6 ### [`v0.6.5`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.5): 0.6.5 [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.4...v0.6.5) This fixes a few bugs that have popped up since 0.6. For general 0.6 release notes, [see here](https://github.com/leptos-rs/leptos/releases/tag/v0.6.3). ##### What's Changed - fix: bug with Actix redirects by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2246 - feat: easily create custom server fn clients by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2247 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.4...v0.6.5 ### [`v0.6.4`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.4): 0.6.4 [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.3...v0.6.4) This fixes a few bugs that have popped up since 0.6.3. For general 0.6 migration notes, [see here](https://github.com/leptos-rs/leptos/releases/tag/v0.6.3). ##### What's Changed - chore: define `edtion = "2021"` in `rustfmt.toml` by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2235 - fix: correctly track source in `create_local_resource` (closes [#&#8203;2237](https://github.com/leptos-rs/leptos/issues/2237)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2238 - example: file upload with streaming progress bar by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2242 - fix: serialization error during SSR on ServerFnError by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2240 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.6.3...v0.6.4 ### [`v0.6.3`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.3): 0.6.3 [Compare Source](https://github.com/leptos-rs/leptos/compare/0.6.2...v0.6.3) This is release for our new server functions rewrite and Axum 0.7 support. This should be a relatively feature-rich release, with limited breaking changes. ##### Migration ##### Actix - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_actix/latest/leptos_actix/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. ##### Axum - This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult [the diff on one of the examples](https://github.com/leptos-rs/leptos/pull/2158/files#diff-ceceec2ecd620c6891344b9407c391c6a9ca3b2d2f101881cd09ddd7f5a31981). (Note that along with Axum 0.7, you'll need to update to `http` 1.0 and `tower_http` 0.5.) - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_axum/latest/leptos_axum/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. - `RequestParts` has been removed, as `http::request::Parts` now implements `Clone`: any `use_context::<RequestParts>()` should be updated to use `Parts` directly instead. ##### `ServerFnError::new()` The addition of custom error types means that constructing `ServerFnError` inside server functions can cause type inference errors: ```rust let oops = Err(ServerFnError::ServerError("No server state".to_string())); return oops; // this is fine oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError` ``` As a result, we've added a helper `ServerFnError::new` which simply constructs a `ServerFnError::<NoCustomError>::ServerError`: ```rust let oops = Err(ServerFnError::new("No server state")); return oops; // this is fine oops? // this is also fine now ``` This has the benefit of being more concise than the earlier pattern in any case. ##### Features A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing - automatic setup of server fn handlers with `.leptos_routes()` from the integrations - a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) ([#&#8203;1868](https://github.com/leptos-rs/leptos/issues/1868), [#&#8203;1989](https://github.com/leptos-rs/leptos/issues/1989)) - support for streaming responses from server functions ([#&#8203;1284](https://github.com/leptos-rs/leptos/issues/1284)) - ability to create custom user encodings for input and output by deriving `IntoReq`, `FromReq`, `IntoRes`, and/or `FromRes` traits - ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported - custom error types ([#&#8203;1657](https://github.com/leptos-rs/leptos/issues/1657)) - a `#[middleware]` macro to add per-server-function middleware from the Tower or Actix ecosystems ([#&#8203;1461](https://github.com/leptos-rs/leptos/issues/1461)) Note: The additional included encodings (`serde_lite`, `rkyv`, multipart form data) are all enabled by additive features on the `server_fn` crate. If you want to use them you can just add that crate as a dependency and enable the required features. **Example**: You can find a comprehensive example of these new features in the new [`server_fns_axum`](https://github.com/leptos-rs/leptos/blob/leptos_v0.6/examples/server_fns_axum/src/app.rs) example. **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.3 ### [`v0.6.2`](https://github.com/leptos-rs/leptos/releases/tag/0.6.2) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.6.1...0.6.2) This is release for our new server functions rewrite and Axum 0.7 support. This should be a relatively feature-rich release, with limited breaking changes. ##### Migration ##### Actix - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_actix/latest/leptos_actix/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. ##### Axum - This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult [the diff on one of the examples](https://github.com/leptos-rs/leptos/pull/2158/files#diff-ceceec2ecd620c6891344b9407c391c6a9ca3b2d2f101881cd09ddd7f5a31981). (Note that along with Axum 0.7, you'll need to update to `http` 1.0 and `tower_http` 0.5.) - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_axum/latest/leptos_axum/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. - `RequestParts` has been removed, as `http::request::Parts` now implements `Clone`: any `use_context::<RequestParts>()` should be updated to use `Parts` directly instead. ##### `ServerFnError::new()` The addition of custom error types means that constructing `ServerFnError` inside server functions can cause type inference errors: ```rust let oops = Err(ServerFnError::ServerError("No server state".to_string())); return oops; // this is fine oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError` ``` As a result, we've added a helper `ServerFnError::new` which simply constructs a `ServerFnError::<NoCustomError>::ServerError`: ```rust let oops = Err(ServerFnError::new("No server state")); return oops; // this is fine oops? // this is also fine now ``` This has the benefit of being more concise than the earlier pattern in any case. ##### Features A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing - automatic setup of server fn handlers with `.leptos_routes()` from the integrations - a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) ([#&#8203;1868](https://github.com/leptos-rs/leptos/issues/1868), [#&#8203;1989](https://github.com/leptos-rs/leptos/issues/1989)) - support for streaming responses from server functions ([#&#8203;1284](https://github.com/leptos-rs/leptos/issues/1284)) - ability to create custom user encodings for input and output by deriving `IntoReq`, `FromReq`, `IntoRes`, and/or `FromRes` traits - ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported - custom error types ([#&#8203;1657](https://github.com/leptos-rs/leptos/issues/1657)) - a `#[middleware]` macro to add per-server-function middleware from the Tower or Actix ecosystems ([#&#8203;1461](https://github.com/leptos-rs/leptos/issues/1461)) Note: The additional included encodings (`serde_lite`, `rkyv`, multipart form data) are all enabled by additive features on the `server_fn` crate. If you want to use them you can just add that crate as a dependency and enable the required features. **Example**: You can find a comprehensive example of these new features in the new [`server_fns_axum`](https://github.com/leptos-rs/leptos/blob/leptos_v0.6/examples/server_fns_axum/src/app.rs) example. **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.7...0.6.2 ### [`v0.6.1`](https://github.com/leptos-rs/leptos/releases/tag/v0.6.1): 0.6.1 [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.7...v0.6.1) This is release for our new server functions rewrite and Axum 0.7 support. This should be a relatively feature-rich release, with limited breaking changes. ##### Migration ##### Actix - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_actix/latest/leptos_actix/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. ##### Axum - This release supports Axum 0.7, so you'll need to migrate from Axum 0.6. The easiest way to do this is probably to consult [the diff on one of the examples](https://github.com/leptos-rs/leptos/pull/2158/files#diff-ceceec2ecd620c6891344b9407c391c6a9ca3b2d2f101881cd09ddd7f5a31981). - You can remove any explicit `.handle_server_fns()` call in your `main.rs`, as server functions are now handled in `.leptos_routes()` - The current `extract` function has been removed, and replaced with a new `extract` that has the same API as the current [`extractor`](https://docs.rs/leptos_axum/latest/leptos_axum/fn.extractor.html). I think this API is strictly better, but please share feedback if you disagree. - `RequestParts` has been removed, as `http::request::Parts` now implements `Clone`: any `use_context::<RequestParts>()` should be updated to use `Parts` directly instead. ##### `ServerFnError::new()` The addition of custom error types means that constructing `ServerFnError` inside server functions can cause type inference errors: ```rust let oops = Err(ServerFnError::ServerError("No server state".to_string())); return oops; // this is fine oops? // this is not: cannot infer type of the type parameter `E` declared on the enum `ServerFnError` ``` As a result, we've added a helper `ServerFnError::new` which simply constructs a `ServerFnError::<NoCustomError>::ServerError`: ```rust let oops = Err(ServerFnError::new("No server state")); return oops; // this is fine oops? // this is also fine now ``` This has the benefit of being more concise than the earlier pattern in any case. ##### Features A rewritten server function system that is backwards-compatible, but reduces binary size and increases flexibility, specifically by allowing - automatic setup of server fn handlers with `.leptos_routes()` from the integrations - a variety of additional built-in encodings (rkyv, multipart forms/file uploads) in addition to the current set (GET URL, POST URL, CBOR, Rkyv) ([#&#8203;1868](https://github.com/leptos-rs/leptos/issues/1868), [#&#8203;1989](https://github.com/leptos-rs/leptos/issues/1989)) - support for streaming responses from server functions ([#&#8203;1284](https://github.com/leptos-rs/leptos/issues/1284)) - ability to create custom user encodings for input and output by deriving `IntoReq`, `FromReq`, `IntoRes`, and/or `FromRes` traits - ability to mix and match encodings easily: This server function should be a JSON POST request and a ByteStream response, this one should be GET URL request and an rkyv response, etc.; any combination of the encodings above is supported - custom error types ([#&#8203;1657](https://github.com/leptos-rs/leptos/issues/1657)) - a `#[middleware]` macro to add per-server-function middleware from the Tower or Actix ecosystems ([#&#8203;1461](https://github.com/leptos-rs/leptos/issues/1461)) Note: The additional included encodings (`serde_lite`, `rkyv`, multipart form data) are all enabled by additive features on the `server_fn` crate. If you want to use them you can just add that crate as a dependency and enable the required features. **Example**: You can find a comprehensive example of these new features in the new [`server_fns_axum`](https://github.com/leptos-rs/leptos/blob/leptos_v0.6/examples/server_fns_axum/src/app.rs) example. **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.6...v0.6.1 ### [`v0.5.7`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.7) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.6...v0.5.7) This has been a rocky week for releases. While finalizing the work on 0.6.0, I intended to publish a final 0.5.5 that would contain all the remaining changes to the 0.5 series. Unfortunately, this release contained two serious issues: 1. breaking doc comments on server functions (fixed and rereleased in 0.5.6) 2. The `trailing_slash` changes to the router in 0.5.5 broke the current routing behavior in several situations (see [#&#8203;2203](https://github.com/leptos-rs/leptos/issues/2203) for details) Because some (many?) existing 0.5 apps would break with this new feature under 0.5 — and worse, because they would compile and then either panic or display the wrong page — I decide to revert the feature immediately. This meant a semver-breaking change between 0.5.6 and 0.5.7, so I have yanked 0.5.5 and 0.5.6 of all the crates. We've added some appropriate regression tests for those issues. Apologies to anyone whose work was affected by this! ### [`v0.5.6`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.6) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.5...v0.5.6) Fix issue were doc comments on server functions caused an error. Sorry bout that! ##### What's Changed - fix: doc comments breaking server functions (closes [#&#8203;2190](https://github.com/leptos-rs/leptos/issues/2190)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2191 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.5...v0.5.6 ### [`v0.5.5`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.5) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.4...v0.5.5) This is a (mostly) bug fix and documentation improvements release. If you're interested in the full list, check out the full What's Changed list below. ##### What's New ##### Trailing Slash Changes [@&#8203;NfNitLoop](https://github.com/NfNitLoop) discovered that by default the leptos_router strips trailing slashes from routes, which might not be what users expect. By default, leptos_router drops the trailing slash on `/foo/`. He's added a new optional setting on Router that could allow you to keep the slashes and have routes for both `/foo` and `/foo/` or redirect from `/foo/` to `/foo`. Check out the docs for details: https://docs.rs/leptos_router/0.5.5/leptos_router/enum.TrailingSlash.html Thanks [@&#8203;NfNitLoop](https://github.com/NfNitLoop)! Thanks to all our new and existing contributors, the 0.6 alpha will be coming out soon with fancy new server functions, so don't go away! ##### What's Changed - Fix book chapter 3.9 [#&#8203;3](https://github.com/leptos-rs/leptos/issues/3) by [@&#8203;jollygreenlaser](https://github.com/jollygreenlaser) in https://github.com/leptos-rs/leptos/pull/2053 - docs: minor fixes for some code examples in the book by [@&#8203;rockie](https://github.com/rockie) in https://github.com/leptos-rs/leptos/pull/2077 - docs: correct titile level for 04b_iteration.md by [@&#8203;sdutwsl](https://github.com/sdutwsl) in https://github.com/leptos-rs/leptos/pull/2080 - Chore: Bump http from 0.2.8 to 0.2.11. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2068 - Use new with macro in book pages, update formatting for create effect page by [@&#8203;jollygreenlaser](https://github.com/jollygreenlaser) in https://github.com/leptos-rs/leptos/pull/2054 - Improve macro hygiene by [@&#8203;blorbb](https://github.com/blorbb) in https://github.com/leptos-rs/leptos/pull/2084 - Book updates by [@&#8203;diversable](https://github.com/diversable) in https://github.com/leptos-rs/leptos/pull/2052 - docs: point the book toward its new location with redirects by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2095 - Fix WASI builds trying to use JS for `spawn_local` by [@&#8203;itowlson](https://github.com/itowlson) in https://github.com/leptos-rs/leptos/pull/2066 - fix: add support for placing attributes on server functions by [@&#8203;tlowerison](https://github.com/tlowerison) in https://github.com/leptos-rs/leptos/pull/2093 - fix: support complete URLs in `<A/>` and `<Form/>` (closes [#&#8203;2076](https://github.com/leptos-rs/leptos/issues/2076)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2096 - Minor documentation corrections by [@&#8203;niclas-ahden](https://github.com/niclas-ahden) in https://github.com/leptos-rs/leptos/pull/2098 - example session-auth-axum: Minor changes for ergonomics by [@&#8203;j0lol](https://github.com/j0lol) in https://github.com/leptos-rs/leptos/pull/2057 - Make tailwind examples more clear by [@&#8203;jsimonrichard](https://github.com/jsimonrichard) in https://github.com/leptos-rs/leptos/pull/2102 - add nix-darwin support, update flake by [@&#8203;Gentle](https://github.com/Gentle) in https://github.com/leptos-rs/leptos/pull/2106 - fix: let `mount_to_body` accept `FnOnce` closures (closes [#&#8203;2115](https://github.com/leptos-rs/leptos/issues/2115)) by [@&#8203;NKID00](https://github.com/NKID00) in https://github.com/leptos-rs/leptos/pull/2116 - chore: don't warn when stabilized features are used by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2118 - Support additional context for route generation by [@&#8203;NiklasEi](https://github.com/NiklasEi) in https://github.com/leptos-rs/leptos/pull/2113 - Added documentation for server fns by [@&#8203;rakshith-ravi](https://github.com/rakshith-ravi) in https://github.com/leptos-rs/leptos/pull/2099 - chore: clean up warnings causing CI issues by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2119 - Bumping itertool version number, fixes downstream "Clippy" warning issue. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2124 - 'a lifetime are not linking input params to the output. Should be replaced by static by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2125 - fix: `<Transition/>` fallback should show on if client-rendered (closes [#&#8203;2123](https://github.com/leptos-rs/leptos/issues/2123)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2128 - docs: specify form for component generics by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2129 - fix: emit original token stream when there are syntax errors in `#[component]` or `#[island]` function signature (closes [#&#8203;2133](https://github.com/leptos-rs/leptos/issues/2133)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2134 - Fixes broken tailwind example repo link by [@&#8203;JackSpagnoli](https://github.com/JackSpagnoli) in https://github.com/leptos-rs/leptos/pull/2138 - chore: clarify `cargo-make` and examples (see [#&#8203;2141](https://github.com/leptos-rs/leptos/issues/2141)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2150 - Make IntoAttribute more flexible for Options by [@&#8203;SleeplessOne1917](https://github.com/SleeplessOne1917) in https://github.com/leptos-rs/leptos/pull/2130 - chore: remove newly-detected unused tuple fields by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2169 - Namespace caches and branches with new router IDs by [@&#8203;sbihel](https://github.com/sbihel) in https://github.com/leptos-rs/leptos/pull/2135 - Cleanup some dead code in actix tailwind example by [@&#8203;paul-hansen](https://github.com/paul-hansen) in https://github.com/leptos-rs/leptos/pull/2160 - fix: add rust-toolchain.toml to examples (fixes [#&#8203;2151](https://github.com/leptos-rs/leptos/issues/2151)) by [@&#8203;webmstk](https://github.com/webmstk) in https://github.com/leptos-rs/leptos/pull/2161 - router: Fix router forgetting about state (fixes [#&#8203;2164](https://github.com/leptos-rs/leptos/issues/2164)) by [@&#8203;luxalpa](https://github.com/luxalpa) in https://github.com/leptos-rs/leptos/pull/2165 - chore(deps): bump tj-actions/changed-files from 39 to 41 in /.github/workflows by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/leptos-rs/leptos/pull/2180 - Better handling for trailing slashes. ([#&#8203;2154](https://github.com/leptos-rs/leptos/issues/2154)) by [@&#8203;NfNitLoop](https://github.com/NfNitLoop) in https://github.com/leptos-rs/leptos/pull/2172 - change: change all tracing levels to `trace` to reduce verbosity by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2176 - draft for sso_auth_session example by [@&#8203;sjud](https://github.com/sjud) in https://github.com/leptos-rs/leptos/pull/2117 ##### New Contributors - [@&#8203;jollygreenlaser](https://github.com/jollygreenlaser) made their first contribution in https://github.com/leptos-rs/leptos/pull/2053 - [@&#8203;rockie](https://github.com/rockie) made their first contribution in https://github.com/leptos-rs/leptos/pull/2077 - [@&#8203;sdutwsl](https://github.com/sdutwsl) made their first contribution in https://github.com/leptos-rs/leptos/pull/2080 - [@&#8203;itowlson](https://github.com/itowlson) made their first contribution in https://github.com/leptos-rs/leptos/pull/2066 - [@&#8203;tlowerison](https://github.com/tlowerison) made their first contribution in https://github.com/leptos-rs/leptos/pull/2093 - [@&#8203;niclas-ahden](https://github.com/niclas-ahden) made their first contribution in https://github.com/leptos-rs/leptos/pull/2098 - [@&#8203;jsimonrichard](https://github.com/jsimonrichard) made their first contribution in https://github.com/leptos-rs/leptos/pull/2102 - [@&#8203;NKID00](https://github.com/NKID00) made their first contribution in https://github.com/leptos-rs/leptos/pull/2116 - [@&#8203;NiklasEi](https://github.com/NiklasEi) made their first contribution in https://github.com/leptos-rs/leptos/pull/2113 - [@&#8203;JackSpagnoli](https://github.com/JackSpagnoli) made their first contribution in https://github.com/leptos-rs/leptos/pull/2138 - [@&#8203;sbihel](https://github.com/sbihel) made their first contribution in https://github.com/leptos-rs/leptos/pull/2135 - [@&#8203;paul-hansen](https://github.com/paul-hansen) made their first contribution in https://github.com/leptos-rs/leptos/pull/2160 - [@&#8203;luxalpa](https://github.com/luxalpa) made their first contribution in https://github.com/leptos-rs/leptos/pull/2165 - [@&#8203;dependabot](https://github.com/dependabot) made their first contribution in https://github.com/leptos-rs/leptos/pull/2180 - [@&#8203;NfNitLoop](https://github.com/NfNitLoop) made their first contribution in https://github.com/leptos-rs/leptos/pull/2172 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.4...v0.5.5 ### [`v0.5.4`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.4) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.3...v0.5.4) ##### `v0.5.4` `v0.5.3` inadvertently introduced a regression in the `<A/>` tag that broke `[aria-current=page]`. Here's 0.5.4 with a fix! 0.5.3 release notes below: *** Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release. ##### Improved rust-analyzer support in `#[component]` macro body Good LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the `#[component]` macro emits code in order to enable better rust-analyzer support within the body of components. If you've disabled rust-analyzer inside `#[component]` for better DX, try toggling that off and see if this is a better experience than it was before! Apologies for any regressions this causes. Please report any issues that arise. > There is still additional work to be done to support rust-analyzer in the `view!` macro. The hoped-for improvements here are solely inside the `#[component]` body. ##### Optional Context `<Provider/>` Component Since 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see [#&#8203;1986](https://github.com/leptos-rs/leptos/issues/1986), [#&#8203;2038](https://github.com/leptos-rs/leptos/issues/2038)). This release includes a `<Provider/>` component that provides a certain value via context *only* to its children: ```rust #[component] pub fn App() -> impl IntoView { // each Provider will only provide the value to its children view! { <Provider value=1u8> // correctly gets 1 from context {use_context::<u8>().unwrap_or(0)} </Provider> <Provider value=2u8> // correctly gets 2 from context {use_context::<u8>().unwrap_or(0)} </Provider> // does not find any u8 in context {use_context::<u8>().unwrap_or(0)} } } ``` `provide_context` continues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use `<Provider/>`. If you have no idea what I mean, check the issues above for examples of the bugs this fixes. ##### What's Changed - docs: make it easy to see how to run each example in its README by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2085 - Fix `aria-current` attribute value by [@&#8203;alexisfontaine](https://github.com/alexisfontaine) in https://github.com/leptos-rs/leptos/pull/2089 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.3...v0.5.4 ### [`v0.5.3`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.3) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.2...v0.5.3) ##### `v0.5.3` Along with the usual set of bugfixes and small improvements, there are two noteworthy additions in this release. ##### Improved rust-analyzer support in `#[component]` macro body Good LSP support for proc macros is hard, because proc macros depend on parsing a stream of input into a valid Rust syntax tree, but while typing you are constantly creating a stream of new, invalid trees. This release tweaks how the `#[component]` macro emits code in order to enable better rust-analyzer support within the body of components. If you've disabled rust-analyzer inside `#[component]` for better DX, try toggling that off and see if this is a better experience than it was before! Apologies for any regressions this causes. Please report any issues that arise. > There is still additional work to be done to support rust-analyzer in the `view!` macro. The hoped-for improvements here are solely inside the `#[component]` body. ##### Optional Context `<Provider/>` Component Since 0.5.0, there've been a couple instances of bugs or confusing behavior related to the fact that context now follows the reactive graph, not the component tree (see [#&#8203;1986](https://github.com/leptos-rs/leptos/issues/1986), [#&#8203;2038](https://github.com/leptos-rs/leptos/issues/2038)). This release includes a `<Provider/>` component that provides a certain value via context *only* to its children: ```rust #[component] pub fn App() -> impl IntoView { // each Provider will only provide the value to its children view! { <Provider value=1u8> // correctly gets 1 from context {use_context::<u8>().unwrap_or(0)} </Provider> <Provider value=2u8> // correctly gets 2 from context {use_context::<u8>().unwrap_or(0)} </Provider> // does not find any u8 in context {use_context::<u8>().unwrap_or(0)} } } ``` `provide_context` continues working as it has since 0.5.0, and if you're using it without problems you can ignore this, or use it if you prefer to aesthetics. If you're in a situation where you need to provide multiple context values of the same type and ensure that they are scoped correctly and that siblings do not overwrite one another, use `<Provider/>`. If you have no idea what I mean, check the issues above for examples of the bugs this fixes. ##### Complete Changelog - fix: relax `'static` bound on `as_child_of_current_owner` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1955 - `IntoView` and `IntoAttribute` for `std::fmt::Arguments` improvements by [@&#8203;tqwewe](https://github.com/tqwewe) in https://github.com/leptos-rs/leptos/pull/1947 - workflows: bump setup-node to version 4. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/1944 - Minor: bumped tj-actions/changed-files to [@&#8203;39](https://github.com/39). by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/1942 - feat: add `new` method to `Trigger` by [@&#8203;tqwewe](https://github.com/tqwewe) in https://github.com/leptos-rs/leptos/pull/1935 - feat: impl `IntoAttribute` for `Cow<'static, str>` by [@&#8203;tqwewe](https://github.com/tqwewe) in https://github.com/leptos-rs/leptos/pull/1945 - chore: Add server to procMacro for helix as well by [@&#8203;kerkmann](https://github.com/kerkmann) in https://github.com/leptos-rs/leptos/pull/1951 - Allow arbitrary attributes for anchor component by [@&#8203;koopa1338](https://github.com/koopa1338) in https://github.com/leptos-rs/leptos/pull/1953 - fix: add `leptos_axum::build_static_routes` (closes [#&#8203;1843](https://github.com/leptos-rs/leptos/issues/1843)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1855 - Implement `IntoAttribute` for `TextProp` by [@&#8203;SleeplessOne1917](https://github.com/SleeplessOne1917) in https://github.com/leptos-rs/leptos/pull/1925 - chore: fix clippy on `login_with_token_csr_only` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1965 - fix: router docs feature `stable` to `nightly` by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/1959 - chore: typed-builder and typed-builder-macro - bumped version numbers. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/1958 - fix: `leptos_router::params_map!` by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/1973 - docs: Fix 08\_parent_child.md callback example code. by [@&#8203;gibbz00](https://github.com/gibbz00) in https://github.com/leptos-rs/leptos/pull/1976 - Fix \[<Transition/>] url in 12\_transition.md by [@&#8203;gibbz00](https://github.com/gibbz00) in https://github.com/leptos-rs/leptos/pull/1980 - book: point `leptos_server` docs.rs url to latest version. by [@&#8203;gibbz00](https://github.com/gibbz00) in https://github.com/leptos-rs/leptos/pull/1982 - docs: clarify need to provide context in two places for server functions by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1983 - fix: treat Suspense as containing a Set of resources, not a counter by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1985 - examples: fix `hackernews_js_fetch` `style.css` path (closes [#&#8203;1992](https://github.com/leptos-rs/leptos/issues/1992)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1994 - fix: run `<ErrorBoundary/>` in a child so siblings don't collide (closes [#&#8203;1987](https://github.com/leptos-rs/leptos/issues/1987)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1991 - examples: remove incorrect CSR information for `hackernews_js_fetch` example by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1997 - fix: correctly reset island/not-island state of SSRed Suspense streaming into island (closes [#&#8203;1996](https://github.com/leptos-rs/leptos/issues/1996)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2000 - book: Fix <Body/> link in metadata.md by [@&#8203;gibbz00](https://github.com/gibbz00) in https://github.com/leptos-rs/leptos/pull/1999 - docs: fix CodeSandbox for resources by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2002 - docs: remove outdated `APP_ENVIRONMENT` variable by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2013 - feat: `Action::new` and `Action::server` by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/1998 - chore: remove duplicate benchmarks in `leptos_reactive` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2014 - docs: add note about context shadowing (closes [#&#8203;1986](https://github.com/leptos-rs/leptos/issues/1986)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2015 - re-export slice! by [@&#8203;blorbb](https://github.com/blorbb) in https://github.com/leptos-rs/leptos/pull/2008 - fix: allow nested functions in `Attribute` (closes [#&#8203;2023](https://github.com/leptos-rs/leptos/issues/2023)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2027 - fix: use `create_effect` for `<Portal/>` to avoid hydration issues (closes [#&#8203;2010](https://github.com/leptos-rs/leptos/issues/2010)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2029 - impl `Default` for `TextProp` by [@&#8203;blorbb](https://github.com/blorbb) in https://github.com/leptos-rs/leptos/pull/2016 - Docs: `ActionForm` examples for complex arguments by [@&#8203;chrisp60](https://github.com/chrisp60) in https://github.com/leptos-rs/leptos/pull/2017 - fix document book input name query by [@&#8203;datewu](https://github.com/datewu) in https://github.com/leptos-rs/leptos/pull/2024 - Minor: stop using std::fmt, instead used core::fmt. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/2033 - Updates to Leptos Book by [@&#8203;diversable](https://github.com/diversable) in https://github.com/leptos-rs/leptos/pull/2036 - examples: add CSR with server functions example (closes [#&#8203;1975](https://github.com/leptos-rs/leptos/issues/1975)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2031 - Have fetch example conform to docs guidance around using <ErrorBoundary> and <Transition> in conjunction by [@&#8203;MoonKraken](https://github.com/MoonKraken) in https://github.com/leptos-rs/leptos/pull/2035 - feat: `<Provider/>` component to fix context shadowing (closes [#&#8203;2038](https://github.com/leptos-rs/leptos/issues/2038)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2040 - updated axum session to latest 0.9 in examples by [@&#8203;genusistimelord](https://github.com/genusistimelord) in https://github.com/leptos-rs/leptos/pull/2049 - ci(examples): fix portal test by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2051 - docs: add warning for nested `Fn` in attribute (see [#&#8203;2023](https://github.com/leptos-rs/leptos/issues/2023)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2045 - fix: correctly mark `Trigger` as clean when it is re-tracked (closes [#&#8203;1948](https://github.com/leptos-rs/leptos/issues/1948), [#&#8203;2048](https://github.com/leptos-rs/leptos/issues/2048)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2059 - Add instruction to install trunk to examples/README.md by [@&#8203;hpepper](https://github.com/hpepper) in https://github.com/leptos-rs/leptos/pull/2064 - fix: dispose previous route or outlet before rendering new one (closes [#&#8203;2070](https://github.com/leptos-rs/leptos/issues/2070)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2071 - ci(leptos): run ci on change instead of check by [@&#8203;agilarity](https://github.com/agilarity) in https://github.com/leptos-rs/leptos/pull/2061 - fix: make prop serialization opt-in for devtools (closes [#&#8203;1952](https://github.com/leptos-rs/leptos/issues/1952)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2081 - fix: improved rust-analyzer support in `#[component]` macro? by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/2075 ##### New Contributors - [@&#8203;gibbz00](https://github.com/gibbz00) made their first contribution in https://github.com/leptos-rs/leptos/pull/1976 - [@&#8203;datewu](https://github.com/datewu) made their first contribution in https://github.com/leptos-rs/leptos/pull/2024 - [@&#8203;diversable](https://github.com/diversable) made their first contribution in https://github.com/leptos-rs/leptos/pull/2036 - [@&#8203;MoonKraken](https://github.com/MoonKraken) made their first contribution in https://github.com/leptos-rs/leptos/pull/2035 - [@&#8203;hpepper](https://github.com/hpepper) made their first contribution in https://github.com/leptos-rs/leptos/pull/2064 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.2...v0.5.3 ### [`v0.5.2`](https://github.com/leptos-rs/leptos/releases/tag/v0.5.2) [Compare Source](https://github.com/leptos-rs/leptos/compare/v0.5.1...v0.5.2) This has a bunch of bugfixes, small docs improvements, etc. but there are actually a *bunch* of cool new features, mostly from our growing body of contributors. See the full changelog below, but here are some highlights (apologies if I missed anything big) ##### Features ##### `extractor()` function with better API The `extract` API is awkward due to closure. This adds an `extractor` function which is a little more ergonomic. ```rust #[derive(Deserialize, Serialize, Debug, Clone)] pub struct Search { q: String, } // Actix #[server] pub async fn query_extract() -> Result<Search, ServerFnError> { use actix_web::web::Query; use leptos_actix::extractor; let Query(query) = extractor().await?; Ok(query) } // Axum #[server] pub async fn data() -> Result<Search, ServerFnError> { use axum::extract::Query; use leptos_axum::extractor; let Query(query) = extractor().await?; Ok(query) } ``` ##### `<Portal/>` Adds a portal component that lets you render some view mounted in a location other than where it appears in the view tree. ```xml <Show when=show_overlay fallback=|| ()> <div>Show</div> <Portal mount=document().get_element_by_id("app").unwrap()> <div style="position: fixed; z-index: 10; width: 100vw; height: 100vh; top: 0; left: 0; background: rgba(0, 0, 0, 0.8); color: white;"> <p>This is in the body element</p> <button id="btn-hide" on:click=move |_| set_show_overlay(false)> Close Overlay </button> <button id="btn-toggle" on:click=move |_| set_show_inside_overlay(!show_inside_overlay())> Toggle inner </button> <Show when=show_inside_overlay fallback=|| view! { "Hidden" }> Visible </Show> </div> </Portal> </Show> ``` ##### Server Function Named Arguments Now that we've made all server function arguments optional, this adds in the ability to pass in one or more named arguments: ```rust #[server(endpoint = "/path/to/my/endpoint")] pub async fn my_server_action() -> Result<(), ServerFnError> { Ok(()) } #[server(encoding = "GetJson")] pub async fn my_server_action() -> Result<(), ServerFnError> { Ok(()) } ``` ##### Directives Adds support for directive functions, which can be used with `use:` in the view: ```rust // This doesn't take an attribute value fn my_directive(el: HtmlElement<AnyElement>) { // do sth } // This requires an attribute value fn another_directive(el: HtmlElement<AnyElement>, params: i32) { // do sth } // ... in the view view! { <div use:my_directive></div> <SomeComponent use:another_directive=5 /> } ``` ##### `slice!()` macro Makes it easier to define slices. Expands to the same output as `create_slice`: ```rust #[derive(Default)] pub struct State { count: i32, name: String, } let state = create_rw_signal(State::default()); let (count, set_count) = slice!(state.count); ``` ##### What's Changed - docs: clarify what "once per signal change" means by [@&#8203;arcstur](https://github.com/arcstur) in https://github.com/leptos-rs/leptos/pull/1858 - fix: documentation in `leptos_reactive::Trigger` by [@&#8203;hiraginoyuki](https://github.com/hiraginoyuki) in https://github.com/leptos-rs/leptos/pull/1844 - feat: add `extractor` functions with better API than `extract` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1859 - docs: add islands guide/demo to the docs by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1861 - Remove extra "\`\`\`rust" and add closing bracket to Testing docs by [@&#8203;he00741098](https://github.com/he00741098) in https://github.com/leptos-rs/leptos/pull/1870 - fix: Add missing argument name to WrapsChildren component in section 3.9 of the book by [@&#8203;johnnynotsolucky](https://github.com/johnnynotsolucky) in https://github.com/leptos-rs/leptos/pull/1866 - fix: Prop-drilling example in Parent-Child Communication section of the book by [@&#8203;johnnynotsolucky](https://github.com/johnnynotsolucky) in https://github.com/leptos-rs/leptos/pull/1865 - Fix: use placeholder in comments for empty component names by [@&#8203;flosse](https://github.com/flosse) in https://github.com/leptos-rs/leptos/pull/1850 - Portal by [@&#8203;maccesch](https://github.com/maccesch) in https://github.com/leptos-rs/leptos/pull/1820 - Improvements for the book - Issue [#&#8203;1845](https://github.com/leptos-rs/leptos/issues/1845) by [@&#8203;obioma](https://github.com/obioma) in https://github.com/leptos-rs/leptos/pull/1856 - fix: hydration ID clash with Suspense > Outlet > Suspense (closes [#&#8203;1863](https://github.com/leptos-rs/leptos/issues/1863)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1864 - fix: correctly untrack in `.try_with_untracked` (closes [#&#8203;1880](https://github.com/leptos-rs/leptos/issues/1880)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1881 - feat: Implement Default trait for RwSignal and StoredValue by [@&#8203;luoxiaozero](https://github.com/luoxiaozero) in https://github.com/leptos-rs/leptos/pull/1877 - fix munged markdown by [@&#8203;dandante](https://github.com/dandante) in https://github.com/leptos-rs/leptos/pull/1873 - docs: add some missing `#[must_use]` to avoid accidental `()` rendering by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1885 - Fix failing `cargo make lint` for `hackernews_js_fetch` by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1887 - feat: add reasonable fallback behavior for `ActionForm` in an island by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1888 - fix: ensure there's no reactive tracking in an `on_cleanup` (closes [#&#8203;1882](https://github.com/leptos-rs/leptos/issues/1882)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1889 - Custom attributes on head tags by [@&#8203;ymijorski](https://github.com/ymijorski) in https://github.com/leptos-rs/leptos/pull/1874 - refactor: tailwind examples by [@&#8203;azzamsa](https://github.com/azzamsa) in https://github.com/leptos-rs/leptos/pull/1875 - fix: properly handle trailing `/` in splat routes (closes [#&#8203;1764](https://github.com/leptos-rs/leptos/issues/1764)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1890 - docs: update Dockerfile in deployment.md to work with cargo-leptos@0.2.0 by [@&#8203;quanhua92](https://github.com/quanhua92) in https://github.com/leptos-rs/leptos/pull/1898 - feat: add `new` method to `NodeRef` by [@&#8203;tqwewe](https://github.com/tqwewe) in https://github.com/leptos-rs/leptos/pull/1896 - fix: bug with client-side routing no longer working due to different origin by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1899 - Remove `Clone` requirement on `SignalWith` for `Resource` by [@&#8203;Xendergo](https://github.com/Xendergo) in https://github.com/leptos-rs/leptos/pull/1895 - chore: tweak tracing levels by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1901 - fix: properly handle trailing `/` in more routes by [@&#8203;PianoPrinter](https://github.com/PianoPrinter) in https://github.com/leptos-rs/leptos/pull/1900 - feat(router): Add the target attribute to the A component by [@&#8203;luoxiaozero](https://github.com/luoxiaozero) in https://github.com/leptos-rs/leptos/pull/1906 - fix: maintain hash when setting query signal (closes [#&#8203;1902](https://github.com/leptos-rs/leptos/issues/1902)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1908 - docs: fix typo by [@&#8203;saikatdas0790](https://github.com/saikatdas0790) in https://github.com/leptos-rs/leptos/pull/1910 - fix: `try_update()` and `try_set()` on `Resource` should not panic (closes [#&#8203;1915](https://github.com/leptos-rs/leptos/issues/1915)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1916 - feat: optional named arguments for #\[server] macro (closes [#&#8203;1621](https://github.com/leptos-rs/leptos/issues/1621)) by [@&#8203;safx](https://github.com/safx) in https://github.com/leptos-rs/leptos/pull/1904 - feat: directives by [@&#8203;maccesch](https://github.com/maccesch) in https://github.com/leptos-rs/leptos/pull/1821 - fix: router should still scroll to hash even if path didn't change (closes [#&#8203;1907](https://github.com/leptos-rs/leptos/issues/1907)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1917 - docs: better document `default` and `wasm` features on `leptos_axum` (closes [#&#8203;1872](https://github.com/leptos-rs/leptos/issues/1872)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1883 - docs: add chapter on nested reactivity and iteration by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1920 - chore: please clippy by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1924 - feat: Add local attribute for Await by [@&#8203;kerkmann](https://github.com/kerkmann) in https://github.com/leptos-rs/leptos/pull/1922 - Clippy: use .first() \[not .get(0)] by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/1929 - docs: added Callback to documentation and examples. by [@&#8203;maccesch](https://github.com/maccesch) in https://github.com/leptos-rs/leptos/pull/1926 - Add `replace` property to form component by [@&#8203;koopa1338](https://github.com/koopa1338) in https://github.com/leptos-rs/leptos/pull/1923 - feat: add a derive macro for `create_slice()` by [@&#8203;SadraMoh](https://github.com/SadraMoh) in https://github.com/leptos-rs/leptos/pull/1867 - chore: cargo doc -- removed lint warnings. by [@&#8203;martinfrances107](https://github.com/martinfrances107) in https://github.com/leptos-rs/leptos/pull/1936 - docs: Improve create_resource docs by [@&#8203;nikhilraojl](https://github.com/nikhilraojl) in https://github.com/leptos-rs/leptos/pull/1918 - chore: remove `wee_alloc` to make Dependabot happy by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1938 - fix: misaligned `</head>` tags in streaming responses (closes [#&#8203;1930](https://github.com/leptos-rs/leptos/issues/1930)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1932 - fix: use separate key in hydration ID for router outlets (closes [#&#8203;1909](https://github.com/leptos-rs/leptos/issues/1909)) by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1939 - chore: fix SSR tests by [@&#8203;gbj](https://github.com/gbj) in https://github.com/leptos-rs/leptos/pull/1943 ##### New Contributors - [@&#8203;arcstur](https://github.com/arcstur) made their first contribution in https://github.com/leptos-rs/leptos/pull/1858 - [@&#8203;hiraginoyuki](https://github.com/hiraginoyuki) made their first contribution in https://github.com/leptos-rs/leptos/pull/1844 - [@&#8203;johnnynotsolucky](https://github.com/johnnynotsolucky) made their first contribution in https://github.com/leptos-rs/leptos/pull/1866 - [@&#8203;obioma](https://github.com/obioma) made their first contribution in https://github.com/leptos-rs/leptos/pull/1856 - [@&#8203;dandante](https://github.com/dandante) made their first contribution in https://github.com/leptos-rs/leptos/pull/1873 - [@&#8203;ymijorski](https://github.com/ymijorski) made their first contribution in https://github.com/leptos-rs/leptos/pull/1874 - [@&#8203;azzamsa](https://github.com/azzamsa) made their first contribution in https://github.com/leptos-rs/leptos/pull/1875 - [@&#8203;quanhua92](https://github.com/quanhua92) made their first contribution in https://github.com/leptos-rs/leptos/pull/1898 - [@&#8203;Xendergo](https://github.com/Xendergo) made their first contribution in https://github.com/leptos-rs/leptos/pull/1895 - [@&#8203;PianoPrinter](https://github.com/PianoPrinter) made their first contribution in https://github.com/leptos-rs/leptos/pull/1900 - [@&#8203;saikatdas0790](https://github.com/saikatdas0790) made their first contribution in https://github.com/leptos-rs/leptos/pull/1910 - [@&#8203;kerkmann](https://github.com/kerkmann) made their first contribution in https://github.com/leptos-rs/leptos/pull/1922 - [@&#8203;koopa1338](https://github.com/koopa1338) made their first contribution in https://github.com/leptos-rs/leptos/pull/1923 - [@&#8203;nikhilraojl](https://github.com/nikhilraojl) made their first contribution in https://github.com/leptos-rs/leptos/pull/1918 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.5.1...v0.5.2 </details> <details> <summary>rust-lang/log (log)</summary> ### [`v0.4.22`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0422---2024-06-27) [Compare Source](https://github.com/rust-lang/log/compare/0.4.21...0.4.22) ### [`v0.4.21`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0421---2024-02-27) [Compare Source](https://github.com/rust-lang/log/compare/0.4.20...0.4.21) </details> <details> <summary>ramosbugs/oauth2-rs (oauth2)</summary> ### [`v4.4.2`](https://github.com/ramosbugs/oauth2-rs/releases/tag/4.4.2) [Compare Source](https://github.com/ramosbugs/oauth2-rs/compare/4.4.1...4.4.2) ##### Bug Fixes - Enable chrono `wasmbind` feature to fix panic in WASM environments ([#&#8203;230](https://github.com/ramosbugs/oauth2-rs/issues/230)) ##### Other Changes - Fix token URL for Microsoft device code flow example ([#&#8203;220](https://github.com/ramosbugs/oauth2-rs/issues/220)) - Add Microsoft device code example with tenant ID ([#&#8203;222](https://github.com/ramosbugs/oauth2-rs/issues/222)) </details> <details> <summary>ramosbugs/openidconnect-rs (openidconnect)</summary> ### [`v3.5.0`](https://github.com/ramosbugs/openidconnect-rs/releases/tag/3.5.0) [Compare Source](https://github.com/ramosbugs/openidconnect-rs/compare/3.4.0...3.5.0) ##### New Features - Add `UserInfoRequest::set_response_type` by [@&#8203;FabianLars](https://github.com/FabianLars) in https://github.com/ramosbugs/openidconnect-rs/pull/146 ##### Bug Fixes - Remove `#[non_exhaustive]` from `LogoutProviderMetadata` ([#&#8203;150](https://github.com/ramosbugs/openidconnect-rs/issues/150)) - Include the full discovery url on invalid HTTP response by [@&#8203;Timshel](https://github.com/Timshel) in https://github.com/ramosbugs/openidconnect-rs/pull/142 **Full Changelog**: https://github.com/ramosbugs/openidconnect-rs/compare/3.4.0...3.5.0 ### [`v3.4.0`](https://github.com/ramosbugs/openidconnect-rs/releases/tag/3.4.0) [Compare Source](https://github.com/ramosbugs/openidconnect-rs/compare/3.3.1...3.4.0) ##### New Features - Take JSON Web Key `alg` field into account during key selection ([#&#8203;131](https://github.com/ramosbugs/openidconnect-rs/issues/131)). This change is gated by a non-default `jwk-alg` feature flag, which was added to avoid introducing breaking changes. During a future major version, this feature flag will be removed and the functionality will be included unconditionally. - Support EdDSA signatures ([#&#8203;130](https://github.com/ramosbugs/openidconnect-rs/issues/130)) **Full Changelog**: https://github.com/ramosbugs/openidconnect-rs/compare/3.3.1...3.4.0 ### [`v3.3.1`](https://github.com/ramosbugs/openidconnect-rs/releases/tag/3.3.1) [Compare Source](https://github.com/ramosbugs/openidconnect-rs/compare/3.3.0...3.3.1) ##### Bug Fixes - Enable chrono `wasmbind` feature to fix panic in WASM environments ([#&#8203;127](https://github.com/ramosbugs/openidconnect-rs/issues/127)) </details> <details> <summary>rust-pretty-assertions/rust-pretty-assertions (pretty_assertions)</summary> ### [`v1.4.1`](https://github.com/rust-pretty-assertions/rust-pretty-assertions/blob/HEAD/CHANGELOG.md#v141) [Compare Source](https://github.com/rust-pretty-assertions/rust-pretty-assertions/compare/v1.4.0...v1.4.1) #### Fixed - Show feature-flagged code in documentation. Thanks to [@&#8203;sandydoo](https://github.com/sandydoo) for the fix! ([#&#8203;130](https://github.com/rust-pretty-assertions/rust-pretty-assertions/pull/130)) #### Internal - Bump `yansi` version to `1.x`. Thanks to [@&#8203;SergioBenitez](https://github.com/SergioBenitez) for the update, and maintaining this library! ([#&#8203;121](https://github.com/rust-pretty-assertions/rust-pretty-assertions/pull/121)) </details> <details> <summary>oknozor/sealed-test (sealed_test)</summary> ### [`v1.1.0`](https://github.com/oknozor/sealed-test/releases/tag/1.1.0) #### What's Changed - Include license text in packaged derive crate by [@&#8203;davide125](https://github.com/davide125) in https://github.com/oknozor/sealed-test/pull/3 - derive: bump syn dependency to 2 by [@&#8203;davide125](https://github.com/davide125) in https://github.com/oknozor/sealed-test/pull/4 #### New Contributors - [@&#8203;davide125](https://github.com/davide125) made their first contribution in https://github.com/oknozor/sealed-test/pull/3 **Full Changelog**: https://github.com/oknozor/sealed-test/commits/1.1.0 </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.134`](https://github.com/serde-rs/json/releases/tag/v1.0.134) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.133...v1.0.134) - Add `RawValue` associated constants for literal `null`, `true`, `false` ([#&#8203;1221](https://github.com/serde-rs/json/issues/1221), thanks [@&#8203;bheylin](https://github.com/bheylin)) ### [`v1.0.133`](https://github.com/serde-rs/json/releases/tag/v1.0.133) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.132...v1.0.133) - Implement From<\[T; N]> for serde_json::Value ([#&#8203;1215](https://github.com/serde-rs/json/issues/1215)) ### [`v1.0.132`](https://github.com/serde-rs/json/releases/tag/v1.0.132) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.131...v1.0.132) - Improve binary size and compile time for JSON array and JSON object deserialization by about 50% ([#&#8203;1205](https://github.com/serde-rs/json/issues/1205)) - Improve performance of JSON array and JSON object deserialization by about 8% ([#&#8203;1206](https://github.com/serde-rs/json/issues/1206)) ### [`v1.0.131`](https://github.com/serde-rs/json/releases/tag/v1.0.131) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.130...v1.0.131) - Implement Deserializer and IntoDeserializer for `Map<String, Value>` and `&Map<String, Value>` ([#&#8203;1135](https://github.com/serde-rs/json/issues/1135), thanks [@&#8203;swlynch99](https://github.com/swlynch99)) ### [`v1.0.130`](https://github.com/serde-rs/json/releases/tag/v1.0.130) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.129...v1.0.130) - Support converting and deserializing `Number` from i128 and u128 ([#&#8203;1141](https://github.com/serde-rs/json/issues/1141), thanks [@&#8203;druide](https://github.com/druide)) ### [`v1.0.129`](https://github.com/serde-rs/json/releases/tag/v1.0.129) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.128...v1.0.129) - Add [`serde_json::Map::sort_keys`](https://docs.rs/serde_json/1/serde_json/struct.Map.html#method.sort_keys) and [`serde_json::Value::sort_all_objects`](https://docs.rs/serde_json/1/serde_json/enum.Value.html#method.sort_all_objects) ([#&#8203;1199](https://github.com/serde-rs/json/issues/1199)) ### [`v1.0.128`](https://github.com/serde-rs/json/releases/tag/v1.0.128) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.127...v1.0.128) - Support serializing maps containing 128-bit integer keys to serde_json::Value ([#&#8203;1188](https://github.com/serde-rs/json/issues/1188), thanks [@&#8203;Mrreadiness](https://github.com/Mrreadiness)) ### [`v1.0.127`](https://github.com/serde-rs/json/releases/tag/v1.0.127) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.126...v1.0.127) - Add more removal methods to OccupiedEntry ([#&#8203;1179](https://github.com/serde-rs/json/issues/1179), thanks [@&#8203;GREsau](https://github.com/GREsau)) ### [`v1.0.126`](https://github.com/serde-rs/json/releases/tag/v1.0.126) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.125...v1.0.126) - Improve string parsing on targets that use 32-bit pointers but also have fast 64-bit integer arithmetic, such as aarch64-unknown-linux-gnu_ilp32 and x86\_64-unknown-linux-gnux32 ([#&#8203;1182](https://github.com/serde-rs/json/issues/1182), thanks [@&#8203;CryZe](https://github.com/CryZe)) ### [`v1.0.125`](https://github.com/serde-rs/json/releases/tag/v1.0.125) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.124...v1.0.125) - Speed up \uXXXX parsing and improve handling of unpaired surrogates when deserializing to bytes ([#&#8203;1172](https://github.com/serde-rs/json/issues/1172), [#&#8203;1175](https://github.com/serde-rs/json/issues/1175), thanks [@&#8203;purplesyringa](https://github.com/purplesyringa)) ### [`v1.0.124`](https://github.com/serde-rs/json/releases/tag/v1.0.124) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.123...v1.0.124) - Fix a bug in processing string escapes in big-endian architectures ([#&#8203;1173](https://github.com/serde-rs/json/issues/1173), thanks [@&#8203;purplesyringa](https://github.com/purplesyringa)) ### [`v1.0.123`](https://github.com/serde-rs/json/releases/tag/v1.0.123) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.122...v1.0.123) - Optimize string parsing by applying SIMD-within-a-register: 30.3% improvement on [twitter.json](https://github.com/miloyip/nativejson-benchmark/blob/v1.0.0/data/twitter.json) from 613 MB/s to 799 MB/s ([#&#8203;1161](https://github.com/serde-rs/json/issues/1161), thanks [@&#8203;purplesyringa](https://github.com/purplesyringa)) ### [`v1.0.122`](https://github.com/serde-rs/json/releases/tag/v1.0.122) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.121...v1.0.122) - Support using `json!` in no-std crates ([#&#8203;1166](https://github.com/serde-rs/json/issues/1166)) ### [`v1.0.121`](https://github.com/serde-rs/json/releases/tag/v1.0.121) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121) - Optimize position search in error path ([#&#8203;1160](https://github.com/serde-rs/json/issues/1160), thanks [@&#8203;purplesyringa](https://github.com/purplesyringa)) ### [`v1.0.120`](https://github.com/serde-rs/json/releases/tag/v1.0.120) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.119...v1.0.120) - Correctly specify required version of `indexmap` dependency ([#&#8203;1152](https://github.com/serde-rs/json/issues/1152), thanks [@&#8203;cforycki](https://github.com/cforycki)) ### [`v1.0.119`](https://github.com/serde-rs/json/releases/tag/v1.0.119) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.118...v1.0.119) - Add `serde_json::Map::shift_insert` ([#&#8203;1149](https://github.com/serde-rs/json/issues/1149), thanks [@&#8203;joshka](https://github.com/joshka)) ### [`v1.0.118`](https://github.com/serde-rs/json/releases/tag/v1.0.118) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.118) - Implement Hash for serde_json::Value ([#&#8203;1127](https://github.com/serde-rs/json/issues/1127), thanks [@&#8203;edwardycl](https://github.com/edwardycl)) ### [`v1.0.117`](https://github.com/serde-rs/json/releases/tag/v1.0.117) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.116...v1.0.117) - Resolve unexpected_cfgs warning ([#&#8203;1130](https://github.com/serde-rs/json/issues/1130)) ### [`v1.0.116`](https://github.com/serde-rs/json/releases/tag/v1.0.116) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116) - Make module structure comprehensible to static analysis ([#&#8203;1124](https://github.com/serde-rs/json/issues/1124), thanks [@&#8203;mleonhard](https://github.com/mleonhard)) ### [`v1.0.115`](https://github.com/serde-rs/json/releases/tag/v1.0.115) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.114...v1.0.115) - Documentation improvements ### [`v1.0.114`](https://github.com/serde-rs/json/releases/tag/v1.0.114) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.113...v1.0.114) - Fix unused_imports warnings when compiled by rustc 1.78 ### [`v1.0.113`](https://github.com/serde-rs/json/releases/tag/v1.0.113) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.112...v1.0.113) - Add `swap_remove` and `shift_remove` methods on Map ([#&#8203;1109](https://github.com/serde-rs/json/issues/1109)) ### [`v1.0.112`](https://github.com/serde-rs/json/releases/tag/v1.0.112) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.111...v1.0.112) - Improve formatting of "invalid type" error messages involving floats ([#&#8203;1107](https://github.com/serde-rs/json/issues/1107)) ### [`v1.0.111`](https://github.com/serde-rs/json/releases/tag/v1.0.111) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.110...v1.0.111) - Improve floating point parsing performance on loongarch64 ([#&#8203;1100](https://github.com/serde-rs/json/issues/1100), thanks [@&#8203;heiher](https://github.com/heiher)) ### [`v1.0.110`](https://github.com/serde-rs/json/releases/tag/v1.0.110) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.109...v1.0.110) - Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache ### [`v1.0.109`](https://github.com/serde-rs/json/releases/tag/v1.0.109) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.108...v1.0.109) - Documentation improvements ### [`v1.0.108`](https://github.com/serde-rs/json/releases/tag/v1.0.108) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.107...v1.0.108) - Documentation improvements ([#&#8203;1075](https://github.com/serde-rs/json/issues/1075), [#&#8203;1081](https://github.com/serde-rs/json/issues/1081), [#&#8203;1082](https://github.com/serde-rs/json/issues/1082), thanks [@&#8203;dimo414](https://github.com/dimo414) and [@&#8203;fritzrehde](https://github.com/fritzrehde)) </details> <details> <summary>borntyping/rust-simple_logger (simple_logger)</summary> ### [`v5.0.0`](https://github.com/borntyping/rust-simple_logger/releases/tag/v5.0.0) [Compare Source](https://github.com/borntyping/rust-simple_logger/compare/v4.3.3...v5.0.0) #### What's Changed - Fix stderr color dependence on stdout by [@&#8203;spoutn1k](https://github.com/spoutn1k) in https://github.com/borntyping/rust-simple_logger/pull/91 - When using the `stderr` and `colors` features, logs will be printed in colour even when STDOUT is redirected. - Fixes [#&#8203;71](https://github.com/borntyping/rust-simple_logger/issues/71). - This also cleans up the feature names used in the code. All references should now be to the `colors` feature, not the `colored` dependency. - Removed `set_up_color_terminal` from the public API. This has been called by `init()` for a while now. #### New Contributors - [@&#8203;spoutn1k](https://github.com/spoutn1k) made their first contribution in https://github.com/borntyping/rust-simple_logger/pull/91 **Full Changelog**: https://github.com/borntyping/rust-simple_logger/compare/v4.3.3...v5.0.0 ### [`v4.3.3`](https://github.com/borntyping/rust-simple_logger/releases/tag/v4.3.3) [Compare Source](https://github.com/borntyping/rust-simple_logger/compare/v4.3.0...v4.3.3) #### What's Changed - Added notes on project status to the README (`v4.3.1`). - Ensure `module_levels` is always sorted, so that `enabled()` correctly selects the most specific target. Fixes [#&#8203;90](https://github.com/borntyping/rust-simple_logger/issues/90), thanks [@&#8203;nikarh](https://github.com/nikarh). **Full Changelog**: https://github.com/borntyping/rust-simple_logger/compare/v4.3.0...v4.3.2 ### [`v4.3.0`](https://github.com/borntyping/rust-simple_logger/releases/tag/v4.3.0) [Compare Source](https://github.com/borntyping/rust-simple_logger/compare/v4.2.0...v4.3.0) #### What's Changed - Upgrade `windows-sys` from 0.42 to 0.48 by [@&#8203;iamjpotts](https://github.com/iamjpotts) in https://github.com/borntyping/rust-simple_logger/pull/83 - Remove misguided `env_logger` reference from docs by [@&#8203;igortg](https://github.com/igortg) in https://github.com/borntyping/rust-simple_logger/pull/87 - Add `max_level` method, to enable users to own a valid configured instance before calling `set_boxed_logger` by [@&#8203;twiby](https://github.com/twiby) in https://github.com/borntyping/rust-simple_logger/pull/88 - Added a `wrap.rs` example showing how you might wrap the logger with your own. #### New Contributors - [@&#8203;iamjpotts](https://github.com/iamjpotts) made their first contribution in https://github.com/borntyping/rust-simple_logger/pull/83 - [@&#8203;igortg](https://github.com/igortg) made their first contribution in https://github.com/borntyping/rust-simple_logger/pull/87 - [@&#8203;twiby](https://github.com/twiby) made their first contribution in https://github.com/borntyping/rust-simple_logger/pull/88 **Full Changelog**: https://github.com/borntyping/rust-simple_logger/compare/v4.2.0...v4.3.0 </details> <details> <summary>launchbadge/sqlx (sqlx)</summary> ### [`v0.8.2`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#082---2024-09-02) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.8.1...v0.8.2) 10 pull requests were merged this release cycle. This release addresses a few regressions that have occurred, and refines SQLx's MSRV policy (see [the FAQ](FAQ.md)). ##### Added - \[[#&#8203;3447]]: Clarify usage of Json/Jsonb in query macros \[\[[@&#8203;Lachstec](https://github.com/Lachstec)]] ##### Changed - \[[#&#8203;3424]]: Remove deprecated feature-names from `Cargo.toml` files in examples \[\[[@&#8203;carschandler](https://github.com/carschandler)]] ##### Fixed - \[[#&#8203;3403]]: Fix ([#&#8203;3395](https://github.com/launchbadge/sqlx/issues/3395)) sqlx::test macro in 0.8 \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3411]]: fix: Use rfc3339 to decode date from text \[\[[@&#8203;pierre-wehbe](https://github.com/pierre-wehbe)]] - \[[#&#8203;3453]]: fix([#&#8203;3445](https://github.com/launchbadge/sqlx/issues/3445)): PgHasArrayType \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - Fixes `#[sqlx(no_pg_array)]` being forbidden on `#[derive(Type)]` structs. - \[[#&#8203;3454]]: fix: non snake case warning \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3459]]: Pgsql cube type compile fail \[\[[@&#8203;kdesjard](https://github.com/kdesjard)]] - \[[#&#8203;3465]]: fix(postgres): max number of binds is 65535, not 32767 (regression) \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3467]]: fix cancellation issues with `PgListener`, `PgStream::recv()` \[\[[@&#8203;abonander](https://github.com/abonander)]] - Fixes cryptic `unknown message: "\\0"` error - \[[#&#8203;3474]]: Fix try_get example in README.md \[\[[@&#8203;luveti](https://github.com/luveti)]] [#&#8203;3403]: https://github.com/launchbadge/sqlx/pull/3403 [#&#8203;3411]: https://github.com/launchbadge/sqlx/pull/3411 [#&#8203;3424]: https://github.com/launchbadge/sqlx/pull/3424 [#&#8203;3447]: https://github.com/launchbadge/sqlx/pull/3447 [#&#8203;3453]: https://github.com/launchbadge/sqlx/pull/3453 [#&#8203;3454]: https://github.com/launchbadge/sqlx/pull/3454 [#&#8203;3455]: https://github.com/launchbadge/sqlx/pull/3455 [#&#8203;3459]: https://github.com/launchbadge/sqlx/pull/3459 [#&#8203;3465]: https://github.com/launchbadge/sqlx/pull/3465 [#&#8203;3467]: https://github.com/launchbadge/sqlx/pull/3467 [#&#8203;3474]: https://github.com/launchbadge/sqlx/pull/3474 ### [`v0.8.1`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#081---2024-08-23) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.8.0...v0.8.1) 16 pull requests were merged this release cycle. This release contains a fix for [RUSTSEC-2024-0363]. Postgres users are advised to upgrade ASAP as a possible exploit has been demonstrated: [#&#8203;3440 (comment)](https://github.com/launchbadge/sqlx/issues/3440#issuecomment-2307956901) MySQL and SQLite do not *appear* to be exploitable, but upgrading is recommended nonetheless. ##### Added - \[[#&#8203;3421]]: correct spelling of `MySqlConnectOptions::no_engine_substitution()` \[\[[@&#8203;kolinfluence](https://github.com/kolinfluence)]] - Deprecates `MySqlConnectOptions::no_engine_subsitution()` (oops) in favor of the correctly spelled version. ##### Changed - \[[#&#8203;3376]]: doc: hide `spec_error` module \[\[[@&#8203;abonander](https://github.com/abonander)]] - This is a helper module for the macros and was not meant to be exposed. - It is not expected to receive any breaking changes for the 0.8.x release, but is not designed as a public API. Use at your own risk. - \[[#&#8203;3382]]: feat: bumped to `libsqlite3-sys=0.30.1` to support sqlite 3.46 \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3385]]: chore(examples):Migrated the pg-chat example to ratatui \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3399]]: Upgrade to rustls 0.23 \[\[[@&#8203;djc](https://github.com/djc)]] - RusTLS now has pluggable cryptography providers: `ring` (the existing implementation), and `aws-lc-rs` which has optional FIPS certification. - The existing features activating RusTLS (`runtime-tokio-rustls`, `runtime-async-std-rustls`, `tls-rustls`) enable the `ring` provider of RusTLS to match the existing behavior so this *should not* be a breaking change. - Switch to the `tls-rustls-aws-lc-rs` feature to use the `aws-lc-rs` provider. - If using `runtime-tokio-rustls` or `runtime-async-std-rustls`, this will necessitate switching to the appropriate non-legacy runtime feature: `runtime-tokio` or `runtime-async-std` - See the RusTLS README for more details: <https://github.com/rustls/rustls?tab=readme-ov-file#cryptography-providers> ##### Fixed - \[[#&#8203;2786]]: fix(sqlx-cli): do not clean sqlx during prepare \[\[[@&#8203;cycraig](https://github.com/cycraig)]] - \[[#&#8203;3354]]: sqlite: fix inconsistent read-after-write \[\[[@&#8203;ckampfe](https://github.com/ckampfe)]] - \[[#&#8203;3371]]: Fix encoding and decoding of MySQL enums in `sqlx::Type` \[\[[@&#8203;alu](https://github.com/alu)]] - \[[#&#8203;3374]]: fix: usage of `node12` in `SQLx` action \[\[[@&#8203;hamirmahal](https://github.com/hamirmahal)]] - \[[#&#8203;3380]]: chore: replace structopt with clap in examples \[\[[@&#8203;tottoto](https://github.com/tottoto)]] - \[[#&#8203;3381]]: Fix CI after Rust 1.80, remove dead feature references \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3384]]: chore(tests): fixed deprecation warnings \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3386]]: fix(dependencys):bumped cargo_metadata to `v0.18.1` to avoid yanked `v0.14.3` \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3389]]: fix(cli): typo in error for required DB URL \[\[[@&#8203;ods](https://github.com/ods)]] - \[[#&#8203;3417]]: Update version to 0.8 in README \[\[[@&#8203;soucosmo](https://github.com/soucosmo)]] - \[[#&#8203;3441]]: fix: audit protocol handling \[\[[@&#8203;abonander](https://github.com/abonander)]] - This addresses [RUSTSEC-2024-0363] and includes regression tests for MySQL, Postgres and SQLite. [#&#8203;2786]: https://github.com/launchbadge/sqlx/pull/2786 [#&#8203;3354]: https://github.com/launchbadge/sqlx/pull/3354 [#&#8203;3371]: https://github.com/launchbadge/sqlx/pull/3371 [#&#8203;3374]: https://github.com/launchbadge/sqlx/pull/3374 [#&#8203;3376]: https://github.com/launchbadge/sqlx/pull/3376 [#&#8203;3380]: https://github.com/launchbadge/sqlx/pull/3380 [#&#8203;3381]: https://github.com/launchbadge/sqlx/pull/3381 [#&#8203;3382]: https://github.com/launchbadge/sqlx/pull/3382 [#&#8203;3384]: https://github.com/launchbadge/sqlx/pull/3384 [#&#8203;3385]: https://github.com/launchbadge/sqlx/pull/3385 [#&#8203;3386]: https://github.com/launchbadge/sqlx/pull/3386 [#&#8203;3389]: https://github.com/launchbadge/sqlx/pull/3389 [#&#8203;3399]: https://github.com/launchbadge/sqlx/pull/3399 [#&#8203;3417]: https://github.com/launchbadge/sqlx/pull/3417 [#&#8203;3421]: https://github.com/launchbadge/sqlx/pull/3421 [#&#8203;3441]: https://github.com/launchbadge/sqlx/pull/3441 [RUSTSEC-2024-0363]: https://rustsec.org/advisories/RUSTSEC-2024-0363.html ### [`v0.8.0`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#080---2024-07-22) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.7.4...v0.8.0) 70 pull requests were merged this release cycle. [#&#8203;2697] was merged the same day as release 0.7.4 and so was missed by the automatic CHANGELOG generation. ##### Breaking - \[[#&#8203;2697]]: fix(macros): only enable chrono when time is disabled \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;2973]]: Generic Associated Types in Database, replacing HasValueRef, HasArguments, HasStatement \[\[[@&#8203;nitn3lav](https://github.com/nitn3lav)]] - \[[#&#8203;2482]]: chore: bump syn to 2.0 \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - Deprecated type ascription syntax in the query macros was removed. - \[[#&#8203;2736]]: Fix describe on PostgreSQL views with rules \[\[[@&#8203;tsing](https://github.com/tsing)]] - Potentially breaking: nullability inference changes for Postgres. - \[[#&#8203;2869]]: Implement PgHasArrayType for all references \[\[[@&#8203;tylerhawkes](https://github.com/tylerhawkes)]] - Conflicts with existing manual implementations. - \[[#&#8203;2940]]: fix: Decode and Encode derives ([#&#8203;1031](https://github.com/launchbadge/sqlx/issues/1031)) \[\[[@&#8203;benluelo](https://github.com/benluelo)]] - Changes lifetime obligations for field types. - \[[#&#8203;3064]]: Sqlite explain graph \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - Potentially breaking: nullability inference changes for SQLite. - \[[#&#8203;3123]]: Reorder attrs in sqlx::test macro \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]] - Potentially breaking: attributes on `#[sqlx::test]` usages are applied in the correct order now. - \[[#&#8203;3126]]: Make Encode return a result \[\[[@&#8203;FSMaxB](https://github.com/FSMaxB)]] - \[[#&#8203;3130]]: Add version information for failed cli migration ([#&#8203;3129](https://github.com/launchbadge/sqlx/issues/3129)) \[\[[@&#8203;FlakM](https://github.com/FlakM)]] - Breaking changes to `MigrateError`. - \[[#&#8203;3181]]: feat: no tx migration \[\[[@&#8203;cleverjam](https://github.com/cleverjam)]] - (Postgres only) migrations that should not run in a transaction can be flagged by adding `-- no-transaction` to the beginning. - Breaking change: added field to `Migration` - \[[#&#8203;3184]]: \[BREAKING} fix(sqlite): always use `i64` as intermediate when decoding \[\[[@&#8203;abonander](https://github.com/abonander)]] - integer decoding will now loudly error on overflow instead of silently truncating. - some usages of the query!() macros might change an i32 to an i64. - \[[#&#8203;3252]]: fix `#[derive(sqlx::Type)]` in Postgres \[\[[@&#8203;abonander](https://github.com/abonander)]] - Manual implementations of PgHasArrayType for enums will conflict with the generated one. Delete the manual impl or add `#[sqlx(no_pg_array)]` where conflicts occur. - Type equality for PgTypeInfo is now schema-aware. - \[[#&#8203;3329]]: fix: correct handling of arrays of custom types in Postgres \[\[[@&#8203;abonander](https://github.com/abonander)]] - Potential breaking change: `PgTypeInfo::with_name()` infers types that start with `_` to be arrays of the un-prefixed type. Wrap type names in quotes to bypass this behavior. - \[[#&#8203;3356]]: breaking: fix name collision in `FromRow`, return `Error::ColumnDecode` for `TryFrom` errors \[\[[@&#8203;abonander](https://github.com/abonander)]] - Breaking behavior change: errors with `#[sqlx(try_from = "T")]` now return `Error::ColumnDecode` instead of `Error::ColumnNotFound`. - Breaking because `#[sqlx(default)]` on an individual field or the struct itself would have previously suppressed the error. This doesn't seem like good behavior as it could result in some potentially very difficult bugs. - Instead, create a wrapper implementing `From` and apply the default explicitly. - \[[#&#8203;3337]]: allow rename with rename_all (close [#&#8203;2896](https://github.com/launchbadge/sqlx/issues/2896)) \[\[[@&#8203;DirectorX](https://github.com/DirectorX)]] - Changes the precedence of `#[sqlx(rename)]` and `#[sqlx(rename_all)]` to match the expected behavior (`rename` wins). - \[[#&#8203;3285]]: fix: use correct names for sslmode options \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]] - Changes the output of `ConnectOptions::to_url_lossy()` to match what parsing expects. ##### Added - \[[#&#8203;2917]]: Add Debug impl for PgRow \[\[[@&#8203;g-bartoszek](https://github.com/g-bartoszek)]] - \[[#&#8203;3113]]: feat: new derive feature flag \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;3154]]: feat: add `MySqlTime`, audit `mysql::types` for panics \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3188]]: feat(cube): support postgres cube \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] - \[[#&#8203;3244]]: feat: support `NonZero*` scalar types \[\[[@&#8203;AlphaKeks](https://github.com/AlphaKeks)]] - \[[#&#8203;3260]]: feat: Add set_update_hook on SqliteConnection \[\[[@&#8203;gridbox](https://github.com/gridbox)]] - \[[#&#8203;3291]]: feat: support the Postgres Bool type for the Any driver \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]] - \[[#&#8203;3293]]: Add LICENSE-\* files to crates \[\[[@&#8203;LecrisUT](https://github.com/LecrisUT)]] - \[[#&#8203;3303]]: add array support for NonZeroI\* in postgres \[\[[@&#8203;JohannesIBK](https://github.com/JohannesIBK)]] - \[[#&#8203;3311]]: Add example on how to use Transaction as Executor \[\[[@&#8203;Lachstec](https://github.com/Lachstec)]] - \[[#&#8203;3343]]: Add support for PostgreSQL HSTORE data type \[\[[@&#8203;KobusEllis](https://github.com/KobusEllis)]] ##### Changed - \[[#&#8203;2652]]: MySQL: Remove collation compatibility check for strings \[\[[@&#8203;alu](https://github.com/alu)]] - \[[#&#8203;2960]]: Removed `Send` trait bound from argument binding \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]] - \[[#&#8203;2970]]: refactor: lift type mappings into driver crates \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3148]]: Bump libsqlite3-sys to v0.28 \[\[[@&#8203;NfNitLoop](https://github.com/NfNitLoop)]] - Note: version bumps to `libsqlite3-sys` are not considered breaking changes as per our semver guarantees. - \[[#&#8203;3265]]: perf: box `MySqlConnection` to reduce sizes of futures \[\[[@&#8203;stepantubanov](https://github.com/stepantubanov)]] - \[[#&#8203;3352]]: chore:added a testcase for `sqlx migrate add ...` \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3340]]: ci: Add job to check that sqlx builds with its declared minimum dependencies \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] ##### Fixed - \[[#&#8203;2702]]: Constrain cyclic associated types to themselves \[\[[@&#8203;BadBastion](https://github.com/BadBastion)]] - \[[#&#8203;2954]]: Fix several inter doc links \[\[[@&#8203;ralpha](https://github.com/ralpha)]] - \[[#&#8203;3073]]: feat(logging): Log slow acquires from connection pool \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3137]]: SqliteConnectOptions::filename() memory fix ([#&#8203;3136](https://github.com/launchbadge/sqlx/issues/3136)) \[\[[@&#8203;hoxxep](https://github.com/hoxxep)]] - \[[#&#8203;3138]]: PostgreSQL Bugfix: Ensure connection is usable after failed COPY inside a transaction \[\[[@&#8203;feikesteenbergen](https://github.com/feikesteenbergen)]] - \[[#&#8203;3146]]: fix(sqlite): delete unused `ConnectionHandleRaw` type \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3162]]: Drop urlencoding dependency \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3165]]: Bump deps that do not need code changes \[\[[@&#8203;GnomedDev](https://github.com/GnomedDev)]] - \[[#&#8203;3167]]: fix(ci): use `docker compose` instead of `docker-compose` \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3172]]: fix: Option decoding in any driver \[\[[@&#8203;pxp9](https://github.com/pxp9)]] - \[[#&#8203;3173]]: fix(postgres) : int type conversion while decoding \[\[[@&#8203;RaghavRox](https://github.com/RaghavRox)]] - \[[#&#8203;3190]]: Update time to 0.3.36 \[\[[@&#8203;BlackSoulHub](https://github.com/BlackSoulHub)]] - \[[#&#8203;3191]]: Fix unclean TLS shutdown \[\[[@&#8203;levkk](https://github.com/levkk)]] - \[[#&#8203;3194]]: Fix leaking connections in fetch_optional ([#&#8203;2647](https://github.com/launchbadge/sqlx/issues/2647)) \[\[[@&#8203;danjpgriffin](https://github.com/danjpgriffin)]] - \[[#&#8203;3216]]: security: bump rustls to 0.21.11 \[\[[@&#8203;toxeus](https://github.com/toxeus)]] - \[[#&#8203;3230]]: fix: sqlite pragma order for auto_vacuum \[\[[@&#8203;jasonish](https://github.com/jasonish)]] - \[[#&#8203;3233]]: fix: get_filename should not consume self \[\[[@&#8203;jasonish](https://github.com/jasonish)]] - \[[#&#8203;3234]]: fix(ci): pin Rust version, ditch unmaintained actions \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3236]]: fix: resolve `path` ownership problems when using `sqlx_macros_unstable` \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]] - \[[#&#8203;3254]]: fix: hide `sqlx_postgres::any` \[\[[@&#8203;Zarathustra2](https://github.com/Zarathustra2)]] - \[[#&#8203;3266]]: ci: MariaDB - add back 11.4 and add 11.5 \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]] - \[[#&#8203;3267]]: ci: syntax fix \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]] - \[[#&#8203;3271]]: docs(sqlite): fix typo - unixtime() -> unixepoch() \[\[[@&#8203;joelkoen](https://github.com/joelkoen)]] - \[[#&#8203;3276]]: Invert boolean for `migrate` error message. ([#&#8203;3275](https://github.com/launchbadge/sqlx/issues/3275)) \[\[[@&#8203;nk9](https://github.com/nk9)]] - \[[#&#8203;3279]]: fix Clippy errors \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3288]]: fix: sqlite update_hook char types \[\[[@&#8203;jasonish](https://github.com/jasonish)]] - \[[#&#8203;3297]]: Pass the `persistent` query setting when preparing queries with the `Any` driver \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]] - \[[#&#8203;3298]]: Track null arguments in order to provide the appropriate type when converting them. \[\[[@&#8203;etorreborre](https://github.com/etorreborre)]] - \[[#&#8203;3312]]: doc: Minor rust docs fixes \[\[[@&#8203;SrGesus](https://github.com/SrGesus)]] - \[[#&#8203;3327]]: chore: fixed one usage of `select_input_type!()` being unhygenic \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3328]]: fix(ci): comment not separated from other characters \[\[[@&#8203;hamirmahal](https://github.com/hamirmahal)]] - \[[#&#8203;3341]]: refactor: Resolve cargo check warnings in postgres examples \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3346]]: fix(postgres): don't panic if `M` or `C` Notice fields are not UTF-8 \[\[[@&#8203;YgorSouza](https://github.com/YgorSouza)]] - \[[#&#8203;3350]]: fix:the `json`-feature should activate `sqlx-postgres?/json` as well \[\[[@&#8203;CommanderStorm](https://github.com/CommanderStorm)]] - \[[#&#8203;3353]]: fix: build script new line at eof \[\[[@&#8203;Zarthus](https://github.com/Zarthus)]] - (no PR): activate `clock` and `std` features of `workspace.dependencies.chrono`. [#&#8203;2482]: https://github.com/launchbadge/sqlx/pull/2482 [#&#8203;2652]: https://github.com/launchbadge/sqlx/pull/2652 [#&#8203;2697]: https://github.com/launchbadge/sqlx/pull/2697 [#&#8203;2702]: https://github.com/launchbadge/sqlx/pull/2702 [#&#8203;2736]: https://github.com/launchbadge/sqlx/pull/2736 [#&#8203;2869]: https://github.com/launchbadge/sqlx/pull/2869 [#&#8203;2917]: https://github.com/launchbadge/sqlx/pull/2917 [#&#8203;2940]: https://github.com/launchbadge/sqlx/pull/2940 [#&#8203;2954]: https://github.com/launchbadge/sqlx/pull/2954 [#&#8203;2960]: https://github.com/launchbadge/sqlx/pull/2960 [#&#8203;2970]: https://github.com/launchbadge/sqlx/pull/2970 [#&#8203;2973]: https://github.com/launchbadge/sqlx/pull/2973 [#&#8203;3064]: https://github.com/launchbadge/sqlx/pull/3064 [#&#8203;3073]: https://github.com/launchbadge/sqlx/pull/3073 [#&#8203;3113]: https://github.com/launchbadge/sqlx/pull/3113 [#&#8203;3123]: https://github.com/launchbadge/sqlx/pull/3123 [#&#8203;3126]: https://github.com/launchbadge/sqlx/pull/3126 [#&#8203;3130]: https://github.com/launchbadge/sqlx/pull/3130 [#&#8203;3137]: https://github.com/launchbadge/sqlx/pull/3137 [#&#8203;3138]: https://github.com/launchbadge/sqlx/pull/3138 [#&#8203;3146]: https://github.com/launchbadge/sqlx/pull/3146 [#&#8203;3148]: https://github.com/launchbadge/sqlx/pull/3148 [#&#8203;3154]: https://github.com/launchbadge/sqlx/pull/3154 [#&#8203;3162]: https://github.com/launchbadge/sqlx/pull/3162 [#&#8203;3165]: https://github.com/launchbadge/sqlx/pull/3165 [#&#8203;3167]: https://github.com/launchbadge/sqlx/pull/3167 [#&#8203;3172]: https://github.com/launchbadge/sqlx/pull/3172 [#&#8203;3173]: https://github.com/launchbadge/sqlx/pull/3173 [#&#8203;3181]: https://github.com/launchbadge/sqlx/pull/3181 [#&#8203;3184]: https://github.com/launchbadge/sqlx/pull/3184 [#&#8203;3188]: https://github.com/launchbadge/sqlx/pull/3188 [#&#8203;3190]: https://github.com/launchbadge/sqlx/pull/3190 [#&#8203;3191]: https://github.com/launchbadge/sqlx/pull/3191 [#&#8203;3194]: https://github.com/launchbadge/sqlx/pull/3194 [#&#8203;3216]: https://github.com/launchbadge/sqlx/pull/3216 [#&#8203;3230]: https://github.com/launchbadge/sqlx/pull/3230 [#&#8203;3233]: https://github.com/launchbadge/sqlx/pull/3233 [#&#8203;3234]: https://github.com/launchbadge/sqlx/pull/3234 [#&#8203;3236]: https://github.com/launchbadge/sqlx/pull/3236 [#&#8203;3244]: https://github.com/launchbadge/sqlx/pull/3244 [#&#8203;3252]: https://github.com/launchbadge/sqlx/pull/3252 [#&#8203;3254]: https://github.com/launchbadge/sqlx/pull/3254 [#&#8203;3260]: https://github.com/launchbadge/sqlx/pull/3260 [#&#8203;3265]: https://github.com/launchbadge/sqlx/pull/3265 [#&#8203;3266]: https://github.com/launchbadge/sqlx/pull/3266 [#&#8203;3267]: https://github.com/launchbadge/sqlx/pull/3267 [#&#8203;3271]: https://github.com/launchbadge/sqlx/pull/3271 [#&#8203;3276]: https://github.com/launchbadge/sqlx/pull/3276 [#&#8203;3279]: https://github.com/launchbadge/sqlx/pull/3279 [#&#8203;3285]: https://github.com/launchbadge/sqlx/pull/3285 [#&#8203;3288]: https://github.com/launchbadge/sqlx/pull/3288 [#&#8203;3291]: https://github.com/launchbadge/sqlx/pull/3291 [#&#8203;3293]: https://github.com/launchbadge/sqlx/pull/3293 [#&#8203;3297]: https://github.com/launchbadge/sqlx/pull/3297 [#&#8203;3298]: https://github.com/launchbadge/sqlx/pull/3298 [#&#8203;3303]: https://github.com/launchbadge/sqlx/pull/3303 [#&#8203;3311]: https://github.com/launchbadge/sqlx/pull/3311 [#&#8203;3312]: https://github.com/launchbadge/sqlx/pull/3312 [#&#8203;3327]: https://github.com/launchbadge/sqlx/pull/3327 [#&#8203;3328]: https://github.com/launchbadge/sqlx/pull/3328 [#&#8203;3329]: https://github.com/launchbadge/sqlx/pull/3329 [#&#8203;3337]: https://github.com/launchbadge/sqlx/pull/3337 [#&#8203;3340]: https://github.com/launchbadge/sqlx/pull/3340 [#&#8203;3341]: https://github.com/launchbadge/sqlx/pull/3341 [#&#8203;3343]: https://github.com/launchbadge/sqlx/pull/3343 [#&#8203;3346]: https://github.com/launchbadge/sqlx/pull/3346 [#&#8203;3350]: https://github.com/launchbadge/sqlx/pull/3350 [#&#8203;3352]: https://github.com/launchbadge/sqlx/pull/3352 [#&#8203;3353]: https://github.com/launchbadge/sqlx/pull/3353 [#&#8203;3356]: https://github.com/launchbadge/sqlx/pull/3356 ### [`v0.7.4`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#074---2024-03-11) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.7.3...v0.7.4) 38 pull requests were merged this release cycle. This is officially the **last** release of the 0.7.x release cycle. As of this release, development of 0.8.0 has begun on `main` and only high-priority bugfixes may be backported. ##### Added - \[[#&#8203;2891]]: feat: expose getters for connect options fields \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;2902]]: feat: add `to_url_lossy` to connect options \[\[[@&#8203;lily-mosquitoes](https://github.com/lily-mosquitoes)]] - \[[#&#8203;2927]]: Support `query!` for cargo-free systems \[\[[@&#8203;kshramt](https://github.com/kshramt)]] - \[[#&#8203;2997]]: doc(FAQ): add entry explaining prepared statements \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3001]]: Update README to clarify MariaDB support \[\[[@&#8203;iangilfillan](https://github.com/iangilfillan)]] - \[[#&#8203;3004]]: feat(logging): Add numeric elapsed time field elapsed_secs \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3007]]: feat: add `raw_sql` API \[\[[@&#8203;abonander](https://github.com/abonander)]] - This hopefully makes it easier to find how to execute statements which are not supported by the default prepared statement interfaces `query*()` and `query!()`. - Improved documentation across the board for the `query*()` functions. - Deprecated: `execute_many()` and `fetch_many()` on interfaces that use prepared statements. - Multiple SQL statements in one query string were only supported by SQLite because its prepared statement interface is the *only* way to execute SQL. All other database flavors forbid multiple statements in one prepared statement string as an extra defense against SQL injection. - The new `raw_sql` API retains this functionality because it explicitly does *not* use prepared statements. Raw or text-mode query interfaces generally allow multiple statements in one query string, and this is supported by all current databases. Due to their nature, however, one cannot use bind parameters with them. - If this change affects you, an issue is open for discussion: https://github.com/launchbadge/sqlx/issues/3108 - \[[#&#8203;3011]]: Added support to IpAddr with MySQL/MariaDB. \[\[[@&#8203;Icerath](https://github.com/Icerath)]] - \[[#&#8203;3013]]: Add default implementation for PgInterval \[\[[@&#8203;pawurb](https://github.com/pawurb)]] - \[[#&#8203;3018]]: Add default implementation for PgMoney \[\[[@&#8203;pawurb](https://github.com/pawurb)]] - \[[#&#8203;3026]]: Update docs to reflect support for MariaDB data types \[\[[@&#8203;iangilfillan](https://github.com/iangilfillan)]] - \[[#&#8203;3037]]: feat(mysql): allow to connect with mysql driver without default behavor \[\[[@&#8203;darkecho731](https://github.com/darkecho731)]] ##### Changed - \[[#&#8203;2900]]: Show latest url to docs for macro.migrate \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]] - \[[#&#8203;2914]]: Use `create_new` instead of `atomic-file-write` \[\[[@&#8203;mattfbacon](https://github.com/mattfbacon)]] - \[[#&#8203;2926]]: docs: update example for `PgConnectOptions` \[\[[@&#8203;Fyko](https://github.com/Fyko)]] - \[[#&#8203;2989]]: sqlx-core: Remove dotenvy dependency \[\[[@&#8203;joshtriplett](https://github.com/joshtriplett)]] - \[[#&#8203;2996]]: chore: Update ahash to 0.8.7 \[\[[@&#8203;takenoko-gohan](https://github.com/takenoko-gohan)]] - \[[#&#8203;3006]]: chore(deps): Replace unmaintained tempdir crate with tempfile \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3008]]: chore: Ignore .sqlx folder created by running ci steps locally \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3009]]: chore(dev-deps): Upgrade env_logger from 0.9 to 0.11 \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3010]]: chore(deps): Upgrade criterion to 0.5.1 \[\[[@&#8203;iamjpotts](https://github.com/iamjpotts)]] - \[[#&#8203;3050]]: Optimize SASL auth in sqlx-postgres \[\[[@&#8203;mirek26](https://github.com/mirek26)]] - \[[#&#8203;3055]]: Set TCP_NODELAY option on TCP sockets \[\[[@&#8203;mirek26](https://github.com/mirek26)]] - \[[#&#8203;3065]]: Improve max_lifetime handling \[\[[@&#8203;mirek26](https://github.com/mirek26)]] - \[[#&#8203;3072]]: Change the name of "inner" function generated by `#[sqlx::test]` \[\[[@&#8203;ciffelia](https://github.com/ciffelia)]] - \[[#&#8203;3083]]: Remove sha1 because it's not being used in postgres \[\[[@&#8203;rafaelGuerreiro](https://github.com/rafaelGuerreiro)]] ##### Fixed - \[[#&#8203;2898]]: Fixed docs \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]] - \[[#&#8203;2905]]: fix(mysql): Close prepared statement if persistence is disabled \[\[[@&#8203;larsschumacher](https://github.com/larsschumacher)]] - \[[#&#8203;2913]]: Fix handling of deferred constraints \[\[[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw)]] - \[[#&#8203;2919]]: fix duplicate "\`" in FromRow "default" attribute doc comment \[\[[@&#8203;shengsheng](https://github.com/shengsheng)]] - \[[#&#8203;2932]]: fix(postgres): avoid unnecessary flush in PgCopyIn::read_from \[\[[@&#8203;tsing](https://github.com/tsing)]] - \[[#&#8203;2955]]: Minor fixes \[\[[@&#8203;Dawsoncodes](https://github.com/Dawsoncodes)]] - \[[#&#8203;2963]]: Fixed ReadMe badge styling \[\[[@&#8203;tadghh](https://github.com/tadghh)]] - \[[#&#8203;2976]]: fix: AnyRow not support PgType::Varchar \[\[[@&#8203;holicc](https://github.com/holicc)]] - \[[#&#8203;3053]]: fix: do not panic when binding a large BigDecimal \[\[[@&#8203;Ekleog](https://github.com/Ekleog)]] - \[[#&#8203;3056]]: fix: spans in sqlite tracing ([#&#8203;2876](https://github.com/launchbadge/sqlx/issues/2876)) \[\[[@&#8203;zoomiti](https://github.com/zoomiti)]] - \[[#&#8203;3089]]: fix(migrate): improve error message when parsing version from filename \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3098]]: Migrations fixes \[\[[@&#8203;abonander](https://github.com/abonander)]] - Unhides `sqlx::migrate::Migrator`. - Improves I/O error message when failing to read a file in `migrate!()`. [#&#8203;2891]: https://github.com/launchbadge/sqlx/pull/2891 [#&#8203;2898]: https://github.com/launchbadge/sqlx/pull/2898 [#&#8203;2900]: https://github.com/launchbadge/sqlx/pull/2900 [#&#8203;2902]: https://github.com/launchbadge/sqlx/pull/2902 [#&#8203;2905]: https://github.com/launchbadge/sqlx/pull/2905 [#&#8203;2913]: https://github.com/launchbadge/sqlx/pull/2913 [#&#8203;2914]: https://github.com/launchbadge/sqlx/pull/2914 [#&#8203;2919]: https://github.com/launchbadge/sqlx/pull/2919 [#&#8203;2926]: https://github.com/launchbadge/sqlx/pull/2926 [#&#8203;2927]: https://github.com/launchbadge/sqlx/pull/2927 [#&#8203;2932]: https://github.com/launchbadge/sqlx/pull/2932 [#&#8203;2955]: https://github.com/launchbadge/sqlx/pull/2955 [#&#8203;2963]: https://github.com/launchbadge/sqlx/pull/2963 [#&#8203;2976]: https://github.com/launchbadge/sqlx/pull/2976 [#&#8203;2989]: https://github.com/launchbadge/sqlx/pull/2989 [#&#8203;2996]: https://github.com/launchbadge/sqlx/pull/2996 [#&#8203;2997]: https://github.com/launchbadge/sqlx/pull/2997 [#&#8203;3001]: https://github.com/launchbadge/sqlx/pull/3001 [#&#8203;3004]: https://github.com/launchbadge/sqlx/pull/3004 [#&#8203;3006]: https://github.com/launchbadge/sqlx/pull/3006 [#&#8203;3007]: https://github.com/launchbadge/sqlx/pull/3007 [#&#8203;3008]: https://github.com/launchbadge/sqlx/pull/3008 [#&#8203;3009]: https://github.com/launchbadge/sqlx/pull/3009 [#&#8203;3010]: https://github.com/launchbadge/sqlx/pull/3010 [#&#8203;3011]: https://github.com/launchbadge/sqlx/pull/3011 [#&#8203;3013]: https://github.com/launchbadge/sqlx/pull/3013 [#&#8203;3018]: https://github.com/launchbadge/sqlx/pull/3018 [#&#8203;3026]: https://github.com/launchbadge/sqlx/pull/3026 [#&#8203;3037]: https://github.com/launchbadge/sqlx/pull/3037 [#&#8203;3050]: https://github.com/launchbadge/sqlx/pull/3050 [#&#8203;3053]: https://github.com/launchbadge/sqlx/pull/3053 [#&#8203;3055]: https://github.com/launchbadge/sqlx/pull/3055 [#&#8203;3056]: https://github.com/launchbadge/sqlx/pull/3056 [#&#8203;3065]: https://github.com/launchbadge/sqlx/pull/3065 [#&#8203;3072]: https://github.com/launchbadge/sqlx/pull/3072 [#&#8203;3083]: https://github.com/launchbadge/sqlx/pull/3083 [#&#8203;3089]: https://github.com/launchbadge/sqlx/pull/3089 [#&#8203;3098]: https://github.com/launchbadge/sqlx/pull/3098 ### [`v0.7.3`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#073---2023-11-22) 38 pull requests were merged this release cycle. ##### Added - \[[#&#8203;2478]]: feat(citext): support postgres citext \[\[[@&#8203;hgranthorner](https://github.com/hgranthorner)]] - \[[#&#8203;2545]]: Add `fixtures_path` in sqlx::test args \[\[[@&#8203;ripa1995](https://github.com/ripa1995)]] - \[[#&#8203;2665]]: feat(mysql): support packet splitting \[\[[@&#8203;tk2217](https://github.com/tk2217)]] - \[[#&#8203;2752]]: Enhancement [#&#8203;2747](https://github.com/launchbadge/sqlx/issues/2747) Provide `fn PgConnectOptions::get_host(&self)` \[\[[@&#8203;boris-lok](https://github.com/boris-lok)]] - \[[#&#8203;2769]]: Customize the macro error message based on the metadata \[\[[@&#8203;Nemo157](https://github.com/Nemo157)]] - \[[#&#8203;2793]]: derived Hash trait for PgInterval \[\[[@&#8203;yasamoka](https://github.com/yasamoka)]] - \[[#&#8203;2801]]: derive FromRow: sqlx(default) for all fields \[\[[@&#8203;grgi](https://github.com/grgi)]] - \[[#&#8203;2827]]: Add impl `FromRow` for the unit type \[\[[@&#8203;nanoqsh](https://github.com/nanoqsh)]] - \[[#&#8203;2871]]: Add `MySqlConnectOptions::get_database()` \[\[[@&#8203;shiftrightonce](https://github.com/shiftrightonce)]] - \[[#&#8203;2873]]: Sqlx Cli: Added force flag to drop database for postgres \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]] - \[[#&#8203;2894]]: feat: `Text` adapter \[\[[@&#8203;abonander](https://github.com/abonander)]] ##### Changed - \[[#&#8203;2701]]: Remove documentation on offline feature \[\[[@&#8203;Baptistemontan](https://github.com/Baptistemontan)]] - \[[#&#8203;2713]]: Add additional info regarding using Transaction and PoolConnection as… \[\[[@&#8203;satwanjyu](https://github.com/satwanjyu)]] - \[[#&#8203;2770]]: Update README.md \[\[[@&#8203;snspinn](https://github.com/snspinn)]] - \[[#&#8203;2797]]: doc(mysql): document behavior regarding `BOOLEAN` and the query macros \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2803]]: Don't use separate temp dir for query jsons (2) \[\[[@&#8203;mattfbacon](https://github.com/mattfbacon)]] - \[[#&#8203;2819]]: postgres begin cancel safe \[\[[@&#8203;conradludgate](https://github.com/conradludgate)]] - \[[#&#8203;2832]]: Update extra_float_digits default to 2 instead of 3 \[\[[@&#8203;brianheineman](https://github.com/brianheineman)]] - \[[#&#8203;2865]]: Update Faq - Bulk upsert with optional fields \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]] - \[[#&#8203;2880]]: feat: use specific message for slow query logs \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2882]]: Do not require db url for prepare \[\[[@&#8203;tamasfe](https://github.com/tamasfe)]] - \[[#&#8203;2890]]: doc(sqlite): cover lack of `NUMERIC` support \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[No PR]: Upgraded `libsqlite3-sys` to 0.27.0 - Note: linkage to `libsqlite3-sys` is considered semver-exempt; see the release notes for 0.7.0 below for details. ##### Fixed - \[[#&#8203;2640]]: fix: sqlx::macro db cleanup race condition by adding a margin to current timestamp \[\[[@&#8203;fhsgoncalves](https://github.com/fhsgoncalves)]] - \[[#&#8203;2655]]: \[fix] Urlencode when passing filenames to sqlite3 \[\[[@&#8203;uttarayan21](https://github.com/uttarayan21)]] - \[[#&#8203;2684]]: Make PgListener recover from UnexpectedEof \[\[[@&#8203;hamiltop](https://github.com/hamiltop)]] - \[[#&#8203;2688]]: fix: Make rust_decimal and bigdecimal decoding more lenient \[\[[@&#8203;cameronbraid](https://github.com/cameronbraid)]] - \[[#&#8203;2754]]: Is tests/x.py maintained? And I tried fix it. \[\[[@&#8203;qwerty2501](https://github.com/qwerty2501)]] - \[[#&#8203;2784]]: fix: decode postgres time without subsecond \[\[[@&#8203;granddaifuku](https://github.com/granddaifuku)]] - \[[#&#8203;2806]]: Depend on version of async-std with non-private spawn-blocking \[\[[@&#8203;A248](https://github.com/A248)]] - \[[#&#8203;2820]]: fix: correct decoding of `rust_decimal::Decimal` for high-precision values \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2822]]: issue [#&#8203;2821](https://github.com/launchbadge/sqlx/issues/2821) Update error handling logic when opening a TCP connection \[\[[@&#8203;anupj](https://github.com/anupj)]] - \[[#&#8203;2826]]: chore: bump some sqlx-core dependencies \[\[[@&#8203;djc](https://github.com/djc)]] - \[[#&#8203;2838]]: Fixes rust_decimal scale for Postgres \[\[[@&#8203;jkleinknox](https://github.com/jkleinknox)]] - \[[#&#8203;2847]]: Fix comment in `sqlx migrate add` help text \[\[[@&#8203;cryeprecision](https://github.com/cryeprecision)]] - \[[#&#8203;2850]]: fix(core): avoid unncessary wakeups in `try_stream!()` \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2856]]: Prevent warnings running `cargo build` \[\[[@&#8203;nyurik](https://github.com/nyurik)]] - \[[#&#8203;2864]]: fix(sqlite): use `AtomicUsize` for thread IDs \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2892]]: Fixed force dropping bug \[\[[@&#8203;Vrajs16](https://github.com/Vrajs16)]] [#&#8203;2478]: https://github.com/launchbadge/sqlx/pull/2478 [#&#8203;2545]: https://github.com/launchbadge/sqlx/pull/2545 [#&#8203;2640]: https://github.com/launchbadge/sqlx/pull/2640 [#&#8203;2655]: https://github.com/launchbadge/sqlx/pull/2655 [#&#8203;2665]: https://github.com/launchbadge/sqlx/pull/2665 [#&#8203;2684]: https://github.com/launchbadge/sqlx/pull/2684 [#&#8203;2688]: https://github.com/launchbadge/sqlx/pull/2688 [#&#8203;2701]: https://github.com/launchbadge/sqlx/pull/2701 [#&#8203;2713]: https://github.com/launchbadge/sqlx/pull/2713 [#&#8203;2752]: https://github.com/launchbadge/sqlx/pull/2752 [#&#8203;2754]: https://github.com/launchbadge/sqlx/pull/2754 [#&#8203;2769]: https://github.com/launchbadge/sqlx/pull/2769 [#&#8203;2770]: https://github.com/launchbadge/sqlx/pull/2770 [#&#8203;2782]: https://github.com/launchbadge/sqlx/pull/2782 [#&#8203;2784]: https://github.com/launchbadge/sqlx/pull/2784 [#&#8203;2793]: https://github.com/launchbadge/sqlx/pull/2793 [#&#8203;2797]: https://github.com/launchbadge/sqlx/pull/2797 [#&#8203;2801]: https://github.com/launchbadge/sqlx/pull/2801 [#&#8203;2803]: https://github.com/launchbadge/sqlx/pull/2803 [#&#8203;2806]: https://github.com/launchbadge/sqlx/pull/2806 [#&#8203;2819]: https://github.com/launchbadge/sqlx/pull/2819 [#&#8203;2820]: https://github.com/launchbadge/sqlx/pull/2820 [#&#8203;2822]: https://github.com/launchbadge/sqlx/pull/2822 [#&#8203;2826]: https://github.com/launchbadge/sqlx/pull/2826 [#&#8203;2827]: https://github.com/launchbadge/sqlx/pull/2827 [#&#8203;2832]: https://github.com/launchbadge/sqlx/pull/2832 [#&#8203;2838]: https://github.com/launchbadge/sqlx/pull/2838 [#&#8203;2847]: https://github.com/launchbadge/sqlx/pull/2847 [#&#8203;2850]: https://github.com/launchbadge/sqlx/pull/2850 [#&#8203;2856]: https://github.com/launchbadge/sqlx/pull/2856 [#&#8203;2864]: https://github.com/launchbadge/sqlx/pull/2864 [#&#8203;2865]: https://github.com/launchbadge/sqlx/pull/2865 [#&#8203;2871]: https://github.com/launchbadge/sqlx/pull/2871 [#&#8203;2873]: https://github.com/launchbadge/sqlx/pull/2873 [#&#8203;2880]: https://github.com/launchbadge/sqlx/pull/2880 [#&#8203;2882]: https://github.com/launchbadge/sqlx/pull/2882 [#&#8203;2890]: https://github.com/launchbadge/sqlx/pull/2890 [#&#8203;2892]: https://github.com/launchbadge/sqlx/pull/2892 [#&#8203;2894]: https://github.com/launchbadge/sqlx/pull/2894 ### [`v0.7.2`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#072---2023-09-25) 23 pull requests were merged this release cycle. ##### Added - \[[#&#8203;2121]]: Add JSON support to `FromRow` derive \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]] - \[[#&#8203;2533]]: Implement mysql_clear_password \[\[[@&#8203;ldanilek](https://github.com/ldanilek)]] - \[[#&#8203;2538]]: cli: add --target-version CLI flags for migrate run/revert \[\[[@&#8203;inahga](https://github.com/inahga)]] - \[[#&#8203;2577]]: supplement Postgres listen example with a small chat example \[\[[@&#8203;JockeM](https://github.com/JockeM)]] - \[[#&#8203;2602]]: Support naming migrations sequentially \[\[[@&#8203;vmax](https://github.com/vmax)]] - \[[#&#8203;2634]]: Adding PgHasArrayType for &\[u8;N] \[\[[@&#8203;snf](https://github.com/snf)]] - \[[#&#8203;2646]]: Support for setting client certificate and key from bytes \[\[[@&#8203;wyhaya](https://github.com/wyhaya)]] - \[[#&#8203;2664]]: Automatically infer migration type \[\[[@&#8203;vmax](https://github.com/vmax)]] - \[[#&#8203;2712]]: Add impl for `Type`, `Decode`, and `Encode` for `Box<str>` and `Box<[u8]>` \[\[[@&#8203;grant0417](https://github.com/grant0417)]] ##### Changed - \[[#&#8203;2650]]: Cleanup format arguments \[\[[@&#8203;nyurik](https://github.com/nyurik)]] - \[[#&#8203;2695]]: remove \&mut PoolConnection from Executor docs \[\[[@&#8203;olback](https://github.com/olback)]] - This impl was removed in 0.7.0 because of coherence issues. - \[[#&#8203;2706]]: Clarify where optional features should be enabled \[\[[@&#8203;kryptan](https://github.com/kryptan)]] - \[[#&#8203;2717]]: Update README.md \[\[[@&#8203;fermanjj](https://github.com/fermanjj)]] - \[[#&#8203;2739]]: Bump mariadb CI images + mysql unpin \[\[[@&#8203;grooverdan](https://github.com/grooverdan)]] - \[[#&#8203;2742]]: Implemented poll_flush for Box\<S:Socket> \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]] - \[[#&#8203;2740]]: Remove sealed trait comments from documentation \[\[[@&#8203;bobozaur](https://github.com/bobozaur)]] - \[[#&#8203;2750]]: Fix [#&#8203;2384](https://github.com/launchbadge/sqlx/issues/2384), bump flume to v0.11.0 \[\[[@&#8203;madadam](https://github.com/madadam)]] - \[[#&#8203;2757]]: Remove unused `remove_dir_all` crate from `sqlx-cli`, fixes RUSTSEC-2023-0018 \[\[[@&#8203;aldur](https://github.com/aldur)]] ##### Fixed - \[[#&#8203;2624]]: Documentation typo: BYTE -> BINARY \[\[[@&#8203;sebastianv89](https://github.com/sebastianv89)]] - \[[#&#8203;2628]]: docs: 0.7 is stable in the entire README \[\[[@&#8203;marcusirgens](https://github.com/marcusirgens)]] - \[[#&#8203;2630]]: fix(postgres): fix buffer management in PgCopyIn::read_from \[\[[@&#8203;tsing](https://github.com/tsing)]] - \[[#&#8203;2651]]: Chore: Fix few build warnings, and make CI fail on warn \[\[[@&#8203;nyurik](https://github.com/nyurik)]] - \[[#&#8203;2670]]: fix: ignore extra fields in Postgres describe parsing \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2687]]: docs: Fix description of `min_connections` \[\[[@&#8203;hakoerber](https://github.com/hakoerber)]] [#&#8203;2121]: https://github.com/launchbadge/sqlx/pull/2121 [#&#8203;2533]: https://github.com/launchbadge/sqlx/pull/2533 [#&#8203;2538]: https://github.com/launchbadge/sqlx/pull/2538 [#&#8203;2577]: https://github.com/launchbadge/sqlx/pull/2577 [#&#8203;2602]: https://github.com/launchbadge/sqlx/pull/2602 [#&#8203;2624]: https://github.com/launchbadge/sqlx/pull/2624 [#&#8203;2628]: https://github.com/launchbadge/sqlx/pull/2628 [#&#8203;2630]: https://github.com/launchbadge/sqlx/pull/2630 [#&#8203;2634]: https://github.com/launchbadge/sqlx/pull/2634 [#&#8203;2646]: https://github.com/launchbadge/sqlx/pull/2646 [#&#8203;2650]: https://github.com/launchbadge/sqlx/pull/2650 [#&#8203;2651]: https://github.com/launchbadge/sqlx/pull/2651 [#&#8203;2664]: https://github.com/launchbadge/sqlx/pull/2664 [#&#8203;2670]: https://github.com/launchbadge/sqlx/pull/2670 [#&#8203;2687]: https://github.com/launchbadge/sqlx/pull/2687 [#&#8203;2695]: https://github.com/launchbadge/sqlx/pull/2695 [#&#8203;2706]: https://github.com/launchbadge/sqlx/pull/2706 [#&#8203;2712]: https://github.com/launchbadge/sqlx/pull/2712 [#&#8203;2717]: https://github.com/launchbadge/sqlx/pull/2717 [#&#8203;2739]: https://github.com/launchbadge/sqlx/pull/2739 [#&#8203;2740]: https://github.com/launchbadge/sqlx/pull/2740 [#&#8203;2742]: https://github.com/launchbadge/sqlx/pull/2742 [#&#8203;2750]: https://github.com/launchbadge/sqlx/pull/2750 [#&#8203;2757]: https://github.com/launchbadge/sqlx/pull/2757 ### [`v0.7.1`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#071---2023-07-14) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.7.0...v0.7.1) This release mainly addresses issues reported with the 0.7.0 release. 16 pull requests were merged this release cycle. ##### Added - \[[#&#8203;2551]]: Introduce build_query_scalar for QueryBuilder \[\[[@&#8203;iamquang95](https://github.com/iamquang95)]] - \[[#&#8203;2605]]: Implement Default for QueryBuilder \[\[[@&#8203;Xydez](https://github.com/Xydez)]] - \[[#&#8203;2616]]: feat(sqlx-core): add table function to database error \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;2619]]: feat: allow opt-out of `PgHasArrayType` with `#[derive(sqlx::Type)]` \[\[[@&#8203;abonander](https://github.com/abonander)]] - TL;DR: if you're getting errors from `#[derive(sqlx::Type)]` with `#[sqlx(transparent)]` regarding `PgHasArrayType` not being implemented, add `#[sqlx(no_pg_array)]` to fix. ##### Changed - \[[#&#8203;2566]]: improve docs about migration files \[\[[@&#8203;jnnnnn](https://github.com/jnnnnn)]] - \[[#&#8203;2576]]: Major Version Update clap to 4.0 \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]] - \[[#&#8203;2597]]: Bump webpki-roots to v0.24 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2603]]: docs(changelog): be more verbose about offline mode breaking change \[\[[@&#8203;mrl5](https://github.com/mrl5)]] ##### Fixed - \[[#&#8203;2553]]: Implement `Clone` for `PoolOptions` manually ([#&#8203;2548](https://github.com/launchbadge/sqlx/issues/2548)) \[\[[@&#8203;alilleybrinker](https://github.com/alilleybrinker)]] - \[[#&#8203;2580]]: Update README.md now that 0.7.0 is no longer in alpha \[\[[@&#8203;saolof](https://github.com/saolof)]] - \[[#&#8203;2585]]: Fix for Issue [#&#8203;2549](https://github.com/launchbadge/sqlx/issues/2549) - cannot use feature "rust_decimal" without also using "bigdecimal" \[\[[@&#8203;deneut](https://github.com/deneut)]] - \[[#&#8203;2586]]: Fix optional dependency on sqlx-macros \[\[[@&#8203;kitterion](https://github.com/kitterion)]] - \[[#&#8203;2593]]: Correct mention of the `tls-native-tls` in the documentation. \[\[[@&#8203;denschub](https://github.com/denschub)]] - \[[#&#8203;2599]]: Remove incorrect CAST in test database cleanup for MySQL. \[\[[@&#8203;fd](https://github.com/fd)]] - \[[#&#8203;2613]]: Fix readme.md to reduce confusion about optional features (decimal->rust_decimal) \[\[[@&#8203;vabka](https://github.com/vabka)]] - \[[#&#8203;2620]]: fix(sqlite/any): encode bool as integer \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] [#&#8203;2551]: https://github.com/launchbadge/sqlx/pull/2551 [#&#8203;2553]: https://github.com/launchbadge/sqlx/pull/2553 [#&#8203;2566]: https://github.com/launchbadge/sqlx/pull/2566 [#&#8203;2576]: https://github.com/launchbadge/sqlx/pull/2576 [#&#8203;2580]: https://github.com/launchbadge/sqlx/pull/2580 [#&#8203;2585]: https://github.com/launchbadge/sqlx/pull/2585 [#&#8203;2586]: https://github.com/launchbadge/sqlx/pull/2586 [#&#8203;2593]: https://github.com/launchbadge/sqlx/pull/2593 [#&#8203;2597]: https://github.com/launchbadge/sqlx/pull/2597 [#&#8203;2599]: https://github.com/launchbadge/sqlx/pull/2599 [#&#8203;2603]: https://github.com/launchbadge/sqlx/pull/2603 [#&#8203;2605]: https://github.com/launchbadge/sqlx/pull/2605 [#&#8203;2613]: https://github.com/launchbadge/sqlx/pull/2613 [#&#8203;2616]: https://github.com/launchbadge/sqlx/pull/2616 [#&#8203;2619]: https://github.com/launchbadge/sqlx/pull/2619 [#&#8203;2620]: https://github.com/launchbadge/sqlx/pull/2620 ### [`v0.7.0`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#070---2023-06-30) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.6.3...v0.7.0) At least **70 pull requests** were merged this release cycle! (The exact count is muddied with pull requests for alpha releases and such.) And we gained 43 new contributors! Thank you to everyone who helped make this release a reality. ##### Breaking Many revisions were made to query analysis in the SQLite driver; these are all potentially breaking changes as they can change the output of `sqlx::query!()` *et al*. We'd like to thank \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] for their numerous PRs to this area. The MSSQL driver has been removed as it was not nearly at the same maturity level as the other drivers. [As previously announced][sqlx-pro], we have plans to introduce a fully featured replacement as a premium offering, alongside drivers for other proprietary databases, with the goal to support full-time development on SQLx. If interested, please email your inquiry to sqlx@launchbadge.com. The offline mode for the queries has been changed to use a separate file per `query!()` invocation, which is intended to reduce the number of conflicts when merging branches in a project that both modified queries. This means that CLI flag `--merged` is no longer supported. See \[[#&#8203;2363]] for details and make sure that your `sqlx-cli` version is in sync with the `sqlx` version in your project. The type ascription override syntax for the query macros has been deprecated, as parse support for it has been removed in `syn 2.0`, which we'll be upgrading to in the next breaking release. This can be replaced with type overrides using casting syntax (`as`). See \[[#&#8203;2483]] for details. - \[[#&#8203;1946]]: Fix compile time verification performance regression for sqlite \[\[[@&#8203;liningpan](https://github.com/liningpan)]] - \[[#&#8203;1960]]: Fix sqlite update return and order by type inference \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - \[[#&#8203;1984]]: Sqlite EXPLAIN type inference improvements \[\[[@&#8203;rongcuid](https://github.com/rongcuid)]] - \[[#&#8203;2039]]: Break drivers out into separate crates, clean up some technical debt \[\[[@&#8203;abonander](https://github.com/abonander)]] - All deprecated items have been removed. - The `mssql` feature and associated database driver has been deleted from the source tree. It will return as part of our planned SQLx Pro offering as a from-scratch rewrite with extra features (such as TLS) and type integrations that were previously missing. - The `runtime-actix-*` features have been deleted. They were previously changed to be aliases of their `runtime-tokio-*` counterparts for backwards compatibility reasons, but their continued existence is misleading as SQLx has no special knowledge of Actix anymore. - To fix, simply replace the `runtime-actix-*` feature with its `runtime-tokio-*` equivalent. - The `git2` feature has been removed. This was a requested integration from a while ago that over time made less and less sense to be part of SQLx itself. We have to be careful with the crates we add to our public API as each one introduces yet another semver hazard. The expected replacement is to make `#[derive(sqlx::Type)]` useful enough that users can write wrapper types for whatever they want to use without SQLx needing to be specifically aware of it. - The `Executor` impls for `Transaction` and `PoolConnection` have been deleted because they cannot exist in the new crate architecture without rewriting the `Executor` trait entirely. - To fix this breakage, simply add a dereference where an `impl Executor` is expected, as they both dereference to the inner connection type which will still implement it: - `&mut transaction` -> `&mut *transaction` - `&mut connection` -> `&mut *connection` - These cannot be blanket impls as it triggers an overflow in the compiler due to the lack of lazy normalization, and the driver crates cannot provide their own impls due to the orphan rule. - We're expecting to do another major refactor of traits to incorporate generic associated types (GAT). This will mean another major release of SQLx but ideally most API usage will not need to change significantly, if at all. - The fields of `Migrator` are now `#[doc(hidden)]` and semver-exempt; they weren't meant to be public. - The `offline` feature has been removed from the `sqlx` facade crate and is enabled unconditionally as most users are expected to have enabled it anyway and disabling it doesn't seem to appreciably affect compile times. - The `decimal` feature has been renamed to `rust_decimal` to match the crate it actually provides integrations for. - `AnyDriver` and `AnyConnection` now require either `sqlx::any::install_drivers()` or `sqlx::any::install_default_drivers()` to be called at some point during the process' lifetime before the first connection is made, as the set of possible drivers is now determined at runtime. This was determined to be the least painful way to provide knowledge of database drivers to `Any` without them being hardcoded. - The `AnyEncode` trait has been removed. - \[[#&#8203;2109]]: feat: better database errors \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;2094]]: Update libsqlite3-sys to 0.25.1 \[\[[@&#8203;penberg](https://github.com/penberg)]] - Alongside this upgrade, we are now considering the linkage to `libsqlite3-sys` to be **semver-exempt**, and we reserve the right to upgrade it as necessary. If you are using `libsqlite3-sys` directly or a crate that links it such as `rusqlite`, you should pin the versions of both crates to avoid breakages from `cargo update`: ```toml [dependencies] sqlx = { version = "=0.7.0", features = ["sqlite"] } rusqlite = "=0.29.0" ``` - \[[#&#8203;2132]]: fix: use owned Builder pattern for ConnectOptions \[\[[@&#8203;ar3s3ru](https://github.com/ar3s3ru)]] - \[[#&#8203;2253]]: Sqlite describe fixes \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - \[[#&#8203;2285]]: `time`: Assume UTC when decoding a DATETIME column in sqlite \[\[[@&#8203;nstinus](https://github.com/nstinus)]] - \[[#&#8203;2363]]: \[offline] Change prepare to one-file-per-query \[\[[@&#8203;cycraig](https://github.com/cycraig)]] - \[[#&#8203;2387]]: PATCH: bump libsqlite3-sys to patched version \[\[[@&#8203;grantkee](https://github.com/grantkee)]] - \[[#&#8203;2409]]: fix([#&#8203;2407](https://github.com/launchbadge/sqlx/issues/2407)): respect the HaltIfNull opcode when determining nullability \[\[[@&#8203;arlyon](https://github.com/arlyon)]] - \[[#&#8203;2459]]: limit the number of instructions that can be evaluated \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - \[[#&#8203;2467]]: Add and improve sqlite describe performance benchmarks \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - \[[#&#8203;2491]]: sqlite date macro support \[\[[@&#8203;Arcayr](https://github.com/Arcayr)]] - Changes `OffsetDateTime` to be the first type used when deserializing a `timestamp` type. - \[[#&#8203;2496]]: Bump to libsqlite3-sys 0.26 \[\[[@&#8203;mdecimus](https://github.com/mdecimus)]] - \[[#&#8203;2508]]: Sqlite analytical \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] ##### Added - \[[#&#8203;1850]]: Add client SSL authentication using key-file for Postgres, MySQL and MariaDB \[\[[@&#8203;ThibsG](https://github.com/ThibsG)]] - \[[#&#8203;2088]]: feat: Add set_connect_options method to Pool \[\[[@&#8203;moatra](https://github.com/moatra)]] - \[[#&#8203;2113]]: Expose PoolOptions for reading \[\[[@&#8203;FSMaxB](https://github.com/FSMaxB)]] - \[[#&#8203;2115]]: Allow using complex types in `try_from` when deriving `FromRow` \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]] - \[[#&#8203;2116]]: \[SQLite] Add option to execute `PRAGMA optimize;` on close of a connection \[\[[@&#8203;miles170](https://github.com/miles170)]] - \[[#&#8203;2189]]: Added regexp support in sqlite \[\[[@&#8203;VictorKoenders](https://github.com/VictorKoenders)]] - \[[#&#8203;2224]]: Add From impls for Json \[\[[@&#8203;dbeckwith](https://github.com/dbeckwith)]] - \[[#&#8203;2256]]: add progress handler support to sqlite \[\[[@&#8203;nbaztec](https://github.com/nbaztec)]] - \[[#&#8203;2366]]: Allow ignoring attributes for deriving FromRow \[\[[@&#8203;grgi](https://github.com/grgi)]] - \[[#&#8203;2369]]: new type support in query_as \[\[[@&#8203;0xdeafbeef](https://github.com/0xdeafbeef)]] - \[[#&#8203;2379]]: feat: add `Connection::shrink_buffers`, `PoolConnection::close` \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2400]]: fix(docs): example of `sqlx_macros_unstable` in config.toml \[\[[@&#8203;df51d](https://github.com/df51d)]] - \[[#&#8203;2469]]: Add Simple format for Uuid for MySQL & SQLite. \[\[[@&#8203;MidasLamb](https://github.com/MidasLamb)]] - \[[#&#8203;2483]]: chore: add deprecation notice for type ascription use \[\[[@&#8203;saiintbrisson](https://github.com/saiintbrisson)]] - \[[#&#8203;2506]]: add args to query builder ([#&#8203;2494](https://github.com/launchbadge/sqlx/issues/2494)) \[\[[@&#8203;cemoktra](https://github.com/cemoktra)]] - \[[#&#8203;2554]]: Impl `AsMut` for advisory lock types ([#&#8203;2520](https://github.com/launchbadge/sqlx/issues/2520)) \[\[[@&#8203;alilleybrinker](https://github.com/alilleybrinker)]] - \[[#&#8203;2559]]: Add CLI autocompletion using clap_complete \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]] ##### Changed - \[[#&#8203;2185]]: Initial work to switch to `tracing` \[\[[@&#8203;CosmicHorrorDev](https://github.com/CosmicHorrorDev)]] - \[[#&#8203;2193]]: Start testing on Postgres 15 and drop Postgres 10 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - We reserve the right to drop support for end-of-lifed database versions [as discussed in our FAQ][faq-db-version]. - \[[#&#8203;2213]]: Use `let else` statements in favor of macro \[\[[@&#8203;OverHash](https://github.com/OverHash)]] - \[[#&#8203;2365]]: Update dependencies \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2371]]: Disable rustls crate logging feature by default up to date \[\[[@&#8203;sergeiivankov](https://github.com/sergeiivankov)]] - \[[#&#8203;2373]]: chore: Use tracing's fields to get structured logs \[\[[@&#8203;jaysonsantos](https://github.com/jaysonsantos)]] - \[[#&#8203;2393]]: Lower default logging level for statements to Debug \[\[[@&#8203;bnoctis](https://github.com/bnoctis)]] - \[[#&#8203;2445]]: Traverse symlinks when resolving migrations \[\[[@&#8203;tgeoghegan](https://github.com/tgeoghegan)]] - \[[#&#8203;2485]]: chore(sqlx-postgres): replace `dirs` with `home` & `etcetera` \[\[[@&#8203;utkarshgupta137](https://github.com/utkarshgupta137)]] - \[[#&#8203;2515]]: Bump mac_address to 1.1.5 \[\[[@&#8203;repnop](https://github.com/repnop)]] - \[[#&#8203;2440]]: Update rustls to 0.21, webpki-roots to 0.23 \[\[[@&#8203;SergioBenitez](https://github.com/SergioBenitez)]] - \[[#&#8203;2563]]: Update rsa to 0.9 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2564]]: Update bitflags to v2 \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2565]]: Bump indexmap and ahash \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2574]]: doc: make it clear that `ConnectOptions` types impl `FromStr` \[\[[@&#8203;abonander](https://github.com/abonander)]] ##### Fixed - \[[#&#8203;2098]]: Fix sqlite compilation \[\[[@&#8203;cycraig](https://github.com/cycraig)]] - \[[#&#8203;2120]]: fix logical merge conflict \[\[[@&#8203;tyrelr](https://github.com/tyrelr)]] - \[[#&#8203;2133]]: Postgres OID resolution query does not take into account current `search_path` \[\[[@&#8203;95ulisse](https://github.com/95ulisse)]] - \[[#&#8203;2156]]: Fixed typo. \[\[[@&#8203;cdbfoster](https://github.com/cdbfoster)]] - \[[#&#8203;2179]]: fix: ensures recover from fail with PgCopyIn \[\[[@&#8203;andyquinterom](https://github.com/andyquinterom)]] - \[[#&#8203;2200]]: Run CI on \*-dev branch \[\[[@&#8203;joehillen](https://github.com/joehillen)]] - \[[#&#8203;2222]]: Add context to confusing sqlx prepare parse error \[\[[@&#8203;laundmo](https://github.com/laundmo)]] - \[[#&#8203;2271]]: feat: support calling Postgres procedures with the macros \[\[[@&#8203;bgeron](https://github.com/bgeron)]] - \[[#&#8203;2282]]: Don't run EXPLAIN nullability analysis on Materialize \[\[[@&#8203;benesch](https://github.com/benesch)]] - \[[#&#8203;2319]]: Set whoami default-features to false \[\[[@&#8203;thedodd](https://github.com/thedodd)]] - \[[#&#8203;2352]]: Preparing 0.7.0-alpha.1 release \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2355]]: Fixed the example code for `sqlx::test` \[\[[@&#8203;kenkoooo](https://github.com/kenkoooo)]] - \[[#&#8203;2367]]: Fix sqlx-cli create, drop, migrate \[\[[@&#8203;cycraig](https://github.com/cycraig)]] - \[[#&#8203;2376]]: fix(pool): close when last handle is dropped, extra check in `try_acquire` \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;2378]]: Fix README build badge \[\[[@&#8203;dbrgn](https://github.com/dbrgn)]] - \[[#&#8203;2398]]: fix(prepare): store temporary query files inside the workspace \[\[[@&#8203;aschey](https://github.com/aschey)]] - \[[#&#8203;2402]]: fix: drop old time 0.1.44 dep \[\[[@&#8203;codahale](https://github.com/codahale)]] - \[[#&#8203;2413]]: fix(macros-core): use of undeclared `tracked_path` \[\[[@&#8203;df51d](https://github.com/df51d)]] - \[[#&#8203;2420]]: Enable runtime-tokio feature of sqlx when building sqlx-cli \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;2453]]: in README.md, correct spelling and grammar \[\[[@&#8203;vizvasrj](https://github.com/vizvasrj)]] - \[[#&#8203;2454]]: fix: ensure fresh test db's aren't accidentally deleted by do_cleanup \[\[[@&#8203;phlip9](https://github.com/phlip9)]] - \[[#&#8203;2507]]: Exposing the Oid of PostgreSQL types \[\[[@&#8203;Razican](https://github.com/Razican)]] - \[[#&#8203;2519]]: Use ::std::result::Result::Ok in output.rs \[\[[@&#8203;southball](https://github.com/southball)]] - \[[#&#8203;2569]]: Fix broken links to mysql error documentation \[\[[@&#8203;titaniumtraveler](https://github.com/titaniumtraveler)]] - \[[#&#8203;2570]]: Add a newline to the generated JSON files \[\[[@&#8203;nyurik](https://github.com/nyurik)]] - \[[#&#8203;2572]]: Do not panic when `PrepareOk` fails to decode \[\[[@&#8203;stepantubanov](https://github.com/stepantubanov)]] - \[[#&#8203;2573]]: fix(sqlite) Do not drop notify mutex guard until after condvar is triggered \[\[[@&#8203;andrewwhitehead](https://github.com/andrewwhitehead)]] [sqlx-pro]: https://github.com/launchbadge/sqlx/discussions/1616 [faq-db-version]: https://github.com/launchbadge/sqlx/blob/main/FAQ.md#what-database-versions-does-sqlx-support [#&#8203;1850]: https://github.com/launchbadge/sqlx/pull/1850 [#&#8203;1946]: https://github.com/launchbadge/sqlx/pull/1946 [#&#8203;1960]: https://github.com/launchbadge/sqlx/pull/1960 [#&#8203;1984]: https://github.com/launchbadge/sqlx/pull/1984 [#&#8203;2039]: https://github.com/launchbadge/sqlx/pull/2039 [#&#8203;2088]: https://github.com/launchbadge/sqlx/pull/2088 [#&#8203;2092]: https://github.com/launchbadge/sqlx/pull/2092 [#&#8203;2094]: https://github.com/launchbadge/sqlx/pull/2094 [#&#8203;2098]: https://github.com/launchbadge/sqlx/pull/2098 [#&#8203;2109]: https://github.com/launchbadge/sqlx/pull/2109 [#&#8203;2113]: https://github.com/launchbadge/sqlx/pull/2113 [#&#8203;2115]: https://github.com/launchbadge/sqlx/pull/2115 [#&#8203;2116]: https://github.com/launchbadge/sqlx/pull/2116 [#&#8203;2120]: https://github.com/launchbadge/sqlx/pull/2120 [#&#8203;2132]: https://github.com/launchbadge/sqlx/pull/2132 [#&#8203;2133]: https://github.com/launchbadge/sqlx/pull/2133 [#&#8203;2156]: https://github.com/launchbadge/sqlx/pull/2156 [#&#8203;2179]: https://github.com/launchbadge/sqlx/pull/2179 [#&#8203;2185]: https://github.com/launchbadge/sqlx/pull/2185 [#&#8203;2189]: https://github.com/launchbadge/sqlx/pull/2189 [#&#8203;2193]: https://github.com/launchbadge/sqlx/pull/2193 [#&#8203;2200]: https://github.com/launchbadge/sqlx/pull/2200 [#&#8203;2213]: https://github.com/launchbadge/sqlx/pull/2213 [#&#8203;2222]: https://github.com/launchbadge/sqlx/pull/2222 [#&#8203;2224]: https://github.com/launchbadge/sqlx/pull/2224 [#&#8203;2253]: https://github.com/launchbadge/sqlx/pull/2253 [#&#8203;2256]: https://github.com/launchbadge/sqlx/pull/2256 [#&#8203;2271]: https://github.com/launchbadge/sqlx/pull/2271 [#&#8203;2282]: https://github.com/launchbadge/sqlx/pull/2282 [#&#8203;2285]: https://github.com/launchbadge/sqlx/pull/2285 [#&#8203;2319]: https://github.com/launchbadge/sqlx/pull/2319 [#&#8203;2352]: https://github.com/launchbadge/sqlx/pull/2352 [#&#8203;2355]: https://github.com/launchbadge/sqlx/pull/2355 [#&#8203;2363]: https://github.com/launchbadge/sqlx/pull/2363 [#&#8203;2365]: https://github.com/launchbadge/sqlx/pull/2365 [#&#8203;2366]: https://github.com/launchbadge/sqlx/pull/2366 [#&#8203;2367]: https://github.com/launchbadge/sqlx/pull/2367 [#&#8203;2369]: https://github.com/launchbadge/sqlx/pull/2369 [#&#8203;2371]: https://github.com/launchbadge/sqlx/pull/2371 [#&#8203;2373]: https://github.com/launchbadge/sqlx/pull/2373 [#&#8203;2376]: https://github.com/launchbadge/sqlx/pull/2376 [#&#8203;2378]: https://github.com/launchbadge/sqlx/pull/2378 [#&#8203;2379]: https://github.com/launchbadge/sqlx/pull/2379 [#&#8203;2387]: https://github.com/launchbadge/sqlx/pull/2387 [#&#8203;2393]: https://github.com/launchbadge/sqlx/pull/2393 [#&#8203;2398]: https://github.com/launchbadge/sqlx/pull/2398 [#&#8203;2400]: https://github.com/launchbadge/sqlx/pull/2400 [#&#8203;2402]: https://github.com/launchbadge/sqlx/pull/2402 [#&#8203;2408]: https://github.com/launchbadge/sqlx/pull/2408 [#&#8203;2409]: https://github.com/launchbadge/sqlx/pull/2409 [#&#8203;2413]: https://github.com/launchbadge/sqlx/pull/2413 [#&#8203;2420]: https://github.com/launchbadge/sqlx/pull/2420 [#&#8203;2440]: https://github.com/launchbadge/sqlx/pull/2440 [#&#8203;2445]: https://github.com/launchbadge/sqlx/pull/2445 [#&#8203;2453]: https://github.com/launchbadge/sqlx/pull/2453 [#&#8203;2454]: https://github.com/launchbadge/sqlx/pull/2454 [#&#8203;2459]: https://github.com/launchbadge/sqlx/pull/2459 [#&#8203;2467]: https://github.com/launchbadge/sqlx/pull/2467 [#&#8203;2469]: https://github.com/launchbadge/sqlx/pull/2469 [#&#8203;2483]: https://github.com/launchbadge/sqlx/pull/2483 [#&#8203;2485]: https://github.com/launchbadge/sqlx/pull/2485 [#&#8203;2491]: https://github.com/launchbadge/sqlx/pull/2491 [#&#8203;2496]: https://github.com/launchbadge/sqlx/pull/2496 [#&#8203;2506]: https://github.com/launchbadge/sqlx/pull/2506 [#&#8203;2507]: https://github.com/launchbadge/sqlx/pull/2507 [#&#8203;2508]: https://github.com/launchbadge/sqlx/pull/2508 [#&#8203;2515]: https://github.com/launchbadge/sqlx/pull/2515 [#&#8203;2519]: https://github.com/launchbadge/sqlx/pull/2519 [#&#8203;2554]: https://github.com/launchbadge/sqlx/pull/2554 [#&#8203;2559]: https://github.com/launchbadge/sqlx/pull/2559 [#&#8203;2563]: https://github.com/launchbadge/sqlx/pull/2563 [#&#8203;2564]: https://github.com/launchbadge/sqlx/pull/2564 [#&#8203;2565]: https://github.com/launchbadge/sqlx/pull/2565 [#&#8203;2569]: https://github.com/launchbadge/sqlx/pull/2569 [#&#8203;2570]: https://github.com/launchbadge/sqlx/pull/2570 [#&#8203;2572]: https://github.com/launchbadge/sqlx/pull/2572 [#&#8203;2573]: https://github.com/launchbadge/sqlx/pull/2573 [#&#8203;2574]: https://github.com/launchbadge/sqlx/pull/2574 </details> <details> <summary>dtolnay/thiserror (thiserror)</summary> ### [`v2.0.9`](https://github.com/dtolnay/thiserror/releases/tag/2.0.9) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.8...2.0.9) - Work around `missing_inline_in_public_items` clippy restriction being triggered in macro-generated code ([#&#8203;404](https://github.com/dtolnay/thiserror/issues/404)) ### [`v2.0.8`](https://github.com/dtolnay/thiserror/releases/tag/2.0.8) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.7...2.0.8) - Improve support for macro-generated `derive(Error)` call sites ([#&#8203;399](https://github.com/dtolnay/thiserror/issues/399)) ### [`v2.0.7`](https://github.com/dtolnay/thiserror/releases/tag/2.0.7) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.6...2.0.7) - Work around conflict with #\[deny(clippy::allow_attributes)] ([#&#8203;397](https://github.com/dtolnay/thiserror/issues/397), thanks [@&#8203;zertosh](https://github.com/zertosh)) ### [`v2.0.6`](https://github.com/dtolnay/thiserror/releases/tag/2.0.6) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.5...2.0.6) - Suppress deprecation warning on generated From impls ([#&#8203;396](https://github.com/dtolnay/thiserror/issues/396)) ### [`v2.0.5`](https://github.com/dtolnay/thiserror/releases/tag/2.0.5) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.4...2.0.5) - Prevent deprecation warning on generated impl for deprecated type ([#&#8203;394](https://github.com/dtolnay/thiserror/issues/394)) ### [`v2.0.4`](https://github.com/dtolnay/thiserror/releases/tag/2.0.4) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.3...2.0.4) - Eliminate needless_lifetimes clippy lint in generated `From` impls ([#&#8203;391](https://github.com/dtolnay/thiserror/issues/391), thanks [@&#8203;matt-phylum](https://github.com/matt-phylum)) ### [`v2.0.3`](https://github.com/dtolnay/thiserror/releases/tag/2.0.3) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.2...2.0.3) - Support the same Path field being repeated in both Debug and Display representation in error message ([#&#8203;383](https://github.com/dtolnay/thiserror/issues/383)) - Improve error message when a format trait used in error message is not implemented by some field ([#&#8203;384](https://github.com/dtolnay/thiserror/issues/384)) ### [`v2.0.2`](https://github.com/dtolnay/thiserror/releases/tag/2.0.2) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.1...2.0.2) - Fix hang on invalid input inside #\[error(...)] attribute ([#&#8203;382](https://github.com/dtolnay/thiserror/issues/382)) ### [`v2.0.1`](https://github.com/dtolnay/thiserror/releases/tag/2.0.1) [Compare Source](https://github.com/dtolnay/thiserror/compare/2.0.0...2.0.1) - Support errors that contain a dynamically sized final field ([#&#8203;375](https://github.com/dtolnay/thiserror/issues/375)) - Improve inference of trait bounds for fields that are interpolated multiple times in an error message ([#&#8203;377](https://github.com/dtolnay/thiserror/issues/377)) ### [`v2.0.0`](https://github.com/dtolnay/thiserror/releases/tag/2.0.0) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.69...2.0.0) #### Breaking changes - Referencing keyword-named fields by a raw identifier like `{r#type}` inside a format string is no longer accepted; simply use the unraw name like `{type}` ([#&#8203;347](https://github.com/dtolnay/thiserror/issues/347)) This aligns thiserror with the standard library's formatting macros, which gained support for implicit argument capture later than the release of this feature in thiserror 1.x. ```rust #[derive(Error, Debug)] #[error("... {type} ...")] // Before: {r#type} pub struct Error { pub r#type: Type, } ``` - Trait bounds are no longer inferred on fields whose value is shadowed by an explicit named argument in a format message ([#&#8203;345](https://github.com/dtolnay/thiserror/issues/345)) ```rust // Before: impl<T: Octal> Display for Error<T> // After: impl<T> Display for Error<T> #[derive(Error, Debug)] #[error("{thing:o}", thing = "...")] pub struct Error<T> { thing: T, } ``` - Tuple structs and tuple variants can no longer use numerical `{0}` `{1}` access at the same time as supplying extra positional arguments for a format message, as this makes it ambiguous whether the number refers to a tuple field vs a different positional arg ([#&#8203;354](https://github.com/dtolnay/thiserror/issues/354)) ```rust #[derive(Error, Debug)] #[error("ambiguous: {0} {}", $N)] // ^^^ Not allowed, use #[error("... {0} {n}", n = $N)] pub struct TupleError(i32); ``` - Code containing invocations of thiserror's `derive(Error)` must now have a direct dependency on the `thiserror` crate regardless of the error data structure's contents ([#&#8203;368](https://github.com/dtolnay/thiserror/issues/368), [#&#8203;369](https://github.com/dtolnay/thiserror/issues/369), [#&#8203;370](https://github.com/dtolnay/thiserror/issues/370), [#&#8203;372](https://github.com/dtolnay/thiserror/issues/372)) #### Features - Support disabling thiserror's standard library dependency by disabling the default "std" Cargo feature: `thiserror = { version = "2", default-features = false }` ([#&#8203;373](https://github.com/dtolnay/thiserror/issues/373)) - Support using `r#source` as field name to opt out of a field named "source" being treated as an error's `Error::source()` ([#&#8203;350](https://github.com/dtolnay/thiserror/issues/350)) ```rust #[derive(Error, Debug)] #[error("{source} ==> {destination}")] pub struct Error { r#source: char, destination: char, } let error = Error { source: 'S', destination: 'D' }; ``` - Infinite recursion in a generated Display impl now produces an `unconditional_recursion` warning ([#&#8203;359](https://github.com/dtolnay/thiserror/issues/359)) ```rust #[derive(Error, Debug)] #[error("??? {self}")] pub struct Error; ``` - A new attribute `#[error(fmt = path::to::myfmt)]` can be used to write formatting logic for an enum variant out-of-line ([#&#8203;367](https://github.com/dtolnay/thiserror/issues/367)) ```rust #[derive(Error, Debug)] pub enum Error { #[error(fmt = demo_fmt)] Demo { code: u16, message: Option<String> }, } fn demo_fmt(code: &u16, message: &Option<String>, formatter: &mut fmt::Formatter) -> fmt::Result { write!(formatter, "{code}")?; if let Some(msg) = message { write!(formatter, " - {msg}")?; } Ok(()) } ``` - Enums with an enum-level format message are now able to have individual variants that are `transparent` to supersede the enum-level message ([#&#8203;366](https://github.com/dtolnay/thiserror/issues/366)) ```rust #[derive(Error, Debug)] #[error("my error {0}")] pub enum Error { Json(#[from] serde_json::Error), Yaml(#[from] serde_yaml::Error), #[error(transparent)] Other(#[from] anyhow::Error), } ``` ### [`v1.0.69`](https://github.com/dtolnay/thiserror/releases/tag/1.0.69) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.68...1.0.69) - Backport [2.0.2](https://github.com/dtolnay/thiserror/releases/tag/2.0.2) fixes ### [`v1.0.68`](https://github.com/dtolnay/thiserror/releases/tag/1.0.68) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.67...1.0.68) - Handle incomplete expressions more robustly in format arguments, such as while code is being typed ([#&#8203;341](https://github.com/dtolnay/thiserror/issues/341), [#&#8203;344](https://github.com/dtolnay/thiserror/issues/344)) ### [`v1.0.67`](https://github.com/dtolnay/thiserror/releases/tag/1.0.67) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.66...1.0.67) - Improve expression syntax support inside format arguments ([#&#8203;335](https://github.com/dtolnay/thiserror/issues/335), [#&#8203;337](https://github.com/dtolnay/thiserror/issues/337), [#&#8203;339](https://github.com/dtolnay/thiserror/issues/339), [#&#8203;340](https://github.com/dtolnay/thiserror/issues/340)) ### [`v1.0.66`](https://github.com/dtolnay/thiserror/releases/tag/1.0.66) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.65...1.0.66) - Improve compile error on malformed format attribute ([#&#8203;327](https://github.com/dtolnay/thiserror/issues/327)) ### [`v1.0.65`](https://github.com/dtolnay/thiserror/releases/tag/1.0.65) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.64...1.0.65) - Ensure OUT_DIR is left with deterministic contents after build script execution ([#&#8203;325](https://github.com/dtolnay/thiserror/issues/325)) ### [`v1.0.64`](https://github.com/dtolnay/thiserror/releases/tag/1.0.64) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.63...1.0.64) - Exclude derived impls from coverage instrumentation ([#&#8203;322](https://github.com/dtolnay/thiserror/issues/322), thanks [@&#8203;oxalica](https://github.com/oxalica)) ### [`v1.0.63`](https://github.com/dtolnay/thiserror/releases/tag/1.0.63) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.62...1.0.63) - Documentation improvements ### [`v1.0.62`](https://github.com/dtolnay/thiserror/releases/tag/1.0.62) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62) - Support referring to nested tuple struct fields inside `#[error("…", …)]` attribute ([#&#8203;309](https://github.com/dtolnay/thiserror/issues/309)) ### [`v1.0.61`](https://github.com/dtolnay/thiserror/releases/tag/1.0.61) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.60...1.0.61) - Use `core::fmt` and `core::panic` to facilitate `error_in_core` support ([#&#8203;299](https://github.com/dtolnay/thiserror/issues/299), thanks [@&#8203;jordens](https://github.com/jordens)) ### [`v1.0.60`](https://github.com/dtolnay/thiserror/releases/tag/1.0.60) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.59...1.0.60) - Resolve unexpected_cfgs warning ([#&#8203;298](https://github.com/dtolnay/thiserror/issues/298)) ### [`v1.0.59`](https://github.com/dtolnay/thiserror/releases/tag/1.0.59) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59) - Unblock testing of rustc `debug-fmt-detail` option ([#&#8203;297](https://github.com/dtolnay/thiserror/issues/297)) ### [`v1.0.58`](https://github.com/dtolnay/thiserror/releases/tag/1.0.58) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.57...1.0.58) - Make backtrace support available when using -Dwarnings ([#&#8203;292](https://github.com/dtolnay/thiserror/issues/292)) ### [`v1.0.57`](https://github.com/dtolnay/thiserror/releases/tag/1.0.57) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.56...1.0.57) - Generate more efficient `Display` impl for error message which do not contain any interpolated value ([#&#8203;286](https://github.com/dtolnay/thiserror/issues/286), thanks [@&#8203;nyurik](https://github.com/nyurik)) ### [`v1.0.56`](https://github.com/dtolnay/thiserror/releases/tag/1.0.56) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.55...1.0.56) - Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache ### [`v1.0.55`](https://github.com/dtolnay/thiserror/releases/tag/1.0.55) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.54...1.0.55) - Work around improperly cached build script result by sccache – second attempt ([#&#8203;280](https://github.com/dtolnay/thiserror/issues/280)) ### [`v1.0.54`](https://github.com/dtolnay/thiserror/releases/tag/1.0.54) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.53...1.0.54) - Work around improperly cached build script result by sccache – first attempt ([#&#8203;279](https://github.com/dtolnay/thiserror/issues/279)) ### [`v1.0.53`](https://github.com/dtolnay/thiserror/releases/tag/1.0.53) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.52...1.0.53) - Reduce spurious rebuilds under RustRover IDE when using a nightly toolchain ([#&#8203;270](https://github.com/dtolnay/thiserror/issues/270)) ### [`v1.0.52`](https://github.com/dtolnay/thiserror/releases/tag/1.0.52) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.51...1.0.52) - Fix interaction with RUSTC_BOOTSTRAP ([#&#8203;269](https://github.com/dtolnay/thiserror/issues/269)) ### [`v1.0.51`](https://github.com/dtolnay/thiserror/releases/tag/1.0.51) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.50...1.0.51) - Improve diagnostics when an invalid attribute previously caused thiserror to generate no `Error` impl ([#&#8203;266](https://github.com/dtolnay/thiserror/issues/266)) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.42.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.42.0): Tokio v1.42.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.41.1...tokio-1.42.0) ### 1.42.0 (Dec 3rd, 2024) ##### Added - io: add `AsyncFd::{try_io, try_io_mut}` ([#&#8203;6967]) ##### Fixed - io: avoid `ptr->ref->ptr` roundtrip in RegistrationSet ([#&#8203;6929]) - runtime: do not defer `yield_now` inside `block_in_place` ([#&#8203;6999]) ##### Changes - io: simplify io readiness logic ([#&#8203;6966]) ##### Documented - net: fix docs for `tokio::net::unix::{pid_t, gid_t, uid_t}` ([#&#8203;6791]) - time: fix a typo in `Instant` docs ([#&#8203;6982]) [#&#8203;6791]: https://github.com/tokio-rs/tokio/pull/6791 [#&#8203;6929]: https://github.com/tokio-rs/tokio/pull/6929 [#&#8203;6966]: https://github.com/tokio-rs/tokio/pull/6966 [#&#8203;6967]: https://github.com/tokio-rs/tokio/pull/6967 [#&#8203;6982]: https://github.com/tokio-rs/tokio/pull/6982 [#&#8203;6999]: https://github.com/tokio-rs/tokio/pull/6999 ### [`v1.41.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.41.1): Tokio v1.41.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.41.0...tokio-1.41.1) ### 1.41.1 (Nov 7th, 2024) ##### Fixed - metrics: fix bug with wrong number of buckets for the histogram ([#&#8203;6957]) - net: display `net` requirement for `net::UdpSocket` in docs ([#&#8203;6938]) - net: fix typo in `TcpStream` internal comment ([#&#8203;6944]) [#&#8203;6957]: https://github.com/tokio-rs/tokio/pull/6957 [#&#8203;6938]: https://github.com/tokio-rs/tokio/pull/6938 [#&#8203;6944]: https://github.com/tokio-rs/tokio/pull/6944 ### [`v1.41.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.41.0): Tokio v1.41.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.41.0) ### 1.41.0 (Oct 22th, 2024) ##### Added - metrics: stabilize `global_queue_depth` ([#&#8203;6854], [#&#8203;6918]) - net: add conversions for unix `SocketAddr` ([#&#8203;6868]) - sync: add `watch::Sender::sender_count` ([#&#8203;6836]) - sync: add `mpsc::Receiver::blocking_recv_many` ([#&#8203;6867]) - task: stabilize `Id` apis ([#&#8203;6793], [#&#8203;6891]) ##### Added (unstable) - metrics: add H2 Histogram option to improve histogram granularity ([#&#8203;6897]) - metrics: rename some histogram apis ([#&#8203;6924]) - runtime: add `LocalRuntime` ([#&#8203;6808]) ##### Changed - runtime: box futures larger than 16k on release mode ([#&#8203;6826]) - sync: add `#[must_use]` to `Notified` ([#&#8203;6828]) - sync: make `watch` cooperative ([#&#8203;6846]) - sync: make `broadcast::Receiver` cooperative ([#&#8203;6870]) - task: add task size to tracing instrumentation ([#&#8203;6881]) - wasm: enable `cfg_fs` for `wasi` target ([#&#8203;6822]) ##### Fixed - net: fix regression of abstract socket path in unix socket ([#&#8203;6838]) ##### Documented - io: recommend `OwnedFd` with `AsyncFd` ([#&#8203;6821]) - io: document cancel safety of `AsyncFd` methods ([#&#8203;6890]) - macros: render more comprehensible documentation for `join` and `try_join` ([#&#8203;6814], [#&#8203;6841]) - net: fix swapped examples for `TcpSocket::set_nodelay` and `TcpSocket::nodelay` ([#&#8203;6840]) - sync: document runtime compatibility ([#&#8203;6833]) [#&#8203;6793]: https://github.com/tokio-rs/tokio/pull/6793 [#&#8203;6808]: https://github.com/tokio-rs/tokio/pull/6808 [#&#8203;6810]: https://github.com/tokio-rs/tokio/pull/6810 [#&#8203;6814]: https://github.com/tokio-rs/tokio/pull/6814 [#&#8203;6821]: https://github.com/tokio-rs/tokio/pull/6821 [#&#8203;6822]: https://github.com/tokio-rs/tokio/pull/6822 [#&#8203;6826]: https://github.com/tokio-rs/tokio/pull/6826 [#&#8203;6828]: https://github.com/tokio-rs/tokio/pull/6828 [#&#8203;6833]: https://github.com/tokio-rs/tokio/pull/6833 [#&#8203;6836]: https://github.com/tokio-rs/tokio/pull/6836 [#&#8203;6838]: https://github.com/tokio-rs/tokio/pull/6838 [#&#8203;6840]: https://github.com/tokio-rs/tokio/pull/6840 [#&#8203;6841]: https://github.com/tokio-rs/tokio/pull/6841 [#&#8203;6846]: https://github.com/tokio-rs/tokio/pull/6846 [#&#8203;6854]: https://github.com/tokio-rs/tokio/pull/6854 [#&#8203;6867]: https://github.com/tokio-rs/tokio/pull/6867 [#&#8203;6868]: https://github.com/tokio-rs/tokio/pull/6868 [#&#8203;6870]: https://github.com/tokio-rs/tokio/pull/6870 [#&#8203;6881]: https://github.com/tokio-rs/tokio/pull/6881 [#&#8203;6890]: https://github.com/tokio-rs/tokio/pull/6890 [#&#8203;6891]: https://github.com/tokio-rs/tokio/pull/6891 [#&#8203;6897]: https://github.com/tokio-rs/tokio/pull/6897 [#&#8203;6918]: https://github.com/tokio-rs/tokio/pull/6918 [#&#8203;6924]: https://github.com/tokio-rs/tokio/pull/6924 ### [`v1.40.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.40.0): Tokio v1.40.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.3...tokio-1.40.0) ### 1.40.0 (August 30th, 2024) ##### Added - io: add `util::SimplexStream` ([#&#8203;6589]) - process: stabilize `Command::process_group` ([#&#8203;6731]) - sync: add `{TrySendError,SendTimeoutError}::into_inner` ([#&#8203;6755]) - task: add `JoinSet::join_all` ([#&#8203;6784]) ##### Added (unstable) - runtime: add `Builder::{on_task_spawn, on_task_terminate}` ([#&#8203;6742]) ##### Changed - io: use vectored io for `write_all_buf` when possible ([#&#8203;6724]) - runtime: prevent niche-optimization to avoid triggering miri ([#&#8203;6744]) - sync: mark mpsc types as `UnwindSafe` ([#&#8203;6783]) - sync,time: make `Sleep` and `BatchSemaphore` instrumentation explicit roots ([#&#8203;6727]) - task: use `NonZeroU64` for `task::Id` ([#&#8203;6733]) - task: include panic message when printing `JoinError` ([#&#8203;6753]) - task: add `#[must_use]` to `JoinHandle::abort_handle` ([#&#8203;6762]) - time: eliminate timer wheel allocations ([#&#8203;6779]) ##### Documented - docs: clarify that `[build]` section doesn't go in Cargo.toml ([#&#8203;6728]) - io: clarify zero remaining capacity case ([#&#8203;6790]) - macros: improve documentation for `select!` ([#&#8203;6774]) - sync: document mpsc channel allocation behavior ([#&#8203;6773]) [#&#8203;6589]: https://github.com/tokio-rs/tokio/pull/6589 [#&#8203;6724]: https://github.com/tokio-rs/tokio/pull/6724 [#&#8203;6727]: https://github.com/tokio-rs/tokio/pull/6727 [#&#8203;6728]: https://github.com/tokio-rs/tokio/pull/6728 [#&#8203;6731]: https://github.com/tokio-rs/tokio/pull/6731 [#&#8203;6733]: https://github.com/tokio-rs/tokio/pull/6733 [#&#8203;6742]: https://github.com/tokio-rs/tokio/pull/6742 [#&#8203;6744]: https://github.com/tokio-rs/tokio/pull/6744 [#&#8203;6753]: https://github.com/tokio-rs/tokio/pull/6753 [#&#8203;6755]: https://github.com/tokio-rs/tokio/pull/6755 [#&#8203;6762]: https://github.com/tokio-rs/tokio/pull/6762 [#&#8203;6773]: https://github.com/tokio-rs/tokio/pull/6773 [#&#8203;6774]: https://github.com/tokio-rs/tokio/pull/6774 [#&#8203;6779]: https://github.com/tokio-rs/tokio/pull/6779 [#&#8203;6783]: https://github.com/tokio-rs/tokio/pull/6783 [#&#8203;6784]: https://github.com/tokio-rs/tokio/pull/6784 [#&#8203;6790]: https://github.com/tokio-rs/tokio/pull/6790 ### [`v1.39.3`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.3): Tokio v1.39.3 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.2...tokio-1.39.3) ### 1.39.3 (August 17th, 2024) This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. ([#&#8203;6772]) [#&#8203;6772]: https://github.com/tokio-rs/tokio/pull/6772 ### [`v1.39.2`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.2): Tokio v1.39.2 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.1...tokio-1.39.2) ### 1.39.2 (July 27th, 2024) This release fixes a regression where the `select!` macro stopped accepting expressions that make use of temporary lifetime extension. ([#&#8203;6722]) [#&#8203;6722]: https://github.com/tokio-rs/tokio/pull/6722 ### [`v1.39.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.1): Tokio v1.39.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.39.0...tokio-1.39.1) ### 1.39.1 (July 23rd, 2024) This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. ([#&#8203;6715]) [#&#8203;6715]: https://github.com/tokio-rs/tokio/pull/6715 ### [`v1.39.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.39.0): Tokio v1.39.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.38.1...tokio-1.39.0) ### 1.39.0 (July 23rd, 2024) - This release bumps the MSRV to 1.70. ([#&#8203;6645]) - This release upgrades to mio v1. ([#&#8203;6635]) - This release upgrades to windows-sys v0.52 ([#&#8203;6154]) ##### Added - io: implement `AsyncSeek` for `Empty` ([#&#8203;6663]) - metrics: stabilize `num_alive_tasks` ([#&#8203;6619], [#&#8203;6667]) - process: add `Command::as_std_mut` ([#&#8203;6608]) - sync: add `watch::Sender::same_channel` ([#&#8203;6637]) - sync: add `{Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count}` ([#&#8203;6661]) - sync: implement `Default` for `watch::Sender` ([#&#8203;6626]) - task: implement `Clone` for `AbortHandle` ([#&#8203;6621]) - task: stabilize `consume_budget` ([#&#8203;6622]) ##### Changed - io: improve panic message of `ReadBuf::put_slice()` ([#&#8203;6629]) - io: read during write in `copy_bidirectional` and `copy` ([#&#8203;6532]) - runtime: replace `num_cpus` with `available_parallelism` ([#&#8203;6709]) - task: avoid stack overflow when passing large future to `block_on` ([#&#8203;6692]) - time: avoid traversing entries in the time wheel twice ([#&#8203;6584]) - time: support `IntoFuture` with `timeout` ([#&#8203;6666]) - macros: support `IntoFuture` with `join!` and `select!` ([#&#8203;6710]) ##### Fixed - docs: fix docsrs builds with the fs feature enabled ([#&#8203;6585]) - io: only use short-read optimization on known-to-be-compatible platforms ([#&#8203;6668]) - time: fix overflow panic when using large durations with `Interval` ([#&#8203;6612]) ##### Added (unstable) - macros: allow `unhandled_panic` behavior for `#[tokio::main]` and `#[tokio::test]` ([#&#8203;6593]) - metrics: add `spawned_tasks_count` ([#&#8203;6114]) - metrics: add `worker_park_unpark_count` ([#&#8203;6696]) - metrics: add worker thread id ([#&#8203;6695]) ##### Documented - io: update `tokio::io::stdout` documentation ([#&#8203;6674]) - macros: typo fix in `join.rs` and `try_join.rs` ([#&#8203;6641]) - runtime: fix typo in `unhandled_panic` ([#&#8203;6660]) - task: document behavior of `JoinSet::try_join_next` when all tasks are running ([#&#8203;6671]) [#&#8203;6114]: https://github.com/tokio-rs/tokio/pull/6114 [#&#8203;6154]: https://github.com/tokio-rs/tokio/pull/6154 [#&#8203;6532]: https://github.com/tokio-rs/tokio/pull/6532 [#&#8203;6584]: https://github.com/tokio-rs/tokio/pull/6584 [#&#8203;6585]: https://github.com/tokio-rs/tokio/pull/6585 [#&#8203;6593]: https://github.com/tokio-rs/tokio/pull/6593 [#&#8203;6608]: https://github.com/tokio-rs/tokio/pull/6608 [#&#8203;6612]: https://github.com/tokio-rs/tokio/pull/6612 [#&#8203;6619]: https://github.com/tokio-rs/tokio/pull/6619 [#&#8203;6621]: https://github.com/tokio-rs/tokio/pull/6621 [#&#8203;6622]: https://github.com/tokio-rs/tokio/pull/6622 [#&#8203;6626]: https://github.com/tokio-rs/tokio/pull/6626 [#&#8203;6629]: https://github.com/tokio-rs/tokio/pull/6629 [#&#8203;6635]: https://github.com/tokio-rs/tokio/pull/6635 [#&#8203;6637]: https://github.com/tokio-rs/tokio/pull/6637 [#&#8203;6641]: https://github.com/tokio-rs/tokio/pull/6641 [#&#8203;6645]: https://github.com/tokio-rs/tokio/pull/6645 [#&#8203;6660]: https://github.com/tokio-rs/tokio/pull/6660 [#&#8203;6661]: https://github.com/tokio-rs/tokio/pull/6661 [#&#8203;6663]: https://github.com/tokio-rs/tokio/pull/6663 [#&#8203;6666]: https://github.com/tokio-rs/tokio/pull/6666 [#&#8203;6667]: https://github.com/tokio-rs/tokio/pull/6667 [#&#8203;6668]: https://github.com/tokio-rs/tokio/pull/6668 [#&#8203;6671]: https://github.com/tokio-rs/tokio/pull/6671 [#&#8203;6674]: https://github.com/tokio-rs/tokio/pull/6674 [#&#8203;6692]: https://github.com/tokio-rs/tokio/pull/6692 [#&#8203;6695]: https://github.com/tokio-rs/tokio/pull/6695 [#&#8203;6696]: https://github.com/tokio-rs/tokio/pull/6696 [#&#8203;6709]: https://github.com/tokio-rs/tokio/pull/6709 [#&#8203;6710]: https://github.com/tokio-rs/tokio/pull/6710 ### [`v1.38.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.38.1): Tokio v1.38.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1) ### 1.38.1 (July 16th, 2024) This release fixes the bug identified as ([#&#8203;6682]), which caused timers not to fire when they should. ##### Fixed - time: update `wake_up` while holding all the locks of sharded time wheels ([#&#8203;6683]) [#&#8203;6682]: https://github.com/tokio-rs/tokio/pull/6682 [#&#8203;6683]: https://github.com/tokio-rs/tokio/pull/6683 ### [`v1.38.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.38.0): Tokio v1.38.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.0) This release marks the beginning of stabilization for runtime metrics. It stabilizes `RuntimeMetrics::worker_count`. Future releases will continue to stabilize more metrics. ##### Added - fs: add `File::create_new` ([#&#8203;6573]) - io: add `copy_bidirectional_with_sizes` ([#&#8203;6500]) - io: implement `AsyncBufRead` for `Join` ([#&#8203;6449]) - net: add Apple visionOS support ([#&#8203;6465]) - net: implement `Clone` for `NamedPipeInfo` ([#&#8203;6586]) - net: support QNX OS ([#&#8203;6421]) - sync: add `Notify::notify_last` ([#&#8203;6520]) - sync: add `mpsc::Receiver::{capacity,max_capacity}` ([#&#8203;6511]) - sync: add `split` method to the semaphore permit ([#&#8203;6472], [#&#8203;6478]) - task: add `tokio::task::join_set::Builder::spawn_blocking` ([#&#8203;6578]) - wasm: support rt-multi-thread with wasm32-wasi-preview1-threads ([#&#8203;6510]) ##### Changed - macros: make `#[tokio::test]` append `#[test]` at the end of the attribute list ([#&#8203;6497]) - metrics: fix `blocking_threads` count ([#&#8203;6551]) - metrics: stabilize `RuntimeMetrics::worker_count` ([#&#8203;6556]) - runtime: move task out of the `lifo_slot` in `block_in_place` ([#&#8203;6596]) - runtime: panic if `global_queue_interval` is zero ([#&#8203;6445]) - sync: always drop message in destructor for oneshot receiver ([#&#8203;6558]) - sync: instrument `Semaphore` for task dumps ([#&#8203;6499]) - sync: use FIFO ordering when waking batches of wakers ([#&#8203;6521]) - task: make `LocalKey::get` work with Clone types ([#&#8203;6433]) - tests: update nix and mio-aio dev-dependencies ([#&#8203;6552]) - time: clean up implementation ([#&#8203;6517]) - time: lazily init timers on first poll ([#&#8203;6512]) - time: remove the `true_when` field in `TimerShared` ([#&#8203;6563]) - time: use sharding for timer implementation ([#&#8203;6534]) ##### Fixed - taskdump: allow building taskdump docs on non-unix machines ([#&#8203;6564]) - time: check for overflow in `Interval::poll_tick` ([#&#8203;6487]) - sync: fix incorrect `is_empty` on mpsc block boundaries ([#&#8203;6603]) ##### Documented - fs: rewrite file system docs ([#&#8203;6467]) - io: fix `stdin` documentation ([#&#8203;6581]) - io: fix obsolete reference in `ReadHalf::unsplit()` documentation ([#&#8203;6498]) - macros: render more comprehensible documentation for `select!` ([#&#8203;6468]) - net: add missing types to module docs ([#&#8203;6482]) - net: fix misleading `NamedPipeServer` example ([#&#8203;6590]) - sync: add examples for `SemaphorePermit`, `OwnedSemaphorePermit` ([#&#8203;6477]) - sync: document that `Barrier::wait` is not cancel safe ([#&#8203;6494]) - sync: explain relation between `watch::Sender::{subscribe,closed}` ([#&#8203;6490]) - task: clarify that you can't abort `spawn_blocking` tasks ([#&#8203;6571]) - task: fix a typo in doc of `LocalSet::run_until` ([#&#8203;6599]) - time: fix test-util requirement for pause and resume in docs ([#&#8203;6503]) [#&#8203;6421]: https://github.com/tokio-rs/tokio/pull/6421 [#&#8203;6433]: https://github.com/tokio-rs/tokio/pull/6433 [#&#8203;6445]: https://github.com/tokio-rs/tokio/pull/6445 [#&#8203;6449]: https://github.com/tokio-rs/tokio/pull/6449 [#&#8203;6465]: https://github.com/tokio-rs/tokio/pull/6465 [#&#8203;6467]: https://github.com/tokio-rs/tokio/pull/6467 [#&#8203;6468]: https://github.com/tokio-rs/tokio/pull/6468 [#&#8203;6472]: https://github.com/tokio-rs/tokio/pull/6472 [#&#8203;6477]: https://github.com/tokio-rs/tokio/pull/6477 [#&#8203;6478]: https://github.com/tokio-rs/tokio/pull/6478 [#&#8203;6482]: https://github.com/tokio-rs/tokio/pull/6482 [#&#8203;6487]: https://github.com/tokio-rs/tokio/pull/6487 [#&#8203;6490]: https://github.com/tokio-rs/tokio/pull/6490 [#&#8203;6494]: https://github.com/tokio-rs/tokio/pull/6494 [#&#8203;6497]: https://github.com/tokio-rs/tokio/pull/6497 [#&#8203;6498]: https://github.com/tokio-rs/tokio/pull/6498 [#&#8203;6499]: https://github.com/tokio-rs/tokio/pull/6499 [#&#8203;6500]: https://github.com/tokio-rs/tokio/pull/6500 [#&#8203;6503]: https://github.com/tokio-rs/tokio/pull/6503 [#&#8203;6510]: https://github.com/tokio-rs/tokio/pull/6510 [#&#8203;6511]: https://github.com/tokio-rs/tokio/pull/6511 [#&#8203;6512]: https://github.com/tokio-rs/tokio/pull/6512 [#&#8203;6517]: https://github.com/tokio-rs/tokio/pull/6517 [#&#8203;6520]: https://github.com/tokio-rs/tokio/pull/6520 [#&#8203;6521]: https://github.com/tokio-rs/tokio/pull/6521 [#&#8203;6534]: https://github.com/tokio-rs/tokio/pull/6534 [#&#8203;6551]: https://github.com/tokio-rs/tokio/pull/6551 [#&#8203;6552]: https://github.com/tokio-rs/tokio/pull/6552 [#&#8203;6556]: https://github.com/tokio-rs/tokio/pull/6556 [#&#8203;6558]: https://github.com/tokio-rs/tokio/pull/6558 [#&#8203;6563]: https://github.com/tokio-rs/tokio/pull/6563 [#&#8203;6564]: https://github.com/tokio-rs/tokio/pull/6564 [#&#8203;6571]: https://github.com/tokio-rs/tokio/pull/6571 [#&#8203;6573]: https://github.com/tokio-rs/tokio/pull/6573 [#&#8203;6578]: https://github.com/tokio-rs/tokio/pull/6578 [#&#8203;6581]: https://github.com/tokio-rs/tokio/pull/6581 [#&#8203;6586]: https://github.com/tokio-rs/tokio/pull/6586 [#&#8203;6590]: https://github.com/tokio-rs/tokio/pull/6590 [#&#8203;6596]: https://github.com/tokio-rs/tokio/pull/6596 [#&#8203;6599]: https://github.com/tokio-rs/tokio/pull/6599 [#&#8203;6603]: https://github.com/tokio-rs/tokio/pull/6603 ### [`v1.37.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.37.0): Tokio v1.37.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.36.0...tokio-1.37.0) ### 1.37.0 (March 28th, 2024) ##### Added - fs: add `set_max_buf_size` to `tokio::fs::File` ([#&#8203;6411]) - io: add `try_new` and `try_with_interest` to `AsyncFd` ([#&#8203;6345]) - sync: add `forget_permits` method to semaphore ([#&#8203;6331]) - sync: add `is_closed`, `is_empty`, and `len` to mpsc receivers ([#&#8203;6348]) - sync: add a `rwlock()` method to owned `RwLock` guards ([#&#8203;6418]) - sync: expose strong and weak counts of mpsc sender handles ([#&#8203;6405]) - sync: implement `Clone` for `watch::Sender` ([#&#8203;6388]) - task: add `TaskLocalFuture::take_value` ([#&#8203;6340]) - task: implement `FromIterator` for `JoinSet` ([#&#8203;6300]) ##### Changed - io: make `io::split` use a mutex instead of a spinlock ([#&#8203;6403]) ##### Fixed - docs: fix docsrs build without net feature ([#&#8203;6360]) - macros: allow select with only else branch ([#&#8203;6339]) - runtime: fix leaking registration entries when os registration fails ([#&#8203;6329]) ##### Documented - io: document cancel safety of `AsyncBufReadExt::fill_buf` ([#&#8203;6431]) - io: document cancel safety of `AsyncReadExt`'s primitive read functions ([#&#8203;6337]) - runtime: add doc link from `Runtime` to `#[tokio::main]` ([#&#8203;6366]) - runtime: make the `enter` example deterministic ([#&#8203;6351]) - sync: add Semaphore example for limiting the number of outgoing requests ([#&#8203;6419]) - sync: fix missing period in broadcast docs ([#&#8203;6377]) - sync: mark `mpsc::Sender::downgrade` with `#[must_use]` ([#&#8203;6326]) - sync: reorder `const_new` before `new_with` ([#&#8203;6392]) - sync: update watch channel docs ([#&#8203;6395]) - task: fix documentation links ([#&#8203;6336]) ##### Changed (unstable) - runtime: include task `Id` in taskdumps ([#&#8203;6328]) - runtime: panic if `unhandled_panic` is enabled when not supported ([#&#8203;6410]) [#&#8203;6300]: https://github.com/tokio-rs/tokio/pull/6300 [#&#8203;6326]: https://github.com/tokio-rs/tokio/pull/6326 [#&#8203;6328]: https://github.com/tokio-rs/tokio/pull/6328 [#&#8203;6329]: https://github.com/tokio-rs/tokio/pull/6329 [#&#8203;6331]: https://github.com/tokio-rs/tokio/pull/6331 [#&#8203;6336]: https://github.com/tokio-rs/tokio/pull/6336 [#&#8203;6337]: https://github.com/tokio-rs/tokio/pull/6337 [#&#8203;6339]: https://github.com/tokio-rs/tokio/pull/6339 [#&#8203;6340]: https://github.com/tokio-rs/tokio/pull/6340 [#&#8203;6345]: https://github.com/tokio-rs/tokio/pull/6345 [#&#8203;6348]: https://github.com/tokio-rs/tokio/pull/6348 [#&#8203;6351]: https://github.com/tokio-rs/tokio/pull/6351 [#&#8203;6360]: https://github.com/tokio-rs/tokio/pull/6360 [#&#8203;6366]: https://github.com/tokio-rs/tokio/pull/6366 [#&#8203;6377]: https://github.com/tokio-rs/tokio/pull/6377 [#&#8203;6388]: https://github.com/tokio-rs/tokio/pull/6388 [#&#8203;6392]: https://github.com/tokio-rs/tokio/pull/6392 [#&#8203;6395]: https://github.com/tokio-rs/tokio/pull/6395 [#&#8203;6403]: https://github.com/tokio-rs/tokio/pull/6403 [#&#8203;6405]: https://github.com/tokio-rs/tokio/pull/6405 [#&#8203;6410]: https://github.com/tokio-rs/tokio/pull/6410 [#&#8203;6411]: https://github.com/tokio-rs/tokio/pull/6411 [#&#8203;6418]: https://github.com/tokio-rs/tokio/pull/6418 [#&#8203;6419]: https://github.com/tokio-rs/tokio/pull/6419 [#&#8203;6431]: https://github.com/tokio-rs/tokio/pull/6431 ### [`v1.36.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.36.0): Tokio v1.36.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.35.1...tokio-1.36.0) ### 1.36.0 (February 2nd, 2024) ##### Added - io: add `tokio::io::Join` ([#&#8203;6220]) - io: implement `AsyncWrite` for `Empty` ([#&#8203;6235]) - net: add support for anonymous unix pipes ([#&#8203;6127]) - net: add `UnixSocket` ([#&#8203;6290]) - net: expose keepalive option on `TcpSocket` ([#&#8203;6311]) - sync: add `{Receiver,UnboundedReceiver}::poll_recv_many` ([#&#8203;6236]) - sync: add `Sender::{try_,}reserve_many` ([#&#8203;6205]) - sync: add `watch::Receiver::mark_unchanged` ([#&#8203;6252]) - task: add `JoinSet::try_join_next` ([#&#8203;6280]) ##### Changed - io: make `copy` cooperative ([#&#8203;6265]) - io: make `repeat` and `sink` cooperative ([#&#8203;6254]) - io: simplify check for empty slice ([#&#8203;6293]) - process: use pidfd on Linux when available ([#&#8203;6152]) - sync: use AtomicBool in broadcast channel future ([#&#8203;6298]) ##### Documented - io: clarify `clear_ready` docs ([#&#8203;6304]) - net: document that `*Fd` traits on `TcpSocket` are unix-only ([#&#8203;6294]) - sync: document FIFO behavior of `tokio::sync::Mutex` ([#&#8203;6279]) - chore: typographic improvements ([#&#8203;6262]) - runtime: remove obsolete comment ([#&#8203;6303]) - task: fix typo ([#&#8203;6261]) [#&#8203;6220]: https://github.com/tokio-rs/tokio/pull/6220 [#&#8203;6235]: https://github.com/tokio-rs/tokio/pull/6235 [#&#8203;6127]: https://github.com/tokio-rs/tokio/pull/6127 [#&#8203;6290]: https://github.com/tokio-rs/tokio/pull/6290 [#&#8203;6311]: https://github.com/tokio-rs/tokio/pull/6311 [#&#8203;6236]: https://github.com/tokio-rs/tokio/pull/6236 [#&#8203;6205]: https://github.com/tokio-rs/tokio/pull/6205 [#&#8203;6252]: https://github.com/tokio-rs/tokio/pull/6252 [#&#8203;6280]: https://github.com/tokio-rs/tokio/pull/6280 [#&#8203;6265]: https://github.com/tokio-rs/tokio/pull/6265 [#&#8203;6254]: https://github.com/tokio-rs/tokio/pull/6254 [#&#8203;6293]: https://github.com/tokio-rs/tokio/pull/6293 [#&#8203;6238]: https://github.com/tokio-rs/tokio/pull/6238 [#&#8203;6152]: https://github.com/tokio-rs/tokio/pull/6152 [#&#8203;6298]: https://github.com/tokio-rs/tokio/pull/6298 [#&#8203;6262]: https://github.com/tokio-rs/tokio/pull/6262 [#&#8203;6303]: https://github.com/tokio-rs/tokio/pull/6303 [#&#8203;6261]: https://github.com/tokio-rs/tokio/pull/6261 [#&#8203;6304]: https://github.com/tokio-rs/tokio/pull/6304 [#&#8203;6294]: https://github.com/tokio-rs/tokio/pull/6294 [#&#8203;6279]: https://github.com/tokio-rs/tokio/pull/6279 ### [`v1.35.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.35.1): Tokio v1.35.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.35.0...tokio-1.35.1) ### 1.35.1 (December 19, 2023) This is a forward part of a change that was backported to 1.25.3. ##### Fixed - io: add budgeting to `tokio::runtime::io::registration::async_io` ([#&#8203;6221]) [#&#8203;6221]: https://github.com/tokio-rs/tokio/pull/6221 ### [`v1.35.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.35.0): Tokio v1.35.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.34.0...tokio-1.35.0) ### 1.35.0 (December 8th, 2023) ##### Added - net: add Apple watchOS support ([#&#8203;6176]) ##### Changed - io: drop the `Sized` requirements from `AsyncReadExt.read_buf` ([#&#8203;6169]) - runtime: make `Runtime` unwind safe ([#&#8203;6189]) - runtime: reduce the lock contention in task spawn ([#&#8203;6001]) - tokio: update nix dependency to 0.27.1 ([#&#8203;6190]) ##### Fixed - chore: make `--cfg docsrs` work without net feature ([#&#8203;6166]) - chore: use relaxed load for `unsync_load` on miri ([#&#8203;6179]) - runtime: handle missing context on wake ([#&#8203;6148]) - taskdump: fix taskdump cargo config example ([#&#8203;6150]) - taskdump: skip notified tasks during taskdumps ([#&#8203;6194]) - tracing: avoid creating resource spans with current parent, use a None parent instead ([#&#8203;6107]) - tracing: make task span explicit root ([#&#8203;6158]) ##### Documented - io: flush in `AsyncWriteExt` examples ([#&#8203;6149]) - runtime: document fairness guarantees and current behavior ([#&#8203;6145]) - task: document cancel safety of `LocalSet::run_until` ([#&#8203;6147]) [#&#8203;6001]: https://github.com/tokio-rs/tokio/pull/6001 [#&#8203;6107]: https://github.com/tokio-rs/tokio/pull/6107 [#&#8203;6144]: https://github.com/tokio-rs/tokio/pull/6144 [#&#8203;6145]: https://github.com/tokio-rs/tokio/pull/6145 [#&#8203;6147]: https://github.com/tokio-rs/tokio/pull/6147 [#&#8203;6148]: https://github.com/tokio-rs/tokio/pull/6148 [#&#8203;6149]: https://github.com/tokio-rs/tokio/pull/6149 [#&#8203;6150]: https://github.com/tokio-rs/tokio/pull/6150 [#&#8203;6158]: https://github.com/tokio-rs/tokio/pull/6158 [#&#8203;6166]: https://github.com/tokio-rs/tokio/pull/6166 [#&#8203;6169]: https://github.com/tokio-rs/tokio/pull/6169 [#&#8203;6176]: https://github.com/tokio-rs/tokio/pull/6176 [#&#8203;6179]: https://github.com/tokio-rs/tokio/pull/6179 [#&#8203;6189]: https://github.com/tokio-rs/tokio/pull/6189 [#&#8203;6190]: https://github.com/tokio-rs/tokio/pull/6190 [#&#8203;6194]: https://github.com/tokio-rs/tokio/pull/6194 ### [`v1.34.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.34.0): Tokio v1.34.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.33.0...tokio-1.34.0) ##### Fixed - io: allow `clear_readiness` after io driver shutdown ([#&#8203;6067]) - io: fix integer overflow in `take` ([#&#8203;6080]) - io: fix I/O resource hang ([#&#8203;6134]) - sync: fix `broadcast::channel` link ([#&#8203;6100]) ##### Changed - macros: use `::core` qualified imports instead of `::std` inside `tokio::test` macro ([#&#8203;5973]) ##### Added - fs: update cfg attr in `fs::read_dir` to include `aix` ([#&#8203;6075]) - sync: add `mpsc::Receiver::recv_many` ([#&#8203;6010]) - tokio: added vita target support ([#&#8203;6094]) [#&#8203;5973]: https://github.com/tokio-rs/tokio/pull/5973 [#&#8203;6067]: https://github.com/tokio-rs/tokio/pull/6067 [#&#8203;6080]: https://github.com/tokio-rs/tokio/pull/6080 [#&#8203;6134]: https://github.com/tokio-rs/tokio/pull/6134 [#&#8203;6100]: https://github.com/tokio-rs/tokio/pull/6100 [#&#8203;6075]: https://github.com/tokio-rs/tokio/pull/6075 [#&#8203;6010]: https://github.com/tokio-rs/tokio/pull/6010 [#&#8203;6094]: https://github.com/tokio-rs/tokio/pull/6094 </details> <details> <summary>tower-rs/tower (tower)</summary> ### [`v0.5.2`](https://github.com/tower-rs/tower/releases/tag/tower-0.5.2): tower 0.5.2 [Compare Source](https://github.com/tower-rs/tower/compare/tower-0.5.1...tower-0.5.2) ##### Added - **util**: Add `BoxCloneSyncService` which is a `Clone + Send + Sync` boxed `Service` ([#&#8203;777](https://github.com/tower-rs/tower/issues/777)) - **util**: Add `BoxCloneSyncServiceLayer` which is a `Clone + Send + Sync` boxed `Layer` ([#&#8203;802](https://github.com/tower-rs/tower/issues/802)) ### [`v0.5.1`](https://github.com/tower-rs/tower/releases/tag/tower-0.5.1): tower 0.5.1 [Compare Source](https://github.com/tower-rs/tower/compare/tower-0.5.0...tower-0.5.1) - Fix minimum version of `tower-layer` dependency ([#&#8203;787]) [#&#8203;787]: https://github.com/tower-rs/tower/pull/787 ### [`v0.5.0`](https://github.com/tower-rs/tower/releases/tag/tower-0.5.0): tower 0.5.0 [Compare Source](https://github.com/tower-rs/tower/compare/tower-0.4.13...tower-0.5.0) ##### Fixed - **util**: `BoxService` is now `Sync` ([#&#8203;702]) ##### Changed - **util**: Removed deprecated `ServiceExt::ready_and` method and `ReadyAnd` future ([#&#8203;652]) - **retry**: **Breaking Change** `retry::Policy::retry` now accepts `&mut Req` and `&mut Res` instead of the previous mutable versions. This increases the flexibility of the retry policy. To update, update your method signature to include `mut` for both parameters. ([#&#8203;584]) - **retry**: **Breaking Change** Change Policy to accept \&mut self ([#&#8203;681]) - **retry**: Add generic backoff utilities ([#&#8203;685]) - **retry**: Add Budget trait. This allows end-users to implement their own budget and bucket implementations. ([#&#8203;703]) - **reconnect**: **Breaking Change** Remove unused generic parameter from `Reconnect::new` ([#&#8203;755]) - **ready-cache**: Allow iteration over ready services ([#&#8203;700]) - **discover**: Implement `Clone` for Change ([#&#8203;701]) - **util**: Add a BoxCloneServiceLayer ([#&#8203;708]) - **rng**: use a simpler random 2-sampler ([#&#8203;716]) - **filter**: Derive `Clone` for `AsyncFilterLayer` ([#&#8203;731]) - **general**: Update IndexMap ([#&#8203;741]) - **MSRV**: Increase MSRV to 1.63.0 ([#&#8203;741]) [#&#8203;702]: https://github.com/tower-rs/tower/pull/702 [#&#8203;652]: https://github.com/tower-rs/tower/pull/652 [#&#8203;584]: https://github.com/tower-rs/tower/pull/584 [#&#8203;681]: https://github.com/tower-rs/tower/pull/681 [#&#8203;685]: https://github.com/tower-rs/tower/pull/685 [#&#8203;703]: https://github.com/tower-rs/tower/pull/703 [#&#8203;755]: https://github.com/tower-rs/tower/pull/755 [#&#8203;700]: https://github.com/tower-rs/tower/pull/700 [#&#8203;701]: https://github.com/tower-rs/tower/pull/701 [#&#8203;708]: https://github.com/tower-rs/tower/pull/708 [#&#8203;716]: https://github.com/tower-rs/tower/pull/716 [#&#8203;731]: https://github.com/tower-rs/tower/pull/731 [#&#8203;741]: https://github.com/tower-rs/tower/pull/741 </details> <details> <summary>tower-rs/tower-http (tower-http)</summary> ### [`v0.6.2`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.2) [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.1...tower-http-0.6.2) ##### Changed: - `CompressionBody<B>` now propagates `B`'s size hint in its `http_body::Body` implementation, if compression is disabled ([#&#8203;531]) - this allows a `content-length` to be included in an HTTP message with this body for those cases [#&#8203;531]: https://github.com/tower-rs/tower-http/pull/531 ##### New Contributors - [@&#8203;musicinmybrain](https://github.com/musicinmybrain) made their first contribution in https://github.com/tower-rs/tower-http/pull/524 - [@&#8203;SabrinaJewson](https://github.com/SabrinaJewson) made their first contribution in https://github.com/tower-rs/tower-http/pull/531 **Full Changelog**: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.1...tower-http-0.6.2 ### [`v0.6.1`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.1): v0.6.1 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.0...tower-http-0.6.1) ##### Fixed - **decompression:** reuse scratch buffer to significantly reduce allocations and improve performance ([#&#8203;521]) [#&#8203;521]: https://github.com/tower-rs/tower-http/pull/521 ##### New Contributors - [@&#8203;magurotuna](https://github.com/magurotuna) made their first contribution in https://github.com/tower-rs/tower-http/pull/521 ### [`v0.6.0`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.0): v0.6.0 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.5.2...tower-http-0.6.0) ##### Changed: - `body` module is disabled except for `catch-panic`, `decompression-*`, `fs`, or `limit` features (BREAKING) ([#&#8203;477]) - Update to `tower` 0.5 ([#&#8203;503]) ##### Fixed - **fs:** Precompression of static files now supports files without a file extension ([#&#8203;507]) [#&#8203;477]: https://github.com/tower-rs/tower-http/pull/477 [#&#8203;503]: https://github.com/tower-rs/tower-http/pull/503 [#&#8203;507]: https://github.com/tower-rs/tower-http/pull/507 ### [`v0.5.2`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.5.2): v0.5.2 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.5.1...tower-http-0.5.2) ##### Added: - **compression:** Will now send a `vary: accept-encoding` header on compressed responses ([#&#8203;399]) - **compression:** Support `x-gzip` as equivalent to `gzip` in `accept-encoding` request header ([#&#8203;467]) ##### Fixed - **compression:** Skip compression for range requests ([#&#8203;446]) - **compression:** Skip compression for SSE responses by default ([#&#8203;465]) - **cors:** *Actually* keep Vary headers set by the inner service when setting response headers ([#&#8203;473]) - Version 0.5.1 intended to ship this, but the implementation was buggy and didn't actually do anything [#&#8203;399]: https://github.com/tower-rs/tower-http/pull/399 [#&#8203;446]: https://github.com/tower-rs/tower-http/pull/446 [#&#8203;465]: https://github.com/tower-rs/tower-http/pull/465 [#&#8203;467]: https://github.com/tower-rs/tower-http/pull/467 [#&#8203;473]: https://github.com/tower-rs/tower-http/pull/473 ### [`v0.5.1`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.5.1): v0.5.1 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.5.0...tower-http-0.5.1) - **fs:** Support files precompressed with `zstd` in `ServeFile` - **trace:** Add default generic parameters for `ResponseBody` and `ResponseFuture` ([#&#8203;455]) - **trace:** Add type aliases `HttpMakeClassifier` and `GrpcMakeClassifier` ([#&#8203;455]) ##### Fixed - **cors:** Keep Vary headers set by the inner service when setting response headers ([#&#8203;398]) - **fs:** `ServeDir` now no longer redirects from `/directory` to `/directory/` if `append_index_html_on_directories` is disabled ([#&#8203;421]) [#&#8203;398]: https://github.com/tower-rs/tower-http/pull/398 [#&#8203;421]: https://github.com/tower-rs/tower-http/pull/421 [#&#8203;455]: https://github.com/tower-rs/tower-http/pull/455 ### [`v0.5.0`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.5.0): v0.5.0 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.4.4...tower-http-0.5.0) ##### Changed - Bump Minimum Supported Rust Version to 1.66 ([#&#8203;433]) - Update to http-body 1.0 ([#&#8203;348]) - Update to http 1.0 ([#&#8203;348]) - Preserve service error type in RequestDecompression ([#&#8203;368]) ##### Fixed - Accepts range headers with ranges where the end of range goes past the end of the document by bumping http-range-header to `0.4` [#&#8203;418]: https://github.com/tower-rs/tower-http/pull/418 [#&#8203;433]: https://github.com/tower-rs/tower-http/pull/433 [#&#8203;348]: https://github.com/tower-rs/tower-http/pull/348 [#&#8203;368]: https://github.com/tower-rs/tower-http/pull/368 ### [`v0.4.4`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.4): v0.4.4 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.4.3...tower-http-0.4.4) - **trace**: Default implementations for trace bodies. ### [`v0.4.3`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.3): v0.4.3 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.4.2...tower-http-0.4.3) #### Fixed - **compression:** Fix accidental breaking change in 0.4.2. ### [`v0.4.2`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.2): v0.4.2 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.4.1...tower-http-0.4.2) #### Added - **cors:** Add support for private network preflights ([#&#8203;373]) - **compression:** Implement `Default` for `DecompressionBody` ([#&#8203;370]) #### Changed - **compression:** Update to async-compression 0.4 ([#&#8203;371]) #### Fixed - **compression:** Override default brotli compression level 11 -> 4 ([#&#8203;356]) - **trace:** Simplify dynamic tracing level application ([#&#8203;380]) - **normalize_path:** Fix path normalization for preceding slashes ([#&#8203;359]) [#&#8203;356]: https://github.com/tower-rs/tower-http/pull/356 [#&#8203;359]: https://github.com/tower-rs/tower-http/pull/359 [#&#8203;370]: https://github.com/tower-rs/tower-http/pull/370 [#&#8203;371]: https://github.com/tower-rs/tower-http/pull/371 [#&#8203;373]: https://github.com/tower-rs/tower-http/pull/373 [#&#8203;380]: https://github.com/tower-rs/tower-http/pull/380 ### [`v0.4.1`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.1): v0.4.1 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.4.0...tower-http-0.4.1) #### Added - **request_id:** Derive `Default` for `MakeRequestUuid` ([#&#8203;335]) - **fs:** Derive `Default` for `ServeFileSystemResponseBody` ([#&#8203;336]) - **compression:** Expose compression quality on the CompressionLayer ([#&#8203;333]) #### Fixed - **compression:** Improve parsing of `Accept-Encoding` request header ([#&#8203;220]) - **normalize_path:** Fix path normalization of index route ([#&#8203;347]) - **decompression:** Enable `multiple_members` for `GzipDecoder` ([#&#8203;354]) [#&#8203;347]: https://github.com/tower-rs/tower-http/pull/347 [#&#8203;333]: https://github.com/tower-rs/tower-http/pull/333 [#&#8203;220]: https://github.com/tower-rs/tower-http/pull/220 [#&#8203;335]: https://github.com/tower-rs/tower-http/pull/335 [#&#8203;336]: https://github.com/tower-rs/tower-http/pull/336 [#&#8203;354]: https://github.com/tower-rs/tower-http/pull/354 ### [`v0.4.0`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.0): v0.4.0 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.5...tower-http-0.4.0) #### Added - **decompression:** Add `RequestDecompression` middleware ([#&#8203;282]) - **compression:** Implement `Default` for `CompressionBody` ([#&#8203;323]) - **compression, decompression:** Support zstd (de)compression ([#&#8203;322]) #### Changed - **serve_dir:** `ServeDir` and `ServeFile`'s error types are now `Infallible` and any IO errors will be converted into responses. Use `try_call` to generate error responses manually (BREAKING) ([#&#8203;283]) - **serve_dir:** `ServeDir::fallback` and `ServeDir::not_found_service` now requires the fallback service to use `Infallible` as its error type (BREAKING) ([#&#8203;283]) - **compression, decompression:** Tweak prefered compression encodings ([#&#8203;325]) #### Removed - Removed `RequireAuthorization` in favor of `ValidateRequest` (BREAKING) ([#&#8203;290]) #### Fixed - **serve_dir:** Don't include identity in Content-Encoding header ([#&#8203;317]) - **compression:** Do compress SVGs ([#&#8203;321]) - **serve_dir:** In `ServeDir`, convert `io::ErrorKind::NotADirectory` to `404 Not Found` ([#&#8203;331]) [#&#8203;282]: https://github.com/tower-rs/tower-http/pull/282 [#&#8203;283]: https://github.com/tower-rs/tower-http/pull/283 [#&#8203;290]: https://github.com/tower-rs/tower-http/pull/290 [#&#8203;317]: https://github.com/tower-rs/tower-http/pull/317 [#&#8203;321]: https://github.com/tower-rs/tower-http/pull/321 [#&#8203;322]: https://github.com/tower-rs/tower-http/pull/322 [#&#8203;323]: https://github.com/tower-rs/tower-http/pull/323 [#&#8203;325]: https://github.com/tower-rs/tower-http/pull/325 [#&#8203;331]: https://github.com/tower-rs/tower-http/pull/331 </details> <details> <summary>uuid-rs/uuid (uuid)</summary> ### [`v1.11.0`](https://github.com/uuid-rs/uuid/releases/tag/1.11.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0) #### What's Changed - Upgrade zerocopy to 0.8 by [@&#8203;yotamofek](https://github.com/yotamofek) in https://github.com/uuid-rs/uuid/pull/771 - Prepare for 1.11.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/772 #### New Contributors - [@&#8203;yotamofek](https://github.com/yotamofek) made their first contribution in https://github.com/uuid-rs/uuid/pull/771 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0 ### [`v1.10.0`](https://github.com/uuid-rs/uuid/releases/tag/1.10.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0) #### Deprecations This release deprecates and renames the following functions: - `Builder::from_rfc4122_timestamp` -> `Builder::from_gregorian_timestamp` - `Builder::from_sorted_rfc4122_timestamp` -> `Builder::from_sorted_gregorian_timestamp` - `Timestamp::from_rfc4122` -> `Timestamp::from_gregorian` - `Timestamp::to_rfc4122` -> `Timestamp::to_gregorian` #### What's Changed - Use const identifier in uuid macro by [@&#8203;Vrajs16](https://github.com/Vrajs16) in https://github.com/uuid-rs/uuid/pull/764 - Rename most methods referring to RFC4122 by [@&#8203;Mikopet](https://github.com/Mikopet) / [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/765 - prepare for 1.10.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/766 #### New Contributors - [@&#8203;Vrajs16](https://github.com/Vrajs16) made their first contribution in https://github.com/uuid-rs/uuid/pull/764 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.9.1...1.10.0 ### [`v1.9.1`](https://github.com/uuid-rs/uuid/releases/tag/1.9.1) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.9.0...1.9.1) #### What's Changed - Add an example of generating bulk v7 UUIDs by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/761 - Avoid taking the shared lock when getting usable bits in Uuid::now_v7 by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/762 - Prepare for 1.9.1 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/763 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.9.0...1.9.1 ### [`v1.9.0`](https://github.com/uuid-rs/uuid/releases/tag/1.9.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.8.0...1.9.0) #### `Uuid::now_v7()` is guaranteed to be monotonic Before this release, `Uuid::now_v7()` would only use the millisecond-precision timestamp for ordering. It now also uses a global 42-bit counter that's re-initialized each millisecond so that the following will always pass: ```rust let a = Uuid::now_v7(); let b = Uuid::now_v7(); assert!(a < b); ``` #### What's Changed - Add a get_node_id method for v1 and v6 UUIDs by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/748 - Update atomic and zerocopy to latest by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/750 - Add repository field to uuid-macro-internal crate by [@&#8203;paolobarbolini](https://github.com/paolobarbolini) in https://github.com/uuid-rs/uuid/pull/752 - update docs to updated RFC (from 4122 to 9562) by [@&#8203;Mikopet](https://github.com/Mikopet) in https://github.com/uuid-rs/uuid/pull/753 - Support counters in v7 UUIDs by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/755 #### New Contributors - [@&#8203;paolobarbolini](https://github.com/paolobarbolini) made their first contribution in https://github.com/uuid-rs/uuid/pull/752 - [@&#8203;Mikopet](https://github.com/Mikopet) made their first contribution in https://github.com/uuid-rs/uuid/pull/753 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.8.0...1.9.0 ### [`v1.8.0`](https://github.com/uuid-rs/uuid/releases/tag/1.8.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0) #### ⚠️ Potential Breakage ⚠️ A new `impl AsRef<Uuid> for Uuid` bound has been added, which can break inference on code like: ```rust let b = uuid.as_ref(); ``` You can fix these by explicitly typing the result of the conversion: ```rust let b: &[u8] = uuid.as_ref(); ``` or by calling `as_bytes` instead: ```rust let b = uuid.as_bytes(); ``` #### What's Changed - docs: fix small spelling mistake by [@&#8203;bengsparks](https://github.com/bengsparks) in https://github.com/uuid-rs/uuid/pull/737 - serde serialize_with support by [@&#8203;dakaizou](https://github.com/dakaizou) in https://github.com/uuid-rs/uuid/pull/735 - Fix up CI builds by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/744 - Only add `wasm-bindgen` as a dependency on `wasm32-unknown-unknown` by [@&#8203;emilk](https://github.com/emilk) in https://github.com/uuid-rs/uuid/pull/738 - impl AsRef<Uuid> for Uuid by [@&#8203;koshell](https://github.com/koshell) in https://github.com/uuid-rs/uuid/pull/743 - Add v6 to v8 draft link to README by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/746 - Add a workflow for running cargo outdated by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/745 - Prepare for 1.8.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/747 #### New Contributors - [@&#8203;bengsparks](https://github.com/bengsparks) made their first contribution in https://github.com/uuid-rs/uuid/pull/737 - [@&#8203;dakaizou](https://github.com/dakaizou) made their first contribution in https://github.com/uuid-rs/uuid/pull/735 - [@&#8203;emilk](https://github.com/emilk) made their first contribution in https://github.com/uuid-rs/uuid/pull/738 - [@&#8203;koshell](https://github.com/koshell) made their first contribution in https://github.com/uuid-rs/uuid/pull/743 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0 ### [`v1.7.0`](https://github.com/uuid-rs/uuid/releases/tag/1.7.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0) #### What's Changed - Add missing test for invalid parse_str by [@&#8203;CXWorks](https://github.com/CXWorks) in https://github.com/uuid-rs/uuid/pull/723 - Upgrade borsh unstable dependency to v1.0 and make it stable by [@&#8203;bgeron](https://github.com/bgeron) in https://github.com/uuid-rs/uuid/pull/724 - Reduce the package size of uuid by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/726 - Make use of newer Cargo features for specifying dependencies by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/727 - Prepare for 1.7.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/728 #### New Contributors - [@&#8203;CXWorks](https://github.com/CXWorks) made their first contribution in https://github.com/uuid-rs/uuid/pull/723 - [@&#8203;bgeron](https://github.com/bgeron) made their first contribution in https://github.com/uuid-rs/uuid/pull/724 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0 ### [`v1.6.1`](https://github.com/uuid-rs/uuid/releases/tag/1.6.1) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1) #### What's Changed - Fix uuid macro in consts by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/721 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1 ### [`v1.6.0`](https://github.com/uuid-rs/uuid/releases/tag/1.6.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0) #### What's Changed - doc: fix links in v6 module by [@&#8203;metalalive](https://github.com/metalalive) in https://github.com/uuid-rs/uuid/pull/714 - Stabilize UUIDv6-v8 support by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/718 - Prepare for 1.6.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/719 #### New Contributors - [@&#8203;metalalive](https://github.com/metalalive) made their first contribution in https://github.com/uuid-rs/uuid/pull/714 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0 ### [`v1.5.0`](https://github.com/uuid-rs/uuid/releases/tag/1.5.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.4.1...1.5.0) #### What's Changed - Add impl From<Uuid> for String under the std feature flag by [@&#8203;brahms116](https://github.com/brahms116) in https://github.com/uuid-rs/uuid/pull/700 - Remove dead link to templates by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/704 - make ClockSequence wrap correctly by [@&#8203;fef1312](https://github.com/fef1312) in https://github.com/uuid-rs/uuid/pull/705 - Track MSRV in Cargo.toml by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/706 - Support converting between Uuid and vec by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/703 - Replace MIPS with Miri and add clippy to CI by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/712 - Added `bytemuck` support by [@&#8203;John-Toohey](https://github.com/John-Toohey) in https://github.com/uuid-rs/uuid/pull/711 - Prepare for 1.5.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/713 #### New Contributors - [@&#8203;brahms116](https://github.com/brahms116) made their first contribution in https://github.com/uuid-rs/uuid/pull/700 - [@&#8203;fef1312](https://github.com/fef1312) made their first contribution in https://github.com/uuid-rs/uuid/pull/705 - [@&#8203;John-Toohey](https://github.com/John-Toohey) made their first contribution in https://github.com/uuid-rs/uuid/pull/711 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.4.1...1.5.0 </details> <details> <summary>buehler/zitadel-rust (zitadel)</summary> ### [`v5.3.2`](https://github.com/smartive/zitadel-rust/releases/tag/v5.3.2) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v5.3.1...v5.3.2) ##### Bug Fixes - **deps:** update rust crate rocket_okapi to 0.9.0 ([#&#8203;579](https://github.com/smartive/zitadel-rust/issues/579)) ([230a4a4](https://github.com/smartive/zitadel-rust/commit/230a4a47f69b9df86a79cac2f896ed6b9f9cf61d)) ### [`v5.3.1`](https://github.com/smartive/zitadel-rust/releases/tag/v5.3.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v5.2.0...v5.3.1) ##### Bug Fixes - correct deployment ([a114ddd](https://github.com/smartive/zitadel-rust/commit/a114ddd19a0aadcacce1c269c089467fe379057a)) ### [`v5.2.0`](https://github.com/smartive/zitadel-rust/releases/tag/v5.2.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v5.1.0...v5.2.0) ##### Features - Add project_roles and metadata to all IntrospectedUser ([#&#8203;571](https://github.com/smartive/zitadel-rust/issues/571)) ([d3d3997](https://github.com/smartive/zitadel-rust/commit/d3d39970ecb7c84aae6d8b600b3e117a450f0af1)) ### [`v5.1.0`](https://github.com/smartive/zitadel-rust/releases/tag/v5.1.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v5.0.0...v5.1.0) ##### Features - Improved TLS configuration ([#&#8203;570](https://github.com/smartive/zitadel-rust/issues/570)) ([4ebde7b](https://github.com/smartive/zitadel-rust/commit/4ebde7bedc244943d5e20ca584cfb8c2d5472c06)) ### [`v5.0.0`](https://github.com/smartive/zitadel-rust/releases/tag/v5.0.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.4.0...v5.0.0) ##### Features - Improve introspection cache ([#&#8203;567](https://github.com/smartive/zitadel-rust/issues/567)) ([52fb65a](https://github.com/smartive/zitadel-rust/commit/52fb65a27b8f8f41d8972f3bcaf3d4a6ab30f75b)) - Make api clients with interceptors cloneable ([#&#8203;566](https://github.com/smartive/zitadel-rust/issues/566)) ([da2dddf](https://github.com/smartive/zitadel-rust/commit/da2dddfe316363c618e30420c8e9ee551e792f1f)) ##### BREAKING CHANGES - Return types of the client builder have changed. Please update to the newest returned types to use the client builder. This removed the ChainedInterceptor which essentially has hidden the cloneable feature for interceptors. - This removes the "roles" enum from the introspected user. It is possible to achieve the same mechanism with the following work around: ```rust enum Role { Admin, Client } trait MyExtIntrospectedUser { fn role(&self, role: Role) -> Option<..>; } impl MyExtIntrospectedUser for IntrospectedUser { fn role(&self, role: Role) -> Option<..> { // convenience impl here } } ``` ### [`v4.4.0`](https://github.com/smartive/zitadel-rust/releases/tag/v4.4.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.5...v4.4.0) ##### Features - Upgrade apis to v2 & allow to select apis via feature flag for optimized compile times ([#&#8203;565](https://github.com/smartive/zitadel-rust/issues/565)) ([d1528a2](https://github.com/smartive/zitadel-rust/commit/d1528a2c9a7424732faad4e29f7c84e79ce79f61)) ### [`v4.3.5`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.5) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.4...v4.3.5) ##### Bug Fixes - **deps:** update serde packages ([#&#8203;555](https://github.com/smartive/zitadel-rust/issues/555)) ([e05ef07](https://github.com/smartive/zitadel-rust/commit/e05ef07ab8a1ee4888b7f58de5a6b77e2462b3f6)) ### [`v4.3.4`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.4) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.3...v4.3.4) ##### Bug Fixes - **deps:** update grpc packages to 0.12.4 ([#&#8203;551](https://github.com/smartive/zitadel-rust/issues/551)) ([e6c8a84](https://github.com/smartive/zitadel-rust/commit/e6c8a843b86af60cd123d7fc6d3f3029296b8a7c)) ### [`v4.3.3`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.3) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.2...v4.3.3) ##### Bug Fixes - **deps:** update rust crate document-features to 0.2.8 ([#&#8203;554](https://github.com/smartive/zitadel-rust/issues/554)) ([728dd31](https://github.com/smartive/zitadel-rust/commit/728dd31f0934999bdf2637121d09e60b995051d9)) ### [`v4.3.2`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.2) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.1...v4.3.2) ##### Bug Fixes - **deps:** update rust crate axum-extra to 0.9.3 ([#&#8203;553](https://github.com/smartive/zitadel-rust/issues/553)) ([ac37a85](https://github.com/smartive/zitadel-rust/commit/ac37a85de2009c798820879ffe01aa9ad31c086f)) ### [`v4.3.1`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.3.0...v4.3.1) ##### Bug Fixes - **deps:** update rust crate axum to 0.7.5 ([#&#8203;552](https://github.com/smartive/zitadel-rust/issues/552)) ([c41d61f](https://github.com/smartive/zitadel-rust/commit/c41d61f42288f97877701bc441f0cde9d92d0864)) ### [`v4.3.0`](https://github.com/smartive/zitadel-rust/releases/tag/v4.3.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.5...v4.3.0) ##### Features - Fetch project roles from introspection ([#&#8203;550](https://github.com/smartive/zitadel-rust/issues/550)) ([5ad8613](https://github.com/smartive/zitadel-rust/commit/5ad86136775a240bc311542610101a9d150bcb4f)) ### [`v4.2.5`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.5) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.4...v4.2.5) ##### Bug Fixes - **deps:** update rust crate async-trait to 0.1.80 ([#&#8203;546](https://github.com/smartive/zitadel-rust/issues/546)) ([9bd8202](https://github.com/smartive/zitadel-rust/commit/9bd82029e7dd8e896cbae2129c124c2717aed5d9)) ### [`v4.2.4`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.4) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.3...v4.2.4) ##### Bug Fixes - **deps:** update rust crate time to 0.3.36 ([#&#8203;547](https://github.com/smartive/zitadel-rust/issues/547)) ([fe57f74](https://github.com/smartive/zitadel-rust/commit/fe57f749bb60a6df371ed6069203eb90544426d0)) ### [`v4.2.3`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.3) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.2...v4.2.3) ##### Bug Fixes - **deps:** update rust crate time to 0.3.35 ([#&#8203;545](https://github.com/smartive/zitadel-rust/issues/545)) ([8fcace9](https://github.com/smartive/zitadel-rust/commit/8fcace9a30e45f12f5c1afd04d8d400400fbb45d)) ### [`v4.2.2`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.2) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.1...v4.2.2) ##### Bug Fixes - **deps:** update rust crate async-trait to 0.1.79 ([#&#8203;541](https://github.com/smartive/zitadel-rust/issues/541)) ([92bec35](https://github.com/smartive/zitadel-rust/commit/92bec350581d8d2db321d05532c501ed6b3a9a36)) ### [`v4.2.1`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.2.0...v4.2.1) ##### Bug Fixes - **deps:** update rust crate jsonwebtoken to 9.3.0 ([#&#8203;540](https://github.com/smartive/zitadel-rust/issues/540)) ([942c255](https://github.com/smartive/zitadel-rust/commit/942c2555989a1feed1f875bcbdfa1b29ae3397ba)) ### [`v4.2.0`](https://github.com/smartive/zitadel-rust/releases/tag/v4.2.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.6...v4.2.0) ##### Features - **actix:** add support for actix framework ([#&#8203;538](https://github.com/smartive/zitadel-rust/issues/538)) ([8c49cff](https://github.com/smartive/zitadel-rust/commit/8c49cff13d16d04915d90e034ed09d5c9e9a1dab)), closes [#&#8203;509](https://github.com/smartive/zitadel-rust/issues/509) ### [`v4.1.6`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.6) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.5...v4.1.6) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.27 ([#&#8203;537](https://github.com/smartive/zitadel-rust/issues/537)) ([51f83dc](https://github.com/smartive/zitadel-rust/commit/51f83dc82f25a0dfbab7ce2c5adde9a9ee2d7bc3)) ### [`v4.1.5`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.5) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.4...v4.1.5) ##### Bug Fixes - **deps:** update rust crate async-trait to 0.1.78 ([#&#8203;536](https://github.com/smartive/zitadel-rust/issues/536)) ([f443e4a](https://github.com/smartive/zitadel-rust/commit/f443e4a94d91f301b6fdebc619897c27958140c0)) ### [`v4.1.4`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.4) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.3...v4.1.4) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.26 ([#&#8203;535](https://github.com/smartive/zitadel-rust/issues/535)) ([d34e5d8](https://github.com/smartive/zitadel-rust/commit/d34e5d832de4b58bf7e9c59a21112f84e2aa8522)) ### [`v4.1.3`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.3) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.2...v4.1.3) ##### Bug Fixes - **deps:** update grpc packages to 0.11 ([#&#8203;528](https://github.com/smartive/zitadel-rust/issues/528)) ([f39e31b](https://github.com/smartive/zitadel-rust/commit/f39e31ba1b0e98eca8668b0765a43ccfc7b92f17)) ### [`v4.1.2`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.2) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.1...v4.1.2) ##### Bug Fixes - **deps:** update rust crate openidconnect to 3.5.0 ([#&#8203;530](https://github.com/smartive/zitadel-rust/issues/530)) ([4cdb05e](https://github.com/smartive/zitadel-rust/commit/4cdb05e0cb4230980e5a74bde45857b6d39d0f08)) ### [`v4.1.1`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.1.0...v4.1.1) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.25 ([#&#8203;534](https://github.com/smartive/zitadel-rust/issues/534)) ([8ab0879](https://github.com/smartive/zitadel-rust/commit/8ab087997d4b029b7450296c7c1f21010f686754)) ### [`v4.1.0`](https://github.com/smartive/zitadel-rust/releases/tag/v4.1.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.5...v4.1.0) ##### Features - Add Send bound to interceptors ([#&#8203;532](https://github.com/smartive/zitadel-rust/issues/532)) ([d797a21](https://github.com/smartive/zitadel-rust/commit/d797a21a6ad04cc973b11cc54735ade036f7c2c0)) ### [`v4.0.5`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.5) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.4...v4.0.5) ##### Bug Fixes - **axum:** Expose `IntrospectionConfig` to facilitate creating Axum substates ([#&#8203;523](https://github.com/smartive/zitadel-rust/issues/523)) ([f1133ad](https://github.com/smartive/zitadel-rust/commit/f1133ad35ec4deaa0c2cc7531f4596dded2be980)) ### [`v4.0.4`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.4) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.3...v4.0.4) ##### Bug Fixes - **deps:** update rust crate time to 0.3.34 ([#&#8203;527](https://github.com/smartive/zitadel-rust/issues/527)) ([96c9333](https://github.com/smartive/zitadel-rust/commit/96c933386811efe00a0dee2ca9a0faad11ec4346)) ### [`v4.0.3`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.3) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.2...v4.0.3) ##### Bug Fixes - **deps:** update rust crate time to 0.3.33 ([#&#8203;526](https://github.com/smartive/zitadel-rust/issues/526)) ([8b69c1e](https://github.com/smartive/zitadel-rust/commit/8b69c1e3ad3707778c6789c07a3813339ccb8e13)) ### [`v4.0.2`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.2) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.1...v4.0.2) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.24 ([#&#8203;524](https://github.com/smartive/zitadel-rust/issues/524)) ([923333e](https://github.com/smartive/zitadel-rust/commit/923333eba6769fcccee285e85347dc8a233a285a)) ### [`v4.0.1`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v4.0.0...v4.0.1) ##### Bug Fixes - **deps:** update rust crate time to 0.3.32 ([#&#8203;525](https://github.com/smartive/zitadel-rust/issues/525)) ([562819a](https://github.com/smartive/zitadel-rust/commit/562819a6c127a98722a5bf5b4ec629442f440c44)) ### [`v4.0.0`](https://github.com/smartive/zitadel-rust/releases/tag/v4.0.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.5.1...v4.0.0) ##### Features - **clients:** Add v2 API clients and centralize client generation ([#&#8203;522](https://github.com/smartive/zitadel-rust/issues/522)) ([07c244f](https://github.com/smartive/zitadel-rust/commit/07c244f03b9b9da7feb921fe33896fe978a90a1f)) ##### BREAKING CHANGES - **clients:** The modules for client instantiation have changed. There is no module "with access token" or "with service account" anymore. Instead, there is a centralized `ClientBuilder` in the clients module of the api to create and configure the gRPC clients. The new builder allows configuring auth methods beforehand and then create the according client out of it. ### [`v3.5.1`](https://github.com/smartive/zitadel-rust/releases/tag/v3.5.1) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.5.0...v3.5.1) ##### Bug Fixes - **deps:** update rust crate async-trait to 0.1.77 ([#&#8203;517](https://github.com/smartive/zitadel-rust/issues/517)) ([13aea5a](https://github.com/smartive/zitadel-rust/commit/13aea5aef8d5d6cc52ab0285c6e09062bea4680b)) ### [`v3.5.0`](https://github.com/smartive/zitadel-rust/releases/tag/v3.5.0) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.29...v3.5.0) ##### Features - update general dependencies and axum to v0.7 ([#&#8203;521](https://github.com/smartive/zitadel-rust/issues/521)) ([8c51b37](https://github.com/smartive/zitadel-rust/commit/8c51b37a1cc1af9268f2593d86e2aab5613297d9)), closes [#&#8203;514](https://github.com/smartive/zitadel-rust/issues/514) [#&#8203;519](https://github.com/smartive/zitadel-rust/issues/519) [#&#8203;518](https://github.com/smartive/zitadel-rust/issues/518) ### [`v3.4.29`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.29) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.28...v3.4.29) ##### Bug Fixes - **deps:** update rust crate jsonwebtoken to v9 ([#&#8203;507](https://github.com/smartive/zitadel-rust/issues/507)) ([a94b889](https://github.com/smartive/zitadel-rust/commit/a94b889403ee0e51b3888bd214f64521cfa5bef7)) ### [`v3.4.28`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.28) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.27...v3.4.28) ##### Bug Fixes - **deps:** update rust crate async-trait to 0.1.74 ([#&#8203;506](https://github.com/smartive/zitadel-rust/issues/506)) ([8de89bf](https://github.com/smartive/zitadel-rust/commit/8de89bff832abc212cdf1f421f8bef3567a6dfe0)) ### [`v3.4.27`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.27) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.26...v3.4.27) ##### Bug Fixes - **deps:** update rust crate time to 0.3.30 ([#&#8203;505](https://github.com/smartive/zitadel-rust/issues/505)) ([f8b754b](https://github.com/smartive/zitadel-rust/commit/f8b754bc64361f7cd5f23342ede388a673089002)) ### [`v3.4.26`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.26) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.25...v3.4.26) ##### Bug Fixes - **deps:** update rust crate openidconnect to 3.4.0 ([#&#8203;504](https://github.com/smartive/zitadel-rust/issues/504)) ([ba071fe](https://github.com/smartive/zitadel-rust/commit/ba071fe2277e7348d7f67e6085e3c673379c2504)) ### [`v3.4.25`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.25) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.24...v3.4.25) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.22 ([#&#8203;503](https://github.com/smartive/zitadel-rust/issues/503)) ([95ec54d](https://github.com/smartive/zitadel-rust/commit/95ec54d4f166dd7372dec1e90a7fced9d399d474)) ### [`v3.4.24`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.24) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.23...v3.4.24) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.21 ([#&#8203;502](https://github.com/smartive/zitadel-rust/issues/502)) ([49c19f9](https://github.com/smartive/zitadel-rust/commit/49c19f92df5c2522bf83d8a760d5962fd72dee17)) ### [`v3.4.23`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.23) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.22...v3.4.23) ##### Bug Fixes - **deps:** update rust crate time to 0.3.29 ([#&#8203;501](https://github.com/smartive/zitadel-rust/issues/501)) ([deba1a0](https://github.com/smartive/zitadel-rust/commit/deba1a04f536400943857236b063f7b03163c2b2)) ### [`v3.4.22`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.22) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.21...v3.4.22) ##### Bug Fixes - **deps:** update rust crate axum-extra to 0.8.0 ([#&#8203;499](https://github.com/smartive/zitadel-rust/issues/499)) ([6c849d4](https://github.com/smartive/zitadel-rust/commit/6c849d4af306c115e5fa35a02b1eb5feccc07071)) ### [`v3.4.21`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.21) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.20...v3.4.21) ##### Bug Fixes - **deps:** update rust crate openidconnect to 3.3.1 ([#&#8203;497](https://github.com/smartive/zitadel-rust/issues/497)) ([ea195b7](https://github.com/smartive/zitadel-rust/commit/ea195b7ab6810347de78412ed633d85e1f4a2780)) ### [`v3.4.20`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.20) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.19...v3.4.20) ##### Bug Fixes - **deps:** update rust crate time to 0.3.28 ([#&#8203;490](https://github.com/smartive/zitadel-rust/issues/490)) ([a532826](https://github.com/smartive/zitadel-rust/commit/a532826fe6c728b91f67dd80089c654c6aba0a30)) ### [`v3.4.19`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.19) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.18...v3.4.19) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.20 ([#&#8203;489](https://github.com/smartive/zitadel-rust/issues/489)) ([ec0ddbc](https://github.com/smartive/zitadel-rust/commit/ec0ddbccd71404cd4018c942d3dbaa06cc35dc19)) ### [`v3.4.18`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.18) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.17...v3.4.18) ##### Bug Fixes - **deps:** update rust crate time to 0.3.27 ([#&#8203;488](https://github.com/smartive/zitadel-rust/issues/488)) ([1260801](https://github.com/smartive/zitadel-rust/commit/12608012fa8d11de7ec583d49cb2845a7358bb07)) ### [`v3.4.17`](https://github.com/smartive/zitadel-rust/releases/tag/v3.4.17) [Compare Source](https://github.com/buehler/zitadel-rust/compare/v3.4.16...v3.4.17) ##### Bug Fixes - **deps:** update rust crate reqwest to 0.11.19 ([#&#8203;487](https://github.com/smartive/zitadel-rust/issues/487)) ([48e1ea2](https://github.com/smartive/zitadel-rust/commit/48e1ea2c45f63ffcbb074d54a13044c57416d2c2)) </details> --- ### 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](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNjAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjQyNC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
kjuulh added 1 commit 2023-07-27 17:07:35 +02:00
chore(deps): update all dependencies
Some checks reported errors
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/pr Build encountered an error
42ce4ae524
Author
Owner

⚠ 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: crates/como_web/Cargo.lock
Command failed: cargo update --manifest-path crates/como_web/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
versions that meet the requirements `^0.7.5` are: 0.7.5

the package `como_api` 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 --manifest-path Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
versions that meet the requirements `^0.7.5` are: 0.7.5

the package `como_api` 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 --manifest-path crates/como_auth/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
versions that meet the requirements `^0.7.5` are: 0.7.5

the package `como_api` 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 --manifest-path crates/como_api/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `axum`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
versions that meet the requirements `^0.7.5` are: 0.7.5

the package `como_api` 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

### ⚠ 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: crates/como_web/Cargo.lock ``` Command failed: cargo update --manifest-path crates/como_web/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `axum`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` versions that meet the requirements `^0.7.5` are: 0.7.5 the package `como_api` 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 --manifest-path Cargo.toml --workspace Updating crates.io index error: failed to select a version for `axum`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` versions that meet the requirements `^0.7.5` are: 0.7.5 the package `como_api` 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 --manifest-path crates/como_auth/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `axum`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` versions that meet the requirements `^0.7.5` are: 0.7.5 the package `como_api` 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 --manifest-path crates/como_api/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `axum`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` versions that meet the requirements `^0.7.5` are: 0.7.5 the package `como_api` 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 ```
kjuulh force-pushed renovate/all from 42ce4ae524 to e8b6d17016 2023-07-29 10:24:59 +02:00 Compare
kjuulh force-pushed renovate/all from e8b6d17016 to bfe629cb99 2023-07-29 10:53:10 +02:00 Compare
kjuulh force-pushed renovate/all from bfe629cb99 to 0f85a94cad 2023-07-31 03:34:43 +02:00 Compare
kjuulh force-pushed renovate/all from 0f85a94cad to dde598d6b9 2023-08-02 08:56:42 +02:00 Compare
kjuulh force-pushed renovate/all from dde598d6b9 to 9071a08f04 2023-08-02 18:14:35 +02:00 Compare
kjuulh force-pushed renovate/all from 9071a08f04 to d2c874b724 2023-08-02 22:53:00 +02:00 Compare
kjuulh force-pushed renovate/all from d2c874b724 to d2057fcc57 2023-08-03 03:40:33 +02:00 Compare
kjuulh force-pushed renovate/all from d2057fcc57 to 35676a1304 2023-08-03 20:29:31 +02:00 Compare
kjuulh force-pushed renovate/all from 35676a1304 to ee66c9b15b 2023-08-03 22:50:51 +02:00 Compare
kjuulh force-pushed renovate/all from ee66c9b15b to 128d8e4eba 2023-08-03 23:33:11 +02:00 Compare
kjuulh force-pushed renovate/all from 128d8e4eba to dcca19df1a 2023-08-08 03:34:20 +02:00 Compare
kjuulh force-pushed renovate/all from dcca19df1a to 7b0e159d7c 2023-08-08 04:22:39 +02:00 Compare
kjuulh force-pushed renovate/all from 7b0e159d7c to 84a9e11b8e 2023-08-09 18:01:33 +02:00 Compare
kjuulh force-pushed renovate/all from 84a9e11b8e to bd4caba331 2023-08-12 05:29:37 +02:00 Compare
kjuulh force-pushed renovate/all from bd4caba331 to 5c21fb58d5 2023-08-12 18:52:29 +02:00 Compare
kjuulh force-pushed renovate/all from 5c21fb58d5 to 51a8855a1d 2023-08-12 22:11:44 +02:00 Compare
kjuulh force-pushed renovate/all from 51a8855a1d to 188306f818 2023-08-15 09:26:57 +02:00 Compare
kjuulh force-pushed renovate/all from 188306f818 to 5fb6638f66 2023-08-15 16:07:34 +02:00 Compare
kjuulh force-pushed renovate/all from 5fb6638f66 to 3b1dabb55f 2023-08-15 18:10:17 +02:00 Compare
kjuulh force-pushed renovate/all from 3b1dabb55f to cae51e44cf 2023-08-16 00:24:09 +02:00 Compare
kjuulh force-pushed renovate/all from cae51e44cf to 91e2b4e31e 2023-08-16 23:47:25 +02:00 Compare
kjuulh force-pushed renovate/all from 91e2b4e31e to 4eca72186c 2023-08-17 03:42:31 +02:00 Compare
kjuulh force-pushed renovate/all from 4eca72186c to df2052485b 2023-08-17 16:35:10 +02:00 Compare
kjuulh force-pushed renovate/all from df2052485b to b2a4ec6c01 2023-08-18 23:56:15 +02:00 Compare
kjuulh force-pushed renovate/all from b2a4ec6c01 to eda649820b 2023-08-19 02:50:30 +02:00 Compare
kjuulh force-pushed renovate/all from eda649820b to 0b87299232 2023-08-20 01:31:05 +02:00 Compare
kjuulh force-pushed renovate/all from 0b87299232 to cbeae30475 2023-08-20 01:50:30 +02:00 Compare
kjuulh force-pushed renovate/all from cbeae30475 to 6f0183739a 2023-08-20 06:37:12 +02:00 Compare
kjuulh force-pushed renovate/all from 6f0183739a to 83f4f90f6d 2023-08-20 12:30:14 +02:00 Compare
kjuulh force-pushed renovate/all from 83f4f90f6d to 3ff454dd0d 2023-08-20 14:11:42 +02:00 Compare
kjuulh force-pushed renovate/all from 3ff454dd0d to b86d0f7eca 2023-08-20 16:14:14 +02:00 Compare
kjuulh force-pushed renovate/all from b86d0f7eca to 52e8ec3596 2023-08-20 16:34:50 +02:00 Compare
kjuulh force-pushed renovate/all from 52e8ec3596 to 543f729471 2023-08-20 17:36:11 +02:00 Compare
kjuulh force-pushed renovate/all from 543f729471 to 0747b7f022 2023-08-20 21:20:52 +02:00 Compare
kjuulh force-pushed renovate/all from 0747b7f022 to 23b90b1965 2023-08-22 00:52:20 +02:00 Compare
kjuulh force-pushed renovate/all from 23b90b1965 to f477cc4923 2023-08-22 23:47:33 +02:00 Compare
kjuulh force-pushed renovate/all from f477cc4923 to 76636b1611 2023-08-23 16:53:38 +02:00 Compare
kjuulh force-pushed renovate/all from 76636b1611 to 2c78659a0a 2023-08-24 01:39:17 +02:00 Compare
kjuulh force-pushed renovate/all from 2c78659a0a to 71e077885f 2023-08-24 18:36:32 +02:00 Compare
kjuulh force-pushed renovate/all from 71e077885f to 03afe6a569 2023-08-27 22:09:51 +02:00 Compare
kjuulh force-pushed renovate/all from 03afe6a569 to a7b96b1c3d 2023-08-28 19:26:47 +02:00 Compare
kjuulh force-pushed renovate/all from a7b96b1c3d to 549dd4ecf0 2023-08-29 16:43:38 +02:00 Compare
kjuulh force-pushed renovate/all from 549dd4ecf0 to f3b98159bf 2023-08-30 22:08:51 +02:00 Compare
kjuulh force-pushed renovate/all from f3b98159bf to 48dd882899 2023-08-31 20:58:28 +02:00 Compare
kjuulh force-pushed renovate/all from 48dd882899 to 3b8071f747 2023-09-01 17:36:38 +02:00 Compare
kjuulh force-pushed renovate/all from 3b8071f747 to de19ac88dd 2023-09-01 18:19:54 +02:00 Compare
kjuulh force-pushed renovate/all from de19ac88dd to 13c5343379 2023-09-01 18:41:26 +02:00 Compare
kjuulh force-pushed renovate/all from 13c5343379 to 74d50cf158 2023-09-04 19:25:43 +02:00 Compare
kjuulh force-pushed renovate/all from 74d50cf158 to 6b6eabd67e 2023-09-05 18:15:58 +02:00 Compare
kjuulh force-pushed renovate/all from 6b6eabd67e to 36e021e1c2 2023-09-05 22:08:43 +02:00 Compare
kjuulh force-pushed renovate/all from 36e021e1c2 to c262825c38 2023-09-07 03:33:04 +02:00 Compare
kjuulh force-pushed renovate/all from c262825c38 to c44ece9b40 2023-09-07 08:21:08 +02:00 Compare
kjuulh force-pushed renovate/all from c44ece9b40 to 6ed15dba7b 2023-09-07 17:16:12 +02:00 Compare
kjuulh force-pushed renovate/all from 6ed15dba7b to 7c07a3e3ea 2023-09-07 23:53:27 +02:00 Compare
kjuulh force-pushed renovate/all from 7c07a3e3ea to 31702a700e 2023-09-08 04:36:33 +02:00 Compare
kjuulh force-pushed renovate/all from 31702a700e to 260ce9a4fc 2023-09-08 21:51:51 +02:00 Compare
kjuulh force-pushed renovate/all from 260ce9a4fc to 858e3ac753 2023-09-09 21:47:49 +02:00 Compare
kjuulh force-pushed renovate/all from 858e3ac753 to 2c6459cbc8 2023-09-12 20:48:23 +02:00 Compare
kjuulh force-pushed renovate/all from 2c6459cbc8 to 425728e8fc 2023-09-14 01:23:39 +02:00 Compare
kjuulh force-pushed renovate/all from 425728e8fc to 201f063111 2023-09-15 17:01:16 +02:00 Compare
kjuulh force-pushed renovate/all from 201f063111 to 51940fbc55 2023-09-15 23:28:20 +02:00 Compare
kjuulh force-pushed renovate/all from 51940fbc55 to 4de9681ee8 2023-09-16 21:53:08 +02:00 Compare
kjuulh force-pushed renovate/all from 4de9681ee8 to a2c0db4a19 2023-09-17 00:36:40 +02:00 Compare
kjuulh force-pushed renovate/all from a2c0db4a19 to 45dd1137bb 2023-09-18 18:03:49 +02:00 Compare
kjuulh force-pushed renovate/all from 45dd1137bb to 6f3355d0b9 2023-09-23 05:03:46 +02:00 Compare
kjuulh force-pushed renovate/all from 6f3355d0b9 to d49ece48d3 2023-09-24 22:08:57 +02:00 Compare
kjuulh force-pushed renovate/all from d49ece48d3 to 022c1e4c5f 2023-09-25 23:05:49 +02:00 Compare
kjuulh force-pushed renovate/all from 022c1e4c5f to f96478a084 2023-09-27 00:16:29 +02:00 Compare
kjuulh force-pushed renovate/all from f96478a084 to 711bdf384c 2023-09-28 22:10:28 +02:00 Compare
kjuulh force-pushed renovate/all from 711bdf384c to c5444e0a42 2023-09-28 22:43:01 +02:00 Compare
kjuulh force-pushed renovate/all from c5444e0a42 to 4e5d5279e4 2023-10-03 00:29:37 +02:00 Compare
kjuulh force-pushed renovate/all from 4e5d5279e4 to f7019e92b9 2023-10-03 22:59:31 +02:00 Compare
kjuulh force-pushed renovate/all from f7019e92b9 to 34b3cc06e9 2023-10-09 12:09:18 +02:00 Compare
kjuulh force-pushed renovate/all from 34b3cc06e9 to b0b27cff68 2023-10-12 23:01:28 +02:00 Compare
kjuulh force-pushed renovate/all from b0b27cff68 to 2d3ec0239d 2023-10-13 02:09:06 +02:00 Compare
kjuulh force-pushed renovate/all from 2d3ec0239d to 95bef2bfce 2023-10-13 16:49:50 +02:00 Compare
kjuulh force-pushed renovate/all from 95bef2bfce to 36f65392a9 2023-10-14 01:10:06 +02:00 Compare
kjuulh force-pushed renovate/all from 36f65392a9 to 3822e8ad58 2023-10-14 04:36:29 +02:00 Compare
kjuulh force-pushed renovate/all from 3822e8ad58 to 9210f4aef7 2023-10-15 05:24:39 +02:00 Compare
kjuulh force-pushed renovate/all from 9210f4aef7 to 319ac17c74 2023-10-15 22:09:01 +02:00 Compare
kjuulh force-pushed renovate/all from 319ac17c74 to ba259d0b5f 2023-10-18 15:59:07 +02:00 Compare
kjuulh force-pushed renovate/all from ba259d0b5f to e91c3701a1 2023-10-19 03:37:11 +02:00 Compare
kjuulh force-pushed renovate/all from e91c3701a1 to 4986f0cedf 2023-10-21 07:34:55 +02:00 Compare
kjuulh force-pushed renovate/all from 4986f0cedf to 3e6b6b88d2 2023-10-21 11:40:00 +02:00 Compare
kjuulh changed title from chore(deps): update all dependencies to fix(deps): update all dependencies 2023-10-21 11:40:02 +02:00
kjuulh force-pushed renovate/all from 3e6b6b88d2 to c6e42895db 2023-10-22 01:48:54 +02:00 Compare
kjuulh force-pushed renovate/all from c6e42895db to a4fc2dee7e 2023-10-22 12:33:13 +02:00 Compare
kjuulh force-pushed renovate/all from a4fc2dee7e to f3e6faa989 2023-10-24 20:55:09 +02:00 Compare
kjuulh force-pushed renovate/all from f3e6faa989 to bd34271808 2023-10-30 17:01:41 +01:00 Compare
kjuulh force-pushed renovate/all from bd34271808 to 39d319ee62 2023-11-04 08:22:09 +01:00 Compare
kjuulh force-pushed renovate/all from 39d319ee62 to ebaf839263 2023-11-04 21:17:43 +01:00 Compare
kjuulh force-pushed renovate/all from ebaf839263 to 1504225c3d 2023-11-09 21:09:31 +01:00 Compare
kjuulh force-pushed renovate/all from 1504225c3d to 71ab3640f8 2023-11-10 23:34:40 +01:00 Compare
kjuulh force-pushed renovate/all from 71ab3640f8 to 40f0b2948a 2023-11-13 18:37:42 +01:00 Compare
kjuulh force-pushed renovate/all from 40f0b2948a to 6909ab1723 2023-11-19 08:28:42 +01:00 Compare
kjuulh force-pushed renovate/all from 6909ab1723 to 74fc317835 2023-11-20 01:35:41 +01:00 Compare
kjuulh force-pushed renovate/all from 74fc317835 to 0113e5827a 2023-11-20 12:49:30 +01:00 Compare
kjuulh force-pushed renovate/all from 0113e5827a to a9ea496163 2023-11-21 16:05:48 +01:00 Compare
kjuulh force-pushed renovate/all from a9ea496163 to 452c72d1e2 2023-11-23 04:01:50 +01:00 Compare
kjuulh force-pushed renovate/all from 452c72d1e2 to 9f63a86e1e 2023-11-27 09:34:23 +01:00 Compare
kjuulh force-pushed renovate/all from 9f63a86e1e to 1a6663b066 2023-11-27 10:25:06 +01:00 Compare
kjuulh force-pushed renovate/all from 1a6663b066 to 3eb3562e6a 2023-11-27 19:19:27 +01:00 Compare
kjuulh force-pushed renovate/all from 3eb3562e6a to b2dfba4980 2023-11-28 04:57:30 +01:00 Compare
kjuulh force-pushed renovate/all from b2dfba4980 to 6e8d2f9ee7 2023-12-04 09:47:55 +01:00 Compare
kjuulh force-pushed renovate/all from 6e8d2f9ee7 to f123a156c2 2023-12-04 19:38:07 +01:00 Compare
kjuulh force-pushed renovate/all from f123a156c2 to a0ddb3e5dd 2023-12-09 00:21:15 +01:00 Compare
kjuulh force-pushed renovate/all from a0ddb3e5dd to eec23de1ca 2023-12-19 19:19:00 +01:00 Compare
kjuulh force-pushed renovate/all from eec23de1ca to e9e7061607 2023-12-21 01:08:52 +01:00 Compare
kjuulh force-pushed renovate/all from e9e7061607 to 1a90260153 2023-12-21 02:21:11 +01:00 Compare
kjuulh force-pushed renovate/all from 1a90260153 to 5572849286 2023-12-26 18:16:30 +01:00 Compare
kjuulh force-pushed renovate/all from 5572849286 to 723b62fd01 2023-12-27 00:42:09 +01:00 Compare
kjuulh force-pushed renovate/all from 723b62fd01 to 5b8165b53f 2023-12-28 19:22:42 +01:00 Compare
kjuulh force-pushed renovate/all from 5b8165b53f to 0e048d9232 2023-12-29 18:11:31 +01:00 Compare
kjuulh force-pushed renovate/all from 0e048d9232 to d90a3336c2 2023-12-31 00:15:18 +01:00 Compare
kjuulh force-pushed renovate/all from d90a3336c2 to 2a7d345cf3 2023-12-31 01:09:38 +01:00 Compare
kjuulh force-pushed renovate/all from 2a7d345cf3 to 3bc1515cd7 2024-01-01 02:30:16 +01:00 Compare
kjuulh force-pushed renovate/all from 3bc1515cd7 to a33c5cc40b 2024-01-02 05:54:59 +01:00 Compare
kjuulh force-pushed renovate/all from a33c5cc40b to dbbb86a06e 2024-01-02 07:42:01 +01:00 Compare
kjuulh force-pushed renovate/all from dbbb86a06e to b4e35bdec7 2024-01-02 08:38:36 +01:00 Compare
kjuulh force-pushed renovate/all from b4e35bdec7 to eb75658ccf 2024-01-04 08:56:40 +01:00 Compare
kjuulh force-pushed renovate/all from eb75658ccf to 056244fe1c 2024-01-04 20:30:55 +01:00 Compare
kjuulh force-pushed renovate/all from 056244fe1c to 01b062234c 2024-01-06 03:51:56 +01:00 Compare
kjuulh force-pushed renovate/all from 01b062234c to 2fe3f75e54 2024-01-08 18:03:32 +01:00 Compare
kjuulh force-pushed renovate/all from 2fe3f75e54 to 6a07b8dafa 2024-01-11 18:05:45 +01:00 Compare
kjuulh force-pushed renovate/all from 6a07b8dafa to 54e42f397a 2024-01-12 04:15:29 +01:00 Compare
kjuulh force-pushed renovate/all from 54e42f397a to 2fe87886a8 2024-01-13 14:41:18 +01:00 Compare
kjuulh force-pushed renovate/all from 2fe87886a8 to 7aaa736e82 2024-01-13 15:10:12 +01:00 Compare
kjuulh force-pushed renovate/all from 7aaa736e82 to 71a3bdb57a 2024-01-14 22:30:45 +01:00 Compare
kjuulh force-pushed renovate/all from 71a3bdb57a to 0335fbe125 2024-01-15 18:09:44 +01:00 Compare
kjuulh force-pushed renovate/all from 0335fbe125 to 888e986363 2024-01-16 21:41:51 +01:00 Compare
kjuulh force-pushed renovate/all from 888e986363 to f88afe4c4d 2024-01-19 01:38:48 +01:00 Compare
kjuulh force-pushed renovate/all from f88afe4c4d to b9b91deb25 2024-01-20 20:37:24 +01:00 Compare
kjuulh force-pushed renovate/all from b9b91deb25 to 57a8ff2ebf 2024-01-21 03:50:14 +01:00 Compare
kjuulh force-pushed renovate/all from 57a8ff2ebf to 2c99365170 2024-01-21 04:19:35 +01:00 Compare
kjuulh force-pushed renovate/all from 2c99365170 to 1a8a81668c 2024-01-22 23:26:24 +01:00 Compare
kjuulh force-pushed renovate/all from 1a8a81668c to 8c90b73bb5 2024-01-23 12:32:51 +01:00 Compare
kjuulh force-pushed renovate/all from 8c90b73bb5 to f36c54c2a7 2024-01-25 10:45:47 +01:00 Compare
kjuulh force-pushed renovate/all from f36c54c2a7 to efd52817ca 2024-01-25 13:52:28 +01:00 Compare
kjuulh force-pushed renovate/all from efd52817ca to f65a21ddef 2024-01-26 23:25:56 +01:00 Compare
kjuulh force-pushed renovate/all from f65a21ddef to b875f268fd 2024-01-29 05:13:11 +01:00 Compare
kjuulh force-pushed renovate/all from b875f268fd to 2a955d447b 2024-02-02 00:20:54 +01:00 Compare
kjuulh force-pushed renovate/all from 2a955d447b to 1dc39e3629 2024-02-02 02:43:22 +01:00 Compare
kjuulh force-pushed renovate/all from 1dc39e3629 to 7e2aec8cb5 2024-02-02 13:37:00 +01:00 Compare
kjuulh force-pushed renovate/all from 7e2aec8cb5 to 714a1a7e6d 2024-02-04 00:05:27 +01:00 Compare
kjuulh force-pushed renovate/all from 714a1a7e6d to 0bad94aca7 2024-02-04 03:32:11 +01:00 Compare
kjuulh force-pushed renovate/all from 0bad94aca7 to b188102169 2024-02-07 11:53:05 +01:00 Compare
kjuulh force-pushed renovate/all from b188102169 to 8f9a94a91f 2024-02-08 19:08:16 +01:00 Compare
kjuulh force-pushed renovate/all from 8f9a94a91f to 10229a8a8b 2024-02-10 11:50:49 +01:00 Compare
kjuulh force-pushed renovate/all from 10229a8a8b to a6b4260808 2024-02-11 06:55:28 +01:00 Compare
kjuulh force-pushed renovate/all from a6b4260808 to e618783887 2024-02-16 15:02:54 +01:00 Compare
kjuulh force-pushed renovate/all from e618783887 to 76d8cb5188 2024-02-16 19:03:54 +01:00 Compare
kjuulh force-pushed renovate/all from 76d8cb5188 to aa5670f40f 2024-02-17 23:48:04 +01:00 Compare
kjuulh force-pushed renovate/all from aa5670f40f to efc3e2813b 2024-02-18 10:00:28 +01:00 Compare
kjuulh force-pushed renovate/all from efc3e2813b to 1be5c043e1 2024-02-19 06:12:36 +01:00 Compare
kjuulh force-pushed renovate/all from 1be5c043e1 to e2414179af 2024-02-20 02:40:30 +01:00 Compare
kjuulh force-pushed renovate/all from e2414179af to dd98b2b5a6 2024-02-23 09:48:18 +01:00 Compare
kjuulh force-pushed renovate/all from dd98b2b5a6 to 105f7ac17e 2024-03-06 15:05:12 +01:00 Compare
kjuulh force-pushed renovate/all from 105f7ac17e to 1fa9b3389a 2024-03-06 18:14:37 +01:00 Compare
kjuulh force-pushed renovate/all from 1fa9b3389a to 1c5c0028ba 2024-03-11 11:13:33 +01:00 Compare
kjuulh force-pushed renovate/all from 1c5c0028ba to c85ddbaad9 2024-03-11 14:49:24 +01:00 Compare
kjuulh force-pushed renovate/all from c85ddbaad9 to db15f3c3dd 2024-03-11 17:00:16 +01:00 Compare
kjuulh force-pushed renovate/all from db15f3c3dd to 180c0043ab 2024-03-12 04:12:22 +01:00 Compare
kjuulh force-pushed renovate/all from 180c0043ab to c466561b6a 2024-03-12 07:09:50 +01:00 Compare
kjuulh force-pushed renovate/all from c466561b6a to 68e9c9b047 2024-03-13 03:27:23 +01:00 Compare
kjuulh force-pushed renovate/all from 68e9c9b047 to ee386c874f 2024-03-15 11:59:40 +01:00 Compare
kjuulh force-pushed renovate/all from ee386c874f to 95939cbd76 2024-03-15 14:28:40 +01:00 Compare
kjuulh force-pushed renovate/all from 95939cbd76 to 293bb0c041 2024-03-16 08:23:03 +01:00 Compare
kjuulh force-pushed renovate/all from 293bb0c041 to d5233eba15 2024-03-16 09:07:41 +01:00 Compare
kjuulh force-pushed renovate/all from d5233eba15 to e2faa9fb22 2024-03-17 01:13:37 +01:00 Compare
kjuulh force-pushed renovate/all from e2faa9fb22 to f54f238721 2024-03-17 03:25:15 +01:00 Compare
kjuulh force-pushed renovate/all from f54f238721 to 2e509a532f 2024-03-19 01:59:01 +01:00 Compare
kjuulh force-pushed renovate/all from 2e509a532f to 6e8807d78a 2024-03-20 00:49:30 +01:00 Compare
kjuulh force-pushed renovate/all from 6e8807d78a to a76ca15b9d 2024-03-21 11:13:54 +01:00 Compare
kjuulh force-pushed renovate/all from a76ca15b9d to 0460b29dff 2024-03-22 01:59:24 +01:00 Compare
kjuulh force-pushed renovate/all from 0460b29dff to 3ac1de218e 2024-03-24 04:45:31 +01:00 Compare
kjuulh force-pushed renovate/all from 3ac1de218e to 0157314a91 2024-03-24 05:28:02 +01:00 Compare
kjuulh force-pushed renovate/all from 0157314a91 to abcea8f6bc 2024-03-24 20:26:51 +01:00 Compare
kjuulh force-pushed renovate/all from abcea8f6bc to 21b9da52b3 2024-03-24 21:14:16 +01:00 Compare
kjuulh force-pushed renovate/all from 21b9da52b3 to cf2f8b5d1b 2024-03-25 22:43:05 +01:00 Compare
kjuulh force-pushed renovate/all from cf2f8b5d1b to 6532b7f46c 2024-03-26 07:34:14 +01:00 Compare
kjuulh force-pushed renovate/all from 6532b7f46c to c0f824fc22 2024-03-26 14:50:30 +01:00 Compare
kjuulh force-pushed renovate/all from c0f824fc22 to 81cfa30357 2024-03-26 18:27:45 +01:00 Compare
kjuulh force-pushed renovate/all from 81cfa30357 to 1416df0b43 2024-03-26 19:12:37 +01:00 Compare
kjuulh force-pushed renovate/all from 1416df0b43 to dc51980c88 2024-03-27 13:26:11 +01:00 Compare
kjuulh force-pushed renovate/all from dc51980c88 to 7392fd393e 2024-03-28 18:26:57 +01:00 Compare
kjuulh force-pushed renovate/all from 7392fd393e to 1f294f860d 2024-04-10 06:34:09 +02:00 Compare
kjuulh force-pushed renovate/all from 1f294f860d to 5a75edbeb2 2024-04-11 01:46:03 +02:00 Compare
kjuulh force-pushed renovate/all from 5a75edbeb2 to 5d827e33bd 2024-04-11 21:05:30 +02:00 Compare
kjuulh force-pushed renovate/all from 5d827e33bd to 605790f4f7 2024-04-11 23:58:19 +02:00 Compare
kjuulh force-pushed renovate/all from 605790f4f7 to 2b3229231d 2024-04-12 03:49:48 +02:00 Compare
kjuulh force-pushed renovate/all from 2b3229231d to 1903183c58 2024-04-14 15:39:25 +02:00 Compare
kjuulh force-pushed renovate/all from 1903183c58 to 90fd4da40b 2024-04-15 12:11:28 +02:00 Compare
kjuulh force-pushed renovate/all from 90fd4da40b to e22c016319 2024-04-16 08:13:22 +02:00 Compare
kjuulh force-pushed renovate/all from e22c016319 to 961ac17653 2024-04-18 13:59:33 +02:00 Compare
kjuulh force-pushed renovate/all from 961ac17653 to fd8ea779cd 2024-04-30 18:23:06 +02:00 Compare
kjuulh force-pushed renovate/all from fd8ea779cd to fbbeafc4d4 2024-05-02 04:45:27 +02:00 Compare
kjuulh force-pushed renovate/all from fbbeafc4d4 to 45f6effb92 2024-05-02 08:32:31 +02:00 Compare
kjuulh force-pushed renovate/all from 45f6effb92 to f42a85e763 2024-05-02 10:40:54 +02:00 Compare
kjuulh force-pushed renovate/all from f42a85e763 to ce9073c63a 2024-05-02 12:09:42 +02:00 Compare
kjuulh force-pushed renovate/all from ce9073c63a to 8fa31494e6 2024-05-02 15:22:09 +02:00 Compare
kjuulh force-pushed renovate/all from 8fa31494e6 to 1532ea6552 2024-05-06 20:24:09 +02:00 Compare
kjuulh force-pushed renovate/all from 1532ea6552 to ba8dd8eacb 2024-05-08 02:09:06 +02:00 Compare
kjuulh force-pushed renovate/all from ba8dd8eacb to f7ec38aad3 2024-05-08 02:45:45 +02:00 Compare
kjuulh force-pushed renovate/all from f7ec38aad3 to 3fc4152a9c 2024-05-09 09:31:39 +02:00 Compare
kjuulh force-pushed renovate/all from 3fc4152a9c to a7216ecd69 2024-05-17 20:22:52 +02:00 Compare
kjuulh force-pushed renovate/all from a7216ecd69 to dab0ae79b5 2024-05-18 00:46:17 +02:00 Compare
kjuulh force-pushed renovate/all from dab0ae79b5 to 44aaab5d40 2024-05-18 14:31:02 +02:00 Compare
kjuulh force-pushed renovate/all from 44aaab5d40 to fb39594897 2024-05-23 21:58:41 +02:00 Compare
Author
Owner

⚠️ 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 Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `sqlx`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
    ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)`
versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0

the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features.


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

File name: crates/como_web/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_web/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `sqlx`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
    ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)`
versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0

the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features.


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

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_auth/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `sqlx`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
    ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)`
versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0

the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features.


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

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_api/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `sqlx`.
    ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)`
    ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)`
versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0

the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features.


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

### ⚠️ 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 Cargo.toml --workspace Updating crates.io index error: failed to select a version for `sqlx`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)` versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0 the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features. failed to select a version for `sqlx` which could resolve this conflict ``` ##### File name: crates/como_web/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_web/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `sqlx`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)` versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0 the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features. failed to select a version for `sqlx` which could resolve this conflict ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_auth/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `sqlx`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)` versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0 the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features. failed to select a version for `sqlx` which could resolve this conflict ``` ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/como_api/Cargo.toml --workspace Updating crates.io index error: failed to select a version for `sqlx`. ... required by package `como_api v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_api)` ... which satisfies path dependency `como_api` (locked to 0.1.0) of package `como_bin v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/como/crates/como_bin)` versions that meet the requirements `^0.8.0` are: 0.8.2, 0.8.1, 0.8.0 the package `como_api` depends on `sqlx`, with features: `offline` but `sqlx` does not have these features. failed to select a version for `sqlx` which could resolve this conflict ```
kjuulh force-pushed renovate/all from fb39594897 to 74468446df 2024-05-23 22:57:11 +02:00 Compare
kjuulh force-pushed renovate/all from 74468446df to 0acf52d540 2024-05-23 23:29:44 +02:00 Compare
kjuulh force-pushed renovate/all from 0acf52d540 to 3b790a877b 2024-05-24 00:16:34 +02:00 Compare
kjuulh force-pushed renovate/all from 3b790a877b to 68004b9ba1 2024-05-24 01:05:31 +02:00 Compare
kjuulh force-pushed renovate/all from 68004b9ba1 to 4138a258d4 2024-05-24 01:36:15 +02:00 Compare
kjuulh force-pushed renovate/all from 4138a258d4 to 1874ea297d 2024-05-24 02:07:03 +02:00 Compare
kjuulh force-pushed renovate/all from 1874ea297d to acb30f1606 2024-05-24 02:38:26 +02:00 Compare
kjuulh force-pushed renovate/all from acb30f1606 to 108b35b324 2024-05-24 03:09:18 +02:00 Compare
kjuulh force-pushed renovate/all from 108b35b324 to 7a77b88b9a 2024-05-24 03:43:17 +02:00 Compare
kjuulh force-pushed renovate/all from 7a77b88b9a to 8a870fa9f4 2024-05-24 04:13:39 +02:00 Compare
kjuulh force-pushed renovate/all from 8a870fa9f4 to 456b9de80e 2024-05-24 04:44:08 +02:00 Compare
kjuulh force-pushed renovate/all from 456b9de80e to 25f5649876 2024-05-24 05:14:42 +02:00 Compare
kjuulh force-pushed renovate/all from 25f5649876 to a0e09bf350 2024-05-24 05:45:33 +02:00 Compare
kjuulh force-pushed renovate/all from a0e09bf350 to 08748f62d6 2024-05-24 06:15:28 +02:00 Compare
kjuulh force-pushed renovate/all from 08748f62d6 to ceeeb662fb 2024-05-24 07:02:22 +02:00 Compare
kjuulh force-pushed renovate/all from ceeeb662fb to 507b677406 2024-05-24 07:32:17 +02:00 Compare
kjuulh force-pushed renovate/all from 507b677406 to 8b57731456 2024-05-24 08:02:33 +02:00 Compare
kjuulh force-pushed renovate/all from 8b57731456 to f2d6ae70bb 2024-05-24 08:31:38 +02:00 Compare
kjuulh force-pushed renovate/all from f2d6ae70bb to 17d8d703aa 2024-05-24 09:01:16 +02:00 Compare
kjuulh force-pushed renovate/all from 17d8d703aa to 6cc1406372 2024-05-24 09:30:16 +02:00 Compare
kjuulh force-pushed renovate/all from 6cc1406372 to 98f0bcd2e2 2024-05-24 10:00:07 +02:00 Compare
kjuulh force-pushed renovate/all from 98f0bcd2e2 to 6c61dce78b 2024-05-24 10:29:48 +02:00 Compare
kjuulh force-pushed renovate/all from 6c61dce78b to 27df7419e6 2024-05-24 10:59:42 +02:00 Compare
kjuulh force-pushed renovate/all from 27df7419e6 to e99bae1a15 2024-05-24 11:30:25 +02:00 Compare
kjuulh force-pushed renovate/all from e99bae1a15 to ad5fb97473 2024-05-24 12:15:39 +02:00 Compare
kjuulh force-pushed renovate/all from ad5fb97473 to 0772734e3c 2024-05-24 13:01:20 +02:00 Compare
kjuulh force-pushed renovate/all from 0772734e3c to 9abeec0df2 2024-05-24 13:31:29 +02:00 Compare
kjuulh force-pushed renovate/all from 9abeec0df2 to d90b20a060 2024-05-24 14:01:55 +02:00 Compare
kjuulh force-pushed renovate/all from d90b20a060 to 57de8e30fd 2024-05-24 14:31:55 +02:00 Compare
kjuulh force-pushed renovate/all from 57de8e30fd to 541aa9ac7a 2024-05-24 15:02:35 +02:00 Compare
kjuulh force-pushed renovate/all from 541aa9ac7a to 04f3acff8f 2024-05-24 15:33:03 +02:00 Compare
kjuulh force-pushed renovate/all from 04f3acff8f to 778101d85d 2024-05-24 16:04:29 +02:00 Compare
kjuulh force-pushed renovate/all from 778101d85d to d4f7442dbb 2024-05-24 16:35:11 +02:00 Compare
kjuulh force-pushed renovate/all from d4f7442dbb to cd067b6d37 2024-05-24 17:06:13 +02:00 Compare
kjuulh force-pushed renovate/all from cd067b6d37 to f4c3e5b4e7 2024-05-24 17:37:06 +02:00 Compare
kjuulh force-pushed renovate/all from f4c3e5b4e7 to 7b2e9163c7 2024-05-24 18:16:13 +02:00 Compare
kjuulh force-pushed renovate/all from 7b2e9163c7 to 22181f3d75 2024-05-24 19:04:26 +02:00 Compare
kjuulh force-pushed renovate/all from 22181f3d75 to 7dd4e5a86c 2024-05-24 19:35:39 +02:00 Compare
kjuulh force-pushed renovate/all from 7dd4e5a86c to 25357788b7 2024-05-24 20:07:09 +02:00 Compare
kjuulh force-pushed renovate/all from 25357788b7 to 0f153a86d1 2024-05-24 20:39:44 +02:00 Compare
kjuulh force-pushed renovate/all from 0f153a86d1 to a69ba140d4 2024-05-24 21:11:30 +02:00 Compare
kjuulh force-pushed renovate/all from a69ba140d4 to 0fba3c10b0 2024-05-24 21:42:37 +02:00 Compare
kjuulh force-pushed renovate/all from 0fba3c10b0 to 6fb07b8733 2024-05-24 22:14:35 +02:00 Compare
kjuulh force-pushed renovate/all from 6fb07b8733 to 39520c6426 2024-05-24 22:45:45 +02:00 Compare
kjuulh force-pushed renovate/all from 39520c6426 to bd8e3228eb 2024-05-24 23:18:00 +02:00 Compare
kjuulh force-pushed renovate/all from bd8e3228eb to 3dd53c4095 2024-05-24 23:48:54 +02:00 Compare
kjuulh force-pushed renovate/all from 3dd53c4095 to fc92d7051a 2024-05-25 00:15:58 +02:00 Compare
kjuulh force-pushed renovate/all from fc92d7051a to 39566c274f 2024-05-25 01:04:13 +02:00 Compare
kjuulh force-pushed renovate/all from 39566c274f to e56c522673 2024-05-25 01:35:11 +02:00 Compare
kjuulh force-pushed renovate/all from e56c522673 to de05001772 2024-05-25 02:06:51 +02:00 Compare
kjuulh force-pushed renovate/all from de05001772 to e094425063 2024-05-25 02:38:02 +02:00 Compare
kjuulh force-pushed renovate/all from e094425063 to 526775535d 2024-05-25 03:09:40 +02:00 Compare
kjuulh force-pushed renovate/all from 526775535d to e740b5cd87 2024-05-25 03:40:54 +02:00 Compare
kjuulh force-pushed renovate/all from e740b5cd87 to 71462e065f 2024-05-25 04:12:41 +02:00 Compare
kjuulh force-pushed renovate/all from 71462e065f to b2f323f999 2024-05-25 04:43:44 +02:00 Compare
kjuulh force-pushed renovate/all from b2f323f999 to 2bc9d50a03 2024-05-25 05:15:41 +02:00 Compare
kjuulh force-pushed renovate/all from 2bc9d50a03 to 3ec93edaaa 2024-05-25 05:46:49 +02:00 Compare
kjuulh force-pushed renovate/all from 3ec93edaaa to ea08e03542 2024-05-25 06:16:11 +02:00 Compare
kjuulh force-pushed renovate/all from ea08e03542 to 57d0c738d2 2024-05-25 07:04:17 +02:00 Compare
kjuulh force-pushed renovate/all from 57d0c738d2 to e620fb1c00 2024-05-25 07:35:27 +02:00 Compare
kjuulh force-pushed renovate/all from e620fb1c00 to 392aa48f01 2024-05-25 08:06:49 +02:00 Compare
kjuulh force-pushed renovate/all from 392aa48f01 to 2098bf3732 2024-05-25 08:38:12 +02:00 Compare
kjuulh force-pushed renovate/all from 2098bf3732 to 57e41f00d1 2024-05-25 09:09:24 +02:00 Compare
kjuulh force-pushed renovate/all from 57e41f00d1 to 434478a8f6 2024-05-25 09:41:14 +02:00 Compare
kjuulh force-pushed renovate/all from 434478a8f6 to 775e3e6885 2024-05-25 10:12:55 +02:00 Compare
kjuulh force-pushed renovate/all from 775e3e6885 to a5981a70b3 2024-05-25 10:44:12 +02:00 Compare
kjuulh force-pushed renovate/all from a5981a70b3 to 86648f842a 2024-05-25 11:16:25 +02:00 Compare
kjuulh force-pushed renovate/all from 86648f842a to 9a26dd1aca 2024-05-25 11:47:15 +02:00 Compare
kjuulh force-pushed renovate/all from 9a26dd1aca to 27520ff1f3 2024-05-25 12:15:58 +02:00 Compare
kjuulh force-pushed renovate/all from 27520ff1f3 to 92601e2dc2 2024-05-25 13:04:32 +02:00 Compare
kjuulh force-pushed renovate/all from 92601e2dc2 to 9e4e8f920b 2024-05-25 13:36:51 +02:00 Compare
kjuulh force-pushed renovate/all from 9e4e8f920b to ad0ad339be 2024-05-25 14:08:53 +02:00 Compare
kjuulh force-pushed renovate/all from ad0ad339be to d856917484 2024-05-25 14:41:56 +02:00 Compare
kjuulh force-pushed renovate/all from d856917484 to 20bfa7e763 2024-05-25 15:13:13 +02:00 Compare
kjuulh force-pushed renovate/all from 20bfa7e763 to 59278076fa 2024-05-25 15:44:10 +02:00 Compare
kjuulh force-pushed renovate/all from 59278076fa to 90ea20d34a 2024-05-25 16:15:22 +02:00 Compare
kjuulh force-pushed renovate/all from 90ea20d34a to 6f83e61d68 2024-05-25 16:46:23 +02:00 Compare
kjuulh force-pushed renovate/all from 6f83e61d68 to 072395451c 2024-05-25 17:18:13 +02:00 Compare
kjuulh force-pushed renovate/all from 072395451c to 58011a06ac 2024-05-25 17:48:39 +02:00 Compare
kjuulh force-pushed renovate/all from 58011a06ac to bb2e8844fa 2024-05-25 18:16:14 +02:00 Compare
kjuulh force-pushed renovate/all from bb2e8844fa to af4ab864e4 2024-05-25 18:59:38 +02:00 Compare
kjuulh force-pushed renovate/all from af4ab864e4 to 2736e7fd3a 2024-05-25 19:29:59 +02:00 Compare
kjuulh force-pushed renovate/all from 2736e7fd3a to 12d4b0d04f 2024-05-25 20:01:01 +02:00 Compare
kjuulh force-pushed renovate/all from 12d4b0d04f to 96c3c2e11a 2024-05-25 20:34:08 +02:00 Compare
kjuulh force-pushed renovate/all from 96c3c2e11a to 6963bc18d5 2024-05-25 21:07:51 +02:00 Compare
kjuulh force-pushed renovate/all from 6963bc18d5 to db7421e7fa 2024-05-25 21:41:03 +02:00 Compare
kjuulh force-pushed renovate/all from db7421e7fa to cc3eeaf222 2024-05-25 22:12:52 +02:00 Compare
kjuulh force-pushed renovate/all from cc3eeaf222 to 936b4d41dd 2024-05-25 22:43:35 +02:00 Compare
kjuulh force-pushed renovate/all from 936b4d41dd to 60449bd9e8 2024-05-25 23:14:56 +02:00 Compare
kjuulh force-pushed renovate/all from 60449bd9e8 to 2885df7090 2024-05-25 23:46:17 +02:00 Compare
kjuulh force-pushed renovate/all from 2885df7090 to ce151a544e 2024-05-26 00:16:24 +02:00 Compare
kjuulh force-pushed renovate/all from ce151a544e to 5e43440789 2024-05-26 01:00:58 +02:00 Compare
kjuulh force-pushed renovate/all from 5e43440789 to af2b32dcac 2024-05-26 01:31:37 +02:00 Compare
kjuulh force-pushed renovate/all from af2b32dcac to 83841bdc50 2024-05-26 02:02:27 +02:00 Compare
kjuulh force-pushed renovate/all from 83841bdc50 to a81f90eb89 2024-05-26 02:33:18 +02:00 Compare
kjuulh force-pushed renovate/all from a81f90eb89 to 1b4bfff9a5 2024-05-26 03:04:16 +02:00 Compare
kjuulh force-pushed renovate/all from 1b4bfff9a5 to 72df8153b2 2024-05-26 04:02:00 +02:00 Compare
kjuulh force-pushed renovate/all from 72df8153b2 to 119a1ae784 2024-05-26 04:32:51 +02:00 Compare
kjuulh force-pushed renovate/all from 119a1ae784 to 0184ae3584 2024-05-26 05:03:53 +02:00 Compare
kjuulh force-pushed renovate/all from 0184ae3584 to 1008acc90c 2024-05-26 05:34:24 +02:00 Compare
kjuulh force-pushed renovate/all from 1008acc90c to 20626d963d 2024-05-26 06:16:29 +02:00 Compare
kjuulh force-pushed renovate/all from 20626d963d to 593b2e12fa 2024-05-26 07:00:37 +02:00 Compare
kjuulh force-pushed renovate/all from 593b2e12fa to 148ba63b96 2024-05-26 07:30:11 +02:00 Compare
kjuulh force-pushed renovate/all from 148ba63b96 to f84c5f38c3 2024-05-26 08:02:11 +02:00 Compare
kjuulh force-pushed renovate/all from f84c5f38c3 to 7bc5320a35 2024-05-26 08:32:35 +02:00 Compare
kjuulh force-pushed renovate/all from 7bc5320a35 to 76a73551d7 2024-05-26 09:03:37 +02:00 Compare
kjuulh force-pushed renovate/all from 76a73551d7 to 30b43f6bd5 2024-05-26 09:34:45 +02:00 Compare
kjuulh force-pushed renovate/all from 30b43f6bd5 to baa272bb1f 2024-05-26 10:06:00 +02:00 Compare
kjuulh force-pushed renovate/all from baa272bb1f to 2f9c6e51f0 2024-05-26 10:36:39 +02:00 Compare
kjuulh force-pushed renovate/all from 2f9c6e51f0 to 5520755f62 2024-05-26 11:07:39 +02:00 Compare
kjuulh force-pushed renovate/all from 5520755f62 to 7f991020a7 2024-05-26 11:53:22 +02:00 Compare
kjuulh force-pushed renovate/all from 7f991020a7 to 16e7a7c2ac 2024-05-26 12:15:01 +02:00 Compare
kjuulh force-pushed renovate/all from 16e7a7c2ac to f06782bcd7 2024-05-26 12:58:33 +02:00 Compare
kjuulh force-pushed renovate/all from f06782bcd7 to 3fb11450c5 2024-05-26 13:26:47 +02:00 Compare
kjuulh force-pushed renovate/all from 3fb11450c5 to 7aba9707ce 2024-07-06 15:26:29 +02:00 Compare
kjuulh force-pushed renovate/all from 7aba9707ce to cd15e83e37 2024-08-21 22:44:15 +02:00 Compare
kjuulh force-pushed renovate/all from cd15e83e37 to 76284e1d26 2024-08-22 00:18:58 +02:00 Compare
kjuulh force-pushed renovate/all from 76284e1d26 to d37e3b37dd 2024-08-22 01:20:53 +02:00 Compare
kjuulh force-pushed renovate/all from d37e3b37dd to 0ea5a03b5f 2024-08-22 02:00:03 +02:00 Compare
kjuulh force-pushed renovate/all from 0ea5a03b5f to fe7f61ca16 2024-08-22 02:38:56 +02:00 Compare
kjuulh force-pushed renovate/all from fe7f61ca16 to fa2d5f81d6 2024-08-22 03:14:50 +02:00 Compare
kjuulh force-pushed renovate/all from fa2d5f81d6 to 2c5b1f6c12 2024-08-22 03:45:52 +02:00 Compare
kjuulh force-pushed renovate/all from 2c5b1f6c12 to e983d95eba 2024-08-22 04:15:09 +02:00 Compare
kjuulh force-pushed renovate/all from e983d95eba to f0bbe7dc01 2024-08-22 04:45:26 +02:00 Compare
kjuulh force-pushed renovate/all from f0bbe7dc01 to 8a2848ef75 2024-08-22 05:16:56 +02:00 Compare
kjuulh force-pushed renovate/all from 8a2848ef75 to fb0b0664aa 2024-08-22 05:47:50 +02:00 Compare
kjuulh force-pushed renovate/all from fb0b0664aa to a4c510f6b5 2024-08-22 06:16:54 +02:00 Compare
kjuulh force-pushed renovate/all from a4c510f6b5 to f760e8f50a 2024-08-22 06:56:40 +02:00 Compare
kjuulh force-pushed renovate/all from f760e8f50a to bb23f7cfce 2024-08-22 07:26:49 +02:00 Compare
kjuulh force-pushed renovate/all from bb23f7cfce to bca8faf6bf 2024-08-22 07:57:44 +02:00 Compare
kjuulh force-pushed renovate/all from bca8faf6bf to 313f933ab2 2024-08-22 08:28:31 +02:00 Compare
kjuulh force-pushed renovate/all from 313f933ab2 to 2addaeeeab 2024-08-22 09:08:24 +02:00 Compare
kjuulh force-pushed renovate/all from 2addaeeeab to 70c930dbae 2024-08-22 09:49:48 +02:00 Compare
kjuulh force-pushed renovate/all from 70c930dbae to 19c9f68ea3 2024-08-22 10:33:39 +02:00 Compare
kjuulh force-pushed renovate/all from 19c9f68ea3 to 8adfbb31f9 2024-08-22 11:19:31 +02:00 Compare
kjuulh force-pushed renovate/all from 8adfbb31f9 to b4e9222e3e 2024-08-22 12:17:19 +02:00 Compare
kjuulh force-pushed renovate/all from b4e9222e3e to 0f883819ab 2024-08-22 13:11:49 +02:00 Compare
kjuulh force-pushed renovate/all from 0f883819ab to 91caa893e9 2024-08-22 13:42:06 +02:00 Compare
kjuulh force-pushed renovate/all from 91caa893e9 to 8b0926a117 2024-08-22 14:20:41 +02:00 Compare
kjuulh force-pushed renovate/all from 8b0926a117 to 5842d5868c 2024-08-22 15:01:19 +02:00 Compare
kjuulh force-pushed renovate/all from 5842d5868c to 51865b1af3 2024-08-22 15:45:07 +02:00 Compare
kjuulh force-pushed renovate/all from 51865b1af3 to 6459588bbf 2024-08-22 16:26:19 +02:00 Compare
kjuulh force-pushed renovate/all from 6459588bbf to ee4a2db800 2024-08-22 17:12:01 +02:00 Compare
kjuulh force-pushed renovate/all from ee4a2db800 to 135239773f 2024-08-29 14:52:38 +02:00 Compare
kjuulh force-pushed renovate/all from 135239773f to 5085b91920 2024-09-20 02:25:34 +02:00 Compare
kjuulh force-pushed renovate/all from 5085b91920 to 9a334908f7 2024-09-29 02:20:34 +02:00 Compare
kjuulh force-pushed renovate/all from 9a334908f7 to bb16cb639a 2024-09-29 06:18:09 +02:00 Compare
kjuulh force-pushed renovate/all from bb16cb639a to 9c2afb3022 2024-09-30 02:18:42 +02:00 Compare
kjuulh force-pushed renovate/all from 9c2afb3022 to 925777c2cc 2024-09-30 06:19:00 +02:00 Compare
kjuulh force-pushed renovate/all from 925777c2cc to 642d8041d7 2024-10-01 02:20:35 +02:00 Compare
kjuulh force-pushed renovate/all from 642d8041d7 to 85089c568f 2024-10-01 06:19:39 +02:00 Compare
kjuulh force-pushed renovate/all from 85089c568f to 4b90da1e92 2024-10-02 02:20:12 +02:00 Compare
kjuulh force-pushed renovate/all from 4b90da1e92 to 141366cf4a 2024-10-02 06:18:25 +02:00 Compare
kjuulh force-pushed renovate/all from 141366cf4a to e2b49d0ff2 2024-10-03 02:20:47 +02:00 Compare
kjuulh force-pushed renovate/all from e2b49d0ff2 to b78e15f539 2024-10-03 06:18:31 +02:00 Compare
kjuulh force-pushed renovate/all from b78e15f539 to aa458b21ca 2024-10-04 02:19:13 +02:00 Compare
kjuulh force-pushed renovate/all from aa458b21ca to f49ba69300 2024-10-04 06:16:58 +02:00 Compare
kjuulh force-pushed renovate/all from f49ba69300 to 512edecd45 2024-10-05 02:17:54 +02:00 Compare
kjuulh force-pushed renovate/all from 512edecd45 to 1d11254d22 2024-10-05 06:17:22 +02:00 Compare
kjuulh force-pushed renovate/all from 1d11254d22 to 01c1e67643 2024-10-06 02:19:39 +02:00 Compare
kjuulh force-pushed renovate/all from 01c1e67643 to b1c1d88dbb 2024-10-06 06:18:56 +02:00 Compare
kjuulh force-pushed renovate/all from b1c1d88dbb to 5b01f4e1c7 2024-10-07 02:17:40 +02:00 Compare
kjuulh force-pushed renovate/all from 5b01f4e1c7 to 078a7a026c 2024-10-07 06:17:24 +02:00 Compare
kjuulh force-pushed renovate/all from 078a7a026c to 1cfa9fd4f2 2024-10-08 02:18:45 +02:00 Compare
kjuulh force-pushed renovate/all from 1cfa9fd4f2 to 260244773d 2024-10-08 06:17:16 +02:00 Compare
kjuulh force-pushed renovate/all from 260244773d to 84e6c672e3 2024-10-09 02:19:10 +02:00 Compare
kjuulh force-pushed renovate/all from 84e6c672e3 to 50288c9666 2024-10-09 06:18:33 +02:00 Compare
kjuulh force-pushed renovate/all from 50288c9666 to 4530d2b575 2024-10-10 02:20:31 +02:00 Compare
kjuulh force-pushed renovate/all from 4530d2b575 to 585c04d25e 2024-10-10 06:19:20 +02:00 Compare
kjuulh force-pushed renovate/all from 585c04d25e to c511ca44ce 2024-10-11 02:18:57 +02:00 Compare
kjuulh force-pushed renovate/all from c511ca44ce to ff648ba130 2024-10-11 06:18:56 +02:00 Compare
kjuulh force-pushed renovate/all from ff648ba130 to b3c0ff1a04 2024-10-12 02:18:56 +02:00 Compare
kjuulh force-pushed renovate/all from b3c0ff1a04 to 7b440df87e 2024-10-12 06:18:51 +02:00 Compare
kjuulh force-pushed renovate/all from 7b440df87e to fc55173353 2024-10-13 02:17:54 +02:00 Compare
kjuulh force-pushed renovate/all from fc55173353 to b1234cb326 2024-10-13 06:17:51 +02:00 Compare
kjuulh force-pushed renovate/all from b1234cb326 to ccfe629796 2024-10-14 02:18:34 +02:00 Compare
kjuulh force-pushed renovate/all from ccfe629796 to d9287805a2 2024-10-14 06:18:25 +02:00 Compare
kjuulh force-pushed renovate/all from d9287805a2 to 0e6a98e975 2024-10-15 02:18:03 +02:00 Compare
kjuulh force-pushed renovate/all from 0e6a98e975 to 0aa922d64b 2024-10-15 06:18:40 +02:00 Compare
kjuulh force-pushed renovate/all from 0aa922d64b to d2e49e7e43 2024-10-16 02:19:10 +02:00 Compare
kjuulh force-pushed renovate/all from d2e49e7e43 to 734c41a076 2024-10-16 06:19:20 +02:00 Compare
kjuulh force-pushed renovate/all from 734c41a076 to d7295f8c4b 2024-10-17 02:21:06 +02:00 Compare
kjuulh force-pushed renovate/all from d7295f8c4b to 6316bbfc84 2024-10-17 06:19:44 +02:00 Compare
kjuulh force-pushed renovate/all from 6316bbfc84 to 14a1efef4f 2024-10-18 02:21:40 +02:00 Compare
kjuulh force-pushed renovate/all from 14a1efef4f to 6c909e2a80 2024-10-18 06:19:35 +02:00 Compare
kjuulh force-pushed renovate/all from 6c909e2a80 to 8939115d39 2024-10-19 02:20:26 +02:00 Compare
kjuulh force-pushed renovate/all from 8939115d39 to b1c6cb7f2e 2024-10-19 06:21:14 +02:00 Compare
kjuulh force-pushed renovate/all from b1c6cb7f2e to 06fc9b10cf 2024-10-20 02:21:37 +02:00 Compare
kjuulh force-pushed renovate/all from 06fc9b10cf to e372fd717a 2024-10-20 06:20:33 +02:00 Compare
kjuulh force-pushed renovate/all from e372fd717a to da599d2014 2024-10-21 02:18:46 +02:00 Compare
kjuulh force-pushed renovate/all from da599d2014 to 73c4a64ceb 2024-10-21 06:18:51 +02:00 Compare
kjuulh force-pushed renovate/all from 73c4a64ceb to 1b7d07bdc6 2024-10-22 02:20:12 +02:00 Compare
kjuulh force-pushed renovate/all from 1b7d07bdc6 to 816de894b5 2024-10-22 06:19:26 +02:00 Compare
kjuulh force-pushed renovate/all from 816de894b5 to 830b9a4ddc 2024-10-23 02:22:08 +02:00 Compare
kjuulh force-pushed renovate/all from 830b9a4ddc to 4b218a12bd 2024-10-23 06:23:47 +02:00 Compare
kjuulh force-pushed renovate/all from 4b218a12bd to fa88d2a2df 2024-10-24 02:21:31 +02:00 Compare
kjuulh force-pushed renovate/all from fa88d2a2df to c3ab292f57 2024-10-24 06:20:36 +02:00 Compare
kjuulh force-pushed renovate/all from c3ab292f57 to 25f3ba5eac 2024-10-25 02:20:09 +02:00 Compare
kjuulh force-pushed renovate/all from 25f3ba5eac to d8bb08da36 2024-10-25 06:19:42 +02:00 Compare
kjuulh force-pushed renovate/all from d8bb08da36 to 08cb7a016f 2024-10-26 02:20:03 +02:00 Compare
kjuulh force-pushed renovate/all from 08cb7a016f to a2e765550e 2024-10-26 06:19:20 +02:00 Compare
kjuulh force-pushed renovate/all from a2e765550e to ef6486a71d 2024-10-27 02:32:24 +02:00 Compare
kjuulh force-pushed renovate/all from ef6486a71d to 191bb28dd8 2024-10-27 06:19:34 +01:00 Compare
kjuulh force-pushed renovate/all from 191bb28dd8 to 7518c5a0e2 2024-10-28 02:19:11 +01:00 Compare
kjuulh force-pushed renovate/all from 7518c5a0e2 to 773e5f66c7 2024-10-28 06:20:12 +01:00 Compare
kjuulh force-pushed renovate/all from 773e5f66c7 to 975c5dc249 2024-10-29 02:21:47 +01:00 Compare
kjuulh force-pushed renovate/all from 975c5dc249 to 32a74b2e66 2024-10-29 06:20:02 +01:00 Compare
kjuulh force-pushed renovate/all from 32a74b2e66 to ae16bbf1e4 2024-10-30 02:20:55 +01:00 Compare
kjuulh force-pushed renovate/all from ae16bbf1e4 to 3931b0706c 2024-10-30 06:20:11 +01:00 Compare
kjuulh force-pushed renovate/all from 3931b0706c to ca99342ddf 2024-10-31 02:20:35 +01:00 Compare
kjuulh force-pushed renovate/all from ca99342ddf to 3df198d532 2024-10-31 06:20:12 +01:00 Compare
kjuulh force-pushed renovate/all from 3df198d532 to 9ca6412fc3 2024-11-01 02:22:13 +01:00 Compare
kjuulh force-pushed renovate/all from 9ca6412fc3 to b157a177d4 2024-11-01 06:20:58 +01:00 Compare
kjuulh force-pushed renovate/all from b157a177d4 to c7b9e4b15d 2024-11-02 02:20:39 +01:00 Compare
kjuulh force-pushed renovate/all from c7b9e4b15d to 0b9b24d3c5 2024-11-02 06:19:59 +01:00 Compare
kjuulh force-pushed renovate/all from 0b9b24d3c5 to 521941ede0 2024-11-04 02:17:18 +01:00 Compare
kjuulh force-pushed renovate/all from 521941ede0 to c64e00ff4f 2024-11-04 06:16:31 +01:00 Compare
kjuulh force-pushed renovate/all from c64e00ff4f to 06d72b4a1d 2024-11-05 02:17:57 +01:00 Compare
kjuulh force-pushed renovate/all from 06d72b4a1d to 2bb17407e0 2024-11-05 06:18:02 +01:00 Compare
kjuulh force-pushed renovate/all from 2bb17407e0 to ff72d5c98c 2024-11-06 02:16:40 +01:00 Compare
kjuulh force-pushed renovate/all from ff72d5c98c to 254c77c985 2024-11-06 06:16:40 +01:00 Compare
kjuulh force-pushed renovate/all from 254c77c985 to 2aba10aad8 2024-11-07 02:18:25 +01:00 Compare
kjuulh force-pushed renovate/all from 2aba10aad8 to d59f7604cd 2024-11-07 06:17:17 +01:00 Compare
kjuulh force-pushed renovate/all from d59f7604cd to f9ff070968 2024-11-08 02:18:42 +01:00 Compare
kjuulh force-pushed renovate/all from f9ff070968 to 87c43fd1c2 2024-11-08 06:18:01 +01:00 Compare
kjuulh force-pushed renovate/all from 87c43fd1c2 to 12b186a763 2024-11-09 02:18:34 +01:00 Compare
kjuulh force-pushed renovate/all from 12b186a763 to fccf20d2d9 2024-11-09 06:17:53 +01:00 Compare
kjuulh force-pushed renovate/all from fccf20d2d9 to 0afc774d9d 2024-11-10 02:17:53 +01:00 Compare
kjuulh force-pushed renovate/all from 0afc774d9d to 075b857e38 2024-11-10 06:21:31 +01:00 Compare
kjuulh force-pushed renovate/all from 075b857e38 to 004f0e9851 2024-11-11 02:18:17 +01:00 Compare
kjuulh force-pushed renovate/all from 004f0e9851 to 3e8eda2765 2024-11-11 06:17:17 +01:00 Compare
kjuulh force-pushed renovate/all from 3e8eda2765 to 680e1b5404 2024-11-12 02:17:35 +01:00 Compare
kjuulh force-pushed renovate/all from 680e1b5404 to 81aa842b7e 2024-11-12 06:17:49 +01:00 Compare
kjuulh force-pushed renovate/all from 81aa842b7e to be97567cf1 2024-11-13 02:23:57 +01:00 Compare
kjuulh force-pushed renovate/all from be97567cf1 to 167dcc0d63 2024-11-13 06:21:15 +01:00 Compare
kjuulh force-pushed renovate/all from 167dcc0d63 to ff67aefc89 2024-11-14 02:19:31 +01:00 Compare
kjuulh force-pushed renovate/all from ff67aefc89 to 9c92b488eb 2024-11-14 06:22:24 +01:00 Compare
kjuulh force-pushed renovate/all from 9c92b488eb to 0804597abc 2024-11-15 02:18:16 +01:00 Compare
kjuulh force-pushed renovate/all from 0804597abc to e0fdd6f348 2024-11-15 06:20:01 +01:00 Compare
kjuulh force-pushed renovate/all from e0fdd6f348 to edd7d52d51 2024-11-16 02:20:31 +01:00 Compare
kjuulh force-pushed renovate/all from edd7d52d51 to 0a5569cdd4 2024-11-16 06:20:26 +01:00 Compare
kjuulh force-pushed renovate/all from 0a5569cdd4 to a20d45db8f 2024-11-17 02:18:43 +01:00 Compare
kjuulh force-pushed renovate/all from a20d45db8f to ac6084b6d4 2024-11-17 06:18:41 +01:00 Compare
kjuulh force-pushed renovate/all from ac6084b6d4 to dbaed750ff 2024-11-18 02:17:43 +01:00 Compare
kjuulh force-pushed renovate/all from dbaed750ff to 260e958efc 2024-11-18 06:17:51 +01:00 Compare
kjuulh force-pushed renovate/all from 260e958efc to dbcdb0a614 2024-11-19 02:18:03 +01:00 Compare
kjuulh force-pushed renovate/all from dbcdb0a614 to 03ef2664bd 2024-11-19 06:18:02 +01:00 Compare
kjuulh force-pushed renovate/all from 03ef2664bd to b4b04de000 2024-11-20 02:19:26 +01:00 Compare
kjuulh force-pushed renovate/all from b4b04de000 to e64243dacf 2024-11-20 06:18:17 +01:00 Compare
kjuulh force-pushed renovate/all from e64243dacf to 08bbaf5430 2024-11-21 02:19:40 +01:00 Compare
kjuulh force-pushed renovate/all from 08bbaf5430 to 8521c5471d 2024-11-21 06:17:34 +01:00 Compare
kjuulh force-pushed renovate/all from 8521c5471d to 546ea6c862 2024-11-22 02:21:45 +01:00 Compare
kjuulh force-pushed renovate/all from 546ea6c862 to 00e5f6cafa 2024-11-22 06:21:30 +01:00 Compare
kjuulh force-pushed renovate/all from 00e5f6cafa to c65b0f1efa 2024-11-23 02:25:09 +01:00 Compare
kjuulh force-pushed renovate/all from c65b0f1efa to 55c7555757 2024-11-23 06:27:33 +01:00 Compare
kjuulh force-pushed renovate/all from 55c7555757 to fe51ad69fc 2024-11-24 02:26:38 +01:00 Compare
kjuulh force-pushed renovate/all from fe51ad69fc to d2c624f6a9 2024-11-24 06:24:09 +01:00 Compare
kjuulh force-pushed renovate/all from d2c624f6a9 to 96e5af996f 2024-11-25 02:21:47 +01:00 Compare
kjuulh force-pushed renovate/all from 96e5af996f to ea97e0060b 2024-11-25 06:23:20 +01:00 Compare
kjuulh force-pushed renovate/all from ea97e0060b to 4ddbe78c8f 2024-11-26 02:38:04 +01:00 Compare
kjuulh force-pushed renovate/all from 4ddbe78c8f to 6ae9173501 2024-11-26 06:22:30 +01:00 Compare
kjuulh force-pushed renovate/all from 6ae9173501 to caac1d6fd6 2024-11-27 02:44:49 +01:00 Compare
kjuulh force-pushed renovate/all from caac1d6fd6 to 9f6697a171 2024-11-27 06:21:12 +01:00 Compare
kjuulh force-pushed renovate/all from 9f6697a171 to 813f836200 2024-11-28 02:22:07 +01:00 Compare
kjuulh force-pushed renovate/all from 813f836200 to 5ee03975c0 2024-11-28 06:20:54 +01:00 Compare
kjuulh force-pushed renovate/all from 5ee03975c0 to 663769e0f0 2024-11-29 02:20:40 +01:00 Compare
kjuulh force-pushed renovate/all from 663769e0f0 to eb0ea8892b 2024-11-29 06:20:33 +01:00 Compare
kjuulh force-pushed renovate/all from eb0ea8892b to f9061c75e6 2024-11-30 02:32:35 +01:00 Compare
kjuulh force-pushed renovate/all from f9061c75e6 to efad10f7e9 2024-11-30 06:37:49 +01:00 Compare
kjuulh force-pushed renovate/all from efad10f7e9 to 3a728ba06a 2024-12-01 02:21:01 +01:00 Compare
kjuulh force-pushed renovate/all from 3a728ba06a to b1b9fee4af 2024-12-01 06:20:46 +01:00 Compare
kjuulh force-pushed renovate/all from b1b9fee4af to 452eef1f5e 2024-12-02 02:39:43 +01:00 Compare
kjuulh force-pushed renovate/all from 452eef1f5e to 29efa688b5 2024-12-02 06:29:22 +01:00 Compare
kjuulh force-pushed renovate/all from 29efa688b5 to 90d73bcd92 2024-12-03 02:19:51 +01:00 Compare
kjuulh force-pushed renovate/all from 90d73bcd92 to 9acc5ece86 2024-12-03 06:20:32 +01:00 Compare
kjuulh force-pushed renovate/all from 9acc5ece86 to b98d0760d6 2024-12-04 02:25:06 +01:00 Compare
kjuulh force-pushed renovate/all from b98d0760d6 to 968f1ac3a5 2024-12-04 06:21:06 +01:00 Compare
kjuulh force-pushed renovate/all from 968f1ac3a5 to 921fc35edd 2024-12-05 02:23:38 +01:00 Compare
kjuulh force-pushed renovate/all from 921fc35edd to ff7d458ae5 2024-12-05 06:20:48 +01:00 Compare
kjuulh force-pushed renovate/all from ff7d458ae5 to 1fb6717a88 2024-12-06 02:26:55 +01:00 Compare
kjuulh force-pushed renovate/all from 1fb6717a88 to 49d11d244b 2024-12-06 06:21:27 +01:00 Compare
kjuulh force-pushed renovate/all from 49d11d244b to 92640baa69 2024-12-07 02:25:46 +01:00 Compare
kjuulh force-pushed renovate/all from 92640baa69 to 54a98055e9 2024-12-07 06:21:15 +01:00 Compare
kjuulh force-pushed renovate/all from 54a98055e9 to cb65ea89ab 2024-12-08 02:20:18 +01:00 Compare
kjuulh force-pushed renovate/all from cb65ea89ab to d4b0bbde6f 2024-12-08 06:22:44 +01:00 Compare
kjuulh force-pushed renovate/all from d4b0bbde6f to 6b464d62fd 2024-12-09 02:21:39 +01:00 Compare
kjuulh force-pushed renovate/all from 6b464d62fd to 5112960631 2024-12-09 06:32:54 +01:00 Compare
kjuulh force-pushed renovate/all from 5112960631 to 19e1bbecc1 2024-12-10 02:21:54 +01:00 Compare
kjuulh force-pushed renovate/all from 19e1bbecc1 to 2f3311c20d 2024-12-10 06:21:48 +01:00 Compare
kjuulh force-pushed renovate/all from 2f3311c20d to 7374d1bb76 2024-12-11 02:29:24 +01:00 Compare
kjuulh force-pushed renovate/all from 7374d1bb76 to f4f91c42f6 2024-12-11 06:19:56 +01:00 Compare
kjuulh force-pushed renovate/all from f4f91c42f6 to 949255e154 2024-12-12 02:21:27 +01:00 Compare
kjuulh force-pushed renovate/all from 949255e154 to 4166d3a4ae 2024-12-12 06:19:45 +01:00 Compare
kjuulh force-pushed renovate/all from 4166d3a4ae to b636e84eda 2024-12-13 02:20:41 +01:00 Compare
kjuulh force-pushed renovate/all from b636e84eda to 3a76219892 2024-12-13 06:19:48 +01:00 Compare
kjuulh force-pushed renovate/all from 3a76219892 to cd9713fa18 2024-12-14 02:19:41 +01:00 Compare
kjuulh force-pushed renovate/all from cd9713fa18 to e13b67183b 2024-12-14 06:19:49 +01:00 Compare
kjuulh force-pushed renovate/all from e13b67183b to a49781ac8e 2024-12-15 02:18:52 +01:00 Compare
kjuulh force-pushed renovate/all from a49781ac8e to 2e5cc25bf1 2024-12-15 06:18:50 +01:00 Compare
kjuulh force-pushed renovate/all from 2e5cc25bf1 to 451e010b19 2024-12-16 02:22:41 +01:00 Compare
kjuulh force-pushed renovate/all from 451e010b19 to 979ebb684c 2024-12-16 06:21:27 +01:00 Compare
kjuulh force-pushed renovate/all from 979ebb684c to 55d3bb7a3e 2024-12-17 02:20:47 +01:00 Compare
kjuulh force-pushed renovate/all from 55d3bb7a3e to d2bba83a7f 2024-12-17 06:22:26 +01:00 Compare
kjuulh force-pushed renovate/all from d2bba83a7f to 7a9fa33f6f 2024-12-18 02:21:54 +01:00 Compare
kjuulh force-pushed renovate/all from 7a9fa33f6f to e281edfb6e 2024-12-18 06:19:08 +01:00 Compare
kjuulh force-pushed renovate/all from e281edfb6e to 44cb7132a7 2024-12-19 02:22:08 +01:00 Compare
kjuulh force-pushed renovate/all from 44cb7132a7 to 7d04053254 2024-12-19 06:19:16 +01:00 Compare
kjuulh force-pushed renovate/all from 7d04053254 to 323728244a 2024-12-20 02:20:21 +01:00 Compare
kjuulh force-pushed renovate/all from 323728244a to b0200e0752 2024-12-20 06:21:00 +01:00 Compare
kjuulh force-pushed renovate/all from b0200e0752 to 78c103b7fe 2024-12-21 02:22:29 +01:00 Compare
kjuulh force-pushed renovate/all from 78c103b7fe to 7dfb56cae8 2024-12-21 06:19:17 +01:00 Compare
kjuulh force-pushed renovate/all from 7dfb56cae8 to cd069b61e9 2024-12-22 02:20:28 +01:00 Compare
kjuulh force-pushed renovate/all from cd069b61e9 to e3f887adee 2024-12-22 06:19:16 +01:00 Compare
kjuulh force-pushed renovate/all from e3f887adee to 08aba16025 2024-12-23 02:23:35 +01:00 Compare
kjuulh force-pushed renovate/all from 08aba16025 to 6a5b042977 2024-12-23 06:24:54 +01:00 Compare
kjuulh force-pushed renovate/all from 6a5b042977 to 503cd28d52 2024-12-24 02:25:47 +01:00 Compare
kjuulh force-pushed renovate/all from 503cd28d52 to 0cd80daad0 2024-12-24 06:19:05 +01:00 Compare
kjuulh force-pushed renovate/all from 0cd80daad0 to 12fedabfd1 2024-12-25 02:24:04 +01:00 Compare
kjuulh force-pushed renovate/all from 12fedabfd1 to 46d3f15dce 2024-12-25 06:20:42 +01:00 Compare
kjuulh force-pushed renovate/all from 46d3f15dce to fa108d858d 2024-12-26 02:22:24 +01:00 Compare
kjuulh force-pushed renovate/all from fa108d858d to bbc0b94aac 2024-12-26 06:20:30 +01:00 Compare
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all:renovate/all
git checkout renovate/all
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kjuulh/como#19
No description provided.