Releases: cloudfoundry-incubator/spiff
1.0.8
1.0.7
v1.0.6
v1.0.5
v1.0.4
Minor changes:
- Added documentation
- Add file path of stub in errors
- Bump dependencies (resolving an issue with unspecified tags)
v1.0.3
Minor updates since 1.0:
- added a
-separator
flag todiff
, which works will withawk
- switched to candiedyaml
- built with Go 1.3, with a fix for a map ordering bug
v1.0
This release includes a few long-awaited features, and one backwards-incompatible change.
new features
helpful error messages
Previously spiff would insult your intelligence if you failed to construct a valid set of templates. Now it'll print helpful information. For each node that failed to resolve, the node will now be pretty-printed (instead of dumped raw), and its originating file will be listed, as well as the 'reference path' to the node in the file. (Line numbers are not provided; it's kind of hard to add without writing my own YAML parser.)
Example:
2014/03/01 18:21:56 error generating manifest: unresolved nodes:
(( merge )) in fail.yml foo.bar.[0]
(( a + b )) in fail.yml foo.bar.[1]
(( auto )) in fail.yml foo.bar.[2]
(( foo(1, 2) )) in fail.yml foo.bar.[3]
(( a b )) in fail.yml foo.bar.[6]
(( a || b )) in fail.yml foo.bar.[10]
(( .a.b.c )) in fail.yml foo.bar.[11]
(( 1 - a )) in fail.yml foo.bar.[13]
references from the root of the document
A reference preceded with a dot (e.g. `.properties.foo) will now start lookup from the root of the document. Previously you would have to define some other value and reference it to get out of a nested scope that had the same name as an outer value.
merging maps
foo:
a: 1
b: 2
bar:
<<: (( foo )) # any dynaml expression
b: 3
yields:
foo:
a: 1
b: 2
bar:
a: 1
b: 3
merging lists
bar:
- 1
- 2
foo:
- 3
- <<: (( bar ))
- 4
yields:
bar:
- 1
- 2
foo:
- 3
- 1
- 2
- 4
A common use-case for this is merging jobs into an existing list of jobs.
backwards-incompatible changes
This version is a major bump because the semantics of merging arrays in templates has changed. Previously merging the following:
- a
- b
- c
- d
- e
...would yield:
- d
- e
- c
Which is pretty useless and kind of dangerous (imagine merging static IP range configurations). It's unlikely that anyone is depending on this feature (it's probably been encountered accidentally), but it's still backwards-incompatible.
Release v0.3
new features:
- higher version number (spiff --version is not 0.0.0)
Release v0.2
new features to blow your mind:
- list concatenation
Release v0.1
This is the initial release of Spiff, arbitrarily chosen off HEAD.
Recent new features that it has:
- support for static_ips(...) across subnets
- now supports hyphens in identifiers