@@ -19,7 +19,7 @@ EACHMODULE_SKIP_FLAG=-skip="${EACHMODULE_SKIP}"
1919
2020EACHMODULE_FLAGS =${EACHMODULE_CONCURRENCY_FLAG} ${EACHMODULE_FAILFAST_FLAG} ${EACHMODULE_SKIP_FLAG}
2121
22- # SDK's Core and client packages that are compatable with Go 1.9+.
22+ # SDK's Core and client packages that are compatible with Go 1.9+.
2323SDK_CORE_PKGS =./aws/... ./internal/...
2424SDK_CLIENT_PKGS =./service/...
2525SDK_COMPA_PKGS =${SDK_CORE_PKGS} ${SDK_CLIENT_PKGS}
@@ -41,6 +41,20 @@ LICENSE_FILE=$(shell pwd)/LICENSE.txt
4141RELEASE_MANIFEST_FILE ?=
4242RELEASE_CHGLOG_DESC_FILE ?=
4343
44+ REPOTOOLS_VERSION ?= latest
45+ REPOTOOLS_MODULE = github.com/awslabs/aws-go-multi-module-repository-tools
46+ REPOTOOLS_CMD_ANNOTATE_STABLE_GEN = ${REPOTOOLS_MODULE}/cmd/annotatestablegen@${REPOTOOLS_VERSION}
47+ REPOTOOLS_CMD_MAKE_RELATIVE = ${REPOTOOLS_MODULE}/cmd/makerelative@${REPOTOOLS_VERSION}
48+ REPOTOOLS_CMD_CALCULATE_RELEASE = ${REPOTOOLS_MODULE}/cmd/calculaterelease@${REPOTOOLS_VERSION}
49+ REPOTOOLS_CMD_UPDATE_REQUIRES = ${REPOTOOLS_MODULE}/cmd/updaterequires@${REPOTOOLS_VERSION}
50+ REPOTOOLS_CMD_UPDATE_MODULE_METADATA = ${REPOTOOLS_MODULE}/cmd/updatemodulemeta@${REPOTOOLS_VERSION}
51+ REPOTOOLS_CMD_GENERATE_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/generatechangelog@${REPOTOOLS_VERSION}
52+ REPOTOOLS_CMD_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION}
53+ REPOTOOLS_CMD_TAG_RELEASE = ${REPOTOOLS_MODULE}/cmd/tagrelease@${REPOTOOLS_VERSION}
54+
55+ REPOTOOLS_CALCULATE_RELEASE_VERBOSE ?= false
56+ REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG=-v =${REPOTOOLS_CALCULATE_RELEASE_VERBOSE}
57+
4458.PHONY : all
4559all : generate unit
4660
@@ -74,8 +88,7 @@ smithy-build-%: gen-repo-mod-replace
7488 SMITHY_GO_BUILD_API=" $( subst smithy-build-,,$@ ) " ./gradlew clean build -Plog-tests
7589
7690smithy-annotate-stable :
77- cd ./internal/repotools && \
78- go run ./cmd/annotatestablegen
91+ go run ${REPOTOOLS_CMD_ANNOTATE_STABLE_GEN}
7992
8093smithy-clean :
8194 cd codegen && ./gradlew clean
@@ -96,7 +109,7 @@ gen-config-asserts:
96109
97110gen-repo-mod-replace :
98111 @echo " Generating go.mod replace for repo modules"
99- cd internal/repotools/cmd/makerelative && go run ./
112+ go run ${REPOTOOLS_CMD_MAKE_RELATIVE}
100113
101114gen-mod-replace-smithy :
102115 cd ./internal/repotools/cmd/eachmodule \
@@ -182,12 +195,10 @@ min-go-version-%:
182195 " go mod edit -go=${SDK_MIN_GO_VERSION} "
183196
184197update-requires :
185- cd ./internal/repotools && \
186- go run ./cmd/updaterequires
198+ go run ${REPOTOOLS_CMD_UPDATE_REQUIRES}
187199
188200update-module-metadata :
189- cd ./internal/repotools && \
190- go run ./cmd/updatemodulemeta
201+ go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA}
191202
192203# ###############
193204# Unit Testing #
@@ -381,35 +392,35 @@ bench-modules-%:
381392# ####################
382393.PHONY : preview-release pre-release-validation release
383394
395+ ls-changes :
396+ go run ${REPOTOOLS_CMD_CHANGELOG} ls
397+
384398preview-release :
385- @cd ./internal/repotools && \
386- go run ./cmd/calculaterelease
399+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG}
387400
388401pre-release-validation :
389402 @if [[ -z " ${RELEASE_MANIFEST_FILE} " ]]; then \
390- echo "RELEASE_MANIFEST_FILE is required to specify the file to write the release manifest" && false; \
391- fi
403+ echo " RELEASE_MANIFEST_FILE is required to specify the file to write the release manifest" && false ; \
404+ fi
392405 @if [[ -z " ${RELEASE_CHGLOG_DESC_FILE} " ]]; then \
393406 echo " RELEASE_CHGLOG_DESC_FILE is required to specify the file to write the release notes" && false ; \
394407 fi
395408
396409release : pre-release-validation
397- cd ./internal/repotools && \
398- go run ./cmd/calculaterelease -o ${RELEASE_MANIFEST_FILE} && \
399- go run ./cmd/updaterequires -release ${RELEASE_MANIFEST_FILE} && \
400- go run ./cmd/updatemodulemeta -release ${RELEASE_MANIFEST_FILE} && \
401- go run ./cmd/generatechangelog -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE} && \
402- go run ./cmd/changelog rm -all && \
403- go run ./cmd/tagrelease -release ${RELEASE_MANIFEST_FILE}
410+ go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CALCULATE_RELEASE_VERBOSE_FLAG}
411+ go run ${REPOTOOLS_CMD_UPDATE_REQUIRES} -release ${RELEASE_MANIFEST_FILE}
412+ go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA} -release ${RELEASE_MANIFEST_FILE}
413+ go run ${REPOTOOLS_CMD_GENERATE_CHANGELOG} -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE}
414+ go run ${REPOTOOLS_CMD_CHANGELOG} rm -all
415+ go run ${REPOTOOLS_CMD_TAG_RELEASE} -release ${RELEASE_MANIFEST_FILE}
404416
405417# #############
406418# Repo Tools #
407419# #############
408420.PHONY : install-repotools
409421
410422install-repotools :
411- cd ./internal/repotools && \
412- go install ./cmd/changelog
423+ go install ${REPOTOOLS_MODULE} /cmd/changelog@${REPOTOOLS_VERSION}
413424
414425# #################
415426# Linting/Verify #
0 commit comments