Fetching contributors…
Cannot retrieve contributors at this time
456 lines (324 sloc) 19.3 KB


  • BUGFIX: Correctly handle public only DSNs [@mitsuhiko, #847]
  • BUGFIX: context attributes with nil raised error [@joker-777, 824]
  • BUGFIX: Suppress warning about enabling dyno metadata in Heroku CI [@meganemura, #833]


  • BUGFIX: Fix proxy settings for Faraday [@Strnadj, #820]
  • BUGFIX: Fix duplicated events in ActiveJob w/DelayedJob and Sidekiq [@BrentWheeldon, #815]


  • BUGFIX: GlobalIDs are now displayed correctly in Sidekiq contexts [@louim, #798]
  • BUGFIX: If git is not installed, fail silently during release detection [@nateberkopec]
  • BUGFIX: We do not support rack-timeout <= 0.2, fix errors when incompat version present [@nateberkopec]
  • BUGFIX: Put cookies in the correct spot of event [@nateberkopec, #812]
  • BUGFIX: Exception context is deep_merged [@janklimo, #782]


  • BUGFIX: Fixed LocalJumpError in Rails controllers [@nateberkopec w/@frodsan, #774]


  • FEATURE: Add random sampling. [@nateberkopec, #734]

  • FEATURE: Transactions. See Context docs for usage. [@nateberkopec, #743]

  • FEATURE: You can set the current environment for Sentry via SENTRY_CURRENT_ENV env variable. Useful if your staging environment's RACK_ENV is "production", for example. [@tijmenb, #736]

  • BUGFIX: Fix wrapped classnames in old versions of Sidekiq and ActiveJob [@nateberkopec, #702]

  • BUGFIX: Server names on Heroku were pretty useless before - now they follow the dyno name ("worker.1", "web.2") [@nateberkopec, #703]

  • BUGFIX: ActiveJob::DeserializationError is now ignored by default. Not doing so can cause infinite loops if you are using an ActiveJob async callback. [@nateberkopec, #701]

  • BUGFIX: Binary conversion to UTF-8 when binary is frozen is fixed [@nateberkopec, #757]

  • BUGFIX: Our credit-card regex now matches Sentry's server behavior, which means it does not censor milliseconds since the epoch [@nateberkopec, #771]

  • REFACTOR: We now use an updated port of Rails' deep_merge which should be 5-10% faster [@nateberkopec, #770]

  • REFACTOR: Tests have been cleaned up, and now run in random order. [@nateberkopec]

  • REFACTOR: Raven::Event has been refactored a bit [@nateberkopec]


  • BUGFIX: Fixed typo in the Heroku warning [@greysteil, #728]
  • BUGFIX: Swallow IOErrors when reading the Rack request body [@nateberkopec]
  • BUGFIX: Fix invalid UTF-8/circular references when using async [@nateberkopec, #730]


  • BUGFIX: If using the Sidekiq or DelayedJob adapters with ActiveJob, ActiveJob wouldn't re-raise upon capturing an exception. [@nateberkopec, 5b02ad4ff2]

  • KNOWN ISSUE: When using async, Rack integration is not thread-safe [#721]

  • KNOWN ISSUE: When using async, encoding errors may be raised [#725]


  • BUGFIX: Fix cases where ActionDispatch::RemoteIP would blow up during event creation [@cmoylan, #722]
  • BUGFIX: In ActiveJob, don't report exceptions which can be rescued by rescue_from handlers [@bensheldon, #719]


  • FEATURE: raven-ruby now marks itself as the "ruby" logger by default, to match raven-js behavior [@nateberkopec]

  • FEATURE: You may now override the default sanitization parameters [#712, @nateberkopec]

  • FEATURE: Breadcrumb buffers are now publicly accessible [#686, @nateberkopec]

  • FEATURE: We yell at you now if you're using Heroku but don't have runtime-dyno-metadata enabled [#715, @nateberkopec]

  • FEATURE: project_root will always be set, regardless of framework [#716, @nateberkopec]

  • BUGFIX: Request body and message limits now match Sentry server defaults [#714, @nateberkopec]

  • BUGFIX: Sidekiq context now works as expected [#713, @nateberkopec]

  • BUGFIX: Capture exceptions in ActiveJob when not using Sidekiq adapter [#709, #671, @nateberkopec]


  • BUGFIX: Deal properly with ASCII_8BIT/BINARY encodings [#689, #696, @nateberkopec]


  • BUGFIX: raven test executable should be available [#691, @nateberkopec]

  • BUGFIX: Fix stack overflow when calling Backtrace#inspect [#690, @nateberkopec]

  • KNOWN ISSUE: Character encoding errors [#689]


  • BUGFIX: Fix case where Pathname objects are on the load path [@nateberkopec]

  • BUGFIX: Fix bad UTF-8 characters in the URL querystring [@nateberkopec]

  • BUGFIX: Fix case where rack-timeout could be required twice [@nateberkopec]

  • REFACTOR: Slightly cleaner character encoding fixing [@nateberkopec, @bf4]


  • FEATURE: Greatly improved performance (2-3x faster capture) [@nateberkopec]

  • FEATURE: Frozen objects are now sanitized [@nateberkopec]

  • BUGFIX: Grabbing Sidekiq context from "wrapped" classes works [@nateberkopec]

  • BUGFIX: Relaxed Faraday dependency [@nateberkopec]


  • FEATURE: Allow customization of the Faraday adapter [#639, @StupidCodeFactory]

  • BUGFIX: Report the SDK name as "raven-ruby", not "sentry-raven" [#641, @bretthoerner]

  • BUGFIX: Sidekiq jobs now clear context/breadcrumbs properly between jobs [#637, @drewish]

  • BUGFIX: Overriding the logger in Rails wasn't working [#638, @eugeneius]


  • BUGFIX: Backtrace parser fixed for JRuby 9k [#619, @the-michael-toy]
  • BUGFIX: Rake tasks should show the correct task name [#621, @Bugagazavr]
  • BUGFIX: Formatted messages work if params are nil [#625, @miyachik]
  • BUGFIX: Backtrace logger on failed event send works with custom formatters [#627, @chulkilee]
  • BUGFIX: Fix typo that caused Version headers to not be corrected [#628, @nateberkopec]
  • BUGFIX: Faraday errors are more descriptive when no server response [#629, @drewish]
  • BUGFIX: DelayedJob handler no longer truncates unneccessarily short [#633, @darrennix]
  • BUGFIX: Fix several processors not working correctly w/async jobs stored in backends like Redis [#634, @nateberkopec]


  • CHANGE: Log levels of some messages have been changed. Raven logger is INFO level by default. [@nateberkopec]
  • BUGFIX: Exception messages are now limited to 10,000 bytes. [#617, @mattrobenolt]


  • ENHANCEMENT: Sentry server errors now return some information about the response headers. [#585, @rafadc]
  • BUGFIX/ENHANCEMENT: Frozen objects are no longer sanitized. This prevents some bugs, but you can now also freeze objects if you don't want them to be sanitized by the SanitizeData processor. [#594, @nateberkopec]
  • ENHANCEMENT: The ability to use Raven::Instance alone is greatly improved. You can now call #capture_exception directly on an Instance (#595), give it it's own Logger (#599), and set it's own config which will be used when creating Events (#601). Thanks to
  • ENHANCEMENT: You may now provide your own LineCache-like class to Raven. This is useful if you have source code which is not available on disk. [#606, @nateberkopec]
  • BUGFIX: Raven no longer emits anything to STDOUT if a system command fails [#596, @nateberkopec]
  • ENHANCEMENT: Raven now tells you exactly why it will not send an event in the logs [#602, @nateberkopec]


  • FIX: Remove contexts key, because it was disabling browser auto-tagging [#587, @nateberkopec]


  • Move os context key to server_os [@nateberkopec]


  • FIX: sys_command not falling back to Windows commands properly, logging output [@jmalves, @nateberkopec]


  • FIX: Message params should accept nil [@jmalves, #570]



  • Your client version is now included in all Events. [@nateberkopec, #559]
  • OS and Ruby runtime information now included in all Events. [@nateberkopec, #560]
  • Transport errors (like Sentry 4XX errors) now raise Sentry::Error, not Faraday errors. [@nateberkopec, #565]
  • Sidekiq integration is streamlined and improved. Supports Sidekiq 3.x and up. [@nateberkopec, #555]


  • Heroku release detection is improved and more accurate. You must heroku labs:enable runtime-dyno-metadata for it to work. [@nateberkopec, #566]


  • FIX: Don't set up Rack-Timeout middleware. [@janraasch, #558]


  • FIX: UUIDs were being rejected by Sentry as being too long [@nateberkopec]



  • The object passed to the async callback is now a JSON-compatible hash, not a Raven::Event. This fixes many bugs with backend job processors like DelayedJob. [@nateberkopec, #547]
  • Several deprecated accessors have been removed [@nateberkopec, #543]
  • You can no longer pass an object which cannot be called to should_capture [@nateberkopec, #542]


  • Rack::Timeout exceptions are now fingerprinted by URL, making them more useful [@nateberkopec, #538]
  • Added an HTTP header processor by default. We now scrub Authorization headers correctly. You can use config.sanitize_http_headers to add a list of HTTP headers you don't want sent to Sentry (e.g. ["Via", "Referer", "User-Agent", "Server", "From"]) [@nateberkopec]


  • User/Event IP addresses are now set more accurately. This will fix many issues with local proxy setups (nginx, etc). [@nateberkopec, #546]
  • We now generate a real UUID in the correct format for Event IDs [@nateberkopec, #549]
  • If async sending fails, we retry with sync sending. [@nateberkopec, #548]
  • Changed truncation approach - event messages and HTTP bodies now limited to the same amount of characters they're limited to at the Sentry server [@nateberkopec, #536]


  • Codebase cleaned up with Rubocop [@nateberkopec, #544]


  • ENHANCEMENT: Send the current environment to Sentry [@dcramer, #530]
  • BUGFIX: Fix all warnings emitted by Ruby verbose mode [@nateberkopec]
  • BUGFIX: Fix compat with log4r [@nateberkopec, #535]


  • BUGFIX: NameError in DelayedJob integration. [janraasch, #525]


  • BUGFIX: Context clearing should now work properly in DelayedJob and Sidekiq. Also, we properly clear context if Sentry causes an exception. [nateberkopec, #520]
  • BUGFIX: If Sentry will not send the event (due to environments or no DSN set), it will not attempt to "capture" (construct an event) [nateberkopec, #518]


  • FEATURE: Raven now supports Breadcrumbs, though they aren't on by default. Check the docs for how to enable. [dcramer, #497]
  • FEATURE: Raven is no longer a singleton, you may have many Raven::Instances. [phillbaker, #504]
  • PERFORMANCE: Raven no longer uses a vendored JSON implementation. JSON processing and encoding should be up to 6x faster. [dcramer, #510]
  • BUGFIX: silence_ready now works for Rails apps. [ream88, #512]
  • BUGFIX: transport_failure_callback now works correctly [nateberkopec, #508]


  • The client exposes a last_event_id accessor at Raven.last_event_id. [dcramer, #493]
  • PERFORMANCE: Skip identical backtraces from "re-raised" exceptions [databus23, #499]
  • Support for ActionController::Live and Rails template streaming [nateberkopec, #486]


We (i.e. @nateberkopec) decided that raven-ruby has been stable enough for some time that it's time for a 1.0.0 release!


  • Dropped support for Ruby 1.8.7 [nateberkopec, #465]
  • raven-ruby no longer reports form POST data or web cookies by default. To re-enable this behavior, remove the appropriate Processors from your config (see docs or PR) [nateberkopec, #466]
  • UDP transport has been removed [dcramer, #472]


  • Improved performance [zanker]
  • Deprecated config.catch_debugged_exceptions, replaced with config.rails_report_rescued_exceptions. catch_debugged_exceptions will be removed in 1.1. [nateberkopec, #483]
  • Added config.transport_failure_callback. Provide a lambda or proc to this config setting, which will be called when Sentry returns a 4xx/5xx response. [nateberkopec, #484]
  • JRuby builds fixed [RobinDaugherty]
  • Fix problems with duplicate exceptions and Exception.cause [dcramer, #490]
  • Added Exception Context. Any Exception class can define a raven_context instance variable, which will be merged into any Event's context which contains this exception. [nateberkopec, #491]
  • Documentation from shaneog, squirly, dcramer, ehfeng, nateberkopec.


  • Fixed bug where return value of debug middleware was nil [eugeneius, #461]
  • Fixed a bug in checking catch_debugged_exceptions [greysteil, #458]
  • Fixed a deprecation warning for Rails 5 [Elektron1c97, #457]


  • DelayedJob integration fixed when last_error not present [dcramer, #454]
  • Release detection doesn't overwrite manual release setting in Rails [eugeneius, #450]
  • Deal properly with Cap 3.0/3.1 revision logs [timcheadle, #449]
  • Rails 5 support [nateberkopec, #423]


  • DelayedJob integration now also truncates last_error to 100 characters [nateberkopec]
  • Fix several issues with release detection - silence git log message, fix Capistrano detection [nateberkopec, kkumler]


  • Double exception reporting in Rails FIXED! [nateberkopec, #422]
  • Rails 3 users having issues with undefined runner fixed [nateberkopec, #428]
  • Sidekiq integration works properly when ActiveJob enabled [mattrobenolt]
  • Fix problems with invalid UTF-8 in exception messages [nateberkopec, #426]
  • Backtraces now consider "exe" directories part of the app [nateberkopec, #420]
  • Sinatra::NotFound now ignored by default [drcapulet, #383]
  • Release versions now properly set. Support for Heroku, Capistrano, and Git. [iloveitaly #377, Sija #380]
  • DelayedJob integration plays well with ActiveJob [kkumler, #378]
  • DelayedJob handlers now truncated [nateberkopec, #431]
  • Tons of code quality improvements [amatsuda, ddrmanxbxfr, pmbrent, cpizzaia, wdhorton, PepperTeasdale]


  • Reverted ActiveJob support due to conflicts [#368]


  • Fix ActiveJob support [greysteil, #367]


  • Remove Certifi and use default Ruby SSL config [zanker, #352]
  • Support for fingerprint [dcramer]
  • Improved documentation and tests around various attributes [dcramer]
  • Allow configurable integrations [cthornton]
  • Prevent recursion with Exception.cause [dcramer, #357]
  • Use empty hash if false-y value [GeekOnCoffee, #354]
  • Correct some behavior with at_exit error capturing [kratob, #355]
  • Sanitize matches whole words [alyssa, #361]
  • Expose more debugging info to active_job integration [tonywok, #365]
  • Capture exceptions swallowed by rails [robertclancy, #343]
  • Sanitize the query string when the key is a symbol [jason-o-matic, #349]
  • Moved documentation to [mitsuhiko]


  • Correct handling of JRuby stacktraces [dcramer]
  • Better handling of unreachable file contexts [dcramer, #335]
  • SSL is now default ON [dcramer, #338]
  • Capture exceptions in runner tasks [eugeneius, #339]
  • ActiveJob integration [lucasmazza, #327]
  • Cleanup return values of async blocks [lucasmazza, #344]
  • Better handling when sending NaN/Infinity JSON values [Alric, #345]
  • Fix issues with digest/md5 namespace [lsb, #346]


  • Fix a deprecation warning being shown in regular operation [ripta, #332]


  • DelayedJob integration now includes the job id [javawizard, #321]
  • Rails integration now works properly when you're not using all parts of Rails (e.g. just ActiveRecord) [lucasmazza, #323]
  • Bugfix CLI tool when async config is on [if1live, #324]
  • Fix and standardize tag hierarchies. Event tags > context tags > configuration tags in all cases. [JonathanBatten, #322 and eugeneius, #330]
  • Using #send on Client, Base, and Transports is now deprecated. See the commit (or the deprecation message) for their replacements. [nateberkopec, #326]
  • You can now disable credit-card-like value filtering. [codekitchen, #329]


  • Raven::Transports::HTTP#send returns the response now. [eagletmt, #317]
  • Filenames now work a lot better when you vendor your gems. [eugeneius, #316]
  • Fix raven:test issue when testing non-async configurations. [weynsee, #318]
  • Fix blockless Raven#capture. [dinosaurjr, #320]
  • Fix some log messages [eagletmt, #319]


  • Support exception chaining [javawizard, #312]
  • Add support for sending release version [eugeneius, #310]
  • Better status reports on configuration [faber, #309]
  • Client "send" method accepts an event in object or hash format - this will make it much easier to send Sentry events in a delayed job! [marclennox, #300]
  • Fix duplicate fields in SanitizeData [wyattisimo, #294]
  • Always preserve filename paths under project_root [eugeneius, #291]
  • Truncate project root prefixes from filenames [eagletmt, #278]
  • Renamed should_send callback to should_capture [nateberkopec, #270]
  • Silencing the ready message now happens in the config as normal [nateberkopec, #260]
  • Various internal refactorings see here


  • URL query parameters are now sanitized for sensitive data [pcorliss, #275]
  • Raven::Client can now use a proxy server when sending events to Sentry [dcramer, #277]
  • Raven::Client will now use a timed backoff strategy if the server fails [codekitchen, #267]
  • Automatic integration loading is now a lot less brittle [dcramer, handlers, #263, #264]
  • Fixed some issues with prefixes and DSN strings [nateberkopec, #259]
  • If Raven is initialized without a server config, it will no longer send events [nateberkopec, #258]
  • Slightly nicer credit-card-like number scrubbing [nateberkopec, #254]
  • Fix some exceptions not being caught by Sidekiq middleware [nateberkopec, #251]
  • Uncommon types are now encoded correctly [nateberkopec, #249]


  • Security fix where exponential numbers in specially crafted params could cause a CPU attack [dcramer, #262]


  • Integrations (Sidekiq, DelayedJob, etc) now load independently of your Gemfile order. [nateberkopec, #236]
  • Fixed bug where setting tags mutated your configuration [berg, #239]
  • Fixed several issues with SanitizeData and UTF8 sanitization processors [nateberkopec, #238, #241, #244]


  • You can now give additional fields to the SanitizeData processor. Values matched are replaced by the string mask (*********). Full documentation (and how to use with Rails config.filter_parameters) here. [jamescway, #232]
  • An additional processor has been added, though it isn't turned on by default: RemoveStacktrace. Use it to remove stacktraces from exception reports. [nateberkopec, #233]
  • Dependency on uuidtools has been removed. [nateberkopec, #231]


  • Fix some issues with the SanitizeData processor when processing strings that look like JSON


  • Raven now captures exceptions in Rake tasks automatically. [nateberkopec, troelskn #222]
  • There is now a configuration option called should_send that can be configured to use a Proc to determine whether or not an event should be sent to Sentry. This can be used to implement rate limiters, etc. [nateberkopec, #221]
  • Raven now includes three event processors by default instead of one, which can be turned on and off independently. [nateberkopec, #223]
  • Fixed bug with YAJL compatibility. [nateberkopec, #223]


  • Updated to RSpec 3.
  • Apply filters to encoded JSON data.


  • Events are now sent to Sentry in all environments. To change this behavior, either unset SENTRY_DSN or explicitly configure it via Raven.configure.
  • gzip is now the default encoding
  • Removed hashie dependency


  • Native support for Delayed::Job [pkuczynski, #176]
  • Updated to Sentry protocol version 5


  • Rails 2 support [sluukonen, #45]
  • Controller methods in Rails [jfirebaugh]
  • Runs by default in any environment other than test, cucumber, or development. [#81]