Skip to content

Update dependencies#2167

Merged
dscho merged 7 commits into
git:gh-pagesfrom
dscho:update-dependencies
May 21, 2026
Merged

Update dependencies#2167
dscho merged 7 commits into
git:gh-pagesfrom
dscho:update-dependencies

Conversation

@dscho
Copy link
Copy Markdown
Member

@dscho dscho commented May 19, 2026

Changes

  • Brings the dependencies up to date

Context

It's always hard to upgrade e.g. Hugo after letting things slide for too long. Here, for example, we had to take care of a deprecated front-matter attribute, among other things.

dscho and others added 7 commits May 15, 2026 19:12
`lang` is a reserved Hugo front-matter key that identifies a page's
language. Hugo deprecated user-supplied top-level `lang:` in v0.144.0,
and per Hugo's automatic deprecation-level schedule (encoded in
`common/hugo/hugo.go:deprecationLogLevelFromVersion`) the warning
escalates to a build-aborting error once the running Hugo is at
least 15 minor releases past the deprecation. v0.155.3, the version
currently pinned in `params.hugo_version`, sits 11 releases out and
therefore only logs `lang in front matter was deprecated in Hugo
v0.144.0 and will be removed in a future release.` as a warning; any
Hugo from v0.159.0 onward refuses to build the site, escalating the
same condition to `lang in front matter was deprecated in Hugo
v0.144.0 and subsequently removed.` as soon as it sees one of the
generated translated manual pages.

The site already accesses the value through `.Params.lang` (for
example in `layouts/partials/ref/category.html` and
`layouts/partials/ref/languages.html`), and `.Params` exposes nested
`params:` entries identically to root-level user-defined keys.
Nesting the value under `params:` therefore preserves all template
behavior while making clear that this is a user-defined attribute
rather than a Hugo-reserved one. Renaming the key (e.g. to
`pagelang`) was considered but would have required touching every
template reference for no real gain.

This commit only updates the generator. The translated manual pages
already checked into `external/docs/content/docs/*/<lang>.html`
still carry the old top-level `lang:` and must be regenerated by
triggering the `update-translated-manual-pages.yml` workflow with
`force-rebuild: true` before the Hugo version pinned in `hugo.yml`
can be raised past the warning-to-error boundary.

