Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
5f01d3d
chore(deps): Update pre-commit hook crate-ci/typos to v1.43.0
renovate[bot] Feb 2, 2026
6d83493
chore(deps): Update pre-commit hook crate-ci/typos to v1.43.0 (#43)
epage Feb 2, 2026
bda89af
chore(ci): Fix prek version updating
epage Feb 18, 2026
8485f9d
chore(deps): Update Prek to v0.3.3 (#45)
renovate[bot] Feb 18, 2026
207c3d9
chore(release): Make use of new template variable
epage Feb 23, 2026
096034c
chore(deps): Update Prek to v0.3.4 (#46)
renovate[bot] Feb 28, 2026
476c955
chore(deps): Update Rust Stable to v1.94 (#49)
renovate[bot] Mar 5, 2026
5762560
chore(deps): Update Prek to v0.3.5 (#50)
renovate[bot] Mar 9, 2026
dee0db5
chore(deps): Update Prek to v0.3.6 (#51)
renovate[bot] Mar 16, 2026
80afe4d
chore(deps): Update Prek to v0.3.8 (#52)
renovate[bot] Mar 23, 2026
dcb79c9
chore(ci): Pin actions
epage Mar 27, 2026
f1f2452
chore(deps): Pin dependencies
renovate[bot] Mar 27, 2026
eb2f9d2
chore(deps): Pin dependencies (#53)
epage Mar 27, 2026
4af143d
chore(ci): Don't persist git credentials by default
epage Mar 27, 2026
3e98dbe
chore(ci): Use env instead of templates
epage Mar 27, 2026
fb7a030
chore(ci): Switch from cargo-audit to cargo-deny
epage Mar 27, 2026
e60a418
chore(ci): Adopt zizmor
epage Mar 27, 2026
c50fd0f
chore(ci): Adopt zizmor (#54)
epage Mar 27, 2026
c00ccb7
chore(ci): Fix content
epage Mar 27, 2026
509fb92
chore(ci): Shorten workflow name
epage Mar 27, 2026
616ecc0
chore(ci): Add a central audit job
epage Mar 27, 2026
e4210b9
chore(ci): Fix the audit display name
epage Mar 27, 2026
1601c98
chore(deps): Update j178/prek-action action to v2
renovate[bot] Apr 1, 2026
1edb51e
chore(deps): Update taiki-e/install-action digest to 4fea3cb
renovate[bot] Apr 1, 2026
3c8a1e3
chore(deps): Update taiki-e/install-action digest to 4fea3cb (#55)
epage Apr 1, 2026
5ab175a
chore(deps): Update j178/prek-action action to v2 (#56)
epage Apr 1, 2026
2fc4cd2
chore(pre): Always check zizmor
epage Apr 1, 2026
2f37b60
chore(deps): Update pre-commit hook crate-ci/typos to v1.45.0
renovate[bot] Apr 1, 2026
8ed1cfa
chore(ci): Run audits more frequently
epage Apr 1, 2026
813f244
chore(deps): Update pre-commit hook crate-ci/typos to v1.45.0 (#48)
epage Apr 1, 2026
d6f7c72
chore(pre): Always check zizmor (#57)
epage Apr 1, 2026
15908a8
chore(gh): Fix template updating
epage Apr 6, 2026
ea3cbc8
chore(gh): Document why template updating needs credentials
epage Apr 6, 2026
29448ed
Use full-length tags for hash-pinned action references
woodruffw Apr 6, 2026
38eb2f2
Use full-length tags for hash-pinned action references (#58)
epage Apr 6, 2026
94c8ee6
chore(deps): Update Prek to v0.3.9 (#59)
renovate[bot] Apr 13, 2026
8cda912
chore: Anchor includes to be at package root
epage Apr 14, 2026
6647a13
chore: Anchor includes to be at package root (#60)
epage Apr 14, 2026
b7f02f0
chore(ci): Ignore collapsible_match
epage Apr 16, 2026
18b5384
chore(deps): Update Rust Stable to v1.95 (#61)
renovate[bot] Apr 16, 2026
18b0c5e
chore(ci): Switch to versioned install action
epage Apr 16, 2026
e36b072
chore(ci): Name every step
epage Apr 16, 2026
5666f33
chore(ci): Switch to versioned install action (#62)
epage Apr 16, 2026
54f523d
chore(ci): Approve another license
epage Apr 17, 2026
ff00184
chore(deps): Update Prek to v0.3.10 (#63)
renovate[bot] Apr 21, 2026
dd01d8b
chore(deps): Update Prek to v0.3.11 (#64)
renovate[bot] Apr 27, 2026
cc53e46
chore(ci): Track specific tags
epage May 1, 2026
f3e0cc0
chore: Experiment with more lints
epage May 1, 2026
4dd55b3
chore: Iterate on the template (#65)
epage May 1, 2026
1071ec1
chore(ci): Batch action updates
epage May 1, 2026
61c939f
chore(ci): Batch action updates (#66)
epage May 1, 2026
372a47d
chore: Drop automod
epage May 1, 2026
1502dad
chore: Drop automod (#67)
epage May 1, 2026
1e1d586
chore(renovate): Fix the tag
epage May 1, 2026
ec8569b
chore: Update from _rust template
epage May 1, 2026
68d88b4
style: Make clippy happy
epage May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
extends: ["helpers:pinGitHubActionDigests"],
schedule: [
'before 5am on the first day of the month',
],
Expand Down Expand Up @@ -64,12 +65,23 @@
matchDepNames: [
'prek',
],
extractVersion: '^(?<version>\\d+\\.\\d+\\.\\d+)',
extractVersion: '^v(?<version>\\d+\\.\\d+\\.\\d+)',
schedule: [
'* * * * *',
],
automerge: true,
},
{
matchManagers: [
'github-actions',
],
matchUpdateTypes: [
'minor',
'patch',
],
automerge: true,
groupName: 'compatible (actions)',
},
// Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies
// - Take advantage of latest dev-dependencies
Expand Down
54 changes: 44 additions & 10 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
name: Security audit
name: Audit

permissions:
contents: read

on:
pull_request:
paths:
- '**/Cargo.toml'
- '**/Cargo.lock'
push:
branches:
- master
Expand All @@ -22,19 +19,38 @@ concurrency:
cancel-in-progress: true

jobs:
security_audit:
audit:
permissions:
contents: none
name: Audit
needs: [advisories, cargo_deny, actions]
runs-on: ubuntu-latest
if: "always()"
steps:
- name: Failed
run: exit 1
if: "contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')"
advisories:
permissions:
issues: write # to create issues (actions-rs/audit-check)
checks: write # to create check (actions-rs/audit-check)
runs-on: ubuntu-latest
# Prevent sudden announcement of a new advisory from failing ci:
continue-on-error: true
strategy:
matrix:
checks:
- advisories
steps:
- name: Checkout repository
uses: actions/checkout@v6
- uses: actions-rs/audit-check@v1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Lint advisories
uses: EmbarkStudios/cargo-deny-action@3fd3802e88374d3fe9159b834c7714ec57d6c979 # v2.0.15
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: check ${{ matrix.checks }}
rust-version: stable

cargo_deny:
permissions:
Expand All @@ -46,8 +62,26 @@ jobs:
checks:
- bans licenses sources
steps:
- uses: actions/checkout@v6
- uses: EmbarkStudios/cargo-deny-action@v2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Lint bans
uses: EmbarkStudios/cargo-deny-action@3fd3802e88374d3fe9159b834c7714ec57d6c979 # v2.0.15
with:
command: check ${{ matrix.checks }}
rust-version: stable

actions:
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read # only needed for private or internal repos
actions: read # only needed for private or internal repos
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Run zizmor
uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2
85 changes: 57 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,19 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: ${{ matrix.rust }}
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
uses: taiki-e/install-action@97a5807a604e12de3a13b52d868ebecaeeea757c # v2.75.4
with:
tool: cargo-hack
- name: Build
run: cargo test --workspace --no-run
- name: Test
Expand All @@ -62,13 +68,19 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
uses: taiki-e/install-action@97a5807a604e12de3a13b52d868ebecaeeea757c # v2.75.4
with:
tool: cargo-hack
- name: Default features
run: cargo hack check --each-feature --locked --rust-version --ignore-private --workspace --all-targets --keep-going
minimal-versions:
Expand All @@ -79,13 +91,15 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
- name: Install nightly Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: nightly
- name: Downgrade dependencies to minimal versions
Expand All @@ -96,25 +110,31 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: "Is lockfile updated?"
run: cargo update --workspace --locked
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: "1.95" # STABLE
- uses: Swatinem/rust-cache@v2
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Check documentation
env:
RUSTDOCFLAGS: -D warnings
Expand All @@ -124,13 +144,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: "1.95" # STABLE
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Check formatting
run: cargo fmt --check
clippy:
Expand All @@ -140,13 +163,16 @@ jobs:
security-events: write # to upload sarif results
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: "1.95" # STABLE
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install SARIF tools
run: cargo install clippy-sarif --locked
- name: Install SARIF tools
Expand All @@ -159,7 +185,7 @@ jobs:
| sarif-fmt
continue-on-error: true
- name: Upload
uses: github/codeql-action/upload-sarif@v4
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
with:
sarif_file: clippy-results.sarif
wait-for-processing: true
Expand All @@ -170,17 +196,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-tarpaulin
run: cargo install cargo-tarpaulin
- name: Gather coverage
run: cargo tarpaulin --output-dir coverage --out lcov
- name: Publish to Coveralls
uses: coverallsapp/github-action@master
uses: coverallsapp/github-action@09b709cf6a16e30b0808ba050c7a6e8a5ef13f8d # master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
7 changes: 4 additions & 3 deletions .github/workflows/committed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ jobs:
name: Lint Commits
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v6
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
persist-credentials: false
- name: Lint Commits
uses: crate-ci/committed@master
uses: crate-ci/committed@faeed42f2e10c244533a01525f13c4d8b6ce383f # v1.1.11
10 changes: 7 additions & 3 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ jobs:
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: j178/prek-action@v2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
prek-version: '0.2.27'
persist-credentials: false
- name: prek
uses: j178/prek-action@53276d8b0d10f8b6672aa85b4588c6921d0370cc # v2.0.1
with:
prek-version: '0.3.11'
28 changes: 20 additions & 8 deletions .github/workflows/rust-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,19 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: ${{ matrix.rust }}
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
uses: taiki-e/install-action@97a5807a604e12de3a13b52d868ebecaeeea757c # v2.75.4
with:
tool: cargo-hack
- name: Build
run: cargo test --workspace --no-run
- name: Test
Expand All @@ -54,13 +60,19 @@ jobs:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: allow
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
uses: taiki-e/install-action@97a5807a604e12de3a13b52d868ebecaeeea757c # v2.75.4
with:
tool: cargo-hack
- name: Update dependencies
run: cargo update
- name: Build
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/spelling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Spell Check Repo
uses: crate-ci/typos@master
uses: crate-ci/typos@bbaefadf97b0ec5fdc942684b647f1a6ab250274 # v1.46.0
Loading
Loading