diff --git a/.coveragerc b/.coveragerc index ddc5570..033d24c 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,7 +5,7 @@ # getting the report --> `coverage report` [run] -include = js_logger/* +include = django_js_logger/* [report] exclude_lines = diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 9b6a086..f533e95 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -24,7 +24,7 @@ # poetry install # - name: Test with pytest # run: | -# poetry run pytest --cov=js_logger --verbose --color=yes --assert=plain --cov-report=xml +# poetry run pytest --cov=django_js_logger --verbose --color=yes --assert=plain --cov-report=xml # poetry run coverage report # - name: Upload coverage to Codecov # uses: codecov/codecov-action@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ae96579..7c248a0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,5 +25,5 @@ # poetry run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics # - name: Test with pytest # run: | -# poetry run pytest --cov=js_logger --verbose --color=yes --assert=plain +# poetry run pytest --cov=django_js_logger --verbose --color=yes --assert=plain # poetry run coverage report diff --git a/MANIFEST.in b/MANIFEST.in index 8d9e42d..08991a3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -recursive-include js_logger/static * +recursive-include django_js_logger/static * include AUTHORS include LICENSE include README.rst diff --git a/README.rst b/README.rst index 8011eb3..30475f3 100644 --- a/README.rst +++ b/README.rst @@ -1,33 +1,35 @@ -======================== -Django Javascript Logger -======================== - -.. image:: https://img.shields.io/pypi/v/django-js-logger.svg - :target: https://pypi.org/project/django-js-logger/ - -.. image:: https://img.shields.io/pypi/pyversions/django-js-logger.svg - :target: https://pypi.org/project/django-js-logger/ - -.. image:: https://img.shields.io/pypi/djversions/django-js-logger.svg - :target: https://pypi.python.org/pypi/django-js-logger - -.. image:: https://codecov.io/gh/sondrelg/django-js-logger/branch/master/graph/badge.svg - :alt: Code coverage - :target: https://codecov.io/gh/sondrelg/django-js-logger/ - -.. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :alt: Code style black - :target: https://pypi.org/project/django-swagger-tester/ - -.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white - :alt: Pre-commit enabled - :target: https://github.com/pre-commit/pre-commit +.. raw:: html -.. image:: http://www.mypy-lang.org/static/mypy_badge.svg - :alt: Checked with mypy - :target: http://mypy-lang.org/ +

Django Javascript Logger ✏

+ +

+ + Package version + + + Compatible python version + + + Compatible django versions + + + Code coverage + +
+ + Pre-commit enabled + + + Code style black + + + Checked with mypy + + +
+ +

