also looking at this
fix: synchronize drifted native versions in recursive releases
#2015
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.
| @@ -68,3 +68,23 @@ test('additional manifests participate in changed-package dependency propagation | ||
| 68 | 68 | rmSync(root, { recursive: true, force: true }) |
| 69 | 69 | } |
| 70 | 70 | }) |
| 71 | ||
| 72 | test('recursive CLI synchronizes native metadata whose starting version differs from the root', () => { | |
| 73 | const root = fixture() | |
| 74 | try { | |
| 75 | mkdirSync(join(root, 'packages/zig'), { recursive: true }) | |
| 76 | writeFileSync(join(root, 'packages/zig/build.zig.zon'), '.{ .version = "0.8.0", }\n') | |
| 77 | writeFileSync(join(root, 'packages/zig/pantry.json'), '{"version":"0.7.0"}\n') | |
| 78 | writeFileSync(join(root, 'packages/zig/package.jsonc'), '{/* metadata */ "version":"0.6.0"}\n') | |
| 79 | writeFileSync(join(root, 'bumpx.config.ts'), `export default { | |
| 80 | additionalFiles: ['packages/zig/build.zig.zon', 'packages/zig/pantry.json', 'packages/zig/package.jsonc'], | |
| 81 | }\n`) | |
| 82 | bump(root) | |
| 83 | expect(version(root, '.')).toBe('1.0.1') | |
| 84 | expect(version(root, 'packages/runtime')).toBe('1.0.1') | |
| 85 | expect(readFileSync(join(root, 'packages/zig/build.zig.zon'), 'utf8')).toContain('.version = "1.0.1"') | |
| 86 | expect(JSON.parse(readFileSync(join(root, 'packages/zig/pantry.json'), 'utf8')).version).toBe('1.0.1') | |
| 87 | expect(readFileSync(join(root, 'packages/zig/package.jsonc'), 'utf8')).toContain('"version":"1.0.1"') | |
| 88 | } | |
| 89 | finally { rmSync(root, { recursive: true, force: true }) } | |
| 90 | }) | |