propagate pinned versions to staging repos, output cleanup commands

k3s-v1.15.3
Jordan Liggitt 2019-04-14 00:03:00 -04:00
parent 252484705a
commit 77690137a9
4 changed files with 23 additions and 3 deletions

View File

@ -40,6 +40,7 @@
./hack/make-rules/update.sh
./hack/make-rules/verify.sh
./hack/make-rules/vet.sh
./hack/pin-dependency.sh
./hack/test-integration.sh
./hack/test-update-storage-objects.sh
./hack/update-generated-kms-dockerized.sh

View File

@ -56,7 +56,7 @@ unused=$(comm -23 \
if [[ -n "${unused}" ]]; then
echo ""
echo "Pinned module versions that aren't actually used:"
echo "${unused}"
echo "${unused}" | xargs -L 1 echo 'GO111MODULE=on go mod edit -dropreplace'
fi
if [[ -n "${unused}${outdated}" ]]; then

View File

@ -91,5 +91,15 @@ echo "Resolved to ${dep}@${rev}"
echo "Running: go mod edit -replace ${dep}=${dep}@${rev}"
go mod edit -replace "${dep}=${dep}@${rev}"
# Propagate pinned version to staging repos that also have that dependency
for repo in $(ls staging/src/k8s.io | sort); do
pushd "staging/src/k8s.io/${repo}" >/dev/null 2>&1
if go mod edit -json | jq -e -r ".Require[] | select(.Path == \"${dep}\")" > /dev/null; then
go mod edit -require "${dep}@${rev}"
go mod edit -replace "${dep}=${dep}@${rev}"
fi
popd >/dev/null 2>&1
done
echo ""
echo "Run hack/update-vendor.sh to rebuild the vendor directory"

View File

@ -70,10 +70,19 @@ function ensure_require_replace_directives_for_all_dependencies() {
cat "${require_json}" | jq -r '"-replace \(.Path)=\(.Path)@\(.Version)"' | xargs -L 100 go mod edit -fmt
cat "${replace_json}" | jq -r '"-replace \(.Old.Path)=\(.New.Path)@\(.New.Version)"'| xargs -L 100 go mod edit -fmt
# 2. Add explicit require directives for indirect dependencies
# 2. Propagate root replace/require directives into staging modules, in case we are downgrading, so they don't bump the root required version back up
for repo in $(ls staging/src/k8s.io); do
pushd "staging/src/k8s.io/${repo}" >/dev/null 2>&1
cat "${require_json}" | jq -r '"-require \(.Path)@\(.Version)"' | xargs -L 100 go mod edit -fmt
cat "${require_json}" | jq -r '"-replace \(.Path)=\(.Path)@\(.Version)"' | xargs -L 100 go mod edit -fmt
cat "${replace_json}" | jq -r '"-replace \(.Old.Path)=\(.New.Path)@\(.New.Version)"'| xargs -L 100 go mod edit -fmt
popd >/dev/null 2>&1
done
# 3. Add explicit require directives for indirect dependencies
go list -m -json all | jq -r 'select(.Main != true) | select(.Indirect == true) | "-require \(.Path)@\(.Version)"' | xargs -L 100 go mod edit -fmt
# 3. Add explicit replace directives pinning dependencies that aren't pinned yet
# 4. Add explicit replace directives pinning dependencies that aren't pinned yet
go list -m -json all | jq -r 'select(.Main != true) | select(.Replace == null) | "-replace \(.Path)=\(.Path)@\(.Version)"' | xargs -L 100 go mod edit -fmt
}