Hugo 0.94.0 Released

This is a good one, spread the news.

20% faster can’t wait for the brew release :star_struck: to test a news site which previously did around 6 minutes.

special thanks :pray: to @jmooring for changing the default behaviour of empty space.

Hugo 0.94.0 packages

Brew - Hugo Brew package for macOS and Linux - updated :white_check_mark:
Snap Package - Hugo Snap (Snapcraft) package for Linux

  • traditional release - updated :white_check_mark:
  • extended release - updated :white_check_mark:

Docker/CI Image - Hugo Docker image for Continuous Integration - updated :white_check_mark:
Docker Image - klakegg/hugo - Other Hugo Docker image - not yet updated :x:
Debian (sid) - not yet updated :x: (Track link)
Ubuntu (hirsute) - not yet updated :x: (Track link )
Fedora Copr - Hugo RPM package for Fedora and CentOS - not yet updated :x:
Chocolatey Package - Hugo Chocolatey package for Windows

Looking for your feedback. Also waiting for brew to start testing other sites.

wow so here are the results I see

Start building sites … 
hugo v0.93.3+extended darwin/amd64 BuildDate=unknown

                   | EN  
-------------------+-----
  Pages            | 13  
  Paginator pages  |  0  
  Non-page files   |  1  
  Static files     | 38  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

Built in 7902 ms
Start building sites … 
hugo v0.94.0+extended darwin/amd64 BuildDate=unknown

                   | EN  
-------------------+-----
  Pages            | 13  
  Paginator pages  |  0  
  Non-page files   |  1  
  Static files     | 38  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

Built in 6818 ms

An image heavy Hugo site:

Start building sites … 
hugo v0.92.2+extended darwin/amd64 BuildDate=unknown

                   |  EN  | EL  
-------------------+------+-----
  Pages            |   17 | 16  
  Paginator pages  |    0 |  0  
  Non-page files   |    4 |  1  
  Static files     |   46 | 46  
  Processed images | 1151 | 24  
  Aliases          |    1 |  0  
  Sitemaps         |    2 |  1  
  Cleaned          |    0 |  0  

Built in 9761 ms
Start building sites … 
hugo v0.94.0+extended darwin/amd64 BuildDate=unknown

                   |  EN  | EL  
-------------------+------+-----
  Pages            |   17 | 16  
  Paginator pages  |    0 |  0  
  Non-page files   |    4 |  1  
  Static files     |   46 | 46  
  Processed images | 1149 | 24  
  Aliases          |    1 |  0  
  Sitemaps         |    2 |  1  
  Cleaned          |    0 |  0  

Built in 6991 ms

I can verify the speed increase almost upto 30% on some sites when running the simple Hugo server. amazing work :clap:

hugo

There is visible improvement on local deployment on my end as well but whats more reliable is to get this tested in production.

Here is mine on netlify for

7:25:40 PM: hugo v0.93.2-643B5AE9+extended linux/amd64 BuildDate=2022-03-04T12:21:49Z VendorInfo=gohugoio
7:25:57 PM:                    |  PL  | EN
7:25:57 PM: -------------------+------+------
7:25:57 PM:   Pages            | 3192 | 365
7:25:57 PM:   Paginator pages  |  237 |  19
7:25:57 PM:   Non-page files   | 2523 |   0
7:25:57 PM:   Static files     |   12 |  12
7:25:57 PM:   Processed images |    0 |   0
7:25:57 PM:   Aliases          | 1515 | 168
7:25:57 PM:   Sitemaps         |    2 |   1
7:25:57 PM:   Cleaned          |    0 |   0
7:25:57 PM: Total in 17047 ms
4:04:45 PM: hugo v0.94.0-63B23660+extended linux/amd64 BuildDate=2022-03-10T09:46:36Z VendorInfo=gohugoio
4:04:49 PM:                    |  PL  | EN
4:04:49 PM: -------------------+------+------
4:04:49 PM:   Pages            | 3192 | 365
4:04:49 PM:   Paginator pages  |  237 |  19
4:04:49 PM:   Non-page files   | 2523 |   0
4:04:49 PM:   Static files     |   12 |  12
4:04:49 PM:   Processed images |    0 |   0
4:04:49 PM:   Aliases          | 1515 | 168
4:04:49 PM:   Sitemaps         |    2 |   1
4:04:49 PM:   Cleaned          |    0 |   0
4:04:49 PM: Total in 3984 ms

So yeah, you can see the difference.

11:14:08 AM: $ hugo --gc --minify
11:14:08 AM: Start building sites …
11:14:08 AM: hugo v0.93.2-643B5AE9+extended linux/amd64 BuildDate=2022-03-04T12:21:49Z VendorInfo=gohugoio
11:14:18 AM:                    |  EN
11:14:18 AM: -------------------+-------
11:14:18 AM:   Pages            | 1926
11:14:18 AM:   Paginator pages  |  149
11:14:18 AM:   Non-page files   | 1191
11:14:18 AM:   Static files     |   11
11:14:18 AM:   Processed images |    0
11:14:18 AM:   Aliases          |  971
11:14:18 AM:   Sitemaps         |    1
11:14:18 AM:   Cleaned          |    0
11:14:18 AM: Total in 10156 ms
3:59:44 PM: hugo v0.94.0-63B23660+extended linux/amd64 BuildDate=2022-03-10T09:46:36Z VendorInfo=gohugoio
3:59:46 PM:                    |  EN
3:59:46 PM: -------------------+-------
3:59:46 PM:   Pages            | 1926
3:59:46 PM:   Paginator pages  |  149
3:59:46 PM:   Non-page files   | 1191
3:59:46 PM:   Static files     |   11
3:59:46 PM:   Processed images |    0
3:59:46 PM:   Aliases          |  971
3:59:46 PM:   Sitemaps         |    1
3:59:46 PM:   Cleaned          |    0
3:59:46 PM: Total in 2307 ms
8:33:30 PM: $ hugo --gc --minify
8:33:30 PM: Start building sites …
8:33:30 PM: hugo v0.93.2-643B5AE9+extended linux/amd64 BuildDate=2022-03-04T12:21:49Z VendorInfo=gohugoio
8:33:37 PM:                    |  PL
8:33:37 PM: -------------------+-------
8:33:37 PM:   Pages            | 1975
8:33:37 PM:   Paginator pages  |  234
8:33:37 PM:   Non-page files   | 1099
8:33:37 PM:   Static files     |   84
8:33:37 PM:   Processed images |    0
8:33:37 PM:   Aliases          |  818
8:33:37 PM:   Sitemaps         |    1
8:33:37 PM:   Cleaned          |    0
8:33:37 PM: Total in 6895 ms
4:02:50 PM: hugo v0.94.0-63B23660+extended linux/amd64 BuildDate=2022-03-10T09:46:36Z VendorInfo=gohugoio
4:02:53 PM:                    |  PL
4:02:53 PM: -------------------+-------
4:02:53 PM:   Pages            | 1975
4:02:53 PM:   Paginator pages  |  234
4:02:53 PM:   Non-page files   | 1099
4:02:53 PM:   Static files     |   84
4:02:53 PM:   Processed images |    0
4:02:53 PM:   Aliases          |  818
4:02:53 PM:   Sitemaps         |    1
4:02:53 PM:   Cleaned          |    0
4:02:53 PM: Total in 2599 ms

BTW
really pleased that linkifyProtocol is set to https by default and language in template for alias redirects.

what this is an average of 70% difference almost twice the speed!

Build time dropped from 18.6 seconds to 13.7 :confetti_ball:, but the diff output compared to 0.93.3 was massive due to the pretty-printing of every meta-refresh page (I have ~3,000 aliases referencing the old MovableType structure of my blog, plus the usual pagination aliases):

hugo v0.94.0-63B23660 darwin/amd64 BuildDate=2022-03-10T09:46:36Z VendorInfo=gohugoio

                   |  EN   
