Version management examples - cma-open/cmatools GitHub Wiki

Python packages, libraries and frameworks use various processes to manage the version setting and increments of the software

Version management may differ for software likely to be distributed via packaged installations from PyPi / pip, conda, or from source installs from source archives (GitLab/ GitHub)

The main repos checked to inform version settings were:

  • pip, pytest, black
  • datashader, xarray, scikit-learn,
  • numpy, pandas
  • iris, matplotlib
  • dash, dvc

Summary

  • Packages reviewed and checked last: Jan 2023 (12 packages checked)
  • setuptools-scm will be used to give automatic version numbering from git tags
  • versioneer was a similar package, but it no longer maintained
  • setuptools-scm used by: 7 / 12
  • versioneer used by: 2/ 12
  • other version management: 3 / 12

Packages by version method

  • setutools-scm: pip, pytest, black, xarray, iris, matplotlib, dvc
  • versioneer: numpy, pandas,
  • param: datashader,
  • other: scikit-learn, dash

Pip

Pytest

Black


Datashader

Xarray

Scikit-learn

Numpy

  • SemVer
  • uses versioneer.py for version management
  • versionner.py at root
  • [versioneer] section in setup.cfg

Pandas


Iris

Matplotlib

  • setuptools-scm
  • SemVer

Dash

DVC