/beerjson

Development repository for the BeerJSON format standard

Primary LanguageJavaScriptMIT LicenseMIT

Build Status Join the chat at https://gitter.im/beerjson/beerjson

Welcome to the BeerJSON repository

This is a repository for development of BeerJSON interchange format specification. It is based on yet unfinished BeerXML 2 standard (PDF).

Overview of significant changes from BeerXML 1.0

  • Addition timing object supports any ingredient being added to any process step on a basis of time, temperature, or gravity.

  • Ingredient addition property of time is now duration to improve clarity, and decrease confusion with new timing object properties.

  • All process steps include temperature, pH, and gravity.

  • Grain absorption rate is a property of the mash tun.

  • Sparge, and wort run offs are treated as mash steps.

  • Explicit boil steps to support production of more complex boil procedures such as raw ales, and common whirlpooling processes.

  • Yeast schema becomes culture schema, for clearer support for non*yeast cultures.

  • Extensive ingredient properties, such as hop oil content, culture floculation, pof, glucoamylase production, and full support for maltster spec sheet properties.

  • Explicit integrated support for common sour wort, and sour beer production. Souring steps can be included in mash, boil, or fermentation.

  • Explicit support for different chilling methods, forced vs passive, in line vs batch chilling.

  • Explicit support for all efficiency types, conversion, lauter, mash, and brewhouse.

  • Explicit support for fermenting under pressure.

Structure of the repository

  • Current development is done in the Master branch.
  • Each published version has its own branch or tag
  • Changes are proposed by creating a pull request that should be reviewed by members of working group.
  • Issues, questions and suggestions should be posted to Issues

CI and tests

For safe manipulations with json schemas, we have set of tests in the tests folder. We check that json is valid for serializations and json is valid according to the beerjson schema. To run tests do following steps after repo fork or clone

yarn
yarn test

or

npm i
npm test

Documentation

Documentation is autogenerated from JSON schema files.

It is published at https://beerjson.github.io/beerjson/

Rebuilding documentation

npm run gen-docs

Version

This brunch contains BeerJSON 1.0 specification.

How to contribute

  • If you have an issue or question related to the schema - submit an issue
  • To propose a schema change submit a pull request. Learn more about pull requests. Note that one of the benefits of using json schemas is a possibility to use tests and CI. Please ensure that tests are green before submitting a pull request. And all new entities in the json schema are covered.
  • To chat with others, join our Gitter chat: Join the chat at https://gitter.im/beerjson/beerjson

NPM package

NPM package available at @beerjson/beerjson.