common/hugo: Deprecate extended and extended_withdeploy editions

Closes #14696
This commit is contained in:
Joe Mooring
2026-04-06 13:07:32 -07:00
committed by Bjørn Erik Pedersen
parent 8f94d65cac
commit a17bdbc5fa
4 changed files with 52 additions and 1 deletions
+2
View File
@@ -39,6 +39,7 @@ import (
"github.com/gohugoio/hugo/common/hstrings"
"github.com/gohugoio/hugo/common/htime"
"github.com/gohugoio/hugo/common/hugo"
"github.com/gohugoio/hugo/common/loggers"
"github.com/gohugoio/hugo/common/paths"
"github.com/gohugoio/hugo/common/types"
@@ -454,6 +455,7 @@ func (r *rootCommand) PreRun(cd, runner *simplecobra.Commandeer) error {
}
// Set up the global logger early to allow info deprecations during config load.
loggers.SetGlobalLogger(r.logger)
hugo.WarnDeprecatedEdition()
r.changesFromBuild = make(chan []identity.Identity, 10)
+12
View File
@@ -304,6 +304,18 @@ func IsDartSassGeV2() bool {
return !strings.Contains(DartSassBinaryName, "embedded")
}
// WarnDeprecatedEdition emits a deprecation warning if the running binary is
// the extended or extended_withdeploy edition.
func WarnDeprecatedEdition() {
if IsExtended {
if IsWithdeploy {
Deprecate("the extended_withdeploy edition of the Hugo executable", "Use the withdeploy edition instead.", "v0.161.0")
} else {
Deprecate("the extended edition of the Hugo executable", "Use the standard edition instead.", "v0.161.0")
}
}
}
// Deprecate informs about a deprecation starting at the given version.
//
// A deprecation typically needs a simple change in the template, but doing so will make the template incompatible with older versions.
+37
View File
@@ -14,11 +14,13 @@
package hugo
import (
"bytes"
"context"
"testing"
"github.com/bep/logg"
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/common/loggers"
)
func TestDeprecationLogLevelFromVersion(t *testing.T) {
@@ -59,3 +61,38 @@ func TestGetBuildInfo(t *testing.T) {
c.Assert(bi.GoVersion, qt.Not(qt.Equals), "")
}
}
func TestWarnDeprecatedEdition(t *testing.T) {
c := qt.New(t)
origExtended, origWithdeploy := IsExtended, IsWithdeploy
t.Cleanup(func() {
IsExtended = origExtended
IsWithdeploy = origWithdeploy
loggers.SetGlobalLogger(nil)
})
var buf bytes.Buffer
loggers.SetGlobalLogger(loggers.New(loggers.Options{Level: logg.LevelInfo, StdErr: &buf}))
IsExtended = true
IsWithdeploy = false
WarnDeprecatedEdition()
c.Assert(buf.String(), qt.Contains, "the extended edition of the Hugo executable")
c.Assert(buf.String(), qt.Contains, "Use the standard edition instead")
buf.Reset()
IsExtended = true
IsWithdeploy = true
WarnDeprecatedEdition()
c.Assert(buf.String(), qt.Contains, "the extended_withdeploy edition of the Hugo executable")
c.Assert(buf.String(), qt.Contains, "Use the withdeploy edition instead")
buf.Reset()
IsExtended = false
IsWithdeploy = false
WarnDeprecatedEdition()
c.Assert(buf.String(), qt.Equals, "")
}
@@ -1,6 +1,6 @@
hugo --minify --logLevel=info
! stderr 'deprecated'
! stderr 'deprecated.*minifyOutput'
grep '<p>one</p><p>two</p>' public/index.html
-- hugo.toml --