Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate leptos to v0.7.2 #77

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 8, 2023

This PR contains the following updates:

Package Type Update Change
leptos dependencies minor 0.4.5 -> 0.7.0
leptos dependencies minor 0.4 -> 0.7

Release Notes

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: leptos-rs/leptos@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: leptos-rs/leptos@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

Full Changelog: leptos-rs/leptos@v0.6.14...v0.6.15

v0.6.14

Compare Source

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

What's Changed
New Contributors

Full Changelog: leptos-rs/leptos@v0.6.13...v0.6.14

v0.6.13

Compare Source

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

What's Changed
New Contributors

Full Changelog: leptos-rs/leptos@v0.6.12...v0.6.13

v0.6.12

Compare Source

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

impl Trait in Component Props

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

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

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

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

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

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

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

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

Full Changelog: leptos-rs/leptos@v0.6.11...v0.6.12

v0.6.11

Compare Source

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

Also included are

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

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

What's Changed
New Contributors

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

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

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


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

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

@renovate renovate bot requested review from dezren39 and a team as code owners November 8, 2023 00:45
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.2 Update Rust crate leptos to v0.5.3 Nov 28, 2023
@renovate renovate bot force-pushed the renovate/leptos-0.x branch 2 times, most recently from 870317b to a271c7a Compare November 29, 2023 06:32
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.3 Update Rust crate leptos to v0.5.4 Nov 29, 2023
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from a271c7a to 9f78c49 Compare January 16, 2024 00:15
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.4 Update Rust crate leptos to v0.5.5 Jan 16, 2024
Copy link
Contributor Author

renovate bot commented Jan 16, 2024

⚠ 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: sources/web-gen/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path sources/web-gen/Cargo.toml --package [email protected] --precise 0.6.11
    Updating crates.io index
error: failed to select a version for the requirement `leptos = "^0.4.5"`
candidate versions found which didn't match: 0.6.11
location searched: crates.io index
required by package `leptos_router v0.4.5`
    ... which satisfies dependency `leptos_router = "^0.4.5"` (locked to 0.4.5) of package `web-gen v0.1.0 (/tmp/renovate/repos/github/developing-today/code/sources/web-gen)`
perhaps a crate was updated and forgotten to be re-vendored?

File name: sources/web-gen-api/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path sources/web-gen-api/Cargo.toml --package [email protected] --precise 0.6.11
    Updating crates.io index
error: failed to select a version for the requirement `leptos = "^0.4.5"`
candidate versions found which didn't match: 0.6.11
location searched: crates.io index
required by package `leptos_actix v0.4.5`
    ... which satisfies dependency `leptos_actix = "^0.4"` (locked to 0.4.5) of package `leptos_start v0.1.0 (/tmp/renovate/repos/github/developing-today/code/sources/web-gen-api)`
perhaps a crate was updated and forgotten to be re-vendored?

