From c51a9452d94fc9a4879eb698eaf648a81bbd0d5f Mon Sep 17 00:00:00 2001 From: Hemna Date: Fri, 8 Jan 2021 20:56:39 -0500 Subject: [PATCH] Updated Makefile This patch updates the Makefile to only run deps if certain files don't exist already. Also added the build and upload tasks to make it easier to test, build and upload a release to pypi --- Makefile | 45 +++++++-- dev-requirements.in | 1 + dev-requirements.txt | 212 ++++++++++++++++++++++++++++++++----------- requirements.txt | 4 +- 4 files changed, 200 insertions(+), 62 deletions(-) diff --git a/Makefile b/Makefile index 15d22b2..e6cb2aa 100644 --- a/Makefile +++ b/Makefile @@ -1,25 +1,54 @@ -.PHONY: virtual install build-requirements black isort flake8 +.PHONY: virtual dev build-requirements black isort flake8 + +all: pip dev virtual: .venv/bin/pip # Creates an isolated python 3 environment .venv/bin/pip: virtualenv -p /usr/bin/python3 .venv -install: +.venv/bin/aprsd: virtual + test -s .venv/bin/aprsd || .venv/bin/pip install -q -e . + +install: .venv/bin/aprsd .venv/bin/pip install -Ur requirements.txt -dev: virtual - .venv/bin/pip install -e . - .venv/bin/pre-commit install +dev-pre-commit: + test -s .git/hooks/pre-commit || .venv/bin/pre-commit install + +dev-requirements: + test -s .venv/bin/twine || .venv/bin/pip install -q -r dev-requirements.txt + +pip: virtual + .venv/bin/pip install -q -U pip + +dev: pip .venv/bin/aprsd dev-requirements dev-pre-commit + +pip-tools: + test -s .venv/bin/pip-compile || .venv/bin/pip install pip-tools + +clean: + rm -rf dist/* + rm -rf .venv test: dev + .venv/bin/pre-commit run --all-files tox -p -update-requirements: install - .venv/bin/pip freeze > requirements.txt +build: test + rm -rf dist/* + .venv/bin/python3 setup.py sdist bdist_wheel + .venv/bin/twine check dist/* + +upload: build + .venv/bin/twine upload dist/* + +update-requirements: dev pip-tools + .venv/bin/pip-compile -q -U requirements.in + .venv/bin/pip-compile -q -U dev-requirements.in .venv/bin/tox: # install tox - .venv/bin/pip install -U tox + test -s .venv/bin/tox || .venv/bin/pip install -q -U tox check: .venv/bin/tox # Code format check with isort and black tox -efmt-check diff --git a/dev-requirements.in b/dev-requirements.in index 51e6336..61d89bb 100644 --- a/dev-requirements.in +++ b/dev-requirements.in @@ -7,3 +7,4 @@ pytest-cov pep8-naming Sphinx tox +twine diff --git a/dev-requirements.txt b/dev-requirements.txt index 087a674..57100ae 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -4,58 +4,166 @@ # # pip-compile dev-requirements.in # -alabaster==0.7.12 # via sphinx -appdirs==1.4.4 # via black, virtualenv -attrs==20.3.0 # via pytest -babel==2.9.0 # via sphinx -black==20.8b1 # via -r dev-requirements.in -certifi==2020.12.5 # via requests -chardet==4.0.0 # via requests -click==7.1.2 # via black -coverage==5.3 # via pytest-cov -distlib==0.3.1 # via virtualenv -docutils==0.16 # via sphinx -filelock==3.0.12 # via tox, virtualenv -flake8-polyfill==1.0.2 # via pep8-naming -flake8==3.8.4 # via -r dev-requirements.in, flake8-polyfill -idna==2.10 # via requests -imagesize==1.2.0 # via sphinx -iniconfig==1.1.1 # via pytest -isort==5.6.4 # via -r dev-requirements.in -jinja2==2.11.2 # via sphinx -markupsafe==1.1.1 # via jinja2 -mccabe==0.6.1 # via flake8 -mypy-extensions==0.4.3 # via black, mypy -mypy==0.790 # via -r dev-requirements.in -packaging==20.8 # via pytest, sphinx, tox -pathspec==0.8.1 # via black -pep8-naming==0.11.1 # via -r dev-requirements.in -pluggy==0.13.1 # via pytest, tox -py==1.10.0 # via pytest, tox -pycodestyle==2.6.0 # via flake8 -pyflakes==2.2.0 # via flake8 -pygments==2.7.3 # via sphinx -pyparsing==2.4.7 # via packaging -pytest-cov==2.10.1 # via -r dev-requirements.in -pytest==6.2.1 # via -r dev-requirements.in, pytest-cov -pytz==2020.4 # via babel -regex==2020.11.13 # via black -requests==2.25.1 # via sphinx -six==1.15.0 # via tox, virtualenv -snowballstemmer==2.0.0 # via sphinx -sphinx==3.3.1 # via -r dev-requirements.in -sphinxcontrib-applehelp==1.0.2 # via sphinx -sphinxcontrib-devhelp==1.0.2 # via sphinx -sphinxcontrib-htmlhelp==1.0.3 # via sphinx -sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 # via sphinx -sphinxcontrib-serializinghtml==1.1.4 # via sphinx -toml==0.10.2 # via black, pytest, tox -tox==3.20.1 # via -r dev-requirements.in -typed-ast==1.4.1 # via black, mypy -typing-extensions==3.7.4.3 # via black, mypy -urllib3==1.26.2 # via requests -virtualenv==20.2.2 # via tox +alabaster==0.7.12 + # via sphinx +appdirs==1.4.4 + # via + # black + # virtualenv +attrs==20.3.0 + # via pytest +babel==2.9.0 + # via sphinx +black==20.8b1 + # via -r dev-requirements.in +bleach==3.2.1 + # via readme-renderer +certifi==2020.12.5 + # via requests +chardet==4.0.0 + # via requests +click==7.1.2 + # via black +colorama==0.4.4 + # via twine +coverage==5.3.1 + # via pytest-cov +distlib==0.3.1 + # via virtualenv +docutils==0.16 + # via + # readme-renderer + # sphinx +filelock==3.0.12 + # via + # tox + # virtualenv +flake8-polyfill==1.0.2 + # via pep8-naming +flake8==3.8.4 + # via + # -r dev-requirements.in + # flake8-polyfill +idna==2.10 + # via requests +imagesize==1.2.0 + # via sphinx +iniconfig==1.1.1 + # via pytest +isort==5.7.0 + # via -r dev-requirements.in +jinja2==2.11.2 + # via sphinx +keyring==21.8.0 + # via twine +markupsafe==1.1.1 + # via jinja2 +mccabe==0.6.1 + # via flake8 +mypy-extensions==0.4.3 + # via + # black + # mypy +mypy==0.790 + # via -r dev-requirements.in +packaging==20.8 + # via + # bleach + # pytest + # sphinx + # tox +pathspec==0.8.1 + # via black +pep8-naming==0.11.1 + # via -r dev-requirements.in +pkginfo==1.6.1 + # via twine +pluggy==0.13.1 + # via + # pytest + # tox +py==1.10.0 + # via + # pytest + # tox +pycodestyle==2.6.0 + # via flake8 +pyflakes==2.2.0 + # via flake8 +pygments==2.7.3 + # via + # readme-renderer + # sphinx +pyparsing==2.4.7 + # via packaging +pytest-cov==2.10.1 + # via -r dev-requirements.in +pytest==6.2.1 + # via + # -r dev-requirements.in + # pytest-cov +pytz==2020.5 + # via babel +readme-renderer==28.0 + # via twine +regex==2020.11.13 + # via black +requests-toolbelt==0.9.1 + # via twine +requests==2.25.1 + # via + # requests-toolbelt + # sphinx + # twine +rfc3986==1.4.0 + # via twine +six==1.15.0 + # via + # bleach + # readme-renderer + # tox + # virtualenv +snowballstemmer==2.0.0 + # via sphinx +sphinx==3.4.3 + # via -r dev-requirements.in +sphinxcontrib-applehelp==1.0.2 + # via sphinx +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==1.0.3 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.4 + # via sphinx +toml==0.10.2 + # via + # black + # pytest + # tox +tox==3.21.0 + # via -r dev-requirements.in +tqdm==4.55.1 + # via twine +twine==3.3.0 + # via -r dev-requirements.in +typed-ast==1.4.2 + # via + # black + # mypy +typing-extensions==3.7.4.3 + # via + # black + # mypy +urllib3==1.26.2 + # via requests +virtualenv==20.2.2 + # via tox +webencodings==0.5.1 + # via bleach # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements.txt b/requirements.txt index 8fbbf88..ed86b36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile # To update, run: # -# pip-compile +# pip-compile requirements.in # appdirs==1.4.4 # via virtualenv @@ -22,7 +22,7 @@ click==7.1.2 # click-completion distlib==0.3.1 # via virtualenv -dnspython==2.0.0 +dnspython==2.1.0 # via py3-validate-email filelock==3.0.12 # via