Sentry SDK v4 is no longer supported. We recommend migrating to the latest version of the SDK. You can start by
migrating from v4 of the SDK to v5 by following the migration guide.
- [utils] fix: Prevent decycling from referencing original objects
- [utils] fix: Preserve correct name when wrapping
- [raven-node] test: Update raven-node tests for new node version
- [utils] fix: Normalize value before recursively walking down the tree
- [browser] ref: Check whether client is enabled for reportDialog and log instead of throw
- [utils] fix: Preserve function prototype when filling
- [utils] fix: use a static object as fallback of the global object
- [node] feat: Read from
SENTRY_RELEASEandSENTRY_ENVIRONMENTif present
- [utils] fix: Patch
tslib_1__defaultregression and add additional tests around it
- [loader] fix: Detect if
inithas been called in an onload callback - [core] fix: Use correct frame for
inboundFiltermethods - [core] ref: Multiple
initcalls have been changed to "latest wins" instead of "ignore all after first" - [core] feat: Introduce
flushmethod which currently is an alias forclose - [node] feat: If
options.dsnis undefined when callinginitwe try to load it fromprocess.env.SENTRY_DSN - [node] feat: Expose
flushandcloseonSentry.* - [node] feat: Add
sentryto express error handler response which contains theevent_idof the error
- [browser] fix:
DOMErrorandDOMExceptionshould be error level events - [browser] ref: Log error if Ember/Vue instances are not provided
- [utils] fix: Dont mutate original input in
decycleutil function - [utils] fix: Skip non-enumerable properties in
decycleutil function - [utils] ref: Update
wrapmethod to hide internal Sentry flags - [utils] fix: Make internal Sentry flags non-enumerable in
fillutil
- [browser]: fix: Fix UnhandledPromise: [object Object]
- [core]: fix: Error in extraErrorData integration where event would not be send in case of non assignable object property.
- [hub]: feat: Support non async event processors
- [utils] fix: Decycling for objects to no produce an endless loop
- [browser] fix:
<unlabeled>event for unhandledRejection - [loader] fix: Handle unhandledRejection the same way as it would be thrown
- [utils] fix: Don't npm ignore esm for utils
- [core] feat: Deprecate
captureEvent, prefersendEventfor transports.sendEventnow takes a string (body) instead ofEventobject. - [core] feat: Use correct buffer for requests in transports
- [core] feat: (beta) provide esm build
- [core] ref: Change way how transports are initialized
- [core] ref: Rename
RequestBuffertoPromiseBuffer, also introduce limit - [core] ref: Make sure that captureMessage input is a primitive
- [core] fix: Check if value is error object in extraErrorData integration
- [browser] fix: Prevent empty exception values
- [browser] fix: Permission denied to access property name
- [node] feat: Add file cache for providing pre/post context in frames
- [node] feat: New option
frameContextLines, if set to0we do not provide source code pre/post context, default is7lines pre/post - [utils] fix: Use custom serializer inside
serializemethod to prevent circular references
- [node] Port memory-leak tests from raven-node
- [core] feat: ExtraErrorData integration
- [hub] ref: use safeNormalize on any data we store on Scope
- [utils] feat: Introduce safeNormalize util method to unify stored data
- [loader] Support multiple onLoad callbacks
- [core] Bump dependencies to remove flatmap-stream
- [node] HTTP(S) Proxy support
- [node] Expose lastEventId method
- [browser] Correctly detect and remove wrapped function frames
- [utils] fix: Broken tslib import - Fixes #1757
- [build] ref: Dont emit TypeScript helpers in every file separately
- [node] fix: Move stacktrace types from devDeps to deps as its exposed
- [browser] misc: Added browser examples page
- [browser] fix: Typings for npm package
- [browser] ref: Breadcrumbs will now be logged only to a max object depth of 2
- [core] feat: Filter internal Sentry errors from transports/sdk
- [core] ref: Better fingerprint handling
- [node] ref: Expose Parsers functions
- [browser]: Move
ReportingObserverintegration to "pluggable" making it an opt-in integration - [utils]: Use node internal
path/fsforstore.ts
- [browser]: Use
withScopeinEmberintegration instead of manualpushPop/popScopecalls - [browser] fix: rethrow errors in testing mode with
Emberintegration (#1696) - [browser/node]: Fix
LinkedErrorsintegration to send exceptions in correct order and take main exception into thelimitcount - [browser/node] ref: Re-export
addGlobalEventProcessor - [core]: Fix
InboundFiltersintegration so that it reads and merge configuration from theinitcall as well
- [utils]:
bundlerSafeRequirerenamed todynamicRequirenow takes two arguments, first is should bemodule, secondrequest/moduleName.
- [core]: Several internal fixes regarding integration, exports and domain.
- [core]: "De-deprecate" name of
Integrationinterface. - [node]: Export
parseRequestonHandlers.
- [core] Invert logger logic the explicitly enable it.
- [hub] Require
domainingetCurrentHubin try/catch - Fixed #1670 - [hub] Removed exposed getter on the Scope.
- [browser] fix: Make
addBreadcrumbsync internally,beforeBreadcrumbis now only sync - [browser] fix: Remove internal
consoleguard inbeforeBreadcrumb - [core] feat: Integrations now live on the
Client. This means that when binding a new Client to theHubthe client itself can decide which integration should run. - [node] ref: Simplify Node global handlers code
- [browser] fix: Use our own path utils instead of node built-ins
- [node] fix: Add colon to node base protocol to follow http module
- [utils] feat: Create internal path module
- [browser] feat: Better mechanism detection in TraceKit
- [browser] fix: Change loader to use getAttribute instead of dataset
- [browser] fix: Remove trailing commas from loader for IE10/11
- [browser] ref: Include md5 lib and transcript it to TypeScript
- [browser] ref: Remove all trailing commas from integration tests cuz IE10/11
- [browser] ref: Remove default transaction from browser
- [browser] ref: Remove redundant debug.ts file from browser integrations
- [browser] test: Fix all integration tests in IE10/11 and Android browsers
- [browser] test: Run integration tests on SauceLabs
- [browser] test: Stop running raven-js saucelabs tests in favour of @sentry/browser
- [browser] test: Store breadcrumbs in the global variable in integration tests
- [browser] test: Update polyfills for integration tests
- [build] ref: Use Mocha v4 instead of v5, as it's not supporting IE10
- [core] feat: Introduce stringify and debugger options in Debug integration
- [core] feat: RewriteFrames pluggable integration
- [core] feat: getRequestheaders should handle legacy DSNs
- [core] fix: correct sampleRate behaviour
- [core] misc: Warn user when beforeSend doesnt return an event or null
- [core] ref: Check for node-env first and return more accurate global object
- [core] ref: Remove Repo interface and repos attribute from Event
- [core] ref: Rewrite RequestBuffer using Array instead of Set for IE10/11
- [hub] fix: Scope level overwrites level on the event
- [hub] fix: Correctly store and retrieve Hub from domain when one is active
- [hub] fix: Copy over user data when cloning scope
- [node] feat: Allow requestHandler to be configured
- [node] feat: Allow pick any user attributes from requestHandler
- [node] feat: Make node transactions a pluggable integration with tests
- [node] feat: Transactions handling for RequestHandler in Express/Hapi
- [node] fix: Dont wrap native modules more than once to prevent leaks
- [node] fix: Add the same protocol as dsn to base transport option
- [node] fix: Use getCurrentHub to retrieve correct hub in requestHandler
- [utils] ref: implemented includes, assign and isNaN polyfills
- [browser] fix: Fallback to Error object when rejection
reasonis not available - [browser] feat: Support Bluebird's
detail.reasonfor promise rejections - [types] fix: Use correct type for event's repos attribute
- [browser] ref: Expose
ReportDialogOptions - [browser] ref: Use better default message for ReportingObserver
- [browser] feat: Capture wrapped function arguments as extra
- [browser] ref: Unify integrations options and set proper defaults
- [browser] fix: Array.from is not available in old mobile browsers
- [browser] fix: Check for anonymous function before getting its name for mechanism
- [browser] test: Add loader + integration tests
- [core] ref: Move SDKInformation integration into core prepareEvent method
- [core] ref: Move debug initialization as the first step
- [node] fix: Make handlers types compatibile with Express
- [utils] fix: Dont break when non-string is passed to truncate
- [hub] feat: Add
runfunction that makesthishub the current global one
- [browser] feat: Add
forceLoadandonLoadfunction to be compatible with loader API
- [browser] feat: Better dedupe integration event description
- [core] ref: Move Dedupe, FunctionString, InboundFilters and SdkInformation integrations to the core package
- [core] feat: Provide correct platform and make a place to override event internals
- [browser] feat: UserAgent integration
- [browser] fix: Dont filter captured messages when they have no stacktraces
- [browser] feat: Show dropped event url in
blacklistUrl/whitelistUrldebug mode - [browser] feat: Use better event description instead of
event_idfor user-facing logs - [core] ref: Create common integrations that are exposed on
@sentry/coreand reexposed throughbrowser/node - [core] feat: Debug integration
- [browser] ref: Port TraceKit to TypeScript and disable TraceKit's remote fetching for now
This is the release of our new SDKs, @sentry/browser, @sentry/node. While there are too many changes to list for
this release, we will keep a consistent changelog for upcoming new releases. raven-js (our legacy JavaScript/Browser
SDK) and raven (our legacy Node.js SDK) will still reside in this repo, but they will receive their own changelog.
We generally guide people to use our new SDKs from this point onward. The migration should be straightforward if you were only using the basic features of our previous SDKs.
raven-js and raven will both still receive bugfixes but all the new features implemented will only work in the new
SDKs. The new SDKs are completely written in TypeScript, which means all functions, classes and properties are typed.
Here are some examples of how the new SDKs work. Please note that the API for all JavaScript SDKs is the same.
Old:
Raven.config('___PUBLIC_DSN___', {
release: '1.3.0',
}).install();New:
Sentry.init({
dsn: '___PUBLIC_DSN___',
release: '1.3.0',
});Old:
Raven.setTagsContext({ key: 'value' });New:
Sentry.configureScope(scope => {
scope.setTag('key', 'value');
});Old:
try {
throwingFunction();
} catch (e) {
Raven.captureException(e, { extra: { debug: false } });
}New:
try {
throwingFunction();
} catch (e) {
Sentry.withScope(scope => {
scope.setExtra('debug', false);
Sentry.captureException(e);
});
}Old:
Raven.captureMessage('test', 'info', { extra: { debug: false } });New:
Sentry.withScope(scope => {
scope.setExtra('debug', false);
Sentry.captureMessage('test', 'info');
});Old:
Raven.captureBreadcrumb({
message: 'Item added to shopping cart',
category: 'action',
data: {
isbn: '978-1617290541',
cartSize: '3',
},
});New:
Sentry.addBreadcrumb({
message: 'Item added to shopping cart',
category: 'action',
data: {
isbn: '978-1617290541',
cartSize: '3',
},
});