From 2cb5d3770721b3bd7e2fec944d7dfc94b9ca1c19 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sun, 3 Oct 2021 16:40:48 +0000 Subject: [PATCH] Update Home --- Home.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 4 deletions(-) diff --git a/Home.md b/Home.md index 6748973..34e52e7 100644 --- a/Home.md +++ b/Home.md @@ -1,7 +1,78 @@ -Welcome to the AURWeb Wiki. - | master | pu (fastapi) | -|--------|--------| +|--------|--------------| | ![pipeline](https://gitlab.archlinux.org/archlinux/aurweb/badges/master/pipeline.svg) ![coverage](https://gitlab.archlinux.org/archlinux/aurweb/badges/master/coverage.svg) | ![pipeline](https://gitlab.archlinux.org/archlinux/aurweb/badges/pu/pipeline.svg) ![coverage](https://gitlab.archlinux.org/archlinux/aurweb/badges/pu/coverage.svg) | -This landing page is meant to provide general branch status and navigation around the wiki. \ No newline at end of file +This wiki homepage is meant to provide general branch status and explanation +for the different components of the project. + +### Table of Contents + +Note: Links marked with **(*)** are more important than unmarked links; the +more asterisks, the more important. + +- [Home](https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Home) + - [Docker \(*\)](https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Docker) + - [Python Port](https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Python-Port) + - [Testing Guide \(**\)](https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Testing-Guide) + +### HTTP Components + +The project is currently split up into two primary code-bases: `PHP` and +`FastAPI (Python)`. Do note that PHP does use some Python for various +things like Git integration and a few others. + +- PHP (Legacy) + - Cache backends: (Memcached\|APC) +- FastAPI (branch: **pu**) + - Cache backends: Redis + +At this time, we are porting aurweb's legacy PHP implementation over to +Python (using the FastAPI framework). Because of this, our efforts are +now primarily focused on completing the port; most documentation found +in this wiki overall will be speaking about FastAPI and not PHP. However, +PHP is still around until the port takes over, and so PHP is still +supported and referred to throughout this wiki in various sections. + +Do note: If not specified, one should assume we're discussing FastAPI. + +### Subsystems + +These are non-http related systems that we use in the aurweb project. +Things like Git hooks, sshd authentication, project instrumentation, etc. + +- Git + - [aurweb.git.update](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/git/update.py) (push hook) + - [aurweb.git.auth](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/git/auth.py) (ssh authentication) + - [aurweb.git.serve](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/git/serve.py) (ssh clone) +- Docker + - [Dockerfile](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/Dockerfile) + - [docker-compose.yml](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/docker-compose.yml) +- Archiving + - [aurweb.scripts.mkpkglists](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/scripts/mkpkglists.py) + - This produces gzip archives: `packages.gz`, `pkgbase.gz`, and `users.gz`. +- Notifications + - [aurweb.scripts.notify](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/scripts/notify.py) + - This sends email notifications. +- Official Package Database Update + - [aurweb.scripts.aurblup](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/scripts/aurblup.py) + - This uses `pacman` repositories to check for official packages and populate aurweb's `OfficialProviders` table with them. +- Partial Markdown Comment Render + - [aurweb.scripts.rendercomment](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/aurweb/scripts/rendercomment.py) +- Cache Backends + - Memcached (PHP) + - APC (PHP) + - Redis (FastAPI) + +### Caveats + +- PHP can sometimes intrude on FastAPI's session records. If you are ever +navigating between the two, PHP and FastAPI, you may start encountering +database errors due to conflicting records. A workaround is delete +session records from the database and reload the webpage. This is a +rare occurrence; we haven't been able to reliably reproduce this yet. +- PHP doesn't use cookies well enough for FastAPI to respect them. If +you login on PHP, your FastAPI login may be invalidated, but logins +on FastAPI seem to stick to PHP. So, for now, if you're bouncing between +PHP and FastAPI: login with FastAPI first. Without PHP intruding with +cookies, FastAPI does behave as we expect it should. So, in favor of +focusing on the port, we'll deal with this caveat for now.