Repository navigation
Conversation
| from smithy_core.aio.retries import ( | ||
| RETRY_STRATEGY, | ||
| AsyncAdaptiveRetryStrategy, | ||
| AsyncStandardRetryStrategy, | ||
| ) |
There was a problem hiding this comment.
we should bump smithy-aws-core's smithy-core dependency to the release that introduces RETRY_STRATEGY. It still allows 0.9.x, so a valid installation can fail while importing this module
There was a problem hiding this comment.
We generally should not manually bump our dependency pins since this is handled automatically by our release infra. For something like this that is required by a dependent, a minor version should be triggered by either a breaking or feature changelog entry. Long term we can make this more fine-grain (this is probably more like an enhancement change, but that triggers a patch bump right now. We can probably add a new field in the future to override the bump type since not every feature is a minor bump and not every enhancement is a patch bump).
If this is merged before out next release, nothing should be needed since there already pending breaking changes and features for smithy-core. But adding a feature entry might be safer incase this is released after
| "smithy_aws_core.aio.endpoints.standard_regional": { | ||
| "AsyncEndpointResolver": "rex-protocol[async]", | ||
| "AsyncStandardRegionalEndpointsResolver": "class[async]", | ||
| "AwsFeatureId": "rex-class", |
There was a problem hiding this comment.
can we keep these implementation imports private? The snapshot is picking up a bunch of new exports from user_agent, standard_regional, and aio.client that don’t seem intentional
Issue #, if available:
Description of changes:
Add a way to record which SDK features a call uses and report them in the User-Agent header's
m/section. Features are tracked per call withregister_feature_idand theAwsFeatureIdenum, and the AWS user agent interceptor appends them to the header after signing, without adding them twice on retries. This PR tracks features for retry mode and theendpoint override.
Testing:
Added unit tests for registration, encoding and the header update, including retries, and integration tests with a generated client. Verified that all existing and new tests pass.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.