$ git clone https://github.com/SUSE-enceladus/mash-client.git
$ cd mash-client
# Activate virtual Environment then install
# mash client and dev dependencies in editable mode
$ pip install -e .[dev]
mash-client is now installed in the active virtual environment in development mode.
- bumpversion
- pip>=7.0.0
- coverage
- flake8
- pytest-cov
- All patches must be signed. Signing Commits
- All contributed code must conform to flake8. Code Style
- All new code contributions must be accompanied by a test.
- Tests must pass and coverage remain above 90%. Unit & Integration Tests
- Follow Semantic Versioning. Versions & Releases
mash-client adheres to Semantic versioning; see http://semver.org/ for details.
bumpversion is used for
release version management, and is configured in setup.cfg
:
$ bumpversion major|minor|patch
$ git push
Bumpversion will create a commit with version updated in all locations. The annotated tag is created separately.
$ git tag -a v{version}
# git tag -a v0.0.1
# Create a message with the changes since last release and push tags.
$ git push --tags
All tests should pass and test coverage should remain above 90%.
The tests and coverage can be run directly via pytest.
$ pytest --cov=mash_cient
- tox
- tox-pyenv (testing multiple Python versions 3.4+)
-
Install tox
$ pip install .\[tox\]
-
Setup pyenv
See the pyenv doc for more info.
-
Run tox
$ tox (test all versions 3.4+) # or $ tox -e py{version} $ tox -e py36
Source should pass flake8 and pep8 standards.
$ flake8 mash_client
The repository and the code base patches sent for inclusion must be GPG signed. See the GitHub article, Signing commits using GPG, for more information.