-------------------+-------
  Pages            | 5842  
  Paginator pages  | 1190  
  Non-page files   |   92  
  Static files     |  100  
  Processed images |    0  
  Aliases          | 2849  
  Sitemaps         |    0  
  Cleaned          |    0  

Total in 13682 ms

The site is functionally identical, but page aliases are now 10 lines of neatly-indented HTML instead of a one-liner with no newline at the end.

-j

Yea, well – I thought a little before merging that PR, but it’s certainly much easier to maintain a neatly-indented template and the minifier has starting to behave lately.

Pretty spiffy!

You can dig up the old template here and copy it into you layouts folder:

Thanks. I’m good with the change, I just called it out because the extra 40,000 lines of diff output made it more difficult to confirm that my site was still building correctly.

-j

There was an unfortunate upstream regression brought to our attention by @bugsysailor.

If you have this in your site configuration:

[markup.goldmark.renderer]
unsafe = true

And your markdown contains an inline HTML comment such as:

Thank goodness <!-- no one will ever see this -->.

The comment will be visible on the rendered page:

image

This was introduced in v0.93.3, and the upstream maintainer of the markdown renderer is now aware of the regression.

Very impressed by the speed upgrades!

                   | EN
-------------------+------
  Pages            | 684
  Paginator pages  |   0
  Non-page files   | 196
  Static files     | 112
  Processed images | 700
  Aliases          |   0
  Sitemaps         |   0
  Cleaned          |   0

Total in 4793 ms


                   | EN   
-------------------+------
  Pages            | 684
  Paginator pages  |   0
  Non-page files   | 196
  Static files     | 112
  Processed images | 700
  Aliases          |   0
  Sitemaps         |   0
  Cleaned          |   0

Total in 1308 ms



                   |  EN  |  BE  |  NL  |  ES  |  DE
-------------------+------+------+------+------+-------
  Pages            |  268 |  251 |  458 |  222 |  220
  Paginator pages  |    4 |    2 |   14 |    2 |    2
  Non-page files   | 1055 | 1056 | 1307 |  982 | 1018
  Static files     |   70 |   70 |   70 |   70 |   70
  Processed images | 2049 | 1897 | 3355 | 1377 | 1627
  Aliases          |   17 |   15 |   21 |   11 |    4
  Sitemaps         |    2 |    1 |    1 |    1 |    1
  Cleaned          |    0 |    0 |    0 |    0 |    0

Total in 13491 ms


                   |  EN  |  BE  |  NL  |  ES  |  DE
-------------------+------+------+------+------+-------
  Pages            |  268 |  251 |  458 |  222 |  220
  Paginator pages  |    4 |    2 |   14 |    2 |    2
  Non-page files   | 1055 | 1056 | 1307 |  982 | 1018
  Static files     |   70 |   70 |   70 |   70 |   70
  Processed images | 1899 | 1867 | 3262 | 1342 | 1628
  Aliases          |   17 |   15 |   21 |   11 |    4
  Sitemaps         |    2 |    1 |    1 |    1 |    1
  Cleaned          |    0 |    0 |    0 |    0 |    0

Total in 7172 ms

@frankspin89 can I ask you what hardware you ran your tests? I ask because I does not notice that big of an improvement on my MacBook, and I suspect that the nature of the “performance patch” I applied in 0.94.0 does not have that big of an effect on beefier hardware (I have one of the newer MacBook M1 Pro’s with 32 GB of memory).

@bep

  • Windows 11 Pro
  • AMD Ryzen 5 5600X 6-Core Processor, 3701 Mhz, 6 Core(s), 12 Logical Processor(s)
  • ROG STRIX B550-F GAMING (WI-FI)
  • Nvidia Gefore rtx 3070
  • 64 GB memory

Looks as if @yuin pushed a fix for this in the goldmark repo. 0.94.1 incoming? :grinning:

@frankspin89 that’s some impressive hardware!

@bwintx I think the Hugo Release Team has taken an early weekend.

And well-deserved (the early weekend, I mean).