3 ms·
This looks great - I have one concern with tools like this - what is the update flow when the template is updated? This is a thing I've been struggling with -
by rbanffy 1y ago
This looks great - I have one concern with tools like this - what is the update flow when the template is updated?
This is a thing I've been struggling with - what is the best way of delivering such templates. Is a template generator such as this? Would it be best to copy a baseline repo with all options set? Should we fork that base repo and rebase when the baseline updates?
- sanyam-khurana 1y agoGreat question because this has haunted me for over 10 years with cookiecutter. Most of the time I was copy-pasting newer features from running projects back into the template, and then copy-pasting in other running projects. But Keel is based on copier which has a "pull" based approach. It means unlike cookiecutter where you generate project from template once, you can run `copier update` to update your project with the latest addition to the template. (It takes care of merging based on the initial config that you selected). It's just running one command `copier update`. Docs here: https://django-keel.readthedocs.io/en/latest/?h=copier+update#template-updates https://django-keel.readthedocs.io/en/latest/?h=copier+updat... You don't need to fork it unless you want to make some improvements or build upon the base template itself.
- rbanffy 1y agoThe fork approach came up at work - because all projects have a lot of boilerplate in common (Terraform, K8s configs, secrets, etc) that can receive improvements upstream from the ops team and it'd be nice if the improvements were easy to apply. The `copier` thing is nice. I'll sure try it on my next Django project.
- sanyam-khurana 1y agoDefinitely, if you find anything that can be improved (even if "docs are not super-clear here), please feel free to raise a PR or report it as an issue.
- Hassankhalifa8 1y ago[dead]
- mahmoudhossam 1y agoCruft solves exactly this problem https://cruft.github.io/cruft/ https://cruft.github.io/cruft/