Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions scripts/nx-release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,8 @@ const VALID_AUTHORS_FOR_LATEST = [
windowsHide: false,
});

hackFixForDevkitPeerDependencies();

// Run with dynamic output-style so that we have more minimal logs by default but still always see errors
let publishCommand = `pnpm nx release publish --registry=${getRegistry()} --tag=${distTag} --output-style=dynamic --parallel=8`;
if (options.dryRun) {
Expand Down Expand Up @@ -511,3 +513,26 @@ function determineDistTag(

return distTag;
}

//TODO(@Coly010): Remove this after fixing up the release peer dep handling
function hackFixForDevkitPeerDependencies() {
const { readFileSync, writeFileSync } = require('fs');
const devkitPackageJson = JSON.parse(
readFileSync('./dist/packages/devkit/package.json', 'utf-8')
);

const beforeVersion = devkitPackageJson.peerDependencies['nx'];
if (!beforeVersion.includes('<')) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding a null check to prevent potential runtime errors. If devkitPackageJson.peerDependencies or devkitPackageJson.peerDependencies['nx'] is undefined, the current code will throw a TypeError.

Suggested change:

if (devkitPackageJson.peerDependencies?.nx && !devkitPackageJson.peerDependencies.nx.includes('<')) {

This ensures the code gracefully handles cases where the peer dependency structure might not exist as expected.

Suggested change
if (!beforeVersion.includes('<')) {
if (devkitPackageJson.peerDependencies?.nx && !devkitPackageJson.peerDependencies.nx.includes('<')) {

Spotted by Diamond

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

console.log(
'@nx/devkit peer dependencies range is broken - needs release fix. Patching it to avoid broken publishes.'
);
const majorVersion = major(beforeVersion);
devkitPackageJson.peerDependencies['nx'] = `>= ${majorVersion - 1} <= ${
majorVersion + 1
}`;
Comment thread
AgentEnder marked this conversation as resolved.
Outdated
Comment thread
AgentEnder marked this conversation as resolved.
Outdated
writeFileSync(
'./dist/packages/devkit/package.json',
JSON.stringify(devkitPackageJson, null, 2)
);
}
}
Loading