chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer, web workflow engine and protocol, tooling, docs and task records. Large generated evidence, user-testing archives, build snapshots and imported test assets remain untracked. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,12 @@ import { execFileSync } from "node:child_process";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
const releaseRoot = path.join(root, "release");
|
||||
if (path.basename(releaseRoot) !== "release" || path.dirname(releaseRoot) !== root) throw new Error("unsafe release target");
|
||||
const outputIndex = process.argv.indexOf("--output-dir");
|
||||
if (outputIndex >= 0 && !process.argv[outputIndex + 1]) throw new Error("--output-dir requires a path");
|
||||
if (process.argv.includes("--binary-only") && outputIndex < 0) throw new Error("--binary-only requires a separate --output-dir for test artifacts");
|
||||
const releaseRoot = path.resolve(root, outputIndex >= 0 ? process.argv[outputIndex + 1] : "release");
|
||||
const relativeReleaseRoot = path.relative(root, releaseRoot);
|
||||
if (!relativeReleaseRoot || relativeReleaseRoot.startsWith(`..${path.sep}`) || relativeReleaseRoot === ".." || path.isAbsolute(relativeReleaseRoot)) throw new Error("unsafe release target");
|
||||
const bundle = path.join(releaseRoot, "blender-web-offline");
|
||||
execFileSync(process.execPath, [path.join(root, "tools/web/generate-sbom.mjs")], { stdio: "inherit" });
|
||||
fs.rmSync(bundle, { recursive: true, force: true });
|
||||
@@ -104,6 +108,12 @@ function deterministicArchive(output, cwd, entries, options = []) {
|
||||
|
||||
const binaryArchive = path.join(releaseRoot, "blender-web-offline.tar.gz");
|
||||
deterministicArchive(binaryArchive, releaseRoot, ["blender-web-offline"]);
|
||||
// Browser archive checks need only the binary bundle; published releases still include source.
|
||||
if (process.argv.includes("--binary-only")) {
|
||||
fs.writeFileSync(path.join(releaseRoot, "SHA256SUMS.txt"), `${sha256(binaryArchive)} ${path.basename(binaryArchive)}\n`);
|
||||
process.stdout.write(`offline-test-binary-created bytes=${fs.statSync(binaryArchive).size} sha256=${sha256(binaryArchive)}\n`);
|
||||
process.exit(0);
|
||||
}
|
||||
const sourceArchive = path.join(releaseRoot, "blender-web-corresponding-source.tar.gz");
|
||||
const sourceEntries = [
|
||||
"blender-5.2.0",
|
||||
|
||||
Reference in New Issue
Block a user