4. Contributing

Contributions and issue-reports are welcome, with no strings attached; project is at a very early stage.

4.1. Installation

Install both sub-projects in develop mode using pip

$ git clone  https://github.com/ankostis/polyvers  polyvers.git
$ cd polyvers.git
$ pip install  -e pvlib[test]  -e .[test]


Installing egg with python setup.py install develop is not tested, and may fail to work correctly.

4.2. Tests & integrations




flake8, mypy


guidelines from angular repo: https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines



4.3. Similar Tools

Bumped across these projects while building it…

The original bumpversion project; development stopped after 2015: (recomended also by python guide) https://github.com/peritus/bumpversion
active clone of the original: https://github.com/c4urself/bump2version
another monorepos managing tool, that publishes also to PyPi: https://github.com/maartenbreddels/releash
Git Bump
bump version using git-hooks: https://github.com/arrdem/git-bump
A tool for managing JavaScript projects with multiple packages. https://lernajs.io/
a build system designed for codebases that: - Are large and/or growing rapidly. - Consist of many subprojects that share a significant amount of code. - Have complex dependencies on third-party libraries. - Use a variety of languages, code generators and frameworks. - https://www.pantsbuild.org/
a setup_requires library that injects sensible default and behaviors into your setuptools. Crafted for Semantic Versioning, maintained for OpenStack projects. https://docs.openstack.org/pbr/
easy releasing and tagging for Python packages; make easy, quick and neat releases of your Python packages. You need to change the version number, add a new heading in your changelog, record the release date, svn/git/bzr/hg tag your project, perhaps upload it to pypi… zest.releaser takes care of the boring bits for you. (recomended also by python guide) http://zestreleaser.readthedocs.io/
a small setuptools plugin library that versions Python projects. https://github.com/twisted/incremental

Manages the release of a Python Library (intuitive logo, recomended also by python guide):

  • Auto generates changelog entries from commit messages
  • CLI that follows Semantic Versioning principles to auto-increment the library version
  • Runs the library tests
  • Checks the package installation from a tarball and PyPi
  • Uploads the distribution to PyPi
  • Tags the GitHub repository


managing versions in scm metadata instead of declaring them as the version argument or in a scm managed file, apart from handling file finders for the supported scm’s. (recomended also by python guide) https://pypi.org/project/setuptools_scm/

Library and command line tool for producing dynamic, standards-compliant version strings, derived from tags in your version control system. Suitable for projects written in any programming language (i.e. no need for setup.py), many VCSs(Git; Mercurial, Darcs, Subversion, Bazaar), and many Version styles (PEP 440, Semantic Versioning, Haskell Package Versioning Policy, Custom)

Helper for simple setup.py files with setuptools_scm like tag-based versioning plus commands for bumping version, explain meta infos, cleanall, twine, etc https://github.com/zsimic/setupmeta
python guide
There is a dedicated guide for this problem in pythons docs: https://packaging.python.org/guides/single-sourcing-package-version/

Find more than 34 similar projects in GitHub: and in awesome: https://github.com/korfuri/awesome-monorepo.

4.4. Credits