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