cloudfoundry-incubator/spiff — pull request #41 by shutej (2014-10-22 14:48:34+00:00)
Title: DO NOT MERGE: Make Spiff a library.

This is for discussion, only.

We found that we need a dynamic version of YAML for our own purposes, but we cannot statically compute everything required for a configuration without interacting with other systems in our case. This change does the following:

- [ ] Refactors Spiff to be a library, not a binary. In this model, builtins would be provided by consumers of this library.
- [ ] Refactors Spiff to work in phases. Use some of the config, do some stuff, have builtins provide other parts of the config as a result...
- [ ] Brings PEG up to date and cleans up dependencies only required by the binary.

This is what would be needed to complete this work:

- [ ] Import paths would need to be rewritten so the merge still refers to upstream.
- [ ] Better test coverage is required...
- [ ] Phased flows fail in reasonable ways; the errors are understandable.
- [ ] Dependencies propagate properly across builtins and delay argument evaluation.
- [ ] Cyclic dependencies between phases are detected. (I don't think they are right now!)
- [ ] A proper strategy for the existing binaries and builtins would be required. My suggestion is to move that stuff into a separate repo...

Thoughts?