From 03b9ce56b51ee59025d1b7b449ca61143c25ea6b Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 13 Sep 2023 14:10:41 +0200 Subject: [PATCH] deprecate logs package, but disable linter (for transitioning) Deprecate the pacakge, but suppress linting errors for now. This is to allow backporting these changes to release branches, which may still need to transition. Signed-off-by: Sebastiaan van Stijn --- .golangci.yml | 9 +++++++ log/context_deprecated.go | 42 +++++++++++++++++++++++++++++++ log/logtest/context_deprecated.go | 2 ++ 3 files changed, 53 insertions(+) diff --git a/.golangci.yml b/.golangci.yml index fec369f6d..4848dc9fe 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -51,6 +51,15 @@ issues: - revive text: "redefines-builtin-id" + # FIXME temporarily suppress deprecation warnings for the logs package. See https://github.com/containerd/containerd/pull/9086 + - text: "SA1019: log\\.(G|L|Fields|Entry|RFC3339NanoFixed|Level|TraceLevel|DebugLevel|InfoLevel|WarnLevel|ErrorLevel|FatalLevel|PanicLevel|SetLevel|GetLevel|OutputFormat|TextFormat|JSONFormat|SetFormat|WithLogger|GetLogger)" + linters: + - staticcheck + - text: "SA1019: logtest\\.WithT" + linters: + - staticcheck + + linters-settings: gosec: # The following issues surfaced when `gosec` linter diff --git a/log/context_deprecated.go b/log/context_deprecated.go index 08bf2b748..9e9e8b491 100644 --- a/log/context_deprecated.go +++ b/log/context_deprecated.go @@ -23,85 +23,127 @@ import ( ) // G is a shorthand for [GetLogger]. +// +// Deprecated: use [log.G]. var G = log.G // L is an alias for the standard logger. +// +// Deprecated: use [log.L]. var L = log.L // Fields type to pass to "WithFields". +// +// Deprecated: use [log.Fields]. type Fields = log.Fields // Entry is a logging entry. +// +// Deprecated: use [log.Entry]. type Entry = log.Entry // RFC3339NanoFixed is [time.RFC3339Nano] with nanoseconds padded using // zeros to ensure the formatted time is always the same number of // characters. +// +// Deprecated: use [log.RFC3339NanoFixed]. const RFC3339NanoFixed = log.RFC3339NanoFixed // Level is a logging level. +// +// Deprecated: use [log.Level]. type Level = log.Level // Supported log levels. const ( // TraceLevel level. + // + // Deprecated: use [log.TraceLevel]. TraceLevel Level = log.TraceLevel // DebugLevel level. + // + // Deprecated: use [log.DebugLevel]. DebugLevel Level = log.DebugLevel // InfoLevel level. + // + // Deprecated: use [log.InfoLevel]. InfoLevel Level = log.InfoLevel // WarnLevel level. + // + // Deprecated: use [log.WarnLevel]. WarnLevel Level = log.WarnLevel // ErrorLevel level + // + // Deprecated: use [log.ErrorLevel]. ErrorLevel Level = log.ErrorLevel // FatalLevel level. + // + // Deprecated: use [log.FatalLevel]. FatalLevel Level = log.FatalLevel // PanicLevel level. + // + // Deprecated: use [log.PanicLevel]. PanicLevel Level = log.PanicLevel ) // SetLevel sets log level globally. It returns an error if the given // level is not supported. +// +// Deprecated: use [log.SetLevel]. func SetLevel(level string) error { return log.SetLevel(level) } // GetLevel returns the current log level. +// +// Deprecated: use [log.GetLevel]. func GetLevel() log.Level { return log.GetLevel() } // OutputFormat specifies a log output format. +// +// Deprecated: use [log.OutputFormat]. type OutputFormat = log.OutputFormat // Supported log output formats. const ( // TextFormat represents the text logging format. + // + // Deprecated: use [log.TextFormat]. TextFormat log.OutputFormat = "text" // JSONFormat represents the JSON logging format. + // + // Deprecated: use [log.JSONFormat]. JSONFormat log.OutputFormat = "json" ) // SetFormat sets the log output format. +// +// Deprecated: use [log.SetFormat]. func SetFormat(format OutputFormat) error { return log.SetFormat(format) } // WithLogger returns a new context with the provided logger. Use in // combination with logger.WithField(s) for great effect. +// +// Deprecated: use [log.WithLogger]. func WithLogger(ctx context.Context, logger *log.Entry) context.Context { return log.WithLogger(ctx, logger) } // GetLogger retrieves the current logger from the context. If no logger is // available, the default logger is returned. +// +// Deprecated: use [log.GetLogger]. func GetLogger(ctx context.Context) *log.Entry { return log.GetLogger(ctx) } diff --git a/log/logtest/context_deprecated.go b/log/logtest/context_deprecated.go index 80e5724c7..10bbea611 100644 --- a/log/logtest/context_deprecated.go +++ b/log/logtest/context_deprecated.go @@ -26,6 +26,8 @@ import ( // WithT adds a logging hook for the given test // Changes debug level to debug, clears output, and // outputs all log messages as test logs. +// +// Deprecated: use [logtest.WithT]. func WithT(ctx context.Context, t testing.TB) context.Context { return logtest.WithT(ctx, t) }