Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

oven: stash build-artifact dirt before papers-build rebase

xelatex leaves tracked .log/.toc/.aux files (and sometimes intermediate
.pdfs in papers/arxiv-*/) modified after each run. Those unstaged
modifications don't need to be preserved — the auto-build only commits
system/public/papers.aesthetic.computer/ + metadata.json + BUILDLOG.md —
but they block `git pull --rebase origin main`, which silently breaks
the push step and causes the oven's local main to diverge from origin.

Add a `git checkout -- papers/` cleanup between `git commit` and
`git pull --rebase`. Failures are non-fatal; any real rebase conflict
will still surface in the next step.

+15
+15
oven/papers-builder.mjs
··· 148 148 addLogLine(job, "stdout", ` GIT: committing ${changedFiles.length} file(s)...`); 149 149 await git(["commit", "-m", msg]); 150 150 151 + // Discard any remaining unstaged build artifacts (xelatex leaves tracked 152 + // .log/.toc/.aux/.fls files modified after each run, and intermediate .pdfs 153 + // in papers/arxiv-*/ may also be dirty). We only commit system/public/... + 154 + // metadata.json + BUILDLOG.md, so anything still dirty is byproduct we 155 + // don't want to preserve — and leaving it dirty blocks `git pull --rebase`. 156 + try { 157 + await git(["checkout", "--", "papers/"]); 158 + } catch (cleanupErr) { 159 + addLogLine( 160 + job, 161 + "stderr", 162 + ` GIT: pre-rebase cleanup note: ${cleanupErr.message || cleanupErr}`, 163 + ); 164 + } 165 + 151 166 // Pull any changes that landed while we were building (rebase our commit on top) 152 167 addLogLine(job, "stdout", " GIT: pulling latest before push..."); 153 168 try {