Update Home

Kevin Morris 2021-10-03 16:40:48 +00:00
parent b1f28a47d9
commit 2cb5d37707

79
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.
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.