Revert pinning tokio version in codegen integ tests (#3681)
## Motivation and Context Reverts e4260f5ab6b7b3e0f64bd7f270cebd2bd1e5250e ## Description We recently had a CI failure where some of the SDK codegen integration tests encountered a cargo dependency graph resolution error ([example](https://github.com/smithy-lang/smithy-rs/actions/runs/9351952926/job/25740638098?pr=3677#step:3:639)). The way the issue manifested is as follows: 1. A preceding test `SdkCodegenIntegrationTest.smokeTestSdkCodegen` generated a `Cargo.lock` at the top-level directory of a shared test workspace whose `tokio` dependency did NOT include the `macros` feature: ``` [[package]] name = "tokio" version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", "libc", "mio", "pin-project-lite", "socket2", "windows-sys 0.48.0", ] ``` 2. During its turn, `CredentialProviderConfigTest`, which is one of the failed tests and depends on the `macros` feature of `tokio`, generated its own test crate and made it as a member of the workspace, for instance: ``` [workspace] resolver = "2" members = ["smithy-test1475522104838765591"] ``` 3. Docker containers used by GitHub action have the `CARGO_HOME` set to `/opt/cargo` where it stores crates io index, cached crates, and so on. The registry cache did not contain the sought crate `tokio-macros-2.3.0` at the end of previous step: ``` bash-5.2# ls /opt/cargo/registry/cache/index.crates.io-6f17d22bba15001f/tokio- tokio-1.37.0.crate tokio-macros-2.2.0.crate tokio-rustls-0.24.1.crate tokio-util-0.7.11.crate tokio-1.38.0.crate tokio-native-tls-0.3.1.crate tokio-util-0.7.10.crate ``` (`bash-5.2#` indicates that we shelled into a container) 4. Running `cargo test` from the workspace root (or from within the crate generated at step 2) then triggered the error in question: ``` bash-5.2# cargo t --all-features error: failed to select a version for the requirement `tokio-macros = "~2.3.0"` candidate versions found which didn't match: 2.2.0, 2.1.0, 2.0.0, ... location searched: crates.io index required by package `tokio v1.38.0` ``` Whether the issue occurs or not for a given test depends upon the contents of the lockfile of a workspace generated by prior tests. To ensure we avoid this during codegen integration tests, this PR updates crates io index before executing `cargo test`. ## Testing - [x] Passed CI - [x] Passed internal release pipeline E2E tests ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
Loading
Please register or sign in to comment