Skip to content

Use pyproject.toml for PEP 517 / PEP 518 metadata #358

@AA-Turner

Description

@AA-Turner

Currently this project generates a setup.py for each of its ~400 packages.

Please consider migrating to the standardardised pyproject.toml, as installing by running ./setup.py has been deprecated for several years.

The minimum required is generating a pyproject.toml file that contains the below:

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

This is all that's required to move to standardised build metadata, away from the legacy setup.py approach.


If you want to explore migrating to standard metadata, it would look similar to the below:

# Setup script for mypy-boto3-appconfig.

# Copyright 2025 Vlad Emelianov

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

[project]
name = "mypy-boto3-appconfig"
version = "1.38.0"
urls.Homepage = "https://github.com/youtype/mypy_boto3_builder"
urls.Documentation = "https://youtype.github.io/boto3_stubs_docs/mypy_boto3_appconfig/"
urls.Source = "https://github.com/youtype/mypy_boto3_builder"
urls.Tracker = "https://github.com/youtype/mypy_boto3_builder/issues"
license = "MIT"
authors = [{ name = "Vlad Emelianov", email = "[email protected]" }]
description = "Type annotations for boto3 AppConfig 1.38.0 service generated with mypy-boto3-builder 8.10.1"
readme = "README.md"
classifiers=[
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Environment :: Console",
    "License :: OSI Approved :: MIT License",
    "Natural Language :: English",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: Implementation :: CPython",
    "Typing :: Stubs Only",
]
keywords=["boto3", "appconfig", "boto3-stubs", "type-annotations", "mypy", "typeshed", "autocomplete"]
requires-python = ">=3.8"
dependencies = [
    "typing-extensions; python_version<'3.12'",
]

You could also explore a different build backend, such as flit-core, which is smaller and a little faster.

A

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions