ReviewOS

also looking at this

stacks/bumpx

fix: synchronize drifted native versions in recursive releases

#2015
Merged chris wants to merge codex/recursive-native-version-drift into main
2 files +26 -2

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

packages/bumpx/src/utils.tsmodified+6-2
Changes to packages/bumpx/src/utils.ts
@@ -413,8 +413,11 @@ export function updateVersionInFile(filePath: string, oldVersion: string, newVer
413413 if (isZigZon) {
414414 // Handle Zig build.zig.zon files
415415 // Format: .version = "0.0.0",
416 const declaredVersion = forceUpdate
417 ? content.match(/\.version\s*=\s*"([^"]+)"/)?.[1] ?? oldVersion
418 : oldVersion
416419 const versionRegex = new RegExp(
417 `(\\.version\\s*=\\s*")${oldVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}("\\s*,)`,
420 `(\\.version\\s*=\\s*")${declaredVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}("\\s*,)`,
418421 'g',
419422 )
420423 if (content.match(versionRegex) || forceUpdate) {
@@ -439,8 +442,9 @@ export function updateVersionInFile(filePath: string, oldVersion: string, newVer
439442 // For JSONC files, preserve the original formatting with comments
440443 if (isJsonc) {
441444 // Replace the version value while preserving comments and formatting
445 const declaredVersion = forceUpdate ? String(packageJson.version) : oldVersion
442446 const versionRegex = new RegExp(
443 `(["']version["']\\s*:\\s*)["']${oldVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}["']`,
447 `(["']version["']\\s*:\\s*)["']${declaredVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}["']`,
444448 'g',
445449 )
446450 newContent = content.replace(versionRegex, `$1"${newVersion}"`)