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

Upgrade nightly used in CI #3073

Merged
merged 20 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5fcfb93
Upgrade nightly used in CI
jdisanti Oct 16, 2023
1324c91
Remove unnecessary nightly builds and sparse registry flags
jdisanti Oct 16, 2023
cc93c44
Add cmake for cargo-semver-checks
jdisanti Oct 16, 2023
f5481ba
Attempt to fix minimal versions check
jdisanti Oct 16, 2023
929b590
Attempt to fix minimal versions check again
jdisanti Oct 17, 2023
b716c1c
Revert "Attempt to fix minimal versions check again"
jdisanti Oct 17, 2023
19fe7c2
Revert "Attempt to fix minimal versions check"
jdisanti Oct 17, 2023
73cf5d1
Upgrade minimal versions check
jdisanti Oct 17, 2023
9ed8bff
Merge remote-tracking branch 'origin/main' into jdisanti-upgrade-nightly
jdisanti Dec 6, 2023
82877bc
Fix rustdoc warnings
jdisanti Dec 7, 2023
e2630ad
Merge remote-tracking branch 'origin/main' into jdisanti-upgrade-nightly
jdisanti Dec 7, 2023
aa8059f
Allow unknown lints
jdisanti Dec 7, 2023
a4a63ac
Merge remote-tracking branch 'origin/main' into jdisanti-upgrade-nightly
jdisanti Dec 7, 2023
b1ff088
Output minimal versions tree in CI to make debugging easier
jdisanti Dec 7, 2023
a75db73
Upgrade transitive `proc-macros2` to version that compiles on this ni…
jdisanti Dec 7, 2023
00eacaf
Fix more minimal version issues
jdisanti Dec 7, 2023
b1edf49
Minor fix
jdisanti Dec 8, 2023
1e1ed4c
Merge branch 'main' into jdisanti-upgrade-nightly
jdisanti Dec 8, 2023
9aa0b53
Upgrade MSRV to Rust 1.72.1 (#3298)
jdisanti Dec 14, 2023
ef39a3f
Merge remote-tracking branch 'origin/main' into jdisanti-upgrade-nightly
jdisanti Dec 14, 2023
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: 1 addition & 1 deletion aws/rust-runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Note: this workspace exists solely for the convenience of running tests. These packages will all eventually
# end up in the final SDK workspace.
[workspace]

resolver = "2"
members = [
"aws-credential-types",
"aws-endpoint",
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ aws-sdk-ssooidc = { path = "../../sdk/build/aws-sdk/sdk/ssooidc", default-featur
[dev-dependencies]
aws-smithy-runtime = { path = "../../sdk/build/aws-sdk/sdk/aws-smithy-runtime", features = ["client", "connector-hyper-0-14-x", "test-util"] }
aws-smithy-runtime-api = { path = "../../sdk/build/aws-sdk/sdk/aws-smithy-runtime-api", features = ["test-util"] }
futures-util = { version = "0.3.16", default-features = false }
futures-util = { version = "0.3.29", default-features = false }
tracing-test = "0.2.1"
tracing-subscriber = { version = "0.3.16", features = ["fmt", "json"] }

Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/src/default_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

//! Providers that implement the default AWS provider chain
//!
//! Default Provider chains for [`region`](crate::default_provider::region), [`credentials`](crate::default_provider::credentials),
//! Default Provider chains for [`region`], [`credentials`],
//! [retries](crate::default_provider::retry_config), [timeouts](crate::default_provider::timeout_config) and
//! [app name](crate::default_provider::app_name).
//!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ pub async fn default_provider() -> impl ProvideCredentials {
/// Default AWS Credential Provider Chain
///
/// Resolution order:
/// 1. Environment variables: [`EnvironmentVariableCredentialsProvider`](crate::environment::EnvironmentVariableCredentialsProvider)
/// 1. Environment variables: [`EnvironmentVariableCredentialsProvider`]
/// 2. Shared config (`~/.aws/config`, `~/.aws/credentials`): [`SharedConfigCredentialsProvider`](crate::profile::ProfileFileCredentialsProvider)
/// 3. [Web Identity Tokens](crate::web_identity_token)
/// 4. ECS (IAM Roles for Tasks) & General HTTP credentials: [`ecs`](crate::ecs)
Expand Down Expand Up @@ -90,7 +90,7 @@ impl ProvideCredentials for DefaultCredentialsChain {
}
}

/// Builder for [`DefaultCredentialsChain`](DefaultCredentialsChain)
/// Builder for [`DefaultCredentialsChain`].
#[derive(Debug, Default)]
pub struct Builder {
profile_file_builder: crate::profile::credentials::Builder,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ impl Builder {
self
}

/// Attempt to create a [RetryConfig](aws_smithy_types::retry::RetryConfig) from following sources in order:
/// Attempt to create a [RetryConfig] from following sources in order:
jdisanti marked this conversation as resolved.
Show resolved Hide resolved
/// 1. Environment variables: `AWS_MAX_ATTEMPTS` & `AWS_RETRY_MODE`
/// 2. Profile file: `max_attempts` and `retry_mode`
/// 3. [RetryConfig::standard()](aws_smithy_types::retry::RetryConfig::standard)
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/src/ecs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ impl Builder {

/// Override the DNS resolver used to validate URIs
///
/// URIs must refer to loopback addresses. The [`ResolveDns`](aws_smithy_runtime_api::client::dns::ResolveDns)
/// URIs must refer to loopback addresses. The [`ResolveDns`]
/// implementation is used to retrieve IP addresses for a given domain.
pub fn dns(mut self, dns: impl ResolveDns + 'static) -> Self {
self.dns = Some(dns.into_shared());
Expand Down
27 changes: 13 additions & 14 deletions aws/rust-runtime/aws-config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@
//! These implementations can be used either via the default chain implementation
//! [`from_env`]/[`ConfigLoader`] or ad-hoc individual credential and region providers.
//!
//! [`ConfigLoader`](ConfigLoader) can combine different configuration sources into an AWS shared-config:
//! [`SdkConfig`](aws_types::SdkConfig). [`SdkConfig`](aws_types::SdkConfig) can be used configure
//! an AWS service client.
//! [`ConfigLoader`] can combine different configuration sources into an AWS shared-config:
//! [`SdkConfig`]. `SdkConfig` can be used configure an AWS service client.
//!
//! # Examples
//!
Expand Down Expand Up @@ -239,7 +238,7 @@ mod loader {
Set(SharedCredentialsProvider),
}

/// Load a cross-service [`SdkConfig`](aws_types::SdkConfig) from the environment
/// Load a cross-service [`SdkConfig`] from the environment
///
/// This builder supports overriding individual components of the generated config. Overriding a component
/// will skip the standard resolution chain from **for that component**. For example,
Expand Down Expand Up @@ -269,13 +268,13 @@ mod loader {
}

impl ConfigLoader {
/// Sets the [`BehaviorVersion`] used to build [`SdkConfig`](aws_types::SdkConfig).
/// Sets the [`BehaviorVersion`] used to build [`SdkConfig`].
pub fn behavior_version(mut self, behavior_version: BehaviorVersion) -> Self {
self.behavior_version = Some(behavior_version);
self
}

/// Override the region used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the region used to build [`SdkConfig`].
///
/// # Examples
/// ```no_run
Expand All @@ -291,7 +290,7 @@ mod loader {
self
}

/// Override the retry_config used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the retry_config used to build [`SdkConfig`].
///
/// # Examples
/// ```no_run
Expand All @@ -309,7 +308,7 @@ mod loader {
self
}

/// Override the timeout config used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the timeout config used to build [`SdkConfig`].
///
/// **Note: This only sets timeouts for calls to AWS services.** Timeouts for the credentials
/// provider chain are configured separately.
Expand Down Expand Up @@ -356,7 +355,7 @@ mod loader {
self
}

/// Override the [`HttpClient`](aws_smithy_runtime_api::client::http::HttpClient) for this [`ConfigLoader`].
/// Override the [`HttpClient`] for this [`ConfigLoader`].
///
/// The HTTP client will be used for both AWS services and credentials providers.
///
Expand Down Expand Up @@ -392,7 +391,7 @@ mod loader {
self
}

/// Override the identity cache used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the identity cache used to build [`SdkConfig`].
///
/// The identity cache caches AWS credentials and SSO tokens. By default, a lazy cache is used
/// that will load credentials upon first request, cache them, and then reload them during
Expand Down Expand Up @@ -426,7 +425,7 @@ mod loader {
self
}

/// Override the credentials provider used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the credentials provider used to build [`SdkConfig`].
///
/// # Examples
///
Expand Down Expand Up @@ -484,7 +483,7 @@ mod loader {
self.credentials_provider(Credentials::for_tests())
}

/// Override the name of the app used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the name of the app used to build [`SdkConfig`].
///
/// This _optional_ name is used to identify the application in the user agent that
/// gets sent along with requests.
Expand Down Expand Up @@ -608,7 +607,7 @@ mod loader {
self
}

/// Override the [`StalledStreamProtectionConfig`] used to build [`SdkConfig`](aws_types::SdkConfig).
/// Override the [`StalledStreamProtectionConfig`] used to build [`SdkConfig`].
///
/// This configures stalled stream protection. When enabled, download streams
/// that stop (stream no data) for longer than a configured grace period will return an error.
Expand Down Expand Up @@ -649,7 +648,7 @@ mod loader {
///
/// NOTE: When an override is provided, the default implementation is **not** used as a fallback.
/// This means that if you provide a region provider that does not return a region, no region will
/// be set in the resulting [`SdkConfig`](aws_types::SdkConfig)
/// be set in the resulting [`SdkConfig`].
pub async fn load(self) -> SdkConfig {
let time_source = self.time_source.unwrap_or_default();

Expand Down
6 changes: 2 additions & 4 deletions aws/rust-runtime/aws-config/src/meta/credentials/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@ use tracing::Instrument;
/// Credentials provider that checks a series of inner providers
///
/// Each provider will be evaluated in order:
/// * If a provider returns valid [`Credentials`](aws_credential_types::Credentials) they will be returned immediately.
/// * If a provider returns valid [`Credentials`] they will be returned immediately.
/// No other credential providers will be used.
/// * Otherwise, if a provider returns
/// [`CredentialsError::CredentialsNotLoaded`](aws_credential_types::provider::error::CredentialsError::CredentialsNotLoaded),
/// the next provider will be checked.
/// * Otherwise, if a provider returns [`CredentialsError::CredentialsNotLoaded`], the next provider will be checked.
/// * Finally, if a provider returns any other error condition, an error will be returned immediately.
///
/// # Examples
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/src/meta/region.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ pub mod future {
}
}

/// Provide a [`Region`](Region) to use with AWS requests
/// Provide a [`Region`] to use with AWS requests
///
/// For most cases [`default_provider`](crate::default_provider::region::default_provider) will be the best option, implementing
/// a standard provider chain.
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/src/profile/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! Load configuration from AWS Profiles
//!
//! AWS profiles are typically stored in `~/.aws/config` and `~/.aws/credentials`. For more details
//! see the [`load`](parser::load) function.
//! see the [`load`] function.

mod parser;

Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-config/src/profile/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ impl ProfileSet {

/// An individual configuration profile
///
/// An AWS config may be composed of a multiple named profiles within a [`ProfileSet`](ProfileSet)
/// An AWS config may be composed of a multiple named profiles within a [`ProfileSet`].
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Profile {
name: String,
Expand Down
4 changes: 2 additions & 2 deletions aws/rust-runtime/aws-config/src/profile/parser/source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub(super) struct File {
pub(super) contents: String,
}

/// Load a [Source](Source) from a given environment and filesystem.
/// Load a [`Source`] from a given environment and filesystem.
pub(super) async fn load(
proc_env: &os_shim_internal::Env,
fs: &os_shim_internal::Fs,
Expand Down Expand Up @@ -77,7 +77,7 @@ fn file_contents_to_string(path: &Path, contents: Vec<u8>) -> String {
/// Loads an AWS Config file
///
/// Both the default & the overriding patterns may contain `~/` which MUST be expanded to the users
/// home directory in a platform-aware way (see [`expand_home`](expand_home))
/// home directory in a platform-aware way (see [`expand_home`]).
///
/// Arguments:
/// * `kind`: The type of config file to load
Expand Down
4 changes: 2 additions & 2 deletions aws/rust-runtime/aws-config/src/web_identity_token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ impl WebIdentityTokenCredentialsProvider {
}
}

/// Builder for [`WebIdentityTokenCredentialsProvider`](WebIdentityTokenCredentialsProvider)
/// Builder for [`WebIdentityTokenCredentialsProvider`].
#[derive(Debug, Default)]
pub struct Builder {
source: Option<Source>,
Expand All @@ -183,7 +183,7 @@ impl Builder {
self
}

/// Configure this builder to use [`StaticConfiguration`](StaticConfiguration)
/// Configure this builder to use [`StaticConfiguration`].
///
/// WebIdentityToken providers load credentials from the file system. The file system path used
/// may either determine be loaded from environment variables (default), or via a statically
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-credential-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ aws-smithy-runtime-api = { path = "../../../rust-runtime/aws-smithy-runtime-api"
zeroize = "1"

[dev-dependencies]
async-trait = "0.1.51" # used to test compatibility
async-trait = "0.1.74" # used to test compatibility
tokio = { version = "1.23.1", features = ["full", "test-util", "rt"] }

[package.metadata.docs.rs]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ impl Credentials {
///
/// This function requires the `hardcoded-credentials` feature to be enabled.
///
/// [`Credentials`](crate::Credentials) implement
/// [`Credentials`] implement
/// [`ProvideCredentials`](crate::provider::ProvideCredentials) directly, so no custom provider
/// implementation is required when wiring these up to a client:
/// ```rust
Expand Down
4 changes: 2 additions & 2 deletions aws/rust-runtime/aws-http/src/content_encoding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub mod header_value {
pub const AWS_CHUNKED: &str = "aws-chunked";
}

/// Options used when constructing an [`AwsChunkedBody`][AwsChunkedBody].
/// Options used when constructing an [`AwsChunkedBody`].
#[derive(Debug, Default)]
#[non_exhaustive]
pub struct AwsChunkedBodyOptions {
Expand All @@ -35,7 +35,7 @@ pub struct AwsChunkedBodyOptions {
}

impl AwsChunkedBodyOptions {
/// Create a new [`AwsChunkedBodyOptions`][AwsChunkedBodyOptions]
/// Create a new [`AwsChunkedBodyOptions`].
pub fn new(stream_length: u64, trailer_lengths: Vec<u64>) -> Self {
Self {
stream_length,
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-sigv4/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ form_urlencoded = { version = "1.0", optional = true }
hex = "0.4"
hmac = "0.12"
http = { version = "0.2", optional = true }
num-bigint = { version = "0.4", optional = true }
num-bigint = { version = "0.4.2", optional = true }
once_cell = "1.8"
p256 = { version = "0.11", features = ["ecdsa"], optional = true }
percent-encoding = { version = "2.1", optional = true }
Expand Down
4 changes: 2 additions & 2 deletions aws/rust-runtime/aws-types/src/os_shim_internal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ mod fs {
///
/// Environment variables are global to a process, and, as such, are difficult to test with a multi-
/// threaded test runner like Rust's. This enables loading environment variables either from the
/// actual process environment ([`std::env::var`](std::env::var)) or from a hash map.
/// actual process environment ([`std::env::var`]) or from a hash map.
///
/// Process environments are cheap to clone:
/// - Faked process environments are wrapped in an internal Arc
Expand Down Expand Up @@ -257,7 +257,7 @@ impl Env {

/// Create a process environment that uses the real process environment
///
/// Calls will be delegated to [`std::env::var`](std::env::var).
/// Calls will be delegated to [`std::env::var`].
pub fn real() -> Self {
Self(env::Inner::Real)
}
Expand Down
2 changes: 1 addition & 1 deletion aws/rust-runtime/aws-types/src/sdk_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ impl Builder {
self
}

/// Build a [`SdkConfig`](SdkConfig) from this builder
/// Build a [`SdkConfig`] from this builder.
pub fn build(self) -> SdkConfig {
SdkConfig {
app_name: self.app_name,
Expand Down
2 changes: 1 addition & 1 deletion aws/sdk/benchmarks/s3-throughput/benchmark/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ clap = { version = "4.3.2", default-features = false, features = ["derive", "std
tokio = { version = "1.28.2", features = ["full"] }
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
tracing = "0.1"
async-trait = "0.1.68"
async-trait = "0.1.74"
hyper = { version = "0.14.27", features = ["client"] }
2 changes: 1 addition & 1 deletion aws/sdk/integration-tests/dynamodb/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ aws-smithy-types = { path = "../../build/aws-sdk/sdk/aws-smithy-types", features
aws-types = { path = "../../build/aws-sdk/sdk/aws-types" }
bytes = "1.0.0"
criterion = { version = "0.5.0" }
futures-util = { version = "0.3.16", default-features = false }
futures-util = { version = "0.3.29", default-features = false }
http = "0.2.0"
serde_json = "1.0.0"
tokio = { version = "1.23.1", features = ["full", "test-util"] }
Expand Down
2 changes: 1 addition & 1 deletion aws/sdk/integration-tests/lambda/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ aws-smithy-http = { path = "../../build/aws-sdk/sdk/aws-smithy-http" }
aws-smithy-runtime = { path = "../../build/aws-sdk/sdk/aws-smithy-runtime", features = ["client", "test-util"] }
base64 = "0.13.0"
bytes = "1.0.0"
futures-core = "0.3.14"
futures-core = "0.3.29"
http = "0.2.0"
serde_json = "1.0.0"
tokio = { version = "1.23.1", features = ["full", "test-util"] }
Expand Down
2 changes: 1 addition & 1 deletion aws/sdk/integration-tests/s3/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ aws-types = { path = "../../build/aws-sdk/sdk/aws-types" }
bytes = "1"
bytes-utils = "0.1.2"
fastrand = "2.0.1"
futures-util = { version = "0.3.16", default-features = false, features = ["alloc"] }
futures-util = { version = "0.3.29", default-features = false, features = ["alloc"] }
hdrhistogram = "7.5.2"
http = "0.2.3"
http-body = "0.4.5"
Expand Down
2 changes: 1 addition & 1 deletion aws/sdk/integration-tests/transcribestreaming/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ aws-smithy-eventstream = { path = "../../build/aws-sdk/sdk/aws-smithy-eventstrea
aws-smithy-http = { path = "../../build/aws-sdk/sdk/aws-smithy-http" }
aws-smithy-runtime = { path = "../../build/aws-sdk/sdk/aws-smithy-runtime", features = ["client", "test-util"] }
bytes = "1.0.0"
futures-core = "0.3.14"
futures-core = "0.3.29"
hound = "3.4.0"
http = "0.2.0"
serde_json = "1.0.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection
private val allowedRustcLints = listOf(
// Deprecated items should be safe to compile, so don't block the compilation.
"deprecated",

// Unknown lints need to be allowed since we use both nightly and our MSRV, and sometimes we need
// to disable lints that are in nightly but don't exist in the MSRV.
"unknown_lints",
)

private val allowedClippyLints = listOf(
Expand Down Expand Up @@ -56,6 +60,9 @@ private val allowedRustdocLints = listOf(
// Rust >=1.53.0 requires links to be wrapped in `<link>`. This is extremely hard to enforce for
// docs that come from the modeled documentation, so we need to disable this lint
"bare_urls",
// Rustdoc warns about redundant explicit links in doc comments. This is fine for handwritten
// crates, but is impractical to manage for code generated crates. Thus, allow it.
"redundant_explicit_links",
)

class AllowLintsCustomization(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import software.amazon.smithy.rust.codegen.core.smithy.RuntimeConfig
* For a dependency that is used in the client, or in both the client and the server, use [CargoDependency] directly.
*/
object ServerCargoDependency {
val AsyncTrait: CargoDependency = CargoDependency("async-trait", CratesIo("0.1"))
val AsyncTrait: CargoDependency = CargoDependency("async-trait", CratesIo("0.1.74"))
val FormUrlEncoded: CargoDependency = CargoDependency("form_urlencoded", CratesIo("1"))
val FuturesUtil: CargoDependency = CargoDependency("futures-util", CratesIo("0.3"))
val Mime: CargoDependency = CargoDependency("mime", CratesIo("0.3"))
Expand Down
Loading