Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion config/derivations.json
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,6 @@
"tools/bump-bun-pin.ts": "writes the JSON report bun-pin.yml files its one issue from, into a path the caller names with --json; the pin itself goes through lib/bun-pin.ts's writePin and every gate's scratch writes are bun-gates.ts's, both listed here",
"tools/canary-wrangler.ts": "writes into a detached worktree it creates in the temp directory and removes in a finally (the candidate wrangler's install, its dry-run bundle), plus the pinned dry-run's bundle beside it and the JSON report the caller names. Nothing under the repository moves except `.build/`, which the pinned dry-run re-stages with the pinned toolchain exactly as `validate` does",
"tools/canary-browsers.ts": "writes the JSON report the canary workflow files an issue from, into a path the caller names, and nothing else; the page it reads is loaded over file://, and the two live probes beside it only READ production (a dictionary exchange and a data-URI decode)",
"tools/lib/upstream-watches.ts": "the LIST of upstream watches, which is a record rather than an artifact; the two CSS watches carry `Bun.write` inside their probe scripts, which timbrado's runner executes in a mkdtemp directory it removes, so nothing under the repository is touched",
"tools/workerd-zstd-probe.ts": "writes a two-file probe Worker into a mkdtemp directory, boots it through wrangler's createTestHarness, and removes the directory in a finally; its one output is a JSON line on stdout that canary-wrangler.ts reads",
"tools/workerd-temporal-probe.ts": "writes a two-file probe Worker into a mkdtemp directory, boots it through wrangler's createTestHarness under the site's compatibility date and flags, and removes the directory in a finally; its one output is a JSON line on stdout that canary-wrangler.ts reads",
"tools/lib/bun-pin.ts": "writes config/bun-pin.json, rewriting ONLY its `bun` pin (it was package.json's packageManager until 2026-09-15), which is a maintenance edit to a hand-authored file rather than a derived artifact. contract-the-bun-pin-is-declared-once.test.ts holds that pin and its three readers together. THIS ENTRY FIRST SAID IT WROTE A TEMP RELEASE ZIP, which is bump-bun-pin.ts and not this: the census caught the file correctly and the reason beside it was wrong, which is the failure mode an exemption list has",
Expand Down
2 changes: 0 additions & 2 deletions docs/MAINTENANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1172,8 +1172,6 @@ written, because a watch that reads true on its first run is watching nothing.
| `bun-image-linear-light-resize` | oven-sh/bun#40510 (fix #40512) | `resize(w, h, { colorspace: "linear" })` changes the bytes |
| `bun-image-keeps-16-bit-samples` | oven-sh/bun#30462 | a 16-bit PNG round-trips at depth 16 |
| `fetch-honours-dispatcher` | oven-sh/bun#39247 (fix #39250) | `fetch(url, { dispatcher })` calls `dispatch()` |
| `css-minifier-knows-the-seven-pseudo-elements` | oven-sh/bun#41120 | no `Invalid selector` on `::scroll-marker` and friends |
| `css-minifier-lowercases-target-current` | oven-sh/bun#42480 (fix #42484) | `:TARGET-CURRENT` is emitted lowercased |
| `workerd-honours-zstd-dictionary` | cloudflare/workerd#7106 | `tools/workerd-zstd-probe.ts` compresses smaller with the right dictionary |
| `workerd-exposes-temporal` | cloudflare/workerd#6907 | `tools/workerd-temporal-probe.ts` finds Temporal under production's compat settings, with a clock within a minute of `Date.now()` |

Expand Down
41 changes: 12 additions & 29 deletions tools/lib/upstream-watches.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,35 +194,18 @@ export const BUN_WATCHES: Watch[] = [
${out('{ landed: called > 0, detail: called > 0 ? "dispatch() called " + called + "x" : "dispatch() never called; fetch went to the network: " + err }')}
`,
},
{
name: "css-minifier-knows-the-seven-pseudo-elements",
issue: "https://github.com/oven-sh/bun/issues/41120",
landed:
"`Bun.build({ minify: true })` on CSS naming ::details-content, ::picker(), ::checkmark, ::picker-icon, ::scroll-marker, ::scroll-marker-group and ::scroll-button() logs no `Invalid selector` warning (oven-sh/bun#41122 shipped four of the seven in 1.4.2)",
measured: "2026-09-15, bun 1.4.2: three warnings, the first on ::scroll-marker",
runtime: "bun",
script: `
await Bun.write("w.css", "a::details-content{c:d}b::picker(select){c:d}c::checkmark{c:d}d::picker-icon{c:d}e::scroll-marker{c:d}f::scroll-marker-group{c:d}g::scroll-button(*){c:d}");
const r = await Bun.build({ entrypoints: ["w.css"], minify: true, outdir: "out" });
const warned = r.logs.map((l) => String(l)).filter((l) => /Invalid selector/i.test(l));
${out('{ landed: warned.length === 0, detail: warned.length ? warned.length + " warning(s): " + warned[0].replace(/^BuildMessage: /, "").slice(0, 90) : "no Invalid selector warning on the seven" }')}
`,
},
{
name: "css-minifier-lowercases-target-current",
issue: "https://github.com/oven-sh/bun/issues/42480",
landed:
"`:TARGET-CURRENT` is emitted lowercased like `:TARGET-WITHIN`, so two spellings of one selector merge to one rule (robobun adopted the fix as oven-sh/bun#42484, from oven-sh/bun#41139)",
measured: "2026-09-15, bun 1.4.2: `:TARGET-CURRENT` emitted verbatim beside a lowercased `:target-within`",
runtime: "bun",
script: `
await Bun.write("w.css", "x:TARGET-CURRENT{c:d}y:TARGET-WITHIN{c:d}");
await Bun.build({ entrypoints: ["w.css"], minify: true, outdir: "out" });
const css = await Bun.file("out/w.css").text();
const landed = css.includes(":target-current") && !css.includes(":TARGET-CURRENT");
${out('{ landed, detail: "emitted " + JSON.stringify(css.trim().slice(0, 60)) }')}
`,
},
// RETIRED 2026-10-30: `css-minifier-knows-the-seven-pseudo-elements`. It
// watched oven-sh/bun#41120, which the owner closed 2026-10-19 after
// #41122 cleared four of the seven. The three warnings left are the
// ::scroll-marker family, and lightningcss 1.33.0 warns on them too
// (parcel-bundler/lightningcss#1321, open), so the fix belongs upstream of
// Bun's port. Re-read on 1.4.4-canary.1+5c6d4e2: 3 warnings. Nothing here
// builds CSS with Bun: tools/build.ts runs Lightning CSS directly.
// RETIRED 2026-10-30: `css-minifier-lowercases-target-current`. It
// watched oven-sh/bun#42480. Its fix #42484 closed unmerged 2026-10-27
// when #47025 consolidated the CSS parser PRs and left #41139 out as input
// nobody writes. Re-read on 1.4.4-canary.1+5c6d4e2: `:TARGET-CURRENT`
// still emitted verbatim beside `:target-within`.
{
// THIS ONE IS NOT A BUN FIX, and it moves through a different door. The
// probe reads oxc-minify, which is pinned in package.json and bumped by
Expand Down
Loading