Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Hugo to v0.123.0 #486

Closed
wants to merge 1 commit into from
Closed

Update Hugo to v0.123.0 #486

wants to merge 1 commit into from

Conversation

bot-actions[bot]
Copy link
Contributor

@bot-actions bot-actions bot commented Feb 21, 2024

👑 Hugo update!

v0.123.0 Release Notes

The work title for the v0.123.0 release has been "the million pages release", introducing a new memory limit that allows for a streaming build, shifting large objects out of memory when not in use. This release is also a rewrite of the Hugo core, fixing lots of long-lived bugs and adding some other exciting improvements (see below). There are some breaking changes that have been announced for a long time. Most sites will not be affected by this, but we recommend that you test your site with the new Hugo version before you set it up to build to production. Many people have contributed to this release, but a special shoutout goes to @bep and @jmooring, but also to @TiGR and @McShelby for their help testing and reporting bugs.

A list of notable new features:

  • You can now set a upper memory limit (default 25% of system memory) via the OS environment variable HUGO_MEMORYLIMIT (in gigabytes) allowing for much larger data/page sets and/or running on lower specced PCs. This is backed by a partitioned LRU cache used throughout Hugo. A cache that gets dynamically resized in low memory situations, allowing Go's Garbage Collector to free the memory. Note that for regular sized Hugo sites, the performance should be about the same as before.
  • New dependency tracker for partial server rebuilds. This quickly calculates the delta given a changed resource (e.g. a content file, template, JS file etc.) and supports transitive relations.
  • A new document store. Previously, a little simplified, we split the document store (where we store pages and resources) in a tree per language. This worked pretty well, but the structure made some operations harder than they needed to be. We have now restructured it into one Radix tree for all languages. Internally the language is considered to be a dimension of that tree, and the tree can be viewed in all dimensions concurrently. This makes some operations re. language simpler (e.g. finding translations is just a slice range), but the idea is that it should also be relatively inexpensive to add more dimensions if needed (e.g. role). With this we also introduce a new logical page Path which we will used going forward to support other content data sources.
  • Add warnidf template function, see docs
  • Add the [params] concept to front matter, see docs
  • Add images.Dither filter, see docs

Bug fixes

  • Fix handling of build options for term pages 5ada27bf6 @bep #12058
  • Fix sample logic when adding content files in server afe5b6d7d @bep #12054
  • all: Fix typos and some URLs 168d37578 @coliff
  • Fix handling of draft term pages fc6aabe93 @bep #12055
  • commands: Fix --clock with the list command 4835f9e89 @bep #11888
  • Fix server panic on i18n file change 9679443c1 @bep #12048
  • Fix rebuild regression on non-default content language edits 68f67c9ae @bep #12043
  • Fix i18n rebuild regression f1491c900 @bep #12039
  • Fix rebuild with resources.Concat 639073e4f @bep #12017
  • all: Fix typos 0672b5c76 @coliff
  • resources/page: Fix typo e309f82ef @rosano
  • Fix taxonomy term with backing file regression caba6ba6e @bep #12020
  • Fix rebuild of changed bundled content files a65622a13 @bep #12000
  • Fix site.Taxonomies for taxonomies with space in name 146aedd7a @bep #12001
  • Misc resource fixes/improvements 287332489 @bep #11974
  • Fix disabled languages regression 4174a7866 @bep #11959
  • tpl/data: Fix GetCSV deprecation message 5dd06b413 @jmooring
  • Fix failing test on Windows d8f0e3071 @bep
  • deploy: Fix CloudFront invalidation with AWS SDK2 d8c273417 @bep
  • Fix build error 34d63c8d1 @bep
  • Fix recent regression .Resources.Get for resources with spaces in filename 80595bbe3 @bep #11944
  • hugofs/glob: Fix dropped test error ec22bb31a @alrs

Improvements

  • Handle rebuilds when resources passed to transform.Unmarshal etc. changes 5dbc29dc6 @bep #12065
  • Don't use the same value in .Data.Term.Title as in .Title 5bdda0bdb @bep #12041
  • Let standard library handle charset parameter to MIME types 43ea2cd66 @datosh #10734
  • Add images.Dither filter 21d9057db @jmooring #8598
  • markup/goldmark: Improve TOC tests f4575e5f2 @jmooring
  • Move the duplicate page/resource filter 0851c175a @bep #12013
  • Upgrade to Go 1.22 9571246bc @bep #12010
  • Avoid impporting deploy from config when nodeploy tag is set 0257eb50a @bep #12009
  • commands: Remove unused memstats flag bd0200da6 @bep
  • source: Remove unused Filesystem struct a80c3021b @bep
  • Filter dot files etc. in i18n 9df7b295b @bep #11993
  • commands: Revert the recent changes that allowed profiling on server rebuilds c37bf19c8 @bep
  • Handle resource changes when the resources is already evicted from cache 609d798e3 @bep #11988 #11973 #11988
  • all: Rename Unmormalized => Unnormalized 53f204310 @bep
  • hugolib: Formally deprecate .Page.NextPage .Page.PrevPage 7f8246140 @jmooring
  • hugio: Rename strigReadSeeker => stringReadSeeker b72f90972 @bep
  • resources/page: Formally deprecate .Site.LastChange 3a665ddbf @jmooring
  • Preserve file/dir name case when loading data 46575baa0 @bep #11979
  • Detect now invalid path patterns in cascade 058f230a1 @bep #11977
  • Handle build vs _build in front matter a66480f70 @bep #11970
  • resources: Optimize reading resource Content when it's already a string e33a63255 @bep
  • tpl/tplimpl: Update embedded instagram, twitter, and vimeo shortcodes d0788b96a @jmooring #11971
  • Add some more context to error 034fbef50 @bep #11970
  • Improve nilpointer error message 8d42a7942 @bep
  • hugolib: Adjust a test case f5ec75db3 @bep
  • hugolib: Revert deprecation of .Page.Lang 6cb3bda3d @jmooring
  • all: Deprecate .Page.Lang and .Page.File.Lang 963cecc12 @jmooring
  • config/security: Add SYSTEMDRIVE to OsEnv allowlist b6def6172 @jmooring
  • hugolib: Add some more details to the "paginator not supported" error 1891d5e6b @bep #11949
  • Run go mod tidy 156f08de3 @bep
  • Upgrade to deploy to use AWS SDK V2 a1c64989d @frankywahl
  • Improve error message when attempting to paginate from a single page template 6c3b6ba3e @bep #11953
  • Filter out duplicate content resource files bd66d3029 @bep #11946
  • output: Prevent setting Name directly in new output formats 309d61b22 @bep #11947
  • Create default link and image render hooks 5b7cb258e @bep #11933
  • Emit a warning that can be turned off when overwriting built-in .Params values afee781f0 @bep #11941
  • Add warnidf template function 4e84f57ef @bep #9189
  • Add path, kind and lang to content front matter f31a6db79 @bep #11544
  • all: Run gofumpt -l -w . a795acbcd @bep
  • testing: Simplify some integration tests 982d9513e @bep
  • Add the [params] concept to front matter 6dedb4efc @bep #11055
  • tpl/data: Deprecate data.GetJSON and data.GetCSV 292626e67 @bep
  • modules: Print required Hugo version for incompatible modules 60d954c78 @razonyang
  • hugolib: Remove unused test image 63e0a9289 @bep
  • navigation: Improve menu cache ce7daa615 @Kandulanaveennaidu
  • testing: Rename integration_test.go to PACKAGE_integration_test.go 2a0329423 @bep
  • Port some integration tests to new test setup 50dc327d1 @bep
  • all: Rework page store, add a dynacache, improve partial rebuilds, and some general spring cleaning 7285e7409 @bep #11455 #11455 #11549 #10169 #10364 #10482 #10630 #10656 #10694 #10918 #11262 #11439 #11453 #11457 #11466 #11540 #11551 #11556 #11654 #11661 #11663 #11664 #11669 #11671 #11807 #11808 #11809 #11815 #11840 #11853 #11860 #11883 #11904 #7388 #7425 #7436 #7544 #7882 #7960 #8255 #8307 #8863 #8927 #9192 #9324

Dependency Updates

  • build(deps): bump github.com/tdewolff/minify/v2 from 2.20.16 to 2.20.17 f54ba6f9e @dependabot[bot]
  • build(deps): bump github.com/evanw/esbuild from 0.20.0 to 0.20.1 4019b177e @dependabot[bot]
  • build(deps): bump golang.org/x/tools from 0.17.0 to 0.18.0 4a53fd56b @dependabot[bot]
  • build(deps): bump golang.org/x/net from 0.20.0 to 0.21.0 2d1681d91 @dependabot[bot]
  • build(deps): bump golang.org/x/mod from 0.14.0 to 0.15.0 301bafabe @dependabot[bot]
  • build(deps): bump github.com/yuin/goldmark from 1.6.0 to 1.7.0 58d7f8339 @dependabot[bot]
  • build(deps): bump github.com/getkin/kin-openapi from 0.122.0 to 0.123.0 54ad51e8a @dependabot[bot]
  • build(deps): bump github.com/tdewolff/minify/v2 from 2.20.13 to 2.20.16 bd1bcc0f9 @dependabot[bot]
  • build(deps): bump github.com/evanw/esbuild from 0.19.12 to 0.20.0 b332f243f @dependabot[bot]
  • deps: Update gocloud.dev/aws d8e1e8218 @bep
  • build(deps): bump github.com/aws/aws-sdk-go from 1.48.6 to 1.50.7 4d98b0ed6 @dependabot[bot]
  • build(deps): bump golang.org/x/image from 0.14.0 to 0.15.0 15b9976b7 @dependabot[bot]

Documentation

  • docs: Regen docshelper 60b176cb5 @bep
  • docs: Regen CLI docs 068ccde4c @bep
  • docs: Regenerate docshelper 7cb447ab8 @bep
  • docs: Make null booleans falsy in the docs helper 51615440b @bep
  • docs: Regen docs helper 7caa5b3e5 @bep
  • docs: Prepare for new sub tree fc7de7136 @bep #11925

Build Setup

  • markup/goldmark: Update TOC test 6f59d96bb @jmooring

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

Successfully merging this pull request may close these issues.

1 participant