From 25c3421802af2c008998b5ad664b5043a0db33fc Mon Sep 17 00:00:00 2001 From: Bjorn Neergaard Date: Fri, 18 Nov 2022 15:55:26 -0700 Subject: [PATCH] hack: introduce validate/no-module Moby is not a Go module; to prevent anyone from mistakenly trying to convert it to one before we are ready, introduce a check (usable in CI and locally) for a go.mod file. This is preferable to trying to .gitignore the file as we can ensure that a mistakenly created go.mod is surfaced by Git-based tooling and is less likely to surprise a contributor. Signed-off-by: Bjorn Neergaard --- .gitignore | 2 -- hack/validate/no-module | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100755 hack/validate/no-module diff --git a/.gitignore b/.gitignore index d3f896b19e..9b2c8b9c51 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,6 @@ thumbs.db .bashrc .editorconfig -# top-level go.mod is not meant to be checked in -/go.mod # build artifacts bundles/ cli/winresources/*/*.syso diff --git a/hack/validate/no-module b/hack/validate/no-module new file mode 100755 index 0000000000..67a9c559ad --- /dev/null +++ b/hack/validate/no-module @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# +# Check that no one is trying to commit a go.mod. + +SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOTDIR="$(git -C "$SCRIPTDIR" rev-parse --show-toplevel)" + +if test -e "${ROOTDIR}/go.mod"; then + { + echo 'FAIL: go.mod found in repository root!' + echo + echo ' Moby is not a Go module; please delete go.mod and try again.' + } >&2 + exit 1 +else + echo 'PASS: No go.mod found in repository root!' +fi