* master:
Cleaning up counts in munin and work log.
What the f? strip_comments now eats CPU on bad stories. But why now and not a few months ago when I introduced it?
Adding timeout to strip comments.
Using proper hostname for task server. Adding verbosity to feed fetching.
* master:
Adding tasked_feeds set to handle dropped feeds.
Fixing missing feed bug.
Adding new task server role: only new and push feeds.
Fixing munin counts.
* master:
Cleaning up queue migration.
Handling decayed feeds with no more active subscribers. They don't get returned to the scheduled_updates queue until there are enough active users.
Only need next scheduled update.
Fixing feeds that fall through.
Moving task queue from postgres db backed to redis backed.
# By Samuel Clay (12) and Lance Johnson (1)
* master:
Updating postgres config, celery queue.
Boosting feed fetching.
Android: show server error message to user when add feed fails. The error message was being sent when non-premium users tried to search for feeds and was causing the App to crash.
Removing unused feed hash index (keeping the unique constraint).
Adding two indexes and killing one unused one from feeds.
Returning index on active subs.
Changing logging on feed queueing.
Turning off autocomplete for the time being.
Removing unused indexes.
Upgrade to postgres 9.2.
Culling some graphs on feed counts.
Cleaning up week old feeds.
Boosting feed fetching way up for the weekend.
* master:
Fixing stripe reimport
Upping feed fetching by quite a bit.
Fixing double counting stripe payment bug by clearing out striep purchase history when inserting.
* master:
Adding task servers to db firewall.
Adding redis cache. Returning favicon server.
Better munin plugins for redis and mongo.
Removing unused redis keys for shared/comments. Dry-run.
Adding read preference to migration.
Migration to create story_hash for missing feeds.
Making a clearer description of slow feeds.
Upping feed fetches, slowing down fetch interval for less active feeds, setting premium expire time to one year from most recent payment date (as opposed to borked payment gap logic), and adding logginf or tasking feeds.
Switching check for HAProxy'ied socket.io to dev instead of www. Thanks @anaconda!
Sync delay in mongodb and updating story hash migration.
Upping feed fetches.
Fix force close when attempting to fetch a user with a null user.id value
Fix force close updating ProfileActivityFragment if no profile response was received
Move creating ImageLoader in NewsBlurApplication to onCreate to ensure that base context has been set and prevent force close
Boosting fetches.
Fix duplicate requirement
Conflicts:
fabfile.py
* master:
Adding dev and debug to firewall
Adding hyphens to allowed hosts for blurblogs.
Adding X-nginx-server and X-gunicorn-server.
Adding RStats, necessary to remove mongodb analytics.
Fixing firewall setup.
Using secondary mongos for feed fetch histories.
Moving to a single hosts and hosts.yml file, used to control logs, deployment, firewalls, and communication. Awesome!
Moving hosts to secrets.
Cache busting feeds on force and 1% of the time.
Conflicts:
config/nginx.newsblur.conf
* master:
Fixing Google+ sharing.
64 sites, not 12 sites. Doh!
Adding expires header to icons.
Downgrading from Pillow, which is incompatible with PIL.
Pushing feed history deletion to end of stats collection.
Logging feed fetch deletions.
Fixing missing scipy import missing form PILlow.
Last imports for pillow.
Boosting feed fetches.
Upgrading from PIL to Pillow.
Upgrading from PIL to Pillow.
Upgrading from PIL to Pillow.
Adding cached template loader. Adding new mongodb.
Cutting number of feeds for fetching until mongo is sharded.
Conflicts:
fabfile.py
* master:
Using user's username on signup if no password.
Using user's username on signup if no password.
Fixing passwords if left blank.
Patching Django 1.5 to handle underscores in subdomains.
Allowed hosts
Allowed hosts
If not active subs, turn off real-time.
If not active subs, turn off real-time.
Skipping real-time fetch for non-premium active feeds.
Upgrading django 1.5 manage.py.
Upgrade to django 1.5 script. Also handling story lookups with objectids.
Updated Django to always use the latest 1.5 version. Updated django-redis-session to latest version.
Moving HAProxy's config to secrets so I can set a password.
Allowing_hosts for django 1.5.
Upgrading django from 1.3 to 1.5.
Keep Raven from making settings puke.
Added django-redis-sessions to requirements.
Added a check for testing the email address provided during registration and throwing an error if the email address is already associated with an existing account.
Adding revsys fab command.
Froze requirements to make installation a bit easier.
Conflicts:
templates/reader/dashboard.xhtml
templates/social/social_page.xhtml
* master:
Warning on missing maintenance.
Further pushing out feed updates.
Using @dcramer's excellent getsentry.com for all exceptions. Turning off exception emails.
Further pushing down feed fetches to handle load until db is scaled out.
Scrolling code blocks.
New task servers.
Turning down feed fetches.
If requests.raw won't work, sut fudge it with a StringIO for now.
Further turning down feed fetches until mongo is ready to replicate.
Fixing Facebook image calculation.
Fixing facebook posting.
Moving shared story unread recalc to background task. Will greatly speed up sharing.
Ramping down feed fetching until they can be handled.
Only show time breakdown when > 1 sec.
Fixed API docs for /reader/river_stories
make fabfile.py use requirements.txt
Make sure to send the proper content-type with social feeds
Restore default whitespace to pre/code blocks
Phase 2: switching to using story_hash index instead of compound unique story_feed_id/story_guid index.
document keyboard shortcut to add site/folder
Conflicts:
apps/social/views.py
# By Samuel Clay (10) and others
* master:
Further pushing out feed updates.
Using @dcramer's excellent getsentry.com for all exceptions. Turning off exception emails.
Further pushing down feed fetches to handle load until db is scaled out.
Scrolling code blocks.
New task servers.
Turning down feed fetches.
If requests.raw won't work, sut fudge it with a StringIO for now.
Further turning down feed fetches until mongo is ready to replicate.
Fixing Facebook image calculation.
Fixing facebook posting.
Fixed API docs for /reader/river_stories
make fabfile.py use requirements.txt
Make sure to send the proper content-type with social feeds
Restore default whitespace to pre/code blocks
document keyboard shortcut to add site/folder
# By Samuel Clay (70) and adriano petrich (1)
# Via Samuel Clay (3) and adriano petrich (1)
* master: (71 commits)
Adding new task servers.
Activating premiums immediately for stripe users.
Adding X-server to headers to figure out request pinning.
removing dependency to dop.client for common fab tasks
Increase file descriptor limits with fabric.
Opening up gunicorn for use by HAProxy directly.
Naively connecting to real-time socket.io.
Preventing socket.io buildups.
Rewriting HAProxy config to include gunicorn and maintenance. Much better monitoring.
Fixing HAProxy to use http headers so a 502 error code doesn't get served with a 200 status code. I mean seriously, WTF HAProxy?!
Trying out a gunicorn haproxy backend.
Re-upping 12 to 64 free feeds.
Removing Redis state for socket.io. Too many open mongo connections.
Referencing new secret hosts.
Removing hosts.
Adding dev hosts.
Using new secrets repo instead of ignored files.
Fixing homepage copy.
Using redisstore for socketio.
Forcing reconnection for socket.io.
...
* master:
Refactoring fabfile for DO
Moving redis servers for real-time.
Increasing feed fetches quite a bit.
More gunicorn servers.
More gunicorn servers.
Upping gunicorn processes.
Hiding 12 option to cut back on number of new premiums.
Bumping up premium refresh rates.
Tasking only popular feeds for now.
Pushing out feed updates until able to handle the giant influx.
* master:
db03 is no longer a db.
Redis to db01.
Logging stripe use.
Paywall on signup.
Extending random holds for feeds while being crushed.
Minimum of MEMORY/256 workers.
Minimum of MEMORY/256 workers.
Bumping gunicorn workers.
Only recount feeds if necessary.
Only recount feeds if necessary.
Conflicts:
media/css/reader.css
* master:
Counting average stories if stories were detected in the last month. This should fix feeds that have long delays but shouldn't.
Fixing maintenance mode message.
Maintenace message.
First half of story hash migration. Setting up unique sparse index, then migration to calculate hashes for every story.
Fixing the timeout on premium setups by doing the scheduling of premium setups in a task, only immediately activating all of a user's feeds.
* master:
If there are no unread stories in a folder, don't request river_stories with no feeds, since that will return all unread stories. Fetch all feeds in folder. Thanks to @afita for pushing this.
Fixing sharing story by email if the story has no feed.
Fixing sharing story by email if the story has no feed.
Adding Tafiti, Windows 8 app, to logs.
1 month max on next fetch.
Conflicts:
media/js/newsblur/reader/reader.js