See https://gohugo.io/content-management/multilingual/ for Hugo's
current language-handling model.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Updated via the `update-translated-manual-pages.yml` GitHub workflow.
Hugo v0.158.0 deprecated `languageCode` (both the top-level config key
and the per-language `languages.<lang>.languageCode` form) in favor of
`locale`/`languages.<lang>.locale`. v0.161.1 still emits a runtime
warning ("project config key languageCode was deprecated in Hugo
v0.158.0 and will be removed in a future release. Use locale instead.")
on every build, and the upstream discourse thread for the v0.158.0
deprecations announces the eventual removal:
https://discourse.gohugo.io/t/deprecations-in-v0-158-0/56869

`locale: en` is accepted by every Hugo version we still support
(verified against v0.155.3, the version currently pinned in
`params.hugo_version`, where it produces neither a warning nor an
error), so this rename is safe to land independently of the broader
Hugo upgrade.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Hugo v0.156.0 deprecated `Site.Data` in favor of the new global
`hugo.Data` and v0.158.0 deprecated the top-level `languageCode` key
that the previous commit migrated to `locale`. The v0.156.0
deprecation discourse thread spells out the rationale and the staged
removal plan: https://discourse.gohugo.io/t/deprecations-in-v0-156-0/56732

The `hugo.Data` global was introduced in v0.156.0; v0.155.3 (the
version this commit replaces) renders any reference to it as
`can't evaluate field Data in type interface {}` and aborts the
build. The template migration must therefore land together with the
`params.hugo_version` bump rather than as a preparatory commit.

Several other changes between v0.155.3 and v0.161.1 were inspected
and found inert for this site. The v0.144.0 deprecation of top-level
`lang:` in front matter was addressed by `script/update-docs.rb`
switching to `params.lang` and the subsequent
`Update translated manual pages` regeneration commit. The v0.161.0
hardening of `security.http.urls` and the new `--permission`
requirement for Node-based asset pipelines (PostCSS, Babel,
Tailwind) do not bite us because the layouts call
`resources.GetRemote` nowhere and invoke none of the affected Node
tools. Finally, the template functions removed in v0.156.0
(`data.GetCSV`, `data.GetJSON`, `crypto.FNV32a`, `resources.Babel`,
`resources.PostCSS`) and the language methods deprecated in v0.158.0
(`.Site.LanguageCode`, `.Language.LanguageName`,
`.Language.LanguageDirection`) are not referenced anywhere under
`layouts/`.

The site was built locally with the new Hugo against the regenerated
external content; the build now completes without any deprecation
warnings or errors, and the rendered pages differ from the v0.155.3
baseline only in stylesheet content hashes.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
v1.5.0 (https://github.com/CloudCannon/pagefind/releases/tag/v1.5.0)
is the first stable release in the 1.5 line; it overhauls ranking
and indexing without breaking the existing Default UI consumed by
`layouts/_default/baseof.html` (the upstream notes are explicit that
"the existing Default UI and Modular UI remain available and
supported for now"). The new metadata-aware ranking even improves
the `commit`/`config`/`log`/`rev-parse` checks that the CI workflow
runs via `script/run-pagefind.js`: each query now puts the
corresponding `/docs/git-X.html` page in first position with a much
larger gap to the runner-up than before, because page titles are
weighted into the score (verified locally with the same script that
CI runs).

v1.5.2 (https://github.com/CloudCannon/pagefind/releases/tag/v1.5.2)
is a Linux-only fix that swaps in jemalloc on the musl build to
recover the 2x indexing speedup that v1.5.0 otherwise regresses on
Linux. It is the version that should actually be pinned for our CI
runners: Pagefind only ships musl Linux binaries (the GitHub release
assets contain no `*-unknown-linux-gnu` archives) and the `npx
pagefind` install on `ubuntu-latest` resolves to
`@pagefind/linux-x64`, which wraps that musl binary.

The `npx -y pagefind@${PAGEFIND_VERSION} --site public
--write-playground` invocation in `.github/workflows/ci.yml` and in
the `deploy-to-github-pages` composite action continues to work
unchanged: `--write-playground` is supported by both 1.4.0 and 1.5.2
(verified locally via `pagefind --help`), and the playground
HTML/JS/CSS still land at `public/pagefind/playground/`.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
`@playwright/test` ^1.47.2 -> ^1.60.0 captures roughly a year of
patch and minor releases since the existing pin landed (see the
upstream notes for 1.48 through 1.60 at
https://github.com/microsoft/playwright/releases). The constraint
stays in the v1 range, where Playwright maintains stable browser
APIs; nothing in `tests/git-scm.spec.js` exercises behavior that
changed in any of the intervening releases.

`@types/node` ^22.5.4 -> ^22.19.19 stays inside the Node 22 LTS
typings line. The repository contains no `*.ts` files and no
`tsconfig.json`; this package only powers editor tooling for the
plain-JavaScript helpers under `script/` and `tests/`. A jump to v24
or v25 is therefore avoided for now: it would describe APIs that the
runtime LTS does not yet ship, with no offsetting benefit.

`node-html-parser` ^7.0.1 -> ^7.1.0 (see
https://github.com/taoqf/node-html-parser/releases/tag/v7.1.0) stays
in the v7 line and is verified to keep `script/graphviz-ssr.js`
working: `parse('<div>hi</div>').toString()` round-trips correctly
under the new release.

`npm install` was rerun locally and resolves the three packages to
1.60.0, 22.19.19 and 7.1.0 respectively.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
`.github/workflows/ci.yml` and the `deploy-to-github-pages` composite
action both already pin `actions/setup-node@v5`. The standalone
Playwright workflow was the only place still on `@v4`, presumably
just because it predates the bump that moved the rest of the repo
forward.

`@v5` accepts the same `node-version: lts/*` input the workflow
already passes (the input set is unchanged across the v4 -> v5
boundary; see https://github.com/actions/setup-node/releases/tag/v5.0.0
), so this is a pure cleanup with no behavior change beyond using
the action runtime that the rest of the repository has already
standardised on.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho self-assigned this May 19, 2026
@dscho dscho marked this pull request as ready for review May 19, 2026 08:09
@dscho dscho force-pushed the update-dependencies branch from 69e4615 to 480a853 Compare May 21, 2026 09:18
@dscho dscho merged commit 31b8021 into git:gh-pages May 21, 2026
2 checks passed
@dscho dscho deleted the update-dependencies branch May 21, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant