I think this is a wonderful plan, and fully support it.

For the approach of taking this also to YAML, I have had some decent
experience with Rx (http://rx.codesimply.com/index.html) in producing
schema validation that is coherent between YAML and JSON.

I am not suggesting an alternative to json_shape, incidentally, but
rather than someone else might have found the rough edges of applying
the same schema to both...

Regards,
    Daniel

On Mon, Mar 7, 2011 at 13:32, Paul Berry <p...@puppetlabs.com> wrote:

> Puppet currently produces and consumes data in several formats which:
> - are not explicitly documented
> - are sometimes modified by mistake (e.g. when a developer adds a private
> instance variable to a class, and that instance variable gets automatically
> serialized to YAML)
> - are sometimes modified without a full appreciation of the consequences of
> the changes (e.g. a format change is introduced which creates
> incompatibilities between old and new versions of Puppet, or between
> desynchronized versions of Puppet and Dashboard).
> Jesse Wolfe, Markus Roberts, Randall Hansen, and I had a discussion the
> other day about how to improve this situation, and we have a proposal for a
> first step.  This initial proposal affects Puppet's JSON formats only:
> - Vendor the "json_shape" library, a lightweight JSON schema validator
> (https://github.com/jes5199/json_shape).
> - Create a subdirectory of the Puppet project called "serialization_schema"
> in which we store schemas for the various JSON data formats used by Puppet.
> - Create spec tests which validate each of Puppet's JSON output formats
> against these schemas.
> - Publish the contents of the "serialization_schema" directory on our web
> site so that users and 3rd party developers will know how what to expect
> from our data formats.
> - Subject the contents of the "serialization_schema" directory to a more
> rigid change control process than the rest of Puppet, so that we don't
> unintentionally introduce changes to our file formats while fixing bugs and
> adding features.
> Our hope is that once this is implemented we can build similar techniques to
> address YAML formats.
> Comments welcome.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To post to this group, send email to puppet-dev@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-dev+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-dev?hl=en.
>



-- 
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman <dan...@puppetlabs.com>
✆ Contact me via gtalk, email, or phone: +1 (877) 575-9775
♲ Made with 100 percent post-consumer electrons

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to