Adhere to new license specification in metadata

See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license

Note that this must drop (the end-of-life) Python 3.8, because
setuptools>=80 requires Python 3.9+ and older setuptools versions
require the license field to be a table instead of a string value.
This commit is contained in:
Peter Bittner 2025-07-08 15:03:42 +02:00
parent 6850710413
commit 0d87a76da0
4 changed files with 10 additions and 8 deletions

View file

@ -28,7 +28,6 @@ jobs:
- '5.1' - '5.1'
- '5.2' - '5.2'
include: include:
- { django-version: '4.2', python-version: '3.8' }
- { django-version: '4.2', python-version: '3.9' } - { django-version: '4.2', python-version: '3.9' }
exclude: exclude:
- { django-version: '4.2', python-version: '3.13' } - { django-version: '4.2', python-version: '3.13' }

View file

@ -4,6 +4,8 @@ Unreleased
* Migrate packaging from setup.py to pyproject.toml with Ruff for linting * Migrate packaging from setup.py to pyproject.toml with Ruff for linting
and formatting (Peter Bittner) and formatting (Peter Bittner)
* Remove obsolete type attribute in script tags for JavaScript (Peter Bittner) * Remove obsolete type attribute in script tags for JavaScript (Peter Bittner)
* Drop the end-of-life Python 3.8 as required by changed semantics of the
license metadata field (Peter Bittner)
Version 3.1.0 Version 3.1.0
------------- -------------

View file

@ -1,12 +1,14 @@
[build-system] [build-system]
build-backend = "setuptools.build_meta" build-backend = "setuptools.build_meta"
requires = ["setuptools>=64"] requires = ["setuptools>=80"]
[project] [project]
name = "django-analytical" name = "django-analytical"
dynamic = ["version"] dynamic = ["version"]
description = "Analytics service integration for Django projects" description = "Analytics service integration for Django projects"
readme = "README.rst" readme = "README.rst"
license = "MIT"
license-files = ["LICENSE.txt"]
authors = [ authors = [
{name = "Joost Cassee", email = "joost@cassee.net"}, {name = "Joost Cassee", email = "joost@cassee.net"},
{name = "Joshua Krall", email = "joshuakrall@pobox.com"}, {name = "Joshua Krall", email = "joshuakrall@pobox.com"},
@ -73,20 +75,20 @@ classifiers=[
"Framework :: Django :: 5.1", "Framework :: Django :: 5.1",
"Framework :: Django :: 5.2", "Framework :: Django :: 5.2",
"Intended Audience :: Developers", "Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Programming Language :: Python", "Programming Language :: Python",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.13",
"Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries :: Python Modules",
] ]
requires-python = ">=3.8" requires-python = ">=3.9"
dependencies = [ dependencies = [
"django>=4.2", "django>=4.2",
] ]

View file

@ -3,8 +3,8 @@ envlist =
lint lint
format format
audit audit
# Python/Django combinations that are officially supported # Python/Django combinations that are officially supported (minus end-of-life Pythons)
py{38,39,310,311,312}-django{42} py{39,310,311,312}-django{42}
py{310,311,312,313}-django{51} py{310,311,312,313}-django{51}
py{310,311,312,313}-django{52} py{310,311,312,313}-django{52}
package package
@ -13,7 +13,6 @@ envlist =
[gh-actions] [gh-actions]
python = python =
3.8: py38
3.9: py39 3.9: py39
3.10: py310 3.10: py310
3.10: py310 3.10: py310