Skip to content

Commit 0b169c6

Browse files
committed
chore: backfill
1 parent abc00bc commit 0b169c6

15 files changed

Lines changed: 413 additions & 38 deletions

src/posts/2026-05_biomejs-biome.md

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,32 @@ repo: biomejs/biome
44
period: monthly
55
slug: 2026-05
66
period_label: "May 2026"
7-
size: M
8-
title: "Parser correctness and rule coverage improved across languages"
9-
excerpt: "Biome fixed several parser edge cases in Markdown, YAML, Svelte, and SCSS, while expanding lint rule precision and adding plugin config support."
10-
commits: 13
7+
size: L
8+
title: "Biome’s Sass, Markdown, and Vue support level up"
9+
excerpt: "May brought major SCSS parser/formatter expansion, stronger Markdown/YAML parsing, new lint rules, and plugin/feature gating cleanup."
10+
commits: 174
1111
---
1212

13-
### Parser and formatter correctness across markup languages
14-
Biome spent the month tightening syntax handling in several front-end and content languages. Markdown parsing was fixed for fenced code blocks that should stop at list boundaries, and for loose lists that follow empty items, bringing CommonMark behavior closer to spec. YAML got multiple fixes too: aliases can now be used as mapping keys, and anchors/tags are correctly lexed before block sequences. On the template side, Svelte `{:then}`/`{:catch}` blocks now accept omitted bindings, and SCSS semicolonless `@use`/`@forward` rules are parsed and formatted cleanly.
13+
### SCSS becomes much more complete
14+
Biome spent the month filling major Sass gaps in the parser, formatter, and analyzer. Support expanded across interpolation in selectors, pseudo/selectors, attribute selectors, nested properties, keyframes, media/container queries, `url()` values, parent selectors, semicolonless `@use`/`@forward`, semicolonless statement at-rules, and `@include ... using`. Formatting also improved for maps, `@if`/`@else if`, `@each`, binary expressions, blank lines, comments, and interpolation spacing, with several fixes aimed at preserving source intent and reducing churn.
1515

16-
### Linting got smarter and more configurable
17-
`noUnnecessaryConditions` now catches a broader set of redundant conditions using type information, including optional chaining, nullish coalescing, logical expressions, null/undefined comparisons, and impossible `switch` cases. In parallel, `useNullishCoalescing` gained `ignoreMixedLogicalExpressions`, giving teams a way to suppress suggestions in mixed `&&`/`||` trees.
16+
### Markdown parsing got a broad CommonMark cleanup
17+
Markdown handling saw repeated fixes for list continuation, ordered sublists, lazy continuations, fenced code boundaries, quoted list interruptions, blank-line separators, and reference-definition edge cases. The result is a more faithful parser and formatter for nested lists, blockquotes, thematic breaks, and fenced code blocks, with fewer AST surprises in real-world docs.
1818

19-
### Public config and build/runtime updates
20-
Biome’s public schema now exposes a `plugins` configuration field, and a regression in emitted configuration types/schema generation was fixed so generated typings stay aligned. Playground preview WASM builds also started enabling unstable features, with the WASM crate gaining an `unstable` feature flag to toggle Markdown and YAML support for web previews.
19+
### YAML support moved from gaps to a real foundation
20+
YAML parsing improved substantially with support for properties, anchors, tags, aliases as keys, and harder mapping/flow cases. Biome also added experimental YAML formatting plumbing, service wiring, and broader test coverage, laying groundwork for first-class YAML formatting while still keeping it gated.
21+
22+
### New lint rules and rule upgrades
23+
May added several new rules, especially for JavaScript and Vue: `noExcessiveNestedCallbacks`, `noBaseToString`, `useThisInClassMethods`, `useTestHooksInOrder`, `useVueNextTickPromise`, `noVueImportCompilerMacros`, and `useVueValidVFor`. Existing rules also became more capable, including `useDestructuring` option parity, `noMisleadingReturnType` improvements, `useOptionalChain` and `noUnnecessaryConditions` coverage, `useNullishCoalescing` configurability, and readonly/`as const`-aware TypeScript checks.
24+
25+
### Tailwind, HTML, and Svelte got meaningful parser upgrades
26+
Tailwind arbitrary values were taught to parse more like CSS, with better handling for numbers, percentages, functions, URLs, math, and typed v4 arbitrary values for sorting. HTML/Svelte parsing and formatting improved around text-context keywords, comments splitting tags, multiline interpolation, function bindings, await blocks, and Astro frontmatter/diagnostic positioning.
27+
28+
### Architecture, config, and CI became more modular
29+
Biome introduced feature gating for plugins and several language services, making Markdown/YAML/GraphQL/Grit and plugin support more explicitly opt-in. The CLI transport was refactored, dependency and workflow hygiene improved, and CI hardening included all-features checks, security scanning, and workflow permission reductions. Import organization also got stricter validation for unknown predefined groups and clearer diagnostics.
2130