@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 9f78c49 to 5b42fef Compare January 17, 2024 03:23
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.5 Update Rust crate leptos to v0.5.6 Jan 17, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 5b42fef to 5855aa9 Compare January 19, 2024 18:04
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.6 Update Rust crate leptos to v0.5.7 Jan 19, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 5855aa9 to 0127136 Compare January 26, 2024 20:50
@renovate renovate bot changed the title Update Rust crate leptos to v0.5.7 Update Rust crate leptos to v0.6.1 Jan 26, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 0127136 to 84f9fac Compare January 27, 2024 02:57
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.1 Update Rust crate leptos to v0.6.3 Jan 27, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 84f9fac to 8850635 Compare January 30, 2024 14:43
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.3 Update Rust crate leptos to v0.6.4 Jan 30, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 8850635 to c30000f Compare February 1, 2024 01:33
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.4 Update Rust crate leptos to v0.6.5 Feb 1, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from c30000f to f76325e Compare February 19, 2024 22:34
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.5 Update Rust crate leptos to v0.6.6 Feb 19, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from f76325e to 7061aa2 Compare February 29, 2024 22:49
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.6 Update Rust crate leptos to v0.6.7 Feb 29, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 7061aa2 to e8f09a8 Compare March 3, 2024 03:39
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.7 Update Rust crate leptos to v0.6.8 Mar 3, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from e8f09a8 to 83c35ca Compare March 4, 2024 01:34
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.8 Update Rust crate leptos to v0.6.9 Mar 4, 2024
@dezren39 dezren39 force-pushed the main branch 7 times, most recently from cb00f56 to 462a05e Compare March 12, 2024 21:25
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 83c35ca to d68893d Compare April 2, 2024 15:34
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.9 Update Rust crate leptos to v0.6.10 Apr 2, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from d68893d to 60c05fb Compare April 10, 2024 17:02
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.10 Update Rust crate leptos to v0.6.11 Apr 10, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 60c05fb to 1c928f8 Compare May 1, 2024 09:16
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.11 Update Rust crate leptos to 0.6.11 May 1, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 1c928f8 to 18e9e09 Compare May 5, 2024 10:12
@renovate renovate bot changed the title Update Rust crate leptos to 0.6.11 Update Rust crate leptos to v0.6.11 May 5, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.11 Update Rust crate leptos to v0.6.12 Jun 2, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.12 fix(deps): update rust crate leptos to v0.6.12 Jun 6, 2024
Copy link
Contributor Author

renovate bot commented Jul 12, 2024

⚠️ 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: pkgs/web-gen-api/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path pkgs/web-gen-api/Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `wasm-bindgen`.
    ... required by package `leptos v0.7.0`
    ... which satisfies dependency `leptos = "^0.7"` of package `leptos_start v0.1.0 (/tmp/renovate/repos/github/developing-today/code/pkgs/web-gen-api)`
versions that meet the requirements `^0.2.95` are: 0.2.97, 0.2.96, 0.2.95

all possible versions conflict with previously selected packages.

  previously selected package `wasm-bindgen v0.2.87`
    ... which satisfies dependency `wasm-bindgen = "=0.2.87"` of package `leptos_start v0.1.0 (/tmp/renovate/repos/github/developing-today/code/pkgs/web-gen-api)`

failed to select a version for `wasm-bindgen` which could resolve this conflict

File name: pkgs/web-gen/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path pkgs/web-gen/Cargo.toml --package [email protected] --precise 0.7.0
    Updating crates.io index
error: failed to select a version for the requirement `leptos = "^0.4.5"`
candidate versions found which didn't match: 0.7.0
location searched: crates.io index
required by package `leptos_router v0.4.5`
    ... which satisfies dependency `leptos_router = "^0.4.5"` (locked to 0.4.5) of package `web-gen v0.1.0 (/tmp/renovate/repos/github/developing-today/code/pkgs/web-gen)`

@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 18e9e09 to 4042406 Compare July 12, 2024 10:43
@renovate renovate bot changed the title fix(deps): update rust crate leptos to v0.6.12 Update Rust crate leptos to v0.6.12 Jul 23, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.12 Update Rust crate leptos to v0.6.13 Jul 24, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.13 Update Rust crate leptos to v0.6.14 Aug 14, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.14 fix(deps): update rust crate leptos to v0.6.14 Aug 25, 2024
@renovate renovate bot changed the title fix(deps): update rust crate leptos to v0.6.14 fix(deps): update rust crate leptos to v0.6.15 Sep 8, 2024
@renovate renovate bot changed the title fix(deps): update rust crate leptos to v0.6.15 Update Rust crate leptos to v0.6.15 Sep 16, 2024
@renovate renovate bot force-pushed the renovate/leptos-0.x branch from 4042406 to 61706c2 Compare November 30, 2024 18:41
@renovate renovate bot changed the title Update Rust crate leptos to v0.6.15 Update Rust crate leptos to v0.7.0 Nov 30, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.7.0 Update Rust crate leptos to v0.7.1 Dec 17, 2024
@renovate renovate bot changed the title Update Rust crate leptos to v0.7.1 Update Rust crate leptos to v0.7.2 Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant