Path to Python/FastAPI
At some point, a porting of PHP aurweb to Python was proposed on the aur-dev
mailing list. In May 2020 it was accepted as a milestone (reference: https://lists.archlinux.org/pipermail/aur-dev/2020-May/004848.html). The HTTP framework of choice in the conversation settled on FastAPI along with the popular database management library, SQLAlchemy and Alembic to manage its migrations.
This effort has been started and its beginnings now exist in the pu
branch.
This issue should be updated with information that reflects the current state of the port whenever a commit is added which affects Python/FastAPI. Edits will be managed by project maintainers after merges or cherry-picks.
State of Development
In this section, we will cover infrastructural changes, while tasks will have their own sections beneath this.
-
pytest
has been added to the project - Docker runs a build and test + coverage report of aurweb
- Code coverage is now required to pass GitLab CI tests
-
FastAPI
has been added to the project -
SQLAlchemy
has been added to the project- With the addition of SQLAlchemy ORM
-
Alembic
has been added to the project- Initial SSO migrations are now run on
aurweb.initdb
- Initial SSO migrations are now run on
-
hypercorn
has replaceduvicorn
for a production ASGI server-
hypercorn
supports HTTP/2, whileuvicorn
does not
-
Route Porting Tasks
Any "completed" tasks which are not yet merged into pu
should specify the branch that it lies in. All completed tasks with no specified branch is assumed to be merged into pu
. Example of a completed, unmerged task: [x] blah.php - kevr/aurweb branch: not_merged_branch
. On the other hand, an example of a completed, merged into pu
task would simply be [x] blah.php
.
-
404.php -
503.php -
account.php -
addvote.php -
comaintainers.php -
commentedit.php -
home.php -
index.php -
login.php -
logout.php -
packages.php -
passreset.php -
pkgbase.php -
pkgdel.php -
pkgdisown.php -
pkgflagcomment.php -
pkgflag.php -
pkgmerge.php -
pkgreq.php -
register.php -
rpc.php - in progress, but big task - [multi]info
done,suggest-pkgbase
done -
rss.php -
modified-rss.php -
tos.php -
tu.php -
voters.php
NOTE: Issues should be created for all of these route tasks. To start off with, we'll prioritize creating issues for the more dependent tasks on the road to have one for each of them (or grouped, if sensible).