From b5b2a4b87b6f0c11831766cad8384d2f47a93e6d Mon Sep 17 00:00:00 2001 From: Alex Boten Date: Mon, 25 Sep 2023 12:02:30 -0700 Subject: [PATCH] [chore] use multimod diff (#8513) This is revert-ing the revert of https://github.com/open-telemetry/opentelemetry-collector/pull/8024. This also inverses the return of `check-changes` to match the original behaviour. Fixes #8149 --------- Signed-off-by: Alex Boten --- Makefile | 42 +++++------------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/Makefile b/Makefile index de19ea41afc..df15bd39f3a 100644 --- a/Makefile +++ b/Makefile @@ -433,43 +433,11 @@ push-tags: $(MULTIMOD) .PHONY: check-changes check-changes: $(YQ) -ifndef MODSET - @echo "MODSET not defined" - @echo "usage: make check-changes PREVIOUS_VERSION= MODSET=beta" - exit 1 -endif -ifndef PREVIOUS_VERSION - @echo "PREVIOUS_VERSION not defined" - @echo "usage: make check-changes PREVIOUS_VERSION= MODSET=beta" - exit 1 -else -ifeq (, $(findstring v,$(PREVIOUS_VERSION))) -NORMALIZED_PREVIOUS_VERSION="v$(PREVIOUS_VERSION)" -else -NORMALIZED_PREVIOUS_VERSION="$(PREVIOUS_VERSION)" -endif -endif - @all_submods=$$($(YQ) e '.module-sets.*.modules[] | select(. != "go.opentelemetry.io/collector")' versions.yaml | sed 's/^go\.opentelemetry\.io\/collector\///'); \ - mods=$$($(YQ) e '.module-sets.$(MODSET).modules[]' versions.yaml | sed 's/^go\.opentelemetry\.io\/collector\///'); \ - changed_files=""; \ - for mod in $${mods}; do \ - if [ "$${mod}" == "go.opentelemetry.io/collector" ]; then \ - changed_files+=$$(git diff --name-only $(NORMALIZED_PREVIOUS_VERSION) -- $$(printf '%s\n' $${all_submods[@]} | sed 's/^/:!/' | paste -sd' ' -) | grep -E '.+\.go$$'); \ - elif ! git rev-parse --quiet --verify $${mod}/$(NORMALIZED_PREVIOUS_VERSION) >/dev/null; then \ - echo "Module $${mod} does not have a $(NORMALIZED_PREVIOUS_VERSION) tag"; \ - echo "$(MODSET) release is required."; \ - exit 0; \ - else \ - changed_files+=$$(git diff --name-only $${mod}/$(NORMALIZED_PREVIOUS_VERSION) -- $${mod} | grep -E '.+\.go$$'); \ - fi; \ - done; \ - if [ -n "$${changed_files}" ]; then \ - echo "The following files changed in $(MODSET) modules since $(NORMALIZED_PREVIOUS_VERSION): $${changed_files}"; \ - else \ - echo "No $(MODSET) modules have changed since $(NORMALIZED_PREVIOUS_VERSION)"; \ - echo "No need to release $(MODSET)."; \ - exit 1; \ - fi + # NOTE: ! inverses the return code of multimod diff. This is + # because prepare-release expects a 0 if there are diffs and + # non-0 if there are no diffs, which is the inverse of most + # diff tools + ! $(MULTIMOD) diff -p $(PREVIOUS_VERSION) -m $(MODSET) .PHONY: prepare-release prepare-release: