diff --git a/src/Project.js b/src/Project.js index 53a0abdd..9ad4ae67 100644 --- a/src/Project.js +++ b/src/Project.js @@ -106,6 +106,7 @@ export default class Project { for (let pkg of queue) { let name = pkg.config.getName(); + let legacyName = `${name}-legacy`; let dependencies = []; let allDependencies = pkg.getAllDependencies(excludedDependencyTypes); @@ -116,6 +117,13 @@ export default class Project { let actual = depVersion; let expected = match.config.getVersion(); + if ( + match.config.getName() === '@atlaskit/editor-core' && + name === 'react-intl' + ) { + debugger; + console.log(expected); + } // Workspace dependencies only need to semver satisfy, not '===' if (!semver.satisfies(expected, depVersion)) { valid = false; diff --git a/src/utils/messages.js b/src/utils/messages.js index fd69caa7..16d0d479 100644 --- a/src/utils/messages.js +++ b/src/utils/messages.js @@ -62,6 +62,7 @@ export function depMustMatchProject( expected: string, actual: string ): Message { + debugger; return `Package ${normalPkg(pkgName)} dependency ${normalPkg( depName )} must match version in project dependencies. ${goodVer( diff --git a/src/utils/symlinkPackageDependencies.js b/src/utils/symlinkPackageDependencies.js index 6a014662..82ab3a39 100644 --- a/src/utils/symlinkPackageDependencies.js +++ b/src/utils/symlinkPackageDependencies.js @@ -33,7 +33,11 @@ export default async function symlinkPackageDependencies( directoriesToCreate.push(pkg.nodeModules, pkg.nodeModulesBin); for (let depName of dependencies) { + const legacyDepname = `${depName}-legacy`; let versionInProject = project.pkg.getDependencyVersionRange(depName); + let legacyDepInProject = ( + project.pkg.getDependencyVersionRange(legacyDepname) || '' + ).split('@')[1]; let versionInPkg = pkg.getDependencyVersionRange(depName); // If dependency is internal we can ignore it (we symlink below) @@ -60,7 +64,10 @@ export default async function symlinkPackageDependencies( continue; } - if (versionInProject !== versionInPkg) { + if ( + versionInProject !== versionInPkg && + legacyDepInProject !== versionInPkg + ) { valid = false; logger.error( messages.depMustMatchProject( @@ -72,8 +79,12 @@ export default async function symlinkPackageDependencies( ); continue; } - let src = path.join(project.pkg.nodeModules, depName); + + if (legacyDepInProject === versionInPkg) { + src = path.join(project.pkg.nodeModules, legacyDepname); + } + let dest = path.join(pkg.nodeModules, depName); symlinksToCreate.push({ src, dest, type: 'junction' });