diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml index fd2d1c3..372272f 100644 --- a/.github/workflows/pypi.yml +++ b/.github/workflows/pypi.yml @@ -7,20 +7,20 @@ on: jobs: deploy: runs-on: ubuntu-latest + permissions: + contents: read + id-token: write steps: - - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.8' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine - - name: Build and publish - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - python setup.py sdist bdist_wheel - twine upload dist/* + - uses: actions/checkout@v6 + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.14" + - name: Install build dependency + run: | + python -m pip install --upgrade pip + python -m pip install build + - name: Build package + run: python -m build + - name: Publish package to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore index aaa3a42..62df274 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +__pycache__/ *.pyc *.db .coverage diff --git a/enforce_host/__init__.py b/enforce_host/__init__.py index 655df53..501f50b 100644 --- a/enforce_host/__init__.py +++ b/enforce_host/__init__.py @@ -1,5 +1,3 @@ -__version__ = "1.1.0" - from django.conf import settings from django.core.exceptions import MiddlewareNotUsed from django.http import HttpResponsePermanentRedirect diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..657f256 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,20 @@ +[build-system] +requires = ["setuptools>=77"] +build-backend = "setuptools.build_meta" + +[project] +name = "django-enforce-host" +version = "1.1.0" +description = "Middleware to redirect requests to a canonical hostname" +readme = "README.md" +requires-python = ">=3.10" +license = "BSD-3-Clause" +license-files = ["LICENSE"] +authors = [{ name = "DabApps", email = "hello@dabapps.com" }] + +[project.urls] +Homepage = "https://github.com/dabapps/django-enforce-host" +Repository = "https://github.com/dabapps/django-enforce-host" + +[tool.setuptools.packages.find] +include = ["enforce_host*"] diff --git a/setup.py b/setup.py deleted file mode 100644 index 4159f79..0000000 --- a/setup.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from __future__ import print_function -from setuptools import setup -import re -import os -import sys - - -name = 'django-enforce-host' -package = 'enforce_host' -description = 'Middleware to redirect requests to a canonical hostname' -url = 'https://github.com/dabapps/django-enforce-host' -author = 'DabApps' -author_email = 'hello@dabapps.com' -license = 'BSD' - -long_description = description - -def get_version(package): - """ - Return package version as listed in `__version__` in `init.py`. - """ - init_py = open(os.path.join(package, '__init__.py')).read() - return re.search("^__version__ = ['\"]([^'\"]+)['\"]", init_py, re.MULTILINE).group(1) - - -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 - package themselves. - """ - walk = [(dirpath.replace(package + os.sep, '', 1), filenames) - for dirpath, dirnames, filenames in os.walk(package) - if not os.path.exists(os.path.join(dirpath, '__init__.py'))] - - filepaths = [] - for base, filenames in walk: - filepaths.extend([os.path.join(base, filename) - for filename in filenames]) - return {package: filepaths} - - -if sys.argv[-1] == 'publish': - os.system("python setup.py sdist upload") - args = {'version': get_version(package)} - print("You probably want to also tag the version now:") - print(" git tag -a %(version)s -m 'version %(version)s'" % args) - print(" git push --tags") - sys.exit() - - -setup( - name=name, - version=get_version(package), - url=url, - license=license, - description=description, - long_description=long_description, - author=author, - author_email=author_email, - packages=get_packages(package), - package_data=get_package_data(package), -)