One effect of the instable api is that clients are generated with exact dependencies[^1][^2]. This causes a number of problems.
If users install different patch versions of aws-sdk clients they will have multiple versions of @aws-sdk dependencies. Users have to be careful to update all aws-sdk clients at the same time. At least aws-sdk coordinates releases so there are matching versions with the same dependencies.
Users of generic smithy-typescript clients will have a hard time matching versions of their generic clients and aws-sdk clients because there is no one to coordinate the versions. smithy-typescript-codegen and smithy-typescript-aws-codegen do not have release automation and the latest code is not always available from maven. All generic clients are not owned by the same group so package may have one set of @aws-sdk dependencies for aws clients and one set of @aws-sdk dependencie for each generic client.
Using generic smithy-typescript clients without duplicate dependencies.
Proposed Solution
Stabilize the interfaces of @aws-sdk/ dependencies used by smithy-typescript, maintain backward comparability or semantic versioning, and generate clients with carat ranges.
Other Information
No response
Acknowledgements
[ ] I may be able to implement this feature request
Describe the feature
The majority of @aws-sdk/* dependencies shared between aws-sdk (and smithy-typescript) clients are documented as 'internal' stability.
One effect of the instable api is that clients are generated with exact dependencies[^1][^2]. This causes a number of problems.
[^1]: Example of aws-sdk client dependencies
[^2] Example smithy-typescript generic client (generated from smithy-typescript-codegen 0.12.0
Use Case
Using generic smithy-typescript clients without duplicate dependencies.
Proposed Solution
Stabilize the interfaces of @aws-sdk/ dependencies used by smithy-typescript, maintain backward comparability or semantic versioning, and generate clients with carat ranges.
Other Information
No response
Acknowledgements
SDK version used
codgen 0.12
Environment details (OS name and version, etc.)
linux