diff --git a/internal/alldeps b/internal/alldeps new file mode 100644 index 0000000..fc533ad --- /dev/null +++ b/internal/alldeps @@ -0,0 +1,3 @@ +github.com/google/wire +github.com/pmezard/go-difflib +golang.org/x/tools diff --git a/internal/listdeps.sh b/internal/listdeps.sh new file mode 100755 index 0000000..3b79f4b --- /dev/null +++ b/internal/listdeps.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Copyright 2019 The Wire Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +# To run this script manually to update alldeps: +# +# $ internal/listdeps.sh > internal/alldeps +# +# Important note: there are changes in module tooling behavior between go 1.11 +# and go 1.12; please make sure to use the same version of Go as used by Travis +# (see .travis.yml) when updating the alldeps file. +go list -deps -f '{{with .Module}}{{.Path}}{{end}}' ./... | sort | uniq diff --git a/internal/runtests.sh b/internal/runtests.sh index 4b501cf..b47a278 100755 --- a/internal/runtests.sh +++ b/internal/runtests.sh @@ -30,6 +30,14 @@ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then if [ -f coverage.out ]; then goveralls -coverprofile=coverage.out -service=travis-ci fi + # Ensure that the code has no extra dependencies (including transitive + # dependencies) that we're not already aware of by comparing with + # ./internal/alldeps + # + # Whenever project dependencies change, rerun ./internal/listdeps.sh + ./internal/listdeps.sh | diff ./internal/alldeps - || { + echo "FAIL: dependencies changed; compare listdeps.sh output with alldeps" && result=1 + } else go test -race ./... || result=1 fi