Skip to content

chore(deps): update cargo#369

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/cargo
Jun 22, 2026
Merged

chore(deps): update cargo#369
renovate[bot] merged 1 commit into
mainfrom
renovate/cargo

Conversation

@renovate

@renovate renovate Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
pyo3-log dependencies patch 0.13.30.13.4
wasm-bindgen (source) dependencies patch 0.2.1210.2.125

Release Notes

wasm-bindgen/wasm-bindgen (wasm-bindgen)

v0.2.125

Compare Source

Added
  • Added the --force-enable-abort-handler CLI flag, which emits the hard-abort
    detection and set_on_abort machinery on panic=abort builds. With
    panic=unwind this machinery is generated automatically; the flag does
    nothing there.
    #​5191
Changed
  • Made the internal __wbindgen_destroy_closure export private in the Rust API.
    #​5196

v0.2.123

Compare Source

Added
  • Added the maxAge attribute to the CookieInit dictionary in web-sys,
    matching the current Cookie Store API specification.
    #​5169

  • The js-sys futures codegen opt-in can now also be enabled via the
    WASM_BINDGEN_USE_JS_SYS=1 environment variable, in addition to
    --cfg=wasm_bindgen_use_js_sys. This works on stable when --target
    is in use, where Cargo does not propagate the cfg to host proc-macros.
    #​5164

Changed
  • JsOption<T> now treats only undefined as empty, aligning it with
    TypeScript's strict T | undefined semantics and with Option<T>'s wire
    shape (Noneundefined). Previously is_empty, as_option,
    into_option, unwrap, expect, unwrap_or_default, and
    unwrap_or_else treated both null and undefined as absent; JS null
    is now a distinct present value. The impl<T> UpcastFrom<Null> for JsOption<T> is removed (Undefined still models absence), and the
    Debug/Display absent placeholder changed from "null" to
    "undefined". Code relying on null → None should return undefined
    from the JS side, or check explicitly with
    val.as_option().filter(|v| !v.is_null()).
    #​5170
Fixed
  • Removed invalid js_sys::Array<T> to js_sys::ArrayTuple<(...)> upcasts.
    ArrayTuple encodes a fixed tuple arity, while a plain JavaScript array does
    not prove that arity statically.

  • Fixed incorrect variance in &mut reference upcasting. &mut T upcasts
    were covariant in the pointee, so a &mut T could be widened to a &mut
    of a supertype and used to write back a value the original type would not
    accept, leaving a reference whose static type no longer matches the value
    it points to. Mutable references are now invariant in their pointee:
    &mut T only upcasts to &mut Target when both Target: UpcastFrom<T>
    and T: UpcastFrom<Target> hold. This rejects the invalid widening but is
    a breaking change for callers that relied on widening &mut references.
    #​5176

  • Fixed WASI targets (wasm32-wasip1/wasm32-wasip2) emitting unresolved
    __wbindgen_placeholder__ imports, which broke component linking. The
    codegen and runtime gates now exclude target_os = "wasi" (restoring the
    pre-0.2.115 stub behavior), including the panic = "unwind" paths in
    wasm-bindgen-futures.
    #​5175

  • Fixed a panic ("Unhandled load width 8") in the descriptor interpreter when
    processing -Cinstrument-coverage-instrumented modules, unblocking
    cargo llvm-cov --target wasm32-unknown-unknown for crates whose describe
    helpers get instrumented.
    #​5179

  • Fixed main silently never running on wasm64 for bin crates.
    #​5181

v0.2.122

Compare Source

Notices
  • Threading support now requires -Clink-arg=--export=__heap_base to be set
    in RUSTFLAGS for nightly toolchains from 2026-05-06 onward, after
    rust-lang/rust#156174
    removed the implicit __heap_base/__data_end exports on wasm*
    targets. Atomics CI, CLI reference tests, and the nodejs-threads,
    raytrace-parallel, and wasm-audio-worklet examples have been
    updated to pass --export=__heap_base explicitly. The flag is
    backward-compatible with older nightlies.

  • -Cpanic=unwind on wasm targets now emits modern (exnref) exception
    handling by default after
    rust-lang/rust#156061,
    and requires Node.js 22.22.3+ (for WebAssembly.JSTag). Legacy EH wasm
    can still be produced on current nightlies by adding
    -Cllvm-args=-wasm-use-legacy-eh to RUSTFLAGS; Node.js 20 may be
    supported with legacy exception handling, with a tracking issue in
    #​5151.

Added
  • Implemented TryFromJsValue for Vec<T> where T: TryFromJsValue.
    A JS value converts when it is a real Array (per Array.isArray)
    and every element converts via T::try_from_js_value. This composes
    recursively (Vec<Vec<String>>, Vec<Option<T>>) and works for any
    T with a TryFromJsValue impl, including primitives, String,
    JsValue, and JsCast types. Array-likes (objects with length and
    numeric indices) are intentionally rejected to mirror the static ABI
    representation used by js_value_vector_from_abi.

  • New extends_js_class and extends_js_namespace attributes on
    exported structs to allow defining the parent js_class name when
    it has been customized by js_name and the parent's own js_namespace
    as well in turn. New validation is added at code generation time that
    will now catch these cases instead of emitting invalid code. Example:

    #[wasm_bindgen(js_name = "Animal", js_namespace = zoo)]
    pub struct AnimalImpl { /* ... */ }
    
    #[wasm_bindgen(
        extends = AnimalImpl,
        extends_js_class = "Animal",
        extends_js_namespace = zoo,
    )]
    pub struct DogImpl { /* ... */ }

    #​5154

Changed
  • When an exported struct uses js_namespace, the corresponding value
    must now be repeated on every impl block. Previously the impl-side
    defaults silently worked resulting in inconsistent emission. Example:

    // Before:
    #[wasm_bindgen(js_namespace = "default")]
    pub struct Counter { /* ... */ }
    
    #[wasm_bindgen]              // worked, but fragile
    impl Counter { /* ... */ }
    
    // After:
    #[wasm_bindgen(js_namespace = "default")]
    pub struct Counter { /* ... */ }
    
    #[wasm_bindgen(js_namespace = "default")]   // now required
    impl Counter { /* ... */ }

    To ease this transition for js_namespace usage, diagnostic
    messages now include hints for missing namespaces for easier
    fixing.

    #​5154

Fixed
  • Fixed the descriptor interpreter panicking on Br and BrIf
    instructions emitted by recent nightly compilers when building with
    panic=unwind.
    #​5158

  • Emscripten output now works against vanilla upstream emscripten without
    requiring a fork. Dependency tracking, HEAP_DATA_VIEW setup,
    function-decl intrinsic inlining, catch-wrapper gating, and imported
    global handling have all been corrected; ESM imports
    (#[wasm_bindgen(module = "...")] and snippets) are emitted to a
    sidecar library_bindgen.extern-pre.js consumers pass to emcc via
    --extern-pre-js; namespaced exports (js_namespace = [...] on a
    struct/impl) now attach to Module.<segments> instead of emitting
    top-level export const (which emcc's library evaluator rejects);
    the generated .d.ts for namespaced exports is now valid TypeScript
    (mangled identifiers stay module-internal via declare class /
    declare enum / declare function plus export { BindgenModule };
    to mark the file as a module; no spurious unqualified Calc:
    property on BindgenModule for namespaced items; namespace shapes
    land as plain interface members (app: { math: { Calc: typeof app__math__Calc } };) instead of the previously-emitted export let app: { ... }; which was invalid TS1131 syntax inside an
    interface body).
    #​5156

  • Fixed a duplicate phantom class being emitted for an exported struct
    renamed via js_name (Rust ident != JS class name) and/or placed in a
    js_namespace, when the struct crosses the boundary as a JsValue
    (e.g. via .into()). The WrapInExportedClass / UnwrapExportedClass
    imports were keyed by the Rust ident rather than the qualified JS name
    that exported_classes is keyed by (a regression from #​5154), so a
    fresh empty class entry was minted and emitted alongside the real one,
    with a free() referencing a nonexistent wasm export. Riding the
    same release's #​5154 wire-format bump, the now-vestigial rust_name
    field is dropped from the schema and the namespace-qualified name is
    no longer cached on AuxStruct, AuxEnum, or ExportedClass
    (derived on demand from (name, js_namespace)), collapsing three
    fallback chains that only papered over the pre-#​5154 keying.

    #​5160



Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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 was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label Jun 22, 2026
@renovate
renovate Bot requested a review from lan496 as a code owner June 22, 2026 00:32
@renovate
renovate Bot enabled auto-merge (squash) June 22, 2026 00:32
@renovate

renovate Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path moyo-wasm/Cargo.toml --package wasm-bindgen@0.2.121 --precise 0.2.125
    Updating crates.io index
error: failed to select a version for the requirement `wasm-bindgen = "=0.2.121"`
candidate versions found which didn't match: 0.2.125
location searched: crates.io index
required by package `web-sys v0.3.98`
    ... which satisfies dependency `web-sys = "^0.3.66"` (locked to 0.3.98) of package `plotters v0.3.7`
    ... which satisfies dependency `plotters = "^0.3.2"` (locked to 0.3.7) of package `criterion v0.8.2`
    ... which satisfies dependency `criterion = "^0.8"` (locked to 0.8.2) of package `moyo v0.12.0 (/tmp/renovate/repos/github/spglib/moyo/moyo)`
    ... which satisfies path dependency `moyo` (locked to 0.12.0) of package `moyo-wasm v0.12.0 (/tmp/renovate/repos/github/spglib/moyo/moyo-wasm)`

@renovate
renovate Bot merged commit b39c4b1 into main Jun 22, 2026
11 of 12 checks passed
@renovate
renovate Bot deleted the renovate/cargo branch June 22, 2026 00:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants