Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Support to Export BeerXML #2

Merged

Conversation

tmack8001
Copy link
Contributor

@tmack8001 tmack8001 commented Dec 16, 2021

Though Picobrew never published their BeerXML Extensions I am aware with the source of BrewCrafter and various BeerXMLs that I have exported from Picobrew somewhat familiar with their extensions to be able to recreate their API endpoint which would generate the BeerXML all in clientside javascript for use with this static website.

Picobrew Extensions

  • <KEGSMART>...</KEGSMART> this contains the explicit instructions for fermentation and cold crashing within a KegSmart enabled kegerator (why they didn't just take it from fermentation steps is beyond me)
  • <ZYMATIC>...</ZYMATIC> is the main Picobrew extension which contains a list of machine steps and a summary of mash time, mash temp and boil temp (but not boil time) ... this technically could be represented already as part of <MASH_STEPS> which is a child node of <MASH_PROFILE> ... if Picobrew was after consistency and adherence to the original spec which obviously they weren't.
  • <PB_LOCATION>#</PB_LOCATION> this is a specific extension of specific ingredient based data tags (HOPS, FERMENTABLES, and MISCS), this is to be able to easily identify which compartment of the machine an ingredient goes into (mash, adj1-4, etc)
  • only other change Picobrew did was to add water adjustments specifically vs calling out the target water profile leading many to likely have inconsistent brews as a result especially when sharing between users. The specification would suggest to call out the target water profile in the data tag <WATERS>...</WATERS> instead of specific water agents in <MISCS>...</MISCS> though also has a misc type Water Agent to be able to support this setup as well.

I've tested several (not all thousand) that have various setups in the recipes and have used them to fix some bugs in the import logic of crafter.pilotbatchbrewing.com as well. So I know 1) these XML files are valid and 2) that at a minimum the ones I tried to export will import successfully into the community crafter (minus some stuff around mash profiles and stuff that the crafter right now throws away and creates a new one... lame... I'll fix that separately).

Here is the example of where this Export button would be shown for all recipes. This is the exact same button and location that was present in the Picobrew BrewHouse for browsing your own recipes, they didn't allow non logged in users and non "recipe owners" to convert recipes over to BeerXML so wouldn't show "Export" until you "Copy to BrewHouse".

image

General Open BeerXML Format Specification -> http://www.beerxml.com/beerxml.htm

@tmack8001
Copy link
Contributor Author

Sorry for the continual changes here... I'm done now and have something that is going to work. If we find there are edge cases that don't work quite right we can approach those on a 1 by 1 basis.

@Justin-Credible
Copy link
Owner

Awesome, thanks!

@Justin-Credible Justin-Credible merged commit 38e694c into Justin-Credible:master Dec 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants