Skip to content

feat!: adopt mod-utils v6 (mod-simple-datatables v4)#272

Merged
markdumay merged 1 commit into
mainfrom
feat/mod-utils-v6
Jul 12, 2026
Merged

feat!: adopt mod-utils v6 (mod-simple-datatables v4)#272
markdumay merged 1 commit into
mainfrom
feat/mod-utils-v6

Conversation

@markdumay

Copy link
Copy Markdown
Contributor

Summary

Adopts mod-utils v6 (gethinode/mod-utils#334, with the v6.0.1 camelKey-collision fix, gethinode/mod-utils#335), as this module's own major release (v3 → v4). This is a wave-1 module for the mod-utils v6 adoption program.

  • Go path bump: github.com/gethinode/mod-simple-datatables/v3/v4; mod-utils requirement bumped directly to v6.0.1 (never v6.0.0, which carries a known camelKey defect fixed in .1).
  • Hugo config / self-references: config.toml, exampleSite/hugo.toml, exampleSite/go.mod updated to the new major. mod-bootstrap is untouched (it does not depend on mod-utils).
  • Self-referencing require line left empty in exampleSite/go.mod (matching the mod-fontawesome v6 PR's precedent): the v4.0.0 tag does not exist until this PR merges and releases, so pinning it would break hugo mod vendor/go list -m resolution both locally and in CI. Hugo's workspace file (mod-simple-datatables.work, use ../) resolves the self-import from local disk via hugo.toml's module.imports path instead — hugo mod graph confirms the resolved graph is correct (see below). exampleSite/go.sum and exampleSite/mod-simple-datatables.work.sum are consequently empty/absent, matching what an empty require block implies.

Argument handling migration (recipe step 4)

No call sites to migrate. This module ships no Hugo templates of its own — there is no layouts/ directory at all (confirmed via a repo-wide grep for InitArgs/InitTypes and a full directory listing). It only mounts JS (simple-datatables.js), SCSS, and i18n strings that Hinode's own table shortcode/partial consumes at the markup level via data-table-* attributes. The mod-utils requirement is transitive only (// indirect in go.mod), inherited by any site that also imports mod-utils directly (e.g. Hinode itself). Nothing in this module calls Args.html/InitArgs.html/InitTypes.html, so there is no strict-false guardrail to add and no | default/or-on-Args-value pattern to grep for.

Test plan

  • hugo mod graph (exampleSite context) shows mod-simple-datatables/v4 → mod-utils/v6@v6.0.1, zero /v5 references anywhere in the graph
  • pnpm build (hugo --gc --minify -s exampleSite) exits 0 with zero ERROR lines, 109 pages built (unchanged from the pre-bump baseline)
  • Warning triage: the only WARN lines are pre-existing and unrelated to argument validation — deprecated languageCode config key, deprecated module.mounts.includeFiles, deprecated libsass, and the module's own intentional warnf JS-bundling diagnostics. None are new; none are attributable to mod-utils/self-path.
  • Visual regression: own exampleSite shot before/after (harness: tests/visual/ on the hinode program/mod-utils-v6-adoption branch), 104/104 pages compared, 0 flagged, 0.0000% diff ratio on every page — expected, since this is a dependency-version-only change with no template call sites that could alter rendered output.
  • git diff reviewed file-by-file; no unrelated changes

🤖 Generated with Claude Code

Bumps the module's own Go path to /v4 and the mod-utils requirement to
v6.0.1, matching the mod-utils v6 adoption program's pinned-version
requirement (v6.0.0 carries a known camelKey defect, fixed in v6.0.1).

This module ships no Hugo templates of its own (no layouts/ directory;
only JS/SCSS assets, i18n strings, and Bootstrap-table markup consumed
by the exampleSite) and has no InitArgs.html/InitTypes.html call sites
to migrate to the Args API, confirmed via a repo-wide grep and
directory listing. The mod-utils requirement is transitive only
(declared indirect in go.mod), inherited by any site that also
imports mod-utils directly.

exampleSite/go.mod's self-referencing require line is left empty,
matching the mod-fontawesome v6 precedent: the v4.0.0 tag does not
exist until this PR merges and releases, so pinning it would break
hugo mod vendor / go list -m resolution in CI. Hugo's workspace file
(mod-simple-datatables.work, use ../) resolves the self import from
local disk via hugo.toml's module.imports path instead.

Verified: hugo mod graph (exampleSite context) shows only
mod-utils/v6@v6.0.1, zero /v5 references; pnpm build exits 0 with
zero ERROR lines and only pre-existing, unrelated WARN lines
(deprecated languageCode/includeFiles/libsass, the module's own
intentional JS-bundling warnf); visual regression is 104/104 clean
(0.0000% diff on every page) against the module's own exampleSite
baseline, as expected for a dependency-only version bump.

BREAKING CHANGE: requires github.com/gethinode/mod-simple-datatables/v4
import path; adopts mod-utils v6 and migrates argument handling to the
Args API (see gethinode/mod-utils v5-to-v6 migration notes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markdumay markdumay merged commit 9123861 into main Jul 12, 2026
8 checks passed
@markdumay

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 4.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant