From 3e2e658fdd0e31e27aa5676a772865084711e16e Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 11 Feb 2026 18:36:13 +0100 Subject: [PATCH] Fix date reading logic in build scripts to handle missing files gracefully --- build/gulpfile.reh.ts | 2 +- build/gulpfile.vscode.ts | 2 +- build/lib/date.ts | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/build/gulpfile.reh.ts b/build/gulpfile.reh.ts index 27149338d9f..b935764033e 100644 --- a/build/gulpfile.reh.ts +++ b/build/gulpfile.reh.ts @@ -321,7 +321,7 @@ function packageTask(type: string, platform: string, arch: string, sourceFolderN let productJsonContents = ''; const productJsonStream = gulp.src(['product.json'], { base: '.' }) - .pipe(jsonEditor({ commit, date: readISODate('out-build'), version })) + .pipe(jsonEditor({ commit, date: readISODate(sourceFolderName), version })) .pipe(es.through(function (file) { productJsonContents = file.contents.toString(); this.emit('data', file); diff --git a/build/gulpfile.vscode.ts b/build/gulpfile.vscode.ts index 92ae01fd01c..7f5138166fe 100644 --- a/build/gulpfile.vscode.ts +++ b/build/gulpfile.vscode.ts @@ -370,7 +370,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d let productJsonContents: string; const productJsonStream = gulp.src(['product.json'], { base: '.' }) - .pipe(jsonEditor({ commit, date: readISODate('out-build'), checksums, version })) + .pipe(jsonEditor({ commit, date: readISODate(out), checksums, version })) .pipe(es.through(function (file) { productJsonContents = file.contents.toString(); this.emit('data', file); diff --git a/build/lib/date.ts b/build/lib/date.ts index 9c20c9eeb22..68d52521349 100644 --- a/build/lib/date.ts +++ b/build/lib/date.ts @@ -29,5 +29,13 @@ export function writeISODate(outDir: string) { export function readISODate(outDir: string): string { const outDirectory = path.join(root, outDir); - return fs.readFileSync(path.join(outDirectory, 'date'), 'utf8'); + try { + return fs.readFileSync(path.join(outDirectory, 'date'), 'utf8'); + } catch { + // Fallback to out-build (old build writes date there, esbuild writes to bundle output dir) + if (outDir !== 'out-build') { + return fs.readFileSync(path.join(root, 'out-build', 'date'), 'utf8'); + } + throw new Error(`Could not find date file in ${outDir}`); + } }