Skip to content

Releases: mandelsoft/spiff

v1.7.0-beta-8

09 Dec 20:00
528d05a

Choose a tag to compare

Features:

  • filter statement replaces select
  • function optional(cond,value) provide a value, if a condition is defined and evaluated to true, otherwise undefined is provided
  • function deepmerge to 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

24 Feb 10:39
c5d636e

Choose a tag to compare

Fixes:

  • Control structures might panic if they resolve to a pure value.

The List-Merge Release

14 Oct 16:41
1572b69

Choose a tag to compare

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 like exec are 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

25 May 12:39

Choose a tag to compare

Features:

  • support ~ in file paths
  • function contains now supports checking keys in maps

Fixes:

  • package spiffing: fix registry creation for adding function to spiff context

v1.7.0-beta-4

21 Feb 16:13

Choose a tag to compare

  • 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)

16 Jan 11:20
8643998

Choose a tag to compare

Pre-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 type support for float
  • documentation fixes

v1.7.0-beta-2

29 May 21:05

Choose a tag to compare

v1.7.0-beta-2 Pre-release
Pre-release

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

28 Apr 12:45

Choose a tag to compare

v1.7.0-beta-1 Pre-release
Pre-release

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.org

Because 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

09 Apr 08:32

Choose a tag to compare

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 --evaluate to 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

04 Apr 14:35

Choose a tag to compare

Dynaml Features

  • access to value bindings (___)
  • public key extraction from certificate
  • wireguard key support
  • merging root nodes
  • function contains_ip
  • function check to check yaml struction like validate but without error

Options and Commands

  • option --define to declare bindings on the command line
  • option --bindings to pass value bindings from file
  • command convert to convert yaml/json to json/yaml

Go API

some more spiffing utility functions