From f7bda0c2767e4ef1c5ca7e6d773ed070040b44fb Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 14:47:18 +0100 Subject: [PATCH 1/9] Add Tox config and prepare for project releases. --- .travis.yml | 21 +++------------------ setup.py | 20 ++------------------ tox.ini | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 tox.ini diff --git a/.travis.yml b/.travis.yml index 148cd7e..5443586 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,24 +8,9 @@ python: - "3.7" - "3.8" - "pypy3" -env: - - DJANGO=1.11 - - DJANGO=2.1 - - DJANGO=2.2 services: - redis-server -install: - - pip install coveralls mockredispy django-redis-cache "celery<5" - - pip install -q django~=$DJANGO - - python setup.py develop -script: - - PYTHONPATH=$PYTHONPATH:$PWD coverage run --source=defender $(which django-admin.py) test defender --settings=defender.travis_settings - - coverage report -m -matrix: - exclude: - - python: "2.7" - env: DJANGO=2.1 - - python: "2.7" - env: DJANGO=2.2 +install: pip install tox-travis codecov +script: tox after_success: - - coveralls --verbose + - codecov diff --git a/setup.py b/setup.py index cc0b50e..09a6ec0 100644 --- a/setup.py +++ b/setup.py @@ -1,28 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - import os - -try: - from setuptools import setup -except ImportError: - from distutils.core import setup +from setuptools import setup, find_packages version = "0.6.2" -def get_packages(package): - """ - Return root package and all sub-packages. - """ - return [ - dirpath - for dirpath, dirnames, filenames in os.walk(package) - if os.path.exists(os.path.join(dirpath, "__init__.py")) - ] - - def get_package_data(package): """ Return all files under the root package, that are not in a @@ -72,7 +56,7 @@ setup( author_email="kencochrane@gmail.com", license="Apache 2", include_package_data=True, - packages=get_packages("defender"), + packages=find_packages(), package_data=get_package_data("defender"), install_requires=["Django>=1.8,<2.3", "redis>=2.10.3,<3.3"], tests_require=[ diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..e3e86f4 --- /dev/null +++ b/tox.ini @@ -0,0 +1,38 @@ +[tox] +envlist = + # list of supported Django/Python versioons: + # https://docs.djangoproject.com/en/2.2/faq/install/#what-python-version-can-i-use-with-django + py{27,35,36,37,py3}-django111 + py{35,36,37,py3}-django{21,22,master} + py38-django22 + +[travis] +python = + 2.7: py27 + 3.5: py35 + 3.6: py36 + 3.7: py37 + 3.8: py38 + pypy3: pypy3 + +[travis:env] +DJANGO = + 1.11: django111 + 2.1: django21 + 2.2: django22 + master: djangomaster + +[testenv] +deps = + coveralls + mockredispy + django-redis-cache + celery<5 + py27: mock + django111: django>=1.11,<2.0 + django21: django>=2.1,<2.2 + django22: django>=2.2,<2.3 + djangomaster: https://github.com/django/django/archive/master.tar.gz +commands = + coverage run --source=defender {envbindir}/django-admin.py test defender --settings=defender.travis_settings + coverage report -m From 9654128727adeba593c897ddc51d1c1b590fbcd8 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 14:49:23 +0100 Subject: [PATCH 2/9] Install as editable. --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index e3e86f4..44675d9 100644 --- a/tox.ini +++ b/tox.ini @@ -33,6 +33,7 @@ deps = django21: django>=2.1,<2.2 django22: django>=2.2,<2.3 djangomaster: https://github.com/django/django/archive/master.tar.gz +usedevelop = True commands = coverage run --source=defender {envbindir}/django-admin.py test defender --settings=defender.travis_settings coverage report -m From cac4600f56b5501dfe54fd0c7eb4e015e58b3916 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 14:56:09 +0100 Subject: [PATCH 3/9] Use requirements file. --- requirements.txt | 6 ++++++ tox.ini | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..527a60b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +-e . +coveralls +mockredispy +django-redis-cache +celery<5 +mock; python_version < '3.0' diff --git a/tox.ini b/tox.ini index 44675d9..f01f94d 100644 --- a/tox.ini +++ b/tox.ini @@ -24,10 +24,7 @@ DJANGO = [testenv] deps = - coveralls - mockredispy - django-redis-cache - celery<5 + -rrequirements.txt py27: mock django111: django>=1.11,<2.0 django21: django>=2.1,<2.2 From 2452891454693ff2cc18c279e0d354823310ba38 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:05:16 +0100 Subject: [PATCH 4/9] Django Master doesn't run on Python 3.5. --- tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index f01f94d..1594b75 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,8 @@ envlist = # list of supported Django/Python versioons: # https://docs.djangoproject.com/en/2.2/faq/install/#what-python-version-can-i-use-with-django py{27,35,36,37,py3}-django111 - py{35,36,37,py3}-django{21,22,master} + py35-django(21,22) + py{36,37,py3}-django{21,22,master} py38-django22 [travis] From b89b394c8e9b7c8bbe33443d2731871d942e53c6 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:06:20 +0100 Subject: [PATCH 5/9] Move to Codecov. --- README.rst | 6 +++--- requirements.txt | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index e42eb1f..2f1432c 100644 --- a/README.rst +++ b/README.rst @@ -10,9 +10,9 @@ django-defender :target: https://travis-ci.org/jazzband/django-defender :alt: Build Status -.. image:: https://img.shields.io/coveralls/jazzband/django-defender.svg - :target: https://coveralls.io/r/jazzband/django-defender - :alt: Coverage Status +.. image:: https://codecov.io/gh/jazzband/django-defender/branch/master/graph/badge.svg + :target: https://codecov.io/gh/jazzband/django-defender + :alt: Coverage A simple Django reusable app that blocks people from brute forcing login diff --git a/requirements.txt b/requirements.txt index 527a60b..bdf9c16 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ -e . -coveralls mockredispy django-redis-cache celery<5 From 396ea4d471ff61d8d1f0b89f6ad1e5f5f820888d Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:12:31 +0100 Subject: [PATCH 6/9] Add deploy section. --- .travis.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5443586..e3bce4c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,15 +2,27 @@ language: python dist: xenial cache: pip python: - - "2.7" - - "3.5" - - "3.6" - - "3.7" - - "3.8" - - "pypy3" +- '2.7' +- '3.5' +- '3.6' +- '3.7' +- '3.8' +- pypy3 services: - - redis-server +- redis-server install: pip install tox-travis codecov script: tox after_success: - - codecov +- codecov +deploy: + provider: pypi + user: jazzband + server: https://jazzband.co/projects/django-defender/upload + distributions: sdist bdist_wheel + skip_existing: true + password: + secure: d/PVFgBDMpG6UvBOxXBLH4vc7+tiPsjhq4YLgXfX0iXbdNHUnnCyDLg/XUQ7x0e7kRj+lhmBzytZxu3IpOY+5MuWk4JTqwoBHGuUlmTC9XEVvioqd/nFW7qVe36YKZHKuMDlmwBNQarJZdSBUFAoCfklZKI09sXA1qc8E3BLAb8= + on: + tags: true + repo: jazzband/django-defender + python: 3.7 From 68d0b41ee5a959833ba5d4394a5996169447be67 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:14:12 +0100 Subject: [PATCH 7/9] Use setuptools-scm. --- defender/__init__.py | 3 +++ docs/conf.py | 6 ++++-- setup.py | 6 ++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/defender/__init__.py b/defender/__init__.py index e69de29..d569749 100644 --- a/defender/__init__.py +++ b/defender/__init__.py @@ -0,0 +1,3 @@ +from pkg_resources import get_distribution + +__version__ = get_distribution("django-defender").version diff --git a/docs/conf.py b/docs/conf.py index 519b1b5..ec70f43 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,9 +21,11 @@ project = "django-defender" copyright = "2014, Ken Cochrane" author = "Ken Cochrane" -# The full version, including alpha/beta/rc tags -release = "0.6.2" +# The full version, including alpha/beta/rc tags. +release = get_distribution("django-defender").version +# The short X.Y version. +version = ".".join(release.split(".")[:2]) # -- General configuration --------------------------------------------------- diff --git a/setup.py b/setup.py index 09a6ec0..b6f3a05 100644 --- a/setup.py +++ b/setup.py @@ -4,9 +4,6 @@ import os from setuptools import setup, find_packages -version = "0.6.2" - - def get_package_data(package): """ Return all files under the root package, that are not in a @@ -26,7 +23,8 @@ def get_package_data(package): setup( name="django-defender", - version=version, + use_scm_version=True, + setup_requires=["setuptools_scm"], description="redis based Django app that locks out users after too " "many failed login attempts.", long_description="redis based Django app based on speed, that locks out" From d83c4dd2863a9ee49b7bf76c43bd39a35e743bf2 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:17:10 +0100 Subject: [PATCH 8/9] Fix paths. --- tox.ini | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tox.ini b/tox.ini index 1594b75..077b4ba 100644 --- a/tox.ini +++ b/tox.ini @@ -16,13 +16,6 @@ python = 3.8: py38 pypy3: pypy3 -[travis:env] -DJANGO = - 1.11: django111 - 2.1: django21 - 2.2: django22 - master: djangomaster - [testenv] deps = -rrequirements.txt @@ -33,5 +26,5 @@ deps = djangomaster: https://github.com/django/django/archive/master.tar.gz usedevelop = True commands = - coverage run --source=defender {envbindir}/django-admin.py test defender --settings=defender.travis_settings - coverage report -m + {envbindir}/coverage run --source=defender {envbindir}/django-admin.py test defender --settings=defender.travis_settings + {envbindir}/coverage report -m From c814aa9d715b2c7c4a0e365ba2922d480ba8b74e Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 24 Nov 2019 15:20:15 +0100 Subject: [PATCH 9/9] Add coverage to missing requirements. --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index bdf9c16..59301d8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ -e . +coverage mockredispy django-redis-cache celery<5