Skip to content

Latest commit

 

History

History
122 lines (86 loc) · 2.41 KB

CONTRIBUTING.md

File metadata and controls

122 lines (86 loc) · 2.41 KB

Installation

$ 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.

Dev Requirements

  • bumpversion
  • pip>=7.0.0

Testing Requirements

  • coverage
  • flake8
  • pytest-cov

Contribution Checklist

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

Unit & Integration Tests

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

Testing with tox

Requirements

  • tox
  • tox-pyenv (testing multiple Python versions 3.4+)

Setup

  • 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

Code Style

Source should pass flake8 and pep8 standards.

$ flake8 mash_client

Signing Commits

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.