aurweb/pyproject.toml
Kevin Morris 2f9994807b
use Poetry to deal with deps and package install
As the new-age Python package manager, Poetry brings a lot
of good additions to the table. It allows us to more easily
deal with virtualenvs for the project and resolve dependencies.

As of this commit, `requirements.txt` is replaced by Poetry,
configured at `pyproject.toml`.

In Docker and GitLab, we currently use Poetry in a root fashion.
We should work toward purely using virtualenvs in Docker, but,
for now we'd like to move forward with other things. The project
can still be installed to a virtualenv and used on a user's system
through Poetry; it is just not yet doing so in Docker.

Modifications:

* docker/scripts/install-deps.sh
    * Remove python dependencies.
* conf/config.defaults
    * Script paths have been updated to use '/usr/bin'.
* docker/git-entrypoint.sh
    * Use '/usr/bin/aurweb-git-auth' instead of
      '/usr/local/bin/aurweb-git-auth'.

Additions:

* docker/scripts/install-python-deps.sh
    * A script used purely to install Python dependencies with Poetry.
      This has to be used within the aurweb project directory and
      requires system-wide dependencies are installed beforehand.
    * Also upgrades system-wide pip.

Signed-off-by: Kevin Morris <kevr@0cost.org>
2021-09-04 15:46:40 -07:00

100 lines
3.7 KiB
TOML

# Poetry build configuration for the aurweb project.
#
# Dependencies:
# * python >= 3.9
# * pip
# * poetry
# * poetry-dynamic-versioning
#
[tool.poetry]
name = "aurweb"
version = "5.0.0" # Updated via poetry-dynamic-versioning
license = "GPL-2.0-only"
description = "Source code for the Arch User Repository's website"
homepage = "https://aur.archlinux.org"
repository = "https://gitlab.archlinux.org/archlinux/aurweb"
documentation = "https://gitlab.archlinux.org/archlinux/aurweb/-/blob/master/README.md"
keywords = ["aurweb", "aur", "Arch", "Linux"]
authors = [
"Lucas Fleischer <lfleischer@archlinux.org>",
"Eli Schwartz <eschwartz@archlinux.org>",
"Kevin Morris <kevr@0cost.org>"
]
maintainers = [
"Eli Schwartz <eschwartz@archlinux.org>"
]
packages = [
{ include = "aurweb" }
]
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
[build-system]
requires = ["poetry>=1.1.8", "poetry-dynamic-versioning"]
build-backend = "poetry.masonry.api"
[tool.poetry.urls]
"Repository" = "https://gitlab.archlinux.org/archlinux/aurweb"
"Bug Tracker" = "https://gitlab.archlinux.org/archlinux/aurweb/-/issues"
"Development Mailing List" = "https://lists.archlinux.org/listinfo/aur-dev"
"General Mailing List" = "https://lists.archlinux.org/listinfo/aur-general"
"Request Mailing List" = "https://lists.archlinux.org/listinfo/aur-requests"
[tool.poetry.dependencies]
# poetry-dynamic-versioning is used to produce tool.poetry.version
# based on git tags.
poetry-dynamic-versioning = { version = "0.13.1", python = "^3.9" }
# General
authlib = { version = "0.15.2", python = "^3.9" }
aiofiles = { version = "0.7.0", python = "^3.9" }
asgiref = { version = "3.4.1", python = "^3.9" }
bcrypt = { version = "3.2.0", python = "^3.9" }
bleach = { version = "3.3.1", python = "^3.9" }
email-validator = { version = "1.1.3", python = "^3.9" }
fakeredis = { version = "1.6.0", python = "^3.9" }
fastapi = { version = "0.66.0", python = "^3.9" }
feedgen = { version = "0.9.0", python = "^3.9" }
httpx = { version = "0.18.2", python = "^3.9" }
hypercorn = { version = "0.11.2", python = "^3.9" }
itsdangerous = { version = "2.0.1", python = "^3.9" }
jinja2 = { version = "3.0.1", python = "^3.9" }
lxml = { version = "4.6.3", python = "^3.9" }
markdown = { version = "3.3.4", python = "^3.9" }
orjson = { version = "3.6.3", python = "^3.9" }
protobuf = { version = "3.17.3", python = "^3.9" }
pygit2 = { version = "1.6.1", python = "^3.9" }
python-multipart = { version = "0.0.5", python = "^3.9" }
redis = { version = "3.5.3", python = "^3.9" }
requests = { version = "2.26.0", python = "^3.9" }
werkzeug = { version = "2.0.1", python = "^3.9" }
# SQL
alembic = { version = "1.6.5", python = "^3.9" }
sqlalchemy = { version = "1.3.23", python = "^3.9" }
mysqlclient = { version = "2.0.3", python = "^3.9" }
[tool.poetry.dev-dependencies]
flake8 = { version = "3.9.2", python = "^3.9" }
isort = { version = "5.9.3", python = "^3.9" }
coverage = { version = "5.5", python = "^3.9" }
pytest = { version = "6.2.4", python = "^3.9" }
pytest-asyncio = { version = "0.15.1", python = "^3.9" }
pytest-cov = { version = "2.12.1", python = "^3.9" }
pytest-tap = { version = "3.2", python = "^3.9" }
uvicorn = { version = "0.15.0", python = "^3.9" }
[tool.poetry.scripts]
aurweb-git-auth = "aurweb.git.auth:main"
aurweb-git-serve = "aurweb.git.serve:main"
aurweb-git-update = "aurweb.git.update:main"
aurweb-aurblup = "aurweb.scripts.aurblup:main"
aurweb-mkpkglists = "aurweb.scripts.mkpkglists:main"
aurweb-notify = "aurweb.scripts.notify:main"
aurweb-pkgmaint = "aurweb.scripts.pkgmaint:main"
aurweb-popupdate = "aurweb.scripts.popupdate:main"
aurweb-rendercomment = "aurweb.scripts.rendercomment:main"
aurweb-tuvotereminder = "aurweb.scripts.tuvotereminder:main"
aurweb-usermaint = "aurweb.scripts.usermaint:main"