- Add support for critical APNS alerts #502 (by @servn)
- Fix disabling APNS feedback for specific Rpush apps #511 (by @kirbydcool)
- Functionality to use
dry_run
in FCM notifications. This is useful if you want to just validate notification sending works without actually sending a notification to the receivers, fixes #63. (#492 by @aried3r)
- Stop logging all APNSp8 requests as warnings. #474 (by @jhottenstein and @rofreg)
- Support for Ruby 2.2
- Fixed APNSp8 memory leak #475 (by @jhottenstein)
- Fixed APNS2 memory leak. #476 (by @jhottenstein)
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- Remove validation of 64-characters length from
device_token
. #463 (by @chrisokamoto).
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- Added support for Apple Push Notification service
thread-id
field #460 (by @gerard-morera).
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- Change
apn_key
column type from string to text #455 (by sonxurxo). - Retry all GCM 5xx errors #456 (by @rofreg).
- Migrations now work with Rails 5.2 and ActiveRecord. Redis support for Rails 5.2 is not yet working if you're using Modis, see this issue.
- A memory leak in the Rpush daemon which caused it to consume more and more memory was fixed. #441 (by @armahmoudi)
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- None
- Added support for P8 certificate Apple push notifications #386 (by @mariannegru)
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- None
- None
- Change the index on
rpush_notifications
to minimize number of locked records and pre-sort the records (#428 by @loadhigh) - Minimize the locking duration by moving the row dump code outside of the transaction (#428 by @loadhigh)
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- None
- Added sandbox URL to
ApnsHttp2
dispatcher (#392 by @brianlittmann)
- Added support for Pushy (#404 by @zabolotnov87)
@notification.app
triggers loading of association :app (#410 by @loadhigh)- APNS expiry should be number of seconds since epoch (#416 by @loadhigh)
- Fixes migrations added in 3.0.1 (#396 by @grosser)
- Actually run these migrations in the test suite (#399 by @aried3r)
- Reduce booleans to true/false, do not allow nil (#384) by @grosser
- Better error message for error 8 in APNS (#387) by @grosser
Same as 3.0.0.rc1 including:
When upgrading, don't forget to run bundle exec rpush init
to get all the latest migrations.
- Added support for APNS
mutable-content
(#296 by @tdtran) - Added support for HTTP2 base APNS Api (#315 by @soulfly and @Nattfodd)
-
Breaking: Dropped support for old Rubies and Rails versions. rpush 3.0 only supports Ruby versions 2.2.2 or higher and Rails 4.2 or higher. (#366 by @aried3r)
-
Breaking: Dropped MongoDB support because there was no one maintaining it. But we're open to adding it back in. (#366 by @aried3r)
-
Make synchronizer aware of GCM and WNS apps (#254 by @wouterh)
-
Remove sound default value (#320 by @amaierhofer)
-
- Fix
net-http-persistent
initializer to support version 2.x as well as 3.x. (#309 by @amirmujkic) - Fixed Rpush::ApnsFeedback being run on every application type when using Redis. (#318 by @robertasg)
- Added support for GCM priorities. (#243 by @aried3r)
- Added support for GCM notification payload (#246 by @aried3r)
- Added support for Windows Raw Notifications (in JSON form) (#238 by @mseppae)
- Added WNS badge notifications (#247 by @wouterh)
- Added the
launch
argument of WNS toast notifications (#247 by @wouterh) - Added sound in WNS toast notifications (#247 by @wouterh)
- Change
alert
type fromstring
totext
in ActiveRecord to allow bigger alert dictionaries. (#248 by @schmidt)
- Fixed issue where setting the
mdm
parameter broketo_binary
for MDM APNs (#234 by @troya2) - Fixed
as_json
(#231 by @aried3r)
- Added support for GCM for iOS'
content_available
. (#221)
- Fix typo in Oracle support. (#185)
- Remove
param
tag from WNS message. (#190) - Fixed WNS response headers parser. (#192)
- GCM: fixed raise of unhandled errors. (#193)
- Fix issue with custom PID file set in
Rpush.config
. (#224, #225)
Features:
- Add 'rpush status' to inspect running Rpush internal status.
- ActiveRecord logging is no longer redirected to rpush.log when embedded (#138).
- Support for WNS (Windows RT) (#137).
- Indexes added to some Mongoid fields (#151).
- Added support for Oracle.
Bug fixes:
- Fix for handling APNs error when using
rpush push
orRpush.push
. - Fix backwards compatibility issue with ActiveRecord (#144).
Features:
- Support for MongoDB (using Mongoid).
- config.feedback_poll is now deprecated, use config.apns.feedback_receiver.frequency instead.
- Add config.apns.feedback_receiver.enabled to optionally enable the APNs feedback receiver (#129).
- Passing configuration options directly to Rpush.embed and Rpush.push is now deprecated.
Bug fixes:
- Fix setting the log level when using Rails 4+ or without Rails (#124).
- Fix the possibility for excessive error logging when using APNs (#128).
- Re-use timestamp when replacing a migration with the same name (#91).
- Ensure App/Notification type is updated during 2.0 upgrade migration (#102).
Bug fixes:
- Internal sleep mechanism would sometimes no wait for the full duration specified.
- Rpush.push nows delivers all pending notifications before returning.
- Require thor >= 0.18.1 (#121).
- Fix CPU thrashing while waiting for an APNs connection be established (#119).
- Add 'version' CLI command.
- Rpush::Wpns::Notification now supports setting the 'data' attribute.
- ActiveRecord is now directed to the configured Rpush logger (#104).
- Logs are reopened when the HUP signal is received (#95).
- Fix setting config.redis_options (#114).
- Increase frequency of TCP keepalive probes on Linux.
- APNs notifications are no longer marked as failed when a dropped connection is detected, as it's impossible to know exactly how many actually failed (if any).
- Notifications are now retried instead of being marked as failed if a TCP/HTTP connection cannot be established.
- Numerous command-line fixes, sorry folks!
- Add 'rpush push' command-line command for one-off use.
- Bump APNs max payload size to 2048 for iOS 8.
- Add 'category' for iOS 8.
- Add url_args for Safari Push Notification Support (#77).
- Improved command-line interface.
- Rails integration is now optional.
- Added log_level config option.
- log_dir is now deprecated and has no effect, use log_file instead.
- Add ssl_certificate_revoked reflection (#68).
- Fix for Postgis support in 2.0.0 migration (#70).
- Use APNs enhanced binary format version 2.
- Support running multiple Rpush processes when using ActiveRecord and Redis.
- APNs error detection is now performed asynchronously, 'check_for_errors' is therefore deprecated.
- Deprecated attributes_for_device accessors. Use data instead.
- Fix signal handling to work with Ruby 2.x. (#40).
- You no longer need to signal HUP after creating a new app, they will be loaded automatically for you.
- APNs notifications are now delivered in batches, greatly improving throughput.
- Signaling HUP now also causes Rpush to immediately check for new notifications.
- The 'wakeup' config option has been removed.
- The 'batch_storage_updates' config option has been deprecated, storage backends will now always batch updates where appropriate.
- The rpush process title updates with number of queued notifications and number of dispatchers.
- Rpush::Apns::Feedback#app has been renamed to app_id and is now an Integer.
- An app is restarted when the HUP signal is received if its certificate or environment attribute changed.
- Renamed to Rpush (from Rapns). Version number reset to 1.0.0.
- Reduce default batch size to 100.
- Fix sqlite3 support (#160).
- Drop support for Ruby 1.8.
- Improve APNs certificate validation errors (#192) @mattconnolly).
- Support for Windows Phone notifications (#191) (@matiaslina).
- Support for Amazon device messaging (#173) (@darrylyip).
- Add two new GCM reflections: gcm_delivered_to_recipient, gcm_failed_to_recipient (#184) (@jakeonfire).
- Fix migration issues (#181) (@jcoleman).
- Add GCM gcm_invalid_registration_id reflection (#171) (@marcrohloff).
- Feature: wakeup feeder via UDP socket (#164) (@mattconnolly).
- Fix reflections when using batches (#161).
- Only perform APNs certificate validation for APNs apps (#133).
- The deprecated on_apns_feedback has now been removed.
- The deprecated airbrake_notify config option has been removed.
- Removed the deprecated ability to set attributes_for_device using mass-assignment.
- Fixed issue where database connections may not be released from the connection pool.
- Silence unintended airbrake_notify deprecation warning (#158).
- Add :dependent => :destroy to app notifications (#156).
- Rails 4 support.
- Add apns_certificate_will_expire reflection.
- Perform storage update in batches where possible, to increase throughput.
- airbrake_notify is now deprecated, use the Reflection API instead.
- Fix calling the notification_delivered reflection twice (#149).
- Fix Rails 3.0.x compatibility (#138) (@yoppi).
- Ensure Rails does not set a default value for text columns (#137).
- Fix error in down action for add_gcm migration (#135) (@alexperto).
- Fix compatibility with postgres_ext (#104).
- Add ability to switch the logger (@maxsz).
- Do not validate presence of alert, badge or sound - not actually required by the APNs (#129) (@wilg).
- Catch IOError from an APNs connection. (@maxsz).
- Allow nested hashes in APNs notification attributes (@perezda).
- GCM: collapse_key is no longer required to set expiry (time_to_live).
- Add reflection for GCM canonical IDs.
- Add Rpush::Daemon.store to decouple storage backend.
- Rpush.apns_feedback for one time feedback retrieval. Rpush.push no longer checks for feedback (#117, #105).
- Lazily connect to the APNs only when a notification is to be delivered (#111).
- Ensure all notifications are sent when using Rpush.push (#107).
- Fix issue with running Rpush.push more than once in the same process (#106).
- Rpush.reflect API for fine-grained introspection.
- Rpush.embed API for embedding Rpush into an existing process.
- Rpush.push API for using Rpush in scheduled jobs.
- Fix issue with integration with ActiveScaffold (#98) (@jeffarena).
- Fix content-available setter for APNs (#95) (@dup2).
- GCM validation fixes (#96) (@DianthuDia).
- Fix compatibility with Rails 3.0.x. Fixes #89.
- Add support for Google Cloud Messaging.
- Fix Heroku logging issue.
- Support content-available (#68).
- Append to log files.
- Fire a callback when Feedback is received.
- Release db connections back into the pool after use (#72).
- Continue to start daemon if a connection cannot be made during startup (#62) (@mattconnolly).
- Don't exit when there aren't any Rpush::App instances, just warn (#55).
- JRuby support.
- Explicitly list all attributes instead of calling column_names (#53).
- Support MultiJson < 1.3.0.
- Make all model attributes accessible.
- Fix delivery when using Ruby 1.8.
- MultiJson support.
- Support for multiple apps.
- Hot Updates - add/remove apps without restart.
- MDM support.
- Removed rpush.yml in favour of command line options.
- Started the changelog!