Skip to content

Commit

Permalink
[chore] Make internal/featuregates into a module, move confmap fg the…
Browse files Browse the repository at this point in the history
…re (#10532)

#### Description

Create new internal module `internal/featuregates`.

This will be useful for importing feature gates while not creating a
dependency cycle.

I intend to use this for importing `confmap.strictlyTypedInput` in
`otelcol` in a follow up PR.
  • Loading branch information
mx-psi committed Jul 5, 2024
1 parent 5a8d039 commit b127da0
Show file tree
Hide file tree
Showing 52 changed files with 162 additions and 38 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ check-contrib:
-replace go.opentelemetry.io/collector/extension/memorylimiterextension=$(CURDIR)/extension/memorylimiterextension \
-replace go.opentelemetry.io/collector/extension/zpagesextension=$(CURDIR)/extension/zpagesextension \
-replace go.opentelemetry.io/collector/featuregate=$(CURDIR)/featuregate \
-replace go.opentelemetry.io/collector/internal/featuregates=$(CURDIR)/internal/featuregates \
-replace go.opentelemetry.io/collector/otelcol=$(CURDIR)/otelcol \
-replace go.opentelemetry.io/collector/otelcol/otelcoltest=$(CURDIR)/otelcol/otelcoltest \
-replace go.opentelemetry.io/collector/pdata=$(CURDIR)/pdata \
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/internal/builder/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ var (
"/extension/auth",
"/extension/zpagesextension",
"/featuregate",
"/internal/featuregates",
"/processor",
"/processor/batchprocessor",
"/processor/memorylimiterprocessor",
Expand Down
1 change: 1 addition & 0 deletions cmd/builder/test/core.builder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ replaces:
- go.opentelemetry.io/collector/extension/auth => ${WORKSPACE_DIR}/extension/auth
- go.opentelemetry.io/collector/extension/zpagesextension => ${WORKSPACE_DIR}/extension/zpagesextension
- go.opentelemetry.io/collector/featuregate => ${WORKSPACE_DIR}/featuregate
- go.opentelemetry.io/collector/internal/featuregates => ${WORKSPACE_DIR}/internal/featuregates
- go.opentelemetry.io/collector/otelcol => ${WORKSPACE_DIR}/otelcol
- go.opentelemetry.io/collector/otelcol/otelcoltest => ${WORKSPACE_DIR}/otelcol/otelcoltest
- go.opentelemetry.io/collector/pdata => ${WORKSPACE_DIR}/pdata
Expand Down
3 changes: 3 additions & 0 deletions cmd/mdatagen/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ require (
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
go.opentelemetry.io/otel/sdk v1.28.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
Expand Down Expand Up @@ -90,3 +91,5 @@ retract (
)

replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates
1 change: 1 addition & 0 deletions cmd/otelcorecol/builder-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ providers:

replaces:
- go.opentelemetry.io/collector => ../../
- go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates
- go.opentelemetry.io/collector/otelcol => ../../otelcol
- go.opentelemetry.io/collector/component => ../../component
- go.opentelemetry.io/collector/config/configauth => ../../config/configauth
Expand Down
3 changes: 3 additions & 0 deletions cmd/otelcorecol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ require (
go.opentelemetry.io/collector/consumer v0.104.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.104.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.opentelemetry.io/collector/pdata v1.11.0 // indirect
go.opentelemetry.io/collector/semconv v0.104.0 // indirect
go.opentelemetry.io/collector/service v0.104.0 // indirect
Expand Down Expand Up @@ -135,6 +136,8 @@ require (

replace go.opentelemetry.io/collector => ../../

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates

replace go.opentelemetry.io/collector/otelcol => ../../otelcol

replace go.opentelemetry.io/collector/component => ../../component
Expand Down
3 changes: 3 additions & 0 deletions config/configauth/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ require (
go.opentelemetry.io/collector/config/configtelemetry v0.104.0 // indirect
go.opentelemetry.io/collector/confmap v0.104.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/collector/pdata v1.11.0 // indirect
go.opentelemetry.io/otel v1.28.0 // indirect
go.opentelemetry.io/otel/metric v1.28.0 // indirect
Expand Down Expand Up @@ -52,3 +53,5 @@ replace go.opentelemetry.io/collector/extension => ../../extension
replace go.opentelemetry.io/collector/extension/auth => ../../extension/auth

replace go.opentelemetry.io/collector/featuregate => ../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates
3 changes: 3 additions & 0 deletions config/configgrpc/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
go.opentelemetry.io/collector/confmap v0.104.0 // indirect
go.opentelemetry.io/collector/extension v0.104.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.104.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
go.opentelemetry.io/otel/metric v1.28.0 // indirect
Expand All @@ -71,6 +72,8 @@ require (

replace go.opentelemetry.io/collector => ../../

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates

replace go.opentelemetry.io/collector/config/configauth => ../configauth

replace go.opentelemetry.io/collector/config/configcompression => ../configcompression
Expand Down
3 changes: 3 additions & 0 deletions config/confighttp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
go.opentelemetry.io/collector/confmap v0.104.0 // indirect
go.opentelemetry.io/collector/extension v0.104.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/collector/pdata v1.11.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
go.opentelemetry.io/otel/metric v1.28.0 // indirect
Expand All @@ -66,6 +67,8 @@ require (

replace go.opentelemetry.io/collector => ../../

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates

replace go.opentelemetry.io/collector/config/configauth => ../configauth

replace go.opentelemetry.io/collector/config/configcompression => ../configcompression
Expand Down
2 changes: 2 additions & 0 deletions config/internal/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@ replace go.opentelemetry.io/collector/component => ../../component
replace go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata

replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates
4 changes: 2 additions & 2 deletions confmap/confmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
"github.com/knadh/koanf/providers/confmap"
"github.com/knadh/koanf/v2"

"go.opentelemetry.io/collector/confmap/internal"
encoder "go.opentelemetry.io/collector/confmap/internal/mapstructure"
"go.opentelemetry.io/collector/internal/featuregates"
)

const (
Expand Down Expand Up @@ -157,7 +157,7 @@ func decodeConfig(m *Conf, result any, errorUnused bool, skipTopLevelUnmarshaler
ErrorUnused: errorUnused,
Result: result,
TagName: "mapstructure",
WeaklyTypedInput: !internal.StrictlyTypedInputGate.IsEnabled(),
WeaklyTypedInput: !featuregates.StrictlyTypedInputGate.IsEnabled(),
MatchName: caseSensitiveMatchName,
DecodeHook: mapstructure.ComposeDecodeHookFunc(
expandNilStructPointersHookFunc(),
Expand Down
16 changes: 2 additions & 14 deletions confmap/converter/expandconverter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ go 1.21.0

require (
github.com/stretchr/testify v1.9.0
go.opentelemetry.io/collector v0.104.0
go.opentelemetry.io/collector/confmap v0.104.0
go.opentelemetry.io/collector/featuregate v1.11.0
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000
go.uber.org/goleak v1.3.0
go.uber.org/zap v1.27.0
)
Expand All @@ -25,20 +25,8 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace go.opentelemetry.io/collector/component => ../../../component

replace go.opentelemetry.io/collector/confmap => ../..

replace go.opentelemetry.io/collector => ../../..

replace go.opentelemetry.io/collector/config/configtelemetry => ../../../config/configtelemetry

replace go.opentelemetry.io/collector/pdata/testdata => ../../../pdata/testdata

replace go.opentelemetry.io/collector/pdata => ../../../pdata

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/consumer => ../../../consumer

replace go.opentelemetry.io/collector/pdata/pprofile => ../../../pdata/pprofile
replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
4 changes: 2 additions & 2 deletions confmap/expand.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"strconv"
"strings"

"go.opentelemetry.io/collector/confmap/internal"
"go.opentelemetry.io/collector/internal/featuregates"
)

// schemePattern defines the regexp pattern for scheme names.
Expand Down Expand Up @@ -130,7 +130,7 @@ func (mr *Resolver) findAndExpandURI(ctx context.Context, input string) (any, bo
}

var repl string
if internal.StrictlyTypedInputGate.IsEnabled() {
if featuregates.StrictlyTypedInputGate.IsEnabled() {
repl, err = expanded.AsString()
} else {
repl, err = toString(expanded)
Expand Down
5 changes: 4 additions & 1 deletion confmap/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/knadh/koanf/providers/confmap v0.1.0
github.com/knadh/koanf/v2 v2.1.1
github.com/stretchr/testify v1.9.0
go.opentelemetry.io/collector/featuregate v1.11.0
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000
go.uber.org/goleak v1.3.0
go.uber.org/multierr v1.11.0
go.uber.org/zap v1.27.0
Expand All @@ -21,6 +21,7 @@ require (
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
)

retract (
Expand All @@ -29,3 +30,5 @@ retract (
)

replace go.opentelemetry.io/collector/featuregate => ../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../internal/featuregates
3 changes: 3 additions & 0 deletions confmap/internal/e2e/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ require (
go.opentelemetry.io/collector/confmap/provider/envprovider v0.104.0
go.opentelemetry.io/collector/confmap/provider/fileprovider v0.104.0
go.opentelemetry.io/collector/featuregate v1.11.0
go.opentelemetry.io/collector/internal/featuregates v0.104.0
)

require (
Expand All @@ -32,3 +33,5 @@ replace go.opentelemetry.io/collector/confmap/provider/fileprovider => ../../pro
replace go.opentelemetry.io/collector/confmap/provider/envprovider => ../../provider/envprovider

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
8 changes: 4 additions & 4 deletions confmap/internal/e2e/types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import (
"github.com/stretchr/testify/require"

"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/confmap/internal"
"go.opentelemetry.io/collector/confmap/provider/envprovider"
"go.opentelemetry.io/collector/confmap/provider/fileprovider"
"go.opentelemetry.io/collector/featuregate"
"go.opentelemetry.io/collector/internal/featuregates"
)

type TargetField string
Expand Down Expand Up @@ -259,11 +259,11 @@ func TestStrictTypeCasting(t *testing.T) {
},
}

previousValue := internal.StrictlyTypedInputGate.IsEnabled()
err := featuregate.GlobalRegistry().Set(internal.StrictlyTypedInputID, true)
previousValue := featuregates.StrictlyTypedInputGate.IsEnabled()
err := featuregate.GlobalRegistry().Set(featuregates.StrictlyTypedInputID, true)
require.NoError(t, err)
defer func() {
err := featuregate.GlobalRegistry().Set(internal.StrictlyTypedInputID, previousValue)
err := featuregate.GlobalRegistry().Set(featuregates.StrictlyTypedInputID, previousValue)
require.NoError(t, err)
}()

Expand Down
14 changes: 0 additions & 14 deletions confmap/internal/featuregate.go

This file was deleted.

3 changes: 3 additions & 0 deletions confmap/provider/envprovider/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace go.opentelemetry.io/collector/confmap => ../../

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
3 changes: 3 additions & 0 deletions confmap/provider/fileprovider/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand All @@ -27,3 +28,5 @@ require (
replace go.opentelemetry.io/collector/confmap => ../../

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
3 changes: 3 additions & 0 deletions confmap/provider/httpprovider/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand All @@ -27,3 +28,5 @@ require (
replace go.opentelemetry.io/collector/confmap => ../../

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
3 changes: 3 additions & 0 deletions confmap/provider/httpsprovider/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand All @@ -27,3 +28,5 @@ require (
replace go.opentelemetry.io/collector/confmap => ../../

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
3 changes: 3 additions & 0 deletions confmap/provider/yamlprovider/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.104.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand All @@ -27,3 +28,5 @@ require (
replace go.opentelemetry.io/collector/confmap => ../../

replace go.opentelemetry.io/collector/featuregate => ../../../featuregate

replace go.opentelemetry.io/collector/internal/featuregates => ../../../internal/featuregates
3 changes: 3 additions & 0 deletions connector/forwardconnector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ require (
go.opentelemetry.io/collector v0.104.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.104.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/otel v1.28.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
go.opentelemetry.io/otel/metric v1.28.0 // indirect
Expand All @@ -58,6 +59,8 @@ require (

replace go.opentelemetry.io/collector => ../../

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates

replace go.opentelemetry.io/collector/component => ../../component

replace go.opentelemetry.io/collector/connector => ../
Expand Down
2 changes: 2 additions & 0 deletions connector/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,5 @@ replace go.opentelemetry.io/collector/pdata => ../pdata
replace go.opentelemetry.io/collector/pdata/testdata => ../pdata/testdata

replace go.opentelemetry.io/collector/pdata/pprofile => ../pdata/pprofile

replace go.opentelemetry.io/collector/internal/featuregates => ../internal/featuregates
3 changes: 3 additions & 0 deletions exporter/debugexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ require (
go.opentelemetry.io/collector/config/configretry v1.11.0 // indirect
go.opentelemetry.io/collector/extension v0.104.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.104.0 // indirect
go.opentelemetry.io/collector/receiver v0.104.0 // indirect
go.opentelemetry.io/otel v1.28.0 // indirect
Expand All @@ -64,6 +65,8 @@ require (

replace go.opentelemetry.io/collector => ../../

replace go.opentelemetry.io/collector/internal/featuregates => ../../internal/featuregates

replace go.opentelemetry.io/collector/component => ../../component

replace go.opentelemetry.io/collector/confmap => ../../confmap
Expand Down
3 changes: 3 additions & 0 deletions exporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
go.opentelemetry.io/collector/confmap v0.104.0 // indirect
go.opentelemetry.io/collector/featuregate v1.11.0 // indirect
go.opentelemetry.io/collector/internal/featuregates v0.0.0-00010101000000-000000000000 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.104.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 // indirect
golang.org/x/net v0.26.0 // indirect
Expand All @@ -63,6 +64,8 @@ require (

replace go.opentelemetry.io/collector => ../

replace go.opentelemetry.io/collector/internal/featuregates => ../internal/featuregates

replace go.opentelemetry.io/collector/component => ../component

replace go.opentelemetry.io/collector/confmap => ../confmap
Expand Down
Loading

0 comments on commit b127da0

Please sign in to comment.