## 3.0.0 (2011-09-30) * #18888077 - implement Redis transactions optimization for push_objects and push_deletes * added 2 rake tasks (build:rpm and build:deb) to generate packaged software for popular linux servers (CentOS/Ubuntu). The package includes ruby enterprise, redis and nginx servers, passenger, and rhoconnect gem with all dependencies * #19116273 - created new redis:startbg task for Rhostudio ## 3.0.0.rc1 (2011-09-27) * load sqlite3 gem on demand, fixes issue with generator requiring it * #18934311 - create :startbg task for Rhostudio ## 3.0.0.beta3 (2011-09-23) * #18672811 - edge case produces race condition which leads to corruption of Store data * #18508155 - on failed syncs allow the user to retry it up to pre-defined number of times ## 3.0.0.beta2 (2011-09-14) * #17830175 - moved SystemTimer in application's Gemfile so rhoconnect gem isn't specific * #13303895 - Generating a new source with 'rhosync source ' deletes sections in settings.yml * #10313437 - support source settings per environment ## 3.0.0.beta1 (2011-09-01) * #1018 user delete now iterates through user sources and deletes data in redis * #11102931 ping api accepts vibrate string and int * #7197617 test spec helpers support pass through * #11944605 implemented pass through feature * #4397476 wrapped login/logoff around cud spec helpers * backtrace logging in source adapter method exceptions * returning string in authenticate instead of true sets the current user login name (Useful for OAuth2) * #11904353 - fixed broken 'rake console' task, added new 'rhosync' namespace: 'rake rhosync:console' * #12105115 - removed unnecessary log4r dependency * added bundler to manage gem's dependencies, migrated from rspec1 to rspec2 * #5687948 - fixed issue "iPhone push specs failed" * use redis 2.2.14 by default * added SystemTimer gem dependency (used only on posix systems) * #13616807 - Rake task spec:all fails for enterprise ruby (ree) * #13776713 - Rake -v 0.9.0 breaks rhosync rake tasks * #14514773 - REST API push_object, push_deletes :md_size count fix * #5687948 - fixed issue "iPhone push specs failed" * #12854737 - string vs. symbol problem in ruby 1.9 model.rb (contribute to ruby 1.9 support) * #11692191 - ruby 1.9 support * #2020980 - Test on JRuby. Code reworked to fully support JRuby platform. * #14087743 - Merging the /login and /get_api_token methods. * #14713569 - Moving all Server REST API calls into namespaces. * #14284841 - Merge ruby_19 branch into master * #14784949 - Suppress rake -v 0.9.2 warning messages while running tasks. * #3174947 - RESTful routes for client management * #14968209 - Generated Specs are failing on 2nd generated source * #15270505 - sqlite3 is not listed as a dependency of rhosync gem (3.0.0) * #15143911 - Schema Changed message from Zendesk ticket #1035 (merge from branch 2-1-stable 2.1.9) * #14950665 - Benchmark application and libraries: rework REST calls to match new API restful routes. * #14860303 - In bench tests x_domain_session_wrapper middleware not working under ruby 1.9.2. * #15615327 - Rhoconnect migration * #15730829 - added migration guidelines doc * #14286067 - jruby rhosync:start : console doesn't work * #14286249 - jruby WAR file deployed , some of the links are broken in console window, should use the relative paths * #14285867 - jruby rhosync:start should have run with dtach * #17526603 - implement clientreset support for specified sources * #16628143 - implement 'ping' for multiple users at once in REST API * #18003071 - enhancing console to support multi-user ping * #10313437 - source settings per environment (also applied to dynamic adapters) * #18356697 - store lock is never released (bug fix) ## 2.1.10 (2011-08-17) * #16001227 - raise exceptions on c2dm errors * #1018 - delete read state for user as well ## 2.1.9 (2011-07-01) * #15143911 - Fix for incident schema changed message ## 2.1.8 (2011-06-29) * #1018 - added functionality to delete user source data on user delete * updated to rake 0.9.2 * #14911833 - Add support for rolling back updates on sync errors ## 2.1.7 (2011-05-31) * #14021681 - check for client on client_sync class methods * #14082861 - expose Store.lock timeout to high-level functions * #14082589 - fixed source loading so a unique instance is loaded * #14124195 - concurrency issue under load for same user via push_objects api * #14511763 - added global options `raise_on_expired_lock` (true/false) and `lock_duration` (sec) settings ## 2.1.6 (2011-05-25) * #13830841 - fixed issue where current_user.login doesn't match @source.user_id ## 2.1.5 (2011-05-24) * #13578473 - fixed "undefined method `user_id' for nil:NilClass" error in server.rb ## 2.1.4 (2011-05-20) * #13354369 - bug fix "rhosync bootstrap process shouldn't store sources in redis" ## 2.1.3 (2011-05-05) * #4398193 - ping should only send push messages to unique device pin list * #13022667 - settings.yml doesn't work for setting external Redis instances ## 2.1.2 (2011-03-18) * Use server-dir/redis.conf if not found at RedisRunner.prefix (via artemk) * #8471337 - switch client user if it is not equal to current_user * Upgrade rest-client dependency which includes cookie escape fix * #10097347 - generate cryptographically secure secret key by default * Fixed 'application/json; charset=UTF-8' content handling in the server before filter * #11017509 - fixed sinatra 1.2 incompatibility with url() helper * #4569337 - use redis 2.2.2 by default * #4398193 - ping should only send push messages to unique device pin list ## 2.1.1 (2011-01-04) * #7679395 - added support for gzipped bulk data files * #8167507 - fixed typo in console login page * #7025387 - customizable redis.conf for windows ## 2.1.0 * #4302316 - don't allow set blank admin password * #5672322 - stats for user count * #5672316 - stats for device count * #5717916 - stats api call * #5821277 - http stats by source not showing * #5899454 - move lock prefix to beginning so we don't return stats keys with it * #5822966 - bulk sync data file cannot handle space in the username * #6450519 - blob sync resend_page doesn't send metadata * #4646791 - cryptic error message if client exists, but source name is bogus * #6827511 - fill in schema column in bulk sync file sources table * #4490679 - support schema method in source adapter (runtime schema for bulk data) * #6573429 - if schema changed in any adapter, invalidate bulk data file * #7034095 - don't ping device if device_pin is empty or nil * #7089047 - fixed application.rb template store_blob method * #7055889 - fixed schema tables should have 'object' primary key * #6011821 - try to make bin_dir on redis:install and dtach:install ## 2.0.9 (2010-10-14) * #5154725 - stats framework * #5013521 - new web interface style * #5615901 - fixing hsqldata bulk data file format * #5672140 - http request timings middleware * #5672148 - source adapter execution timings * #5620719 - session secret override didn't work * #3713049 - added support for Android Cloud to Device Messaging ## 2.0.8 (2010-10-08) * #5185540 - don't try to load licensefile if env var exists * #5246936 - changed settings.yml-belongs_to format to use array instead of hash * #5578580 - allow Store.db to accept an existing redis object (useful for overriding redis settings) ## 2.0.7 (2010-09-13) * #4893692 - fixed infinite search loop * search properly handles multiple page results ## 2.0.6 (2010-08-25) * #4701421 - dbfile url has junk characters * #4731763 - support 'apple' device type, deprecate 'iphone' device type * #4763532 - sound was missing from BB pap message ## 2.0.5 (2010-08-10) * #4650808 - use ENV['RHOSYNC_LICENSE'] if it exists * #4650820 - added UI checkbox for direct api calls ## 2.0.4 (2010-08-04) * #3624650 - support redis-rb ~>2.0.0 * #4480303 - support connection to redis uri, if ENV[REDIS_URL] exists * #4565808 - support direct ruby api calls ## 2.0.3 (2010-07-21) * #4379293 - don't fail ping job if device type is nil or empty, just skip the device ## 2.0.2 (2010-07-16) * #4236653 - add confirmation to console and task reset * #3582679 - added rhosync:set_admin_password task ## 2.0.1 (2010-07-01) * #4124559 - rake redis:install fails due to redis build changes, require 1.3.12 for now * #4094373 - default task is now rhosync:spec ## 2.0.0.rc2, 2.0.0 (2010-06-28) * #4040573 - sqlite3-ruby v1.3.0 breaks bulk data tests, require ~>1.2.5 for now ## 2.0.0.rc1 * dupe tag of 2.0.0.beta13 ## 2.0.0.beta13 * #3417862 - namespacing issue with HashWithIndifferentAccess ## 2.0.0.beta12 * #3851464 - log every error in client post parsing * #3795105 - store associations in sources table for bulk data ## 2.0.0.beta11 * #3850478 - fix hardcoded hsqldata.jar path ## 2.0.0.beta10 * #3662891 - adding rhosync:flushdb rake task * #3742919 - fixing sources json structure according to http://wiki.rhomobile.com/index.php/Rhom#Source_Configuration_Protocol * #3740205 - changed default admin user to 'rhoadmin' ## 2.0.0.beta9 * #3565139 - return better error message if client/source is unknown * #3616601 - added blob_attribs to bulk data job file * #3576126 - added expire_bulk_data source adapter method * #3576151 - trigger new bulk data job if any relevant dbfiles are missing * #3707791 - fixing ROOT_PATH problem on windows ## 2.0.0.beta8 * #3685476 - CGI escape api cookies ## 2.0.0.beta7 * #3651932 - support redis:* tasks on windows and linux/mac * #3663335 - don't need ENV['PWD'] in tasks.rb ## 2.0.0.beta6 * no new changes, rubygems.org upload failed for 2.0.0.beta5 ## 2.0.0.beta5 * #3628036 - support loading generator from gem ## 2.0.0.beta4 * #3316030 - added rspec test framework * #3557341 - create new bulk data instance if the file is missing * #3415335 - support fixed schema models * #3582235 - report error if client-posted json doesn't parse (instead of crashing server) ## 2.0.0.beta3 * #3316030 - added source adapter spec helper + infrastructure * #3475519 - return exception string on 401 / 500 login errors * #3513037 - re-animated bulk sync feature * #3511533 - added stash_result source adapter utility - useful for huge datasets * #3539092 - added rake rhosync:web task ## 2.0.0.beta2 * #3416343 - unify rake tasks to work on windows & Mac OS / *nix ## 2.0.0.beta1 * New implementation of RhoSync using redis storage engine * Support for modular routes (console & resque frontend optional) * Bulk Data synchronization * REST api for server management