From 43c1c6d7582bc0e1e4eda5944c5f247976c3ce82 Mon Sep 17 00:00:00 2001 From: yugo-horie Date: Sat, 2 Oct 2021 09:17:35 +0900 Subject: [PATCH] Remove Core from Module type Fixes #15 Signed-off-by: yugo-horie --- internal/builder/config.go | 11 +++++++++-- internal/builder/config_test.go | 5 ++--- test/nocore.builder.yaml | 6 +++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/internal/builder/config.go b/internal/builder/config.go index fa253e8..b771871 100644 --- a/internal/builder/config.go +++ b/internal/builder/config.go @@ -32,6 +32,9 @@ const defaultOtelColVersion = "0.36.0" // ErrInvalidGoMod indicates an invalid gomod var ErrInvalidGoMod = errors.New("invalid gomod specification for module") +// ErrDeprecatedCore indicates deprecated core +var ErrDeprecatedCore = errors.New("mod.Core has deprecated, you should not be used anymore and required to be set mod.GoMod instead") + // Config holds the builder's configuration type Config struct { Logger logr.Logger @@ -64,7 +67,8 @@ type Module struct { Import string `mapstructure:"import"` // if not specified, this is the path part of the go mods GoMod string `mapstructure:"gomod"` // a gomod-compatible spec for the module Path string `mapstructure:"path"` // an optional path to the local version of this module - Core bool `mapstructure:"core"` // whether this module comes from core, meaning that no further dependencies will be added + Core *bool `mapstructure:"core"` // whether this module comes from core. For this property isn't referred from anywhere, it might be removed. please see #15. + } // DefaultConfig creates a new config, with default values @@ -134,7 +138,10 @@ func (c *Config) ParseModules() error { func parseModules(mods []Module) ([]Module, error) { var parsedModules []Module for _, mod := range mods { - if mod.GoMod == "" && !mod.Core { + if mod.Core != nil { + return mods, ErrDeprecatedCore + } + if mod.GoMod == "" { return mods, fmt.Errorf("%w, module: %q", ErrInvalidGoMod, mod.GoMod) } diff --git a/internal/builder/config_test.go b/internal/builder/config_test.go index 08fab22..b7ea01a 100644 --- a/internal/builder/config_test.go +++ b/internal/builder/config_test.go @@ -65,9 +65,9 @@ func TestRelativePath(t *testing.T) { func TestModuleFromCore(t *testing.T) { // prepare cfg := Config{ - Extensions: []Module{{ - Core: true, + Extensions: []Module{{ // see issue-12 Import: "go.opentelemetry.io/collector/receiver/jaegerreceiver", + GoMod: "go.opentelemetry.io/collector v0.36.0", }}, } @@ -77,7 +77,6 @@ func TestModuleFromCore(t *testing.T) { // verify assert.True(t, strings.HasPrefix(cfg.Extensions[0].Name, "jaegerreceiver")) - assert.Empty(t, cfg.Extensions[0].GoMod) } func TestInvalidModule(t *testing.T) { diff --git a/test/nocore.builder.yaml b/test/nocore.builder.yaml index 49dec4b..8cee426 100644 --- a/test/nocore.builder.yaml +++ b/test/nocore.builder.yaml @@ -5,10 +5,10 @@ dist: receivers: - import: go.opentelemetry.io/collector/receiver/otlpreceiver - core: true + gomod: go.opentelemetry.io/collector v0.36.0 exporters: - import: go.opentelemetry.io/collector/exporter/loggingexporter - core: true + gomod: go.opentelemetry.io/collector v0.36.0 extensions: - import: go.opentelemetry.io/collector/extension/zpagesextension - core: true + gomod: go.opentelemetry.io/collector v0.36.0