v0.155.0
gohugoio/hugov0.155.0Jan 28, 2026by bep
AI Summary
A feature-rich release focusing on version handling, image metadata, and performance, specifically for WebP and multidimensional sites.
Key Highlights
- Support for version range queries (e.g., >= v1.0.0) in GitHub repos
- XMP and IPTC image metadata support added
- Page aliases now work in multidimensional sites
- Performance improvements for WebP and image processing
Breaking Changes
- Alias paths beginning with a slash (/) are now site-relative instead of server-relative in multilingual single-host projects.
New Features
- Version range queries
- XMP and IPTC metadata support
- Page aliases in multidimensional sites
- WebP performance improvements
Full Release Notes
Some notable new things in this release are: * Improvements to how [versions](https://gohugo.io/methods/site/version/#article) are handled: We now support version (and also for the other dimension) range queries (e.g. `>= v1.0.0`), and we now cache Go module version queries, which makes mounting multiple versions of the same GitHub repo with different version much more practical and enjoyable, se [this site and config](https://github.com/bep/hugo-testing-git-versions/blob/main/hugo.toml) for an annotated example. * We finally have XMP and IPTC image metadata support, in addition to EXIF, see #13146 * Page `aliases` now works in multidimensional sites (e.g. multiple languages), and it is now much easier to create e.g. Netlify `_redirects` files that works in such setups. * There are several performance related WebP improvements in this release. * Also, image processing in general (e.g. resize operations) should be considerably more effective. ## Breaking change Prior to v0.155.0, alias paths beginning with a slash (`/`) were treated as [server-relative]. In v0.155.0 and later, they are now [site-relative]. This change only affects multilingual single-host projects that used alias paths beginning with a slash (`/`) to cross language boundaries. See [details]. [details]: https://discourse.gohugo.io/t/alias-paths-in-v0-155-0-and-later/56674 [server-relative]: https://gohugo.io/quick-reference/glossary/#server-relative [site-relative]: https://gohugo.io/quick-reference/glossary/#site-relative ## Note * Make Page.Aliases more useful in multidimensional setups (note) ee91c707 @bep #14402 ## Bug fixes * Fix data race when clearing cache in cachebusters 8a979d54 @wjiec * resources/images: Fix comment for Quality field in ImageConfig fd49df8f @bep * Fix panic reported in discourse c7b35c87 @bep #14441 * Fix recently introduced partial rendering bug 8dfcece8 @bep #14433 * tpl: Fix partial decorator panic when partial returns falsy f472dd48 @simonheimlicher #14419 * resources: Fix race condition in test helper 48566b6f @simonheimlicher * Fix cascade draft panic 11f7f399 @bep #14409 #14412 * hugolib: Fix multilingual alias generation 5ba03bf6 @jmooring #14388 * Fix file mount specifity issue within the same module c1b2e58b @bep #14405 * warpc: Fix typed nil return in Start 2c611091 @Sam-404-404 #14372 * hugolib: Fix relative alias generation 32334d09 @jmooring #14381 ## Improvements * Remove disableDate and disableLatLong from MetaConfig 5916b61b @bep #14437 * internal/warpc: Make webp C defaults match the Go defaults 7eafef22 @bep * testscripts: Move server tests to own folder 00c4228f @bep #14439 * testing: Skip some slow tests when not running in CI 5f5b2f37 @bep #14438 * magefile: Skip commands test when running mage check locally ef7a22a2 @bep * Remove -p 2 parallelism limit for local test runs 9a6bfe26 @bep * Add AGENTS.md and CLAUDE.md 0fc63fbf @bep * Add == and != operators to range predicates 50973e72 @bep * Add modulequeries file cache for module version queries b441472b @bep #14417 * Allow v1,v2 etc. style version names while still supporting full semver in queries ac2c3fb2 @bep #14414 * Add range matchers for site matrix vector store filtering 192e3c45 @bep #14359 * Misc webp performance work e569dd59 @bep #14370 * Move from github.com/disintegration/gift to github.com/gohugoio/gift 1a947316 @bep #14397 * resources/images: Stabilize order of valid sources in error message 8e9e04e3 @jmooring #14390 * Add XMP and IPTC image metadata support 8e2e60dd @bep #13146 * output: Add TestCanonical integration test 2bc54df6 @bep * Rename common/maps to common/hmaps (#14384) 608ed09a @bep * Decode webp.ImageConfig natively d36a8f56 @bep #14371 ## Dependency Updates * build(deps): bump golang.org/x/tools from 0.40.0 to 0.41.0 7d45614c @dependabot[bot] * build(deps): bump github.com/olekukonko/tablewriter from 1.1.2 to 1.1.3 7f12c090 @dependabot[bot] * build(deps): bump github.com/alecthomas/chroma/v2 from 2.23.0 to 2.23.1 dab2c332 @dependabot[bot] * build(deps): bump github.com/aws/aws-sdk-go-v2/service/cloudfront 576d55d0 @dependabot[bot] * build(deps): bump golang.org/x/image from 0.34.0 to 0.35.0 b9400b8a @dependabot[bot] * build(deps): bump golang.org/x/mod from 0.31.0 to 0.32.0 ce0c7f42 @dependabot[bot] * deps: Upgrade github.com/gohugoio/gift v0.1.0 => v0.2.0 77214117 @bep * build(deps): bump github.com/alecthomas/chroma/v2 from 2.22.0 to 2.23.0 18784711 @dependabot[bot] * build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 94f1ede3 @dependabot[bot] * build(deps): bump github.com/bep/lazycache from 0.8.0 to 0.8.1 ab374e3d @dependabot[bot] * deps: Upgrade github.com/alecthomas/chroma v2.21.1 => v2.22.0 1a913307 @jmooring #14368 ## Build Setup * Revert "release: Support alpha, beta, and RC releases" e66a33d3 @bep #14448 ## Documentation * misc: Update image processing description in README.md b3ea2a5f @jmooring * docs: Update docs.yaml 67b54354 @jmooring * Make docs helper maxAge JSON output user friendly 5a64551a @bep