Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
Binaries are compiled against golang 1.7.4. This should solve any issues with using spiff binaries on Mac OSX Sierra.
- Added documentation
- Add file path of stub in errors
- Bump dependencies (resolving an issue with unspecified tags)
Minor updates since 1.0:
- added a
diff, which works will with
- switched to candiedyaml
- built with Go 1.3, with a fix for a map ordering bug
This release includes a few long-awaited features, and one backwards-incompatible change.
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.)
2014/03/01 18:21:56 error generating manifest: unresolved nodes: (( merge )) in fail.yml foo.bar. (( a + b )) in fail.yml foo.bar. (( auto )) in fail.yml foo.bar. (( foo(1, 2) )) in fail.yml foo.bar. (( a b )) in fail.yml foo.bar. (( a || b )) in fail.yml foo.bar. (( .a.b.c )) in fail.yml foo.bar. (( 1 - a )) in fail.yml foo.bar.
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.
foo: a: 1 b: 2 bar: <<: (( foo )) # any dynaml expression b: 3
foo: a: 1 b: 2 bar: a: 1 b: 3
bar: - 1 - 2 foo: - 3 - <<: (( bar )) - 4
bar: - 1 - 2 foo: - 3 - 1 - 2 - 4
A common use-case for this is merging jobs into an existing list of jobs.
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
- 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.
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