Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • A aurweb
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 90
    • Issues 90
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 6
    • Merge requests 6
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Arch Linux
  • aurweb
  • Issues
  • #18
Closed
Open
Created May 11, 2021 by Kevin Morris@kevrDeveloper25 of 26 tasks completed25/26 tasks

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
  • hypercorn has replaced uvicorn for a production ASGI server
    • hypercorn supports HTTP/2, while uvicorn 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).

Edited Oct 24, 2021 by Kevin Morris
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking