Skip to content
This repository has been archived by the owner on Jan 19, 2022. It is now read-only.

Releases: cloudfoundry-incubator/spiff

1.0.8

06 Jan 23:57
Compare
Choose a tag to compare

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

1.0.7

09 Jun 11:58
Compare
Choose a tag to compare

Allow concatenation of strings with integers

v1.0.6

21 Apr 13:42
Compare
Choose a tag to compare

Provide more detail on unresolved nodes

v1.0.5

15 Apr 13:14
Compare
Choose a tag to compare

Fixed reported version.

v1.0.4

07 Apr 17:26
Compare
Choose a tag to compare

Minor changes:

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

v1.0.3

14 Sep 14:27
Compare
Choose a tag to compare

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

v1.0

02 Mar 02:23
Compare
Choose a tag to compare

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

17 Jan 18:40
Compare
Choose a tag to compare

new features:

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

Release v0.2

01 Nov 05:30
Compare
Choose a tag to compare

new features to blow your mind:

  • list concatenation

Release v0.1

22 Oct 20:12
Compare
Choose a tag to compare

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