Skip to content
  • ysaito1001's avatar
    740edcc6
    Upgrade MSRV to 1.78.0 (#3800) · 740edcc6
    ysaito1001 authored
    ## Motivation and Context
    Upgrades MSRV to 1.78.0 since the [latest
    Rust](https://www.rust-lang.org/) at the time of writing is 1.80.1 (we
    try keeping [two releases
    behind](https://github.com/awslabs/aws-sdk-rust?tab=readme-ov-file#supported-rust-versions-msrv)).
    
    ## Description
    In Rust 1.78.0, `clippy` enforces stricter checks in two areas:
    - `dead_code`
    It seems to be able to uncover more unused code patterns, especially
    when different combinations of cargo features are enabled
    - `empty_docs`
    Prior to 1.78.0, the codegen used to render the following empty docs
    `///`, regardless whether the codegen is for the server or for the
    client. This is now flagged as `empty_docs` by `clippy`:
    ```
    ///
    pub(crate) mod XXX {
        ...
    }
    ```
    
    Other than bumping MSRV to 1.78.0, the remaining code changes address
    issues related to the fixes mentioned above.
    
    **EDIT:**
    `cargo-semver-checks` required an upgrade due to incompatibility issues
    following the MSRV upgrade ([example
    error](https://github.com/smithy-lang/smithy-rs/actions/runs/10534205294/job/29261105195#step:4:2068)).
    Specifically, after updating the MSRV to 1.78.0, the rustdoc version was
    upgraded to v28. However, the version of `cargo-semver-checks` we were
    using (0.24.1) only supported rustdoc [up to
    v27](https://github.com/obi1kenobi/cargo-semver-checks/blob/4bce03d4a6a32cf651b9eccddb40e3418dc2c154/Cargo.toml#L18).
    
    To resolve this, we have updated `cargo-semver-checks` to the first
    version that supports rustdoc
    [v28](https://github.com/obi1kenobi/cargo-semver-checks/blob/94a491f0854f0bdbccbb301099db119201bff181/Cargo.toml#L18).
    
    ## Testing
    Existing tests in CI
    
    ## Checklist
    <!--- If a checkbox below is not applicable, then please DELETE it
    rather than leaving it unchecked -->
    - [x] For changes to the smithy-rs codegen or runtime crates, I have
    created a changelog entry Markdown file in the `.changelog` directory,
    specifying "client," "server," or both in the `applies_to` key.
    - [x] For changes to the AWS SDK, generated SDK code, or SDK runtime
    crates, I have created a changelog entry Markdown file in the
    `.changelog` directory, specifying "aws-sdk-rust" in the `applies_to`
    key.
    
    ----
    
    _By submitting this pull request, I confirm that you can use, modify,
    copy, and redistribute this contribution, under the terms of your
    choice._
    740edcc6
    Upgrade MSRV to 1.78.0 (#3800)
    ysaito1001 authored
    ## Motivation and Context
    Upgrades MSRV to 1.78.0 since the [latest
    Rust](https://www.rust-lang.org/) at the time of writing is 1.80.1 (we
    try keeping [two releases
    behind](https://github.com/awslabs/aws-sdk-rust?tab=readme-ov-file#supported-rust-versions-msrv)).
    
    ## Description
    In Rust 1.78.0, `clippy` enforces stricter checks in two areas:
    - `dead_code`
    It seems to be able to uncover more unused code patterns, especially
    when different combinations of cargo features are enabled
    - `empty_docs`
    Prior to 1.78.0, the codegen used to render the following empty docs
    `///`, regardless whether the codegen is for the server or for the
    client. This is now flagged as `empty_docs` by `clippy`:
    ```
    ///
    pub(crate) mod XXX {
        ...
    }
    ```
    
    Other than bumping MSRV to 1.78.0, the remaining code changes address
    issues related to the fixes mentioned above.
    
    **EDIT:**
    `cargo-semver-checks` required an upgrade due to incompatibility issues
    following the MSRV upgrade ([example
    error](https://github.com/smithy-lang/smithy-rs/actions/runs/10534205294/job/29261105195#step:4:2068)).
    Specifically, after updating the MSRV to 1.78.0, the rustdoc version was
    upgraded to v28. However, the version of `cargo-semver-checks` we were
    using (0.24.1) only supported rustdoc [up to
    v27](https://github.com/obi1kenobi/cargo-semver-checks/blob/4bce03d4a6a32cf651b9eccddb40e3418dc2c154/Cargo.toml#L18).
    
    To resolve this, we have updated `cargo-semver-checks` to the first
    version that supports rustdoc
    [v28](https://github.com/obi1kenobi/cargo-semver-checks/blob/94a491f0854f0bdbccbb301099db119201bff181/Cargo.toml#L18).
    
    ## Testing
    Existing tests in CI
    
    ## Checklist
    <!--- If a checkbox below is not applicable, then please DELETE it
    rather than leaving it unchecked -->
    - [x] For changes to the smithy-rs codegen or runtime crates, I have
    created a changelog entry Markdown file in the `.changelog` directory,
    specifying "client," "server," or both in the `applies_to` key.
    - [x] For changes to the AWS SDK, generated SDK code, or SDK runtime
    crates, I have created a changelog entry Markdown file in the
    `.changelog` directory, specifying "aws-sdk-rust" in the `applies_to`
    key.
    
    ----
    
    _By submitting this pull request, I confirm that you can use, modify,
    copy, and redistribute this contribution, under the terms of your
    choice._
Loading