Migrate from setup.py to pyproject.toml (MR 2265)

In the process, drop the list of required python packages. This is
only needed for pip, as pmbootstrap checks by itself. This way we
avoid duplicating the minimum required version.

We also don't install the helpers anymore, as modern tooling does not
support installing things outside the python package dir
This commit is contained in:
Pablo Correa Gómez 2024-02-22 21:13:51 +01:00
parent 812a3e4a85
commit d895f4a465
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
3 changed files with 30 additions and 78 deletions

View File

@ -1,4 +1,2 @@
include LICENSE
include helpers/envkernel.sh
include helpers/envkernel.fish
recursive-include pmb/data *

View File

@ -1,3 +1,33 @@
[build-system]
requires = ["setuptools>=61.0.0"]
build-backend = "setuptools.build_meta"
[project]
name = "pmbootstrap"
dynamic = ["version"]
authors = [
{name = "postmarketOS Developers", email="info@postmarketos.org"}
]
description = "A sophisticated chroot / build / flash tool to develop and install postmarketOS'"
readme = "README.md"
license = {text = "GPL-3.0-or-later"}
[project.scripts]
pmbootstrap = "pmb:main"
[project.optional-dependencies]
test = ["pytest"]
completion = ["argcomplete"]
[project.urls]
Homepage = "https://www.postmarketos.org"
[tool.setuptools.dynamic]
version = {attr = "pmb.__version__"}
[tool.setuptools.packages.find]
exclude = ["aports", "keys", "test", "test.pmb_test"]
[tool.ruff]
# E402: module import not on top of file, not possible for testcases
# E722: do not use bare except

View File

@ -1,76 +0,0 @@
#!/usr/bin/env python3
import re
import ast
import sys
from setuptools import setup, find_packages
from setuptools.command.test import test as TestCommand
from codecs import open
from os import path
class PyTest(TestCommand):
user_options = [('pytest-args=', 'a', 'Arguments to pass to pytest')]
def initialize_options(self):
TestCommand.initialize_options(self)
self.pytest_args = ''
def run_tests(self):
import shlex
import pytest
errno = pytest.main(shlex.split(self.pytest_args))
sys.exit(errno)
here = path.abspath(path.dirname(__file__))
_version_re = re.compile(r'__version__\s+=\s+(.*)')
with open(path.join(here, 'pmb/__init__.py'), 'rb') as f:
version = str(ast.literal_eval(_version_re.search(
f.read().decode('utf-8')).group(1)))
with open(path.join(here, 'README.md'), encoding='utf-8') as f:
long_description = f.read()
setup(
name='pmbootstrap',
version=version,
description='A sophisticated chroot / build / flash tool to '
'develop and install postmarketOS',
long_description=long_description,
long_description_content_type='text/markdown',
author='postmarketOS Developers',
author_email='info@postmarketos.org',
url='https://www.postmarketos.org',
license='GPLv3',
python_requires='>=3.7',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'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',
],
keywords='postmarketos pmbootstrap',
packages=find_packages(exclude=['aports', 'keys', 'test']),
tests_require=['pytest'],
cmdclass={'test': PyTest},
extras_require={
'completion': ['argcomplete'],
},
entry_points={
'console_scripts': [
'pmbootstrap=pmb:main',
],
},
include_package_data=True,
data_files=[('share/pmbootstrap/helpers/', ['helpers/envkernel.sh', 'helpers/envkernel.fish'])],
)