From d5f254f8e462c403cdf4a556bf7317a04b4fb1e8 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Oct 2024 11:27:54 +0200 Subject: [PATCH 1/2] chore: check that it's not already a bound version Signed-off-by: blam --- packages/yarn-plugin/src/resolver/BackstageResolver.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/yarn-plugin/src/resolver/BackstageResolver.ts b/packages/yarn-plugin/src/resolver/BackstageResolver.ts index 82e6c013a3..01ff66f439 100644 --- a/packages/yarn-plugin/src/resolver/BackstageResolver.ts +++ b/packages/yarn-plugin/src/resolver/BackstageResolver.ts @@ -44,7 +44,10 @@ export class BackstageResolver implements Resolver { * the version in backstage.json changes. */ bindDescriptor(descriptor: Descriptor): Descriptor { - if (descriptor.range !== 'backstage:^') { + if ( + descriptor.range !== 'backstage:^' && + !descriptor.range.startsWith('backstage:') + ) { throw new Error( `Unsupported version range "${ descriptor.range From aba538db72473621bbdd216089bf43a37112a817 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Oct 2024 11:57:32 +0200 Subject: [PATCH 2/2] chore: support fixed versions of backstage version in resolver Signed-off-by: blam --- .../src/resolver/BackstageResolver.test.ts | 11 ++++++++--- .../src/resolver/BackstageResolver.ts | 19 +++++-------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/packages/yarn-plugin/src/resolver/BackstageResolver.test.ts b/packages/yarn-plugin/src/resolver/BackstageResolver.test.ts index 9ac3401041..d7d9126923 100644 --- a/packages/yarn-plugin/src/resolver/BackstageResolver.test.ts +++ b/packages/yarn-plugin/src/resolver/BackstageResolver.test.ts @@ -114,15 +114,20 @@ describe('BackstageResolver', () => { }); describe('with range "backstage:1.23.45"', () => { - it('throws an error', () => { - expect(() => + it('returns the correct descriptor', () => { + expect( backstageResolver.bindDescriptor( structUtils.makeDescriptor( structUtils.makeIdent('backstage', 'core'), 'backstage:1.23.45', ), ), - ).toThrow(/unsupported version range/i); + ).toEqual( + structUtils.makeDescriptor( + structUtils.makeIdent('backstage', 'core'), + 'backstage:1.23.45', + ), + ); }); }); }); diff --git a/packages/yarn-plugin/src/resolver/BackstageResolver.ts b/packages/yarn-plugin/src/resolver/BackstageResolver.ts index 01ff66f439..7e794f5693 100644 --- a/packages/yarn-plugin/src/resolver/BackstageResolver.ts +++ b/packages/yarn-plugin/src/resolver/BackstageResolver.ts @@ -44,23 +44,14 @@ export class BackstageResolver implements Resolver { * the version in backstage.json changes. */ bindDescriptor(descriptor: Descriptor): Descriptor { - if ( - descriptor.range !== 'backstage:^' && - !descriptor.range.startsWith('backstage:') - ) { - throw new Error( - `Unsupported version range "${ - descriptor.range - }" for package ${structUtils.stringifyIdent( - descriptor, - )}. The backstage protocol only supports the range "backstage:^".`, + if (descriptor.range === 'backstage:^') { + return structUtils.makeDescriptor( + descriptor, + `${PROTOCOL}${getCurrentBackstageVersion()}`, ); } - return structUtils.makeDescriptor( - descriptor, - `${PROTOCOL}${getCurrentBackstageVersion()}`, - ); + return descriptor; } /**