From 76ab22f539785596d8105f8ba8a734603757417a Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Mon, 4 Sep 2023 22:01:11 +0300 Subject: [PATCH] chore(coderd/database): introduce compile-time guard against import in slim build (#9521) This change introduces a compile-time error when `coderd/database` is imported into the slim build. This is to guard against accidentally growing the binary size via import. Ref: #9380 --- coderd/database/no_slim.go | 8 ++++++++ coderd/database/no_slim_slim.go | 14 ++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 coderd/database/no_slim.go create mode 100644 coderd/database/no_slim_slim.go diff --git a/coderd/database/no_slim.go b/coderd/database/no_slim.go new file mode 100644 index 0000000000..561466490f --- /dev/null +++ b/coderd/database/no_slim.go @@ -0,0 +1,8 @@ +package database + +const ( + // This declaration protects against imports in slim builds, see + // no_slim_slim.go. + //nolint:revive,unused + _DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS = "DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS" +) diff --git a/coderd/database/no_slim_slim.go b/coderd/database/no_slim_slim.go new file mode 100644 index 0000000000..845ac0df77 --- /dev/null +++ b/coderd/database/no_slim_slim.go @@ -0,0 +1,14 @@ +//go:build slim + +package database + +const ( + // This re-declaration will result in a compilation error and is present to + // prevent increasing the slim binary size by importing this package, + // directly or indirectly. + // + // no_slim_slim.go:7:2: _DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS redeclared in this block + // no_slim.go:4:2: other declaration of _DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS + //nolint:revive,unused + _DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS = "DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS" +)