* Add `RequestId` trait
* Implement `RequestId` for generated AWS client errors
* Move `RustWriter.implBlock` out of `StructureGenerator`
* Create structure/builder customization hooks
* Customize `_request_id` into AWS outputs
* Set request ID on outputs
* Refactor SDK service decorators
* Refactor S3's extended request ID implementation
* Combine `Error` and `ErrorKind`
* Add test for service error conversion
* Move error generators into `codegen-client` and fix tests
* Re-export `ErrorMetadata`
* Add request IDs to trace logs
* Simplify some error trait handling
* Rename `ClientContextParamDecorator` to `ClientContextConfigCustomization`
* Add deprecated alias to guide customers through upgrading
* Rename the `ErrorMetadata` trait to `ProvideErrorMetadata`
* Rename `aws_smithy_types::Error` to `ErrorMetadata`
* Initial Python stub generation
* Handle default values correctly
* Only generate `__init__` for classes that have constructor signatures
* Preserve doc comments
* Make context class generic
* Put type hint into a string to fix runtime error
* Run `mypy` on CI
* Use `make` to build Python SSDKs while generating diffs
* Escape Python types in Rust comments
* Only mark class methods with
* Sort imports to minimize diffs
* Add type annotations for `PySocket`
* Dont extend classes from `object` as every class already implicitly extended from `object`
* Use `vars` instead of `inspect.getmembers` to skip inherited members of a class
* Fix linting issues
* Add some tests for stubgen and refactor it
* Add type annotations to `PyMiddlewareException`
* Fix tests on Python 3.7
Python 3.7 doesn't support reading signatures from `__text_signature__`
for non-builtin functions (i.e. C/Rust functions). For testing we're using
regular Python syntax for defining signature.
* Provide default values for `typing.Optional[T]` types in type-stubs
* Update `is_fn_like` to cover more cases
* Remove `tools/smithy-rs-tool-common/`
* Make `DECORATORS` an array instead of a list
* Ignore missing type stub errors for `aiohttp`
* First publish everything, then try to correct ownership.
* Avoid trying to remove teams, since we know it won't succeed.
* Fix warning and update dependencies.
* Avoid allocation unless necessary.
* Get full error representation for retryable failures.
* We want to hash the file content, not the file path.
* Fix working directory.
* Build the Docker image using the latest commit on the invocation branch.
* We need a Docker image with the same SHA later in the process.
* Fix if condition.
* Make sure that the changes are visible to the push step after the Docker action has executed by persisting the modified repository as an artifact.
* Give a name to the argument.
* Move `acquire-build-image` into `.github`
* Move the `tools-hash` script into `.github`
* Upload to ECR from PRs as well
* Move build tools into `tools/ci-build/`
* Move CI scripts out of `ci-build`
* Split CI for forks/non-forks
* Remove `fetch-depth: 0` from PR workflows
* What happens if we comment out the runtime crate version from gradle.properties?
* Allow running the release and the CI workflows from an arbitrary commit.
* Does a fake version work?
* Pass `git_ref` from the release workflow.
* It needs to be a valid semver version.
* Sketch new command to upgrade version in gradle.properties
* Command implementation
* Plug the new publisher command into the `release` action.
* Plumb end-to-end
* Fix copyright header.
* Fix lint.
* Temporarily comment out the sanity check.
* Ignore sanity check
* Add a command that prints out the template for CHANGELOG.next.toml
* Add branch check + empty TOML generation.
* Add copyright headers.
* Fix imports.
* Remove sanity check.
* Move script to a file.
* Add a check to validate the tag.
* Remove second build step.
* Move to .github/scripts folder.
* Make the script easier to run locally
* Fail if anything fails.
* Add comment.
* Update .github/scripts/get-or-create-release-branch.sh
Co-authored-by: david-perez <d@vidp.dev>
* Update .github/scripts/get-or-create-release-branch.sh
Co-authored-by: david-perez <d@vidp.dev>
* Update .github/scripts/get-or-create-release-branch.sh
Co-authored-by: david-perez <d@vidp.dev>
* Update .github/workflows/ci.yml
Co-authored-by: david-perez <d@vidp.dev>
* Remove touch.
* Fix indentation and branch name.
* Update .github/workflows/ci.yml
Co-authored-by: david-perez <d@vidp.dev>
* Update .github/workflows/release.yml
Co-authored-by: david-perez <d@vidp.dev>
* Update .github/workflows/release.yml
Co-authored-by: david-perez <d@vidp.dev>
* Explicit flags.
* Use the path that was provided.
* Format
---------
Co-authored-by: david-perez <d@vidp.dev>
* Copy non-service integration tests into SDK root tests directory
For tests in `aws/sdk/integration-tests` that are not named after a
service module, copy them into the SDK's root `tests/` directory so that
they are run as part of CI on the entire SDK.
* Add missing fields to integration test manifests
* Remove tests from root workspace
* Explicitly exclude the root tests from the root workspace
* Perform some optimisations on the CI Docker image:
- Break down the `install_rust` stage into smaller stages that can advance concurrently;
- Invoke `yum updateinfo` once, in bare_base_image;
- Use the unstable sparse registry feature to speed up `cargo`'s registry operations.
* Fix ARG variable.
* Enable buildkit.
* Remove `lib` prefix from generated module names
* Build Pokemon service with `Maturin`
* Fix Maturin build on CI
* Generate minimal `pyproject.toml` for generated SDKs to build from source using Maturin
* Fix `ktlint` issues
* Bring back type stubs for Pokemon service
* Update instructions for Lambda
* Make `build-wheel` and `build-wheel-release` to depend on `codegen`
* Upgrade `cargo-check-external-types` to 0.1.6
* Upgrade `cargo-deny` to 0.13.5
* Upgrade `cargo-udeps` to 0.1.35
* Upgrade `cargo-hack` to 0.5.23
* Upgrade `cargo-minimal-versions` to 0.1.8
* Replace our base64 implementation with one based on `base64-simd`
* Bump Rust MSRV to 1.62.1
* Unmark base64-related tests as failing
* Use `usize` for `base64::encoded_length`
* Run Rust 1.62.1 on CI
* Don't use external `base64_simd::Error` type in public interface
* Add initial criterion bench setup for base64
* Compare `base64_simd::encode` vs Smithy's `encode`
* Use string length for `BenchmarkId`
* Compare `base64_simd::decode` vs Smithy's `decode`
* Compare `base64_simd::encoded_length` vs Smithy's `encoded_length`
* Run clippy --fix for Rust 1.62.0 and format the resulting code
* Run clippy --fix on all targets
* Run clippy --fix with all features enabled
* Avoid extra allocation
* Use more idiomatic assert
* Ignore noisy lint
* Update pyo3 and pyo3-asyncio to 0.17.0
* Implement Eq on aws-smithy-checksums::Error
* Implement Eq on Protocol
* Replace conditionals with range-containment
* Implement Eq on types in aws-smithy-types
* Implement Eq on types in aws-smithy-http-server-python
* Implement Eq on types in aws-smithy-eventstream
* Implement Eq on types in aws-smithy-xml
* Implement Eq on aws-sigv4
* Update CI to use Rust 1.62.0
* Add Eq for generated types that implement PartialEq
* Allow clippy::needless_return in generated code
* Remove unnecessary reborrow in http_serde
* Remove unnecessary borrow in operation_deser
* Add CHANGELOG entries
* Revert "Add Eq for generated types that implement PartialEq"
This reverts commit 5169bd95aa.
* Update pyo3 and pyo3-asyncio in generated code for python server
* Allow clippy::derive_partial_eq_without_eq on structs and builders
* Run clippy on tools
* Fix accidental move in generated code
* Revert "Allow clippy::derive_partial_eq_without_eq on structs and builders"
This reverts commit 068c63ca20.
* Fix another accidental move in generated code
* Undo unwanted change to model
* Re-add reborrow in HttpBindingGenerator
* Fix clippy::format-push-string in changelogger
* Fix more uses of str.push_str(&format!(...))
* Remove unnecessary parenthesis
* Run ktlint
* Update aws/rust-runtime/aws-http/src/content_encoding.rs
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Update aws/rust-runtime/aws-http/src/content_encoding.rs
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Ignore doctest for non-exported macro
Rust 1.62 introduced a breaking change where doctests for non-exported
macros are now run by default. These don't compile because the macro
can't be imported in it.
See https://github.com/rust-lang/rust/issues/97030 for more info.
* Run cargo fmt
* Use $crate instead of crate in macro
* Revert "Implement Eq on types in aws-smithy-types"
This reverts commit c45a6b5a56.
* Revert "Implement Eq on types in aws-smithy-eventstream"
This reverts commit 78f4b07344.
* Revert "Implement Eq on types in aws-smithy-xml"
This reverts commit 590f01af73.
* Revert "Implement Eq on aws-sigv4"
This reverts commit d78bb62124.
* Revert "Implement Eq on types in aws-smithy-http-server-python"
This reverts commit f2cd901884.
* Revert "Implement Eq on aws-smithy-checksums::Error"
This reverts commit 5da170405e.
Co-authored-by: Julian Antonielli <julianantonielli@gmail.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* Move `testutil` into `core` where possible
* Move `rustlang` tests into `core`
* Move remaining `util` tests to `core`
* Move and refactor `TopLevelErrorGeneratorTest` to not require `RustCodegenPlugin`
* Move protocols into `core`
* Move `generator` tests into `core`
* Move protocol ser/de tests into `core`
* Suppress deprecation warning in `TopLevelErrorGeneratorTest`
* Move `InlineFunctionNamerTest` into `core`
* Move model transform tests into `core`
* Rename `SymbolBuilderTest` to `SymbolVisitorTest` to match class under test
* Move server classes out of client
* Move core codegen tests into their own CI step
* Create the `codegen-core` module
* Move the `Version` class into `codegen-core`
* Rename `codegen` to `codegen-client`
* Rename `codegen-test` to `codegen-client-test`
* Move shared test models to common location
* Fix Smithy validation errors in `misc.smithy`
Crate publish used to be slow due to the verification step that `cargo`
would run, which was basically a full compile of the crate prior to
uploading it to crates.io. Now that the `publisher` tool passes
`--no-verify` to `cargo`, it publishes fast enough to get throttled.
This change completely removes the publishing parallelism, adds a fixed
time between publishing each crate, and increases the publish retry
backoff time.
* Upgrade minimum Tokio version to 1.8.4
This addresses RUSTSEC-2021-0072 and RUSTSEC-2021-0124.
The SDK, runtime crates, and server are set to the minimum secure
version of Tokio to allow a larger range of versions to be used by
consumers of those libraries. The tools and the Python server are
both set to the latest Tokio version since they are not intended
to be consumed as a libraries.
* Upgrade `tracing-subscriber` to 0.3.15
* Upgrade `criterion` to 0.3.6
This addresses RUSTSEC-2021-0093 by upgrading `criterion`, which
upgrades `rayon`, which upgrades `crossbeam-deque`.
The visitor was examining the inner contents of the entire re-exported
type, which, for a type that is re-exported within the same crate, is
the correct behavior. Its the wrong behavior when exporting types from
other crates, however, since it doesn't matter what is inside that
external type, and rustdoc doesn't include information about inner
pieces of the external type in the JSON output.
* Fix bug in coroutine scheduling. Add ByteStream implementation and simplify Python symbol visitor.
* Bug in coroutine scheduling:
In the previous iteration, the runtime crate aws-smithy-http-server-python
was exposing the python application implementation as a struct, which
was wrapped by the codegenerated App to allow to dynamically building
the router.
This caused scheduling of coroutines (handlers prefixed with async def)
to block becuse we were passing the Python eventloop of the parent
process that was stored pre-fork().
This commit changes the runtime PyApp to become a trait, allowing us to
dynamically build the router post-fork() and with the right event loop.
This change also allowed us to remove a bunch of unnecessary Arc(s).
* Add ByteStream implementation
Implementation of a ByteStream type for Python that can be roughly used like this:
let b = await ByteStream.from_path("file.txt")
async for chunk in b:
print(chunk)
Implement futures_core::stream::Stream for Python ByteStream wrapper.
The BytesStream implementation in python can now use a sync Mutex from
parking_lot because we are now using pyo3_asyncio::tokio::local_future_into_py()
to read a chunk, which supports !Send futures.
This allows to simply forward the implementation of Stream (poll_next()
and size_hint()) directly to our inner SDK ByteStream.
* Simplify Python symbol visitor
Inherit from Symbol visitor and override just what is needed to swap Python complex
types.
Signed-off-by: Bigo <1781140+crisidev@users.noreply.github.com>
This commit adds the SDK and server groups to smithy-rs runtime crates,
but only the SDK group on `AwsRuntime` and `AwsSdk` crates.
With this change, the `publisher` tool won't fail when publishing the
`aws-smithy-http-server` crate.
* Rename `cargo-api-linter` to `cargo-check-external-types`
* Run `cargo-check-external-types` on Smithy client/shared runtime crates
* Run `cargo-check-external-types` on SDK runtime crates
* Fix bug in determining crate name
* Run `cargo-check-external-types` on generated SDK crates
* Fix `aws:sdk-codegen-test` build
* Add config for SDK endpoint/readme generation
* Rename `sdk-codegen-test` to `sdk-adhoc-test` and update README
* Add `sdk-adhoc-tests` to CI
* Refactor CI scripts
The `check-rust-runtime-and-tools` script was getting beyond 20
minutes to run, so this commit splits it into `check-aws-config`,
`check-rust-runtimes`, and `check-tools`.
This also enables most of the checks to run before the smoke test SDK is
generated, which should deliver more immediate feedback on PRs.
* Give the canary its own CI step
* Upgrade `cargo-api-linter` to the latest Rust nightly
* Upgrade Rust nightly used by CI
* Handle failure to provide error context better
* Fix `aws-config` external type approval list
* Fix error context pathing issue
* Update `generate-matrix` to return SDK release tags instead of versions
* Upgrade the SDK used in the canary runner
* Move `build-bundle` into `canary-runner` to use `versions.toml`
* Make release tag matrix output singular
* Delete old `build-bundle` and update README
* Add canary projects to standard tool CI checks
* Generate `Cargo.toml` before testing `canary-lambda`
Recently CI is failing with
> ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/jre-11-openjdk
> Please set the JAVA_HOME variable in your environment to match the
> location of your Java installation.
Signed-off-by: Daniele Ahmed <ahmeddan@amazon.de>
* Update `hydrate-readmes` to take versions from `versions.toml`
* Add cleanup TODO comments to `changelogger`
* Update SDK readme template
* Split up `generate-version-manifest` subcommand
* Eliminate the `aws.sdk.version` property
* Fallback to model hash comparison if model metadata claims no changes
* Add `acquire-base-image` to `release.yml`
* Use empty model metadata for SDK generation in CI
* Fix the `aws-config` version number in SDK crate readmes
The affected target of a change (client, server, all) is shown in CHANGELOG.md
The meta tag for a change log entry in CHANGELOG.next.toml supports adding the affected target, as an example:
[smithy-rs]
...
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "server" }
...
Possible values for target: [client, server, all]
This PR add several functionalities to the Python/Rust code-generation, making it usable for models that are not using Streaming and Union shapes.
* Export codegenerated shapes as shared library that can be imported by the Python interpreter.
* Add complete end-to-end testing running in CI.
* Register signals and handle workers processes lifecycle.
* Use a custom SymbolProvider to override non-primitive types that are exposed to Python.
* Implement support for DateTime.
* Cast Python exception into Rust error types.
* End to end testing suite with a Rust client calling a real Python server.
* Remove smoketest/fullsdk model classifications
* Generate full SDK for CI using models in aws-sdk-rust
* Move the changelog renderer out of `sdk-lints` and add changelog splitter
* Save revision information into split off SDK changelog
* Replace common git impl with `sdk-sync`'s impl
* Filter SDK changelog entries on changelog render
* Add smithy-rs release workflow
* Add initial next SDK changelog
* Update `sdk-sync` to understand new models location
* Make `sdk-sync` Gradle heap/metaspace constraints configurable
* Dump process info on `sdk-sync` codegen failure
* Periodically log progress information in `sdk-sync`
* Enable verbose GC for codegen and use serial GC
* Revert "remove parallelism from the sync tool (#1436)"
This reverts commit f0568e1f18.
* Reintroduce `sdk-sync` parallelism by disabling Smithy parallelism
* Make the Smithy parallelism configurable
smithy-build actually utilizes `ForkJoinPool.common()` when executing build projections. Because each service is its own projection, the build internally is _already_ running in parallel. Because of this, running the sync in parallel produces uneccessary memory pressure.
This change:
- removes parallelism
- runs gradle `--no-daemon --info` for better log output
The `sdk-sync` tool is running into issues during release due to the
`sdk-versioner` refactor commit since it is using a Docker build image
with the tools precompiled into it. Either the `sdk-versioner` binary is
too new and can't code generate the old commits, or it's too old and
can't generate the new commits.
This reintroduces the old `sdk-versioner` behavior so that it can
succeed against both sets of commits to get a release out.
The `acquire-build-image` script was coded up with the assumption that
it would only work with x86_64 build images. This commit revises that
script and the `Dockerfile` to correctly work on ARM64 architectures as
well.
* Copy `smithy-rs-sync` into new `sdk-sync`
* Refactor to use `Git` trait instead of `git2`
* Abstract out gradle commands
* Abstract out filesystem operations
* Add a mocked end to end test
* Load `versions.toml` for revision information
* Sync example commits into one aggregate commit
* Reorganize tests
* Only include smithy-rs commits that change the SDK
* Add `sdk-sync` to Docker build image
* Sync models
* Greatly increase debug logging
* Add git invocation tests
* Fix running in CI detection for Docker build image
* Rename `e2e_test` to `mock_e2e_test`
* Add full E2E test and fix a bug with change detection
* Implement `crate-hasher` utility to hash crate source files
* Add `generate-version-manifest` subcommand to publisher tool
* Incorporate `generate-version-manifest` into the build system
* Start making the PR bot run through the Docker build image
* Use nightly clippy in tools CI when necessary
* Fix transient failure when acquiring the build image
* Include examples repo revision in `versions.toml`
* Fix nightly clippy lint in `cargo-api-linter`
* Track examples revision in sync tool
* Make it easier to run Docker CI locally
`clap` v3 added support for a `structopt`-like parser derive usage.
`structopt` is now in maintenance mode
(https://docs.rs/structopt/latest/structopt/#maintenance); it is
recommended to migrate to `clap`.
Structs to parse CLI arguments have been renamed to `Args` for
consistency.
- Refactors CI to use composite actions so that there's less duplication in the workflow yaml files.
- Switches to a different image tagging approach for the Docker build image: now the git hash of the `tools/` directory is the image tag rather than the commit hash of `HEAD`. This will result in more image reuse if the tools haven't changed, and makes the logic for deciding whether a new image must be built much simpler.
- When running CI on main, ensures the Docker build image is built and uploaded to ECR before running the CI tests.
* Update pinned nightly to fix `cargo udeps` checks
* Update `api-linter` to work on `nightly-2022-03-29`
* Make it possible to test tool modifications in a pull request
Establishes a Docker build image with build tools precompiled into it to improve CI time and reduce GitHub Actions workflow configuration. Also makes it possible to run the exact CI workflows in local development.
* Fix presigning bug with `content-length` and `content-type` in S3
* Fix presigning test in `aws-sigv4`
* Update changelog
* Clean when generating code for diff preview
* Incorporate feedback
* Fix server codegen
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* Fix exit status in `api-linter`
* Run `api-linter` against `aws-smithy-types` in CI
* Hide external buffer types used by `primitive::Encoder`
* Unpin nightly in CI
* Make `Encoder` a struct and split out an inner enum
* Update changelog
* Implement tool to identify external types used in public APIs
* Allow specifying which nightly to use
* Move `visitor::is_allowed_type` into `Config`
* Add doc comments
* Use `tracing_attributes::instrument`
* Rename `RefType` to `ErrorLocation`
* Add ability to output a Markdown table
* Allow customization of crate features in analysis
* Work around rustdoc ICE in `aws-smithy-json`
* Integrate with cargo
* Add a readme
* Fix some comments
* Rename `ContextStack` to `Path`
* Verify rustdoc output format version
* Improve error message
* Downgrade edition on `smithy-rs-tool-common` so it works with Rust 1.54
* Add more context to canary runner failures
* Fix path to canary-lambda
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* Move re-exports into `types` and re-export `AggregatedBytes`
* Remove extra newline from changelog generator
* Only re-export types when they're used
* Re-export `Config` and `Client` with `#[doc(inline)]`
* Update changelog
* Fix the canary build
* Don't check examples in full services check
* Split SDK service checks from example checks
* Delete examples
* Take examples from `aws-doc-sdk-examples`
* Fix example checkout
* Fix example manifests after relocation
* Update changelog
* Upgrade the publisher tool to use `clap` v3
* Instantiate the `aws-sdk-rust` README from a template during build
* Copy the SDK changelog into build artifacts at build time
* Disallow publish for example crates
* Only retrieve the current tag when needed
* Fix readme
* Rename inflate to hydrate
* Display crate version numbers in publish summary
* Add additional validations to `fix-manifests` sub-command
* Update `yank` sub-command to take a repository location
* Incorporate feedback
* Fix `aws-smithy-http-server` version number
* Make tag check more functional
* Add SSO to the list of circular dep supressions
* Update CHANGELOG.next.toml
Co-authored-by: John DiSanti <jdisanti@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* 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>
* Assorted canary improvements
1. Add a timeout for individual canaries
2. Add an Ec2 canary.
3. Add functionality to enable/disable canaries based on SDK version
* Refactor page size
* update: create mirror commit now works by shelling out
update: rm -rf instead of gradle clean
update: find_last_commit to work by shelling out
* add: apologetic comment regarding shelling out
* Add Support for Paginators
This commit adds pagination support for both clients. It does this via the `FnStream` abstraction which combines a rendezvous-channel with a closure to produce a stream. When the stream is polled, the underlying closure is polled to advance the computation which then pushes data into the channel.
Two paginators are generated:
1. `.paginate()` which produces a stream of `Result<Page, Err>`
2. `.paginate().items()` which produces a stream of `Result<Item, Err>` where items are flattened from the individual pages. This uses `TryFlatMap` to support conveniently generating a flat page iterator.
In addition, docs are generated to point customers towards the paginators.
* Add RFC, more tests
* backout unrelated changes
* Fix paginators for glacier
* Fix clippy error
* Add test for paginators that point to maps & fix apigateway paginator
* Fix docs
* remove extraeneous println
* Fix DynamoDB examples
* Disallow paginating operations with the idempotency token trait
* Apply suggestions from code review
misc typos / cleanups
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
* CR feedback
* Fix typo
* Update changelog
* Apply suggestions from code review
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* CR feedback round 1
* Rename paginate to into_paginator()
* update pr bot comment
Co-authored-by: Zelda Hessler <zhessler@amazon.com>
Co-authored-by: John DiSanti <jdisanti@amazon.com>
* fix: filter out empty lines
update: test with newlines
* add: git repo check and warnings
update: println -> eprintln
feature: allow commit total to be limited
add: warning for leftover commits to sync
fix: create commit hash file if none exists
fix: get working dir in a github-actions-friendly way
update: add more context
fix: clippy lints
* update: simplify file writing
update: remove redundant lifetimes
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* Fix bug where the sync script didn't work when the directories were different
* remove: leftover comment
* remove: no-longer-accurate comment
Co-authored-by: Russell Cohen <rcoh@amazon.com>
* add: tool to sync aws-sdk-rust/next with smithy-rs
* fix: lint issues
* Update tools/smithy-rs-sync/src/main.rs
Co-authored-by: david-perez <d@vidp.dev>
* refactor: simplify commands by using a helper fn
update: use eprintln instead of println
update: note number of successfully mirrored commits in success message
update: use fs::read_to_string
update: use .display() instead of .to_string_lossy() for displaying paths
update: ensure absolute paths in fn copy_sdk
update: use iters instead of for loop in fn commits_to_be_applied
* add: fn for deleting files/ folders not in allowlist
* add: missing copyright header
remove: TODO
* refactor: handwritten to work with gitignore
add: check we're not generating files marked as handwritten
add: fn to list handwritten files
add: test for find_handwritten_files_and_folders
fix: clippy lint
add: timer for SDK cleanout
remove: once_cell dep
sort: deps in Cargo.toml
* fix: set smithyrs-githash per mirror commit
update: set bot as committer
* refactor: HandwrittenFiles to return iters
* add: Russell's error hint
Co-authored-by: david-perez <d@vidp.dev>
Co-authored-by: AWS SDK Rust Bot <aws-sdk-rust-primary@amazon.com>
* Add Route53 Hosted Zone Trimming
Route53 requires a customization where `/hostedzone/` is stripped from hosted zone arguments when round-tripped. This adds a trait and customization to the route53 model to trim hosted zone prefixes.
* Add missing copyright header
* Also allow no leading slash
* Add route53 to smoke test because it has unit tests
* Update changelog
* Add missing call to flush()
* Remove unused env_logger depedendency