-| This is a very simple Django app for forwarding console logs and console errors to dedicated Django loggers. @@ -59,16 +61,16 @@ Installing with poetry:: Quick start ----------- -1. Add ``js_logger`` to your INSTALLED_APPS settings:: +1. Add ``django_js_logger`` to your INSTALLED_APPS settings:: INSTALLED_APPS = [ ... - 'js_logger', + 'django_js_logger', ] 2. Include the packages URLconf in your project urls.py like this:: - path('js-logs/', include('js_logger.urls')), + path('js-logs/', include('django_js_logger.urls')), 3. Optionally, specify your logging preferences by adding ``JS_LOGGER`` to your settings:: diff --git a/demo/settings.py b/demo/settings.py index 693d76f..f2d7f8d 100644 --- a/demo/settings.py +++ b/demo/settings.py @@ -14,7 +14,7 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', - 'js_logger', + 'django_js_logger', ] MIDDLEWARE = [ diff --git a/demo/tests.py b/demo/tests.py index e563e54..c01ae54 100644 --- a/demo/tests.py +++ b/demo/tests.py @@ -5,7 +5,7 @@ from django.core.exceptions import ImproperlyConfigured from django.test import SimpleTestCase -from js_logger.config import get_logger, Settings +from django_js_logger.config import get_logger, Settings from selenium.webdriver import Chrome diff --git a/demo/urls.py b/demo/urls.py index e166e85..3ff4f2c 100644 --- a/demo/urls.py +++ b/demo/urls.py @@ -4,5 +4,5 @@ urlpatterns = [ path('', views.index), - path('js-logs/', include('js_logger.urls')), + path('js-logs/', include('django_js_logger.urls')), ] diff --git a/js_logger/__init__.py b/django_js_logger/__init__.py similarity index 54% rename from js_logger/__init__.py rename to django_js_logger/__init__.py index b6cd97a..4e54329 100644 --- a/js_logger/__init__.py +++ b/django_js_logger/__init__.py @@ -1,4 +1,4 @@ __version__ = '0.1.0' __author__ = 'Sondre Lillebø Gundersen' -default_app_config = 'js_logger.apps.JsConfig' +default_app_config = 'django_js_logger.apps.JsConfig' diff --git a/js_logger/apps.py b/django_js_logger/apps.py similarity index 67% rename from js_logger/apps.py rename to django_js_logger/apps.py index cae8123..d15175a 100644 --- a/js_logger/apps.py +++ b/django_js_logger/apps.py @@ -2,4 +2,4 @@ class JsConfig(AppConfig): - name = 'js_logger' + name = 'django_js_logger' diff --git a/js_logger/config.py b/django_js_logger/config.py similarity index 100% rename from js_logger/config.py rename to django_js_logger/config.py diff --git a/js_logger/static/django_js_logger/logger.js b/django_js_logger/static/django_js_logger/logger.js similarity index 100% rename from js_logger/static/django_js_logger/logger.js rename to django_js_logger/static/django_js_logger/logger.js diff --git a/js_logger/urls.py b/django_js_logger/urls.py similarity index 70% rename from js_logger/urls.py rename to django_js_logger/urls.py index e8579c2..4ebe4ed 100644 --- a/js_logger/urls.py +++ b/django_js_logger/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from js_logger.views import JsLoggerApi +from django_js_logger.views import JsLoggerApi urlpatterns = [ path('', JsLoggerApi.as_view(), name='django_js_logger-api'), diff --git a/js_logger/views.py b/django_js_logger/views.py similarity index 93% rename from js_logger/views.py rename to django_js_logger/views.py index e8fb3e0..e2e7cfd 100644 --- a/js_logger/views.py +++ b/django_js_logger/views.py @@ -3,7 +3,7 @@ from rest_framework.status import HTTP_204_NO_CONTENT from rest_framework.views import APIView -from js_logger.config import settings +from django_js_logger.config import settings loggers = { 'console_log': settings.CONSOLE_LOG_LOGGER, diff --git a/docs/PYPI_README.rst b/docs/PYPI_README.rst new file mode 100644 index 0000000..7f41fe2 --- /dev/null +++ b/docs/PYPI_README.rst @@ -0,0 +1,80 @@ +======================== +Django Javascript Logger +======================== + +.. image:: https://img.shields.io/pypi/v/django-js-logger.svg + :target: https://pypi.org/project/django-js-logger/ + +.. image:: https://img.shields.io/pypi/pyversions/django-js-logger.svg + :target: https://pypi.org/project/django-js-logger/ + +.. image:: https://img.shields.io/pypi/djversions/django-js-logger.svg + :target: https://pypi.python.org/pypi/django-js-logger + +.. image:: https://codecov.io/gh/sondrelg/django-js-logger/branch/master/graph/badge.svg + :alt: Code coverage + :target: https://codecov.io/gh/sondrelg/django-js-logger/ + +.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white + :alt: Pre-commit enabled + :target: https://github.com/pre-commit/pre-commit + +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :alt: Code style black + :target: https://pypi.org/project/django-swagger-tester/ + +.. image:: http://www.mypy-lang.org/static/mypy_badge.svg + :alt: Checked with mypy + :target: http://mypy-lang.org/ + +| + +This is a very simple Django app for forwarding console logs and console errors to dedicated Django loggers. + +Useful for catching Javascript errors that are not logged by Django natively and would otherwise only be logged to the client's console. Can be particularly useful if you have JavaScript running on top of our server-side rendered views. + +The app works by posting *all relevant events* to an internal Django API, which logs them to one of two loggers. Not sure what impact this has on an apps performance, but it likely should not run anywhere near performance-sensitive production environments. Primarily this is intended to be a debugging aid. + +A flowchart of the app's structure looks something like this: + +.. image:: docs/img/flowchart.png + +The package is open to contributions. + +Installation +------------ + +Installing with pip:: + + pip install django-js-logger + +Installing with poetry:: + + poetry add django-js-logger + +Quick start +----------- + +1. Add ``django_js_logger`` to your INSTALLED_APPS settings:: + + INSTALLED_APPS = [ + ... + 'django_js_logger', + ] + +2. Include the packages URLconf in your project urls.py like this:: + + path('js-logs/', include('django_js_logger.urls')), + +3. Optionally, specify your logging preferences by adding ``JS_LOGGER`` to your settings:: + + JS_LOGGER = { + 'CONSOLE_LOG_LEVEL': 'INFO', + 'CONSOLE_ERROR_LEVEL': 'WARNING' + } + +4. Add the required static file to your project by running ``manage.py collectstatic``. This should add a folder, ``django_js_logger`` with the file ``logger.js``. If this is not the case, you can copy the file manually from the demo project above. + +5. Import ``logger.js`` in the views you wish to log from by adding a JS import to your templates:: + + diff --git a/poetry.lock b/poetry.lock index 6fbcf9f..d43a52e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -12,10 +12,10 @@ description = "ASGI specs, helper code, and adapters" name = "asgiref" optional = false python-versions = ">=3.5" -version = "3.2.7" +version = "3.2.10" [package.extras] -tests = ["pytest (>=4.3.0,<4.4.0)", "pytest-asyncio (>=0.10.0,<0.11.0)"] +tests = ["pytest", "pytest-asyncio"] [[package]] category = "dev" @@ -42,7 +42,7 @@ description = "Distribution utilities" name = "distlib" optional = false python-versions = "*" -version = "0.3.0" +version = "0.3.1" [[package]] category = "main" @@ -50,7 +50,7 @@ description = "A high-level Python Web framework that encourages rapid developme name = "django" optional = false python-versions = ">=3.6" -version = "3.0.6" +version = "3.0.7" [package.dependencies] asgiref = ">=3.2,<4.0" @@ -86,7 +86,7 @@ description = "the modular source code checker: pep8 pyflakes and co" name = "flake8" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -version = "3.8.2" +version = "3.8.3" [package.dependencies] mccabe = ">=0.6.0,<0.7.0" @@ -103,7 +103,7 @@ description = "File identification library for Python" name = "identify" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -version = "1.4.16" +version = "1.4.20" [package.extras] license = ["editdistance"] @@ -115,14 +115,14 @@ marker = "python_version < \"3.8\"" name = "importlib-metadata" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -version = "1.6.0" +version = "1.7.0" [package.dependencies] zipp = ">=0.5" [package.extras] docs = ["sphinx", "rst.linker"] -testing = ["packaging", "importlib-resources"] +testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] [[package]] category = "dev" @@ -131,7 +131,7 @@ marker = "python_version < \"3.7\"" name = "importlib-resources" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -version = "1.5.0" +version = "2.0.1" [package.dependencies] [package.dependencies.importlib-metadata] @@ -159,7 +159,7 @@ description = "Node.js virtual environment builder" name = "nodeenv" optional = false python-versions = "*" -version = "1.3.5" +version = "1.4.0" [[package]] category = "dev" @@ -167,7 +167,7 @@ description = "A framework for managing and maintaining multi-language pre-commi name = "pre-commit" optional = false python-versions = ">=3.6.1" -version = "2.4.0" +version = "2.5.1" [package.dependencies] cfgv = ">=2.0.0" @@ -271,7 +271,7 @@ description = "Virtual Python Environment builder" name = "virtualenv" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -version = "20.0.21" +version = "20.0.25" [package.dependencies] appdirs = ">=1.4.3,<2" @@ -285,11 +285,11 @@ version = ">=0.12,<2" [package.dependencies.importlib-resources] python = "<3.7" -version = ">=1.0,<2" +version = ">=1.0" [package.extras] docs = ["sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)", "proselint (>=0.10.2)"] -testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout", "packaging (>=20.0)", "xonsh (>=0.9.16)"] +testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-freezegun (>=0.4.1)", "flaky (>=3)", "packaging (>=20.0)", "xonsh (>=0.9.16)"] [[package]] category = "dev" @@ -316,7 +316,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] testing = ["jaraco.itertools", "func-timeout"] [metadata] -content-hash = "83fea3d0b06bba06e1daa71c27db25a15f2e4c88f62a5d9c505605418384fce9" +content-hash = "9ec3178ee52143c018f27155fdfa5d2e64dc21f3648ad56a436a115a4a344167" python-versions = "^3.6.1" [metadata.files] @@ -325,8 +325,8 @@ appdirs = [ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, ] asgiref = [ - {file = "asgiref-3.2.7-py2.py3-none-any.whl", hash = "sha256:9ca8b952a0a9afa61d30aa6d3d9b570bb3fd6bafcf7ec9e6bed43b936133db1c"}, - {file = "asgiref-3.2.7.tar.gz", hash = "sha256:8036f90603c54e93521e5777b2b9a39ba1bad05773fcf2d208f0299d1df58ce5"}, + {file = "asgiref-3.2.10-py3-none-any.whl", hash = "sha256:9fc6fb5d39b8af147ba40765234fa822b39818b12cc80b35ad9b0cef3a476aed"}, + {file = "asgiref-3.2.10.tar.gz", hash = "sha256:7e51911ee147dd685c3c8b805c0ad0cb58d360987b56953878f8c06d2d1c6f1a"}, ] cfgv = [ {file = "cfgv-3.1.0-py2.py3-none-any.whl", hash = "sha256:1ccf53320421aeeb915275a196e23b3b8ae87dea8ac6698b1638001d4a486d53"}, @@ -366,11 +366,12 @@ coverage = [ {file = "coverage-5.1.tar.gz", hash = "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"}, ] distlib = [ - {file = "distlib-0.3.0.zip", hash = "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21"}, + {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"}, + {file = "distlib-0.3.1.zip", hash = "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1"}, ] django = [ - {file = "Django-3.0.6-py3-none-any.whl", hash = "sha256:051ba55d42daa3eeda3944a8e4df2bc96d4c62f94316dea217248a22563c3621"}, - {file = "Django-3.0.6.tar.gz", hash = "sha256:9aaa6a09678e1b8f0d98a948c56482eac3e3dd2ddbfb8de70a868135ef3b5e01"}, + {file = "Django-3.0.7-py3-none-any.whl", hash = "sha256:e1630333248c9b3d4e38f02093a26f1e07b271ca896d73097457996e0fae12e8"}, + {file = "Django-3.0.7.tar.gz", hash = "sha256:5052b34b34b3425233c682e0e11d658fd6efd587d11335a0203d827224ada8f2"}, ] djangorestframework = [ {file = "djangorestframework-3.11.0-py3-none-any.whl", hash = "sha256:05809fc66e1c997fd9a32ea5730d9f4ba28b109b9da71fccfa5ff241201fd0a4"}, @@ -381,31 +382,31 @@ filelock = [ {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"}, ] flake8 = [ - {file = "flake8-3.8.2-py2.py3-none-any.whl", hash = "sha256:ccaa799ef9893cebe69fdfefed76865aeaefbb94cb8545617b2298786a4de9a5"}, - {file = "flake8-3.8.2.tar.gz", hash = "sha256:c69ac1668e434d37a2d2880b3ca9aafd54b3a10a3ac1ab101d22f29e29cf8634"}, + {file = "flake8-3.8.3-py2.py3-none-any.whl", hash = "sha256:15e351d19611c887e482fb960eae4d44845013cc142d42896e9862f775d8cf5c"}, + {file = "flake8-3.8.3.tar.gz", hash = "sha256:f04b9fcbac03b0a3e58c0ab3a0ecc462e023a9faf046d57794184028123aa208"}, ] identify = [ - {file = "identify-1.4.16-py2.py3-none-any.whl", hash = "sha256:0f3c3aac62b51b86fea6ff52fe8ff9e06f57f10411502443809064d23e16f1c2"}, - {file = "identify-1.4.16.tar.gz", hash = "sha256:f9ad3d41f01e98eb066b6e05c5b184fd1e925fadec48eb165b4e01c72a1ef3a7"}, + {file = "identify-1.4.20-py2.py3-none-any.whl", hash = "sha256:acf0712ab4042642e8f44e9532d95c26fbe60c0ab8b6e5b654dd1bc6512810e0"}, + {file = "identify-1.4.20.tar.gz", hash = "sha256:b2cd24dece806707e0b50517c1b3bcf3044e0b1cb13a72e7d34aa31c91f2a55a"}, ] importlib-metadata = [ - {file = "importlib_metadata-1.6.0-py2.py3-none-any.whl", hash = "sha256:2a688cbaa90e0cc587f1df48bdc97a6eadccdcd9c35fb3f976a09e3b5016d90f"}, - {file = "importlib_metadata-1.6.0.tar.gz", hash = "sha256:34513a8a0c4962bc66d35b359558fd8a5e10cd472d37aec5f66858addef32c1e"}, + {file = "importlib_metadata-1.7.0-py2.py3-none-any.whl", hash = "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070"}, + {file = "importlib_metadata-1.7.0.tar.gz", hash = "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83"}, ] importlib-resources = [ - {file = "importlib_resources-1.5.0-py2.py3-none-any.whl", hash = "sha256:85dc0b9b325ff78c8bef2e4ff42616094e16b98ebd5e3b50fe7e2f0bbcdcde49"}, - {file = "importlib_resources-1.5.0.tar.gz", hash = "sha256:6f87df66833e1942667108628ec48900e02a4ab4ad850e25fbf07cb17cf734ca"}, + {file = "importlib_resources-2.0.1-py2.py3-none-any.whl", hash = "sha256:83985739b3a6679702f9ab33f0ad016ad564664d0568a31ac14d7c64789453e6"}, + {file = "importlib_resources-2.0.1.tar.gz", hash = "sha256:f5edfcece1cc9435d0979c19e08739521f4cf1aa1adaf6e571f732df6f568962"}, ] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] nodeenv = [ - {file = "nodeenv-1.3.5-py2.py3-none-any.whl", hash = "sha256:5b2438f2e42af54ca968dd1b374d14a1194848955187b0e5e4be1f73813a5212"}, + {file = "nodeenv-1.4.0-py2.py3-none-any.whl", hash = "sha256:4b0b77afa3ba9b54f4b6396e60b0c83f59eaeb2d63dc3cc7a70f7f4af96c82bc"}, ] pre-commit = [ - {file = "pre_commit-2.4.0-py2.py3-none-any.whl", hash = "sha256:5559e09afcac7808933951ffaf4ff9aac524f31efbc3f24d021540b6c579813c"}, - {file = "pre_commit-2.4.0.tar.gz", hash = "sha256:703e2e34cbe0eedb0d319eff9f7b83e2022bb5a3ab5289a6a8841441076514d0"}, + {file = "pre_commit-2.5.1-py2.py3-none-any.whl", hash = "sha256:c5c8fd4d0e1c363723aaf0a8f9cba0f434c160b48c4028f4bae6d219177945b3"}, + {file = "pre_commit-2.5.1.tar.gz", hash = "sha256:da463cf8f0e257f9af49047ba514f6b90dbd9b4f92f4c8847a3ccd36834874c7"}, ] pycodestyle = [ {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"}, @@ -453,8 +454,8 @@ urllib3 = [ {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"}, ] virtualenv = [ - {file = "virtualenv-20.0.21-py2.py3-none-any.whl", hash = "sha256:a730548b27366c5e6cbdf6f97406d861cccece2e22275e8e1a757aeff5e00c70"}, - {file = "virtualenv-20.0.21.tar.gz", hash = "sha256:a116629d4e7f4d03433b8afa27f43deba09d48bc48f5ecefa4f015a178efb6cf"}, + {file = "virtualenv-20.0.25-py2.py3-none-any.whl", hash = "sha256:ffffcb3c78a671bb3d590ac3bc67c081ea2188befeeb058870cba13e7f82911b"}, + {file = "virtualenv-20.0.25.tar.gz", hash = "sha256:f332ba0b2dfbac9f6b1da9f11224f0036b05cdb4df23b228527c2a2d5504aeed"}, ] wheel = [ {file = "wheel-0.34.2-py2.py3-none-any.whl", hash = "sha256:df277cb51e61359aba502208d680f90c0493adec6f0e848af94948778aed386e"}, diff --git a/pyproject.toml b/pyproject.toml index 7e8db58..42820a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,17 @@ [tool.poetry] name = "django-js-logger" -version = "0.1.0" +version = "1.0.0" description = "Frontend logging for Django projects" -authors = ["Sondre Lillebø Gundersen"] +authors = ["Sondre Lillebø Gundersen "] +readme = "docs/PYPI_README.rst" +homepage = "https://github.com/snok/django-js-logger" +license = "BSD-4-Clause" +keywords = ['django'] [tool.poetry.dependencies] python = "^3.6.1" -djangorestframework = "^3.11.0" -django = "^3.0.6" +djangorestframework = "^3" +django = "^2.2 || ^3.0" [tool.poetry.dev-dependencies] pre-commit = "^2.4.0"