From 68e1e2d4b9b85f71e99914034ac860bfb3a58f04 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sat, 30 Dec 2017 14:49:28 -0600 Subject: [PATCH 01/18] Version bump --- letsencrypt/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/letsencrypt/__init__.py b/letsencrypt/__init__.py index 03b4e01..a33eb67 100644 --- a/letsencrypt/__init__.py +++ b/letsencrypt/__init__.py @@ -14,6 +14,6 @@ limitations under the License. """ -__version__ = '3.0.0' +__version__ = '3.0.1' default_app_config = 'letsencrypt.apps.LetsEncryptConfig' diff --git a/setup.py b/setup.py index 79f0c95..01b8da3 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ setup( name='django-letsencrypt', - version='3.0.0', + version='3.0.1', packages=['letsencrypt'], include_package_data=True, license='Apache License, Version 2.0', From d5dd57ff0371974953f34ac5a09d41cad94eab62 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sat, 30 Dec 2017 14:53:35 -0600 Subject: [PATCH 02/18] This is no longer a universal wheel --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 79bc678..d645be7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,4 +2,4 @@ # This flag says that the code is written to work on both Python 2 and Python # 3. If at all possible, it is good practice to do this. If you cannot, you # will need to generate wheels for each Python version that you support. -universal=1 +universal=0 From e2e327a5d3abae9d0c8337b74297173460b7c066 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sat, 30 Dec 2017 14:54:02 -0600 Subject: [PATCH 03/18] Use `python_requires` and mark the lower python3 version (...) See also: Use https://packaging.python.org/tutorials/distributing-packages/#python-requires --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 01b8da3..9ff4d6c 100644 --- a/setup.py +++ b/setup.py @@ -25,6 +25,7 @@ setup( name='django-letsencrypt', version='3.0.1', + python_requires=">=3.4, <4", packages=['letsencrypt'], include_package_data=True, license='Apache License, Version 2.0', From 01a75f4c575ec5795b0dc7984ec85f64dfa2a8a7 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sat, 30 Dec 2017 14:58:33 -0600 Subject: [PATCH 04/18] Update CHANGELOG with current 3.0.1 changes --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 897ba92..0b2977e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # django-letsencrypt CHANGELOG +## v3.0.1 + +- Project Changes + - Disable `universal` wheel creation in `setup.cfg`. + - Add a `python_requires` entry into `setup.py`. + - You can learn more about this feature by reading + [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) + document. + ## v3.0.0 - New Features From ec0e03a357b229a14251a9408c199fd8bd0352a9 Mon Sep 17 00:00:00 2001 From: Paolo Dina Date: Tue, 6 Mar 2018 20:14:11 +0100 Subject: [PATCH 05/18] Update ACME challenge link Closes #63 --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index f5d1521..5a943d3 100644 --- a/README.rst +++ b/README.rst @@ -8,7 +8,7 @@ Let's Encrypt App for Django :target: https://codecov.io/gh/urda/django-letsencrypt/branch/master :code:`django-letsencrypt` will allow you to add, remove, and update any -`ACME challenge `_ objects you may +`ACME challenge `_ objects you may need through your Django admin interface. Simply add the :code:`ACME challenge` and :code:`response` for your app to serve up the necessary information for `Let\'s Encrypt `_ validation. From 3eed530edeeaf17dab3079594a83e3cb0a3b9675 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Thu, 8 Mar 2018 01:47:13 -0800 Subject: [PATCH 06/18] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b2977e..cdf93ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,16 @@ ## v3.0.1 +- Documentation Changes + - Update the `ACME challenge` link in `README.rst`. - Project Changes - Disable `universal` wheel creation in `setup.cfg`. - Add a `python_requires` entry into `setup.py`. - You can learn more about this feature by reading [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) document. +- Thanks to Contributors: + - [Paolo Dina](https://github.com/paolodina) ## v3.0.0 From 5b8e35966f03222cb3b3058a85c0986343bce03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4ufl?= Date: Thu, 19 Apr 2018 21:24:00 +0200 Subject: [PATCH 07/18] Drop support for Django 1.8 According to Supported Versions in https://www.djangoproject.com/download/, support for Django 1.8 ended on 2018-04-01. The django maintainers suggested to drop support for Django < 1.11 in third party libraries with the release of Django 2.0 at December 2, 2017. See https://docs.djangoproject.com/en/2.0/releases/2.0/#third-party-library-support-for-older-version-of-django --- .travis.yml | 3 --- letsencrypt/models.py | 18 ++++-------------- setup.py | 3 +-- tox.ini | 2 -- 4 files changed, 5 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index 11a3163..4e686f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,6 @@ python: - 3.6 env: - - DJANGO_VERSION=1.8.18 DATABASE_ENGINE=mysql - - DJANGO_VERSION=1.8.18 DATABASE_ENGINE=postgres - - DJANGO_VERSION=1.8.18 DATABASE_ENGINE=sqlite - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=mysql - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=postgres - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=sqlite diff --git a/letsencrypt/models.py b/letsencrypt/models.py index 04ea4b5..8c72714 100644 --- a/letsencrypt/models.py +++ b/letsencrypt/models.py @@ -15,20 +15,10 @@ """ from django.db import models - -try: - from django.urls import ( - reverse, - NoReverseMatch, - ) -except ImportError: - # Django versions prior to 2.0 use the following: - - # noinspection PyUnresolvedReferences - from django.core.urlresolvers import ( - reverse, - NoReverseMatch, - ) +from django.urls import ( + reverse, + NoReverseMatch, +) class AcmeChallenge(models.Model): diff --git a/setup.py b/setup.py index 9ff4d6c..7ad6cb3 100644 --- a/setup.py +++ b/setup.py @@ -35,14 +35,13 @@ author='Peter Urda', author_email='noreply@urda.cc', install_requires=[ - "Django>=1.8.18,!=1.9.*,!=1.10.*", + "Django>=1.11", "pytz>=2017.3", ], classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Framework :: Django', - 'Framework :: Django :: 1.8', 'Framework :: Django :: 1.11', 'Framework :: Django :: 2.0', 'Intended Audience :: Developers', diff --git a/tox.ini b/tox.ini index 270c076..a1e29cd 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,6 @@ [tox] envlist = flake-and-version-check - py{34,35,36}-django18 py{34,35,36}-django111 py{34,35,36}-django20 coverage-report @@ -12,7 +11,6 @@ commands = make test-tox deps = - django18: Django>=1.8,<1.9 django111: Django>=1.11,<2.0 django20: Django>=2.0,<2.1 pytz From fbb1f289e4da58ede50781a8abe3661e37ce522d Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 13:47:00 -0700 Subject: [PATCH 08/18] Update dates on touched files --- letsencrypt/models.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/letsencrypt/models.py b/letsencrypt/models.py index 8c72714..3578929 100644 --- a/letsencrypt/models.py +++ b/letsencrypt/models.py @@ -1,5 +1,5 @@ """ -Copyright 2016-2017 Peter Urda +Copyright 2016-2018 Peter Urda Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/setup.py b/setup.py index 7ad6cb3..40e84d1 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ """ -Copyright 2016-2017 Peter Urda +Copyright 2016-2018 Peter Urda Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 4f2841256b8e536de0ceebac1f4ab9834c76dc2c Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 13:55:10 -0700 Subject: [PATCH 09/18] Update CHANGELOG following PR #67 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdf93ef..1324028 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## v3.0.1 +- Breaking Changes + - `Django 1.8` support has been dropped. `v3.0.0` is the last supported + version for users still on `Django 1.8`. - Documentation Changes - Update the `ACME challenge` link in `README.rst`. - Project Changes @@ -11,6 +14,7 @@ [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) document. - Thanks to Contributors: + - [michael-k](https://github.com/michael-k) - [Paolo Dina](https://github.com/paolodina) ## v3.0.0 From 305f2ddca33bd0e6568505885b365524ed41fe62 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 14:28:24 -0700 Subject: [PATCH 10/18] Init dot github folder, codecov.yml --- .github/codecov.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/codecov.yml diff --git a/.github/codecov.yml b/.github/codecov.yml new file mode 100644 index 0000000..b250ada --- /dev/null +++ b/.github/codecov.yml @@ -0,0 +1,6 @@ +coverage: + status: + patch: + default: + enabled: yes + target: 100% From 9867bffd538ac9a24e6cba9191d4e57513f7246c Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 13:59:20 -0700 Subject: [PATCH 11/18] Bump pytz version to 2018.4 --- CHANGELOG.md | 1 + example_project/requirements.txt | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1324028..850ab82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - You can learn more about this feature by reading [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) document. + - Bumped to the latest `pytz`, version `2018.4`. - Thanks to Contributors: - [michael-k](https://github.com/michael-k) - [Paolo Dina](https://github.com/paolodina) diff --git a/example_project/requirements.txt b/example_project/requirements.txt index 2ffd9c5..061a24e 100644 --- a/example_project/requirements.txt +++ b/example_project/requirements.txt @@ -1,2 +1,2 @@ Django==1.11.7 -pytz==2017.3 +pytz==2018.4 diff --git a/setup.py b/setup.py index 40e84d1..a1f8070 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ author_email='noreply@urda.cc', install_requires=[ "Django>=1.11", - "pytz>=2017.3", + "pytz>=2018.4", ], classifiers=[ 'Development Status :: 5 - Production/Stable', From 6df7423dca541dda4943e8f74c268c0f9e3b4f1d Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 14:53:25 -0700 Subject: [PATCH 12/18] Bump Django version in example_project --- example_project/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example_project/requirements.txt b/example_project/requirements.txt index 061a24e..1228d23 100644 --- a/example_project/requirements.txt +++ b/example_project/requirements.txt @@ -1,2 +1,2 @@ -Django==1.11.7 +Django==2.0.4 pytz==2018.4 From 5bb7f1cc4d91550f77ecf35f587f2794883fb769 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 14:53:36 -0700 Subject: [PATCH 13/18] Bump Django versions in travis --- .travis.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4e686f6..9fa162b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,12 +10,12 @@ python: - 3.6 env: - - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=mysql - - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=postgres - - DJANGO_VERSION=1.11.8 DATABASE_ENGINE=sqlite - - DJANGO_VERSION=2.0 DATABASE_ENGINE=mysql - - DJANGO_VERSION=2.0 DATABASE_ENGINE=postgres - - DJANGO_VERSION=2.0 DATABASE_ENGINE=sqlite + - DJANGO_VERSION=1.11.12 DATABASE_ENGINE=mysql + - DJANGO_VERSION=1.11.12 DATABASE_ENGINE=postgres + - DJANGO_VERSION=1.11.12 DATABASE_ENGINE=sqlite + - DJANGO_VERSION=2.0.4 DATABASE_ENGINE=mysql + - DJANGO_VERSION=2.0.4 DATABASE_ENGINE=postgres + - DJANGO_VERSION=2.0.4 DATABASE_ENGINE=sqlite branches: only: From c3791726e368e4aecae6698c190c1f5d82e4a796 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 14:55:34 -0700 Subject: [PATCH 14/18] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 850ab82..96bed29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) document. - Bumped to the latest `pytz`, version `2018.4`. +- Internal Changes + - Bumped `DJANGO_VERSION` targets in `.travis.yml`. - Thanks to Contributors: - [michael-k](https://github.com/michael-k) - [Paolo Dina](https://github.com/paolodina) From f46ac09755c0a9364dd91f5ff02aace50072cd52 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 14:56:17 -0700 Subject: [PATCH 15/18] Update author_email to new urda.com domain that I now own. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a1f8070..9756ff0 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ long_description=README, url='https://github.com/urda/django-letsencrypt', author='Peter Urda', - author_email='noreply@urda.cc', + author_email='noreply@urda.com', install_requires=[ "Django>=1.11", "pytz>=2018.4", From 5fecc3cb4120a84d20c652b301919e5f3955a9f2 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 15:28:45 -0700 Subject: [PATCH 16/18] Convert README fro rst to md --- CHANGELOG.md | 1 + MANIFEST.in | 2 +- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ README.rst | 50 -------------------------------------------------- setup.py | 2 +- 5 files changed, 47 insertions(+), 52 deletions(-) create mode 100644 README.md delete mode 100644 README.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 96bed29..1843262 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ [this](https://packaging.python.org/tutorials/distributing-packages/#python-requires) document. - Bumped to the latest `pytz`, version `2018.4`. + - Switched from `reStructuredText` to `Markdown`. - Internal Changes - Bumped `DJANGO_VERSION` targets in `.travis.yml`. - Thanks to Contributors: diff --git a/MANIFEST.in b/MANIFEST.in index b7e21ba..ebdc5d9 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ include CHANGELOG.md include LICENSE -include README.rst +include README.md recursive-include letsencrypt/migrations *.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..fbc4389 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# Let's Encrypt App for Django + +[![Travis Build Status (Master)](https://travis-ci.org/urda/django-letsencrypt.svg?branch=master)](https://travis-ci.org/urda/django-letsencrypt) [![Codecov Status (Master)](https://codecov.io/gh/urda/django-letsencrypt/branch/master/graph/badge.svg)](https://codecov.io/gh/urda/django-letsencrypt/branch/master) + +`django-letsencrypt` will allow you to add, remove, and update any +[ACME challenge](https://github.com/ietf-wg-acme/acme/) objects you may +need through your Django admin interface. Simply add the `ACME challenge` +and `response` for your app to serve up the necessary information for +[Let's Encrypt](https://letsencrypt.org/how-it-works/) validation. + +## Installation & Configuration + +1. `pip install django-letsencrypt` + +2. Add `letsencrypt` to your `INSTALLED_APPS` + +```python +INSTALLED_APPS = [ + ... , + 'letsencrypt', + ... , +] +``` + +3. Include the `letsencrypt` in your project's `urls.py`, + or where applicable (usually your root `urls.py`). + +```python +url(r'^\.well-known/', include('letsencrypt.urls')) +``` + +4. Run `manage.py migrate` to create the required table for the + `letsencrypt` model + +5. Create your `ACME Challenge` objects in your Django admin interface + +6. Test your `ACME Challenge` objects and their responses by visiting + them: + +``` +{Django Site}/.well-known/acme-challenge/challenge_text +``` + +7. Enjoy your easy to manage `ACME Challenges` inside your Django project! diff --git a/README.rst b/README.rst deleted file mode 100644 index 5a943d3..0000000 --- a/README.rst +++ /dev/null @@ -1,50 +0,0 @@ -Let's Encrypt App for Django -============================ - -.. image:: https://travis-ci.org/urda/django-letsencrypt.svg?branch=master - :target: https://travis-ci.org/urda/django-letsencrypt - -.. image:: https://codecov.io/gh/urda/django-letsencrypt/branch/master/graph/badge.svg - :target: https://codecov.io/gh/urda/django-letsencrypt/branch/master - -:code:`django-letsencrypt` will allow you to add, remove, and update any -`ACME challenge `_ objects you may -need through your Django admin interface. Simply add the :code:`ACME challenge` -and :code:`response` for your app to serve up the necessary information for -`Let\'s Encrypt `_ validation. - -Installation & Configuration ----------------------------- - -#. :code:`pip install django-letsencrypt` - -#. Add :code:`letsencrypt` to your :code:`INSTALLED_APPS` - - .. code:: python - - INSTALLED_APPS = [ - ... , - 'letsencrypt', - ... , - ] - -#. Include the :code:`letsencrypt` in your project's :code:`urls.py`, - or where applicable (usually your root :code:`urls.py`). - - .. code:: python - - url(r'^\.well-known/', include('letsencrypt.urls')) - -#. Run :code:`manage.py migrate` to create the required table for the - :code:`letsencrypt` model - -#. Create your :code:`ACME Challenge` objects in your Django admin interface - -#. Test your :code:`ACME Challenge` objects and their responses by visiting - them: - - .. code:: - - {Django Site}/.well-known/acme-challenge/challenge_text - -#. Enjoy your easy to manage `ACME Challenges` inside your Django project! diff --git a/setup.py b/setup.py index 9756ff0..3fc9dd9 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ import os from setuptools import setup -with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme: +with open(os.path.join(os.path.dirname(__file__), 'README.md')) as readme: README = readme.read() os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) From d0f5770e74056bc0e899771fddc9f9eac3be0c66 Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 15:53:01 -0700 Subject: [PATCH 17/18] Needed to fix Markdown rendering issue. See soruce URL commit (...) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pulled from: https://dustingram.com/articles/2018/03/16/markdown-descriptions-on-pypi PEP 566 added new metadata fields including Description-Content-Type. To set the content type for your long description, you’ll need to add the following argument to the setup() call in your projects setup.py: long_description=long_description, + long_description_content_type="text/markdown", --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 3fc9dd9..771ade1 100644 --- a/setup.py +++ b/setup.py @@ -31,6 +31,7 @@ license='Apache License, Version 2.0', description="A simple Django app to handle Let's Encrypt ACME challenges.", long_description=README, + long_description_content_type='text/markdown', url='https://github.com/urda/django-letsencrypt', author='Peter Urda', author_email='noreply@urda.com', From e022084c9517e0faf22a3a8bee9acbfacf1bda7b Mon Sep 17 00:00:00 2001 From: Peter Urda Date: Sun, 22 Apr 2018 16:24:40 -0700 Subject: [PATCH 18/18] LICENSE needs a Copyright bump --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 08fcb62..a94bcac 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2016-2017 Peter Urda + Copyright 2016-2018 Peter Urda Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.