sentry-raven 2.1.3 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/.craft.yml +19 -0
  3. data/.scripts/bump-version.rb +5 -0
  4. data/CHANGELOG.md +703 -0
  5. data/Gemfile +37 -0
  6. data/Makefile +3 -0
  7. data/README.md +116 -18
  8. data/Rakefile +30 -0
  9. data/exe/raven +32 -0
  10. data/lib/raven/backtrace.rb +16 -6
  11. data/lib/raven/base.rb +17 -4
  12. data/lib/raven/breadcrumbs/{activesupport.rb → active_support_logger.rb} +9 -3
  13. data/lib/raven/breadcrumbs/logger.rb +2 -92
  14. data/lib/raven/breadcrumbs/sentry_logger.rb +73 -0
  15. data/lib/raven/breadcrumbs.rb +3 -1
  16. data/lib/raven/cli.rb +31 -43
  17. data/lib/raven/client.rb +39 -17
  18. data/lib/raven/configuration.rb +277 -37
  19. data/lib/raven/context.rb +17 -11
  20. data/lib/raven/core_ext/object/deep_dup.rb +57 -0
  21. data/lib/raven/core_ext/object/duplicable.rb +153 -0
  22. data/lib/raven/event.rb +172 -233
  23. data/lib/raven/helpers/deprecation_helper.rb +17 -0
  24. data/lib/raven/instance.rb +51 -25
  25. data/lib/raven/integrations/delayed_job.rb +18 -18
  26. data/lib/raven/integrations/rack-timeout.rb +11 -5
  27. data/lib/raven/integrations/rack.rb +36 -19
  28. data/lib/raven/integrations/rails/active_job.rb +52 -20
  29. data/lib/raven/integrations/rails/backtrace_cleaner.rb +29 -0
  30. data/lib/raven/integrations/rails/controller_transaction.rb +13 -0
  31. data/lib/raven/integrations/rails/overrides/debug_exceptions_catcher.rb +2 -2
  32. data/lib/raven/integrations/rails.rb +24 -8
  33. data/lib/raven/integrations/rake.rb +6 -1
  34. data/lib/raven/integrations/sidekiq/cleanup_middleware.rb +13 -0
  35. data/lib/raven/integrations/sidekiq/error_handler.rb +38 -0
  36. data/lib/raven/integrations/sidekiq.rb +6 -57
  37. data/lib/raven/interface.rb +2 -2
  38. data/lib/raven/interfaces/exception.rb +0 -2
  39. data/lib/raven/interfaces/http.rb +0 -2
  40. data/lib/raven/interfaces/message.rb +1 -1
  41. data/lib/raven/interfaces/single_exception.rb +0 -2
  42. data/lib/raven/interfaces/stack_trace.rb +19 -27
  43. data/lib/raven/linecache.rb +34 -17
  44. data/lib/raven/logger.rb +11 -18
  45. data/lib/raven/processor/cookies.rb +27 -7
  46. data/lib/raven/processor/http_headers.rb +18 -5
  47. data/lib/raven/processor/post_data.rb +16 -3
  48. data/lib/raven/processor/removecircularreferences.rb +12 -8
  49. data/lib/raven/processor/removestacktrace.rb +17 -6
  50. data/lib/raven/processor/sanitizedata.rb +88 -29
  51. data/lib/raven/processor/utf8conversion.rb +39 -14
  52. data/lib/raven/processor.rb +1 -1
  53. data/lib/raven/transports/http.rb +29 -21
  54. data/lib/raven/transports/stdout.rb +20 -0
  55. data/lib/raven/transports.rb +4 -8
  56. data/lib/raven/utils/context_filter.rb +42 -0
  57. data/lib/raven/utils/deep_merge.rb +6 -12
  58. data/lib/raven/utils/exception_cause_chain.rb +20 -0
  59. data/lib/raven/utils/real_ip.rb +1 -1
  60. data/lib/raven/utils/request_id.rb +16 -0
  61. data/lib/raven/version.rb +2 -2
  62. data/lib/sentry-raven-without-integrations.rb +6 -1
  63. data/lib/sentry_raven_without_integrations.rb +1 -0
  64. data/sentry-raven.gemspec +28 -0
  65. metadata +37 -103
  66. data/lib/raven/error.rb +0 -4
