This model will initially be used to transfer subreddit images (used in
the stylesheet) off to a new system, but is intended to be used for
per-wikipage images in the future as well.
The static files S3 bucket has been getting a lot larger recently,
between subreddit stylesheets being in there and the static file cleaner
being disabled due to a bug. This is causing the deploy process to take
upwards of 3 minutes just to determine that no files need to be uploaded
to the bucket.
As a short-term workaround, this changes the uploader to check each key
individually with an S3 HEAD request rather than listing the whole
bucket. This is slower than best case of listing the bucket, but is
significantly faster than the current condition (~25 second runtime
now).
The dynamic configuration system has two components: the app, which
reads, and the writer script. The latter is meant for use by humans, and
converts a [live_config] section of the INI file into JSON for storage
in ZooKeeper. The app will read this data on startup and place a watch
on the node to be notified, by ZooKeeper, of changes. This means that
running the writer script with new data will automatically propagate the
changes to every app very quickly, without restart.
The writer script relies on a human-entered password to authenticate
with ZooKeeper. The reddit app uses a different set of credentials
(specified in the INI file) to obtain read-only access to the
configuration data.
Also adds a new "live_config" spec to reddit and plugins. This spec is
parsed at write-time only and the parsed values are stored as JSON in
ZooKeeper.
NOTE: if you're using an old-style install with symlinks to any of these
files, please make sure to copy them out of the repo before merging this
commit.
We need onload to be able to get a client-IP based
tracking validation hash, but it doesn't actually need
to do any database work to make those hashes. It also
fails a huge number of times per day. This moves the hash
calculation out to an external app with no db dependencies.
Subreddit name search is used for recommending
subreddits to users as they type a name on the
submission page.
Also adds a missing script that is needed
to load up the subreddit names into cassandra.
This script should be run occasionally (we do it
once per day) to fill/update the search cache.
* Show "this post is archived" message for things we won't allow votes on.
* Don't mark messages read when pulled via RSS
* Make compact (smartphone) interface respect user's toolbar
* preferences.
* Make mobile interface more friendly for kindles.
* Fix bug that caused comment tree corruption.
* Use cachebuster on traffic pixel for more accurate tracking.
* Make apps restart themselves after a configurable number of requests.
* Move to pycassa 1.0.8.
* Fix bug in calculations for "best" sort.
* Fixes for Firefox Mobile
* Add a global flag to disable editing of the wiki.
* Move the child-comment collapse button to the left.
* Updated list of disallows in robots.txt to save needless hits from
crawlers.
* Fix vote_q by splitting it into vote_link_q and vote_comment_q.
* Fix bug where /reddits crashes due to 'promos' subreddit.
* Add a new Cassandra CF for comment-sort caching
* Add JSONP support
* Support non-auto-renewing PayPal IPNs
* Gold accounting
* Gold features: comments tracking, larger comment limit
* Autorenewing gold
* Google checkout support
* Profile-page sorting for all
* Title-text on the logo
* Hardcache sharding and profiling
* Self serve enhancements
* Add /r/foo/faq
* Make self-centred reddits allow for more verbose selftext
* Much better down-handling of databases
* Add the ability to take a thread-dump from a running process
* Remove the comscore tracker
* Add comments to modqueue (does not back-populate)
* Use Flaptor's Indextank product for search, including santip's patch
* for their new API
* Add Cassandra ConsistencyLevels to the ini file, and storage-conf.xml
* to the public repo
* Patch contributed by umbrae in ticket #929: Add jumpToContent support
* for Keyboard Accessibility
* reddit gold
- paypal/postcard support
- friends with benefits
- profile-page sorting for gold members
- move domain listings into the permacache
* no-repeat on some background images in the sprite (#797)
* fix deleted comments on the mobile site -- preserve author anonymity (#624
* faulty permalinks on pages with all unicode title (#776)
* no more spreadshirt
* reorganize comment_tree and _builder.pyx to clean up cache handling
* fix styling for Bug #78
* Improve handling of /r/all+all (bug #699), etc (not always a 400 now)
* Fix the time listings: sometimes we get passed unicode for self.time
* Don't allow private reddits to show in /r/random
* Try to allow remote sites to show their own favicons in the reddit
toolbar
Speed improvements:
* CommentBuilder refactor rount 1:
* create new sort and parent permacache entries so that we don't need to loa
* update sorts and parents when a new comment comes in
* update non-date sorts when a new comment vote comes in
* add more trace info to timeouts in CommentBuilder
* Some misc. performance hacks (incl. adding _utils.pyx)
* Increase SR description box limit from 1k to 5k
* Fix a bug where we weren't properly allowing hidden items to be hidden
on time-filtered listings
* Make Subreddit._by_name take a list of names like byID
* Upload thumbs to S3 with reduced_redundancy==True
* make rss feeds without a 'feed' get parameter act as if the user is not logged in
* Require a boto that knows about reduced_redundancy
* remove fast_queries from Message.add_props and put the onus on fetching the unread messages from the permacache
* Store the list of popular subreddits in the permacache
* make SubredditTopBar cacheable per-user.
* add (as safe as we can make it) annotation for sql selects to track down requests hitting the db when they shouldn't be.
User submitted features:
* Merge and clean up Phire's selfs-only/no-selfs patch.
* Don't show expired items on time-filtered controversy listings
* Also add the 'hide' button to the toolbar just for breakneckridge.
Next time someone calls me prickly, breakneckridge had better step
up to the plate for me or I'm rolling it back.