Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
e14de16
chore(deps): Update pre-commit hook crate-ci/typos to v1.47.0
renovate[bot] Jun 1, 2026
6de8361
chore(deps): Update pre-commit hook crate-ci/typos to v1.47.0 (#76)
epage Jun 1, 2026
96e9da2
chore(deps): Update Prek to v0.4.4 (#77)
renovate[bot] Jun 4, 2026
a83fe36
chore(deps): Update Prek to v0.4.5 (#78)
renovate[bot] Jun 15, 2026
01a5a70
chore(deps): Update dtolnay/rust-toolchain digest to 4be7066
renovate[bot] Jul 1, 2026
24ecf3e
chore(deps): Update compatible (actions) (#80)
renovate[bot] Jul 1, 2026
33786f5
chore(deps): Update dtolnay/rust-toolchain digest to 4be7066 (#79)
epage Jul 1, 2026
425b5d6
chore(deps): Update Prek to v0.4.6 (#81)
renovate[bot] Jul 1, 2026
fa12fcb
chore(deps): Update Prek to v0.4.8 (#82)
renovate[bot] Jul 4, 2026
fcc3bc8
chore(deps): Update Rust Stable to v1.97 (#83)
renovate[bot] Jul 9, 2026
0da9853
chore(ci): Update lint list for new Rust release
epage Jul 9, 2026
9e6f6e7
chore(ci): Leverage CARGO_BUILD_WARNINGS
epage Jul 10, 2026
f15c1f6
chore(deps): Update Prek to v0.4.9 (#84)
renovate[bot] Jul 11, 2026
4b9061d
chore(deps): Update Prek to v0.4.10 (#85)
renovate[bot] Jul 16, 2026
6b2a60b
chore(ci): Switch to github's coverage reporting
epage Jul 18, 2026
ec06cca
chore(deps): Update pre-commit hook crate-ci/committed to v1.1.11
renovate[bot] Jul 20, 2026
cf30e2a
chore(deps): Update pre-commit hook crate-ci/committed to v1.1.11 (#47)
epage Jul 20, 2026
a52cd8a
chore(deps): Update Prek to v0.4.11 (#86)
renovate[bot] Jul 24, 2026
5803067
chore(deps): Update dtolnay/rust-toolchain digest to 4cda84d
renovate[bot] Aug 1, 2026
bf018bb
chore(deps): Update compatible (actions) (#88)
renovate[bot] Aug 1, 2026
359853b
chore(deps): Update dtolnay/rust-toolchain digest to 4cda84d (#87)
epage Aug 1, 2026
076ba2e
chore(deps): Update Prek to v0.4.12 (#89)
renovate[bot] Aug 3, 2026
a6e4864
chore(ci): Don't update prek immediately
epage Aug 3, 2026
bbc78aa
chore(ci): Experiment with min-release-age
epage Aug 3, 2026
3d30c8c
chore(deps): Update pre-commit hook crate-ci/typos to v1.48.0
renovate[bot] Aug 3, 2026
9725108
chore(deps): Update pre-commit hook zizmorcore/zizmor-pre-commit to v…
renovate[bot] Aug 3, 2026
5119849
chore(deps): Update actions/checkout action to v7
renovate[bot] Aug 3, 2026
70d0dca
chore(deps): Update j178/prek-action action to v3
renovate[bot] Aug 3, 2026
3e4b55b
chore(deps): Update pre-commit hook crate-ci/typos to v1.48.0 (#90)
epage Aug 3, 2026
3b414b2
chore(deps): Update pre-commit hook zizmorcore/zizmor-pre-commit to v…
epage Aug 3, 2026
61d0e12
chore(deps): Update actions/checkout action to v7 (#92)
epage Aug 3, 2026
ea009dd
chore(deps): Update j178/prek-action action to v3 (#93)
epage Aug 3, 2026
f1016df
fix: Remove lint config for clippy::from_iter_instead_of_collect
Muscraft Aug 9, 2026
50a7352
fix: Remove lint config for clippy::from_iter_instead_of_collect (#94)
epage Aug 9, 2026
059ebed
chore(ci): Remove dtolnay/rust-toolchain
epage Aug 10, 2026
e321fc4
chore(ci): Remove dtolnay/rust-toolchain (#95)
epage Aug 10, 2026
d016feb
docs(ai): Start with regex's policy
epage Aug 12, 2026
516da22
docs(ai): Try out uv's policy
epage Aug 12, 2026
82c9883
docs(gh): Add a PR template
epage Aug 12, 2026
8b090d2
docs(ai): Solidify the policy
epage Aug 12, 2026
d7a910f
chore(deps): Update Rust Stable to v1.98 (#97)
renovate[bot] Aug 23, 2026
8d22eae
chore(ci): Also allow renamed_and_removed_lints
epage Aug 25, 2026
c2979d0
docs: Remove license placeholder
epage Aug 26, 2026
90588db
chore(ci): Reduce git checkout for committed
epage Aug 27, 2026
0766687
chore(ci): Reduce git checkout for committed (#98)
epage Aug 27, 2026
fc41ee7
docs(ai): Add an AI policy (#96)
epage Aug 28, 2026
9725e9e
chore: Update prek
epage Aug 29, 2026
df99c2f
chore: Update from _rust template
epage Aug 30, 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
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!-- Thanks for helping out! -->

### What does this PR try to solve?

<!-- a maintainer-approved Issue is required for non-trivial changes -->
Closes #<!-- Issue # -->

### Notes to reviewers

<!--
Examples:
- Larger context this fits within
- Manual testing and why it wasn't automated
-->

LLM involvement: <!-- TODO -->
5 changes: 2 additions & 3 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
schedule: [
'before 5am on the first day of the month',
],
minimumReleaseAge: "3 days",
internalChecksFilter: "strict",
semanticCommits: 'enabled',
commitMessageLowerCase: 'never',
configMigration: true,
Expand Down Expand Up @@ -66,9 +68,6 @@
'prek',
],
extractVersion: '^v(?<version>\\d+\\.\\d+\\.\\d+)',
schedule: [
'* * * * *',
],
automerge: true,
},
{
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
- advisories
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Lint advisories
Expand All @@ -63,7 +63,7 @@ jobs:
- bans licenses sources
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Lint bans
Expand All @@ -80,7 +80,7 @@ jobs:
actions: read # only needed for private or internal repos
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Run zizmor
Expand Down
78 changes: 35 additions & 43 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
CARGO_INCREMENTAL: 0
RUST_TOOLCHAIN_STABLE: "1.98" # STABLE

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand Down Expand Up @@ -43,13 +45,11 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: ${{ matrix.rust }}
run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
Expand All @@ -68,13 +68,11 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
run: rustup update --no-self-update stable && rustup default stable
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
Expand All @@ -91,17 +89,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install stable Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
run: rustup update --no-self-update stable && rustup default stable
- name: Install nightly Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: nightly
run: rustup update --no-self-update nightly && rustup default nightly
- name: Downgrade dependencies to minimal versions
run: cargo +nightly generate-lockfile -Z minimal-versions
- name: Compile with minimal versions
Expand All @@ -110,13 +104,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
run: rustup update --no-self-update stable && rustup default stable
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: "Is lockfile updated?"
Expand All @@ -126,32 +118,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: "1.98" # STABLE
run: rustup update --no-self-update $RUST_TOOLCHAIN_STABLE && rustup default $RUST_TOOLCHAIN_STABLE
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Check documentation
env:
RUSTDOCFLAGS: -D warnings
CARGO_BUILD_WARNINGS: deny
run: cargo doc --workspace --all-features --no-deps --document-private-items --keep-going
rustfmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: "1.98" # STABLE
components: rustfmt
run: rustup update --no-self-update $RUST_TOOLCHAIN_STABLE && rustup default $RUST_TOOLCHAIN_STABLE
- name: Install rustfmt
run: rustup component add rustfmt
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Check formatting
Expand All @@ -163,14 +152,13 @@ jobs:
security-events: write # to upload sarif results
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: "1.98" # STABLE
components: clippy
run: rustup update --no-self-update $RUST_TOOLCHAIN_STABLE && rustup default $RUST_TOOLCHAIN_STABLE
- name: Install clippy
run: rustup component add clippy
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install SARIF tools
Expand All @@ -190,26 +178,30 @@ jobs:
sarif_file: clippy-results.sarif
wait-for-processing: true
- name: Report status
run: cargo clippy --workspace --all-features --all-targets --keep-going -- -D warnings --allow deprecated
env:
CARGO_BUILD_WARNINGS: deny
run: cargo clippy --workspace --all-features --all-targets --keep-going -- --allow deprecated --allow renamed_and_removed_lints
coverage:
name: Coverage
runs-on: ubuntu-latest
permissions:
code-quality: write
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
run: rustup update --no-self-update stable && rustup default stable
- 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@09b709cf6a16e30b0808ba050c7a6e8a5ef13f8d # master
run: cargo tarpaulin --out xml
- name: Upload coverage report
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
uses: actions/upload-code-coverage@1c15be36fc3733ba839b1dd643bd9556e4426dc1 # v1.4.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: cobertura.xml
language: Rust
3 changes: 2 additions & 1 deletion .github/workflows/committed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
filter: "tree:0"
persist-credentials: false
- name: Lint Commits
uses: crate-ci/committed@faeed42f2e10c244533a01525f13c4d8b6ce383f # v1.1.11
4 changes: 2 additions & 2 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: prek
uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
uses: j178/prek-action@4e14d07f9231acabce116ccfca13b13dd9755ece # v3.0.0
with:
prek-version: '0.5.0'
13 changes: 5 additions & 8 deletions .github/workflows/rust-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
CLICOLOR: 1
CARGO_INCREMENTAL: 0

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand All @@ -33,13 +34,11 @@ jobs:
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: ${{ matrix.rust }}
run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
Expand All @@ -60,13 +59,11 @@ jobs:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: allow
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install Rust
uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
with:
toolchain: stable
run: rustup update --no-self-update stable && rustup default stable
- name: Initialize cache
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- name: Install cargo-hack
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spelling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Spell Check Repo
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: true # to push the branch and create PR
Expand Down
4 changes: 0 additions & 4 deletions .github/zizmor.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ repos:
hooks:
- id: committed
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: v1.26.1
rev: v1.28.0
hooks:
- id: zizmor
58 changes: 58 additions & 0 deletions AI_POLICY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# AI policy

Project maintainers are responsible for any code that is published as part of a release.
Contributors are responsible for their contributions, both in terms of communications and code.
This responsibility is for both understanding of and the quality of their contributions.

## Personal use

You are free to use an AI locally for your own purposes,
including to answer your questions, analyze, distill, refine, check, suggest, and review.

## Communication

**AI should not be used to generate comments when communicating with maintainers.**
We expect comments on our projects to be written by humans.
We may hide or delete any comments where we believe AI generation was involved.

If you are opening an issue,
we expect you to have personally reproduced the problem and to describe it in your own words.

If you are opening a pull request,
we expect you to be able to explain the proposed changes in your own words.
This includes the pull request body and responses to questions.
**Do not copy responses from an AI when replying to questions from maintainers.**
Do not run agents or bots on pull requests without first getting approval.

We understand that AI is useful when communicating as a non-native English speaker.
If you are using AI to edit your comments for this purpose,
please take the time to ensure it reflects your own voice and ideas.
If using AI for translation, we recommend writing in your native language and including the AI translation in a [`<details>` block].

If you wish to include context from an interaction with AI in your comments,
it must be in a [`<details>` block] and disclosed as such.
The block must include human commentary explaining the relevance and implications of the context.
The content of your comment must stand on its own even without the quoted content.
Do not share long snippets.

## Code

Using AI as tools for coding requires receiving permission on the relevant issue before a PR is posted.

This project requires a human in the loop who understands the work produced by AI.
**We do not allow autonomous agents to be used for contributing to this project**.
We will close any pull requests that we believe were created **without meaningful involvement** from the contributor.
Contributions should not "read" as being written by an AI.

Some areas require specific expertise or care when touching.
AI generated code, even with human review, is prohibited for:
- none

We view AI as providing a way to improve quality and will hold AI-assisted contributions to a higher standard.
We will be more free in asking for changes.

The involvement of AI assistance must be disclosed in PRs.

For documentation, including comments in code, see [Communication](#communication).

[`<details>` block]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections)
Loading
Loading