Age | Commit message (Collapse) | Author |
|
|
|
|
|
Do that at "run-time".
|
|
Conflicts:
README.md
|
|
|
|
|
|
End of month release, perf fixes
|
|
We were spending a lot of time getting the developer name for a given
key on this page, which involved sending one query per key ID. Use the
cache to our advantage here and save ourselves the "expensive" lookups.
This eliminates ~100 queries per page load.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Django 1.6 upgrade and other changes
Conflicts:
templates/news/list.html
templates/public/index.html
|
|
Django 1.6 upgrade and other changes
Conflicts:
templates/news/list.html
templates/public/index.html
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
|
|
For something like gambas3 which has a makedepend on postgresql, we end
up getting every single split package listed in the required by list for
postgresql. This is a bit crazy and unnecessary, so slim it down a bit
when possible by using a slightly crazy groupby function and some smarts
in our get_requiredby function.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We've moved onto bytes only now.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Now that we have a BinaryField option in Django 1.6, put it to use.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Conflicts:
Makefile
templates/public/index.html
|
|
|
|
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Conflicts:
main/fixtures/arches.json
settings.py
templates/public/index.html
templates/public/svn.html
|
|
|
|
|
|
|
|
|
|
|
|
This will indicate how many signoffs are required for packages of the
given architecture. Set the default to 2 as it currently stands.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Conflicts:
README.BRANDING
local_settings.py.example
packages/templatetags/package_extras.py
public/views.py
releng/views.py
settings.py
sitestatic/archnavbar/archnavbar.css
sitestatic/silhouette.png
templates/base.html
templates/packages/differences.html
templates/packages/opensearch.xml
templates/packages/search.html
templates/public/donate.html
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
urls.py
|
|
|
|
|
|
Conflicts:
devel/views.py
feeds.py
local_settings.py.example
packages/management/commands/signoff_report.py
packages/views/flag.py
public/views.py
templates/404.html
templates/base.html
templates/devel/clock.html
templates/devel/index.html
templates/devel/packages.html
templates/devel/profile.html
templates/general_form.html
templates/mirrors/mirror_details.html
templates/mirrors/mirrorlist.txt
templates/mirrors/mirrorlist_generate.html
templates/mirrors/mirrorlist_status.txt
templates/mirrors/mirrors.html
templates/mirrors/status.html
templates/news/add.html
templates/news/delete.html
templates/news/list.html
templates/news/view.html
templates/packages/details.html
templates/packages/differences.html
templates/packages/files.html
templates/packages/flag.html
templates/packages/flag_confirmed.html
templates/packages/flagged.html
templates/packages/flaghelp.html
templates/packages/groups.html
templates/packages/opensearch.xml
templates/packages/packages_list.html
templates/packages/search.html
templates/packages/signoff_options.html
templates/packages/signoffs.html
templates/packages/stale_relations.html
templates/public/about.html
templates/public/art.html
templates/public/blank.html
templates/public/donate.html
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
templates/public/keys.html
templates/public/svn.html
templates/public/userlist.html
templates/registration/login.html
templates/registration/logout.html
templates/releng/add.html
templates/releng/results.html
templates/releng/thanks.html
templates/todolists/list.html
templates/todolists/public_list.html
templates/todolists/todolist_confirm_delete.html
templates/todolists/view.html
templates/visualize/index.html
todolists/views.py
|
|
|
|
Conflicts:
devel/views.py
feeds.py
public/views.py
settings.py
sitestatic/archweb.js
templates/base.html
templates/devel/profile.html
templates/mirrors/status.html
templates/news/view.html
templates/packages/flaghelp.html
templates/packages/opensearch.xml
templates/public/download.html
templates/public/feeds.html
templates/public/index.html
templates/registration/login.html
templates/releng/results.html
templates/todolists/public_list.html
|
|
|
|
|
|
Notable things:
* Standardize on "ArchWiki", instead of also having "Arch Wiki", via
BRANDING_WIKINAME
* Link to the article "Install_Guide" instead of
"Official_Arch_Linux_Install_Guide", it's a redirect anyway.
* On the download page, it assumes the that the version is just appended to
the URL for the wiki link.
* For the wiki RSS link, It now uses "/${title}?feed=rss" instead of
"?title=${title}&feed=rss".
|
|
We were doing this for depends entries already, and we can do the same
for required by entries via some absolutely awesome SQL query magic and
injecting a few more things to our already crazy query.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Most of these were suggested by PyCharm, and include everything from
little syntax issues and other bad smells to dead or bad code.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We sometimes see some web bots and crawlers make HEAD requests to verify
existence of certain pages in the application. However, they are less
than kind as 20-50 requests might arrive at the same time, and package
search and details pages are some of the slowest rendering pages we have
due to the Django template engine.
Rather than waste time generating the content only to throw it away,
response as soon as we can with either a 404 or 200 response as
appropriate, omitting the 'Content-Length' header completely, which
seems to be acceptable by the HTTP spec.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The benefit of these storage operations might be outweighed by the cost,
especially given how infrequently these functions are called.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
|
|
Seems the Django caching layer has changed quite a bit and is doing all
sorts of funky s**t at this point. Yay for errors!
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We started seeing this in production with memcached usage and the
upgrade to Django 1.5:
PicklingError: Can't pickle <class 'devel.models.UserProfile_allowed_repos'>: attribute lookup devel.models.UserProfile_allowed_repos failed
Without having time to investigate further, something changed, likely
due to the whole user profile/configurable user model shenanigans done
in Django 1.5. For now, simply don't cache this attribute to work around
the problem.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
Rather than use the Django cache for this (aka memcached), just do it on
a per-object instantiation basis. This means no external services calls
except the first time to the database, which should be quite a bit
faster.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This reverts commit 20b64e42672d185821cc584dfa4b133ee259a144.
Django 1.5 fixed this issue and now parent objects are automatically
attached to their children when queries go through the related manager.
See "Caching of related model instances" in the release notes.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This doesn't do any super optimizations, but does run the very basic
cssmin and jsmin Python tools over the static resources we serve up.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
We aren't looking up users; we are looking up developer keys.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
This introduces the new model to the package page so subkey signings
show up as attributed to the original developer. We also teach the
mismatched signatures report to recognize all keys and subkeys of a
given developer, cutting down on some of the bogus results.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The first of several small updates to use the new data we have
available.
Signed-off-by: Dan McGee <dan@archlinux.org>
|
|
The query refactor in commit 1b1b516bd removed a queryset I didn't
realize was getting used elsewhere in the function.
Signed-off-by: Dan McGee <dan@archlinux.org>
|