From d548886872dfbaccc8590594e120ad9b42b30201 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 May 2023 13:36:05 +0200 Subject: [PATCH 1/2] cli: deprecate use of react 16 Signed-off-by: Patrik Oldsberg --- .changeset/tiny-crews-pull.md | 5 ++++ .../cli/src/commands/start/startFrontend.ts | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 .changeset/tiny-crews-pull.md diff --git a/.changeset/tiny-crews-pull.md b/.changeset/tiny-crews-pull.md new file mode 100644 index 0000000000..8d499ac5e6 --- /dev/null +++ b/.changeset/tiny-crews-pull.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Deprecated the use of React 16 diff --git a/packages/cli/src/commands/start/startFrontend.ts b/packages/cli/src/commands/start/startFrontend.ts index e066a40e7a..c582f13a5e 100644 --- a/packages/cli/src/commands/start/startFrontend.ts +++ b/packages/cli/src/commands/start/startFrontend.ts @@ -32,6 +32,30 @@ interface StartAppOptions { configPaths: string[]; } +function checkReactVersion() { + try { + // Make sure we're looking at the root of the target repo + const reactPkgPath = require.resolve('react/package.json', { + paths: [paths.targetRoot], + }); + const reactPkg = require(reactPkgPath); + if (reactPkg.version.startsWith('16.')) { + console.log( + chalk.yellow( + ` +⚠️ ⚠️ +⚠️ You are using React version 16, which is deprecated for use in Backstage. ⚠️ +⚠️ Please upgrade to at React 17 by updating your packages/app dependencies. ⚠️ +⚠️ ⚠️ +`, + ), + ); + } + } catch { + /* ignored */ + } +} + export async function startFrontend(options: StartAppOptions) { if (options.verifyVersions) { const lockfile = await Lockfile.load(paths.resolveTargetRoot('yarn.lock')); @@ -65,6 +89,8 @@ export async function startFrontend(options: StartAppOptions) { } } + checkReactVersion(); + const { name } = await fs.readJson(paths.resolveTarget('package.json')); const config = await loadCliConfig({ args: options.configPaths, From 95b1df31ea5d37c6bf952e3a35d4cb824a948875 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 13 May 2023 19:43:41 +0200 Subject: [PATCH 2/2] Update packages/cli/src/commands/start/startFrontend.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/start/startFrontend.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/start/startFrontend.ts b/packages/cli/src/commands/start/startFrontend.ts index c582f13a5e..00f7818b41 100644 --- a/packages/cli/src/commands/start/startFrontend.ts +++ b/packages/cli/src/commands/start/startFrontend.ts @@ -45,7 +45,7 @@ function checkReactVersion() { ` ⚠️ ⚠️ ⚠️ You are using React version 16, which is deprecated for use in Backstage. ⚠️ -⚠️ Please upgrade to at React 17 by updating your packages/app dependencies. ⚠️ +⚠️ Please upgrade to React 17 by updating your packages/app dependencies. ⚠️ ⚠️ ⚠️ `, ),