Skip to content

Commit a4220da

Browse files
committed
chore(build): incorporate peerDependency version bump into main version script
Previously it intra-monorepo version bumps were done in postversion, which meant they were not included as part of the release tag, they were after it, which is not correct
1 parent fa2444a commit a4220da

File tree

3 files changed

+47
-63
lines changed

3 files changed

+47
-63
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"private": true,
44
"scripts": {
55
"version": "node ./scripts/version.js",
6-
"postversion": "node ./scripts/postversion.js",
76
"prepare": "yarn run lerna:link && lerna run prepare --parallel",
87
"build:all:clean": "lerna run build:clean",
98
"build:all:build": "lerna run build",

scripts/postversion.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

scripts/version.js

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
const { sep } = require('path');
22
const { execSync } = require('child_process');
33
const { readFileSync, writeFileSync } = require('fs');
4+
const { exit } = require('process');
45

5-
const packages = JSON.parse(execSync('lerna ls --json').toString('utf-8'));
6+
const packages = JSON.parse(execSync('npx lerna ls --json').toString('utf-8'));
7+
8+
const firebaseAppPackageName = '@react-native-firebase/app';
9+
const lernaVersion = JSON.parse(readFileSync('lerna.json')).version;
10+
console.log(`Found lerna version: ${lernaVersion}`);
611

712
packages.forEach(package => {
813
const { location } = package;
@@ -24,5 +29,45 @@ packages.forEach(package => {
2429
// ---------------------------
2530
// Format Changelog
2631
// ---------------------------
27-
execSync(`prettier --write ${changelogPath}`);
32+
execSync(`npx prettier --write ${changelogPath}`);
33+
34+
// ---------------------------
35+
// Update Peer Dependencies
36+
// ---------------------------
37+
const packageJsonPath = `${location}${sep}/package.json`;
38+
const packageJsonContents = JSON.parse(readFileSync(packageJsonPath).toString('utf-8'));
39+
40+
// Make sure that the app package has the correct version, it has been failing periodically
41+
if (!packageJsonContents.version === lernaVersion) {
42+
console.log(
43+
`app package version ${packageJsonContents.version} but should be ${lernaVersion}? Exiting.`,
44+
);
45+
exit(1);
46+
}
47+
// console.log(`Examining package ${package.name} for local peerDepencenies...`);
48+
49+
if (!packageJsonContents.peerDependencies) {
50+
return;
51+
}
52+
53+
packages.forEach(possiblePeerDependency => {
54+
// console.log(` checking for cross-dependency on ${possiblePeerDependency.name}`);
55+
if (!packageJsonContents.peerDependencies[possiblePeerDependency.name]) {
56+
return;
57+
}
58+
if (packageJsonContents.peerDependencies[possiblePeerDependency.name] === lernaVersion) {
59+
return;
60+
}
61+
62+
packageJsonContents.peerDependencies[possiblePeerDependency.name] = lernaVersion;
63+
64+
writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, null, 2) + '\n');
65+
66+
console.log(
67+
`Updated '${possiblePeerDependency.name}' peer dependency on package`,
68+
packageJsonContents.name,
69+
'to',
70+
packageJsonContents.peerDependencies[possiblePeerDependency.name],
71+
);
72+
});
2873
});

0 commit comments

Comments
 (0)