diff --git a/src/test/validation.test.ts b/src/test/validation.test.ts index 4af57332..55c0618d 100644 --- a/src/test/validation.test.ts +++ b/src/test/validation.test.ts @@ -115,6 +115,7 @@ describe('validateVSCodeTypesCompatibility', () => { validateVSCodeTypesCompatibility('1.30.0', '1.30.0'); validateVSCodeTypesCompatibility('1.30.0', '1.20.0'); validateVSCodeTypesCompatibility('1.46.0', '1.45.1'); + validateVSCodeTypesCompatibility('1.45.0', '1.45.1'); assert.throws(() => validateVSCodeTypesCompatibility('1.30.0', '1.40.0')); assert.throws(() => validateVSCodeTypesCompatibility('1.30.0', '^1.40.0')); diff --git a/src/validation.ts b/src/validation.ts index 98244019..483bd922 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -49,6 +49,9 @@ export function validateEngineCompatibility(version: string): void { /** * User shouldn't use a newer version of @types/vscode than the one specified in engines.vscode + * + * NOTE: This is enforced at the major and minor level. Since we don't have control over the patch + * version (it's auto-incremented by DefinitelyTyped), we don't look at the patch version at all. */ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVersion: string): void { if (engineVersion === '*') { @@ -78,14 +81,14 @@ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVers // For all `x`, use smallest version for comparison plainEngineVersion = plainEngineVersion.replace(/x/g, '0'); - const [typeMajor, typeMinor, typePatch] = plainTypeVersion.split('.').map(x => { + const [typeMajor, typeMinor] = plainTypeVersion.split('.').map(x => { try { return parseInt(x); } catch (err) { return 0; } }); - const [engineMajor, engineMinor, enginePatch] = plainEngineVersion.split('.').map(x => { + const [engineMajor, engineMinor] = plainEngineVersion.split('.').map(x => { try { return parseInt(x); } catch (err) { @@ -103,7 +106,4 @@ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVers if (typeMajor === engineMajor && typeMinor > engineMinor) { throw error; } - if (typeMajor === engineMajor && typeMinor === engineMinor && typePatch > enginePatch) { - throw error; - } }