-
Notifications
You must be signed in to change notification settings - Fork 197
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix subtle break of endpoint prefixes due to semver (#3318)
When we released smithy-rs release-2023-12-08, we introduced a silent failure for endpoint prefixes, and not in the newly released version, but in the previous releases. There is a subtle issue with semver that causes this. This PR addresses the endpoint prefix part of this problem. Other PRs will fix other parts that are broken by this semver issue. The issue is that unstable (0.x) runtime crates are declaring types that get placed into the `ConfigBag`, and these types are referenced in the `ConfigBag` across crate boundaries. This by itself isn't a problem, but because our stable 1.x crates depend on the unstable crates, it becomes a problem. By releasing 1.1.0 that depends on 0.61, consumers of 1.x pull in both 0.60 and 0.61. The generated code pulls in 0.60, and the 1.1.x crates pull in 0.61. This is fine since two semver-incompatible crate versions can be in the dependency closure. Thus, the generated code which is using 0.60 is placing a 0.60 type in the `ConfigBag`, and the runtime crates that pull the type out of the `ConfigBag` are expecting a 0.61 version of it. This leads to the type not existing upon lookup, which then causes the silent break. This PR fixes this by moving the `EndpointPrefix` type and its associated methods into `aws-smithy-runtime-api`, a stable crate. The `aws-smithy-http` unstable crate is updated to point to the new stable version so that a patch release of that crate will solve the issue for old versions going forward as well. ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
- Loading branch information
Showing
11 changed files
with
270 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.