From 1d7f42967da37b21d1fb16c7bd1ab7cc2600228e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 01:30:04 +0000
Subject: [PATCH 01/14] chore(deps): Update actions/checkout action to v6
---
.github/workflows/audit.yml | 4 ++--
.github/workflows/ci.yml | 16 ++++++++--------
.github/workflows/committed.yml | 2 +-
.github/workflows/pre-commit.yml | 2 +-
.github/workflows/rust-next.yml | 4 ++--
.github/workflows/spelling.yml | 2 +-
6 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml
index a993804a..7446e08e 100644
--- a/.github/workflows/audit.yml
+++ b/.github/workflows/audit.yml
@@ -31,7 +31,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- uses: actions-rs/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -46,7 +46,7 @@ jobs:
checks:
- bans licenses sources
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check ${{ matrix.checks }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index faf37f9e..5e1975c6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -43,7 +43,7 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -62,7 +62,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -79,7 +79,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -96,7 +96,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -109,7 +109,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -124,7 +124,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -140,7 +140,7 @@ jobs:
security-events: write # to upload sarif results
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -170,7 +170,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
diff --git a/.github/workflows/committed.yml b/.github/workflows/committed.yml
index bb290c6c..9138a8e3 100644
--- a/.github/workflows/committed.yml
+++ b/.github/workflows/committed.yml
@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Lint Commits
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index edba5b9e..9eabc676 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -22,7 +22,7 @@ jobs:
contents: read
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.x'
diff --git a/.github/workflows/rust-next.yml b/.github/workflows/rust-next.yml
index 3eccec92..8e4a1e92 100644
--- a/.github/workflows/rust-next.yml
+++ b/.github/workflows/rust-next.yml
@@ -33,7 +33,7 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
@@ -54,7 +54,7 @@ jobs:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: allow
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
index c9df8862..cf4c1bfb 100644
--- a/.github/workflows/spelling.yml
+++ b/.github/workflows/spelling.yml
@@ -20,6 +20,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v6
- name: Spell Check Repo
uses: crate-ci/typos@master
From f4efb92a3804dfcf99c154c0df90440749acc8a2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 11 Dec 2025 18:44:55 +0000
Subject: [PATCH 02/14] chore(deps): Update Rust Stable to v1.92 (#36)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust) | minor | `1.91`
-> `1.92` |
---
### Release Notes
rust-lang/rust (STABLE)
###
[`v1.92`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1920-2025-12-11)
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.91.0...1.92.0)
\==========================
## Language
- [Document `MaybeUninit` representation and
validity](https://redirect.github.com/rust-lang/rust/pull/140463)
- [Allow `&raw [mut | const]` for union field in safe
code](https://redirect.github.com/rust-lang/rust/pull/141469)
- [Prefer item bounds of associated types over where-bounds for
auto-traits and
`Sized`](https://redirect.github.com/rust-lang/rust/pull/144064)
- [Do not materialize `X` in `[X; 0]` when `X` is unsizing a
const](https://redirect.github.com/rust-lang/rust/pull/145277)
- [Support combining `#[track_caller]` and `#[no_mangle]` (requires
every declaration specifying `#[track_caller]` as
well)](https://redirect.github.com/rust-lang/rust/pull/145724)
- [Make never type lints `never_type_fallback_flowing_into_unsafe` and
`dependency_on_unit_never_type_fallback`
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/146167)
- [Allow specifying multiple bounds for same associated item, except in
trait objects](https://redirect.github.com/rust-lang/rust/pull/146593)
- [Slightly strengthen higher-ranked region handling in
coherence](https://redirect.github.com/rust-lang/rust/pull/146725)
- [The `unused_must_use` lint no longer warns on `Result<(),
Uninhabited>` (for instance, `Result<(), !>`), or
`ControlFlow`](https://redirect.github.com/rust-lang/rust/pull/147382). This
avoids having to check for an error that can never happen.
## Compiler
- [Make `mips64el-unknown-linux-muslabi64` link
dynamically](https://redirect.github.com/rust-lang/rust/pull/146858)
- [Remove current code for embedding command-line args in
PDB](https://redirect.github.com/rust-lang/rust/pull/147022)
Command-line information is typically not needed by debugging tools, and
the removed code
was causing problems for incremental builds even on targets that don't
use PDB debuginfo.
## Libraries
- [Specialize `Iterator::eq{_by}` for `TrustedLen`
iterators](https://redirect.github.com/rust-lang/rust/pull/137122)
- [Simplify `Extend` for
tuples](https://redirect.github.com/rust-lang/rust/pull/138799)
- [Added details to `Debug` for
`EncodeWide`](https://redirect.github.com/rust-lang/rust/pull/140153).
-
[`iter::Repeat::last`](https://redirect.github.com/rust-lang/rust/pull/147258)
and [`count`](https://redirect.github.com/rust-lang/rust/pull/146410)
will now panic, rather than looping infinitely.
## Stabilized APIs
-
[`NonZero::div_ceil`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.div_ceil)
-
[`Location::file_as_c_str`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.file_as_c_str)
-
[`RwLockWriteGuard::downgrade`](https://doc.rust-lang.org/stable/std/sync/struct.RwLockWriteGuard.html#method.downgrade)
-
[`Box::new_zeroed`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed)
-
[`Box::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed_slice)
-
[`Rc::new_zeroed`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed)
-
[`Rc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed_slice)
-
[`Arc::new_zeroed`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed)
-
[`Arc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed_slice)
-
[`btree_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/enum.Entry.html#method.insert_entry)
-
[`btree_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.VacantEntry.html#method.insert_entry)
- [`impl Extend for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CGroup%3E-for-TokenStream)
- [`impl Extend for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CLiteral%3E-for-TokenStream)
- [`impl Extend for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CPunct%3E-for-TokenStream)
- [`impl Extend for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CIdent%3E-for-TokenStream)
These previously stable APIs are now stable in const contexts:
-
[`<[_]>::rotate_left`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_left)
-
[`<[_]>::rotate_right`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_right)
## Cargo
- [Added a new
chapter](https://redirect.github.com/rust-lang/cargo/issues/16119) to
the Cargo book, ["Optimizing Build
Performance"](https://doc.rust-lang.org/stable/cargo/guide/build-performance.html).
## Rustdoc
- [If a trait item appears in rustdoc search, hide the corresponding
impl items](https://redirect.github.com/rust-lang/rust/pull/145898).
Previously a search for "last" would show both `Iterator::last` as well
as impl methods like `std::vec::IntoIter::last`. Now these impl methods
will be hidden, freeing up space for inherent methods like
`BTreeSet::last`.
- [Relax rules for identifiers in
search](https://redirect.github.com/rust-lang/rust/pull/147860).
Previously you could only search for identifiers that were valid in rust
code, now searches only need to be valid as part of an identifier. For
example, you can now perform a search that starts with a digit.
## Compatibility Notes
- [Fix backtraces with `-C panic=abort` on Linux by generating unwind
tables by
default](https://redirect.github.com/rust-lang/rust/pull/143613). Build
with `-C force-unwind-tables=no` to keep omitting unwind tables.
* As part of the larger effort refactoring compiler built-in attributes
and their diagnostics, [the future-compatibility lint
`invalid_macro_export_arguments` is upgraded to deny-by-default and will
be reported in dependencies
too.](https://redirect.github.com/rust-lang/rust/pull/143857)
* [Update the minimum external LLVM to
20](https://redirect.github.com/rust-lang/rust/pull/145071)
* [Prevent downstream `impl DerefMut for
Pin`](https://redirect.github.com/rust-lang/rust/pull/145608)
* [Don't apply temporary lifetime extension rules to the arguments of
non-extended `pin!` and formatting
macros](https://redirect.github.com/rust-lang/rust/pull/145838)
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
â™» **Rebasing**: Whenever PR is behind base branch, 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](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/epage/_rust).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/ci.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5e1975c6..3545b0bd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -113,7 +113,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.91" # STABLE
+ toolchain: "1.92" # STABLE
- uses: Swatinem/rust-cache@v2
- name: Check documentation
env:
@@ -128,7 +128,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.91" # STABLE
+ toolchain: "1.92" # STABLE
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
@@ -144,7 +144,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.91" # STABLE
+ toolchain: "1.92" # STABLE
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install SARIF tools
From 3f895ab0e3da9e556e4bfae5c97a0ee0b0e23e0c Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Wed, 31 Dec 2025 08:49:21 -0600
Subject: [PATCH 03/14] chore(ci): Attempt to auto-update pre-commit
---
.github/renovate.json5 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 27749d4b..392994fa 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -6,6 +6,9 @@
commitMessageLowerCase: 'never',
configMigration: true,
dependencyDashboard: true,
+ pre-commit: {
+ "enabled": true
+ },
customManagers: [
{
customType: 'regex',
From 4253271eab3d0bf25ed0556653186cfeac77a394 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Wed, 31 Dec 2025 09:02:34 -0600
Subject: [PATCH 04/14] chore(ci): Attempt to auto-update pre-commit
---
.github/renovate.json5 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 392994fa..38ad33ac 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -6,8 +6,8 @@
commitMessageLowerCase: 'never',
configMigration: true,
dependencyDashboard: true,
- pre-commit: {
- "enabled": true
+ "pre-commit": {
+ enabled: true
},
customManagers: [
{
From b0aa288c22107c484d913d984445d5371ebc06b8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 04:42:29 +0000
Subject: [PATCH 05/14] chore(deps): Update pre-commit hook crate-ci/committed
to v1.1.9
---
.pre-commit-config.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 656c68ec..627e31d2 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -14,6 +14,6 @@ repos:
hooks:
- id: typos
- repo: https://github.com/crate-ci/committed
- rev: v1.1.7
+ rev: v1.1.9
hooks:
- id: committed
From d841861bf8a4aba4164acfeb9841e5ed08886d6b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 04:42:32 +0000
Subject: [PATCH 06/14] chore(deps): Update pre-commit hook crate-ci/typos to
v1.41.0
---
.pre-commit-config.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 656c68ec..9b514c43 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -10,7 +10,7 @@ repos:
- id: check-case-conflict
- id: detect-private-key
- repo: https://github.com/crate-ci/typos
- rev: v1.32.0
+ rev: v1.41.0
hooks:
- id: typos
- repo: https://github.com/crate-ci/committed
From 16faf2c10d588642bf510ee7696856da66d87688 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Wed, 14 Jan 2026 15:57:03 -0600
Subject: [PATCH 07/14] chore(ci): Switch from pre-commit to prek
---
.github/workflows/pre-commit.yml | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index 9eabc676..05fe12fd 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -23,7 +23,4 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- - uses: actions/setup-python@v6
- with:
- python-version: '3.x'
- - uses: pre-commit/action@v3.0.1
+ - uses: j178/prek-action@v1
From 5932b20e5c1bf87cf9b2358053b60ef047adc70d Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Wed, 14 Jan 2026 16:02:53 -0600
Subject: [PATCH 08/14] chore(ci): Pin the prek version
---
.github/renovate.json5 | 26 ++++++++++++++++++++++++++
.github/workflows/pre-commit.yml | 2 ++
2 files changed, 28 insertions(+)
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 38ad33ac..cc1fefc3 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -28,6 +28,18 @@
packageNameTemplate: 'rust-lang/rust',
datasourceTemplate: 'github-releases',
},
+ {
+ customType: 'regex',
+ managerFilePatterns: [
+ '/^\\.github/workflows/pre-commit.yml$/',
+ ],
+ matchStrings: [
+ 'prek-version.*?(?\\d+\\.\\d+(\\.\\d+)?)',
+ ],
+ depNameTemplate: 'prek',
+ packageNameTemplate: 'j178/prek',
+ datasourceTemplate: 'github-releases',
+ },
],
packageRules: [
{
@@ -44,6 +56,20 @@
],
automerge: true,
},
+ {
+ commitMessageTopic: 'Prek',
+ matchManagers: [
+ 'custom.regex',
+ ],
+ matchDepNames: [
+ 'prek',
+ ],
+ extractVersion: '^(?\\d+\\.\\d+\\.\\d+)',
+ schedule: [
+ '* * * * *',
+ ],
+ automerge: true,
+ },
// Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies
// - Take advantage of latest dev-dependencies
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index 05fe12fd..ef1a54ac 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -24,3 +24,5 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: j178/prek-action@v1
+ with:
+ prek-version: '0.2.27'
From 98ba1ea02e509d4e0833a07d4ef4598b9c26ea63 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Wed, 23 Oct 2024 08:55:02 -0500
Subject: [PATCH 09/14] chore(ci): Automatic update from template
---
.github/workflows/template.yml | 53 ++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 .github/workflows/template.yml
diff --git a/.github/workflows/template.yml b/.github/workflows/template.yml
new file mode 100644
index 00000000..44b115ca
--- /dev/null
+++ b/.github/workflows/template.yml
@@ -0,0 +1,53 @@
+name: Template Update
+
+permissions:
+ contents: read
+
+on:
+ schedule:
+ - cron: '1 1 1 * *'
+ workflow_dispatch:
+
+env:
+ RUST_BACKTRACE: 1
+ CARGO_TERM_COLOR: always
+ CLICOLOR: 1
+ TEMPLATE_URL: "https://github.com/epage/_rust.git"
+ TEMPLATE_BRANCH: "main"
+
+concurrency:
+ group: "${{ github.workflow }}-${{ github.ref }}"
+ cancel-in-progress: true
+
+jobs:
+ update:
+ permissions:
+ security-events: write # to create PR
+ pull-requests: write
+ contents: write # to push the branch
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Configure git
+ run: |
+ git config --global user.name '${{ github.actor }}'
+ git config --global user.email '<>'
+ - name: Fetch template
+ run: "git remote add template ${{ env.TEMPLATE_URL }} && git fetch template ${{ env.TEMPLATE_BRANCH }}"
+ - name: Merge template
+ run: "git checkout -b template-update && git merge template/${{ env.TEMPLATE_BRANCH }} -m 'chore: Update from template'"
+ - name: Push branch
+ run: "git push --set-upstream origin template-update"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ - name: Create PR
+ run: "gh pr create --head template-update --title 'chore: Update from template' --body ''"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ - name: Merge PR
+ run: "gh pr merge --auto --delete-branch"
+ env:
+ GH_TOKEN: ${{ github.token }}
From 8940aef5dce54b27a08919307d82fcf060409747 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Mon, 19 Jan 2026 08:48:12 -0600
Subject: [PATCH 10/14] chore: Update prek hooks
---
.pre-commit-config.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bc4c740d..7aa56f78 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,7 +1,7 @@
default_install_hook_types: ["pre-commit", "commit-msg"]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v5.0.0
+ rev: v6.0.0
hooks:
- id: check-yaml
- id: check-json
@@ -10,10 +10,10 @@ repos:
- id: check-case-conflict
- id: detect-private-key
- repo: https://github.com/crate-ci/typos
- rev: v1.41.0
+ rev: v1.42.1
hooks:
- id: typos
- repo: https://github.com/crate-ci/committed
- rev: v1.1.9
+ rev: v1.1.10
hooks:
- id: committed
From 24c5c995faba5b7e0c7f032f0bf38ad066cf83a8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 22 Jan 2026 18:06:38 +0000
Subject: [PATCH 11/14] chore(deps): Update Rust Stable to v1.93 (#42)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://redirect.github.com/rust-lang/rust) | minor | `1.92`
→ `1.93` |
---
### Release Notes
rust-lang/rust (STABLE)
###
[`v1.93`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1930-2026-01-22)
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.92.0...1.93.0)
\==========================
## Language
- [Stabilize several s390x `vector`-related target features and the
`is_s390x_feature_detected!`
macro](https://redirect.github.com/rust-lang/rust/pull/145656)
- [Stabilize declaration of C-style variadic functions for the `system`
ABI](https://redirect.github.com/rust-lang/rust/pull/145954)
- [Emit error when using some keyword as a `cfg`
predicate](https://redirect.github.com/rust-lang/rust/pull/146978)
- [Stabilize
`asm_cfg`](https://redirect.github.com/rust-lang/rust/pull/147736)
- [During const-evaluation, support copying pointers
byte-by-byte](https://redirect.github.com/rust-lang/rust/pull/148259)
- [LUB coercions now correctly handle function item types, and functions
with differing
safeties](https://redirect.github.com/rust-lang/rust/pull/148602)
- [Allow `const` items that contain mutable references to `static`
(which is *very* unsafe, but not *always*
UB)](https://redirect.github.com/rust-lang/rust/pull/148746)
- [Add warn-by-default `const_item_interior_mutations` lint to warn
against calls which mutate interior mutable `const`
items](https://redirect.github.com/rust-lang/rust/pull/148407)
- [Add warn-by-default `function_casts_as_integer`
lint](https://redirect.github.com/rust-lang/rust/pull/141470)
## Compiler
- [Stabilize
`-Cjump-tables=bool`](https://redirect.github.com/rust-lang/rust/pull/145974).
The flag was previously called `-Zno-jump-tables`.
## Platform Support
- [Promote `riscv64a23-unknown-linux-gnu` to Tier 2 (without host
tools)](https://redirect.github.com/rust-lang/rust/pull/148435)
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html
## Libraries
- [Stop internally using `specialization` on the `Copy` trait as it is
unsound in the presence of lifetime dependent `Copy` implementations.
This may result in some performance regressions as some standard library
APIs may now call `Clone::clone` instead of performing bitwise
copies](https://redirect.github.com/rust-lang/rust/pull/135634)
- [Allow the global allocator to use thread-local storage and
`std::thread::current()`](https://redirect.github.com/rust-lang/rust/pull/144465)
- [Make `BTree::append` not update existing keys when appending an entry
which already
exists](https://redirect.github.com/rust-lang/rust/pull/145628)
- [Don't require `T: RefUnwindSafe` for `vec::IntoIter:
UnwindSafe`](https://redirect.github.com/rust-lang/rust/pull/145665)
## Stabilized APIs
-
[`<[MaybeUninit]>::assume_init_drop`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_drop)
-
[`<[MaybeUninit]>::assume_init_ref`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_ref)
-
[`<[MaybeUninit]>::assume_init_mut`](https://doc.rust-lang.org/stable/core/primitive.slice.html#method.assume_init_mut)
-
[`<[MaybeUninit]>::write_copy_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_copy_of_slice)
-
[`<[MaybeUninit]>::write_clone_of_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.write_clone_of_slice)
-
[`String::into_raw_parts`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_raw_parts)
-
[`Vec::into_raw_parts`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.into_raw_parts)
-
[`::unchecked_neg`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_neg)
-
[`::unchecked_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_shl)
-
[`::unchecked_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unchecked_shr)
-
[`::unchecked_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shl)
-
[`::unchecked_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unchecked_shr)
-
[`<[T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_array)
-
[`<[T]>::as_array_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_mut_array)
- [`<*const
[T]>::as_array`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_array)
- [`<*mut
[T]>::as_array_mut`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut_array)
-
[`VecDeque::pop_front_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_front_if)
-
[`VecDeque::pop_back_if`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.pop_back_if)
-
[`Duration::from_nanos_u128`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_nanos_u128)
-
[`char::MAX_LEN_UTF8`](https://doc.rust-lang.org/stable/std/primitive.char.html#associatedconstant.MAX_LEN_UTF8)
-
[`char::MAX_LEN_UTF16`](https://doc.rust-lang.org/stable/std/primitive.char.html#associatedconstant.MAX_LEN_UTF16)
-
[`std::fmt::from_fn`](https://doc.rust-lang.org/stable/std/fmt/fn.from_fn.html)
-
[`std::fmt::FromFn`](https://doc.rust-lang.org/stable/std/fmt/struct.FromFn.html)
## Cargo
- [Enable CARGO\_CFG\_DEBUG\_ASSERTIONS in build scripts based on
profile](https://redirect.github.com/rust-lang/cargo/pull/16160/)
- [In `cargo tree`, support long forms for `--format`
variables](https://redirect.github.com/rust-lang/cargo/pull/16204/)
- [Add `--workspace` to `cargo
clean`](https://redirect.github.com/rust-lang/cargo/pull/16263/)
## Rustdoc
- [Remove
`#![doc(document_private_items)]`](https://redirect.github.com/rust-lang/rust/pull/146495)
- [Include attribute and derive macros in search filters for
"macros"](https://redirect.github.com/rust-lang/rust/pull/148176)
- [Include extern crates in search filters for
`import`](https://redirect.github.com/rust-lang/rust/pull/148301)
- [Validate usage of crate-level doc
attributes](https://redirect.github.com/rust-lang/rust/pull/149197).
This means if any of `html_favicon_url`, `html_logo_url`,
`html_playground_url`, `issue_tracker_base_url`, or `html_no_source`
either has a missing value, an unexpected value, or a value of the wrong
type, rustdoc will emit the deny-by-default lint
`rustdoc::invalid_doc_attributes`.
## Compatibility Notes
- [Introduce `pin_v2` into the builtin attributes
namespace](https://redirect.github.com/rust-lang/rust/pull/139751)
- [Update bundled musl to
1.2.5](https://redirect.github.com/rust-lang/rust/pull/142682)
- [On Emscripten, the unwinding ABI used when compiling with
`panic=unwind` was changed from the JS exception handling ABI to the
wasm exception handling
ABI.](https://redirect.github.com/rust-lang/rust/pull/147224) If linking
C/C++ object files with Rust objects, `-fwasm-exceptions` must be passed
to the linker now. On nightly Rust, it is possible to get the old
behavior with `-Zwasm-emscripten-eh=false -Zbuild-std`, but it will be
removed in a future release.
- The `#[test]` attribute, used to define tests, was previously ignored
in various places where it had no meaning (e.g on trait methods or
types). Putting the `#[test]` attribute in these places is no longer
ignored, and will now result in an error; this may also result in errors
when generating rustdoc. [Error when `test` attribute is applied to
structs](https://redirect.github.com/rust-lang/rust/pull/147841)
- Cargo now sets the `CARGO_CFG_DEBUG_ASSERTIONS` environment variable
in more situations. This will cause crates depending on `static-init`
versions 1.0.1 to 1.0.3 to fail compilation with "failed to resolve: use
of unresolved module or unlinked crate `parking_lot`". See [the linked
issue](https://redirect.github.com/rust-lang/rust/issues/150646#issuecomment-3718964342)
for details.
- [User written types in the `offset_of!` macro are now checked to be
well formed.](https://redirect.github.com/rust-lang/rust/issues/150465/)
- `cargo publish` no longer emits `.crate` files as a final artifact for
user access when the `build.build-dir` config is unset
- [Upgrade the `deref_nullptr` lint from warn-by-default to
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/148122)
- [Add future-incompatibility warning for `...` function parameters
without a pattern outside of `extern`
blocks](https://redirect.github.com/rust-lang/rust/pull/143619)
- [Introduce future-compatibility warning for `repr(C)` enums whose
discriminant values do not fit into a `c_int` or
`c_uint`](https://redirect.github.com/rust-lang/rust/pull/147017)
- [Introduce future-compatibility warning against ignoring `repr(C)`
types as part of
`repr(transparent)`](https://redirect.github.com/rust-lang/rust/pull/147185)
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
â™» **Rebasing**: Whenever PR is behind base branch, 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](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/epage/_rust).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/ci.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3545b0bd..c0cfa6aa 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -113,7 +113,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.92" # STABLE
+ toolchain: "1.93" # STABLE
- uses: Swatinem/rust-cache@v2
- name: Check documentation
env:
@@ -128,7 +128,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.92" # STABLE
+ toolchain: "1.93" # STABLE
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
@@ -144,7 +144,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.92" # STABLE
+ toolchain: "1.93" # STABLE
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install SARIF tools
From 74f4be64a9464b8e4734ed462c7e25030f36cf35 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Fri, 23 Jan 2026 10:43:45 -0600
Subject: [PATCH 12/14] chore(ci): Fix name of clippy::empty_enums
---
Cargo.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
index 99da9dba..55d98adf 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -34,7 +34,7 @@ create_dir = "warn"
dbg_macro = "warn"
debug_assert_with_mut_call = "warn"
doc_markdown = "warn"
-empty_enum = "warn"
+empty_enums = "warn"
enum_glob_use = "warn"
expl_impl_clone_on_copy = "warn"
explicit_deref_methods = "warn"
From 30b3b14bd665d443f45123729dc69d1f085575f9 Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Mon, 26 Jan 2026 12:29:03 -0600
Subject: [PATCH 13/14] chore(ci): Fix how rustfmt jobs run
---
.github/workflows/ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c0cfa6aa..72ec649e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -132,7 +132,7 @@ jobs:
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
- run: cargo fmt --all -- --check
+ run: cargo fmt --check
clippy:
name: clippy
runs-on: ubuntu-latest
From 6d0d36b0723b29856d380eb89b3c571a9f9c570f Mon Sep 17 00:00:00 2001
From: Ed Page
Date: Mon, 26 Jan 2026 12:34:16 -0600
Subject: [PATCH 14/14] chore(ci): Clean up previous branch in case it was
leaked
---
.github/workflows/template.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/workflows/template.yml b/.github/workflows/template.yml
index 44b115ca..be139ea9 100644
--- a/.github/workflows/template.yml
+++ b/.github/workflows/template.yml
@@ -39,6 +39,11 @@ jobs:
run: "git remote add template ${{ env.TEMPLATE_URL }} && git fetch template ${{ env.TEMPLATE_BRANCH }}"
- name: Merge template
run: "git checkout -b template-update && git merge template/${{ env.TEMPLATE_BRANCH }} -m 'chore: Update from template'"
+ - name: Clear any existing branch
+ run: "git push origin --delete template-update"
+ continue-on-error: true
+ env:
+ GH_TOKEN: ${{ github.token }}
- name: Push branch
run: "git push --set-upstream origin template-update"
env: