mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
make: fix verify-dep
Makefile's target `verify-dep` current behavior is to use `go list` to check consistent dependency versions from direct dependencies. Ignoring indirect dependencies in a multi-module project could lead to version mismatches. If module A imports module B, module B's dependency will be an indirect dependency in module A. Which can potentially have a version mismatch. Therefore, use `go mod edit` with indirect dependencies, too. So it can work with all dependencies defined in go.mod. Fix displaying dependencies with mismatches, as the old code was searching with grep just for the prefix, which would show other dependencies that shared the same prefix. Signed-off-by: Ivan Valdes <ivan@vald.es>
This commit is contained in:
parent
a043da50fe
commit
dfda61bbbf
@ -535,7 +535,7 @@ function dump_deps_of_module() {
|
||||
if ! module=$(run go list -m); then
|
||||
return 255
|
||||
fi
|
||||
run go list -f "{{if not .Indirect}}{{if .Version}}{{.Path}},{{.Version}},${module}{{end}}{{end}}" -m all
|
||||
run go mod edit -json | jq -r '.Require[] | .Path+","+.Version+","+if .Indirect then " (indirect)" else "" end+",'"${module}"'"'
|
||||
}
|
||||
|
||||
# Checks whether dependencies are consistent across modules
|
||||
@ -548,7 +548,7 @@ function dep_pass {
|
||||
|
||||
for dup in ${duplicates}; do
|
||||
log_error "FAIL: inconsistent versions for dependency: ${dup}"
|
||||
echo "${all_dependencies}" | grep "${dup}" | sed "s|\\([^,]*\\),\\([^,]*\\),\\([^,]*\\)| - \\1@\\2 from: \\3|g"
|
||||
echo "${all_dependencies}" | grep "${dup}," | sed 's|\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\)| - \1@\2\3 from: \4|g'
|
||||
done
|
||||
if [[ -n "${duplicates}" ]]; then
|
||||
log_error "FAIL: inconsistent dependencies"
|
||||
|
Loading…
x
Reference in New Issue
Block a user