Skip to content

Commit f4a053b

Browse files
authored
Add release metadata to versions.toml (smithy-lang#1400)
1 parent 35989d2 commit f4a053b

File tree

26 files changed

+594
-194
lines changed

26 files changed

+594
-194
lines changed

aws/sdk-codegen-test/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ fun generateSmithyBuild(tests: List<CodegenTest>): String {
5959
task("generateSmithyBuild") {
6060
description = "generate smithy-build.json"
6161
doFirst {
62-
projectDir.resolve("smithy-build.json").writeText(generateSmithyBuild(CodegenTests))
62+
buildDir.resolve("smithy-build.json").writeText(generateSmithyBuild(CodegenTests))
6363
}
6464
}
6565

aws/sdk/build.gradle.kts

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ plugins {
1818
id("software.amazon.smithy").version("0.6.0")
1919
}
2020

21+
configure<software.amazon.smithy.gradle.SmithyExtension> {
22+
smithyBuildConfigs = files(buildDir.resolve("smithy-build.json"))
23+
}
24+
2125
val smithyVersion: String by project
2226
val defaultRustFlags: String by project
2327
val defaultRustDocFlags: String by project
@@ -51,17 +55,18 @@ dependencies {
5155
val awsServices: AwsServices by lazy { discoverServices(loadServiceMembership()) }
5256
val eventStreamAllowList: Set<String> by lazy { eventStreamAllowList() }
5357

54-
fun getSdkVersion(): String = properties.get("aws.sdk.version") ?: throw kotlin.Exception("SDK version missing")
55-
fun getSmithyRsVersion(): String = properties.get("smithy.rs.runtime.crate.version") ?: throw kotlin.Exception("smithy-rs version missing")
56-
fun getRustMSRV(): String = properties.get("rust.msrv") ?: throw kotlin.Exception("Rust MSRV missing")
58+
fun getSdkVersion(): String = properties.get("aws.sdk.version") ?: throw Exception("SDK version missing")
59+
fun getSmithyRsVersion(): String = properties.get("smithy.rs.runtime.crate.version") ?: throw Exception("smithy-rs version missing")
60+
fun getRustMSRV(): String = properties.get("rust.msrv") ?: throw Exception("Rust MSRV missing")
61+
fun getPreviousReleaseVersionManifestPath(): String? = properties.get("aws.sdk.previous.release.versions.manifest")
5762

5863
fun loadServiceMembership(): Membership {
5964
val membershipOverride = properties.get("aws.services")?.let { parseMembership(it) }
6065
println(membershipOverride)
6166
val fullSdk =
62-
parseMembership(properties.get("aws.services.fullsdk") ?: throw kotlin.Exception("full sdk list missing"))
67+
parseMembership(properties.get("aws.services.fullsdk") ?: throw Exception("full sdk list missing"))
6368
val tier1 =
64-
parseMembership(properties.get("aws.services.smoketest") ?: throw kotlin.Exception("smoketest list missing"))
69+
parseMembership(properties.get("aws.services.smoketest") ?: throw Exception("smoketest list missing"))
6570
return membershipOverride ?: if ((properties.get("aws.fullsdk") ?: "") == "true") {
6671
fullSdk
6772
} else {
@@ -131,11 +136,12 @@ tasks.register("generateSmithyBuild") {
131136
inputs.property("servicelist", awsServices.services.toString())
132137
inputs.property("eventStreamAllowList", eventStreamAllowList)
133138
inputs.dir(projectDir.resolve("aws-models"))
134-
outputs.file(projectDir.resolve("smithy-build.json"))
139+
outputs.file(buildDir.resolve("smithy-build.json"))
135140

136141
doFirst {
137-
projectDir.resolve("smithy-build.json").writeText(generateSmithyBuild(awsServices))
142+
buildDir.resolve("smithy-build.json").writeText(generateSmithyBuild(awsServices))
138143
}
144+
outputs.upToDateWhen { false }
139145
}
140146

141147
tasks.register("generateIndexMd") {
@@ -335,15 +341,22 @@ tasks.register<ExecRustBuildTool>("generateVersionManifest") {
335341

336342
toolPath = publisherToolPath
337343
binaryName = "publisher"
338-
arguments = listOf(
344+
arguments = mutableListOf(
339345
"generate-version-manifest",
340346
"--location",
341347
outputDir.absolutePath,
342348
"--smithy-build",
343-
outputDir.resolve("../../smithy-build.json").normalize().absolutePath,
349+
buildDir.resolve("smithy-build.json").normalize().absolutePath,
344350
"--examples-revision",
345351
properties.get("aws.sdk.examples.revision") ?: "missing"
346-
)
352+
).apply {
353+
val previousReleaseManifestPath = getPreviousReleaseVersionManifestPath()?.let { manifestPath ->
354+
add("--previous-release-versions")
355+
add(manifestPath)
356+
add("--release-tag")
357+
add("v" + getSdkVersion())
358+
}
359+
}
347360
}
348361

349362
tasks.register("finalizeSdk") {
@@ -362,13 +375,8 @@ tasks.register("finalizeSdk") {
362375
)
363376
}
364377

365-
tasks.register<Delete>("deleteSdk") {
366-
delete = setOf(outputDir)
367-
}
368-
tasks["clean"].dependsOn("deleteSdk")
369-
370378
tasks["smithyBuildJar"].apply {
371-
inputs.file(projectDir.resolve("smithy-build.json"))
379+
inputs.file(buildDir.resolve("smithy-build.json"))
372380
inputs.dir(projectDir.resolve("aws-models"))
373381
dependsOn("generateSmithyBuild")
374382
dependsOn("generateCargoWorkspace")
@@ -410,6 +418,10 @@ tasks.register<Exec>("cargoClippy") {
410418

411419
tasks["test"].finalizedBy("cargoClippy", "cargoTest", "cargoDocs")
412420

421+
tasks.register<Delete>("deleteSdk") {
422+
delete = setOf(outputDir)
423+
}
424+
tasks["clean"].dependsOn("deleteSdk")
413425
tasks["clean"].doFirst {
414-
delete("smithy-build.json")
426+
delete(buildDir.resolve("smithy-build.json"))
415427
}

ci

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,9 @@ if [[ $# -lt 1 ]]; then
1717
exit 1
1818
fi
1919

20+
ACTION_NAME=$1
21+
shift
22+
ACTION_ARGS=("$@")
23+
2024
cd ..
21-
make -f ./smithy-rs/ci.mk "$@"
25+
make -f ./smithy-rs/ci.mk "${ACTION_NAME}" ARGS="${ACTION_ARGS[*]}"

ci.mk

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
# with dependencies between targets included so that it's not necessary
99
# to remember to generate a SDK for the targets that require one.
1010

11+
ARGS=
1112
CI_BUILD=./smithy-rs/tools/ci-build
1213
CI_ACTION=$(CI_BUILD)/ci-action
1314

@@ -17,80 +18,80 @@ acquire-build-image:
1718

1819
.PHONY: check-aws-sdk-examples
1920
check-aws-sdk-examples: generate-aws-sdk
20-
$(CI_ACTION) $@
21+
$(CI_ACTION) $@ $(ARGS)
2122

2223
.PHONY: check-aws-sdk-services
2324
check-aws-sdk-services: generate-aws-sdk
24-
$(CI_ACTION) $@
25+
$(CI_ACTION) $@ $(ARGS)
2526

2627
.PHONY: check-aws-sdk-smoketest-additional-checks
2728
check-aws-sdk-smoketest-additional-checks: generate-aws-sdk-smoketest
28-
$(CI_ACTION) $@
29+
$(CI_ACTION) $@ $(ARGS)
2930

3031
.PHONY: check-aws-sdk-smoketest-docs-clippy-udeps
3132
check-aws-sdk-smoketest-docs-clippy-udeps: generate-aws-sdk-smoketest
32-
$(CI_ACTION) $@
33+
$(CI_ACTION) $@ $(ARGS)
3334

3435
.PHONY: check-aws-sdk-smoketest-unit-tests
3536
check-aws-sdk-smoketest-unit-tests: generate-aws-sdk-smoketest
36-
$(CI_ACTION) $@
37+
$(CI_ACTION) $@ $(ARGS)
3738

3839
.PHONY: check-client-codegen-integration-tests
3940
check-client-codegen-integration-tests:
40-
$(CI_ACTION) $@
41+
$(CI_ACTION) $@ $(ARGS)
4142

4243
.PHONY: check-client-codegen-unit-tests
4344
check-client-codegen-unit-tests:
44-
$(CI_ACTION) $@
45+
$(CI_ACTION) $@ $(ARGS)
4546

4647
.PHONY: check-rust-runtimes-and-tools
4748
check-rust-runtimes-and-tools: generate-aws-sdk-smoketest
48-
$(CI_ACTION) $@
49+
$(CI_ACTION) $@ $(ARGS)
4950

5051
.PHONY: check-sdk-codegen-unit-tests
5152
check-sdk-codegen-unit-tests:
52-
$(CI_ACTION) $@
53+
$(CI_ACTION) $@ $(ARGS)
5354

5455
.PHONY: check-server-codegen-integration-tests
5556
check-server-codegen-integration-tests:
56-
$(CI_ACTION) $@
57+
$(CI_ACTION) $@ $(ARGS)
5758

5859
.PHONY: check-server-codegen-unit-tests
5960
check-server-codegen-unit-tests:
60-
$(CI_ACTION) $@
61+
$(CI_ACTION) $@ $(ARGS)
6162

6263
.PHONY: check-server-codegen-integration-tests-python
6364
check-server-codegen-integration-tests-python:
64-
$(CI_ACTION) $@
65+
$(CI_ACTION) $@ $(ARGS)
6566

6667
.PHONY: check-server-codegen-unit-tests-python
6768
check-server-codegen-unit-tests-python:
68-
$(CI_ACTION) $@
69+
$(CI_ACTION) $@ $(ARGS)
6970

7071
.PHONY: check-server-e2e-test
7172
check-server-e2e-test:
72-
$(CI_ACTION) $@
73+
$(CI_ACTION) $@ $(ARGS)
7374

7475
.PHONY: check-style-and-lints
7576
check-style-and-lints:
76-
$(CI_ACTION) $@
77+
$(CI_ACTION) $@ $(ARGS)
7778

7879
.PHONY: generate-aws-sdk-smoketest
7980
generate-aws-sdk-smoketest:
80-
$(CI_ACTION) $@
81+
$(CI_ACTION) $@ $(ARGS)
8182

8283
.PHONY: generate-aws-sdk
8384
generate-aws-sdk:
84-
$(CI_ACTION) $@
85+
$(CI_ACTION) $@ $(ARGS)
8586

8687
.PHONY: generate-codegen-diff
8788
generate-codegen-diff:
88-
$(CI_ACTION) $@
89+
$(CI_ACTION) $@ $(ARGS)
8990

9091
.PHONY: generate-smithy-rs-runtime-bundle
9192
generate-smithy-rs-runtime-bundle:
92-
$(CI_ACTION) $@
93+
$(CI_ACTION) $@ $(ARGS)
9394

9495
.PHONY: sanity-test
9596
sanity-test:
96-
$(CI_ACTION) $@
97+
$(CI_ACTION) $@ $(ARGS)

tools/api-linter/Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tools/ci-build/scripts/generate-aws-sdk

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,15 @@
66

77
C_YELLOW='\033[1;33m'
88
C_RESET='\033[0m'
9-
109
set -eux
1110

11+
# This script takes an optional argument to specify the path to the previous release's versions.toml file
12+
PREVIOUS_RELEASE_VERSIONS_ARG=
13+
if [[ $# -ge 1 ]]; then
14+
echo "Given previous release manifest path: $1"
15+
PREVIOUS_RELEASE_VERSIONS_ARG="-Paws.sdk.previous.release.versions.manifest=$1"
16+
fi
17+
1218
echo -e "${C_YELLOW}Taking examples from 'awsdocs/aws-doc-sdk-examples'...${C_RESET}"
1319
examples_revision=$(cd aws-doc-sdk-examples; git rev-parse HEAD)
1420
mv aws-doc-sdk-examples/rust_dev_preview smithy-rs/aws/sdk/examples
@@ -17,5 +23,12 @@ rm smithy-rs/aws/sdk/examples/Cargo.toml
1723

1824
echo -e "${C_YELLOW}Generating services...${C_RESET}"
1925
cd smithy-rs
20-
./gradlew -Paws.fullsdk=true -Paws.sdk.examples.revision="${examples_revision}" aws:sdk:assemble
26+
27+
# Intentionally not quoting PREVIOUS_RELEASE_VERSIONS_ARG so that if it has no value, it doesn't confuse gradle
28+
# shellcheck disable=SC2086
29+
./gradlew \
30+
-Paws.fullsdk=true \
31+
-Paws.sdk.examples.revision="${examples_revision}" \
32+
${PREVIOUS_RELEASE_VERSIONS_ARG} \
33+
aws:sdk:assemble
2134
mv aws/sdk/build/aws-sdk ../artifacts/

tools/publisher/Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)