Skip to content

Commit

Permalink
Update MSRV and replace "minimal-versions" check with "direct-minimal…
Browse files Browse the repository at this point in the history
…-versions" test (#555)

* replace minimal check with direct-minimal test

* update MSRV from 1.63 to 1.65 for proptest feature
  • Loading branch information
cospectrum authored Mar 11, 2024
1 parent 97db580 commit 3d3ed0c
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 46 deletions.
47 changes: 2 additions & 45 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
# - hack: check combinations of feature flags
# - msrv: check that the msrv specified in the crate is correct
# - semver: check API changes for semver violations.
# - minimal: runs "cargo check" with the minimal versions of the dependencies that satisfy the
# requirements of this crate, and its dependencies
permissions:
contents: read
# This configuration allows maintainers of this repo to create a branch and pull request based on
Expand Down Expand Up @@ -100,7 +98,7 @@ jobs:
# https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability
strategy:
matrix:
msrv: ["1.63.0"] # 2021 edition requires 1.56
msrv: ["1.65.0"] # 2021 edition requires 1.56
name: ubuntu / ${{ matrix.msrv }}
steps:
- uses: actions/checkout@v4
Expand All @@ -111,7 +109,7 @@ jobs:
with:
toolchain: ${{ matrix.msrv }}
- name: cargo +${{ matrix.msrv }} check
run: cargo check
run: cargo check --all-features
env:
RUSTFLAGS: -D warnings
semver:
Expand All @@ -121,44 +119,3 @@ jobs:
uses: actions/checkout@v3
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
minimal:
# This action chooses the oldest version of the dependencies permitted by Cargo.toml to ensure
# that this crate is compatible with the minimal version that this crate and its dependencies
# require. This will pickup issues where this create relies on functionality that was introduced
# later than the actual version specified (e.g., when we choose just a major version, but a
# method was added after this version).
#
# This particular check can be difficult to get to succeed as often transitive dependencies may
# be incorrectly specified (e.g., a dependency specifies 1.0 but really requires 1.1.5). There
# is an alternative flag available -Zdirect-minimal-versions that uses the minimal versions for
# direct dependencies of this crate, while selecting the maximal versions for the transitive
# dependencies. Alternatively, you can add a line in your Cargo.toml to artificially increase
# the minimal dependency, which you do with e.g.:
# ```toml
# # for minimal-versions
# [target.'cfg(any())'.dependencies]
# openssl = { version = "0.10.55", optional = true } # needed to allow foo to build with -Zminimal-versions
# ```
# The optional = true is necessary in case that dependency isn't otherwise transitively required
# by your library, and the target bit is so that this dependency edge never actually affects
# Cargo build order. See also
# https://github.com/jonhoo/fantoccini/blob/fde336472b712bc7ebf5b4e772023a7ba71b2262/Cargo.toml#L47-L49.
# This action is run on ubuntu with the stable toolchain, as it is not expected to fail
runs-on: ubuntu-latest
name: ubuntu / stable / minimal-versions
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install stable
uses: dtolnay/rust-toolchain@stable
- name: Install nightly for -Zminimal-versions
uses: dtolnay/rust-toolchain@nightly
- name: rustup default stable
run: rustup default stable
- name: cargo update -Zminimal-versions
run: cargo +nightly update -Zminimal-versions
- name: cargo check
run: cargo check --locked
env:
RUSTFLAGS: -D warnings
15 changes: 15 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# This is the main CI workflow that runs the test suite on all pushes to main and all pull requests.
# It runs the following jobs:
# - required: runs the test suite on ubuntu with the specified rust toolchains
# - direct-minimal: runs the test suite with the minimal versions of the dependencies that satisfy the
# requirements of this crate
# - os-check: runs the test suite on mac and windows
# See check.yml for information about how the concurrency cancellation and workflow triggering works
permissions:
Expand Down Expand Up @@ -38,6 +40,19 @@ jobs:
# https://github.com/rust-lang/cargo/issues/6669
- name: cargo test --doc
run: cargo test --locked --all-features --doc
direct-minimal:
runs-on: ubuntu-latest
name: ubuntu / nightly / direct-minimal-versions
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install nightly
uses: dtolnay/rust-toolchain@nightly
- name: cargo update -Zdirect-minimal-versions
run: cargo update -Zdirect-minimal-versions
- name: cargo test
run: cargo test --locked --all-features --all-targets
os-check:
# run cargo test on mac and windows
runs-on: ${{ matrix.os }}
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "imageproc"
version = "0.24.0"
authors = ["theotherphil"]
rust-version = "1.63.0"
rust-version = "1.65.0"
edition = "2021"
license = "MIT"
description = "Image processing operations"
Expand Down

0 comments on commit 3d3ed0c

Please sign in to comment.