MolSSI/cookiecutter-cms

Simple method for keeping repos in sync with current cookiecutter scheme?

jchodera opened this issue · 5 comments

I wonder if there might be some way to help automate the update process for ensuring that repos created with the cookiecutter remain up to date with the latest best practices. Right now, the process is manual and somewhat tedious, with the potential for missing updates to some files.

Any thoughts on how we might be able to help make this process simpler, or automate the update step?

Also, I wonder if it would be useful to have versioned releases?

We do have a loose version tag via YAML bumps here. It may be worth adding another bump.

@Lnaden and I have discussed this before as something we would like to do:

  • For automated bots, the short is that while we know how to do it, the creation and upkeep is a bit beyond our currently available time. We would need about two weeks for the initial bot and a running 0.05-0.1 FTE for upkeep.
  • A slightly more manual process would have similar upfront requirements without a small long-term cost.

This project is more of a spare time hobby than an officially endorsed project so it would be hard to find the time to do something like this. We can likely advise on the creation of the bots however.

I was thinking a manual process would be great for now, but an automated process (where a bot opens upgrade PRs, perhaps?) would be awesome for the future.

This project is more of a spare time hobby than an officially endorsed project

Just wanted to relay my thanks to those of you building and maintaining this project. So far, this appears to be the most popular project MolSSI hosts, even if it isn't an "official" project:
image3
By my count, there are 227 public projects on GitHub using this cookiecutter, which puts a lower bound on the number of actual users so far:
image2

Thanks for the support!

We will look into a manual process and see if this feasible in a short amount of time. This should especially be true for the static files and the ability to update structured files like YAML should be straightforward.

chfw commented

Hi all:

I would like to present a potential solution for your concern here. I frame your issue as an issue for continuous templating: when a child project repo got generated, it wanted to stay in synchronisation with the cookiecutter, because best practices get better over time. It pose a very interesting challenge to a software organisation: outdated information/practice is not a show stopper but a headache in software maintenance.

yehua /'jɛhwa/ is yet another a project template tool for an organisation. It creates a project skeleton, S from the default project template, T, of an organisation. moban, the other tool of moremoban organisation, keeps S in synchronisation with T forever:

yehua-story

Both tools have been deployed with these organisations: pyexcel, moremoban and coala. Please take your steps there while you do the evaluation.

With your cookiecutter template, here is what yehua could do:

yehua-cms-demo

What yehua could not do at the time of writing is: pre and post generation plugin But that's a matter of time to get it supported.

What do you think?