Linting is checked by flake8. This can be run from the root of the repository
by running flake8 ..
Flake8 refers to configuration within .flake8
Code coverage is checked by the Coverage library.
Coverage is configured within .coveragerc.
Unit tests are stored within /tests/unit_tests. Tests are run using the nose tool: nosetests tests/unit_tests
Unit test coverage must be a minimum of 85%.
Integration tests are stored within tests/integration_tests. Tests are run using the nose tool:
nosetests tests/integration_tests
The project follow Semantic Versioning in the format X.X.X:
- Major: Release contains removed functionality or other breaking changes
- Minor: Functionality has been changed but changes are not breaking
- Patch: A defect fix or other small change which will not adversely affect users
The tool python-semantic-release is used to manage version
numbers.
Version number is stored and maintained in boto3_batch_utils/__init__.py:__version__. Versions are managed on the
develop branch only:
- Code changes are made to a feature branch or
develop. - Once ready
masteris merged back intodevelop. - Version is increased using
semantic-release version --<major|minor|patch>(which is configured insetup.cfg). - Pull Request made from
developbranch tomaster.
Automation is achieved using GitHub Actions.
Linting, unit tests and integration tests. These are run automatically upon a push.
PyUp is used for dependency checking. This is also automated via GitHub Actions.
In addition to the above, the master branch also automatically packages and publishes the library to
PyPi. It does so using the assigned version (see above).