flopy icon indicating copy to clipboard operation
flopy copied to clipboard

feature: use VCS for version automation

Open wpbonelli opened this issue 3 years ago • 1 comments

Is your feature request related to a problem? Please describe. FloPy version updates are already automated, scripts/update_version.py just needs to run at release time. Ad hoc versioning can be hard to get right and has limitations though, like providing no information between releases. Finer-grained version strings could be helpful e.g. to trace issues to release vs. development versions or even specific commits

Describe the solution you'd like Could consider a tool like versioneer, maybe once it stabilizes a bit. It uses git as the source of truth, so versioning would just involve tagging revisions. From the link above:

you get a useful fine-grained version string, updated every time you run your program, embedded into release products via the most common tarball-generation tools (setup.py sdist and git-archive). Developers will get detailed version information in their test logs (assuming you record version in them, which you should), so other developers can reproduce their tree. Bug reports from end users will contain enough data (assuming they emit the version string) to reproduce their code, and to learn if they have local modifications or not.

Describe alternatives you've considered Not changing the current approach, it's simple enough and we need a script to update README.md and DISCLAIMER.md anyway

Additional context Maybe this should be a discussion instead?

wpbonelli avatar Dec 19 '22 22:12 wpbonelli

I'm generally on-board for this feature. My preference is setuptools_scm, which is similar to versioneer, except that it does not need to be installed into the codebase. The other benefit of setuptools_scm is that when creating a source distribution, it includes the git-tracked files to the sdist.

mwtoews avatar Dec 20 '22 23:12 mwtoews