Skip to content

Commit 23f2527

Browse files
committed
internal/cueexperiment: file embedding is always on now
The experiment was added in v0.10.0, and enabled by default in v0.12.0. The ability to disable the feature is removed for the upcoming v0.14. Tweak cueexperiment.TestInit to use active experiments too. Signed-off-by: Daniel Martí <[email protected]> Change-Id: I4f084366c94715cc43aa098ccd9551435d539736 Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1216091 Unity-Result: CUE porcuepine <[email protected]> TryBot-Result: CUEcueckoo <[email protected]> Reviewed-by: Roger Peppe <[email protected]>
1 parent fc8460b commit 23f2527

File tree

5 files changed

+13
-22
lines changed

5 files changed

+13
-22
lines changed

cmd/cue/cmd/help.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,6 @@ can be embedded. Embedding is forbidden when outside a module.
257257
258258
Note that embedding CUE files is not supported at this time.
259259
260-
For the time being, embedding support can still be disabled via
261-
CUE_EXPERIMENT=embed=0.
262-
263260
For more details and discussion, see the proposal linked from
264261
https://cuelang.org/discussion/3264.
265262
`[1:],
@@ -303,9 +300,6 @@ If an environment variable is unset or empty, sensible default setting is used.
303300
evalv3 (default true)
304301
Enable the new CUE evaluator, addressing performance issues
305302
and bringing a better disjunction algorithm.
306-
embed (default true)
307-
Enable support for embedded data files as described in
308-
https://cuelang.org/discussion/3264.
309303
toposort (default true)
310304
Enable topological sorting of struct fields.
311305
Provide feedback via https://cuelang.org/issue/3558

cmd/cue/cmd/root.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,10 @@ func mkRunE(c *Command, f runFunction) func(*cobra.Command, []string) error {
135135
if wasmInterp != nil {
136136
opts = append(opts, cuecontext.Interpreter(wasmInterp))
137137
}
138-
// CUE_EXPERIMENT=embed should probably be obeyed by [cuecontext.New] just like
139-
// other flags such as evalv3 or toposort. Currently that causes an import cycle.
138+
// Embedding should work with [cuecontext.New] too.
139+
// Currently that causes an import cycle.
140140
// See: https://cuelang.org/issue/3613
141-
if cueexperiment.Flags.Embed {
142-
opts = append(opts, cuecontext.Interpreter(embed.New()))
143-
}
141+
opts = append(opts, cuecontext.Interpreter(embed.New()))
144142
c.ctx = cuecontext.New(opts...)
145143
// Some init work, such as in internal/filetypes, evaluates CUE by design.
146144
// We don't want that work to count towards $CUE_STATS.

cmd/cue/cmd/testdata/script/embed.txtar

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Embedding is enabled by default, but it can still be disabled.
1+
# Embedding can no longer be disabled.
22
env CUE_EXPERIMENT=embed=0
33
! exec cue eval
44
cmp stderr out/noembed
@@ -151,8 +151,7 @@ language: version: "v0.9.0"
151151
}
152152
}
153153
-- out/noembed --
154-
no interpreter defined for "embed":
155-
./test.cue:1:1
154+
cannot parse CUE_EXPERIMENT: cannot change default value of deprecated flag "embed"
156155
-- out/eval --
157156
a: {
158157
x: 34

internal/cueexperiment/exp.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ var Flags struct {
1515
// and bringing better algorithms for disjunctions, closedness, and cycles.
1616
EvalV3 bool `envflag:"default:true"`
1717

18-
// Embed enables support for embedded data files as described in
19-
// https://cuelang.org/discussion/3264.
20-
// TODO(v0.14): deprecate this flag to forbid disabling this feature.
21-
Embed bool `envflag:"default:true"`
22-
2318
// TopoSort enables topological sorting of struct fields.
2419
// Provide feedback via https://cuelang.org/issue/3558.
2520
// TODO(v0.14): deprecate this flag to forbid disabling this feature.
@@ -49,6 +44,11 @@ var Flags struct {
4944
// to ensure consistency with 32-bit platforms.
5045
// This experiment ran from late 2024 to mid 2025.
5146
DecodeInt64 bool `envflag:"deprecated,default:true"`
47+
48+
// Embed enables support for embedded data files as described in
49+
// https://cuelang.org/discussion/3264.
50+
// This experiment ran from mid 2024 to mid 2025.
51+
Embed bool `envflag:"deprecated,default:true"`
5252
}
5353

5454
// Init initializes Flags. Note: this isn't named "init" because we

internal/cueexperiment/exp_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88

99
func TestInit(t *testing.T) {
1010
// This is just a smoke test to make sure it's all wired up OK.
11-
t.Setenv("CUE_EXPERIMENT", "evalv3,embed=0")
11+
t.Setenv("CUE_EXPERIMENT", "evalv3=0,cmdreferencepkg")
1212
err := Init()
1313
qt.Assert(t, qt.IsNil(err))
14-
qt.Assert(t, qt.IsTrue(Flags.EvalV3))
15-
qt.Assert(t, qt.IsFalse(Flags.Embed))
14+
qt.Assert(t, qt.IsFalse(Flags.EvalV3))
15+
qt.Assert(t, qt.IsTrue(Flags.CmdReferencePkg))
1616
}

0 commit comments

Comments
 (0)