summaryrefslogtreecommitdiffstats
path: root/main
AgeCommit message (Collapse)AuthorFilesLines
2014-10-19Use varied prime numbers for caching lengthsDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2014-10-19Simplify last modified and etags processing for feedsDan McGee2-47/+1
We had this elaborate system set up with caching and invalidation, which is overkill since we cache the result of the view anyway. Just hit the database when needed to find the last change to the respective model class and be done with it. Signed-off-by: Dan McGee <dan@archlinux.org>
2014-09-01Add auto-generated migrations from new Django migrations frameworkDan McGee1-0/+119
Signed-off-by: Dan McGee <dan@archlinux.org>
2014-09-01Remove dependency on SouthDan McGee1-2/+0
Signed-off-by: Dan McGee <dan@archlinux.org>
2014-09-01Remove old south migrationsDan McGee68-11827/+0
Django 1.7 has built-in migrations support, so we no longer want these around. All existing installs should be fully migrated at this point to the latest schema. Signed-off-by: Dan McGee <dan@archlinux.org>
2014-03-22Make filename and directory name fields accept longer valuesrelease_2014-03-22Dan McGee2-2/+114
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-12-14Speed up master key listing pageDan McGee1-5/+13
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>
2013-11-27Syntax cleanups to main adminDan McGee1-0/+4
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-11-25Capitalize URL properly in Django adminDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-11-25Merge branch 'cleaned-reqdby'release_2013-11-25Dan McGee2-3/+32
2013-11-11Filtered requiredby list for non-primary dependsDan McGee2-3/+32
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>
2013-11-06Drop old base64-ed PGP signature columnDan McGee3-2/+113
We've moved onto bytes only now. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-11-06Move signature data from base64 string to bytes typeDan McGee2-7/+127
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-11-06Add new `signature_bytes` field on package modelDan McGee2-3/+119
Now that we have a BinaryField option in Django 1.6, put it to use. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-07-13Use the unicode char representation of &nbsp;Dan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2013-04-22Add 'required_signoffs' field to Arch modelDan McGee4-24/+141
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>
2013-04-16Sort required by entries by dependency typeDan McGee1-2/+10
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>
2013-04-16Various minor code cleanups and fixesrelease_2013-04-16Dan McGee4-10/+5
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>
2013-04-16Add shortcut for HEAD requests on slower viewsDan McGee1-0/+9
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>
2013-04-14Remove cache_function decorator from a few spotsDan McGee1-4/+1
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>
2013-02-27Disable more @cache_function usagerelease_2013-02-27Dan McGee1-2/+2
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>
2013-02-27Remove caching on reverse_conflictsDan McGee1-1/+1
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>
2013-02-09Change caching strategy on package.applicable_archesDan McGee1-4/+7
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>
2013-02-09Revert "Reduce query count when retrieving satisfiers and providers"Dan McGee1-2/+2
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>
2013-02-08Minify static files when running collectstaticDan McGee1-0/+36
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>
2013-02-04Update exception to DeveloperKey.DoesNotExistDan McGee1-1/+1
We aren't looking up users; we are looking up developer keys. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-02-03Use DeveloperKey model on package page and reportsDan McGee1-2/+4
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>
2013-02-03Update user_pgp_key_link template tag to use DeveloperKey modelDan McGee1-6/+11
The first of several small updates to use the new data we have available. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-20Fix error in get_requiredby() when checking providesrelease_2013-01-20Dan McGee1-0/+1
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>
2013-01-20Remove AlwaysCommitMiddlewareDan McGee1-40/+0
Let's just go with the Django database option for PostreSQL autocommit mode instead. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-20Query performance enhancements in get_requiredby()Dan McGee1-5/+6
For packages with particularly long lists of provides (e.g. perl), the query was getting a bit out of control with the list of names passed in. However, changing it to simply do a subquery resulted in some really poor planning by PostgreSQL. Doing this as a custom 'WHERE' clause utilizing the 'UNION ALL' SQL operator works very well. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-16Convert all usages of flag icons to new spriterelease_2013-01-18Dan McGee1-0/+13
This uses a new template tag to avoid repeating construction of the necessary HTML element all over the place. The site should look exactly as it did before, except now you don't have to download 20+ images to see some pages. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-15Clean up and make several migrations modernrelease_2013-01-15Dan McGee5-32/+22
This moves most migrations to the v2 format that have been presenting some issues. One missing depends_on relationship has been added, and we allow an index to not be dropped if it does not exist due to the shittyness in sqlite3 actually keeping indexes across DDL on that table. Signed-off-by: Dan McGee <dan@archlinux.org>
2013-01-15Add new AlwaysCommitMiddleware to the stackDan McGee1-0/+40
The reason for this is documented in the middleware itself. Without this, pgbouncer is of little use to us since it has to throw away every connection we try to route through it because of unclean disconnects. In theory, with the switch to using pgbouncer for all WSGI originating connections and adding this middleware, we should see a notable decrease in connection time to the database. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-31Minor coding style tweaksDan McGee1-1/+3
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-31Add 'created' field to packages modelDan McGee2-0/+119
This will be used to eventually implement the UI side of FS#13441, but to do that, we first need the data. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-31Remove old todolist permissionsDan McGee1-50/+0
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-31Update the groups JSON fixtureDan McGee1-70/+159
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-30Move needs_autoescape attribute to @register.filterDan McGee1-2/+2
This is the preferred and non-deprecated way of doing this in Django 1.4+. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Retrieve arch and repo too when calling reverse_conflictsDan McGee1-1/+1
Since we need these in the template for any details links, we might as well pull them back from the database in one query rather than three. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Reduce query count when retrieving satisfiers and providersDan McGee1-2/+2
Django doesn't attach the parent object to the child objects, even when queried through the related manager. This causes up to 3 extra queries: one to retrieve the package again, and one each for arch and repo retrieval. For a package like archboot, this drops the number of necessary queries for the package page from 805 to 222 (yes, this is still too high) and cuts the time spent waiting on the database from 505ms to 262ms. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Move slug creation helper to main/utilsDan McGee1-0/+15
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Remove old todo list modelsDan McGee3-70/+134
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-28Move the body of set_last_modified to main/utilsDan McGee1-2/+8
Instead of having multiple methods, move this into our single 'created' setter method. If the 'last_modified' property is present, we now update it accordingly when saving any model with this signal attached. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-27Fix "RuntimeWarning: DateTimeField received a naive datetime" warningsDan McGee1-2/+2
When running tests, we can find old migrations that didn't use datetime objects with timezones attached. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-27Tablesorter JS upgradeDan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-11Update jQuery to 1.8.3Dan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>
2012-12-04get_latest_by cleanupsDan McGee1-1/+1
Fix some that referenced non-existent attributes, and add the attribute to other models. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-27Don't cache package properties as aggressivelyDan McGee1-3/+0
For package signatures, it turns out it is way cheaper to just parse the signature again rather than going though all the decorator and cache_function_key business. This speeds up the mismatched signatures report significantly once this is removed. For base_package, given that we only call it once from our package details template, it makes little sense to cache the result. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-11-16Use python set comprehension syntax supported in 2.7Dan McGee1-1/+1
Signed-off-by: Dan McGee <dan@archlinux.org>