V4 Development Tracker
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- aws, ruby
- Ambito
- backend, developer-experience
Direzione di ricerca
This issue is a development tracker and feedback request; it does not identify a specific file, test, or change to implement. Start by reviewing the V4 development branch and the listed migration changes. A concrete contribution should be tracked in a separate issue with a defined change and completion criteria.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
We are developing the next major version of the AWS SDK for Ruby and welcome your feedback as it takes shape.
This issue tracks the changes from V3.
V4 is experimental and under active development. APIs and behavior may change before general availability.
Use V3 for production workloads.
Some V3 features and convenience APIs are not yet available or are incomplete in the V4 development branch. Check that the features your application relies on are available before evaluating V4.
We will update this tracker as changes land. The changes below describe the development implementation and may be revised in response to testing and feedback.
Changes
Breaking changes
- Ruby version. Minimum target increases from Ruby 2.7 to 3.1.
- Resource interfaces. V3 resource interfaces, such as
Aws::S3::Resource, are removed because they are no longer maintained. Use service clients, such asAws::S3::Client, directly instead. We plan to provide migration support for customers using these interfaces, with the approach and timing still to be determined. - Authentication service gems. STS, SSO, SSOOIDC, and Signin are now separate service gems instead of being bundled with
aws-sdk-core. - Removed service support. V4 does not support SimpleDB or AWS Import/Export because these services are in maintenance mode.
- Signature Version 2 (SigV2). V4 removes SigV2 signing support, including the
aws-sigv2gem and theAws::Plugins::SignatureV2plugin.
Namespace and API changes
| Area | V3 | V4 |
|---|---|---|
| Service namespaces | Names such as Aws::OpenSearchService and Aws::States. |
Aws::OpenSearchService becomes Aws::OpenSearch, and Aws::States becomes Aws::SFN. These names are provisional; preserving or restoring V3 names remains under consideration to reduce migration work. |
| Service model access | Client.api exposes Seahorse API metadata. |
Client.api is replaced by Client.service, which returns a Smithy service schema. |
| Custom plugins and handlers | Seahorse::Client::Plugin and Seahorse::Client::Handler. |
Seahorse::Client::Plugin and Seahorse::Client::Handler are replaced by Smithy::Client::Plugin and Smithy::Client::Handler. |
| Runtime types | Seahorse response and handler-context classes. | Smithy runtime classes replace Seahorse response and handler-context classes. Generated data types use Smithy schemas. |
| Service errors | Shared base Aws::Errors::ServiceError. |
The shared service-error base changes to Smithy::Client::ServiceError. Modeled errors remain under Aws::<Service>::Errors. |
| Networking errors | Seahorse::Client::NetworkingError. |
Seahorse::Client::NetworkingError is replaced by Smithy::Client::NetworkingError. |
| Pagination errors | Aws::PageableResponse::LastPageError. |
Aws::PageableResponse::LastPageError is replaced by Smithy::Client::LastPageError. |
| Presigning results | Aws::SigV4::Signer#presign_url returns a URI. |
Aws::SigV4::Signer#presign_url returns a result object instead of a URI. Use .url for the URL string and .headers for any required headers. |
| Page enumeration | Enumerate the response directly. | Direct response enumeration is replaced by explicit page enumeration with response.each_page, such as response.each_page.map. Without a block, each_page returns a Smithy page enumerator with a smaller set of enumeration methods. |
| Response callbacks | Response lifecycle helpers such as on_success and on_complete. |
V3 response lifecycle helpers such as on_success and on_complete are replaced by Smithy response and HTTP events. Use on_done for completed-response callbacks and review other custom callback registrations. |
| Logging customization | Aws::Log formatters and filters. |
Smithy runtime formatters and filters replace Aws::Log classes. Custom formatters receive Smithy responses. |
Configuration changes
| Area | V3 | V4 |
|---|---|---|
| HTTP timeout options | http_open_timeout: and http_read_timeout:. |
http_open_timeout: is renamed to connect_timeout:, and http_read_timeout: is renamed to read_timeout:. |
| Connection timeout default | 15 seconds. | The connection timeout increases from 15 to 60 seconds with the current default Net::HTTP transport. Set an explicit value if your application relies on the shorter timeout. The default transport remains subject to change. |
| Transport configuration | Net::HTTP-specific connection and client-certificate settings are client options. |
Net::HTTP-specific connection and client-certificate settings move from client options to a transport instance supplied through transport:. Configure the supplied transport directly, including its timeouts and TLS settings. Connection-reuse defaults also change. Custom transports are supported; Net::HTTP is currently the default. |
| Retry mode | legacy is available. |
legacy is removed. standard becomes the default retry mode, and adaptive remains available. |
| Retry limit | retry_limit: counts retries. |
retry_limit: is replaced by max_attempts:. The new value counts all attempts, including the initial request, rather than only retries. |
| Retry customization | Legacy retry backoff options. | Legacy retry backoff options are removed. Use retry_strategy: to customize retry behavior. |
| Chunk callbacks | on_chunk_sent: and on_chunk_received: client options. |
on_chunk_sent: and on_chunk_received: client options are unavailable in the current implementation. Response-body streaming to blocks or targets remains available. |
| S3 path-style access | force_path_style:. |
force_path_style: is renamed to s3_force_path_style:. |
| S3 acceleration | use_accelerate_endpoint:. |
use_accelerate_endpoint: is renamed to s3_use_accelerate_endpoint:. |
| S3 endpoint default | Global us-east-1 endpoint. |
The default S3 endpoint for us-east-1 changes from the global endpoint to the regional endpoint. Set s3_us_east_1_regional_endpoint: 'legacy' to retain the global endpoint. |
| SQS Queue URL regions | disable_queue_url_region_detection: controls region detection. |
disable_queue_url_region_detection: is unavailable. The signing region is derived from the Queue URL when its region can be resolved. |
| Protocol customization | Customization through V3 protocol/runtime extensions. | Protocol serialization is separated from HTTP transport. Use protocol: to supply a custom protocol implementation in place of V3 protocol/runtime extensions. |
| Authentication customization | Signing-plugin extensions. | Use auth_resolver: to customize authentication selection. Existing V3 signing-plugin extensions must migrate to the new authentication interfaces. |
Credential changes
| Area | V3 | V4 |
|---|---|---|
| Client credentials | credentials: on service clients or Aws.config. |
credentials: is replaced by credentials_provider: when configuring service clients or Aws.config. |
| Static credentials | Positional arguments to Aws::Credentials.new. |
Aws::Credentials.new takes named options instead of positional arguments. Supply static credentials to service clients through Aws::StaticCredentialsProvider. |
| Credential providers | V3 provider class names and a credentials accessor. |
Built-in credential provider classes are renamed. Custom providers used by service clients or directly with aws-sigv4 must follow Smithy identity-provider interfaces and expose identity instead of credentials. |
| Profile credentials | Aws::SharedCredentials. |
Aws::SharedCredentials is replaced by profile resolution through the client credential-provider chain. |
| Profile selection | AWS_PROFILE with an AWS_DEFAULT_PROFILE fallback. |
The AWS_DEFAULT_PROFILE fallback is removed. Use AWS_PROFILE to select a profile. |
| SSO configuration | Legacy SSO profiles without a session are supported. | SSO credentials now require an sso_session. Update legacy profiles that configure SSO without a session. |
| Credential environment variables | Legacy credential variable aliases are accepted. | Legacy credential variable aliases are removed. Use AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN. |
| Bearer authentication | token_provider:. |
token_provider: is replaced by bearer_token: or bearer_token_provider: for bearer-authenticated clients. |
Waiter changes
V4 waiters follow the Smithy waiter interface. Their configuration differs from V3:
| Area | V3 | V4 |
|---|---|---|
| Wait budget | max_attempts: limits the number of polling attempts. |
max_attempts: is replaced by max_wait_time:. The limit changes from a number of polling attempts to a time budget in seconds. |
| Polling delay | Fixed delay:. |
Fixed delay: is replaced by min_delay: and max_delay:. Polling uses randomized exponential backoff. |
| Callbacks and block configuration | before_attempt, before_wait, and block-based waiter configuration. |
before_attempt, before_wait, and block-based waiter configuration are unavailable in the current development implementation. We plan to provide migration support for customers using these V3 features. |
| Error namespace | Aws::Waiters::Errors. |
The waiter error namespace changes from Aws::Waiters::Errors to Smithy::Client::Waiters. |
| Exhausted wait budget | TooManyAttemptsError. |
TooManyAttemptsError is replaced by MaxWaitTimeExceededError. |
Other noteworthy changes
- Smithy runtime. V4 uses Smithy Ruby for code generation and
Smithy::Clientin place of Seahorse for the client runtime. - Code generation tools. V4 uses Smithy Ruby to generate service clients. Custom generation workflows built around the V3 build tools will need to adapt to the new tooling.
- Updated dependencies. V4 uses
aws-sdk-core4.x and new major versions of the signing and partition gems, along with separate Smithy runtime and codec gems for JSON, XML, and CBOR serialization. - Item pagination. Use
each_itemto enumerate items across pages for operations whose paginator defines an item collection. - Serialization performance. Improving request serialization and response parsing performance is a focus of V4.
Try V4
V4 targets Ruby 3.1 or later. Preview gem installation instructions will be added when a published preview is available.
Help shape V4
We would especially like to hear:
- What is your biggest pain point with the Ruby SDK today?
- What would make V4 worth migrating to?
- Which services, integrations, or V3 features must work before you can evaluate V4?
- Which changes above would make migration difficult?
Share general feedback and priorities here.
For specific feature requests or reproducible bugs, open a separate issue so we can track and discuss each one.
- Lingua principale
- Ruby
- Stelle
- 3.7k
- Fork
- 1.2k
- Merge medio
- 1g 15h
- PR unite (30g)
- 26
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aws/aws-sdk-ruby
-
service-api
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
aws/aws-sdk-ruby#3395 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
BedrockAgentCore: invoke_agent_runtime buffers entire response instead of streaming in real-timeApertadocumentation p3 queued
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
aws/aws-sdk-ruby#3348 · 6 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
feature-request needs-major-version
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
aws/aws-sdk-ruby#3241 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
investigating service-api
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
aws/aws-sdk-ruby#3217 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
service-api
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
aws/aws-sdk-ruby#3191 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di aws/aws-sdk-ruby
Issue simili
-
account: profile bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
metanorma/metanorma-standoc#1315 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
metanorma/metanorma-iso#1681 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno