Skip to content

v7/v4 major cycle: remove render-once transition compatibility layers #2047

Description

@markdumay

Tracking issue for the major-bound removals parked from the render-once program (2026-07-16/17). Each item below breaks a documented compatibility contract, and a Hugo-module major changes the import path (…/v6…/v7), cascading through every dependent module's go.mod + config imports and every site — plan as a coordinated wave (the v6 generation required a 12-module wave program).

mod-utils v7

  • Drop the dependencies Scratch dual-write in utilities/AddModule.html — write to .Store only. Precondition: consumers read Store (hinode ≥ v3.5.x reads the Scratch∪Store union in head/head.html + footer/scripts.html, so hinode needs no change; third-party themes reading Scratch.Get "dependencies" break — release note).
  • Remove the purgeHTMLComments branch from utilities/ProcessContent.html (deprecated with a gated LogWarn since v6.6.2). Release note: use ignoreLogs = ['warning-goldmark-raw-html'] (hinode's exampleSite has done so since the render-once flip).
  • Escalate omitted page arguments from warn to error in AddModule. Precondition sweep BEFORE the major: verify every in-org caller threads page (mod-leaflet and mod-lottie were never audited for AddModule/UniqueID threading — audit and thread in minors first). Also make the deprecation warnings unconditional (drop the transitional debugging.showDeprecations gate introduced in v6.6.0).

mod-fontawesome v7

  • Drop the icons Scratch dual-write in assets/icon.html.Store "hinode-icons" only — and drop the Scratch side of the union read in assets/symbols.html. Same third-party-theme caveat.

hinode v4 (companion items, same cycle)

  • Global-page fallbacks → error in the partials that gained page args during the render-once program (image, section-title, card, button, card-icon, form-hook, …): remove the warn-missing-page-argument fallback path once the mod-utils escalation lands.
  • Adopt mod-utils v7 / mod-fontawesome v7 import paths; drop the transitional Scratch∪Store union reads (Store-only) in head/head.html and footer/scripts.html.

Cascade inventory (verify against current go.mods at execution time)

Modules importing mod-utils (path bump required): hinode, mod-blocks, mod-fontawesome, mod-flexsearch, mod-docs, mod-mermaid, mod-leaflet, mod-lottie, mod-cookieyes, mod-csp, mod-bootstrap-icons, mod-katex (+ gethinode.com and demo sites). Sequence module-first with dual-path grace where feasible.


Full context: render-once program register + 2026-07-17-v7-major-checklist.md (private gethinode.com repo, branch program/render-once-implementation).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions