@@ -47,23 +47,29 @@ async function commitChanges(repoPackages, pkg) {
47
47
}
48
48
}
49
49
50
- function updatePackageVersion ( repoPackages , pkg , buildId , catalogs ) {
50
+ function updatePackageVersion ( repoPackages , pkg , buildId , catalogs , logPrefix = "\t" ) {
51
51
const currentVersion = repoPackages [ pkg ] . json . version ;
52
52
const parsedVersion = semver . parse ( currentVersion ) ;
53
53
repoPackages [ pkg ] . newVer =
54
54
`${ parsedVersion . major } .${ parsedVersion . minor } .${ parsedVersion . patch } -alpha.${ buildId } ` ;
55
- console . log ( `version updated for ${ pkg } ` ) ;
55
+ console . log ( `${ logPrefix } version updated: from ${ currentVersion } to ${ repoPackages [ pkg ] . newVer } ` ) ;
56
56
for ( const p of Object . keys ( repoPackages ) ) {
57
- repoPackages = updateOtherProjectDependencySections ( repoPackages , p , pkg , catalogs ) ;
57
+ console . log ( `${ logPrefix } update "${ pkg } " version in dependencies of "${ p } "` ) ;
58
+ repoPackages = updateOtherProjectDependencySections (
59
+ repoPackages ,
60
+ p ,
61
+ pkg ,
62
+ catalogs ,
63
+ `${ logPrefix } \t` ,
64
+ ) ;
58
65
}
59
66
return repoPackages ;
60
67
}
61
68
62
- function updateDependencySection ( repoPackages , dependencySection , buildId , catalogs ) {
63
- //console.log(dependencySection);
69
+ function updateDependencySection ( repoPackages , dependencySection , buildId , catalogs , logPrefix ) {
64
70
if ( dependencySection ) {
65
71
for ( const [ depName , depVersionRange ] of Object . entries ( dependencySection ) ) {
66
- console . log ( `checking ${ depName } :${ depVersionRange } ...` ) ;
72
+ console . log ( `${ logPrefix } checking ${ depName } :${ depVersionRange } ...` ) ;
67
73
68
74
// If the dependency isn't part of the workspace, skip it
69
75
if ( ! repoPackages [ depName ] ) {
@@ -73,59 +79,71 @@ function updateDependencySection(repoPackages, dependencySection, buildId, catal
73
79
// Compare the dependency version range with the package's current version
74
80
const packageVersion = repoPackages [ depName ] . json . version ;
75
81
76
- console . log ( `version in package's dep = ${ depVersionRange } ` ) ; //^1.0.0
77
- console . log ( `dep's version = ${ packageVersion } ` ) ; //1.0.0
82
+ console . log ( `${ logPrefix } version in package's dep = ${ depVersionRange } ` ) ; //^1.0.0
83
+ console . log ( `${ logPrefix } dep's version = ${ packageVersion } ` ) ; //1.0.0
78
84
if ( depVersionRange === "workspace:^" ) {
85
+ console . log ( `${ logPrefix } skipping workspace: dependency` ) ;
79
86
continue ;
80
87
} else if ( depVersionRange . startsWith ( "catalog:" ) ) {
81
- const parsedPackageVersion = semver . parse ( packageVersion ) ;
82
88
const resolvedVersion = resolveFromCatalog ( catalogs , {
83
89
alias : depName ,
84
90
bareSpecifier : depVersionRange ,
85
91
} ) ;
86
92
if ( resolvedVersion . type === "found" ) {
87
- const parsedDepMinVersion = semver . minVersion ( resolvedVersion . resolution . specifier ) ;
88
- if ( semver . eq ( parsedDepMinVersion , parsedPackageVersion ) ) {
89
- repoPackages = updatePackageVersion ( repoPackages , depName , buildId , catalogs ) ;
93
+ console . log ( `${ logPrefix } resolved version = ${ resolvedVersion . resolution . specifier } ` ) ;
94
+ if ( semver . satisfies ( packageVersion , depVersionRange ) ) {
95
+ repoPackages = updatePackageVersion (
96
+ repoPackages ,
97
+ depName ,
98
+ buildId ,
99
+ catalogs ,
100
+ `${ logPrefix } \t` ,
101
+ ) ;
90
102
}
91
103
}
92
104
} else {
93
- const parsedPackageVersion = semver . parse ( packageVersion ) ;
94
- const parsedDepMinVersion = semver . minVersion ( depVersionRange ) ;
95
- if ( semver . eq ( parsedDepMinVersion , parsedPackageVersion ) ) {
96
- repoPackages = updatePackageVersion ( repoPackages , depName , buildId , catalogs ) ;
105
+ if ( semver . satisfies ( packageVersion , depVersionRange ) ) {
106
+ repoPackages = updatePackageVersion (
107
+ repoPackages ,
108
+ depName ,
109
+ buildId ,
110
+ catalogs ,
111
+ `${ logPrefix } \t` ,
112
+ ) ;
97
113
}
98
114
}
99
115
}
100
116
}
101
117
return repoPackages ;
102
118
}
103
119
104
- function updateInternalDependencyVersions ( repoPackages , pkg , buildId , catalogs ) {
105
- console . log ( "updateInternalDep" ) ;
106
- console . log ( pkg ) ;
107
- console . log ( "checking dependencies .." ) ;
120
+ function updateInternalDependencyVersions ( repoPackages , pkg , buildId , catalogs , logPrefix = "\t" ) {
121
+ console . log ( `${ logPrefix } update internal dependencies for package "${ pkg } "` ) ;
122
+ console . log ( `${ logPrefix } checking dependencies ..` ) ;
108
123
repoPackages = updateDependencySection (
109
124
repoPackages ,
110
125
repoPackages [ pkg ] . json . dependencies ,
111
126
buildId ,
112
127
catalogs ,
128
+ `${ logPrefix } \t` ,
113
129
) ;
114
130
115
- console . log ( " checking devDependencies .." ) ;
131
+ console . log ( ` ${ logPrefix } checking devDependencies ..` ) ;
116
132
repoPackages = updateDependencySection (
117
133
repoPackages ,
118
134
repoPackages [ pkg ] . json . devDependencies ,
119
135
buildId ,
120
136
catalogs ,
137
+ `${ logPrefix } \t` ,
121
138
) ;
122
139
123
- console . log ( " checking peerDependencies .." ) ;
140
+ console . log ( ` ${ logPrefix } checking peerDependencies ..` ) ;
124
141
repoPackages = updateDependencySection (
125
142
repoPackages ,
126
143
repoPackages [ pkg ] . json . peerDependencies ,
127
144
buildId ,
128
145
catalogs ,
146
+ `${ logPrefix } \t` ,
129
147
) ;
130
148
131
149
return repoPackages ;
@@ -136,11 +154,12 @@ function makeDependencySectionConsistentForPackage(
136
154
dependencySection ,
137
155
depName ,
138
156
catalogs ,
157
+ logPrefix ,
139
158
) {
140
159
if ( dependencySection && dependencySection [ depName ] ) {
141
160
const depVersionRange = dependencySection [ depName ] ;
142
161
143
- console . log ( `checking ${ depName } :${ depVersionRange } ...` ) ;
162
+ console . log ( `${ logPrefix } consistency: checking ${ depName } :${ depVersionRange } ...` ) ;
144
163
145
164
// If the dependency isn't part of the workspace, skip it
146
165
if ( ! repoPackages [ depName ] ) {
@@ -150,31 +169,35 @@ function makeDependencySectionConsistentForPackage(
150
169
// Compare the dependency version range with the package's current version
151
170
const packageVersion = repoPackages [ depName ] . json . version ;
152
171
153
- console . log ( `version in package's dep = ${ depVersionRange } ` ) ;
154
- console . log ( `dep's version = ${ packageVersion } ` ) ;
172
+ console . log ( `${ logPrefix } consistency: version in package's dep = ${ depVersionRange } ` ) ;
173
+ console . log ( `${ logPrefix } consistency: dep's version = ${ packageVersion } ` ) ;
155
174
const parsedPackageVersion = semver . parse ( packageVersion ) ;
156
175
if ( ! parsedPackageVersion ) {
157
176
throw new Error ( `Invalid version format: ${ packageVersion } ` ) ;
158
177
}
159
178
let shouldReplace = false ;
160
179
if ( depVersionRange . startsWith ( "workspace:" ) ) {
180
+ console . log ( `${ logPrefix } consistency: skipping workspace: dependency` ) ;
161
181
shouldReplace = false ;
162
182
} else if ( depVersionRange . startsWith ( "catalog:" ) ) {
163
183
const resolvedVersion = resolveFromCatalog ( catalogs , {
164
184
alias : depName ,
165
185
bareSpecifier : depVersionRange ,
166
186
} ) ;
167
187
if ( resolvedVersion . type === "found" ) {
168
- const parsedDepMinVersion = semver . minVersion ( resolvedVersion . resolution . specifier ) ;
169
- shouldReplace = semver . eq ( parsedDepMinVersion , parsedPackageVersion ) ;
188
+ shouldReplace = semver . satisfies ( packageVersion , depVersionRange ) ;
170
189
}
171
190
} else {
172
- const parsedDepMinVersion = semver . minVersion ( depVersionRange ) ;
173
- shouldReplace = semver . eq ( parsedDepMinVersion , parsedPackageVersion ) ;
191
+ shouldReplace = semver . satisfies ( packageVersion , depVersionRange ) ;
174
192
}
175
193
// If the dependency range is satisfied by the package's current version,
176
194
// replace it with an exact match to the package's new version
177
195
if ( shouldReplace && repoPackages [ depName ] . newVer !== undefined ) {
196
+ console . log (
197
+ `${ logPrefix } consistency: updating ${ depName } version in dependency section to ${ repoPackages [ depName ] . newVer } ` ,
198
+ ) ;
199
+ // Set the dependency to the new version with an alpha prerelease tag
200
+ // e.g. 1.0.0-alpha.20240101.1
178
201
// Setting version to >=[major.minor.patch]-alpha <[major.minor.patch]-alphb so that this automatically matches
179
202
// with the latest dev version published on npm
180
203
const versionPrefix = `${ parsedPackageVersion . major } .${ parsedPackageVersion . minor } .${ parsedPackageVersion . patch } ` ;
@@ -184,33 +207,32 @@ function makeDependencySectionConsistentForPackage(
184
207
return repoPackages ;
185
208
}
186
209
187
- function updateOtherProjectDependencySections ( repoPackages , pkg , depName , catalogs ) {
188
- console . log ( "updateOtherProjectDependencySections" ) ;
189
- console . log ( "package = " + pkg ) ;
190
- console . log ( "depName=" + depName ) ;
191
- console . log ( "checking dependencies .." ) ;
192
-
210
+ function updateOtherProjectDependencySections ( repoPackages , pkg , depName , catalogs , logPrefix ) {
211
+ console . log ( `${ logPrefix } checking dependencies...` ) ;
193
212
repoPackages = makeDependencySectionConsistentForPackage (
194
213
repoPackages ,
195
214
repoPackages [ pkg ] . json . dependencies ,
196
215
depName ,
197
216
catalogs ,
217
+ `${ logPrefix } \t` ,
198
218
) ;
199
219
200
- console . log ( " checking devDependencies .." ) ;
220
+ console . log ( ` ${ logPrefix } checking devDependencies...` ) ;
201
221
repoPackages = makeDependencySectionConsistentForPackage (
202
222
repoPackages ,
203
223
repoPackages [ pkg ] . json . devDependencies ,
204
224
depName ,
205
225
catalogs ,
226
+ `${ logPrefix } \t` ,
206
227
) ;
207
228
208
- console . log ( " checking peerDependencies .." ) ;
229
+ console . log ( ` ${ logPrefix } checking peerDependencies...` ) ;
209
230
repoPackages = makeDependencySectionConsistentForPackage (
210
231
repoPackages ,
211
232
repoPackages [ pkg ] . json . peerDependencies ,
212
233
depName ,
213
234
catalogs ,
235
+ `${ logPrefix } \t` ,
214
236
) ;
215
237
return repoPackages ;
216
238
}
@@ -234,7 +256,7 @@ async function main(argv) {
234
256
let targetPackages = [ ] ;
235
257
for ( const pkg of Object . keys ( repoPackages ) ) {
236
258
if (
237
- [ "client" , "core" , "management" ] . includes ( repoPackages [ pkg ] . versionPolicy ) &&
259
+ [ "client" , "core" , "management" , "utility" ] . includes ( repoPackages [ pkg ] . versionPolicy ) &&
238
260
repoPackages [ pkg ] . projectFolder . startsWith ( `sdk/${ service } ` ) &&
239
261
! repoPackages [ pkg ] . json [ "private" ]
240
262
) {
@@ -249,14 +271,13 @@ async function main(argv) {
249
271
process . exit ( 1 ) ;
250
272
}
251
273
// Set all the new versions & update any references to internal projects with the new versions
252
- console . log ( `Updating packages with build ID ${ buildId } ` ) ;
253
-
274
+ console . log ( `Updating the following packages with build ID ${ buildId } ` ) ;
275
+ console . dir ( targetPackages ) ;
254
276
for ( const pkg of targetPackages ) {
255
- console . log ( "package updated = " ) ;
256
- console . log ( pkg ) ;
277
+ console . log ( `package updated = ${ pkg } ` ) ;
257
278
repoPackages = updatePackageVersion ( repoPackages , pkg , buildId , config . catalogs ) ;
258
279
repoPackages = updateInternalDependencyVersions ( repoPackages , pkg , buildId , config . catalogs ) ;
259
- console . log ( repoPackages [ pkg ] . newVer ) ;
280
+ console . log ( `newer version: ${ repoPackages [ pkg ] . newVer } ` ) ;
260
281
}
261
282
262
283
for ( const pkg of Object . keys ( repoPackages ) ) {
0 commit comments