2231
### Other misc changes
23-
- Release housekeeping, changelog/package version updates, and changeset cleanup
24-
- CI and GitHub Actions workflow updates, including stale-issue automation and safer steps
25-
- Minor token/workflow maintenance in repository automation
32+
- `biome rage --linter` now reports domain-enabled rules correctly.
33+
- `noStaticElementInteractions` excludes custom elements; `noThisInStatic` ignores `new this()`.
34+
- `noUntrustedLicenses` text was fixed and several diagnostics/messages became more precise.
35+
- Multiple release housekeeping, dependency bumps, docs, snapshots, and test-harness updates.

src/posts/2026-05_pnpm-pnpm.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,28 @@ period: monthly
55
slug: 2026-05
66
period_label: "May 2026"
77
size: L
8-
title: "pnpm adds server installs, registry hardening, and workspace parity"
9-
excerpt: "May focused on major install/runtime parity, stricter integrity checks, a new server-assisted mode, and big registry improvements."
10-
commits: 55
8+
title: "Major install-engine and supply-chain hardening month"
9+
excerpt: "pnpm added audit signature checks, safer publish/auth flows, and a huge wave of install-engine, registry, and parity work."
10+
commits: 498
1111
---
1212

13-
### **Install engine parity jumps forward**
14-
Pacquet picked up several core pnpm behaviors: fresh installs with `nodeLinker: hoisted`, workspace filters, `--lockfile-only`, lifecycle scripts during install, network config wiring, resolution policy settings, and workspace preference/dedupe knobs. It also gained support for `injectWorkspacePackages`, `packageExtensions`, `excludeLinksFromLockfile`, `dedupePeers`, and peer-suffix length controls, closing many compatibility gaps and changing lockfile/install output for real-world workspaces.
13+
### **Supply-chain and release hardening**
14+
May brought several high-impact security and release improvements: `pnpm audit signatures` now verifies registry ECDSA signatures, release artifacts moved to macOS-native signing, and provenance attestation was added for published binaries. The month also tightened publish/auth flows with trusted publishing precedence, scoped registry correctness, tarball integrity enforcement, Git-hosted tarball checks, and safer registry/server behavior across the new in-repo registry stack.
1515

16-
### **New server-assisted install mode**
17-
A new opt-in `pnprServer` mode offloads dependency resolution and missing-file calculation to a `pnpr` server, then links `node_modules` locally from the server-produced lockfile. This is the month’s biggest performance-oriented change and sets up faster installs without changing the final on-disk result.
16+
### **Install engine parity took a big leap**
17+
The biggest story of the month was the ongoing Rust install-engine work in pacquet. It gained lifecycle script execution, bin linking, side-effects cache read/write, patched dependency handling, hoisted installs, workspace-wide installs, lockfile generation, workspace state persistence, `nodeLinker` support, offline/prefer-offline, lockfile-only mode, filtered installs, and a growing set of pnpm-compatible config knobs. By month end, installs could even be offloaded to a `pnprServer` in an opt-in server-accelerated mode.
1818

19-
### **Registry and publish flow become much stricter**
20-
The in-repo registry gained request logging, health checks, ACL/policy enforcement, persistent users/tokens, and tarball integrity verification on publish. On the client side, publish/access handling was fixed for scoped packages, dist-tag writes were made 2FA-compatible, and remote tarball direct dependencies now resolve end to end with proper sha512 integrity recorded.
19+
### **Resolver, lockfile, and workspace correctness kept filling gaps**
20+
A lot of pnpm behavior was restored or tightened: peer resolution, optional dependencies, workspace protocol handling, package extensions, dedupe rules, catalog/override support, runtime specifiers, git/tarball/file/link resolution, injected workspace deps, and modules-manifest handling. Lockfile behavior also became stricter and more faithful, with better freshness checks, verification caching, `minimumReleaseAge` enforcement, integrity requirements, CRLF-safe parsing, and better handling of combined v11 lockfiles.
2121

