Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Update from _rust/main template #167

Merged
merged 45 commits into from Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
69fa026
chore(deps): update actions/setup-python action to v5
renovate[bot] Jan 1, 2024
82c9aa7
chore(deps): update github/codeql-action action to v3
renovate[bot] Jan 1, 2024
c7805bc
Merge pull request #12 from epage/renovate/actions-setup-python-5.x
epage Jan 2, 2024
739d2cf
Merge pull request #13 from epage/renovate/github-codeql-action-3.x
epage Jan 2, 2024
a4c0626
chore: Make renovate commits to match
epage Jan 2, 2024
61250a3
chore(ci): Optimize CI runs
epage Jan 3, 2024
e819db4
chore(ci): Cancel prior CI runs
epage Jan 18, 2024
0b02906
chore(ci): Be explicit in renovate updates
epage Jan 24, 2024
131de55
chore(ci): Add m1 runners
epage Jan 31, 2024
9a5af5c
chore(ci): Only check intel mac on schedule
epage Feb 8, 2024
da56001
chore(ci): Gather coverage
epage Feb 8, 2024
1313256
chore(ci): Use latest for coverage
epage Feb 8, 2024
51a98a2
chore(ci): Defer to package.rust-version for clippy
epage Feb 15, 2024
4db293d
chore(ci): Only verify MSRV for published packages
epage Feb 15, 2024
779496b
chore(ci): Run the latest clippy
epage Feb 15, 2024
c977df5
chore(ci): Prevent cargo-hack from blowing away our lockfile
epage Feb 21, 2024
7846c51
chore(deps): Update pre-commit/action action to v3.0.1
renovate[bot] Mar 1, 2024
2d5ff55
Merge pull request #16 from epage/renovate/pre-commit-action-3.x
epage Mar 1, 2024
3d5ead8
chore(ci): Configure standard lints
epage Mar 21, 2024
ace6e07
chore(ci): Don't update stable and MSRV together
epage Mar 21, 2024
8ec86ab
chore: Normalize clippy lint names
epage Mar 25, 2024
8e647d9
chore: Encourage use of workspace.dependencies
epage Mar 28, 2024
126eb3d
chore: Encourage a single test binary
epage Mar 28, 2024
c8b190b
chore(ci): Use latest SARIF
epage Mar 28, 2024
9b1b566
chore(ci): Fix all rust-version-specific checks to stable
epage Mar 28, 2024
92d486c
chore(ci): Speed up lockfile check
epage Mar 28, 2024
9258d9a
chore(ci): More exhaustively check features
epage Mar 28, 2024
2714cca
chore(ci): Don't check for unused crates
epage Mar 28, 2024
314eef7
chore: Dont check must_use
epage Mar 28, 2024
6a9d2bf
chore: Don't warn on unsafe
epage Mar 28, 2024
8d4b1b6
chore: Remove clippy::tests_outside_test_module
epage Mar 28, 2024
99e034b
chore: Move print lints to lib.rs
epage Mar 28, 2024
a516bda
chore: Drop workspace.dependencies
epage Apr 1, 2024
ebc70d0
chore: Only check missing_docs in lib
epage Apr 1, 2024
3278d49
chore: Allow print in tests
epage Apr 1, 2024
d634de6
chore(ci): Ensure CI job always runs
epage Apr 1, 2024
dc3e937
Merge pull request #19 from epage/t
epage Apr 1, 2024
2570b58
chore(ci): Skip branch protections
epage Apr 1, 2024
afd2755
chore(ci): Don't block on Lint Commits
epage Apr 1, 2024
14225df
chore(ci): Auto-merge linter version updates
epage Apr 17, 2024
be30b1b
chore(ci): Try again with not auto-updating MSRV
epage Apr 26, 2024
a01f25d
chore(ci): Reduce noisy lints
epage Apr 26, 2024
82cf9a6
chore(ci): Reduce noisy lints
epage Apr 26, 2024
181a2cf
chore(ci): Allow prelude wildcard imports
epage Apr 26, 2024
f9786f8
chore: Update from _rust/main template
epage Apr 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions .clippy.toml
@@ -1,5 +1,4 @@
msrv = "1.74" # MSRV
warn-on-all-wildcard-imports = true
allow-print-in-tests = true
allow-expect-in-tests = true
allow-unwrap-in-tests = true
allow-dbg-in-tests = true
Expand Down
16 changes: 9 additions & 7 deletions .github/renovate.json5
Expand Up @@ -3,6 +3,7 @@
'before 5am on the first day of the month',
],
semanticCommits: 'enabled',
commitMessageLowerCase: 'never',
configMigration: true,
dependencyDashboard: true,
customManagers: [
Expand All @@ -17,29 +18,28 @@
'^\\.github/workflows/rust-next.yml$',
],
matchStrings: [
'MSRV.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
'(?<currentValue>\\d+\\.\\d+(\\.\\d+)?).*?MSRV',
'STABLE.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
'(?<currentValue>\\d+\\.\\d+(\\.\\d+)?).*?STABLE',
],
depNameTemplate: 'rust',
depNameTemplate: 'STABLE',
packageNameTemplate: 'rust-lang/rust',
datasourceTemplate: 'github-releases',
},
],
packageRules: [
{
commitMessageTopic: 'MSRV',
commitMessageTopic: 'Rust Stable',
matchManagers: [
'custom.regex',
],
matchPackageNames: [
'rust',
'STABLE',
],
minimumReleaseAge: '126 days', // 3 releases * 6 weeks per release * 7 days per week
internalChecksFilter: 'strict',
extractVersion: '^(?<version>\\d+\\.\\d+)', // Drop the patch version
schedule: [
'* * * * *',
],
automerge: true,
},
// Goals:
// - Keep version reqs low, ignoring compatible normal/build dependencies
Expand Down Expand Up @@ -72,6 +72,7 @@
matchCurrentVersion: '>=1.0.0',
matchUpdateTypes: [
'minor',
'patch',
],
enabled: false,
},
Expand Down Expand Up @@ -99,6 +100,7 @@
matchCurrentVersion: '>=1.0.0',
matchUpdateTypes: [
'minor',
'patch',
],
automerge: true,
groupName: 'compatible (dev)',
Expand Down
26 changes: 15 additions & 11 deletions .github/settings.yml
Expand Up @@ -42,14 +42,18 @@ labels:
color: '#c2e0c6'
description: "Help wanted!"

branches:
- name: master
protection:
required_pull_request_reviews: null
required_conversation_resolution: true
required_status_checks:
# Required. Require branches to be up to date before merging.
strict: false
contexts: ["CI", "Lint Commits", "Spell Check with Typos"]
enforce_admins: false
restrictions: null
# This serves more as documentation.
# Branch protection API was replaced by rulesets but settings isn't updated.
# See https://github.com/repository-settings/app/issues/825
#
# branches:
# - name: master
# protection:
# required_pull_request_reviews: null
# required_conversation_resolution: true
# required_status_checks:
# # Required. Require branches to be up to date before merging.
# strict: false
# contexts: ["CI", "Spell Check with Typos"]
# enforce_admins: false
# restrictions: null
4 changes: 4 additions & 0 deletions .github/workflows/audit.yml
Expand Up @@ -17,6 +17,10 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
security_audit:
permissions:
Expand Down
69 changes: 43 additions & 26 deletions .github/workflows/ci.yml
Expand Up @@ -14,21 +14,27 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
ci:
permissions:
contents: none
name: CI
needs: [test, msrv, docs, rustfmt, clippy]
needs: [test, msrv, lockfile, docs, rustfmt, clippy]
runs-on: ubuntu-latest
if: "always()"
steps:
- name: Done
run: exit 0
- name: Failed
run: exit 1
if: "contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')"
test:
name: Test
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
os: ["ubuntu-latest", "windows-latest", "macos-14"]
rust: ["stable"]
continue-on-error: ${{ matrix.rust != 'stable' }}
runs-on: ${{ matrix.os }}
Expand All @@ -40,31 +46,25 @@ jobs:
with:
toolchain: ${{ matrix.rust }}
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Build
run: cargo test --no-run --workspace --all-features
- name: Default features
run: cargo test --workspace
- name: All features
run: cargo test --workspace --all-features
- name: No-default features
run: cargo test --workspace --no-default-features
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
msrv:
name: "Check MSRV: 1.74"
name: "Check MSRV"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.74" # MSRV
toolchain: stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Default features
run: cargo check --workspace --all-targets
- name: All features
run: cargo check --workspace --all-targets --all-features
- name: No-default features
run: cargo check --workspace --all-targets --no-default-features
run: cargo hack check --feature-powerset --locked --rust-version --ignore-private --workspace --all-targets
lockfile:
runs-on: ubuntu-latest
steps:
Expand All @@ -76,7 +76,7 @@ jobs:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: "Is lockfile updated?"
run: cargo fetch --locked
run: cargo update --workspace --locked
docs:
name: Docs
runs-on: ubuntu-latest
Expand All @@ -86,7 +86,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
toolchain: "1.76" # STABLE
- uses: Swatinem/rust-cache@v2
- name: Check documentation
env:
Expand All @@ -101,9 +101,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
# Not MSRV because its harder to jump between versions and people are
# more likely to have stable
toolchain: stable
toolchain: "1.76" # STABLE
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
Expand All @@ -119,13 +117,13 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.74" # MSRV
toolchain: "1.76" # STABLE
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install SARIF tools
run: cargo install clippy-sarif --version 0.3.4 --locked # Held back due to msrv
run: cargo install clippy-sarif --locked
- name: Install SARIF tools
run: cargo install sarif-fmt --version 0.3.4 --locked # Held back due to msrv
run: cargo install sarif-fmt --locked
- name: Check
run: >
cargo clippy --workspace --all-features --all-targets --message-format=json -- -D warnings --allow deprecated
Expand All @@ -140,3 +138,22 @@ jobs:
wait-for-processing: true
- name: Report status
run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- 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
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
4 changes: 4 additions & 0 deletions .github/workflows/committed.yml
Expand Up @@ -11,6 +11,10 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
committed:
name: Lint Commits
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pre-commit.yml
Expand Up @@ -12,6 +12,10 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
pre-commit:
permissions:
Expand Down
28 changes: 15 additions & 13 deletions .github/workflows/rust-next.yml
Expand Up @@ -12,12 +12,16 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
test:
name: Test
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
os: ["ubuntu-latest", "windows-latest", "macos-latest", "macos-14"]
rust: ["stable", "beta"]
include:
- os: ubuntu-latest
Expand All @@ -32,12 +36,11 @@ jobs:
with:
toolchain: ${{ matrix.rust }}
- uses: Swatinem/rust-cache@v2
- name: Default features
run: cargo test --workspace
- name: All features
run: cargo test --workspace --all-features
- name: No-default features
run: cargo test --workspace --no-default-features
- uses: taiki-e/install-action@cargo-hack
- name: Build
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
latest:
name: "Check latest dependencies"
runs-on: ubuntu-latest
Expand All @@ -49,11 +52,10 @@ jobs:
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-hack
- name: Update dependencues
run: cargo update
- name: Default features
run: cargo test --workspace --all-targets
- name: All features
run: cargo test --workspace --all-targets --all-features
- name: No-default features
run: cargo test --workspace --all-targets --no-default-features
- name: Build
run: cargo test --workspace --no-run
- name: Test
run: cargo hack test --feature-powerset --workspace
4 changes: 4 additions & 0 deletions .github/workflows/spelling.yml
Expand Up @@ -10,6 +10,10 @@ env:
CARGO_TERM_COLOR: always
CLICOLOR: 1

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
spelling:
name: Spell Check with Typos
Expand Down