The $repo.links.tar.gz databases provided in the repositories are now
parsed by archweb, to be able to expose them via a simple API and to be
able to list the linked sonames in the package details overview.
For these reports to be useful, show a direct link to diffoscope and the
build logs. So our developers can more easily debug non reproducible
packages.
Rebuilderd now supports the Last-Modified header and If-Modified-Since
when requesting the rebuilderd package list. This saves us from
iterating over all rebuilderd results and fetching the status form the
database.
When reporead_inotify is unable to reach the postgresql server an
exception is thrown and nothing is retried which means db updates are
missed. This change adds a simple retry mechanism which retries up till
5 times * 5 seconds and after that the change is ignored.
Closes: #336
The Django object model does not check if the model was modified when
calling .save() so will always generate SQL queries for statuses which
are not changed.
Closes: #334
To avoid confusion with reproducible.archlinux.org output, only show BAD
statusses. Unknown statuses are still queue'd up in rebuilderd so aren't
interesting.
Import the rebuilderd status periodically with a django management
command into RebuilderdStats which holds one record per pkgname with
it's pkgver/pkgrel/epoch all recorded. Shown as a developer dashboard
and with opt in mail notifications for when a package becomes not
reproducible.
This change introduces a replacment for planet.archlinux.org which uses
a python 2 project to generate static html from multiple RSS feed
sources. For archweb a set of 'static' feeds can be created in the
django admin view for the Arch forums and other static feeds, archweb
users can add their own blog rss feed in their profile which will create
a Feed model.
When running the update_planet command, all Feed models are iterated
over and the rss feed is parsed. The latest FeedItem is queried matching
the current Feed model and every newer entry in the RSS feed is added as
new FeedItem. Since the body is also stored in the FeedItem there is a
limit to the amount of FeedItems per Feed configured in settings.py of
which the default is 25.
When a user is marked as inactive his Feed model and items are
removed automatically to avoid keeping stale data around.
Closes: #261