22-
### **Integrity and trust checks now fail closed**
23-
Install-time tarball integrity mismatches now error by default, with `--update-checksums` as the explicit escape hatch. Trust scoring was also tightened so staged publishes count as the strongest signal, and frozen-lockfile behavior was hardened around remote tarball and registry metadata changes.
22+
### **CLI and user-facing command parity expanded**
23+
Several missing or regressed commands and flags were fixed or added, including `pnpm bugs`, native `pnpm pkg`, `pnpm stage`, `pnpm repo`, scoped login, improved `pnpm view`, `pnpm publish --json`, `pnpm dlx` build approval, and multiple fixes for `ci`, `clean`, `fetch`, `pack`, `self-update`, and global installs. Reporter output and NDJSON events were also expanded so external tooling can consume pnpm-shaped logs more reliably.
2424

25-
### **Correctness fixes for dependency resolution**
26-
Several nasty edge cases were resolved, including hanging aliased peer installs, inconsistent peer resolution in diamond graphs, stale excluded-package metadata, and workspace glob negation parsing. These fixes reduce deadlocks, version drift, and surprising workspace selection behavior.
25+
### **Network, registry, and Windows compatibility improved**
26+
The fetch/auth stack got more enterprise-friendly with proxy/TLS/auth fixes, safer tarball fetching, registry alias handling, GitLab/Azure DevOps compatibility fixes, and better config loading from env and `.npmrc`. On Windows, the month addressed alias executables, node-gyp permissions, temp-path quirks, symlink behavior, CRLF lockfiles, and several path/drive-root edge cases.
2727

2828
### **Other misc changes**
29-
Renamed `pnpm-registry` to `pnpr`, moved registry/auth state to disk, replaced the external registry mock with an in-repo fixture, relicensed `pnpm-agent` and `pnpr` under PolyForm Shield, and shipped routine dependency, CI, test, and release housekeeping.
29+
- More consistent config handling for overrides, minimumReleaseAge, workspace settings, and env vars
30+
- Better self-update behavior and package-manager version policy handling
31+
- Test infrastructure refactors, including the new in-repo registry and registry-server renames
32+
- Numerous CI, workflow, docs, and dependency maintenance updates

src/posts/2026-05_vitejs-vite.md

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,44 @@ repo: vitejs/vite
44
period: monthly
55
slug: 2026-05
66
period_label: "May 2026"
7-
size: S
8-
title: "Rolldown update and docs polish land this month"
9-
excerpt: "Vite refreshed to rolldown 1.0.3, tightened plugin docs, and cleaned up a few error messages and contributor instructions."
10-
commits: 4
7+
size: L
8+
title: "Vite sharpens bundled dev, workers, and SSR correctness"
9+
excerpt: "May brought bundled-dev lazy loading, worker config parity, SSR and glob fixes, plus a stream of Rolldown upgrades and release bumps."
10+
commits: 62
1111
---
1212

13-
### **Tooling aligned with rolldown 1.0.3**
14-
Vite, the docs app, and the playground were bumped to rolldown 1.0.3 with a lockfile refresh, keeping the repo on the latest bundler release.
13+
### Bundled dev gets smarter and more configurable
14+
**Lazy bundling lands in bundled dev**Vite’s bundled dev mode can now compile modules on demand instead of relying entirely on the initial full build. This was paired with a per-environment `isBundled` resolution change, making bundled behavior more precise across client, worker, and other environments.
1515

16-
### **Docs improved for plugin and contributor workflows**
17-
The API plugin guide now recommends `enforce: 'post'` in the CSS metadata example, and `CONTRIBUTING.md` was updated with current pnpm override guidance and workspace placement for testing Vite against external packages.
16+
**Worker builds now inherit main-build settings** — Worker bundling was brought closer to the main app by forwarding `build.target` and `define` into the worker transform path. That fixed mismatches where workers compiled with different assumptions or missed compile-time replacements.
1817

