Go to file
Russell Cohen 21ffa905db
Fix paginator bug where `None` was returned immediately (#1083)
* Fix paginator bug where `None` was returned immediately

The escape hatch added by aws-sdk-rust#391 did not properly handle the case where the first response was `None` and _not_ the empty string. This diff:
- Checks for emptiness for both maps and strings
- Fixes the check so that an initial `None` input does not cause an incorrect paginator error

* Update changelog

* Apply suggestions from code review

Co-authored-by: Zelda Hessler <zhessler@amazon.com>

* rustfmt

Co-authored-by: Zelda Hessler <zhessler@amazon.com>
2022-01-18 12:46:53 -05:00
.cargo Include SDK example/test projects in CI and centralize Cargo target directory (#636) 2021-08-09 12:25:40 -07:00
.github Make psuedo jobs fail if dependency jobs failed in CI (#1078) 2022-01-14 12:33:47 -08:00
.pre-commit-hooks Add recursion detection middleware to the default middleware stack (#1003) 2021-12-27 18:04:10 +00:00
aws Fix paginator bug where `None` was returned immediately (#1083) 2022-01-18 12:46:53 -05:00
buildSrc Fix bug where index.md is sometimes deleted (#1056) 2022-01-10 15:48:38 -05:00
codegen Fix paginator bug where `None` was returned immediately (#1083) 2022-01-18 12:46:53 -05:00
codegen-server Filter protocol tests applied to errors depending on client or server (#1081) 2022-01-18 12:02:08 +01:00
codegen-server-test Fix several warnings and reduce Rust target clobbering (#1069) 2022-01-13 16:45:04 -08:00
codegen-test Fix several warnings and reduce Rust target clobbering (#1069) 2022-01-13 16:45:04 -08:00
design Add RFC for SDK example consolidation (#1041) 2022-01-12 16:47:37 -08:00
gradle Add more docs to codegen (#776) 2021-10-15 16:49:27 -07:00
rust-runtime `aws-smithy-http-server`: remove S3-like URI pattern conflict avoidance test (#1070) 2022-01-13 12:26:46 +00:00
tools Fix paginator bug where `None` was returned immediately (#1083) 2022-01-18 12:46:53 -05:00
.gitignore Sensitive trait (#229) 2021-02-23 23:09:03 +00:00
.pre-commit-config.yaml Add license header checker & missing headers (#917) 2021-12-02 13:39:30 +00:00
CHANGELOG.md Cut release (#1055) 2022-01-10 18:19:44 +00:00
CHANGELOG.next.toml Fix paginator bug where `None` was returned immediately (#1083) 2022-01-18 12:46:53 -05:00
CODEOWNERS Implement FromRequest / ToResponse traits for inputs/outputs/errors. (#839) 2021-11-12 16:27:36 +00:00
CODE_OF_CONDUCT.md Initial commit 2020-10-28 06:37:45 -07:00
CONTRIBUTING.md master -> main in Contributing.md (#300) 2021-04-14 14:46:50 +00:00
LICENSE Initial commit 2020-10-28 06:37:45 -07:00
NOTICE Initial commit 2020-10-28 06:37:45 -07:00
README.md Update MSRV to 1.54.0 (#844) 2021-11-10 12:51:31 +00:00
build.gradle.kts Upgrade Smithy to 1.16.1 (#1053) 2022-01-12 15:35:40 -08:00
gradle.properties Fix several warnings and reduce Rust target clobbering (#1069) 2022-01-13 16:45:04 -08:00
gradlew Aws config connector timeouts (#740) 2021-10-06 13:35:24 -04:00
gradlew.bat Add gradle files 2020-10-28 11:01:13 -04:00
settings.gradle.kts Upgrade Smithy to 1.16.1 (#1053) 2022-01-12 15:35:40 -08:00
test.sh Credentials Provider Initial Implementation (#179) 2021-01-28 10:39:05 -05:00

README.md

Smithy Rust status

Smithy code generators for Rust

The nightly SDK build can be found under Actions -> CI (take latest run) -> Artifacts

Design documentation (WIP)

All internal and external interfaces are considered unstable and subject to change without notice.

Setup

  1. ./gradlew will setup gradle for you. JDK 11 is required.
  2. Running tests requires a working Rust installation. See Rust docs for installation instructions on your platform. Minimum supported Rust version is the latest released Rust version, although older versions may work.

Generate an AWS SDK

The generated SDK will be placed in aws/sdk/build/aws-sdk.

./gradlew :aws:sdk:assemble # Generate an SDK. Do not attempt to compile / run tests
./gradlew :aws:sdk:test # Run all the tests
./gradlew :aws:sdk:cargoCheck # only validate that it compiles

Run tests

./test.sh

This will run all the unit tests, codegen example models & Dynamo DB, validate that the generated code compiles, and run any tests targeting the generated code.

Development

For development, pre-commit hooks may be useful. Setup:

brew install pre-commit # (or appropriate for your platform: https://pre-commit.com/)
pre-commit install

Project Layout

  • aws: AWS specific codegen & Rust code (signing, endpoints, customizations, etc.) Common commands:
    • ./gradlew :aws:sdk:assemble: Generate (but do not test / compile etc.) a fresh SDK into sdk/build/aws-sdk
    • ./gradlew :aws:sdk:test: Generate & run all tests for a fresh SDK
    • ./gradlew :aws:sdk:{cargoCheck, cargoTest, cargoDocs, cargoClippy}: Generate & run specified cargo command.
  • codegen: Whitelabel Smithy client code generation
  • codegen-test: Smithy protocol test generation & integration tests for Smithy client whitelabel code
  • design: Design documentation. See the design/README.md for details about building / viewing.
  • codegen-server: Whitelabel Smithy server code generation
  • codegen-server-test: Smithy protocol test generation & integration tests for Smithy server whitelabel code