MolSSI / cookiecutter-cms

Python-centric Cookiecutter for Molecular Computational Chemistry Packages
MIT License
402 stars 90 forks source link

Version management #10

Closed ctk3b closed 6 years ago

ctk3b commented 6 years ago

There are a few tools that allow for fairly nice automatic versioning. Something to think about but certainly not necessary.

https://docs.openstack.org/pbr/latest/user/features.html#version

And I think ParmEd uses https://github.com/warner/python-versioneer

jchodera commented 6 years ago

+1 for versioneer

dgasmith commented 6 years ago

Versioneer for what we are doing would be extremely useful as we need the compute stack to be reproducible. +1 for versionner!

Lnaden commented 6 years ago

I'd love to add versionner, this is going to be a bit tricky though as the versioneer setup has to come after the skeleton has been created. So I can template a skeleton, replace the items in the _version.py and versioneer.py that is created, back-port them, and see if that works? We would also have to include git as a requirement for projects since versioneer won't work without it really.

I'm also a bit worried about the barrier to entry on version number here since the initial versions will be difficult to read with the default style. Looks like this: {{PACKAGE}}-0+untagged.1.gc1968f9

One option is I could have a cookiecutter post-generate hook to do a

git init
git tag 0.0.0

which should make it so if they do a setup right then it will have the correct version. Or I could just leave instructions (which I will do anyways). Thoughts?

jchodera commented 6 years ago

It looks like there are some cookiecutter repos that have versioneer pre-installed: https://github.com/tylerdave/cookiecutter-python-package/tree/master/%7B%7Bcookiecutter.repo_name%7D%7D

Lnaden commented 6 years ago

Great find. That looks like they are doing exactly what I was thinking about doing, except I was also considering to an initial git init; git tag 0.0.0 as a post-gen hook, which I would also like some thoughts on.

Lnaden commented 6 years ago

I may cannibalize some ideas from the base repo for cookiecutter-pypackage, but it also looks like overkill

ctk3b commented 6 years ago

I was also considering to an initial git init; git tag 0.0.0 as a post-gen hook, which I would also like some thoughts on.

That sounds like a great default IMO