We can omit the "distinct" from some queries because constraints in the DB ensure uniqueness: * Groups sub-query PackageGroup: Primary key makes "PackageID" + "GroupID" unique Groups: Unique index on "Name" column -> Technically we can't have a package with the same group-name twice * Licenses sub-query: PackageLicense -> Primary key makes "PackageID" + "LicenseID" unique Licenses -> Unique index on "Name" column -> Technically we can't have a package with the same license-name twice * Keywords sub-query: PackageKeywords -> Primary key makes "PackageBaseID" + "KeywordID" unique (And a Package can only have one PackageBase) Keywords -> Unique index on "Name" column -> Technically we can't have a package with the same Keyword twice * Packages main-query: We join PackageBases and Users on their primary key columns (which are guaranteed to be unique) -> There is no way we could end up with more than one record for a Package Signed-off-by: moson-mo <mo-son@mailbox.org> |
||
---|---|---|
.gitlab/issue_templates | ||
.tx | ||
aurweb | ||
cache | ||
conf | ||
doc | ||
docker | ||
examples | ||
LICENSES | ||
logs | ||
migrations | ||
po | ||
schema | ||
templates | ||
test | ||
upgrading | ||
util | ||
web | ||
.coveragerc | ||
.dockerignore | ||
.editorconfig | ||
.env | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.gitlab-ci.yml | ||
.mailmap | ||
.pre-commit-config.yaml | ||
alembic.ini | ||
AUTHORS | ||
cliff.toml | ||
CONTRIBUTING.md | ||
COPYING | ||
docker-compose.aur-dev.yml | ||
docker-compose.override.yml | ||
docker-compose.yml | ||
Dockerfile | ||
INSTALL | ||
logging.conf | ||
logging.prod.conf | ||
logging.test.conf | ||
poetry.lock | ||
pyproject.toml | ||
pytest.ini | ||
README.md | ||
renovate.json | ||
setup.cfg | ||
TESTING |
aurweb
aurweb is a hosting platform for the Arch User Repository (AUR), a collection
of packaging scripts that are created and submitted by the Arch Linux
community. The scripts contained in the repository can be built using makepkg
and installed using the Arch Linux package manager pacman
.
The aurweb project includes
- A web interface to search for packaging scripts and display package details.
- An SSH/Git interface to submit and update packages and package meta data.
- Community features such as comments, votes, package flagging and requests.
- Editing/deletion of packages and accounts by Trusted Users and Developers.
- Area for Trusted Users to post AUR-related proposals and vote on them.
Directory Layout
aurweb
: aurweb Python modules, Git interface and maintenance scriptsconf
: configuration and configuration templatesstatic
: static resource filestemplates
: jinja2 template collectiondoc
: project documentationpo
: translation files for strings in the aurweb interfaceschema
: schema for the SQL databasetest
: test suite and test casesupgrading
: instructions for upgrading setups from one release to anotherweb
: PHP-based web interface for the AUR
Documentation
What | Link |
---|---|
Installation | INSTALL |
Testing | test/README.md |
Git | doc/git-interface.txt |
Maintenance | doc/maintenance.txt |
RPC | doc/rpc.txt |
Docker | doc/docker.md |
Links
-
The repository is hosted at https://gitlab.archlinux.org/archlinux/aurweb -- see CONTRIBUTING.md for information on the patch submission process.
-
Bugs can (and should) be submitted to the aurweb bug tracker: https://gitlab.archlinux.org/archlinux/aurweb/-/issues/new?issuable_template=Bug
-
Questions, comments, and patches related to aurweb can be sent to the AUR development mailing list: aur-dev@archlinux.org -- mailing list archives: https://mailman.archlinux.org/mailman/listinfo/aur-dev
Translations
Translations are welcome via our Transifex project at
https://www.transifex.com/lfleischer/aurweb; see doc/i18n.txt
for details.
Testing
See test/README.md for details on dependencies and testing.