From a891b20cdede0d24a3e2d0378cc1c6de8ce6c3da Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Thu, 5 Oct 2023 16:09:25 +0200 Subject: [PATCH] Switch from setup.py to pyproject.toml This'll make configuring a few tools a bit easier. The previous approach is kinda of deprecated anyway. --- .github/workflows/test.yml | 2 +- README.rst | 2 +- pyproject.toml | 74 ++++++++++++++++++++++++++++++++++++++ requirements_dev.txt | 31 ---------------- setup.py | 36 ------------------- 5 files changed, 76 insertions(+), 69 deletions(-) create mode 100644 pyproject.toml delete mode 100644 requirements_dev.txt delete mode 100644 setup.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f44fa80..1309eb7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: with: python-version: ${{ matrix.python-version }} cache: pip - cache-dependency-path: setup.py + cache-dependency-path: pyproject.toml - name: Install dependencies run: | diff --git a/README.rst b/README.rst index 83efc22..6de7d76 100644 --- a/README.rst +++ b/README.rst @@ -131,7 +131,7 @@ The following actions are required to push a new version: bumpversion [major|minor|patch] git push && git push --tags - python setup.py sdist bdist_wheel + python -m build --wheel --no-isolation twine upload dist/* diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..737c097 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,74 @@ +[build-system] +requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"] + +[project] +name = "django-user-sessions" +authors = [ + {name = "Bouke Haarsma", email = "bouke@haarsma.eu"}, + # {name = "Hugo Osvaldo Barrera", email = "hugo@whynothugo.nl"}, +] +description = "Django sessions with a foreign key to the user" +readme = "README.rst" +# TOOD: drop 3.7 +requires-python = ">=3.7" +keywords = ["django", "sessions"] +license = {text = "MIT"} +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Web Environment", + "Framework :: Django", + "Framework :: Django :: 3.2", + "Framework :: Django :: 4.0", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Topic :: Security", +] +dependencies = [ + "Django>=3.2", +] +dynamic = ["version"] + +[project.urls] +homepage = "https://github.com/jazzband/django-user-sessions" +download = "https://pypi.org/project/django-user-sessions/" +documentation = "https://django-user-sessions.readthedocs.io/en/stable/" +changelog = "https://django-user-sessions.readthedocs.io/en/stable/release-notes.html" +issues = "https://github.com/jazzband/django-user-sessions/issues" + +[project.optional-dependencies] +dev = [ + # Example app + "django-debug-toolbar", + # Testing + "coverage", + "flake8", + "tox", + "tox-pyenv", + "detox", + "isort", + # Transifex + "transifex-client", + # Documentation + "Sphinx", + "sphinx_rtd_theme", + # Build + "wheel", # TODO: not required? + "bumpversion", # TODO: unused? + "twine", +] + +[tool.setuptools] +packages = ["user_sessions"] + +[tool.setuptools_scm] +version_scheme = "post-release" + +# TODO: confirm that package data is shipped properly diff --git a/requirements_dev.txt b/requirements_dev.txt deleted file mode 100644 index 508be54..0000000 --- a/requirements_dev.txt +++ /dev/null @@ -1,31 +0,0 @@ -# The app itself - --e . - -# Example app - -django-debug-toolbar - -# Testing - -coverage -flake8 -tox -tox-pyenv -detox -isort - -# Transifex - -transifex-client - -# Documentation - -Sphinx -sphinx_rtd_theme - -# Build - -wheel -bumpversion -twine diff --git a/setup.py b/setup.py deleted file mode 100644 index 706c310..0000000 --- a/setup.py +++ /dev/null @@ -1,36 +0,0 @@ -from setuptools import find_packages, setup - -setup( - name='django-user-sessions', - use_scm_version={"version_scheme": "post-release"}, - setup_requires=["setuptools_scm"], - description='Django sessions with a foreign key to the user', - long_description=open('README.rst').read(), - author='Bouke Haarsma', - author_email='bouke@haarsma.eu', - url='https://github.com/jazzband/django-user-sessions', - download_url='https://pypi.org/project/django-user-sessions/', - license='MIT', - packages=find_packages(exclude=('example', 'tests',)), - install_requires=['Django>=3.2'], - include_package_data=True, - python_requires='>=3.7', - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Web Environment', - 'Framework :: Django', - 'Framework :: Django :: 3.2', - 'Framework :: Django :: 4.0', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Topic :: Security', - ], -)