Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
006f98f
chore(ci): Report deprecations in the review
epage Nov 18, 2024
8100137
Update CONTRIBUTING.md
futreall Nov 29, 2024
dabd07a
Merge pull request #26 from futreall/main
epage Nov 29, 2024
b2aecee
docs(contrib): Fix language
epage Dec 2, 2024
15ede43
docs(readme): Add a hyphen
epage Dec 3, 2024
2f01ad6
chore(ci): Allow 2-clause BSD
epage Dec 16, 2024
e783559
docs(contrib): Try to remove ambiguity about commits/PRs
epage Dec 18, 2024
d159ec5
test: Verify readme
epage Jan 24, 2025
743e4b8
perf: Optimize release builds
epage Feb 20, 2025
9a2e0cc
chore: Ensure MSRV-aware resolver is used
epage Mar 5, 2025
f4ac56d
chore: Lint for unnameable_types like unreachable_pub
epage Mar 14, 2025
77d28b2
style: Extra continues can communicate intent
epage Apr 3, 2025
06061d8
chore(ci): Report more results
epage Apr 10, 2025
97755b3
chore(ci): Improve perf at the cost of coverage
epage May 1, 2025
d1a5627
chore: Update RenovateBot
epage May 7, 2025
8c5c6ad
chore: Fix regex for renovatebot
epage May 7, 2025
cf166e3
chore(pre-commit): Update default stages
epage May 20, 2025
a7bfa22
chore(pre-commit): Use default stages
epage May 20, 2025
65fdcf6
chore(pre-commit): Update hooks
epage May 20, 2025
7a72bd0
chore(pre-commit): Ensure commit-msg hook is installed
epage May 20, 2025
5e85d68
chore: Strip benches on publish
epage May 27, 2025
f9842b3
chore: Avoid MSRV problems out of the box
epage Jun 2, 2025
b8a7ea4
chore(deps): Update Rust Stable to v1.87 (#18)
renovate[bot] Jun 2, 2025
6acb890
chore(deps): Update Rust crate automod to v1.0.15 (#27)
renovate[bot] Jun 2, 2025
271edc6
chore: Add zlib license
epage Jun 3, 2025
2e6c89e
chore: Add license for unicode-ident for proc-macro2
epage Jun 5, 2025
12af6b5
chore(docsrs): Remove redundant --cfg
epage Jun 26, 2025
f5d270b
chore(deps): Update Rust Stable to v1.88 (#28)
renovate[bot] Jun 26, 2025
5fb0a8e
chore(deps): Update Rust Stable to v1.89 (#29)
renovate[bot] Aug 7, 2025
a6942ae
docs: Switch links to https
epage Aug 19, 2025
addd871
chore(ci): Reduce cached content
epage Sep 10, 2025
5afd573
chore(ci): Fix env variable syntax
epage Sep 12, 2025
3bfcdc2
chore: Add license for libfuzzer
epage Sep 18, 2025
676066a
chore(deps): Update Rust Stable to v1.90 (#30)
renovate[bot] Sep 18, 2025
f218f4a
docs(docsrs): Update to new doc_cfg feature name
epage Sep 29, 2025
7a67ba5
chore(deps): Update actions/setup-python action to v6
renovate[bot] Oct 1, 2025
40e0ace
chore(deps): Update actions/setup-python action to v6 (#32)
epage Oct 1, 2025
3513a5b
chore(deps): Update actions/checkout action to v5
renovate[bot] Oct 1, 2025
f2695e7
chore(deps): Update actions/checkout action to v5 (#31)
epage Oct 1, 2025
845f426
chore(deps): Update Rust Stable to v1.91 (#33)
renovate[bot] Oct 31, 2025
b8fbcb7
chore(ci): string_to_string was merged into implicit_clone
epage Oct 31, 2025
3628419
chore(deps): Update github/codeql-action action to v4
renovate[bot] Nov 1, 2025
4b508b6
chore(deps): Update github/codeql-action action to v4 (#34)
epage Nov 3, 2025
ee2eef5
chore(ci): Ensure latest-deps jobs actually uses them
epage Nov 13, 2025
b0881a6
chore(ci): Give more control over where alt version jobs run
epage Nov 13, 2025
1d7f429
chore(deps): Update actions/checkout action to v6
renovate[bot] Dec 1, 2025
d5f98d7
chore(deps): Update actions/checkout action to v6 (#35)
epage Dec 1, 2025
f4efb92
chore(deps): Update Rust Stable to v1.92 (#36)
renovate[bot] Dec 11, 2025
3f895ab
chore(ci): Attempt to auto-update pre-commit
epage Dec 31, 2025
4253271
chore(ci): Attempt to auto-update pre-commit
epage Dec 31, 2025
b0aa288
chore(deps): Update pre-commit hook crate-ci/committed to v1.1.9
renovate[bot] Jan 1, 2026
d841861
chore(deps): Update pre-commit hook crate-ci/typos to v1.41.0
renovate[bot] Jan 1, 2026
4e1c0be
chore(deps): Update pre-commit hook crate-ci/typos to v1.41.0 (#39)
epage Jan 1, 2026
8e77956
chore(deps): Update pre-commit hook crate-ci/committed to v1.1.9 (#38)
epage Jan 1, 2026
16faf2c
chore(ci): Switch from pre-commit to prek
epage Jan 14, 2026
5932b20
chore(ci): Pin the prek version
epage Jan 14, 2026
98ba1ea
chore(ci): Automatic update from template
epage Oct 23, 2024
8940aef
chore: Update prek hooks
epage Jan 19, 2026
b65c345
chore: Update prek hooks (#41)
epage Jan 19, 2026
ad7697d
chore(ci): Automatic update from template (#40)
epage Jan 19, 2026
24c5c99
chore(deps): Update Rust Stable to v1.93 (#42)
renovate[bot] Jan 22, 2026
74f4be6
chore(ci): Fix name of clippy::empty_enums
epage Jan 23, 2026
30b3b14
chore(ci): Fix how rustfmt jobs run
epage Jan 26, 2026
6d0d36b
chore(ci): Clean up previous branch in case it was leaked
epage Jan 26, 2026
e4f2b35
chore(ci): Update action
epage Jan 26, 2026
8d77e55
chore: Update from _rust template
epage Jan 27, 2026
080e200
style: Make clippy happy
epage Jan 27, 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
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[resolver]
incompatible-rust-versions = "fallback"
43 changes: 36 additions & 7 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,19 @@
commitMessageLowerCase: 'never',
configMigration: true,
dependencyDashboard: true,
"pre-commit": {
enabled: true
},
customManagers: [
{
customType: 'regex',
fileMatch: [
'^rust-toolchain\\.toml$',
'Cargo.toml$',
'clippy.toml$',
'\\.clippy.toml$',
'^\\.github/workflows/ci.yml$',
'^\\.github/workflows/rust-next.yml$',
managerFilePatterns: [
'/^rust-toolchain\\.toml$/',
'/Cargo.toml$/',
'/clippy.toml$/',
'/\\.clippy.toml$/',
'/^\\.github/workflows/ci.yml$/',
'/^\\.github/workflows/rust-next.yml$/',
],
matchStrings: [
'STABLE.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
Expand All @@ -25,6 +28,18 @@
packageNameTemplate: 'rust-lang/rust',
datasourceTemplate: 'github-releases',
},
{
customType: 'regex',
managerFilePatterns: [
'/^\\.github/workflows/pre-commit.yml$/',
],
matchStrings: [
'prek-version.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
],
depNameTemplate: 'prek',
packageNameTemplate: 'j178/prek',
datasourceTemplate: 'github-releases',
},
],
packageRules: [
{
Expand All @@ -41,6 +56,20 @@
],
automerge: true,
},
{
commitMessageTopic: 'Prek',
matchManagers: [
'custom.regex',
],
matchDepNames: [
'prek',
],
extractVersion: '^(?<version>\\d+\\.\\d+\\.\\d+)',
schedule: [
'* * * * *',
],
automerge: true,
},
// Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies
// - Take advantage of latest dev-dependencies
Expand Down
33 changes: 21 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ jobs:
rust: ["stable"]
continue-on-error: ${{ matrix.rust != 'stable' }}
runs-on: ${{ matrix.os }}
env:
# Reduce amount of data cached
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -50,10 +53,13 @@ jobs:
- name: Build
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
run: cargo hack test --each-feature --workspace
msrv:
name: "Check MSRV"
runs-on: ubuntu-latest
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -64,10 +70,13 @@ jobs:
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Default features
run: cargo hack check --feature-powerset --locked --rust-version --ignore-private --workspace --all-targets
run: cargo hack check --each-feature --locked --rust-version --ignore-private --workspace --all-targets --keep-going
minimal-versions:
name: Minimal versions
runs-on: ubuntu-latest
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -82,7 +91,7 @@ jobs:
- name: Downgrade dependencies to minimal versions
run: cargo +nightly generate-lockfile -Z minimal-versions
- name: Compile with minimal versions
run: cargo +stable check --workspace --all-features --locked
run: cargo +stable check --workspace --all-features --locked --keep-going
lockfile:
runs-on: ubuntu-latest
steps:
Expand All @@ -104,12 +113,12 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.83" # STABLE
toolchain: "1.93" # STABLE
- uses: Swatinem/rust-cache@v2
- name: Check documentation
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --workspace --all-features --no-deps --document-private-items
run: cargo doc --workspace --all-features --no-deps --document-private-items --keep-going
rustfmt:
name: rustfmt
runs-on: ubuntu-latest
Expand All @@ -119,11 +128,11 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.83" # STABLE
toolchain: "1.93" # STABLE
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
Expand All @@ -135,7 +144,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.83" # STABLE
toolchain: "1.93" # STABLE
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install SARIF tools
Expand All @@ -144,7 +153,7 @@ jobs:
run: cargo install sarif-fmt --locked
- name: Check
run: >
cargo clippy --workspace --all-features --all-targets --message-format=json -- -D warnings --allow deprecated
cargo clippy --workspace --all-features --all-targets --message-format=json
| clippy-sarif
| tee clippy-results.sarif
| sarif-fmt
Expand All @@ -155,7 +164,7 @@ jobs:
sarif_file: clippy-results.sarif
wait-for-processing: true
- name: Report status
run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated
run: cargo clippy --workspace --all-features --all-targets --keep-going -- -D warnings --allow deprecated
coverage:
name: Coverage
runs-on: ubuntu-latest
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
- uses: j178/prek-action@v1
with:
python-version: '3.x'
- uses: pre-commit/[email protected]
prek-version: '0.2.27'
14 changes: 11 additions & 3 deletions .github/workflows/rust-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ jobs:
rust: "nightly"
continue-on-error: ${{ matrix.rust != 'stable' }}
runs-on: ${{ matrix.os }}
env:
# Reduce amount of data cached
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -40,10 +43,15 @@ jobs:
- name: Build
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
run: cargo hack test --each-feature --workspace
latest:
name: "Check latest dependencies"
runs-on: ubuntu-latest
strategy:
matrix:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
env:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: allow
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -58,4 +66,4 @@ jobs:
- name: Build
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
run: cargo hack test --each-feature --workspace
58 changes: 58 additions & 0 deletions .github/workflows/template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
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@v6
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: 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:
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 }}
15 changes: 4 additions & 11 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
default_install_hook_types: ["pre-commit", "commit-msg"]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v6.0.0
hooks:
- id: check-yaml
stages: [commit]
- id: check-json
stages: [commit]
- id: check-toml
stages: [commit]
- id: check-merge-conflict
stages: [commit]
- id: check-case-conflict
stages: [commit]
- id: detect-private-key
stages: [commit]
- repo: https://github.com/crate-ci/typos
rev: v1.16.20
rev: v1.42.1
hooks:
- id: typos
stages: [commit]
- repo: https://github.com/crate-ci/committed
rev: v1.0.20
rev: v1.1.10
hooks:
- id: committed
stages: [commit-msg]
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Change Log

All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

The format is based on [Keep a Changelog](https://keepachangelog.com/)
and this project adheres to [Semantic Versioning](https://semver.org/).

<!-- next-header -->
## [Unreleased] - ReleaseDate
Expand Down
15 changes: 9 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ appreciate any level you're willing to do.

Need some new functionality to help? You can let us know by opening an
[issue][new issue]. It's helpful to look through [all issues][all issues] in
case its already being talked about.
case it's already being talked about.

## Bug Reports

Please let us know about what problems you run into, whether in behavior or
ergonomics of API. You can do this by opening an [issue][new issue]. It's
helpful to look through [all issues][all issues] in case its already being
helpful to look through [all issues][all issues] in case it's already being
talked about.

## Pull Requests

Looking for an idea? Check our [issues][issues]. If it's look more open ended,
Looking for an idea? Check our [issues][issues]. If the issue looks open ended,
it is probably best to post on the issue how you are thinking of resolving the
issue so you can get feedback early in the process. We want you to be
successful and it can be discouraging to find out a lot of re-work is needed.
Expand All @@ -41,15 +41,18 @@ As a heads up, we'll be running your PR through the following gauntlet:
Not everything can be checked automatically though.

We request that the commit history gets cleaned up.

We ask that commits are atomic, meaning they are complete and have a single responsibility.
PRs should tell a cohesive story, with test and refactor commits that keep the
A complete commit should build, pass tests, update documentation and tests, and not have dead code.

PRs should tell a cohesive story, with refactor and test commits that keep the
fix or feature commits simple and clear.

Specifically, we would encourage
- File renames be isolated into their own commit
- Add tests in a commit before their feature or fix, showing the current behavior.
- Add tests in a commit before their feature or fix, showing the current behavior (i.e. they should pass).
The diff for the feature/fix commit will then show how the behavior changed,
making it clearer to reviewrs and the community and showing people that the
making the commit's intent clearer to reviewers and the community, and showing people that the
test is verifying the expected state.
- e.g. [clap#5520](https://github.com/clap-rs/clap/pull/5520)

Expand Down
Loading
Loading