In line with our aim to release smaller changes more frequently on our way to language stability, the v0.4.0
release comes just under two months after v0.3.0
. It includes one language addition, a fairly significant reshaping of the API and tooling improvements, as well as the usual host of bug fixes, and performance and error message enhancements.
This release includes a more comprehensive implementation of protobuf, supporting textproto and JSON protobuf mappings, and paves the way for binary protobuf support. See the v0.4.0-alpha.1
release notes for more details.
This release also sets the direction for the CUE API, and brings the overall API much closer to where we would like it to go in the run up to v1.0.0
. It also prepares the API for the query extension. See the v0.4.0-alpha.2
release notes for more details.
The v0.4.0
minor release follows the pre-v1.0.0
release policy described in the v0.3.0
release notes: it contains backwards incompatible changes discussed below.
As a reminder: users can register their projects with unity
. unity
is used to ensure that a project's CUE evaluations do not unexpectedly stop working, or regress in terms of performance. We are in the process of adding support for API-based tests, as well as private instances.
Language additions
- Value aliases:
v0.4.0-beta.1
Tooling
- Tag variables to inject contextual system values:
v0.4.0-beta.1
- Binary file type:
v0.4.0-beta.1
API additions
Context.NewList
:v0.4.0-beta.1
Value.FillPath
:v0.4.0-beta.1
Context.Encode
:v0.4.0-beta.1
- The
cue.Path
model:v0.4.0-alpha.2
- Phasing out
Instance
:v0.4.0-alpha.2
Context
to replaceRuntime
:v0.4.0-alpha.2
Value.Allows
:v0.4.0-alpha.2
CUE package additions
crypto/hmac
:v0.4.0-beta.1
uuid
:v0.4.0-beta.1
Performance and error handling
- Error message tuning:
v0.4.0-alpha.2
- Fix for pathological performance hit when using
Fill
orUnify
:v0.4.0-alpha.2
Backwards incompatible changes
- Dropped support for old-style aliases:
v0.4.0-beta.1
- Dropped support for old-style comprehensions:
v0.4.0-beta.1
- Removed
ast.TemplateLabel
type from API:v0.4.0-beta.1
Value.Expr
:v0.4.0-beta.1
Value.Decode
:v0.4.0-beta.1
Value.Format
implementation:v0.4.0-alpha.2
cue/encoding
:v0.4.0-alpha.2
@protobuf
tag:v0.4.0-alpha.1
- JSON mappings:
v0.4.0-alpha.1
- Enum mappings:
v0.4.0-alpha.1
Changelog
b39a2d0 cmd/cue/cmd: avoid roundtrip when printing non-CUE in eval
3b0a537 cmd/cue/cmd: fix bug in resolving builtin package shorthands
cd94426 cue: don't extract embedded values
37bf801 cue: keep sane references for embedded disjunctions in Expr
a4e0f52 encoding/openapi: detect cycles when expanding references