ProjectPythia / cookbook-template

Project Pythia Cookbook template
https://projectpythia.org/cookbook-template/
Apache License 2.0
21 stars 16 forks source link

Explore use of "cruft" for cookbook creation and boilerplate management #118

Open brian-rose opened 1 year ago

brian-rose commented 1 year ago

The cookbook template contains a fair bit of boilerplate code, and the Cookbook Contributor's Guide still includes a lot of steps to personalize some of that boilerplate code.

It might be a good use case for some form of cookiecutter to reduce the number of steps to cookbook creation.

Separate but related, we still don't have a solution for keeping existing Cookbooks in sync with changes to the Template (https://github.com/ProjectPythia/cookbook-gallery/issues/86).

One tool that solves both problems is cruft. It combines cookiecutter-based repo creation from a template plus automation for keeping repos in sync with an evolving template.

Worth a careful look for the next phase of cookbooks!

brian-rose commented 1 year ago

Thanks to @ahuang11 for the suggestion!

brian-rose commented 1 year ago

I spent some time investigating this option, with a cookiecutter template https://github.com/brian-rose/cookbook-cookiecutter and an experimental use case https://github.com/brian-rose/a-crufty-cookbook.

I found some pain points around how cruft interacts with git and dealing with merge conflicts. I'm sure these could be sorted out.

A deeper problem is that the "version of record" of the cookbook template in this workflow is now not actually a cookbook, it's a cookiecutter template for a cookbook repository. So we couldn't be able to as easily run our Cookbook automation directly on the template for testing. I think that maintenance of the template would be trickier.