From 88ca4fedd8ec78ebcd30d8cf78be0219b64d39fd Mon Sep 17 00:00:00 2001 From: Russell Cohen Date: Tue, 19 Jan 2021 15:23:07 -0500 Subject: [PATCH] [chore] Move AWS codegeneration into its own folder (#166) This allows us to deliniate AWS runtime vs. Smithy runtime and will make a future separation easier --- .github/workflows/ci.yaml | 8 ++++---- README.md | 5 +++++ .../sdk-codegen}/build.gradle.kts | 0 .../amazon/smithy/rustsdk/AwsCodegenDecorator.kt | 0 .../software/amazon/smithy/rustsdk/BaseAwsConfig.kt | 0 ....smithy.rust.codegen.smithy.RustCodegenDecorator | 0 {aws-sdk => aws/sdk}/.gitignore | 0 {aws-sdk => aws/sdk}/README.md | 6 +++--- {aws-sdk => aws/sdk}/build.gradle.kts | 13 +++++++------ {aws-sdk => aws/sdk}/models/dynamodb.json | 0 settings.gradle.kts | 4 ++-- 11 files changed, 21 insertions(+), 15 deletions(-) rename {aws-sdk-codegen => aws/sdk-codegen}/build.gradle.kts (100%) rename {aws-sdk-codegen => aws/sdk-codegen}/src/main/kotlin/software/amazon/smithy/rustsdk/AwsCodegenDecorator.kt (100%) rename {aws-sdk-codegen => aws/sdk-codegen}/src/main/kotlin/software/amazon/smithy/rustsdk/BaseAwsConfig.kt (100%) rename {aws-sdk-codegen => aws/sdk-codegen}/src/main/resources/META-INF/services/software.amazon.smithy.rust.codegen.smithy.RustCodegenDecorator (100%) rename {aws-sdk => aws/sdk}/.gitignore (100%) rename {aws-sdk => aws/sdk}/README.md (73%) rename {aws-sdk => aws/sdk}/build.gradle.kts (94%) rename {aws-sdk => aws/sdk}/models/dynamodb.json (100%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6ccf547fd..12f0e6a1c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -143,10 +143,10 @@ jobs: with: java-version: ${{ env.java_version }} - name: Generate the SDK - run: ./gradlew :aws-sdk:assemble + run: ./gradlew :aws:sdk:assemble # docs are not included in the artifact; this step validates that they can be generated - name: Generate docs - run: ./gradlew :aws-sdk:cargoDocs + run: ./gradlew :aws:sdk:cargoDocs - name: Get current date id: date run: echo "name=${GITHUB_REF##*/}-$(date +'%Y-%m-%d')" >> $GITHUB_ENV @@ -157,5 +157,5 @@ jobs: with: name: aws-sdk-${{ env.name }}-${{ github.sha }} path: | - aws-sdk/build/aws-sdk/ - !aws-sdk/build/aws-sdk/target + aws/sdk/build/aws-sdk/ + !aws/sdk/build/aws-sdk/target diff --git a/README.md b/README.md index d5cd6087e..919f61b51 100644 --- a/README.md +++ b/README.md @@ -17,3 +17,8 @@ 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.) +* `codegen`: Whitelabel Smithy code generation +* `codegen-test`: Smithy protocol test generation & integration tests for Smithy whitelabel code diff --git a/aws-sdk-codegen/build.gradle.kts b/aws/sdk-codegen/build.gradle.kts similarity index 100% rename from aws-sdk-codegen/build.gradle.kts rename to aws/sdk-codegen/build.gradle.kts diff --git a/aws-sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsCodegenDecorator.kt b/aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsCodegenDecorator.kt similarity index 100% rename from aws-sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsCodegenDecorator.kt rename to aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsCodegenDecorator.kt diff --git a/aws-sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseAwsConfig.kt b/aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseAwsConfig.kt similarity index 100% rename from aws-sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseAwsConfig.kt rename to aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseAwsConfig.kt diff --git a/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.rust.codegen.smithy.RustCodegenDecorator b/aws/sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.rust.codegen.smithy.RustCodegenDecorator similarity index 100% rename from aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.rust.codegen.smithy.RustCodegenDecorator rename to aws/sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.rust.codegen.smithy.RustCodegenDecorator diff --git a/aws-sdk/.gitignore b/aws/sdk/.gitignore similarity index 100% rename from aws-sdk/.gitignore rename to aws/sdk/.gitignore diff --git a/aws-sdk/README.md b/aws/sdk/README.md similarity index 73% rename from aws-sdk/README.md rename to aws/sdk/README.md index 3f5981005..a46430ca3 100644 --- a/aws-sdk/README.md +++ b/aws/sdk/README.md @@ -1,13 +1,13 @@ # AWS SDK Generator -This directory contains a gradle project to generate an AWS SDK. It uses the Smithy Build Plugin combined with the customizations specified in `aws-sdk-codegen` to generate an AWS SDK from Smithy models. +This directory contains a gradle project to generate an AWS SDK. It uses the Smithy Build Plugin combined with the customizations specified in `aws/sdk-codegen` to generate an AWS SDK from Smithy models. `build.gradle.kts` will generate a `smithy-build.json` dynamically from all models in the `models` directory. ## Usage Generate an SDK: -`./gradlew :aws-sdk:assemble` +`./gradlew :aws:sdk:assemble` Generate, compile, and test an SDK: -`./gradlew :aws-sdk:build` +`./gradlew :aws:sdk:build` diff --git a/aws-sdk/build.gradle.kts b/aws/sdk/build.gradle.kts similarity index 94% rename from aws-sdk/build.gradle.kts rename to aws/sdk/build.gradle.kts index d4913a925..ff6fe7441 100644 --- a/aws-sdk/build.gradle.kts +++ b/aws/sdk/build.gradle.kts @@ -31,7 +31,7 @@ buildscript { } dependencies { - implementation(project(":aws-sdk-codegen")) + implementation(project(":aws:sdk-codegen")) implementation("software.amazon.smithy:smithy-aws-protocol-tests:$smithyVersion") implementation("software.amazon.smithy:smithy-protocol-test-traits:$smithyVersion") implementation("software.amazon.smithy:smithy-aws-traits:$smithyVersion") @@ -96,7 +96,7 @@ task("relocateServices") { doLast { awsServices.forEach { copy { - from("$buildDir/smithyprojections/aws-sdk/${it.module}/rust-codegen") + from("$buildDir/smithyprojections/sdk/${it.module}/rust-codegen") into(sdkOutputDir.resolve(it.module)) } } @@ -109,6 +109,7 @@ tasks.register("relocateRuntime") { include("$it/**") } exclude("**/target") + exclude("**/Cargo.lock") } into(sdkOutputDir) } @@ -139,7 +140,7 @@ tasks["assemble"].finalizedBy("finalizeSdk") tasks.register("cargoCheck") { - workingDir(buildDir.resolve("aws-sdk")) + workingDir(sdkOutputDir) // disallow warnings environment("RUSTFLAGS", "-D warnings") commandLine("cargo", "check") @@ -147,7 +148,7 @@ tasks.register("cargoCheck") { } tasks.register("cargoTest") { - workingDir(buildDir.resolve("aws-sdk")) + workingDir(sdkOutputDir) // disallow warnings environment("RUSTFLAGS", "-D warnings") commandLine("cargo", "test") @@ -155,7 +156,7 @@ tasks.register("cargoTest") { } tasks.register("cargoDocs") { - workingDir(buildDir.resolve("aws-sdk")) + workingDir(sdkOutputDir) // disallow warnings environment("RUSTFLAGS", "-D warnings") commandLine("cargo", "doc", "--no-deps") @@ -163,7 +164,7 @@ tasks.register("cargoDocs") { } tasks.register("cargoClippy") { - workingDir(buildDir.resolve("aws-sdk")) + workingDir(sdkOutputDir) // disallow warnings environment("RUSTFLAGS", "-D warnings") commandLine("cargo", "clippy") diff --git a/aws-sdk/models/dynamodb.json b/aws/sdk/models/dynamodb.json similarity index 100% rename from aws-sdk/models/dynamodb.json rename to aws/sdk/models/dynamodb.json diff --git a/settings.gradle.kts b/settings.gradle.kts index 5b403e8ca..b8ae02580 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,5 +20,5 @@ enableFeaturePreview("GRADLE_METADATA") include(":codegen") include(":codegen-test") include(":rust-runtime") -include(":aws-sdk-codegen") -include(":aws-sdk") +include(":aws:sdk-codegen") +include(":aws:sdk") -- GitLab