← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas-site-manager:drop-setup-py-cfg into maas-site-manager:main

 

Alberto Donato has proposed merging ~ack/maas-site-manager:drop-setup-py-cfg into maas-site-manager:main.

Commit message:
move setup.cfg metadata to pyproject.toml



Requested reviews:
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~ack/maas-site-manager/+git/site-manager/+merge/439607
-- 
Your team MAAS Committers is requested to review the proposed merge of ~ack/maas-site-manager:drop-setup-py-cfg into maas-site-manager:main.
diff --git a/backend/pyproject.toml b/backend/pyproject.toml
index c4b8d97..f5065be 100644
--- a/backend/pyproject.toml
+++ b/backend/pyproject.toml
@@ -1,3 +1,38 @@
+[build-system]
+build-backend = "setuptools.build_meta"
+requires = [
+  "setuptools",
+]
+
+[project]
+name = "msm"
+version = "0.0.1"
+description = "MAAS Site Manager"
+readme = "README.rst"
+maintainers = [
+    {name = "MAAS Developers", email = "maas-devel@xxxxxxxxxxxxxxxxxxx"},
+]
+authors = [
+    {name = "MAAS Developers", email = "maas-devel@xxxxxxxxxxxxxxxxxxx"},
+]
+requires-python = ">=3.10"
+dependencies = [
+  "fastapi",
+  "pydantic[email]",
+  "SQLAlchemy[postgresql_asyncpg]",
+]
+[project.optional-dependencies]
+testing = [
+  "httpx",
+  "psycopg",
+  "pytest",
+  "pytest-asyncio",
+  "pytest-postgresql",
+]
+
+[tool.setuptools.packages.find]
+include = ["msm*"]
+
 [tool.black]
 line-length = 79
 
@@ -12,6 +47,9 @@ order_by_type = false
 profile = 'black'
 use_parentheses = true
 
+[tool.flake8]
+max-line-length = 79
+
 [tool.pytest.ini_options]
 testpaths = [
   "msm/"
diff --git a/backend/setup.py b/backend/setup.py
deleted file mode 100644
index 6068493..0000000
--- a/backend/setup.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from setuptools import setup
-
-setup()
diff --git a/backend/setup.cfg b/backend/tox.ini
similarity index 53%
rename from backend/setup.cfg
rename to backend/tox.ini
index 2209af8..f86c0c9 100644
--- a/backend/setup.cfg
+++ b/backend/tox.ini
@@ -1,85 +1,61 @@
-[metadata]
-name = msm
-description = MAAS Site Manager
-version = 0.0.1
-author = MAAS Developers
-author_email = maas-devel@xxxxxxxxxxxxxxxxxxx
-
-[options]
-packages = find:
-python_requires = >= 3.10
-pass_env = POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD
-install_requires =
-  fastapi
-  SQLAlchemy[postgresql_asyncpg]
-  pydantic[email]
-
-[options.packages.find]
-exclude =
-  *.tests
-  *.tests.*
-
-[options.extras_require]
-testing =
-  pytest
-  pytest-asyncio
-  pytest-postgresql
-  psycopg  # for pytest-postgresql
-  httpx # for fastapi.testclient
-
 [globals]
-lint_files = setup.py msm/
+lint_files =
+    msm/
 
-[flake8]
-max-line-length = 79
-
-[tox:tox]
-minversion = 4.0.8
+[tox]
+min_version = 4
 skipsdist = True
 envlist = test
 
+[testenv]
+pass_env = POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD
+
 [testenv:shell]
 deps =
   -e .
   ipython
 commands =
-  {envbindir}/ipython
+  ipython
 
 [testenv:test]
 deps =
   .[testing]
 commands =
-  {envbindir}/pytest -vs {posargs}
+  pytest -vs {posargs}
 
 [testenv:format]
 deps =
   black
   isort
+  pyproject-fmt
 commands =
-  {envbindir}/isort {[globals]lint_files}
-  {envbindir}/black -q {[globals]lint_files}
+  isort {[globals]lint_files}
+  black -q {[globals]lint_files}
+  - pyproject-fmt pyproject.toml
 
 [testenv:lint]
 deps =
   black
   flake8
+  flake8-pyproject
   isort
+  pyproject-fmt
 commands =
-  {envbindir}/isort --check-only --diff {[globals]lint_files}
-  {envbindir}/black --check {[globals]lint_files}
-  {envbindir}/flake8 {[globals]lint_files}
+  isort --check-only --diff {[globals]lint_files}
+  black --check {[globals]lint_files}
+  flake8 {[globals]lint_files}
+  pyproject-fmt --check pyproject.toml
 
 [testenv:check]
 deps =
   .[testing]
   mypy
 commands =
-  {envbindir}/mypy -p msm {posargs}
+  mypy -p msm {posargs}
 
 [testenv:run]
-pass_env = POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD
 deps =
   -e .
   uvicorn
 commands =
-  {envbindir}/uvicorn --factory msm.user_api:create_app --host 0.0.0.0 --reload {posargs}
+  uvicorn --factory msm.user_api:create_app --host 0.0.0.0 --reload {posargs}

Follow ups