From 1e624ca62732c61b9658e4e0e73962d8c9b7e388 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Sun, 24 Nov 2024 22:25:36 +0000 Subject: [PATCH 1/2] Restrict all instances of @types/express to v4 to match express itself Signed-off-by: MT Lewis --- .changeset/odd-apples-explain.md | 8 ++++++++ plugins/auth-node/package.json | 2 +- plugins/devtools-backend/package.json | 2 +- plugins/permission-backend/package.json | 2 +- plugins/signals-backend/package.json | 2 +- yarn.lock | 8 ++++---- 6 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .changeset/odd-apples-explain.md diff --git a/.changeset/odd-apples-explain.md b/.changeset/odd-apples-explain.md new file mode 100644 index 0000000000..324d98b0f6 --- /dev/null +++ b/.changeset/odd-apples-explain.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-auth-node': patch +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-devtools-backend': patch +'@backstage/plugin-signals-backend': patch +--- + +Restrict `@types/express` version range from `*` to `^4.17.6`. diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index ba8d0ad83b..a1384e33da 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -44,7 +44,7 @@ "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/types": "workspace:^", - "@types/express": "*", + "@types/express": "^4.17.6", "@types/passport": "^1.0.3", "express": "^4.17.1", "jose": "^5.0.0", diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index a87ea14719..b31250b6d3 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -49,7 +49,7 @@ "@backstage/plugin-permission-node": "workspace:^", "@backstage/types": "workspace:^", "@manypkg/get-packages": "^1.1.3", - "@types/express": "*", + "@types/express": "^4.17.6", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "^3.0.0", "express": "^4.18.1", diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index b5e3f84a90..4d1d0fbe7f 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -58,7 +58,7 @@ "@backstage/plugin-auth-node": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", - "@types/express": "*", + "@types/express": "^4.17.6", "dataloader": "^2.0.0", "express": "^4.17.1", "express-promise-router": "^4.1.0", diff --git a/plugins/signals-backend/package.json b/plugins/signals-backend/package.json index a35a243522..6d6a8ebfed 100644 --- a/plugins/signals-backend/package.json +++ b/plugins/signals-backend/package.json @@ -44,7 +44,7 @@ "@backstage/plugin-events-node": "workspace:^", "@backstage/plugin-signals-node": "workspace:^", "@backstage/types": "workspace:^", - "@types/express": "*", + "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", "http-proxy-middleware": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 98cead73b1..d9f2fd4975 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5319,7 +5319,7 @@ __metadata: "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" "@backstage/types": "workspace:^" - "@types/express": "*" + "@types/express": ^4.17.6 "@types/passport": ^1.0.3 cookie-parser: ^1.4.6 express: ^4.17.1 @@ -6158,7 +6158,7 @@ __metadata: "@backstage/plugin-permission-node": "workspace:^" "@backstage/types": "workspace:^" "@manypkg/get-packages": ^1.1.3 - "@types/express": "*" + "@types/express": ^4.17.6 "@types/ping": ^0.4.1 "@types/supertest": ^2.0.8 "@types/yarnpkg__lockfile": ^1.1.4 @@ -6896,7 +6896,7 @@ __metadata: "@backstage/plugin-auth-node": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" "@backstage/plugin-permission-node": "workspace:^" - "@types/express": "*" + "@types/express": ^4.17.6 "@types/lodash": ^4.14.151 "@types/supertest": ^2.0.8 dataloader: ^2.0.0 @@ -7862,7 +7862,7 @@ __metadata: "@backstage/plugin-events-node": "workspace:^" "@backstage/plugin-signals-node": "workspace:^" "@backstage/types": "workspace:^" - "@types/express": "*" + "@types/express": ^4.17.6 "@types/supertest": ^2.0.8 "@types/ws": ^8.5.10 express: ^4.17.1 From 7dcff851e97d606381958d7a399fd1987fa0ee78 Mon Sep 17 00:00:00 2001 From: MT Lewis Date: Mon, 25 Nov 2024 12:18:59 +0000 Subject: [PATCH 2/2] cli: stop ignoring version ranges when templating dependencies on @types packages Signed-off-by: MT Lewis --- .changeset/cold-icons-worry.md | 6 ++++++ packages/cli/src/lib/version.test.ts | 5 ++++- packages/cli/src/lib/version.ts | 6 ------ 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 .changeset/cold-icons-worry.md diff --git a/.changeset/cold-icons-worry.md b/.changeset/cold-icons-worry.md new file mode 100644 index 0000000000..4e0b461b24 --- /dev/null +++ b/.changeset/cold-icons-worry.md @@ -0,0 +1,6 @@ +--- +'@backstage/cli': patch +--- + +Remove special-casing for `@types` packages when generating dependency entries +during templating diff --git a/packages/cli/src/lib/version.test.ts b/packages/cli/src/lib/version.test.ts index 6b1aa391d5..744874d7e9 100644 --- a/packages/cli/src/lib/version.test.ts +++ b/packages/cli/src/lib/version.test.ts @@ -66,6 +66,10 @@ describe('createPackageVersionProvider', () => { expect(provider('c', '0.3.0-rc1')).toBe('0.3.0-rc1'); expect(provider('c', '0.3.0')).toBe('^0.3.0'); expect(provider('c', '0.3.6')).toBe('^0.3.4'); + + // No special handling for @types packages. + expect(provider('@types/t', '1.4.2')).toBe('^1.2.3'); + const cliVersion = packageVersions['@backstage/cli']; expect(provider('@backstage/cli')).toBe( // If we're currently in pre-release we expect that to be picked instead @@ -74,6 +78,5 @@ describe('createPackageVersionProvider', () => { expect(provider('@backstage/core-plugin-api')).toBe( `^${corePluginApiPkg.version}`, ); - expect(provider('@types/t', '1.4.2')).toBe('*'); }); }); diff --git a/packages/cli/src/lib/version.ts b/packages/cli/src/lib/version.ts index 51826ef681..f267dadfeb 100644 --- a/packages/cli/src/lib/version.ts +++ b/packages/cli/src/lib/version.ts @@ -90,12 +90,6 @@ export function createPackageVersionProvider(lockfile?: Lockfile) { } const lockfileEntries = lockfile?.get(name); - if ( - name.startsWith('@types/') && - lockfileEntries?.some(entry => entry.range === '*') - ) { - return '*'; - } for (const specifier of ['^', '~', '*']) { const range = `workspace:${specifier}`;