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/JRCSTU/polyvers  polyvers.git
$ cd polyvers.git
$ pip install  -e pvlib[test]  -e .[test]

Caution

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

4.2. Tests & integrations

test-suite:

pytest

linters:

flake8, mypy

integration-services:
 
commit-messages:
 

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

changes-aggregation:
 

towncrier

4.3. Similar Tools

Bumped across these projects while building it…

bumpversion
The original bumpversion project; development stopped after 2015: (recomended also by python guide) https://github.com/peritus/bumpversion
bump2version
active clone of the original: https://github.com/c4urself/bump2version
releash
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
Lerna
A tool for managing JavaScript projects with multiple packages. https://lernajs.io/
Pants
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/
pbr
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/
Zest.releaser
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/
incremental
a small setuptools plugin library that versions Python projects. https://github.com/twisted/incremental
changes

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

https://github.com/michaeljoseph/changes

setuptools_scm
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/
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