From 819754e57e175de048b0d91f09286205afbe4f02 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Thu, 16 May 2024 09:18:24 +0200 Subject: [PATCH] refactor: start deprecating legacy service helpers Signed-off-by: Camila Belo --- .../implementations/cache/cacheServiceFactory.ts | 5 +++-- packages/backend-common/api-report.md | 10 +++++----- packages/backend-common/src/cache/CacheManager.ts | 2 ++ .../backend-common/src/logging/createRootLogger.ts | 5 +++++ packages/backend-common/src/logging/globalLoggers.ts | 8 ++++++++ packages/backend-tasks/api-report.md | 2 +- packages/backend-tasks/src/tasks/TaskScheduler.ts | 4 ++++ 7 files changed, 28 insertions(+), 8 deletions(-) diff --git a/packages/backend-app-api/src/services/implementations/cache/cacheServiceFactory.ts b/packages/backend-app-api/src/services/implementations/cache/cacheServiceFactory.ts index b91356a13a..cb4e04d574 100644 --- a/packages/backend-app-api/src/services/implementations/cache/cacheServiceFactory.ts +++ b/packages/backend-app-api/src/services/implementations/cache/cacheServiceFactory.ts @@ -25,10 +25,11 @@ export const cacheServiceFactory = createServiceFactory({ service: coreServices.cache, deps: { config: coreServices.rootConfig, + logger: coreServices.rootLogger, plugin: coreServices.pluginMetadata, }, - async createRootContext({ config }) { - return CacheManager.fromConfig(config); + async createRootContext({ config, logger }) { + return CacheManager.fromConfig(config, { logger }); }, async factory({ plugin }, manager) { return manager.forPlugin(plugin.getId()).getClient(); diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 42df32dc1d..650f50a159 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -218,7 +218,7 @@ export function cacheToPluginCacheManager( cache: CacheClient, ): PluginCacheManager; -// @public +// @public @deprecated export const coloredFormat: winston.Logform.Format; // @public @@ -259,7 +259,7 @@ export function createLegacyAuthAdapters< : {}), >(options: TOptions): TAdapters; -// @public +// @public @deprecated export function createRootLogger( options?: winston.LoggerOptions, env?: NodeJS.ProcessEnv, @@ -366,10 +366,10 @@ export class GerritUrlReader implements UrlReader { toString(): string; } -// @public +// @public @deprecated export function getRootLogger(): winston.Logger; -// @public +// @public @deprecated export function getVoidLogger(): winston.Logger; // @public @deprecated @@ -815,7 +815,7 @@ export type ServiceBuilder = { start(): Promise; }; -// @public +// @public @deprecated export function setRootLogger(newLogger: winston.Logger): void; // @public @deprecated diff --git a/packages/backend-common/src/cache/CacheManager.ts b/packages/backend-common/src/cache/CacheManager.ts index ec8a1d93f7..8af742be8c 100644 --- a/packages/backend-common/src/cache/CacheManager.ts +++ b/packages/backend-common/src/cache/CacheManager.ts @@ -72,6 +72,8 @@ export class CacheManager { config.getOptionalString('backend.cache.connection') || ''; const useRedisSets = config.getOptionalBoolean('backend.cache.useRedisSets') ?? true; + + // TODO: Make logger required and remove the default logger after moving this class to the `backstage-defaults`package const logger = (options.logger || getRootLogger()).child({ type: 'cacheManager', }); diff --git a/packages/backend-common/src/logging/createRootLogger.ts b/packages/backend-common/src/logging/createRootLogger.ts index f9a3ed4ba0..16554750ef 100644 --- a/packages/backend-common/src/logging/createRootLogger.ts +++ b/packages/backend-common/src/logging/createRootLogger.ts @@ -59,6 +59,8 @@ const colorizer = format.colorize(); * Creates a pretty printed winston log formatter. * * @public + * @deprecated As we are going to deprecate the legacy backend, this formatter utility will be removed in the future. + * If you need to format logs in the new system, please use the `WinstonLogger.colorFormat()` from `@backstage/backend-app-api` instead. */ export const coloredFormat = format.combine( format.timestamp(), @@ -96,6 +98,9 @@ export const coloredFormat = format.combine( * instances passed to plugins etc, in a given backend. * * @public + * @deprecated As we are going to deprecate the legacy backend, this function will be removed in the future. + * If you need to create the root logger in the new system, please check out this documentation: + * https://backstage.io/docs/backend-system/core-services/logger */ export function createRootLogger( options: winston.LoggerOptions = {}, diff --git a/packages/backend-common/src/logging/globalLoggers.ts b/packages/backend-common/src/logging/globalLoggers.ts index 8b473db211..cbd5279d29 100644 --- a/packages/backend-common/src/logging/globalLoggers.ts +++ b/packages/backend-common/src/logging/globalLoggers.ts @@ -21,6 +21,8 @@ import { createRootLogger } from './createRootLogger'; * A logger that just throws away all messages. * * @public + * @deprecated As we are going to deprecate the legacy backend, this function will be removed in the future. + * If you need to mock the root logger in the new system, please use `mockServices.logger.mock()` from `@backstage/test-utils` instead. */ export function getVoidLogger(): winston.Logger { return winston.createLogger({ @@ -34,6 +36,9 @@ let rootLogger: winston.Logger; * Gets the current root logger. * * @public + * @deprecated As we are going to deprecate the legacy backend, this function will be removed in the future. + * If you need to get the root logger in the new system, please check out this documentation: + * https://backstage.io/docs/backend-system/core-services/logger */ export function getRootLogger(): winston.Logger { if (!rootLogger) { @@ -55,6 +60,9 @@ export function getRootLogger(): winston.Logger { * behavior, you would instead call {@link createRootLogger}. * * @public + * @deprecated As we are going to deprecate the legacy backend, this function will be removed in the future. + * If you need to set the root logger in the new system, please check out this documentation: + * https://backstage.io/docs/backend-system/core-services/logger */ export function setRootLogger(newLogger: winston.Logger) { rootLogger = newLogger; diff --git a/packages/backend-tasks/api-report.md b/packages/backend-tasks/api-report.md index 00ef28c9ce..4bfda20c36 100644 --- a/packages/backend-tasks/api-report.md +++ b/packages/backend-tasks/api-report.md @@ -94,7 +94,7 @@ export class TaskScheduler { databaseManager: PluginDatabaseManager; logger: LoggerService; }): PluginTaskScheduler; - // (undocumented) + // @deprecated (undocumented) static fromConfig( config: Config, options?: { diff --git a/packages/backend-tasks/src/tasks/TaskScheduler.ts b/packages/backend-tasks/src/tasks/TaskScheduler.ts index 672c52cc10..cc589ea949 100644 --- a/packages/backend-tasks/src/tasks/TaskScheduler.ts +++ b/packages/backend-tasks/src/tasks/TaskScheduler.ts @@ -35,6 +35,10 @@ import { LoggerService } from '@backstage/backend-plugin-api'; * @public */ export class TaskScheduler { + /** + * @deprecated + * It is only used by the legacy backend system, and should not be used in the new backend system. + */ static fromConfig( config: Config, options?: {