@dsabeti dsabeti released this Jan 6, 2017 · 2 commits to master since this release

Assets 4

Binaries are compiled against golang 1.7.4. This should solve any issues with using spiff binaries on Mac OSX Sierra.

@Amit-PivotalLabs Amit-PivotalLabs released this Apr 7, 2015 · 24 commits to master since this release

Assets 4

Minor changes:

  • Added documentation
  • Add file path of stub in errors
  • Bump dependencies (resolving an issue with unspecified tags)

@vito vito released this Sep 14, 2014 · 31 commits to master since this release

Assets 4

Minor updates since 1.0:

  • added a -separator flag to diff, which works will with awk
  • switched to candiedyaml
  • built with Go 1.3, with a fix for a map ordering bug

@vito vito released this Mar 2, 2014 · 52 commits to master since this release

Assets 4

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.

@vito vito released this Jan 17, 2014 · 73 commits to master since this release

Assets 4

new features:

  • higher version number (spiff --version is not 0.0.0)

@vito vito released this Nov 1, 2013 · 86 commits to master since this release

Assets 4

new features to blow your mind:

  • list concatenation

@vito vito released this Oct 22, 2013 · 88 commits to master since this release

Assets 4

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