19-
### **Minor runtime polish**
20-
A few Vite server and optimizer error messages were cleaned up for capitalization and spacing consistency.
18+
**Devtools integration moved deeper into the pipeline**`@vitejs/devtools` is now wired directly into Vite’s plugin/build flow, improving consistency across dev and build usage.
19+
20+
### SSR, module runner, and HTML transforms got several correctness fixes
21+
**SSR re-export race and label rewriting bugs were fixed** — The module runner now detects concurrent circular re-export chains more accurately, avoiding partial-exports races during invalidation. SSR transforms also stopped rewriting labels and `break`/`continue` targets, preventing accidental syntax breakage.
22+
23+
**HTML and proxy handling became more reliable**`transformIndexHtml` now handles trailing-slash directory URLs correctly, and HTML served through `/@fs/` no longer trips `html-proxy` cache-key mismatches for inline module scripts.
24+
25+
**Globs now behave more predictably**`import.meta.glob()` fixes covered absolute base paths, relative-glob errors inside virtual modules, and test coverage for more realistic root/base combinations.
26+
27+
### Workers, CSS, and build teardown were hardened
28+
**CSS preprocessor workers now shut down cleanly** — Server/build teardown now waits for Sass/Less/Stylus workers to fully stop, fixing lingering child-process cleanup issues.
29+
30+
**Build output and plugin hooks were tightened** — Vite fixed a rebuild regression where `write=false` could interfere with later public asset copying, and the esbuild-to-rolldown bridge now passes more complete build-result fields to plugin hooks.
31+
32+
**Console forwarding and timeout handling improved** — Dev console forwarding now handles transport send failures more safely, and request timeouts are surfaced as proper HTTP 408 responses.
33+
34+
### Rolldown upgrades and release churn continued
35+
**Rolldown moved through several releases** — The repo advanced from rc builds to 1.0.0, then 1.0.1, 1.0.2, and 1.0.3 across core packages, docs, and playgrounds. These updates came with sourcemap/test expectation adjustments and reflect Vite tracking upstream bundler changes closely.
36+
37+
**Multiple patch releases shipped** — Vite 8.0.11, 8.0.12, and 8.0.14 landed during the month, along with a create-vite release. These releases mostly bundled the bug fixes and dependency updates above into formal patch cuts.
38+
39+
### Security, CI, and docs
40+
**CI supply-chain hardening improved** — Official GitHub Actions were pinned to exact commit SHAs, reducing exposure to upstream tag drift. There were also pnpm workflow updates and other release automation tweaks.
41+
42+
**Docs and scaffolding were kept in sync** — The repo updated guidance for `build.rolldownOptions`, pnpm overrides, plugin ordering examples, and create-vite/TanStack scaffolding behavior.
2143

2244
### Other misc changes
23-
- No additional functional changes beyond the updates above.
45+
- Dependency refreshes across linting, types, testing, CSS tooling, and workspace lockfiles.
46+
- Miscellaneous release-note cleanup, changelog pruning, and wording fixes.
47+
- Minor test fixture updates for Sass, glob imports, and worker behavior.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
date: 2026-05-03
3+
repo: biomejs/biome
4+
period: weekly
5+
slug: 2026-W18
6+
period_label: "Apr 27 – May 3, 2026"
7+
size: M
8+
title: "Biome adds deeper SCSS support and sharper parser fixes"
9+
excerpt: "SCSS parsing/formatting expanded across interpolation, @each, selectors, and functions, alongside markdown, HTML, and lint rule improvements."
10+
commits: 30
11+
---
12+
13+
### SCSS support keeps expanding across parser and formatter
14+
Biome landed a cluster of SCSS improvements: interpolation now works in values, media queries, selectors, and `nth-*` arguments, while spaced function heads and `@each` headers are parsed and formatted more robustly. Formatting also picked up better handling for maps, parenthesized lists, spacing, and trailing separators, closing several real-world Sass gaps.
15+
16+
### Linting and import validation got stricter
17+
A new nursery rule, **noExcessiveNestedCallbacks**, flags callbacks nested beyond a configured depth and includes ESLint option migration support. Biome also fixed `useReadonlyClassProperties` to catch writes from arrow callbacks, and `organizeImports` now errors on unknown predefined groups instead of silently accepting invalid config.
18+
19+
### Markdown and HTML parsing/formatting became more accurate
20+
Markdown saw a run of correctness fixes around quoted ordered lists, lazy continuations, lazy link references, and empty reference paragraphs, including better handling when references appear near thematic breaks, lists, or blockquotes. HTML parsing and formatting were tightened too, with clearer diagnostics for void-element closing tags, better text relexing, and preservation of multiline whitespace around non-text children.
21+
22+
### Other misc changes
23+
- `noStaticElementInteractions` now excludes custom elements
24+
- `noThisInStatic` no longer reports `new this()`
25+
- CI release/changelog metadata updates and small docs fixes

0 commit comments

Comments
 (0)