From b62e2900fcbb531fc98f9fcba827cbdf8d655b1b Mon Sep 17 00:00:00 2001 From: Albert Wang Date: Sat, 18 Nov 2023 17:35:35 -0800 Subject: [PATCH] Switch from setup.py to pyproject.toml --- .drone.yml | 9 ++-- README.md | 3 +- git_reviewers/tests/test.py | 4 +- pyproject.toml | 42 ++++++++++++++++++- setup.py | 84 ------------------------------------- 5 files changed, 48 insertions(+), 94 deletions(-) delete mode 100644 setup.py diff --git a/.drone.yml b/.drone.yml index bcb447f..dd27b8f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,7 +8,6 @@ steps: commands: - curl -L "https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-$(dpkg --print-architecture)" > "${HOME}/bin/cc-test-reporter" - chmod +x "${HOME}/bin/cc-test-reporter" - - python setup.py develop - pip install -r requirements-test.txt - ruff check . - mypy . @@ -23,8 +22,8 @@ steps: - name: Test Python Packaging image: python:3.12 commands: - - pip install twine - - python setup.py sdist bdist_wheel + - pip install twine build + - python -m build - twine check --strict dist/* - name: Upload Python @@ -38,8 +37,8 @@ steps: from_secret: twine_password image: python:3.12 commands: - - pip install twine - - python setup.py sdist bdist_wheel + - pip install twine build + - python -m build - twine upload dist/* when: event: diff --git a/README.md b/README.md index 8f7f0c2..64449d7 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,6 @@ Development ----------- ```bash -python setup.py develop pip install -r requirements-test.txt ruff check . mypy . @@ -106,7 +105,7 @@ Publishing ```bash pip install twine -python setup.py sdist bdist_wheel +python -m build twine upload dist/* ``` diff --git a/git_reviewers/tests/test.py b/git_reviewers/tests/test.py index e956c08..1f90e63 100644 --- a/git_reviewers/tests/test.py +++ b/git_reviewers/tests/test.py @@ -143,12 +143,12 @@ def setUp(self) -> None: self.finder = reviewers.FindLogReviewers(reviewers.Config()) def test_get_changed_files(self) -> None: - changed_files = ['README.rst', 'setup.py'] + changed_files = ['README.rst', 'pyproject.toml'] self.finder.run_command = ( # type: ignore MagicMock(return_value=changed_files) ) files = self.finder.get_changed_files() - self.assertEqual(files, ['README.rst', 'setup.py']) + self.assertEqual(files, ['README.rst', 'pyproject.toml']) class TestHistoricalReviewers(unittest.TestCase): diff --git a/pyproject.toml b/pyproject.toml index ce22ada..d8fbbc4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,46 @@ +[project] +name = "git-reviewers" +authors = [ + {name = "Albert Wang", email = "git@albertyw.com"}, +] +description = "Suggest reviewers for your git branch" +requires-python = ">=3.7" +keywords = ["git", "code", "review", "reviewer", "log", "history"] +license = {text = "MIT"} +classifiers = [ + "Development Status :: r - Beta", + "Intended Audience :: Developers", + "Natural Language :: English", + "Topic :: Software Development :: Version Control", + "License :: OSI Approved :: MIT License", + "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", + "Programming Language :: Python :: 3.12", + "Typing :: Typed", +] +dependencies = [] +dynamic = ["version", "readme"] + +[project.urls] +"Homepage" = "https://github.com/albertyw/git-reviewers" + +[project.scripts] +git_reviewers = "git_reviewers.reviewers:main" + +[tool.setuptools.dynamic] +version = {attr = "git_reviewers.reviewers.__version__"} +readme = {file = "README.md", content-type="text/markdown"} + +[options.package_data] +git_reviewers = ["py.typed"] + [tool.ruff] select = ["E", "F", "B"] +ignore = ["B010"] [tool.mypy] strict = true @@ -14,7 +55,6 @@ source = [ ] omit = [ ".virtualenv", - "setup.py", ] [tool.coverage.report] diff --git a/setup.py b/setup.py deleted file mode 100644 index 904dba3..0000000 --- a/setup.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os - -from setuptools import find_packages, setup - -from git_reviewers import reviewers - -here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, 'README.md'), encoding='utf-8') as f: - long_description = f.read() - -# Package meta-data. -NAME = 'git-reviewers' -DESCRIPTION = 'Suggest reviewers for your git branch' -URL = 'https://github.com/albertyw/git-reviewers' -EMAIL = 'git@albertyw.com' -AUTHOR = 'Albert Wang' - - -# Where the magic happens: -setup( - name=NAME, - version=reviewers.__version__, - description=DESCRIPTION, - long_description=long_description, - long_description_content_type='text/markdown', - author=AUTHOR, - author_email=EMAIL, - url=URL, - - include_package_data=True, - license='MIT', - - classifiers=[ - 'Development Status :: 4 - Beta', - - 'Intended Audience :: Developers', - 'Natural Language :: English', - 'Topic :: Software Development :: Version Control', - - 'License :: OSI Approved :: MIT License', - - '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', - 'Programming Language :: Python :: 3.12', - - 'Typing :: Typed', - ], - - keywords='git code review reviewer log history', - - # $ setup.py publish support. - cmdclass={}, - - package_data={"git_reviewers": ["py.typed"]}, - packages=find_packages(exclude=["tests"]), - - py_modules=["git_reviewers.reviewers"], - - python_requires='>=3.5', - install_requires=[], - - test_suite="git_reviewers.tests", - - extras_require={ - 'dev': [], - 'test': [], - }, - - - data_files=[], - - entry_points={ - 'console_scripts': [ - 'git-reviewers=git_reviewers.reviewers:main', - ], - }, -)