Skip to content

chore(deps): update rust crate branches to v0.5.1 - #300

Draft
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/branches-0-x
Draft

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/branches-0-x

Conversation

@renovate

@renovate renovate Bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
branches dev-dependencies minor =0.4.6 → =0.5.1

Release Notes

fereidani/branches (branches)

v0.5.0

  • The minimum supported Rust version is reduced from 1.59 to 1.51.0, the release that stabilized the const generics used by the prefetch API. Inline assembly is only stable since 1.59, so on stable 1.51-1.58 the prefetch functions compile to no-ops on every architecture; the branch hint functions are unaffected. Crate-level documentation (the README include) requires rustc 1.54 and falls back to a short doc string on older compilers.
  • assume is now a const fn on every supported compiler, so const fns can carry optimizer invariants such as assume(len <= CAP) without any version plumbing on the caller's side. Rust older than 1.57 has no const-legal way to state an assumption (core::hint::unreachable_unchecked became callable in const fn in 1.57), so on rustc 1.51-1.56 assume compiles to a no-op and the hint is dropped there. From 1.59 the hint is exactly as effective as a hand-inlined check; on 1.57-1.58 old LLVM may keep a cheap loop-invariant compare that a hand-inlined check would fold.
  • The rustc_version build-dependency is gone: the build script now reads rustc -vV itself, leaving the crate with zero dependencies. Recent releases of the semver crate (which rustc_version pulls in) ship manifests that cargo older than 1.60 cannot parse, which would have made the 1.51 MSRV unusable in practice.
  • When built at opt-level 2 or 3 on stable rustc 1.84-1.94, likely/unlikely/mark_unlikely no longer leave a residual call to an empty #[cold] helper in callers' cold paths, nor the stack-alignment push/pop that call forced onto the hot path: LLVM 19+ records the coldness as branch weights before the empty call is inlined away, so the helpers drop #[inline(never)] there. All other builds - older compilers, and opt-levels 0/1/s/z, whose pipelines record no such weights (also true of core::hint::cold_path on 1.95+) - keep the out-of-line call, which is what carries the hint for them. Verified against every stable release from 1.84 through 1.94, and at opt-levels 1, 2, 3 and s; 1.95+ already used core::hint::cold_path and is unchanged.
  • Prefetch hints are now emitted on s390x (pfd) and powerpc/powerpc64 (dcbt/dcbtst), including powerpc64le. Both are gated on the rustc release that stabilized inline assembly for the architecture (1.84 for s390x, 1.95 for PowerPC); older compilers keep building the crate with prefetch as a no-op. Neither architecture has cache-level selection in its prefetch instruction, so LOCALITY is ignored there.

Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • "after 1am and before 8am"
  • Automerge
    • At any time (no schedule defined)

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

♻ Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update 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 added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Oct 10, 2026
@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecov Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.76%. Comparing base (8df1004) to head (770466d).
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #300      +/-   ##
==========================================
- Coverage   50.28%   49.76%   -0.52%     
==========================================
  Files          40       39       -1     
  Lines       13203    13040     -163     
==========================================
- Hits         6639     6490     -149     
+ Misses       6564     6550      -14     
Flag Coverage Δ
aarch64-apple-darwin ?
aarch64-unknown-linux-gnu ?
aarch64-unknown-linux-musl 49.76% <ø> (ø)
x86_64-apple-darwin ?
x86_64-pc-windows-msvc ?
x86_64-unknown-linux-gnu ?
x86_64-unknown-linux-musl 49.76% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 12 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8df1004...770466d. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Member

Leaving this update on hold until Koko's Turso dependency chain adopts branches 0.5.x.

Koko's direct branches dev-dependency currently enables std on the older version used by keyring → db-keystore → turso_core. Updating only the direct dependency to 0.5.1 leaves two versions in the graph. The transitive branches 0.4.6 copy then loses std and fails on current nightly Rust with cannot find function abort in module core::intrinsics. This prevents test compilation on GNU/Linux, Windows, and macOS; the coverage-upload failures follow from the missing reports.

Turso's latest stable (0.8.2), latest prerelease (0.8.3-pre.1), and current source still require branches ^0.4.3 with default features disabled. A Turso version bump alone therefore won't resolve this yet.

I reproduced the compiler error with CI's exact nightly compiler. Adding a pinned legacy dev-dependency with std makes the focused reproduction pass, but adds a temporary workaround solely to retain behavior that master already has. Waiting for the dependency chain to move to branches 0.5.x is preferable.

@ReenigneArcher
ReenigneArcher marked this pull request as draft October 10, 2026 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant