chore(deps): update all dependencies #8

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

This PR contains the following updates:

Package Type Update Change
@types/node (source) devDependencies major ^20 -> ^22.0.0
autoprefixer devDependencies patch 10.4.19 -> 10.4.20
axum workspace.dependencies patch 0.7.5 -> 0.7.9
http workspace.dependencies minor 1.1.0 -> 1.2.0
leptos workspace.dependencies minor 0.6 -> 0.7
leptos_axum workspace.dependencies minor 0.6 -> 0.7
leptos_meta workspace.dependencies minor 0.6 -> 0.7
leptos_router workspace.dependencies minor 0.6 -> 0.7
postcss (source) devDependencies patch 8.4.38 -> 8.4.49
server_fn workspace.dependencies minor 0.6 -> 0.7
sqlx dependencies minor 0.7.3 -> 0.8.0
tailwindcss (source) devDependencies patch 3.4.3 -> 3.4.17
thiserror workspace.dependencies major 1 -> 2
tokio (source) workspace.dependencies minor 1.39.3 -> 1.42.0
tower workspace.dependencies patch 0.5.0 -> 0.5.2
tower-http dependencies minor 0.5.2 -> 0.6.0
tower-http workspace.dependencies minor 0.5 -> 0.6
typescript (source) devDependencies minor 5.4.4 -> 5.7.2
uuid dependencies minor 1.7.0 -> 1.11.0

Release Notes

postcss/autoprefixer (autoprefixer)

v10.4.20

Compare Source

  • Fixed fit-content prefix for Firefox.
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)
hyperium/http (http)

v1.2.0

Compare Source

  • Add StatusCode::TOO_EARLY constant for 425 status.
  • Loosen TryFrom<HashMap> for HeaderMap to work with any state generic.
  • Change Builder methods to use TryInto instead of TryFrom arguments.
  • Make StatusCode::as_u16 a const function.
  • Fix Method parsing to allow #$%&' characters.
  • Fix HeaderName parsing to reject " characters.
  • Fix off by 1 error in Method::from_bytes that could cause extra allocations.
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

postcss/postcss (postcss)

v8.4.49

Compare Source

v8.4.48

Compare Source

  • Fixed position calculation in error/warnings methods (by @​romainmenke).

v8.4.47

Compare Source

  • Removed debug code.

v8.4.46

Compare Source

  • Fixed Cannot read properties of undefined (reading 'before').

v8.4.45

Compare Source

  • Removed unnecessary fix which could lead to infinite loop.

v8.4.44

Compare Source

  • Another way to fix markClean is not a function error.

v8.4.43

Compare Source

  • Fixed markClean is not a function error.

v8.4.42

Compare Source

  • Fixed CSS syntax error on long minified files (by @​varpstar).

v8.4.41

Compare Source

v8.4.40

Compare Source

  • Moved to getter/setter in nodes types to help Sass team (by @​nex3).

v8.4.39

Compare Source

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!()`.
    
    
tailwindlabs/tailwindcss (tailwindcss)

v3.4.17

Compare Source

Fixed

v3.4.16

Compare Source

Fixed
  • Ensure the TypeScript types for PluginsConfig allow undefined values (#​14668)

Changed

v3.4.15

Compare Source

  • Bump versions for security vulnerabilities (#​14697)
  • Ensure the TypeScript types for the boxShadow theme configuration allows arrays (#​14856)
  • Set fallback for opacity variables to ensure setting colors with the selection:* variant works in Chrome 131 (#​15003)

v3.4.14

Compare Source

Fixed
  • Don't set display: none on elements that use hidden="until-found" (#​14625)

v3.4.13

Compare Source

Fixed
  • Improve source glob verification performance (#​14481)

v3.4.12

Compare Source

Fixed
  • Ensure using @apply with utilities that use @defaults works with rules defined in the base layer when using optimizeUniversalDefaults (#​14427)

v3.4.11

Compare Source

Fixed
  • Allow anchor-size(…) in arbitrary values (#​14393)

v3.4.10

Compare Source

Fixed
  • Bump versions of plugins in the Standalone CLI (#​14185)

v3.4.9

Compare Source

Fixed
  • No longer warns when broad glob patterns are detecting vendor folders

v3.4.8

Compare Source

Fixed
  • Fix minification when using nested CSS (#​14105)
  • Warn when broad glob patterns are used in the content configuration (#​14140)

v3.4.7

Compare Source

Fixed
  • Fix class detection in Slim templates with attached attributes and ID (#​14019)
  • Ensure attribute values in data-* and aria-* modifiers are always quoted in the generated CSS (#​14037)

v3.4.6

Compare Source

Fixed
  • Fix detection of some utilities in Slim/Pug templates (#​14006)
Changed
  • Loosen :is() wrapping rules when using an important selector (#​13900)

v3.4.5

Compare Source

Fixed
  • Disable automatic var() injection for anchor properties (#​13826)
  • Use no value instead of blur(0px) for backdrop-blur-none and blur-none utilities (#​13830)
  • Add .mts and .cts config file detection (#​13940)
  • Don't generate utilities like px-1 unnecessarily when using utilities like px-1.5 (#​13959)
  • Always generate -webkit-backdrop-filter for backdrop-* utilities (#​13997)

v3.4.4

Compare Source

Fixed
  • Make it possible to use multiple <alpha-value> placeholders in a single color definition (#​13740)
  • Don't prefix classes in arbitrary values of has-*, group-has-*, and peer-has-* variants (#​13770)
  • Support negative values for {col,row}-{start,end} utilities (#​13781)
  • Update embedded browserslist database (#​13792)
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

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)
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)
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)
microsoft/TypeScript (typescript)

v5.7.2: TypeScript 5.7

Compare Source

For release notes, check out the release announcement.

Downloads are available on:

v5.6.3: TypeScript 5.6.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.6.2: TypeScript 5.6

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.4: TypeScript 5.5.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.3: TypeScript 5.5.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.2: TypeScript 5.5

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.4.5: TypeScript 5.4.5

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

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


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 | |---|---|---|---| | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`^20` -> `^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.4/22.10.2) | | [autoprefixer](https://github.com/postcss/autoprefixer) | devDependencies | patch | [`10.4.19` -> `10.4.20`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.19/10.4.20) | | [axum](https://github.com/tokio-rs/axum) | workspace.dependencies | patch | `0.7.5` -> `0.7.9` | | [http](https://github.com/hyperium/http) | workspace.dependencies | minor | `1.1.0` -> `1.2.0` | | [leptos](https://github.com/leptos-rs/leptos) | workspace.dependencies | minor | `0.6` -> `0.7` | | [leptos_axum](https://github.com/leptos-rs/leptos) | workspace.dependencies | minor | `0.6` -> `0.7` | | [leptos_meta](https://github.com/leptos-rs/leptos) | workspace.dependencies | minor | `0.6` -> `0.7` | | [leptos_router](https://github.com/leptos-rs/leptos) | workspace.dependencies | minor | `0.6` -> `0.7` | | [postcss](https://postcss.org/) ([source](https://github.com/postcss/postcss)) | devDependencies | patch | [`8.4.38` -> `8.4.49`](https://renovatebot.com/diffs/npm/postcss/8.4.38/8.4.49) | | [server_fn](https://github.com/leptos-rs/leptos) | workspace.dependencies | minor | `0.6` -> `0.7` | | [sqlx](https://github.com/launchbadge/sqlx) | dependencies | minor | `0.7.3` -> `0.8.0` | | [tailwindcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss)) | devDependencies | patch | [`3.4.3` -> `3.4.17`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.3/3.4.17) | | [thiserror](https://github.com/dtolnay/thiserror) | workspace.dependencies | major | `1` -> `2` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.39.3` -> `1.42.0` | | [tower](https://github.com/tower-rs/tower) | workspace.dependencies | patch | `0.5.0` -> `0.5.2` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | minor | `0.5.2` -> `0.6.0` | | [tower-http](https://github.com/tower-rs/tower-http) | workspace.dependencies | minor | `0.5` -> `0.6` | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | devDependencies | minor | [`5.4.4` -> `5.7.2`](https://renovatebot.com/diffs/npm/typescript/5.4.4/5.7.2) | | [uuid](https://github.com/uuid-rs/uuid) | dependencies | minor | `1.7.0` -> `1.11.0` | --- ### Release Notes <details> <summary>postcss/autoprefixer (autoprefixer)</summary> ### [`v10.4.20`](https://github.com/postcss/autoprefixer/blob/HEAD/CHANGELOG.md#10420) [Compare Source](https://github.com/postcss/autoprefixer/compare/10.4.19...10.4.20) - Fixed `fit-content` prefix for Firefox. </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 </details> <details> <summary>hyperium/http (http)</summary> ### [`v1.2.0`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#120-December-3-2024) [Compare Source](https://github.com/hyperium/http/compare/v1.1.0...v1.2.0) - Add `StatusCode::TOO_EARLY` constant for 425 status. - Loosen `TryFrom<HashMap>` for `HeaderMap` to work with any state generic. - Change `Builder` methods to use `TryInto` instead of `TryFrom` arguments. - Make `StatusCode::as_u16` a `const` function. - Fix `Method` parsing to allow `#$%&'` characters. - Fix `HeaderName` parsing to reject `"` characters. - Fix off by 1 error in `Method::from_bytes` that could cause extra allocations. </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 </details> <details> <summary>postcss/postcss (postcss)</summary> ### [`v8.4.49`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8449) [Compare Source](https://github.com/postcss/postcss/compare/8.4.48...8.4.49) - Fixed custom syntax without `source.offset` (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.48`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8448) [Compare Source](https://github.com/postcss/postcss/compare/8.4.47...8.4.48) - Fixed position calculation in error/warnings methods (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.47`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8447) [Compare Source](https://github.com/postcss/postcss/compare/8.4.46...8.4.47) - Removed debug code. ### [`v8.4.46`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8446) [Compare Source](https://github.com/postcss/postcss/compare/8.4.45...8.4.46) - Fixed `Cannot read properties of undefined (reading 'before')`. ### [`v8.4.45`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8445) [Compare Source](https://github.com/postcss/postcss/compare/8.4.44...8.4.45) - Removed unnecessary fix which could lead to infinite loop. ### [`v8.4.44`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8444) [Compare Source](https://github.com/postcss/postcss/compare/8.4.43...8.4.44) - Another way to fix `markClean is not a function` error. ### [`v8.4.43`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8443) [Compare Source](https://github.com/postcss/postcss/compare/8.4.42...8.4.43) - Fixed `markClean is not a function` error. ### [`v8.4.42`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8442) [Compare Source](https://github.com/postcss/postcss/compare/8.4.41...8.4.42) - Fixed CSS syntax error on long minified files (by [@&#8203;varpstar](https://github.com/varpstar)). ### [`v8.4.41`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8441) [Compare Source](https://github.com/postcss/postcss/compare/8.4.40...8.4.41) - Fixed types (by [@&#8203;nex3](https://github.com/nex3) and [@&#8203;querkmachine](https://github.com/querkmachine)). - Cleaned up RegExps (by [@&#8203;bluwy](https://github.com/bluwy)). ### [`v8.4.40`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8440) [Compare Source](https://github.com/postcss/postcss/compare/8.4.39...8.4.40) - Moved to getter/setter in nodes types to help Sass team (by [@&#8203;nex3](https://github.com/nex3)). ### [`v8.4.39`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8439) [Compare Source](https://github.com/postcss/postcss/compare/8.4.38...8.4.39) - Fixed `CssSyntaxError` types (by [@&#8203;romainmenke](https://github.com/romainmenke)). </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 </details> <details> <summary>tailwindlabs/tailwindcss (tailwindcss)</summary> ### [`v3.4.17`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.17) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.16...v3.4.17) ##### Fixed - Work around Node v22.12+ issue ([#&#8203;15421](https://github.com/tailwindlabs/tailwindcss/pull/15421)) ### [`v3.4.16`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.16) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.15...v3.4.16) ##### Fixed - Ensure the TypeScript types for `PluginsConfig` allow `undefined` values ([#&#8203;14668](https://github.com/tailwindlabs/tailwindcss/pull/14668)) ### Changed - Bumped lilconfig to v3.x ([#&#8203;15289](https://github.com/tailwindlabs/tailwindcss/pull/15289)) ### [`v3.4.15`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.15) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.14...v3.4.15) - Bump versions for security vulnerabilities ([#&#8203;14697](https://github.com/tailwindlabs/tailwindcss/pull/14697)) - Ensure the TypeScript types for the `boxShadow` theme configuration allows arrays ([#&#8203;14856](https://github.com/tailwindlabs/tailwindcss/pull/14856)) - Set fallback for opacity variables to ensure setting colors with the `selection:*` variant works in Chrome 131 ([#&#8203;15003](https://github.com/tailwindlabs/tailwindcss/pull/15003)) ### [`v3.4.14`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.14) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14) ##### Fixed - Don't set `display: none` on elements that use `hidden="until-found"` ([#&#8203;14625](https://github.com/tailwindlabs/tailwindcss/pull/14625)) ### [`v3.4.13`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.13) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.12...v3.4.13) ##### Fixed - Improve source glob verification performance ([#&#8203;14481](https://github.com/tailwindlabs/tailwindcss/pull/14481)) ### [`v3.4.12`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.12) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.11...v3.4.12) ##### Fixed - Ensure using `@apply` with utilities that use `@defaults` works with rules defined in the base layer when using `optimizeUniversalDefaults` ([#&#8203;14427](https://github.com/tailwindlabs/tailwindcss/pull/14427)) ### [`v3.4.11`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11) ##### Fixed - Allow `anchor-size(…)` in arbitrary values ([#&#8203;14393](https://github.com/tailwindlabs/tailwindcss/pull/14393)) ### [`v3.4.10`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.10) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.9...v3.4.10) ##### Fixed - Bump versions of plugins in the Standalone CLI ([#&#8203;14185](https://github.com/tailwindlabs/tailwindcss/pull/14185)) ### [`v3.4.9`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.9) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.8...v3.4.9) ##### Fixed - No longer warns when broad glob patterns are detecting `vendor` folders ### [`v3.4.8`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.8) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.7...v3.4.8) ##### Fixed - Fix minification when using nested CSS ([#&#8203;14105](https://github.com/tailwindlabs/tailwindcss/pull/14105)) - Warn when broad glob patterns are used in the content configuration ([#&#8203;14140](https://github.com/tailwindlabs/tailwindcss/pull/14140)) ### [`v3.4.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.7) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.6...v3.4.7) ##### Fixed - Fix class detection in Slim templates with attached attributes and ID ([#&#8203;14019](https://github.com/tailwindlabs/tailwindcss/pull/14019)) - Ensure attribute values in `data-*` and `aria-*` modifiers are always quoted in the generated CSS ([#&#8203;14037](https://github.com/tailwindlabs/tailwindcss/pull/14037)) ### [`v3.4.6`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.6) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.5...v3.4.6) ##### Fixed - Fix detection of some utilities in Slim/Pug templates ([#&#8203;14006](https://github.com/tailwindlabs/tailwindcss/pull/14006)) ##### Changed - Loosen `:is()` wrapping rules when using an important selector ([#&#8203;13900](https://github.com/tailwindlabs/tailwindcss/pull/13900)) ### [`v3.4.5`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.5) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.4...v3.4.5) ##### Fixed - Disable automatic `var()` injection for anchor properties ([#&#8203;13826](https://github.com/tailwindlabs/tailwindcss/pull/13826)) - Use no value instead of `blur(0px)` for `backdrop-blur-none` and `blur-none` utilities ([#&#8203;13830](https://github.com/tailwindlabs/tailwindcss/pull/13830)) - Add `.mts` and `.cts` config file detection ([#&#8203;13940](https://github.com/tailwindlabs/tailwindcss/pull/13940)) - Don't generate utilities like `px-1` unnecessarily when using utilities like `px-1.5` ([#&#8203;13959](https://github.com/tailwindlabs/tailwindcss/pull/13959)) - Always generate `-webkit-backdrop-filter` for `backdrop-*` utilities ([#&#8203;13997](https://github.com/tailwindlabs/tailwindcss/pull/13997)) ### [`v3.4.4`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.4) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.3...v3.4.4) ##### Fixed - Make it possible to use multiple `<alpha-value>` placeholders in a single color definition ([#&#8203;13740](https://github.com/tailwindlabs/tailwindcss/pull/13740)) - Don't prefix classes in arbitrary values of `has-*`, `group-has-*`, and `peer-has-*` variants ([#&#8203;13770](https://github.com/tailwindlabs/tailwindcss/pull/13770)) - Support negative values for `{col,row}-{start,end}` utilities ([#&#8203;13781](https://github.com/tailwindlabs/tailwindcss/pull/13781)) - Update embedded browserslist database ([#&#8203;13792](https://github.com/tailwindlabs/tailwindcss/pull/13792)) </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)) </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 </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 </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 </details> <details> <summary>microsoft/TypeScript (typescript)</summary> ### [`v5.7.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.7.2): TypeScript 5.7 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.6.3...v5.7.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/). - [fixed issues query for Typescript 5.7.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.7.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.7.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.7.2%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v5.6.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.6.3): TypeScript 5.6.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.6.2...v5.6.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.6.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.3%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.6.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.6.2): TypeScript 5.6 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.6.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.2%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.5.4`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.4): TypeScript 5.5.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.3...v5.5.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.4%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.3%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) (soon!) ### [`v5.5.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.3): TypeScript 5.5.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.2...v5.5.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.3%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.5.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.2): TypeScript 5.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.5...v5.5.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v5.4.5`](https://github.com/microsoft/TypeScript/releases/tag/v5.4.5): TypeScript 5.4.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.4...v5.4.5) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.5 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.5%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) </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 </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:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjQuMyIsInVwZGF0ZWRJblZlciI6IjM3LjQyNC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
kjuulh added 1 commit 2024-09-29 02:26:22 +02:00
chore(deps): update all dependencies
Some checks failed
renovate/artifacts Artifact file update failure
2d2dec67a7
kjuulh scheduled this pull request to auto merge when all checks succeed 2024-09-29 02:26:22 +02:00
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: cuddle-leptos/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-leptos/Cargo.toml --workspace
error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`)
 --> cuddle-leptos/crates/%%name%%/Cargo.toml:2:8
  |
2 | name = "%%name%%"
  |        ^^^^^^^^^^
  |
error: failed to load manifest for workspace member `/tmp/renovate/repos/gitea/kjuulh/cuddle-templates/cuddle-leptos/crates/%%name%%`
referenced by workspace at `/tmp/renovate/repos/gitea/kjuulh/cuddle-templates/cuddle-leptos/Cargo.toml`

File name: cuddle-rust-service/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-rust-service/crates/%%name%%/Cargo.toml --workspace
error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`)
 --> cuddle-rust-service/crates/%%name%%/Cargo.toml:2:8
  |
2 | name = "%%name%%"
  |        ^^^^^^^^^^
  |

File name: cuddle-rust-cli/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-rust-cli/crates/%%name%%/Cargo.toml --workspace
error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`)
 --> cuddle-rust-cli/crates/%%name%%/Cargo.toml:2:8
  |
2 | name = "%%name%%"
  |        ^^^^^^^^^^
  |

File name: cuddle-node-service/yarn.lock
error package.json: Name contains illegal characters

### ⚠️ 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: cuddle-leptos/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-leptos/Cargo.toml --workspace error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`) --> cuddle-leptos/crates/%%name%%/Cargo.toml:2:8 | 2 | name = "%%name%%" | ^^^^^^^^^^ | error: failed to load manifest for workspace member `/tmp/renovate/repos/gitea/kjuulh/cuddle-templates/cuddle-leptos/crates/%%name%%` referenced by workspace at `/tmp/renovate/repos/gitea/kjuulh/cuddle-templates/cuddle-leptos/Cargo.toml` ``` ##### File name: cuddle-rust-service/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-rust-service/crates/%%name%%/Cargo.toml --workspace error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`) --> cuddle-rust-service/crates/%%name%%/Cargo.toml:2:8 | 2 | name = "%%name%%" | ^^^^^^^^^^ | ``` ##### File name: cuddle-rust-cli/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path cuddle-rust-cli/crates/%%name%%/Cargo.toml --workspace error: invalid character `%` in package name: `%%name%%`, the first character must be a Unicode XID start character (most letters or `_`) --> cuddle-rust-cli/crates/%%name%%/Cargo.toml:2:8 | 2 | name = "%%name%%" | ^^^^^^^^^^ | ``` ##### File name: cuddle-node-service/yarn.lock ``` error package.json: Name contains illegal characters ```
kjuulh force-pushed renovate/all from 2d2dec67a7 to a8a59f797d 2024-09-29 06:23:22 +02:00 Compare
kjuulh force-pushed renovate/all from a8a59f797d to 0a0fa31761 2024-09-30 02:24:05 +02:00 Compare
kjuulh force-pushed renovate/all from 0a0fa31761 to 1f2628b355 2024-09-30 06:24:02 +02:00 Compare
kjuulh force-pushed renovate/all from 1f2628b355 to f2c3fd820d 2024-10-01 02:27:04 +02:00 Compare
kjuulh force-pushed renovate/all from f2c3fd820d to b6e62e71b4 2024-10-01 06:24:57 +02:00 Compare
kjuulh force-pushed renovate/all from b6e62e71b4 to 886dea3754 2024-10-02 02:26:51 +02:00 Compare
kjuulh force-pushed renovate/all from 886dea3754 to 422c085f49 2024-10-02 06:24:19 +02:00 Compare
kjuulh force-pushed renovate/all from 422c085f49 to 96e2a32c54 2024-10-03 02:26:23 +02:00 Compare
kjuulh force-pushed renovate/all from 96e2a32c54 to 9deffe76c4 2024-10-03 06:23:25 +02:00 Compare
kjuulh force-pushed renovate/all from 9deffe76c4 to 59d9b3852b 2024-10-04 02:24:40 +02:00 Compare
kjuulh force-pushed renovate/all from 59d9b3852b to 4ddccd81ae 2024-10-04 06:21:44 +02:00 Compare
kjuulh force-pushed renovate/all from 4ddccd81ae to d93d8d917b 2024-10-05 02:23:03 +02:00 Compare
kjuulh force-pushed renovate/all from d93d8d917b to 9c80743e6a 2024-10-05 06:22:24 +02:00 Compare
kjuulh force-pushed renovate/all from 9c80743e6a to 3fdd412d93 2024-10-06 02:25:28 +02:00 Compare
kjuulh force-pushed renovate/all from 3fdd412d93 to 09fafde603 2024-10-06 06:24:17 +02:00 Compare
kjuulh force-pushed renovate/all from 09fafde603 to 4c5961ae74 2024-10-07 02:22:55 +02:00 Compare
kjuulh force-pushed renovate/all from 4c5961ae74 to ca040b4ceb 2024-10-07 06:22:40 +02:00 Compare
kjuulh force-pushed renovate/all from ca040b4ceb to 7cbf0f5ee2 2024-10-08 02:24:21 +02:00 Compare
kjuulh force-pushed renovate/all from 7cbf0f5ee2 to 7beb29472a 2024-10-08 06:22:12 +02:00 Compare
kjuulh force-pushed renovate/all from 7beb29472a to 8384471a26 2024-10-09 02:26:28 +02:00 Compare
kjuulh force-pushed renovate/all from 8384471a26 to a4aa4189f5 2024-10-09 06:25:13 +02:00 Compare
kjuulh force-pushed renovate/all from a4aa4189f5 to 612a62c5bf 2024-10-10 02:27:12 +02:00 Compare
kjuulh force-pushed renovate/all from 612a62c5bf to 7cc0237ee1 2024-10-10 06:25:07 +02:00 Compare
kjuulh force-pushed renovate/all from 7cc0237ee1 to 757e4ac758 2024-10-11 02:25:33 +02:00 Compare
kjuulh force-pushed renovate/all from 757e4ac758 to 7e740c6fd5 2024-10-11 06:24:37 +02:00 Compare
kjuulh force-pushed renovate/all from 7e740c6fd5 to 194bb483ac 2024-10-12 02:25:11 +02:00 Compare
kjuulh force-pushed renovate/all from 194bb483ac to 394095fcc1 2024-10-12 06:25:04 +02:00 Compare
kjuulh force-pushed renovate/all from 394095fcc1 to 1ce1695132 2024-10-13 02:23:03 +02:00 Compare
kjuulh force-pushed renovate/all from 1ce1695132 to 32dd7879ba 2024-10-13 06:22:47 +02:00 Compare
kjuulh force-pushed renovate/all from 32dd7879ba to 3e55415874 2024-10-14 02:23:53 +02:00 Compare
kjuulh force-pushed renovate/all from 3e55415874 to 6725dc63b1 2024-10-14 06:23:46 +02:00 Compare
kjuulh force-pushed renovate/all from 6725dc63b1 to 95703c39b4 2024-10-15 02:23:22 +02:00 Compare
kjuulh force-pushed renovate/all from 95703c39b4 to 7e4e50d13f 2024-10-15 06:23:45 +02:00 Compare
kjuulh force-pushed renovate/all from 7e4e50d13f to ff7e1871b0 2024-10-16 02:24:08 +02:00 Compare
kjuulh force-pushed renovate/all from ff7e1871b0 to 6dd4585412 2024-10-16 06:24:29 +02:00 Compare
kjuulh force-pushed renovate/all from 6dd4585412 to 7f7615870a 2024-10-17 02:28:25 +02:00 Compare
kjuulh force-pushed renovate/all from 7f7615870a to baf52eca78 2024-10-17 06:25:08 +02:00 Compare
kjuulh force-pushed renovate/all from baf52eca78 to aea269594e 2024-10-18 02:28:28 +02:00 Compare
kjuulh force-pushed renovate/all from aea269594e to c71acffa98 2024-10-18 06:24:50 +02:00 Compare
kjuulh force-pushed renovate/all from c71acffa98 to def0e52bfb 2024-10-19 02:27:27 +02:00 Compare
kjuulh force-pushed renovate/all from def0e52bfb to 5fa6cabb77 2024-10-19 06:27:20 +02:00 Compare
kjuulh force-pushed renovate/all from 5fa6cabb77 to cdb15e11aa 2024-10-20 02:28:01 +02:00 Compare
kjuulh force-pushed renovate/all from cdb15e11aa to a3282afd47 2024-10-20 06:26:18 +02:00 Compare
kjuulh force-pushed renovate/all from a3282afd47 to 2b6c5e0f54 2024-10-21 02:24:33 +02:00 Compare
kjuulh force-pushed renovate/all from 2b6c5e0f54 to d568230fcd 2024-10-21 06:24:16 +02:00 Compare
kjuulh force-pushed renovate/all from d568230fcd to 5f536d8d92 2024-10-22 02:25:54 +02:00 Compare
kjuulh force-pushed renovate/all from 5f536d8d92 to 9058103f0b 2024-10-22 06:24:57 +02:00 Compare
kjuulh force-pushed renovate/all from 9058103f0b to 845e719a89 2024-10-23 02:30:21 +02:00 Compare
kjuulh force-pushed renovate/all from 845e719a89 to a32b7f5dda 2024-10-23 06:30:56 +02:00 Compare
kjuulh force-pushed renovate/all from a32b7f5dda to 70169b5f9f 2024-10-24 02:34:15 +02:00 Compare
kjuulh force-pushed renovate/all from 70169b5f9f to 382f207898 2024-10-24 06:27:59 +02:00 Compare
kjuulh force-pushed renovate/all from 382f207898 to e31c413f20 2024-10-25 02:27:41 +02:00 Compare
kjuulh force-pushed renovate/all from e31c413f20 to b9620997f9 2024-10-25 06:26:39 +02:00 Compare
kjuulh force-pushed renovate/all from b9620997f9 to 0bcf7d90a2 2024-10-26 02:27:07 +02:00 Compare
kjuulh force-pushed renovate/all from 0bcf7d90a2 to cb43ae26c9 2024-10-26 06:25:18 +02:00 Compare
kjuulh force-pushed renovate/all from cb43ae26c9 to 27706fe522 2024-10-27 02:43:10 +02:00 Compare
kjuulh force-pushed renovate/all from 27706fe522 to fb864ab584 2024-10-27 06:26:18 +01:00 Compare
kjuulh force-pushed renovate/all from fb864ab584 to 0dc041449a 2024-10-28 02:25:25 +01:00 Compare
kjuulh force-pushed renovate/all from 0dc041449a to 0971a2807b 2024-10-28 06:26:30 +01:00 Compare
kjuulh force-pushed renovate/all from 0971a2807b to 9d5180cbf8 2024-10-29 02:29:38 +01:00 Compare
kjuulh force-pushed renovate/all from 9d5180cbf8 to 9164e5c9c4 2024-10-29 06:27:12 +01:00 Compare
kjuulh force-pushed renovate/all from 9164e5c9c4 to c3e2522164 2024-10-30 02:27:32 +01:00 Compare
kjuulh force-pushed renovate/all from c3e2522164 to 06c21ac088 2024-10-30 06:26:00 +01:00 Compare
kjuulh force-pushed renovate/all from 06c21ac088 to 660aa1b600 2024-10-31 02:27:17 +01:00 Compare
kjuulh force-pushed renovate/all from 660aa1b600 to 50737c35fd 2024-10-31 06:26:19 +01:00 Compare
kjuulh force-pushed renovate/all from 50737c35fd to 009fbf3d58 2024-11-01 02:30:05 +01:00 Compare
kjuulh force-pushed renovate/all from 009fbf3d58 to 63c6646dcb 2024-11-01 06:26:19 +01:00 Compare
kjuulh force-pushed renovate/all from 63c6646dcb to f998cafdbb 2024-11-02 02:28:05 +01:00 Compare
kjuulh force-pushed renovate/all from f998cafdbb to 3356e14c74 2024-11-02 06:26:41 +01:00 Compare
kjuulh force-pushed renovate/all from 3356e14c74 to 12574cc47b 2024-11-04 02:22:33 +01:00 Compare
kjuulh force-pushed renovate/all from 12574cc47b to 28c701d068 2024-11-04 06:21:13 +01:00 Compare
kjuulh force-pushed renovate/all from 28c701d068 to 3d855917d0 2024-11-05 02:23:39 +01:00 Compare
kjuulh force-pushed renovate/all from 3d855917d0 to b987161eba 2024-11-05 06:23:00 +01:00 Compare
kjuulh force-pushed renovate/all from b987161eba to a64d66d440 2024-11-06 02:21:32 +01:00 Compare
kjuulh force-pushed renovate/all from a64d66d440 to 49e6b7f73c 2024-11-06 06:21:51 +01:00 Compare
kjuulh force-pushed renovate/all from 49e6b7f73c to 482cb5ac69 2024-11-07 02:25:06 +01:00 Compare
kjuulh force-pushed renovate/all from 482cb5ac69 to fe2b1fb82a 2024-11-07 06:23:06 +01:00 Compare
kjuulh force-pushed renovate/all from fe2b1fb82a to 46a445e49a 2024-11-08 02:25:08 +01:00 Compare
kjuulh force-pushed renovate/all from 46a445e49a to f26e23060e 2024-11-08 06:24:29 +01:00 Compare
kjuulh force-pushed renovate/all from f26e23060e to 883887c633 2024-11-09 02:24:31 +01:00 Compare
kjuulh force-pushed renovate/all from 883887c633 to e91e385bc5 2024-11-09 06:22:55 +01:00 Compare
kjuulh force-pushed renovate/all from e91e385bc5 to e89d03145b 2024-11-10 02:23:07 +01:00 Compare
kjuulh force-pushed renovate/all from e89d03145b to 4a8fe92227 2024-11-10 06:27:05 +01:00 Compare
kjuulh force-pushed renovate/all from 4a8fe92227 to 2bf2ba343c 2024-11-11 02:23:45 +01:00 Compare
kjuulh force-pushed renovate/all from 2bf2ba343c to 87feff6f7a 2024-11-11 06:22:04 +01:00 Compare
kjuulh force-pushed renovate/all from 87feff6f7a to 45c95e0e60 2024-11-12 02:23:27 +01:00 Compare
kjuulh force-pushed renovate/all from 45c95e0e60 to 4c3ce0f181 2024-11-12 06:23:26 +01:00 Compare
kjuulh force-pushed renovate/all from 4c3ce0f181 to 08e1b4643e 2024-11-13 02:35:41 +01:00 Compare
kjuulh force-pushed renovate/all from 08e1b4643e to 38198d370e 2024-11-13 06:27:21 +01:00 Compare
kjuulh force-pushed renovate/all from 38198d370e to 7ce78590b5 2024-11-14 02:26:27 +01:00 Compare
kjuulh force-pushed renovate/all from 7ce78590b5 to 07f1007d66 2024-11-14 06:31:34 +01:00 Compare
kjuulh force-pushed renovate/all from 07f1007d66 to c10617d7dd 2024-11-15 02:24:38 +01:00 Compare
kjuulh force-pushed renovate/all from c10617d7dd to c0048e0d55 2024-11-15 06:25:37 +01:00 Compare
kjuulh force-pushed renovate/all from c0048e0d55 to 17529eaebf 2024-11-16 02:27:54 +01:00 Compare
kjuulh force-pushed renovate/all from 17529eaebf to 9ed0a8ba5d 2024-11-16 06:26:36 +01:00 Compare
kjuulh force-pushed renovate/all from 9ed0a8ba5d to ee680b5538 2024-11-17 02:24:15 +01:00 Compare
kjuulh force-pushed renovate/all from ee680b5538 to 85c9494912 2024-11-17 06:24:15 +01:00 Compare
kjuulh force-pushed renovate/all from 85c9494912 to 3d199f5afb 2024-11-18 02:23:13 +01:00 Compare
kjuulh force-pushed renovate/all from 3d199f5afb to 9f821a45c7 2024-11-18 06:22:15 +01:00 Compare
kjuulh force-pushed renovate/all from 9f821a45c7 to 272f06d399 2024-11-19 02:22:52 +01:00 Compare
kjuulh force-pushed renovate/all from 272f06d399 to e1be9a822f 2024-11-19 06:22:17 +01:00 Compare
kjuulh force-pushed renovate/all from e1be9a822f to 9bb35e67f1 2024-11-20 02:23:53 +01:00 Compare
kjuulh force-pushed renovate/all from 9bb35e67f1 to e7fc7a12ba 2024-11-20 06:22:37 +01:00 Compare
kjuulh force-pushed renovate/all from e7fc7a12ba to b1d7b6b748 2024-11-21 02:24:27 +01:00 Compare
kjuulh force-pushed renovate/all from b1d7b6b748 to 8366345737 2024-11-21 06:21:49 +01:00 Compare
kjuulh force-pushed renovate/all from 8366345737 to cb8f7a02fd 2024-11-22 02:27:08 +01:00 Compare
kjuulh force-pushed renovate/all from cb8f7a02fd to c076388971 2024-11-22 06:26:29 +01:00 Compare
kjuulh force-pushed renovate/all from c076388971 to 83e0cde1dd 2024-11-23 02:30:56 +01:00 Compare
kjuulh force-pushed renovate/all from 83e0cde1dd to fdcff37a92 2024-11-23 06:33:15 +01:00 Compare
kjuulh force-pushed renovate/all from fdcff37a92 to ce6d928ece 2024-11-24 02:31:54 +01:00 Compare
kjuulh force-pushed renovate/all from ce6d928ece to 45e90462b4 2024-11-24 06:28:39 +01:00 Compare
kjuulh force-pushed renovate/all from 45e90462b4 to 4970f95a65 2024-11-25 02:26:53 +01:00 Compare
kjuulh force-pushed renovate/all from 4970f95a65 to 2ba61f2f0f 2024-11-25 06:28:25 +01:00 Compare
kjuulh force-pushed renovate/all from 2ba61f2f0f to e0a95ee4d0 2024-11-26 02:44:13 +01:00 Compare
kjuulh force-pushed renovate/all from e0a95ee4d0 to 8fdbb6809b 2024-11-26 06:28:16 +01:00 Compare
kjuulh force-pushed renovate/all from 8fdbb6809b to afb74c39bb 2024-11-27 03:07:16 +01:00 Compare
kjuulh force-pushed renovate/all from afb74c39bb to 1388cd4250 2024-11-27 06:26:56 +01:00 Compare
kjuulh force-pushed renovate/all from 1388cd4250 to c3b67553d1 2024-11-28 02:29:50 +01:00 Compare
kjuulh force-pushed renovate/all from c3b67553d1 to 36cedf34fd 2024-11-28 06:27:21 +01:00 Compare
kjuulh force-pushed renovate/all from 36cedf34fd to 0bfff45cb0 2024-11-29 02:25:19 +01:00 Compare
kjuulh force-pushed renovate/all from 0bfff45cb0 to 102ea9de46 2024-11-29 06:24:54 +01:00 Compare
kjuulh force-pushed renovate/all from 102ea9de46 to d23947699a 2024-11-30 02:49:51 +01:00 Compare
kjuulh force-pushed renovate/all from d23947699a to 10eb33e582 2024-11-30 06:47:19 +01:00 Compare
kjuulh force-pushed renovate/all from 10eb33e582 to 47b81db242 2024-12-01 02:26:36 +01:00 Compare
kjuulh force-pushed renovate/all from 47b81db242 to e2cf8a0c57 2024-12-01 06:25:50 +01:00 Compare
kjuulh force-pushed renovate/all from e2cf8a0c57 to 8d2d4f7252 2024-12-02 02:54:05 +01:00 Compare
kjuulh force-pushed renovate/all from 8d2d4f7252 to 878e355efc 2024-12-02 06:36:59 +01:00 Compare
kjuulh force-pushed renovate/all from 878e355efc to 6d2dcbf866 2024-12-03 02:24:45 +01:00 Compare
kjuulh force-pushed renovate/all from 6d2dcbf866 to c249bfeba4 2024-12-03 06:24:58 +01:00 Compare
kjuulh force-pushed renovate/all from c249bfeba4 to ec24116cf2 2024-12-04 02:33:46 +01:00 Compare
kjuulh force-pushed renovate/all from ec24116cf2 to 7eef103317 2024-12-04 06:27:50 +01:00 Compare
kjuulh force-pushed renovate/all from 7eef103317 to 6305a44b9b 2024-12-05 02:29:28 +01:00 Compare
kjuulh force-pushed renovate/all from 6305a44b9b to 2bed467457 2024-12-05 06:25:48 +01:00 Compare
kjuulh force-pushed renovate/all from 2bed467457 to fc2ee6757b 2024-12-06 02:34:30 +01:00 Compare
kjuulh force-pushed renovate/all from fc2ee6757b to 4d5a6b5f13 2024-12-06 06:27:40 +01:00 Compare
kjuulh force-pushed renovate/all from 4d5a6b5f13 to 042e063e81 2024-12-07 02:31:45 +01:00 Compare
kjuulh force-pushed renovate/all from 042e063e81 to 4a2192be21 2024-12-07 06:26:46 +01:00 Compare
kjuulh force-pushed renovate/all from 4a2192be21 to 40f4133874 2024-12-08 02:25:45 +01:00 Compare
kjuulh force-pushed renovate/all from 40f4133874 to 973cf6ac0a 2024-12-08 06:28:13 +01:00 Compare
kjuulh force-pushed renovate/all from 973cf6ac0a to dbae8cc02c 2024-12-09 02:26:48 +01:00 Compare
kjuulh force-pushed renovate/all from dbae8cc02c to 1e7d6ab8fb 2024-12-09 06:37:45 +01:00 Compare
kjuulh force-pushed renovate/all from 1e7d6ab8fb to a11ef9785e 2024-12-10 02:27:37 +01:00 Compare
kjuulh force-pushed renovate/all from a11ef9785e to adcbefaffc 2024-12-10 06:27:33 +01:00 Compare
kjuulh force-pushed renovate/all from adcbefaffc to 27c7ca0e03 2024-12-11 02:35:00 +01:00 Compare
kjuulh force-pushed renovate/all from 27c7ca0e03 to 17a8d75196 2024-12-11 06:25:42 +01:00 Compare
kjuulh force-pushed renovate/all from 17a8d75196 to a3ba75a307 2024-12-12 02:28:31 +01:00 Compare
kjuulh force-pushed renovate/all from a3ba75a307 to 775a1e6e68 2024-12-12 06:24:18 +01:00 Compare
kjuulh force-pushed renovate/all from 775a1e6e68 to d65e5734dc 2024-12-13 02:26:05 +01:00 Compare
kjuulh force-pushed renovate/all from d65e5734dc to 04d92f11dd 2024-12-13 06:25:04 +01:00 Compare
kjuulh force-pushed renovate/all from 04d92f11dd to 7df9223fe5 2024-12-14 02:25:02 +01:00 Compare
kjuulh force-pushed renovate/all from 7df9223fe5 to 2bd5bcd8c4 2024-12-14 06:24:42 +01:00 Compare
kjuulh force-pushed renovate/all from 2bd5bcd8c4 to a9694c37a8 2024-12-15 02:23:59 +01:00 Compare
kjuulh force-pushed renovate/all from a9694c37a8 to 1ae958966a 2024-12-15 06:23:35 +01:00 Compare
kjuulh force-pushed renovate/all from 1ae958966a to 14af9a0db5 2024-12-16 02:29:12 +01:00 Compare
kjuulh force-pushed renovate/all from 14af9a0db5 to d05ce60f2f 2024-12-16 06:26:28 +01:00 Compare
kjuulh force-pushed renovate/all from d05ce60f2f to 7ed6e8f8d8 2024-12-17 02:26:12 +01:00 Compare
kjuulh force-pushed renovate/all from 7ed6e8f8d8 to 3074e06d72 2024-12-17 06:27:53 +01:00 Compare
kjuulh force-pushed renovate/all from 3074e06d72 to 8693d2d7a9 2024-12-18 02:27:44 +01:00 Compare
kjuulh force-pushed renovate/all from 8693d2d7a9 to 19d279e1ea 2024-12-18 06:24:05 +01:00 Compare
kjuulh force-pushed renovate/all from 19d279e1ea to ea1a37c9ea 2024-12-19 02:28:02 +01:00 Compare
kjuulh force-pushed renovate/all from ea1a37c9ea to dd25f03919 2024-12-19 06:24:11 +01:00 Compare
kjuulh force-pushed renovate/all from dd25f03919 to dcb8132171 2024-12-20 02:25:38 +01:00 Compare
kjuulh force-pushed renovate/all from dcb8132171 to 2320aa8c3a 2024-12-20 06:26:05 +01:00 Compare
kjuulh force-pushed renovate/all from 2320aa8c3a to 00db27c26b 2024-12-21 02:28:01 +01:00 Compare
kjuulh force-pushed renovate/all from 00db27c26b to e61572dfd0 2024-12-21 06:24:06 +01:00 Compare
kjuulh force-pushed renovate/all from e61572dfd0 to 24189cc791 2024-12-22 02:26:07 +01:00 Compare
kjuulh force-pushed renovate/all from 24189cc791 to 92a05c78a1 2024-12-22 06:24:04 +01:00 Compare
Some checks failed
renovate/artifacts Artifact file update failure
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/cuddle-templates#8
No description provided.