- (core) Pass
mapDirtorewriteSourcesHookby @chargome in #908 - Use
crypto.randomUUIDrather thanuuidby @timfish in #892
- (core) Conditionally add tracing headers by @chargome in #907
- (e2e-tests) Pin axios to 1.13.5 to avoid compromised 1.14.1 by @andreiborza in #906
- (rollup) Make rollup an optional peer dependency by @andreiborza in #913
- Add missing webpack5 entrypoint in webpack-plugin by @brunodccarvalho in #905
- (deps) Bump vulnerable webpack version by @chargome in #909
- (tests) Use deterministic debugids by @chargome in #912
- Add esbuild integration tests by @timfish in #911
- Vite integration tests by @timfish in #899
- Webpack integration tests by @timfish in #904
- Isolate integration test package installs by @timfish in #902
- Pin GitHub Actions to full-length commit SHAs by @joshuarli in #900
- Rollup integration tests by @timfish in #897
- New integration tests by @timfish in #896
- Remove lerna by @timfish in #895
- Migrate to Vitest by @timfish in #894
- Align
engineswith Node support by @timfish in #893
- Use version range for magic-string by @JPeer264 in #891
- Bump @sentry/cli from 2.57.0 to 2.58.5 by @andreiborza in #890
- Updating minimatch by @isaacs in #885
- Remove support for Node < v18 and webpack v4 by @timfish in #886
- (webpack) Deduplicate webpack deploys by @chargome in #875
- Avoid direct usage of glob, extract into
globFileshelper by @andreiborza in #883 - Migrate to oxfmt by @timfish in #880
- Build with Rolldown by @timfish in #872
- Remove unplugin by @timfish in #876
- Rollup/Vite no longer uses unplugin by @timfish in #858
- Esbuild no longer uses unplugin by @timfish in #871
- Webpack no longer uses unplugin by @timfish in #870
- Track major version for Vite and Rollup by @timfish in #867
- Bump craft for release workflow by @chargome in #859
- (telemetry) Add
bundler-major-versiontag to webpack by @chargome in #857
- Inject component annotations into HTML elements rather than React components by @timfish in #851
- Combine injection snippets by @timfish in #853
- Use Rolldown native
MagicStringby @timfish in #846
- docs: Add RELEASE.md to document release process (#834)
- feat: Combine injection plugins (#844)
- fix(plugin-manager): Enable "rejectOnError" in debug (#837)
- fix(plugin-manager): Respect
sourcemap.ignorevalues for injecting debugIDs (#836) - fix(vite): Skip HTML injection for MPA but keep it for SPA (#843)
Internal Changes
- fix(vite): Ensure sentryVitePlugin always returns an array of plugins (#832)
- fix(vite): Skip code injection for HTML facade chunks (#830)
- fix(rollup): Prevent double-injection of debug ID (#827)
- fix(esbuild): fix debug ID injection when moduleMetadata or applicationKey is set (#828)
- chore(deps): Update glob to 10.5.0 (#823)
Internal Changes
- chore(core): Log release output (#821)
- fix(core): Stop awaiting build start telemetry to avoid breaking module federation builds (#818)
- feat(core): Bump @sentry/cli from 2.51.0 to 2.57.0 (#819)
- docs: added info on debug flag value precedence (#811)
- feat: add debug statements after sourcemap uploads (#812)
- feat(core): Allow multi-project sourcemaps upload (#813)
- fix: propagate the debug option to the cli (#810)
- feat(core): Explicitly allow
undefinedas value forauthTokenoption (#805) - fix(core): Strip query strings from asset paths (#806)
Work in this release was contributed by @aiktb. Thank you for your contribution!
- feat(core): Extend deploy option to allow opting out of automatic deploy creation (#801)
- feat(core): No asset globbing for direct upload (#800)
- feat(core): Add
prepareArtifactsoption for uploading sourcemaps (#794) - perf: use premove for build clean (#792)
- fix(core): Forward headers option to sentry-cli (#797)
Work in this release contributed by @liAmirali. Thank you for your contribution!
- fix(react-native): Enhance fragment detection for indirect references (#767)
- feat(deps): Bump @sentry/cli to 2.51.0 #786
- feat(core): Add flag for disabling sourcemaps upload #785
- fix(debugId): Add guards for injected code to avoid errors #783
- docs(options): Improve JSDoc for options #781
- feat(core): Expose method for injecting debug Ids from plugin manager #784
- fix(core): Make
moduleMetadatainjection snippet ES5-compliant (#774)
- fix(core): Make plugin inject ES5-friendly code (#770)
- fix(core): Use
renderChunkfor release injection for Rollup/Rolldown/Vite (#761)
Work in this release was contributed by @grushetsky. Thank you for your contribution!
- (Type change) Vite plugin now returns
VitePlugintype instead ofany - Deprecated function
getBuildInformationhas been removed
- feat(core)!: Remove
getBuildInformationexport (#765) - feat(vite)!: Update return type of vite plugin (#728)
- fix(core): Observe and handle Sentry CLI sourcemap upload failures (#763)
- feat(core): Don't add
debugIdUploadPluginwhen sourcemaps option is disabled (#753) - fix(core): Avoid showing success message if upload was disabled or nothing was uploaded (#757)
- feat(core): Add hook to customize source map file resolution (#732)
- fix(core): Avoid console output and telemetry init when plugins are disabled (#741)
Work in this release was contributed by @thecodewarrior. Thank you for your contribution!
- fix: Replace existing debug ID comments (#730)
- feat: Expose bundler plugin primitives via
createSentryBuildPluginManager(#714)
- fix(webpack5): All
esmfiles must have.mjspostfix (#721)
- feat(webpack): Add
@sentry/webpack-plugin/webpack5export for webpack 5.1+ and compatible environments (#715) - feat: Only do automatic commit association for Vercel production environments (#711)
- Revert "feat(core): Use path instead of debug IDs as artifact names for debug ID upload (#700)" (#709)
- ref: Remove deprecated use of
useArtifacBundles(#707)
- feat(core): Use path instead of debug IDs as artifact names for debug ID upload (#700)
- feat(webpack): Primarily use
contentHashfor debug ID hash (#702) - feat: Detect Vercel commits and env (#694)
- feat: Default to automatically setting commits on release (#692)
- feat(annotation): Handle JSX member expressions (#690)
- fix(core): Don't crash on recoverable CLI command error (#682)
- chore: Suggest putting
SENTRY_AUTH_TOKEN,SENTRY_ORGandSENTRY_PROJECTinpassThroughEnvwhen using Turborepo (#675)
- deps: Bump @sentry/cli to 2.42.2 (#685)
- feat(core): Accept and await a promise in
sourcemaps.filesToDeleteAfterUpload(#677)
- deps: Bump
@sentry/clito2.41.1(#671)
-
fix(core): Disable release creation and source maps upload in dev mode (#666)
This fix disables any external calls to the Sentry API for managing releases or uploading source maps, when detecting that the plugin is running in dev-mode. While this rarely actually happened, it also polluted the dev server output with unnecessary logs about missing auth tokens, which shouldn't be required in dev mode.
- feat(webpack): Gate forced process exit behind experimental flag (#663)
-
Injected code will now use
let, which was added in ES6 (ES2015). This means that ES6 is the minimum JavaScript version that the Sentry bundler plugins support. -
Deprecated options have been removed:
deleteFilesAfterUpload- UsefilesToDeleteAfterUploadinsteadbundleSizeOptimizations.excludePerformanceMonitoring- UsebundleSizeOptimizations.excludeTracinginstead_experiments.moduleMetadata- UsemoduleMetadatainsteadcleanArtifacts- Did not do anything
- fix!: Wrap injected code in block-statement to contain scope (#646)
- chore!: Remove deprecated options (#654)
- feat(logger): Use console methods respective to log level (#652)
- fix(webpack): Ensure process exits when done (#653)
- fix: Use correct replacement matcher for
bundleSizeOptimizations.excludeTracing(#644)
Work in this release contributed by @jdelStrother. Thank you for your contribution!
- fix(v2/core): Make
moduleMetadatainjection code ES5-compliant (#773)
- chore(deps): bump nanoid from 3.3.6 to 3.3.8 (#641)
- feat(core): Detect Railway release name (#639)
- feat(core): Write module injections to
globalThis(#636) - feat(react-component-annotate): Allow skipping annotations on specified components (#617)
- ref(core): Rename release management plugin name (#647)
Work in this release contributed by @conor-ob. Thank you for your contribution!
- deps: Bump
@sentry/clito2.39.1and require specific version (#632) - feat(telemetry): Record if plugin is run in CI (#627)
- fix(core): Use sha256 instead of md5 to generate uuids from string (#619)
- fix: Ignore stderr output from git command (#613)
- feat: Update Sentry telemetry to v8 (#604)
- deps: Update
@sentry/clito2.36.1(#609)
- feat(react-component-annotate): Handle function body returning a ternary (#598)
- fix: Allow injection plugins to apply to files with query parameters and fragments in their name (#597)
Work in this release contributed by @Thristhart. Thank you for your contribution!
- fix(core): Always instantiate global
Errorclass in injected code snippets (#594)
- fix: Disable debug ID injection when
sourcemaps.disableis set (#589)
- fix: Use
sourcemaps.disableto disable debug ID upload instead of legacy upload (#587) - fix: Escape release string in injection snippet (#585)
- deps: Bump
@sentry/clito2.33.1(#581) - feat: Add
bundleSizeOptimizations.excludeTracingoption as alias to deprecatedbundleSizeOptimizations.excludePerformanceMonitoring(#582) - fix(vite-plugin): Ensure
postorder ofsentry-vite-release-injection-pluginto avoid breaking@rollup/plugin-commonjsstep (#578)
- fix: Do not delete files before all upload tasks executed (#572)
Work in this release contributed by @tyouzu1. Thank you for your contribution!
- fix: Use
sequentialandpostorder for vite artifact deletion (#568) - feat: Add option to disable sourcemaps (#561)
Work in this release contributed by @tyouzu1. Thank you for your contribution!
- feat(telemetry): Collect whether applicationKey is set (#559)
- fix: Wait for tasks depending on sourcemaps before deleting (#557)
- feat: Export esbuild plugin as default (#555)
- feat: Don't use word "error" in log message about telemetry (#548)
- feat(core): Detect releases from more providers (#549)
- fix: Always delete files when
sourcemaps.filesToDeleteAfterUploadis set (#547) - fix(vite): Fix environment variable loading issue for Windows (#545)
Work in this release contributed by @Rassilion, and @mateusz-daniluk-xtb. Thank you for your contributions!
- feat: Add
applicationKeyoption to identify application code from within the SDK (#540) - feat: Allow passing of meta-framework as telemetry data (#539)
- feat: Promote experimental
moduleMetadataoption to stable (#538) - fix(esbuild): Invert warning about
bundle: true(#542)
- feat: Deprecate and noop
cleanArtifacts(#525) - feat: Support Heroku env vars when inferring release name (#517)
- fix(docs): Update pnpm install commands (#516)
- misc(esbuild): Log warning when attempting to inject debug IDs with esbuild
bundleoption active (#526)
Work in this release contributed by @et84121, and @duailibe. Thank you for your contributions!
- fix: Create word-based fidelity source mapping for code transformations (#513)
- fix: Also match
.cjsand.mjsfiles when finding files to upload in rollup-based bundlers (#509)
- feat(core): Add
loggerPrefixOverridemeta option (#506)
- feat: Make options argument optional (#502)
- ref(annotate): Turn disabled message to debug log (#504)
- deps(core): Unpin
@babel/core,find-up, andglob(#496)
Work in this release contributed by @allanlewis. Thank you for your contribution!
- feat(core): Bundle in Sentry SDK deps (#487)
- fix(core): Stop .env files from being picked up (#486)
- feat(core): Add telemetry for React component annotations (#482)
- ref(component-annotate): Use default export (#478)
- ref(component-annotate): Conform to Babel plugin naming conventions
- ref(component-annotate): Prefix plugin name with
babel
- feat(core): Include component name annotation plugin with all bundler plugins except esbuild (#469)
- feat(component-annotate): Introduce new plugin to annotate frontend components at build-time (#468)
- fix(core): Safely flush telemetry
- deps(core): Bump
@sentry/clito^2.22.3(#451)
- chore: bump @sentry/cli dependency to 2.21.4 (#440)
- feat: deprecate
excludeReplayCanvasconfig (#436) - feat: Add
excludeReplayWorkertobundleSizeOptimizations(#433)
- feat: Allow to configure
bundleSizeOptimizations(#428) - fix(core): Don't abort source map location guessing when the reference is a URL (#424)
- fix(core): Widen detection of source maps with
.cjs.mapand.mjs.map(#422)
- build(core): Bump Sentry CLI to v2.21.2 (#415)
- feat: Detect release name for Bitbucket pipelines (#404)
- feat: Detect release name for Flightcontrol (#411)
- fix(core): Move git revision to a separate function (#399)
- fix(esbuild): Don't inject debug IDs into injected modules (#417)
Work in this release contributed by @hoslmelq, @mjomble, and @aquacash5. Thank you for your contributions!
- docs: Point to org auth token page (#393)
- fix(webpack): Add
defaultfallback to webpack import (#395) - fix: Save results of
rewriteSourcesHook(#390)
Work in this release contributed by @adonskoy. Thank you for your contribution!
- feat: Add module metadata injection for esbuild (#381)
- feat: Add module metadata injection for vite and rollup (#380)
- ref: Emit high resolution source-maps with
magic-string(#383) - ref: Run upload preparation with maximum concurrency (#379)
- fix: Fix regex in source map locating heuristic via
sourceMappingURL(#376) - fix: Make sourceMappingURL heuristic more resilient (#378)
Thanks to @tomyam1 for identifying and pinpointing a bug that was hard to spot!
- fix: Don't crash on failed delete after upload (#373)
- deps: Bump sentry-cli to 2.20.1 (#355)
- feat: Allow ommiting
orgwhen using organization auth token (#368) - ref: Make asset detection more robust (#369)
- deps: Bump and unpin Sentry SDK deps (#353)
- docs: Remove misleading documentation (#339)
- feat: Add experimental module metadata injection (#334)
- fix: Fix 'identifiy' typo in log messages (#341)
Work in this release contributed by @chunfeilung. Thank you for your contribution!
- docs: Update instructions to install Vite plugin via pnpm (#331)
- docs: Update minimum supported Node.js version to 14 (#327)
- feat: Add configuration via
.env.sentry-build-pluginfile (#333) - ref: Use full git SHA for release name (#330)
Work in this release contributed by @ffxsam and @emilsivervik. Thank you for your contributions!
- feat(webpack): Generate deterministic debug IDs (#321)
- feat: Add
filesToDeleteAfterUploadalias fordeleteFilesAfterUpload(#313) - feat: Sort globbed files to ensure deterministic bundle IDs (#318)
- fix(esbuild): Don't override user code with proxy module (#322)
- fix(esbuild): Fix debug ID generation (#325)
- fix: Use
SENTRY_RELEASEenvironment variable to setrelease.nameoption (#317)
Work in this release contributed by @smbroadley. Thank you for your contribution!
- fix(esbuild): Don't use namespace for esbuild proxy resolving (#311)
- fix: Update commentUseStrictRegex to be lazy instead of greedy (#309)
Work in this release contributed by @jdk2pq. Thank you for your contribution!
- fix(esbuild): Inject different debug IDs into different output bundles (#301)
- fix(webpack): Set minimum webpack 4 peer dep to
4.40.0(#290) - fix: Use magic-string
appendLeftinstead ofreplace(#303) - ref: Improve log message when sourcemap cannot be found (#287)
- ref(core): Make better use of Sentry (#246)
- ref(webpack): Use webpack peer dependency (#273)
Work in this release was made possible with help from @wojtekmaj and @dobladov. Thank you for your contributions!
- docs: Add removal of
configFileoption to migration guide (#266) - feat: Auto detect build artifacts (#257)
- fix(core): Ignore query and hash in filepaths for release injection (#272)
- fix(esbuild): Use absolute path for virtual file resolving (#269)
- fix: Don't show log message if telemetry is disabled (#267)
- fix: Use automatic release name detection for release injection (#271)
Version 2.0.0 marks the official release of the @sentry/vite-plugin, @sentry/esbuild-plugin and @sentry/rollup-plugin packages.
They are now considered stable.
For the @sentry/webpack-plugin this is a major release with breaking changes.
Please refer to the migration guide for instructions on how to upgrade.
- feat(core): Add
deleteFilesAfterUploadoption (#244) - feat(core): Implements rewrite sources for debug ID upload (#243)
- fix(core): Account for undefined release name values (#251)
- fix(webpack): Inject different debug IDs for different bundles (#242)
- ref(core): Add new options type for future use (#216)
- ref(core): Extract debug ID injection into separate plugins (#230)
- ref(core): Extract debug ID sourcemap upload into a separate plugin (#231)
- ref(core): Extract release injection into separate plugins (#218)
- ref(core): Extract release management into a separate plugin (#232)
- ref(core): Extract telemetry into a separate plugin (#234)
- ref(core): Switch to v2 options (#237)
- ref(core): Use debug ID as filename for upload (#247)
- ref(core): Use factory function to create individual plugins (#229)
- ref: Remove
injectReleasesMapoption (#236)
- fix(core): Use createRequire to not use built-in require in ESM (#212)
- fix(core): Fix vite complaining about CJS import of webpack-sources (#210)
This release introduces the sourcemaps option. This option switches to a new system of handling source maps in Sentry.
While the old system is still available via the include option, the recommended way forward is the sourcemaps option.
You can configure the sourcemaps option as follows:
plugin({
org: "Your organization",
project: "Your project",
authToken: "Your auth token",
sourcemaps: {
// Specify the directory containing build artifacts
assets: "./dist/**",
},
});- feat(esbuild): Add debug ID injection for esbuild (#202)
- feat: Promote debug ID uploading to stable via
sourcemapsoption (#204) - fix(core): Also do debug ID injection for
.cjsfiles (#203) - fix: Add typing exports to packages (#208)
- ref: Run upload preparation with maximum concurrency (#382)
- feat(webpack): Add debug ID injection to the webpack plugin (#198)
- fix(core): Don't exclude release injection module (#200)
- ref(core): Don't interact with Sentry in watch-mode (#199)
Work in this release contributed by @hakubo. Thank you for your contribution!
- fix(core): Skip all transformations for 3rd party modules
- feat(core): Add
injectReleaseanduploadSourceMapsoptions (#190) - feat(core): Add experimental debug ID based source map upload to Rollup and Vite plugins (#192)
- feat(core): Import release injection code from each module (#188)
- feat: Add
_experiments.injectBuildInformationoption (#176) - feat: Add
sentryCliBinaryExistsfunction (#171)
Work in this release contributed by @alexandresoro and @dcyou. Thank you for your contributions!
This release contains breaking changes. Please refer to the migration guide on how to update from version 0.3.x to 0.4.x.
- deps(core): Bump unplugin version (#164)
- ref(core): Only inject release into entrypoints per default (#166) (BREAKING)
- ref: Remove
customHeaderoption (#167) (BREAKING) - ref: Turn default exports into named exports (#165) (BREAKING)
Work in this release contributed by @manniL. Thank you for your contribution!
Note: This release bumps the @sentry/cli dependency from version 1.x to version 2.x.
- feat(core): Add headers option (#153)
Work in this release contributed by @robertcepa. Thank you for your contribution!
- build(core): Update magic-string due to deprecated dependency (#146)
- ref(core): Send project as
distin telemetry (#148)
Work in this release contributed by @jperelli. Thank you for your contribution!
- fix: Exclude
node_modulesfrom release injection (#143)
- feat(core): Remove
server_namefrom telemetry events (#135) - fix: Add definitions in package.json for ESM resolution (#141)
- fix(core): Finish spans when CLI commands fail (#136)
- ref(core): Decouple breadcrumb usage from logger (#138)
- ref(core): Don't record stack traces for telemetry (#137)
- fix(core): Fix telemetry option logic (#128)
- fix(core): Normalize
idandreleaseInjectionTargetsintransformInclude(#132)
This release replaces the entries option with releaseInjectionTargets which is a breaking change from previous versions.
For more information, take a look at the migration guide.
- feat: Replace
entriesoption withreleaseInjectionTargets(#123)
With this release, the Sentry bundler plugins support all features of the standalone Sentry Webpack plugin. Please note that breaking changes might still be introduced.
- Re-added Sentry CLI to the project (#85). The bundler plugins use Sentry CLI to create releases and upload sourcemaps
- Added missing Release creation steps
- feat(core): Add
setCommits(#96) - feat(core): Add
deploycommand (#97)
- feat(core): Add
- Added validation of plugin options (#104)
- Refined
telemetryoption to only send events to Sentry for projects uploading source maps to Sentry's SaaS instance (#99). For self-hosted Sentry servers, nothing will be sent to Sentry. - Updated
README.mdfiles with examples and option descriptions for each bundler plugin (#117)
Link to Full Changelog
This release marks the first release of the Sentry bundler blugins. This is still a heavy work in progress and a lot of things are still missing and subject to change
- Initial release