data/CHANGELOG.md ADDED
@@ -0,0 +1,703 @@
1
+ # Changelog
2
+
3
+ ## 3.1.2
4
+
5
+ - Fix Delayed::Plugins::Raven when job raises exception [#1057](https://github.com/getsentry/sentry-ruby/pull/1057)
6
+ - Merge hash instead of replacing the original value in user_context [#1064](https://github.com/getsentry/sentry-ruby/pull/1064)
7
+ - Don't exclude ActionView::MissingTemplate error by default [#1092](https://github.com/getsentry/sentry-ruby/pull/1092)
8
+ - Fix typo: much -> must for Raven::Event [#1106](https://github.com/getsentry/sentry-ruby/pull/1106)
9
+ - Fix undefined local variable or method logger [#1143](https://github.com/getsentry/sentry-ruby/pull/1143)
10
+ - Fixes [#1110](https://github.com/getsentry/sentry-ruby/issues/1110)
11
+ - fix format headers for sentry-raven [#1198](https://github.com/getsentry/sentry-ruby/pull/1198)
12
+ - Print deprecation message after sentry-raven is installed [#1206](https://github.com/getsentry/sentry-ruby/pull/1206)
13
+
14
+ ## 3.1.1
15
+
16
+ **Feature**
17
+
18
+ - Add request id to headers if exists ([#1033](https://github.com/getsentry/sentry-ruby/pull/1033))
19
+
20
+ - Allow blocks on user_context ([#1023](https://github.com/getsentry/sentry-ruby/pull/1023))
21
+
22
+ - Enable configurable rack environment recorded parameters ([#860](https://github.com/getsentry/sentry-ruby/pull/860))
23
+
24
+ - Remove ActiveJob keys for both Sidekiq and DelayedJob ([#898](https://github.com/getsentry/sentry-ruby/pull/898))
25
+
26
+ **Fix**
27
+
28
+ - Remove circular dependency in transport/http.rb ([#1035](https://github.com/getsentry/sentry-ruby/pull/1035))
29
+
30
+ ## 3.1.0
31
+
32
+ **Feature**
33
+
34
+ - Exclude all 4xx Rails errors ([#1004](https://github.com/getsentry/raven-ruby/pull/1004))
35
+
36
+ See the full list [here](https://github.com/getsentry/raven-ruby/blob/master/lib/raven/configuration.rb#L198-L219)
37
+
38
+ - Add some error context in `transport_failure_callback` ([#1003](https://github.com/getsentry/raven-ruby/pull/1003))
39
+
40
+ Before:
41
+
42
+ ```ruby
43
+ config.transport_failure_callback = lambda { |event|
44
+ AdminMailer.email_admins("Oh god, it's on fire!", event).deliver_later
45
+ }
46
+ ```
47
+
48
+ After:
49
+
50
+ ```ruby
51
+ config.transport_failure_callback = lambda { |event, error|
52
+ AdminMailer.email_admins("Oh god, it's on fire because #{error.message}!", event).deliver_later
53
+ }
54
+ ```
55
+
56
+ - Support cleaning up exception backtrace with customized backtrace_cleaner ([#1011](https://github.com/getsentry/raven-ruby/pull/1011))
57
+
58
+ The new config `backtrace_cleanup_callback` takes a lambda/proc object (default is `nil`) and will be called with exception's backtrace
59
+
60
+ ```ruby
61
+ Raven.configure do |config|
62
+ config.backtrace_cleanup_callback = lambda do |backtrace|
63
+ Rails.backtrace_cleaner.clean(backtrace)
64
+ end
65
+ end
66
+ ```
67
+
68
+ And with the Rails integration, it'll automatically use a customized `Raven::Rails::BacktraceCleaner` to clean up exception's backtrace. It's basically Rails 6's [backtrace cleaner](https://github.com/rails/rails/blob/master/railties/lib/rails/backtrace_cleaner.rb) but without silencers.
69
+
70
+ The main reason to add this cleaner is to remove template methods from the trace, e.g.
71
+
72
+ ```
73
+ app/views/welcome/view_error.html.erb in _app_views_welcome_view_error_html_erb__2807287320172182514_65600 at line 1
74
+ ```
75
+
76
+ will become
77
+
78
+ ```
79
+ app/views/welcome/view_error.html.erb at line 1
80
+ ```
81
+
82
+ This can help Sentry group issues more accurately. See [#957](https://github.com/getsentry/raven-ruby/issues/957) for more information about this.
83
+
84
+ If you don't want this change, you can disable it with:
85
+
86
+ ```ruby
87
+ Raven.configure do |config|
88
+ config.backtrace_cleanup_callback = nil
89
+ end
90
+ ```
91
+
92
+
93
+ - Make dsn value accessable from config ([#1012](https://github.com/getsentry/raven-ruby/pull/1012))
94
+
95
+ You can now access the dsn value via `Raven.configuration.dsn`
96
+
97
+ **Deprecation**
98
+
99
+ - Deprecate dasherized filenames ([#1006](https://github.com/getsentry/raven-ruby/pull/1006))
100
+
101
+ If you're using
102
+
103
+ ```ruby
104
+ gem 'sentry-raven', require: 'sentry-raven-without-integrations'
105
+ # or
106
+ require "sentry-raven-without-integrations"
107
+ ```
108
+
109
+ you will start seeing deprecation warnings. Please change them into
110
+
111
+ ```ruby
112
+ gem 'sentry-raven', require: 'sentry_raven_without_integrations'
113
+ # or
114
+ require "sentry_raven_without_integrations"
115
+ ```
116
+
117
+ - Unify breadcrumb loggers activation ([#1016](https://github.com/getsentry/raven-ruby/pull/1016))
118
+
119
+ Currently, we activate our breadcrumb loggers differently:
120
+
121
+ ```ruby
122
+ require "raven/breadcrumbs/sentry_logger"
123
+ Raven.configuration.rails_activesupport_breadcrumbs = true
124
+ ```
125
+
126
+ It's not a nice user interface, so this PR adds a new configuration
127
+ option `breadcrumbs_logger` to improve this:
128
+
129
+ ```ruby
130
+ Raven.configuration.breadcrumbs_logger = :sentry_logger
131
+ Raven.configuration.breadcrumbs_logger = :active_support_logger
132
+ Raven.configuration.breadcrumbs_logger = [:sentry_logger, :active_support_logger]
133
+ ```
134
+
135
+ Please migrate to the new activation apporach, otherwise you'll see depraction warnings. And old ones will be dropped in version 4.0.
136
+
137
+ **Refactor**
138
+
139
+ - Accept non-string message in Event.from_exception ([#1005](https://github.com/getsentry/raven-ruby/pull/1005))
140
+ - Refactor event initialization ([#1010](https://github.com/getsentry/raven-ruby/pull/1010))
141
+ - Refactor sidekiq integration ([#1019](https://github.com/getsentry/raven-ruby/pull/1019))
142
+
143
+ **Fix**
144
+
145
+ - Replace sys_command usages in context.rb ([#1017](https://github.com/getsentry/raven-ruby/pull/1017))
146
+ - Fix merge error from rack-timeout raven_context on old releases ([#1007](https://github.com/getsentry/raven-ruby/pull/1007))
147
+ - Return value of `rescue_with_handler` when intercepting ActiveJob exceptions ([#1027](https://github.com/getsentry/raven-ruby/pull/1027))
148
+
149
+ ## 3.0.4
150
+
151
+ - fix: Don't log warning messages when it doesn't need to (#1000)
152
+ - fix: Revert "Refactor Raven::Client class" (#1002)
153
+
154
+ ## 3.0.3
155
+
156
+ - fix: Ensure Processor::Cookie can run after Processor::RemoveCircularReferences (#996)
157
+ - fix: Avoid mutating user passed in options (#994)
158
+ - fix: Fix/Refactor Raven::Cli (#989)
159
+ - ref: Refactor Raven::Client class (#995)
160
+ - It adds `Event#message_from_exception` and `Event#log_message` interfaces
161
+
162
+ ## 3.0.2
163
+
164
+ - fix: Add gem target for craft
165
+
166
+ ## 3.0.1
167
+
168
+ - fix: Improve SanitizeData processor (#984)
169
+ - fix: Masking cookies as key/pair instead of a single string (#983)
170
+ - fix: Transports classes' requiring issue (#986)
171
+ - fix: Frozen string issues (#977)
172
+ - feat: Officially support Rails 6 (#982)
173
+
174
+ 3.0.0
175
+ ----
176
+
177
+ * SDK now requires Ruby >= 2.3
178
+ * REF: Retain any literal "HTTP-" in header names [@elliterate, #950]
179
+ * REF: Delete JSON spec for recursive hashes [@ksylvest, #952]
180
+ * FEAT: Bump faraday version to latest [@ksylvest, #946]
181
+
182
+ 2.13.0
183
+ ----
184
+
185
+ * FIX: Sanitize event data before they are sent to async job. [@edariedl, #895]
186
+ * FIX: Serialization MongoDB ObjectId to JSON problem with gem delayed_job_mongoid conjunction. [@eagleas, #935]
187
+ * FEAT: Skip ActiveJob integration if there is a better one [@fsateler, #909]
188
+ * FIX: Bugs with send_event in asynchronous mode (#940) [@cstyles, #940]
189
+
190
+ 2.12.3
191
+ ----
192
+
193
+ * FIX: crash when Process.wait is used [@asBrettisay, #895]
194
+
195
+ 2.12.2
196
+ ----
197
+
198
+ * FIX: return tags/extra for [@rivayama, #931]
199
+
200
+ 2.12.1
201
+ ----
202
+
203
+ * FIX: undefined method `[]' for nil:NilClass [@HazAT, #932]
204
+
205
+ 2.12.0
206
+ ----
207
+
208
+ * FIX: Remove duplicate message when exception is emitted
209
+ * FIX: Frozen string bug in utf8conversation
210
+ * FEATURE: Allow block on tags_context and extra_context
211
+
212
+ 2.11.3
213
+ ----
214
+
215
+ * FIX: infinite backoff under pressure [@Bonias, #886]
216
+
217
+ 2.11.2
218
+ ----
219
+
220
+ * REF: Warn on 4xx error [@iloveitaly, #862]
221
+
222
+ 2.11.1
223
+ ----
224
+
225
+ * FIX: Call `to_s` on breadcrumb message [@halkeye, #914]
226
+
227
+ 2.11.0
228
+ ----
229
+
230
+ * FEATURE: Prepend the transaction around_action so libraries with controllers can alter the value. [@drcapulet, #887]
231
+
232
+ 2.10.0
233
+ -----
234
+
235
+ * FEATURE: Added support for `SENTRY_ENVIRONMENT` [@mtsmfm, #910]
236
+ * FEATURE: Added support for `SENTRY_RELEASE` [@coorasse, #911]
237
+
238
+ 2.9.0
239
+ -----
240
+
241
+ * FEATURE: Added `config.inspect_exception_causes_for_exclusion`. Determines if the exception cause should be inspected for `config.excluded_exceptions` option. [@effron, #872]
242
+
243
+
244
+ 2.8.0
245
+ -----
246
+
247
+ * FEATURE: Added `config.before_send`. Provide a lambda or proc to this config setting, which will be `call`ed before sending an event to Sentry. Receives `event` and `hint` as parameters. `hint` is a hash `{:exception => ex | nil, :message => message | nil}`. [@hazat, #882]
248
+
249
+ 2.7.4
250
+ -----
251
+
252
+ * BUGFIX: Correctly handle public only DSNs [@mitsuhiko, #847]
253
+ * BUGFIX: context attributes with nil raised error [@joker-777, 824]
254
+ * BUGFIX: Suppress warning about enabling dyno metadata in Heroku CI [@meganemura, #833]
255
+
256
+ 2.7.3
257
+ -----
258
+
259
+ * BUGFIX: Fix proxy settings for Faraday [@Strnadj, #820]
260
+ * BUGFIX: Fix duplicated events in ActiveJob w/DelayedJob and Sidekiq [@BrentWheeldon, #815]
261
+
262
+ 2.7.2
263
+ -----
264
+
265
+ * BUGFIX: GlobalIDs are now displayed correctly in Sidekiq contexts [@louim, #798]
266
+ * BUGFIX: If git is not installed, fail silently during release detection [@nateberkopec]
267
+ * BUGFIX: We do not support rack-timeout <= 0.2, fix errors when incompat version present [@nateberkopec]
268
+ * BUGFIX: Put cookies in the correct spot of event [@nateberkopec, #812]
269
+ * BUGFIX: Exception context is deep_merged [@janklimo, #782]
270
+
271
+ 2.7.1
272
+ -----
273
+
274
+ * BUGFIX: Fixed LocalJumpError in Rails controllers [@nateberkopec w/@frodsan, #774]
275
+
276
+ 2.7.0
277
+ -----
278
+
279
+ * FEATURE: Add random sampling. [@nateberkopec, #734]
280
+ * FEATURE: Transactions. See Context docs for usage. [@nateberkopec, #743]
281
+ * 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]
282
+
283
+ * BUGFIX: Fix wrapped classnames in old versions of Sidekiq and ActiveJob [@nateberkopec, #702]
284
+ * BUGFIX: Server names on Heroku were pretty useless before - now they follow the dyno name ("worker.1", "web.2") [@nateberkopec, #703]
285
+ * 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]
286
+ * BUGFIX: Binary conversion to UTF-8 when binary is frozen is fixed [@nateberkopec, #757]
287
+ * BUGFIX: Our credit-card regex now matches Sentry's server behavior, which means it does not censor milliseconds since the epoch [@nateberkopec, #771]
288
+
289
+ * REFACTOR: We now use an updated port of Rails' deep_merge which should be 5-10% faster [@nateberkopec, #770]
290
+ * REFACTOR: Tests have been cleaned up, and now run in random order. [@nateberkopec]
291
+ * REFACTOR: Raven::Event has been refactored a bit [@nateberkopec]
292
+
293
+ 2.6.3
294
+ -----
295
+
296
+ * BUGFIX: Fixed typo in the Heroku warning [@greysteil, #728]
297
+ * BUGFIX: Swallow IOErrors when reading the Rack request body [@nateberkopec]
298
+ * BUGFIX: Fix invalid UTF-8/circular references when using async [@nateberkopec, #730]
299
+
300
+ 2.6.2
301
+ -----
302
+
303
+ * BUGFIX: If using the Sidekiq or DelayedJob adapters with ActiveJob, ActiveJob wouldn't re-raise upon capturing an exception. [@nateberkopec, 5b02ad4ff2]
304
+
305
+ * KNOWN ISSUE: When using `async`, Rack integration is not thread-safe [#721]
306
+ * KNOWN ISSUE: When using `async`, encoding errors may be raised [#725]
307
+
308
+ 2.6.1
309
+ -----
310
+
311
+ * BUGFIX: Fix cases where ActionDispatch::RemoteIP would blow up during event creation [@cmoylan, #722]
312
+ * BUGFIX: In ActiveJob, don't report exceptions which can be rescued by rescue_from handlers [@bensheldon, #719]
313
+
314
+ 2.6.0
315
+ -----
316
+
317
+ * FEATURE: raven-ruby now marks itself as the "ruby" logger by default, to match raven-js behavior [@nateberkopec]
318
+ * FEATURE: You may now override the default sanitization parameters [#712, @nateberkopec]
319
+ * FEATURE: Breadcrumb buffers are now publicly accessible [#686, @nateberkopec]
320
+ * FEATURE: We yell at you now if you're using Heroku but don't have runtime-dyno-metadata enabled [#715, @nateberkopec]
321
+ * FEATURE: project_root will always be set, regardless of framework [#716, @nateberkopec]
322
+
323
+ * BUGFIX: Request body and message limits now match Sentry server defaults [#714, @nateberkopec]
324
+ * BUGFIX: Sidekiq context now works as expected [#713, @nateberkopec]
325
+ * BUGFIX: Capture exceptions in ActiveJob when not using Sidekiq adapter [#709, #671, @nateberkopec]
326
+
327
+ 2.5.3
328
+ -----
329
+
330
+ * BUGFIX: Deal properly with ASCII_8BIT/BINARY encodings [#689, #696, @nateberkopec]
331
+
332
+ 2.5.2
333
+ -----
334
+
335
+ * BUGFIX: raven test executable should be available [#691, @nateberkopec]
336
+ * BUGFIX: Fix stack overflow when calling Backtrace#inspect [#690, @nateberkopec]
337
+
338
+ * KNOWN ISSUE: Character encoding errors [#689]
339
+
340
+ 2.5.1
341
+ -----
342
+
343
+ * BUGFIX: Fix case where Pathname objects are on the load path [@nateberkopec]
344
+ * BUGFIX: Fix bad UTF-8 characters in the URL querystring [@nateberkopec]
345
+ * BUGFIX: Fix case where rack-timeout could be required twice [@nateberkopec]
346
+
347
+ * REFACTOR: Slightly cleaner character encoding fixing [@nateberkopec, @bf4]
348
+
349
+ 2.5.0
350
+ -----
351
+
352
+ * FEATURE: Greatly improved performance (2-3x faster capture) [@nateberkopec]
353
+ * FEATURE: Frozen objects are now sanitized [@nateberkopec]
354
+
355
+ * BUGFIX: Grabbing Sidekiq context from "wrapped" classes works [@nateberkopec]
356
+ * BUGFIX: Relaxed Faraday dependency [@nateberkopec]
357
+
358
+ 2.4.0
359
+ -----
360
+
361
+ * FEATURE: Allow customization of the Faraday adapter [#639, @StupidCodeFactory]
362
+
363
+ * BUGFIX: Report the SDK name as "raven-ruby", not "sentry-raven" [#641, @bretthoerner]
364
+ * BUGFIX: Sidekiq jobs now clear context/breadcrumbs properly between jobs [#637, @drewish]
365
+ * BUGFIX: Overriding the logger in Rails wasn't working [#638, @eugeneius]
366
+
367
+ 2.3.1
368
+ -----
369
+
370
+ * BUGFIX: Backtrace parser fixed for JRuby 9k [#619, @the-michael-toy]
371
+ * BUGFIX: Rake tasks should show the correct task name [#621, @Bugagazavr]
372
+ * BUGFIX: Formatted messages work if params are `nil` [#625, @miyachik]
373
+ * BUGFIX: Backtrace logger on failed event send works with custom formatters [#627, @chulkilee]
374
+ * BUGFIX: Fix typo that caused Version headers to not be corrected [#628, @nateberkopec]
375
+ * BUGFIX: Faraday errors are more descriptive when no server response [#629, @drewish]
376
+ * BUGFIX: DelayedJob handler no longer truncates unneccessarily short [#633, @darrennix]
377
+ * BUGFIX: Fix several processors not working correctly w/async jobs stored in backends like Redis [#634, @nateberkopec]
378
+
379
+ 2.3.0
380
+ -----
381
+
382
+ * CHANGE: Log levels of some messages have been changed. Raven logger is INFO level by default. [@nateberkopec]
383
+ * BUGFIX: Exception messages are now limited to 10,000 bytes. [#617, @mattrobenolt]
384
+
385
+ 2.2.0
386
+ -----
387
+
388
+ * ENHANCEMENT: Sentry server errors now return some information about the response headers. [#585, @rafadc]
389
+ * 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]
390
+ * 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
391
+ * 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]
392
+ * BUGFIX: Raven no longer emits anything to STDOUT if a system command fails [#596, @nateberkopec]
393
+ * ENHANCEMENT: Raven now tells you exactly why it will not send an event in the logs [#602, @nateberkopec]
394
+
395
+ 2.1.4
396
+ -----
397
+
398
+ * FIX: Remove `contexts` key, because it was disabling browser auto-tagging [#587, @nateberkopec]
399
+
400
+ 2.1.3
401
+ -----
402
+
403
+ * Move `os` context key to `server_os` [@nateberkopec]
404
+
405
+ 2.1.2
406
+ -----
407
+
408
+ * FIX: `sys_command` not falling back to Windows commands properly, logging output [@jmalves, @nateberkopec]
409
+
410
+ 2.1.1
411
+ -----
412
+
413
+ * FIX: Message params should accept nil [@jmalves, #570]
414
+
415
+ 2.1.0
416
+ -----
417
+
418
+ ENHANCEMENTS:
419
+
420
+ * Your client version is now included in all Events. [@nateberkopec, #559]
421
+ * OS and Ruby runtime information now included in all Events. [@nateberkopec, #560]
422
+ * Transport errors (like Sentry 4XX errors) now raise Sentry::Error, not Faraday errors. [@nateberkopec, #565]
423
+ * Sidekiq integration is streamlined and improved. Supports Sidekiq 3.x and up. [@nateberkopec, #555]
424
+
425
+ FIXES:
426
+
427
+ * Heroku release detection is improved and more accurate. You must `heroku labs:enable runtime-dyno-metadata` for it to work. [@nateberkopec, #566]
428
+
429
+ 2.0.2
430
+ -----
431
+
432
+ * FIX: Don't set up Rack-Timeout middleware. [@janraasch, #558]
433
+
434
+ 2.0.1
435
+ -----
436
+
437
+ * FIX: UUIDs were being rejected by Sentry as being too long [@nateberkopec]
438
+
439
+ 2.0.0
440
+ -----
441
+
442
+ BREAKING CHANGES:
443
+
444
+ * 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]
445
+ * Several deprecated accessors have been removed [@nateberkopec, #543]
446
+ * You can no longer pass an object which cannot be called to `should_capture` [@nateberkopec, #542]
447
+
448
+ ENHANCEMENTS:
449
+
450
+ * Rack::Timeout exceptions are now fingerprinted by URL, making them more useful [@nateberkopec, #538]
451
+ * 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]
452
+
453
+ FIXES:
454
+
455
+ * User/Event IP addresses are now set more accurately. This will fix many issues with local proxy setups (nginx, etc). [@nateberkopec, #546]
456
+ * We now generate a real UUID in the correct format for Event IDs [@nateberkopec, #549]
457
+ * If `async` sending fails, we retry with sync sending. [@nateberkopec, #548]
458
+ * 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]
459
+
460
+ OTHER:
461
+
462
+ * Codebase cleaned up with Rubocop [@nateberkopec, #544]
463
+
464
+ 1.2.3
465
+ -----
466
+
467
+ * ENHANCEMENT: Send the current environment to Sentry [@dcramer, #530]
468
+ * BUGFIX: Fix all warnings emitted by Ruby verbose mode [@nateberkopec]
469
+ * BUGFIX: Fix compat with `log4r` [@nateberkopec, #535]
470
+
471
+ 1.2.2
472
+ -----
473
+
474
+ * BUGFIX: NameError in DelayedJob integration. [janraasch, #525]
475
+
476
+ 1.2.1
477
+ -----
478
+
479
+ * BUGFIX: Context clearing should now work properly in DelayedJob and Sidekiq. Also, we properly clear context if Sentry causes an exception. [nateberkopec, #520]
480
+ * 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]
481
+
482
+ 1.2.0
483
+ -----
484
+
485
+ * FEATURE: Raven now supports Breadcrumbs, though they aren't on by default. Check the docs for how to enable. [dcramer, #497]
486
+ * FEATURE: Raven is no longer a singleton, you may have many `Raven::Instance`s. [phillbaker, #504]
487
+ * PERFORMANCE: Raven no longer uses a vendored JSON implementation. JSON processing and encoding should be up to 6x faster. [dcramer, #510]
488
+ * BUGFIX: silence_ready now works for Rails apps. [ream88, #512]
489
+ * BUGFIX: transport_failure_callback now works correctly [nateberkopec, #508]
490
+
491
+ 1.1.0
492
+ -----
493
+
494
+ * The client exposes a ``last_event_id`` accessor at `Raven.last_event_id`. [dcramer, #493]
495
+ * PERFORMANCE: Skip identical backtraces from "re-raised" exceptions [databus23, #499]
496
+ * Support for ActionController::Live and Rails template streaming [nateberkopec, #486]
497
+
498
+ 1.0.0
499
+ -----
500
+
501
+ 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!
502
+
503
+ BREAKING CHANGES:
504
+
505
+ - Dropped support for Ruby 1.8.7 [nateberkopec, #465]
506
+ - `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]
507
+ - UDP transport has been removed [dcramer, #472]
508
+
509
+ OTHER CHANGES:
510
+
511
+ - Improved performance [zanker]
512
+ - Deprecated `config.catch_debugged_exceptions`, replaced with `config.rails_report_rescued_exceptions`. `catch_debugged_exceptions` will be removed in 1.1. [nateberkopec, #483]
513
+ - Added `config.transport_failure_callback`. Provide a lambda or proc to this config setting, which will be `call`ed when Sentry returns a 4xx/5xx response. [nateberkopec, #484]
514
+ - JRuby builds fixed [RobinDaugherty]
515
+ - Fix problems with duplicate exceptions and `Exception.cause` [dcramer, #490]
516
+ - 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]
517
+ + Documentation from shaneog, squirly, dcramer, ehfeng, nateberkopec.
518
+
519
+ 0.15.6
520
+ ------
521
+
522
+ - Fixed bug where return value of debug middleware was nil [eugeneius, #461]
523
+ - Fixed a bug in checking `catch_debugged_exceptions` [greysteil, #458]
524
+ - Fixed a deprecation warning for Rails 5 [Elektron1c97, #457]
525
+
526
+ 0.15.5
527
+ ------
528
+
529
+ - DelayedJob integration fixed when last_error not present [dcramer, #454]
530
+ - Release detection doesn't overwrite manual release setting in Rails [eugeneius, #450]
531
+ - Deal properly with Cap 3.0/3.1 revision logs [timcheadle, #449]
532
+ - Rails 5 support [nateberkopec, #423]
533
+
534
+ 0.15.4
535
+ ------
536
+
537
+ - DelayedJob integration now also truncates last_error to 100 characters [nateberkopec]
538
+ - Fix several issues with release detection - silence git log message, fix Capistrano detection [nateberkopec, kkumler]
539
+
540
+
541
+ 0.15.3
542
+ ------
543
+
544
+ - Double exception reporting in Rails FIXED! [nateberkopec, #422]
545
+ - Rails 3 users having issues with undefined runner fixed [nateberkopec, #428]
546
+ - Sidekiq integration works properly when ActiveJob enabled [mattrobenolt]
547
+ - Fix problems with invalid UTF-8 in exception messages [nateberkopec, #426]
548
+ - Backtraces now consider "exe" directories part of the app [nateberkopec, #420]
549
+ - Sinatra::NotFound now ignored by default [drcapulet, #383]
550
+ - Release versions now properly set. Support for Heroku, Capistrano, and Git. [iloveitaly #377, Sija #380]
551
+ - DelayedJob integration plays well with ActiveJob [kkumler, #378]
552
+ - DelayedJob handlers now truncated [nateberkopec, #431]
553
+ - Tons of code quality improvements [amatsuda, ddrmanxbxfr, pmbrent, cpizzaia, wdhorton, PepperTeasdale]
554
+
555
+ 0.15.2
556
+ ------
557
+
558
+ - Reverted ActiveJob support due to conflicts [#368]
559
+
560
+ 0.15.1
561
+ ------
562
+
563
+ - Fix ActiveJob support [greysteil, #367]
564
+
565
+ 0.15.0
566
+ ------
567
+
568
+ - Remove Certifi and use default Ruby SSL config [zanker, #352]
569
+ - Support for ``fingerprint`` [dcramer]
570
+ - Improved documentation and tests around various attributes [dcramer]
571
+ - Allow configurable integrations [cthornton]
572
+ - Prevent recursion with ``Exception.cause`` [dcramer, #357]
573
+ - Use empty hash if false-y value [GeekOnCoffee, #354]
574
+ - Correct some behavior with at_exit error capturing [kratob, #355]
575
+ - Sanitize matches whole words [alyssa, #361]
576
+ - Expose more debugging info to active_job integration [tonywok, #365]
577
+ - Capture exceptions swallowed by rails [robertclancy, #343]
578
+ - Sanitize the query string when the key is a symbol [jason-o-matic, #349]
579
+ - Moved documentation to docs.getsentry.com [mitsuhiko]
580
+
581
+ 0.14.0
582
+ ------
583
+
584
+ - Correct handling of JRuby stacktraces [dcramer]
585
+ - Better handling of unreachable file contexts [dcramer, #335]
586
+ - SSL is now default ON [dcramer, #338]
587
+ - Capture exceptions in runner tasks [eugeneius, #339]
588
+ - ActiveJob integration [lucasmazza, #327]
589
+ - Cleanup return values of async blocks [lucasmazza, #344]
590
+ - Better handling when sending NaN/Infinity JSON values [Alric, #345]
591
+ - Fix issues with digest/md5 namespace [lsb, #346]
592
+
593
+ 0.13.3
594
+ ------
595
+
596
+ - Fix a deprecation warning being shown in regular operation [ripta, #332]
597
+
598
+ 0.13.2
599
+ ------
600
+
601
+ - DelayedJob integration now includes the job id [javawizard, #321]
602
+ - Rails integration now works properly when you're not using all parts of Rails (e.g. just ActiveRecord) [lucasmazza, #323]
603
+ - Bugfix CLI tool when async config is on [if1live, #324]
604
+ - Fix and standardize tag hierarchies. Event tags > context tags > configuration tags in all cases. [JonathanBatten, #322 and eugeneius, #330]
605
+ - Using #send on Client, Base, and Transports is now deprecated. See [the commit](https://github.com/getsentry/raven-ruby/commit/9f482022a648ab662c22177ba24fd2e2b6794c34) (or the deprecation message) for their replacements. [nateberkopec, #326]
606
+ - You can now disable credit-card-like value filtering. [codekitchen, #329]
607
+
608
+ 0.13.1
609
+ ------
610
+
611
+ - Raven::Transports::HTTP#send returns the response now. [eagletmt, #317]
612
+ - Filenames now work a lot better when you vendor your gems. [eugeneius, #316]
613
+ - Fix raven:test issue when testing non-async configurations. [weynsee, #318]
614
+ - Fix blockless Raven#capture. [dinosaurjr, #320]
615
+ - Fix some log messages [eagletmt, #319]
616
+
617
+ 0.13.0
618
+ ------
619
+
620
+ - Support exception chaining [javawizard, #312]
621
+ - Add support for sending release version [eugeneius, #310]
622
+ - Better status reports on configuration [faber, #309]
623
+ - 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]
624
+ - Fix duplicate fields in SanitizeData [wyattisimo, #294]
625
+ - Always preserve filename paths under project_root [eugeneius, #291]
626
+ - Truncate project root prefixes from filenames [eagletmt, #278]
627
+ - Renamed should_send callback to should_capture [nateberkopec, #270]
628
+ - Silencing the ready message now happens in the config as normal [nateberkopec, #260]
629
+ - Various internal refactorings [see here](https://github.com/getsentry/raven-ruby/compare/0-12-stable...master)
630
+
631
+ 0.12.3
632
+ ------
633
+
634
+ - URL query parameters are now sanitized for sensitive data [pcorliss, #275]
635
+ - Raven::Client can now use a proxy server when sending events to Sentry [dcramer, #277]
636
+ - Raven::Client will now use a timed backoff strategy if the server fails [codekitchen, #267]
637
+ - Automatic integration loading is now a lot less brittle [dcramer, handlers, #263, #264]
638
+ - Fixed some issues with prefixes and DSN strings [nateberkopec, #259]
639
+ - If Raven is initialized without a server config, it will no longer send events [nateberkopec, #258]
640
+ - Slightly nicer credit-card-like number scrubbing [nateberkopec, #254]
641
+ - Fix some exceptions not being caught by Sidekiq middleware [nateberkopec, #251]
642
+ - Uncommon types are now encoded correctly [nateberkopec, #249]
643
+
644
+ 0.12.2
645
+ ------
646
+
647
+ - Security fix where exponential numbers in specially crafted params could cause a CPU attack [dcramer, #262]
648
+
649
+ 0.12.1
650
+ ------
651
+
652
+ - Integrations (Sidekiq, DelayedJob, etc) now load independently of your Gemfile order. [nateberkopec, #236]
653
+ - Fixed bug where setting tags mutated your configuration [berg, #239]
654
+ - Fixed several issues with SanitizeData and UTF8 sanitization processors [nateberkopec, #238, #241, #244]
655
+
656
+ 0.12.0
657
+ ------
658
+
659
+ - 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](https://docs.sentry.io/platforms/ruby/config/). [jamescway, #232]
660
+ - 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]
661
+ - Dependency on `uuidtools` has been removed. [nateberkopec, #231]
662
+
663
+ 0.11.2
664
+ ------
665
+
666
+ - Fix some issues with the SanitizeData processor when processing strings that look like JSON
667
+
668
+
669
+ 0.11.1
670
+ ------
671
+
672
+ - Raven now captures exceptions in Rake tasks automatically. [nateberkopec, troelskn #222]
673
+ - 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]
674
+ - Raven now includes three event processors by default instead of one, which can be turned on and off independently. [nateberkopec, #223]
675
+ - Fixed bug with YAJL compatibility. [nateberkopec, #223]
676
+
677
+ 0.10.1
678
+ ------
679
+
680
+ - Updated to RSpec 3.
681
+ - Apply filters to encoded JSON data.
682
+
683
+
684
+ 0.10.0
685
+ ------
686
+
687
+ - Events are now sent to Sentry in all environments. To change this behavior, either unset ```SENTRY_DSN``` or explicitly configure it via ```Raven.configure```.
688
+ - gzip is now the default encoding
689
+ - Removed hashie dependency
690
+
691
+
692
+ 0.9.0
693
+ -----
694
+
695
+ - Native support for Delayed::Job [pkuczynski, #176]
696
+ - Updated to Sentry protocol version 5
697
+
698
+
699
+ 0.5.0
700
+ -----
701
+ - Rails 2 support [sluukonen, #45]
702
+ - Controller methods in Rails [jfirebaugh]
703
+ - Runs by default in any environment other than test, cucumber, or development. [#81]