Releases: mandelsoft/spiff
v1.7.0-beta-8
Features:
filterstatement replacesselect- function
optional(cond,value)provide a value, if a condition is defined and evaluated to true, otherwise undefined is provided - function
deepmergeto offer a deep merge of map elements
Fixes:
- fix string interpolation, assure correct evaluation priority for nested expressions
- fix delayed list merge
- marshal non-printable characters
Control Fix
Fixes:
- Control structures might panic if they resolve to a pure value.
The List-Merge Release
Fixes:
- Major fix for merging list entries
Under certain conditions, the merge of list entries provides unexpected and wrong results, because it overwrite the wrong entries.
This fix reworks the complete list merge to work correctly. - Improve handling of virtual filesystems
OS calls likeexecare prohibited if a virtual file system is given. Unfortunately it only checks whether such a filesystem is given.
It does not take into account, that the given filesystem might be the OS filesystem. This is fixed.
Additionally we now build windows binaries and there is a simple build target in the makefile.
v1.7.0-beta-5
Features:
- support ~ in file paths
- function
containsnow supports checking keys in maps
Fixes:
- package spiffing: fix registry creation for adding function to spiff context
v1.7.0-beta-4
-
support of multi-dimensional index operator (
matrix[1,2]) -
enable ref through completed paths in partly resolved collections
-
support of root level indexing (
.[index]) on lists and maps -
support disabeing interpretation of keyed list entries
-
keyed list entry stub merging for lists with unique key set, only
-
support of deep structures for option
-D -
upgate Gg version to 1.18
v1.7.0-beta-3 (The Control Release)
- Semver support based on Masterminds Semver Library
There is a set of functions to examine, match, validate and modify semantic version names. - Dynamic merge support for overwriting of fields. Instead of inheriting a fixed value through the processing chain it is now possible
to dynamically evaluate an inherited template expression in the context of every overwrite action. - command execution result cache now in execution state
- IP arithmetic o CIDRs
- YAML based control structures
- ARM support for Linux
Fixes:
- synchronized access to command execution result cache
- missing
typesupport forfloat - documentation fixes
v1.7.0-beta-2
The beta-2 release introduces a new tag feature. Tags offer separate namespaces to resolve reference expressions in addition to the default document namespace. Any document node can be tagged. Using this tag in reference expressions as qualifier can be used to lookup a reference in the value of the tag,
Tags can be used in a multi-document template stream processing to provide cross-document information. Global tags are also passed along the stub merges.
A Tag may consist of a sequence of tag components to provide a structured namespace. This can be used to resolve a reference path in a tag hierarchy by the first matching tree level.
v1.7.0-beta-1
This release offers a first draft version for string interpolation. It is now possible to incorporate dynaml expressions in regular yaml string values. This way string composition can be directly expressed:
name: alice
dnsname: (( name )).spiff.mandelsoft.orgBecause this alpha feature is not compatible with the previous behaviour, it must be enabled by using the environment variable SPIFF_FEATURES=interpolation, or by using the command line option --interpolation.
Additionally a whole bunch of go's math functions for floats is now available as dynaml functions, like ceil, abs, sin and much more. Type conversions are possible using the integer, string, float and bool functions.
It also fixes the evaluation of qualified reference expressions. It is possible now to refer to catch(expr).error.
The state library and depending libraries have been extended to enable the usage of their functions in dynaml expressions generating intermediate (non-static) structural elements for the final document.
The project now uses go modules instead of godep and tool dependencies for the peg parser generator. It uses go generate to generate the parser now.
v1.6.1
Various fixes
- fix error propagation for ||
- error messages for http(s) access
- cert lib fix
- use crypto lib for wireguard keys
Features:
map{}on lists- multi document write mode
- merge option
--evaluateto evaluate expression - more validation operators for comparison of numbers and strings
- state lib now supports adaption of stub path for state access
v1.6.0
Dynaml Features
- access to value bindings (
___) - public key extraction from certificate
- wireguard key support
- merging root nodes
- function
contains_ip - function
checkto check yaml struction likevalidatebut without error
Options and Commands
- option
--defineto declare bindings on the command line - option
--bindingsto pass value bindings from file - command
convertto convert yaml/json to json/yaml
Go API
some more spiffing utility functions