You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Motivation and Context
Fixes#3265
## Description
To check semver, `semver checks` needs to compile two versions of a
crate, i.e. baseline and current. Our CI failed to compile `aws-config`
for a baseline version.
The following diagram shows what was missing to cause compilation
failure:
```
┌───────────┐
│ smithy-rs │
└─────┬─────┘
│
│
│ ┌────────┐
└─────┤ target │
└───┬────┘
│ ┌───────────────┐
└────────┤ semver_checks │
└───────┬───────┘
│
│
│ ┌──────────┐
└───────┤ git-base │
└────┬─────┘
│
│ ┌──────────────┐
├────────┤ <rev number> │
│ └──────┬───────┘
│ │
│ │
│ │ ┌───────┐
│ ├───────┤ aws │
│ │ └───┬───┘
│ │ │
│ │ │ ┌──────────────┐
│ │ ├───────┤ rust-runtime │
│ │ │ └──────┬───────┘
│ │ │ │
│ │ │ │ ┌────────────┐
│ │ │ └───────┤ aws-config │ ◄***************
│ │ │ └────────────┘ *
│ │ │ * *
│ │ │ * *
│ │ │ *****depends*on**** *
│ │ │ ▼ *
│ │ │ *
│ │ │ ┌─────┐ *
│ │ └───────┤ sdk │ (with no "build" directory) *
│ │ └─────┘ *
│ │ *
│ │ *
│ │ ┌────────────────────┐ depends on
│ └──────┤ tmp-codegen-diff │ *
│ └─────────┬──────────┘ *
│ │ *
│ │ ┌─────────┐ *
│ └───────┤ aws-sdk │ *
│ └────┬────┘ *
│ │ ┌─────┐ *
│ └─────┤ sdk │ *
│ └─────┘ *
│ *
│ *
│ ┌───────────────────────────────────────┐ *
└───────────┤ local-aws_config-0_0_0_smithy_rs_head │*****************************
└───────────────────────────────────────┘
```
`local-aws_config-0_0_0_smithy_rs_head` under the `git-base` directory
is a special crate created by `semver-checks` for a baseline version of
`aws-config` and its `Cargo.toml` depends on
`target/semver_checks/git-base/<rev
number>/aws/rust-runtime/aws-config`. However, that `aws-config` in turn
depends upon crates in `target/semver_checks/git-base/<rev
number>/aws/sdk/build/` (as shown
[here](https://github.com/smithy-lang/smithy-rs/blob/main/aws/rust-runtime/aws-config/Cargo.toml#L23-L33)),
which does not exist in a baseline branch.
When `semver-checks.py` [creates a baseline
branch](https://github.com/smithy-lang/smithy-rs/blob/3d0cb5c3b179d5ed1d14531882657b481c4469f0/tools/ci-scripts/codegen-diff/semver-checks.py#L31)
to prepare for running `cargo semver-checks`, it [moves aws/sdk/build to
tmp-codegen-diff](https://github.com/smithy-lang/smithy-rs/blob/3d0cb5c3b179d5ed1d14531882657b481c4469f0/tools/ci-scripts/codegen-diff/diff_lib.py#L59),
leaving nothing behind in `aws/sdk/build/`. The fix, therefore, is to
`cp -r aws/sdk/build/aws-sdk` instead of `mv aws/sdk/build/aws-sdk` when
preparing a baseline branch.
The issue is specific to `aws-config`, probably because that's the only
runtime crate that depends on those in `aws/sdk/build`.
## Testing
Verified a clean run for `cargo semver-checks` in [an investigation
branch](https://github.com/smithy-lang/smithy-rs/actions/runs/7035082815/job/19144676499#step:4:1101).
----
_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
0 commit comments