diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f6493c6..b7a076a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,8 +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 stable and beta rust toolchains -# - minimal: runs the test suite with the minimal versions of the dependencies that satisfy the -# requirements of this crate, and its dependencies +# - 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: @@ -42,43 +42,21 @@ jobs: # https://github.com/rust-lang/cargo/issues/6669 - name: cargo test --doc run: cargo test --locked --all-features --doc - 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 + direct-minimal: runs-on: ubuntu-latest - name: ubuntu / stable / minimal-versions + name: ubuntu / stable / direct-minimal-versions steps: - uses: actions/checkout@v4 with: submodules: true - name: Install stable uses: dtolnay/rust-toolchain@stable - - name: Install nightly for -Zminimal-versions + - name: Install nightly for -Zdirect-minimal-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 update -Zdirect-minimal-versions + run: cargo +nightly update -Zdirect-minimal-versions - name: cargo test run: cargo test --locked --all-features --all-targets os-check: diff --git a/memcrab-cli/Cargo.toml b/memcrab-cli/Cargo.toml index 8082b4e..f118ca1 100644 --- a/memcrab-cli/Cargo.toml +++ b/memcrab-cli/Cargo.toml @@ -17,6 +17,3 @@ memcrab = { version = "0.1.0", path = "../memcrab" } memcrab-server = { version = "0.1.0", path = "../memcrab-server" } rustyline = "13.0.0" tokio = { version = "1.35.1", features = ["full"] } - -[target.'cfg(any())'.dependencies] -log = { version = "0.4.5", optional = true } # needed to allow foo to build with -Zminimal-versions diff --git a/memcrab-server/Cargo.toml b/memcrab-server/Cargo.toml index d5b0c06..e72a380 100644 --- a/memcrab-server/Cargo.toml +++ b/memcrab-server/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] tokio = { workspace = true, features = ["full"] } memcrab-protocol = { version = "0.1.0", path = "../memcrab-protocol" } -lru = { version = "0.12.1", default-features = false } +lru = { version = "0.12.1" } thiserror.workspace = true typed-builder = "0.18.1" async-trait = "0.1.77"