Index: makefile |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/makefile |
@@ -0,0 +1,72 @@ |
+# Automation of common development operations. |
Sebastian Noack
2016/03/14 11:16:01
A makefile, doesn't seem appropriate for a Python
Vasily Kuznetsov
2016/03/14 12:04:29
The makefile is not necessary to build or install
Sebastian Noack
2016/03/14 12:19:22
Flask and Requests aren't the best examples for be
Vasily Kuznetsov
2016/03/14 17:20:41
Ok, let me try to implement the same functionality
|
+ |
+.PHONY: devenv clean install uninstall test testcov htmlcov |
+ |
+PACKAGE=python_abp |
+MODULE=abp |
+DEVENV=__ |
+TESTS=tests |
+ |
+PYTHON=${DEVENV}/bin/python |
+PIP=${DEVENV}/bin/pip |
+PYTEST=${DEVENV}/bin/py.test |
+TOX=${DEVENV}/bin/tox |
+ |
+help: |
+ @echo |
+ @echo "This makefile automates common development operations." |
+ @echo |
+ @echo " Usage: make <target>" |
+ @echo |
+ @echo "Where target is one of:" |
+ @echo |
+ @echo " devenv -- Create development environment" |
+ @echo " test -- Run the tests with default version of python" |
+ @echo " testcov -- Output test coverage report to console" |
+ @echo " htmlcov -- Generate test coverage report in HTML" |
+ @echo " testall -- Run the tests with all supported python versions" |
+ @echo " syntaxcheck -- Check syntax with flake8" |
+ @echo " diffpep8 -- Find PEP8-non-compliance" |
+ @echo " fixpep8 -- Fix PEP8-non-compliance (MIGHT CHANGE SOURCE)" |
+ @echo " install -- Install module and script with default python" |
+ @echo " uninstall -- Uninstall from default python" |
+ @echo " clean -- Remove testing and build artifacts" |
+ @echo |
+ |
+devenv: ${DEVENV} |
+ |
+${DEVENV}: |
+ virtualenv ${DEVENV} |
+ ${PIP} install pytest pytest-cov tox flake8 autopep8 |
+ ${PYTHON} setup.py develop |
+ |
+test: ${DEVENV} |
+ ${PYTEST} ${TESTS} |
+ |
+testcov: ${DEVENV} |
+ ${PYTEST} --cov=${MODULE} ${TESTS} |
+ |
+htmlcov: ${DEVENV} |
+ ${PYTEST} --cov-report=html --cov=${MODULE} ${TESTS} |
+ |
+testall: ${DEVENV} |
+ ${TOX} |
+ |
+syntaxcheck: ${DEVENV} |
+ ${DEVENV}/bin/flake8 ${MODULE} ${TESTS} |
+ |
+diffpep8: ${DEVENV} |
+ ${DEVENV}/bin/autopep8 --diff -r -aaa ${MODULE} ${TESTS} |
+ |
+fixpep8: ${DEVENV} |
+ ${DEVENV}/bin/autopep8 --in-place -r -aaa ${MODULE} ${TESTS} |
+ |
+install: |
+ python setup.py install |
+ |
+uninstall: |
+ pip uninstall -y ${PACKAGE} |
+ |
+clean: |
+ rm -Rf ${DEVENV} .coverage .cache .tox htmlcov ${PACKAGE}.egg-info\ |
+ `find . -name *.pyc` build dist MANIFEST |