Upgrade the Oink Hugo Module
Upgrade a site that imports Oink as a pinned Hugo Module.
These pages describe the OINK update contract. A target release is the version that you are moving the site to. Read its release note before starting: it records breaking changes, required actions, and the validated Hugo range.
OINK consumer builds do not install Node.js packages. npm remains repository tooling for theme maintainers, not a site-update step.
Perform the update in this order:
Install a Hugo Extended version supported by the target release. Update the same version in local developer setup, CI, Cloudflare Pages, Netlify, container images, and any cache keys. Verify the selected binary before building:
hugo versionThe current validation baseline is Hugo Extended 0.164.0; the theme’s current
minimum is 0.160.1. A release note takes precedence if it changes either
value.
Use the page matching the site’s installation mode:
For a released archive, replace the existing theme directory with the target
archive only after preserving site-owned overrides. Verify its checksum and keep
LICENSE, NOTICE, and VENDOR.json with the distribution.
If the site overrides theme files, compare each override with its new theme counterpart and port relevant changes. Check these directories:
assets/i18n/layouts/static/Remove an override when the theme now provides the same behavior. Keep site business components, product pages, and brand assets at the site layer.
Run both a development preview and the exact production command. For the Hugo-only contract, the production build is:
hugo --gc --minifyVerify at least the following:
Finally, run every release-specific check from the target release note.
Upgrade a site that imports Oink as a pinned Hugo Module.
Upgrade Oink when its source is a Git submodule or clone.
Remove the upstream Docsy npm package from an Oink site.
Replace copied Docsy shells while preserving site-owned behavior.