From 7ccd59f907cfa5f44f89380638fd9f653bcac27f Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 6 Oct 2026 11:34:50 +0100 Subject: [PATCH 01/10] feat(bundler-plugins): Publish standalone webpack, vite, rollup and esbuild plugins Move the four wrapper packages from sentry-javascript-bundler-plugins into packages/legacy. Each one re-exports the matching @sentry/bundler-plugins subpath and now releases in lockstep with the SDK. --- .craft.yml | 12 ++++ .github/ISSUE_TEMPLATE/bug.yml | 4 ++ .github/workflows/build.yml | 4 +- .github/workflows/issue-package-label.yml | 12 ++++ CHANGELOG.md | 6 ++ README.md | 7 ++ package.json | 4 ++ packages/bundler-plugins/README.md | 12 ++-- packages/legacy/esbuild-plugin/.gitignore | 2 + packages/legacy/esbuild-plugin/LICENSE | 29 +++++++++ packages/legacy/esbuild-plugin/README.md | 45 +++++++++++++ packages/legacy/esbuild-plugin/package.json | 56 ++++++++++++++++ .../esbuild-plugin/rollup.npm.config.mjs | 12 ++++ packages/legacy/esbuild-plugin/src/index.ts | 2 + .../legacy/esbuild-plugin/test/index.test.ts | 14 ++++ .../legacy/esbuild-plugin/test/tsconfig.json | 8 +++ packages/legacy/esbuild-plugin/tsconfig.json | 5 ++ .../legacy/esbuild-plugin/tsconfig.types.json | 12 ++++ packages/legacy/esbuild-plugin/vite.config.ts | 8 +++ packages/legacy/rollup-plugin/.gitignore | 2 + packages/legacy/rollup-plugin/LICENSE | 29 +++++++++ packages/legacy/rollup-plugin/README.md | 46 +++++++++++++ packages/legacy/rollup-plugin/package.json | 65 +++++++++++++++++++ .../rollup-plugin/rollup.npm.config.mjs | 7 ++ packages/legacy/rollup-plugin/src/index.ts | 1 + .../legacy/rollup-plugin/test/index.test.ts | 10 +++ .../legacy/rollup-plugin/test/tsconfig.json | 8 +++ packages/legacy/rollup-plugin/tsconfig.json | 5 ++ .../legacy/rollup-plugin/tsconfig.types.json | 12 ++++ packages/legacy/rollup-plugin/vite.config.ts | 8 +++ packages/legacy/vite-plugin/.gitignore | 2 + packages/legacy/vite-plugin/LICENSE | 29 +++++++++ packages/legacy/vite-plugin/README.md | 47 ++++++++++++++ packages/legacy/vite-plugin/package.json | 56 ++++++++++++++++ .../legacy/vite-plugin/rollup.npm.config.mjs | 7 ++ packages/legacy/vite-plugin/src/index.ts | 1 + .../legacy/vite-plugin/test/index.test.ts | 10 +++ .../legacy/vite-plugin/test/tsconfig.json | 8 +++ packages/legacy/vite-plugin/tsconfig.json | 5 ++ .../legacy/vite-plugin/tsconfig.types.json | 12 ++++ packages/legacy/vite-plugin/vite.config.ts | 8 +++ packages/legacy/webpack-plugin/.gitignore | 2 + packages/legacy/webpack-plugin/LICENSE | 29 +++++++++ packages/legacy/webpack-plugin/README.md | 44 +++++++++++++ packages/legacy/webpack-plugin/package.json | 64 ++++++++++++++++++ .../webpack-plugin/rollup.npm.config.mjs | 7 ++ packages/legacy/webpack-plugin/src/index.ts | 1 + .../legacy/webpack-plugin/src/webpack5.ts | 1 + .../legacy/webpack-plugin/test/index.test.ts | 15 +++++ .../legacy/webpack-plugin/test/tsconfig.json | 8 +++ packages/legacy/webpack-plugin/tsconfig.json | 5 ++ .../legacy/webpack-plugin/tsconfig.types.json | 12 ++++ packages/legacy/webpack-plugin/vite.config.ts | 8 +++ 53 files changed, 821 insertions(+), 7 deletions(-) create mode 100644 packages/legacy/esbuild-plugin/.gitignore create mode 100644 packages/legacy/esbuild-plugin/LICENSE create mode 100644 packages/legacy/esbuild-plugin/README.md create mode 100644 packages/legacy/esbuild-plugin/package.json create mode 100644 packages/legacy/esbuild-plugin/rollup.npm.config.mjs create mode 100644 packages/legacy/esbuild-plugin/src/index.ts create mode 100644 packages/legacy/esbuild-plugin/test/index.test.ts create mode 100644 packages/legacy/esbuild-plugin/test/tsconfig.json create mode 100644 packages/legacy/esbuild-plugin/tsconfig.json create mode 100644 packages/legacy/esbuild-plugin/tsconfig.types.json create mode 100644 packages/legacy/esbuild-plugin/vite.config.ts create mode 100644 packages/legacy/rollup-plugin/.gitignore create mode 100644 packages/legacy/rollup-plugin/LICENSE create mode 100644 packages/legacy/rollup-plugin/README.md create mode 100644 packages/legacy/rollup-plugin/package.json create mode 100644 packages/legacy/rollup-plugin/rollup.npm.config.mjs create mode 100644 packages/legacy/rollup-plugin/src/index.ts create mode 100644 packages/legacy/rollup-plugin/test/index.test.ts create mode 100644 packages/legacy/rollup-plugin/test/tsconfig.json create mode 100644 packages/legacy/rollup-plugin/tsconfig.json create mode 100644 packages/legacy/rollup-plugin/tsconfig.types.json create mode 100644 packages/legacy/rollup-plugin/vite.config.ts create mode 100644 packages/legacy/vite-plugin/.gitignore create mode 100644 packages/legacy/vite-plugin/LICENSE create mode 100644 packages/legacy/vite-plugin/README.md create mode 100644 packages/legacy/vite-plugin/package.json create mode 100644 packages/legacy/vite-plugin/rollup.npm.config.mjs create mode 100644 packages/legacy/vite-plugin/src/index.ts create mode 100644 packages/legacy/vite-plugin/test/index.test.ts create mode 100644 packages/legacy/vite-plugin/test/tsconfig.json create mode 100644 packages/legacy/vite-plugin/tsconfig.json create mode 100644 packages/legacy/vite-plugin/tsconfig.types.json create mode 100644 packages/legacy/vite-plugin/vite.config.ts create mode 100644 packages/legacy/webpack-plugin/.gitignore create mode 100644 packages/legacy/webpack-plugin/LICENSE create mode 100644 packages/legacy/webpack-plugin/README.md create mode 100644 packages/legacy/webpack-plugin/package.json create mode 100644 packages/legacy/webpack-plugin/rollup.npm.config.mjs create mode 100644 packages/legacy/webpack-plugin/src/index.ts create mode 100644 packages/legacy/webpack-plugin/src/webpack5.ts create mode 100644 packages/legacy/webpack-plugin/test/index.test.ts create mode 100644 packages/legacy/webpack-plugin/test/tsconfig.json create mode 100644 packages/legacy/webpack-plugin/tsconfig.json create mode 100644 packages/legacy/webpack-plugin/tsconfig.types.json create mode 100644 packages/legacy/webpack-plugin/vite.config.ts diff --git a/.craft.yml b/.craft.yml index c5e537806bcb..a6a739ead8bc 100644 --- a/.craft.yml +++ b/.craft.yml @@ -145,6 +145,18 @@ targets: - name: npm id: '@sentry/bundler-plugins' includeNames: /^sentry-bundler-plugins-\d.*\.tgz$/ + - name: npm + id: '@sentry/esbuild-plugin' + includeNames: /^sentry-esbuild-plugin-\d.*\.tgz$/ + - name: npm + id: '@sentry/rollup-plugin' + includeNames: /^sentry-rollup-plugin-\d.*\.tgz$/ + - name: npm + id: '@sentry/vite-plugin' + includeNames: /^sentry-vite-plugin-\d.*\.tgz$/ + - name: npm + id: '@sentry/webpack-plugin' + includeNames: /^sentry-webpack-plugin-\d.*\.tgz$/ - name: npm id: '@sentry/typescript' includeNames: /^sentry-typescript-\d.*\.tgz$/ diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 499244434f82..5f6a5a8fdf55 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -64,6 +64,10 @@ body: - '@sentry/tanstackstart-react' - '@sentry/vue' - '@sentry/wasm' + - '@sentry/esbuild-plugin' + - '@sentry/rollup-plugin' + - '@sentry/vite-plugin' + - '@sentry/webpack-plugin' - Sentry Browser Loader - Sentry Browser CDN bundle validations: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a37d3618311f..b241886bb17b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,9 @@ env: # upload-artifact globs drop the path through the first `*` (see upload-artifact # README). Tarballs therefore land in the artifact as /*.tgz; download # build-tarball-output into packages/ so they resolve to packages//*.tgz. - TARBALL_ARTIFACT_GLOB: packages/*/*.tgz + TARBALL_ARTIFACT_GLOB: | + packages/*/*.tgz + packages/legacy/*/*.tgz TARBALL_ARTIFACT_DOWNLOAD_PATH: ${{ github.workspace }}/packages BUILD_LAYER_PATH: ${{ github.workspace }}/packages/aws-serverless/build/aws/dist-serverless diff --git a/.github/workflows/issue-package-label.yml b/.github/workflows/issue-package-label.yml index fb77747f336f..8ac1c7987801 100644 --- a/.github/workflows/issue-package-label.yml +++ b/.github/workflows/issue-package-label.yml @@ -122,6 +122,18 @@ jobs: "@sentry.wasm": { "label": "WASM" }, + "@sentry.esbuild-plugin": { + "label": "Feature: Source Maps" + }, + "@sentry.rollup-plugin": { + "label": "Feature: Source Maps" + }, + "@sentry.vite-plugin": { + "label": "Feature: Source Maps" + }, + "@sentry.webpack-plugin": { + "label": "Feature: Source Maps" + }, "Sentry.Browser.Loader": { "label": "Browser" }, diff --git a/CHANGELOG.md b/CHANGELOG.md index 96ff401eb033..1aaa76e8a53c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +### Important Changes + +- **feat(bundler-plugins): Publish `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from this repository** + + The standalone bundler plugins moved here from `getsentry/sentry-javascript-bundler-plugins` and now release in lockstep with the SDK. Their version jumps from 5.x to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` subpath, so the plugin options are unchanged. The minimum Node.js version is now the same as the SDK's. `@sentry/webpack-plugin/webpack5` still works and points to the same plugin as `@sentry/webpack-plugin`. + ## 11.4.0 - feat(sveltekit): Support stable SvelteKit 3 ([#25009](https://github.com/getsentry/sentry-javascript/pull/25009)) diff --git a/README.md b/README.md index 688bf7e72f79..b3e484ac4d6c 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,13 @@ below: Provides the integration for Session Replay. - [`@sentry/core`](https://github.com/getsentry/sentry-javascript/tree/master/packages/core): The base for all JavaScript SDKs with interfaces, type definitions and base classes. +- [`@sentry/bundler-plugins`](https://github.com/getsentry/sentry-javascript/tree/master/packages/bundler-plugins): + Uploads source maps and injects release and Debug ID information at build time. Also available as standalone + plugins: + [`@sentry/webpack-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/webpack-plugin), + [`@sentry/vite-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/vite-plugin), + [`@sentry/rollup-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/rollup-plugin) + and [`@sentry/esbuild-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/esbuild-plugin). ## Bug Bounty Program diff --git a/package.json b/package.json index f755d4692b92..efceaee9a09c 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,10 @@ "packages/vercel-edge", "packages/vue", "packages/wasm", + "packages/legacy/esbuild-plugin", + "packages/legacy/rollup-plugin", + "packages/legacy/vite-plugin", + "packages/legacy/webpack-plugin", "dev-packages/browser-integration-tests", "dev-packages/bundler-plugin-integration-tests", "dev-packages/e2e-tests", diff --git a/packages/bundler-plugins/README.md b/packages/bundler-plugins/README.md index e9387aab6f40..7f53436e360b 100644 --- a/packages/bundler-plugins/README.md +++ b/packages/bundler-plugins/README.md @@ -6,14 +6,14 @@ # Sentry Bundler Plugins -Core package containing the bundler-agnostic functionality used by the [bundler plugins](https://github.com/getsentry/sentry-javascript-bundler-plugins). +Sentry plugins for Webpack, Vite, Rollup and esbuild. Each plugin is a subpath export of this package, for example `@sentry/bundler-plugins/vite`. -Check out the individual packages for more information and examples: +The plugins are also published as standalone packages: -- [Rollup](https://www.npmjs.com/package/@sentry/rollup-plugin) -- [Vite](https://www.npmjs.com/package/@sentry/vite-plugin) -- [esbuild](https://www.npmjs.com/package/@sentry/esbuild-plugin) -- [Webpack](https://www.npmjs.com/package/@sentry/webpack-plugin) +- [`@sentry/rollup-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin) +- [`@sentry/vite-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin) +- [`@sentry/esbuild-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin) +- [`@sentry/webpack-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin) ## Documentation diff --git a/packages/legacy/esbuild-plugin/.gitignore b/packages/legacy/esbuild-plugin/.gitignore new file mode 100644 index 000000000000..22cfeae206b4 --- /dev/null +++ b/packages/legacy/esbuild-plugin/.gitignore @@ -0,0 +1,2 @@ +build +*.tgz diff --git a/packages/legacy/esbuild-plugin/LICENSE b/packages/legacy/esbuild-plugin/LICENSE new file mode 100644 index 000000000000..c23a90edc9be --- /dev/null +++ b/packages/legacy/esbuild-plugin/LICENSE @@ -0,0 +1,29 @@ +# MIT License + +Copyright (c) 2022-2026, Sentry +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/legacy/esbuild-plugin/README.md b/packages/legacy/esbuild-plugin/README.md new file mode 100644 index 000000000000..72ba4460548e --- /dev/null +++ b/packages/legacy/esbuild-plugin/README.md @@ -0,0 +1,45 @@ +

+ + Sentry + +

+ +# Sentry esbuild Plugin + +A esbuild plugin that uploads source maps to Sentry and injects release and Debug ID information into your bundles. + +This package re-exports `@sentry/bundler-plugins/esbuild`. + +## Installation + +```bash +npm install @sentry/esbuild-plugin --save-dev +``` + +## Usage + +```js +// build.js +import * as esbuild from 'esbuild'; +import { sentryEsbuildPlugin } from '@sentry/esbuild-plugin'; + +await esbuild.build({ + sourcemap: true, + plugins: [ + sentryEsbuildPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + ], +}); +``` + +## Documentation + +- [Uploading source maps](https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/) + +## Support + +- [Report a bug](https://github.com/getsentry/sentry-javascript/issues/new/choose) +- [Contributing](https://github.com/getsentry/sentry-javascript/blob/develop/CONTRIBUTING.md) diff --git a/packages/legacy/esbuild-plugin/package.json b/packages/legacy/esbuild-plugin/package.json new file mode 100644 index 000000000000..d7c6b315705d --- /dev/null +++ b/packages/legacy/esbuild-plugin/package.json @@ -0,0 +1,56 @@ +{ + "name": "@sentry/esbuild-plugin", + "version": "11.4.0", + "description": "Official Sentry esbuild plugin", + "repository": "git://github.com/getsentry/sentry-javascript.git", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin", + "author": "Sentry", + "license": "MIT", + "keywords": [ + "Sentry", + "esbuild", + "bundler", + "plugin" + ], + "engines": { + "node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "/build" + ], + "main": "build/cjs/index.js", + "module": "build/esm/index.js", + "types": "build/types/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./build/types/index.d.ts", + "import": "./build/esm/index.js", + "require": "./build/cjs/index.js" + } + }, + "scripts": { + "build": "run-p build:transpile build:types", + "build:dev": "yarn build", + "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:types": "tsc -p tsconfig.types.json", + "build:watch": "run-p build:transpile:watch", + "build:dev:watch": "yarn build:watch", + "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:tarball": "npm pack", + "clean": "rimraf build coverage sentry-esbuild-plugin-*.tgz", + "lint": "oxlint . --type-aware", + "lint:fix": "oxlint . --fix --type-aware", + "test": "vitest run", + "test:unit": "vitest run" + }, + "dependencies": { + "@sentry/bundler-plugins": "11.4.0" + }, + "volta": { + "extends": "../../../package.json" + } +} diff --git a/packages/legacy/esbuild-plugin/rollup.npm.config.mjs b/packages/legacy/esbuild-plugin/rollup.npm.config.mjs new file mode 100644 index 000000000000..b11c2c4f9148 --- /dev/null +++ b/packages/legacy/esbuild-plugin/rollup.npm.config.mjs @@ -0,0 +1,12 @@ +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; + +export default makeNPMConfigVariants( + makeBaseNPMConfig({ + entrypoints: ['src/index.ts'], + packageSpecificConfig: { + output: { + exports: 'named', + }, + }, + }), +); diff --git a/packages/legacy/esbuild-plugin/src/index.ts b/packages/legacy/esbuild-plugin/src/index.ts new file mode 100644 index 000000000000..142a16901164 --- /dev/null +++ b/packages/legacy/esbuild-plugin/src/index.ts @@ -0,0 +1,2 @@ +export * from '@sentry/bundler-plugins/esbuild'; +export { default } from '@sentry/bundler-plugins/esbuild'; diff --git a/packages/legacy/esbuild-plugin/test/index.test.ts b/packages/legacy/esbuild-plugin/test/index.test.ts new file mode 100644 index 000000000000..d92084cfd902 --- /dev/null +++ b/packages/legacy/esbuild-plugin/test/index.test.ts @@ -0,0 +1,14 @@ +import * as bundlerPlugins from '@sentry/bundler-plugins/esbuild'; +import { describe, expect, it } from 'vitest'; +import * as plugin from '../src/index'; + +describe('@sentry/esbuild-plugin', () => { + it('re-exports @sentry/bundler-plugins/esbuild', () => { + expect(plugin.sentryEsbuildPlugin).toBe(bundlerPlugins.sentryEsbuildPlugin); + expect(Object.keys(plugin).sort()).toEqual(Object.keys(bundlerPlugins).sort()); + }); + + it('re-exports the default export', () => { + expect(plugin.default).toBe(bundlerPlugins.default); + }); +}); diff --git a/packages/legacy/esbuild-plugin/test/tsconfig.json b/packages/legacy/esbuild-plugin/test/tsconfig.json new file mode 100644 index 000000000000..76d0c9cff6f2 --- /dev/null +++ b/packages/legacy/esbuild-plugin/test/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../tsconfig.json", + "include": ["../src/**/*", "./**/*"], + "compilerOptions": { + "types": ["node"] + } +} diff --git a/packages/legacy/esbuild-plugin/tsconfig.json b/packages/legacy/esbuild-plugin/tsconfig.json new file mode 100644 index 000000000000..79bdd1df1220 --- /dev/null +++ b/packages/legacy/esbuild-plugin/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../../tsconfig.json", + "include": ["./src/**/*.ts", "./package.json"] +} diff --git a/packages/legacy/esbuild-plugin/tsconfig.types.json b/packages/legacy/esbuild-plugin/tsconfig.types.json new file mode 100644 index 000000000000..9321489cd9a9 --- /dev/null +++ b/packages/legacy/esbuild-plugin/tsconfig.types.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "build/types" + } +} diff --git a/packages/legacy/esbuild-plugin/vite.config.ts b/packages/legacy/esbuild-plugin/vite.config.ts new file mode 100644 index 000000000000..d18e1bd6826f --- /dev/null +++ b/packages/legacy/esbuild-plugin/vite.config.ts @@ -0,0 +1,8 @@ +import baseConfig from '../../../vite/vite.config'; + +export default { + ...baseConfig, + test: { + ...baseConfig.test, + }, +}; diff --git a/packages/legacy/rollup-plugin/.gitignore b/packages/legacy/rollup-plugin/.gitignore new file mode 100644 index 000000000000..22cfeae206b4 --- /dev/null +++ b/packages/legacy/rollup-plugin/.gitignore @@ -0,0 +1,2 @@ +build +*.tgz diff --git a/packages/legacy/rollup-plugin/LICENSE b/packages/legacy/rollup-plugin/LICENSE new file mode 100644 index 000000000000..c23a90edc9be --- /dev/null +++ b/packages/legacy/rollup-plugin/LICENSE @@ -0,0 +1,29 @@ +# MIT License + +Copyright (c) 2022-2026, Sentry +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/legacy/rollup-plugin/README.md b/packages/legacy/rollup-plugin/README.md new file mode 100644 index 000000000000..17a8d1c7b2c2 --- /dev/null +++ b/packages/legacy/rollup-plugin/README.md @@ -0,0 +1,46 @@ +

+ + Sentry + +

+ +# Sentry Rollup Plugin + +A Rollup plugin that uploads source maps to Sentry and injects release and Debug ID information into your bundles. + +This package re-exports `@sentry/bundler-plugins/rollup`. + +## Installation + +```bash +npm install @sentry/rollup-plugin --save-dev +``` + +## Usage + +```js +// rollup.config.js +import { sentryRollupPlugin } from '@sentry/rollup-plugin'; + +export default { + output: { + sourcemap: true, + }, + plugins: [ + sentryRollupPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + ], +}; +``` + +## Documentation + +- [Uploading source maps](https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/) + +## Support + +- [Report a bug](https://github.com/getsentry/sentry-javascript/issues/new/choose) +- [Contributing](https://github.com/getsentry/sentry-javascript/blob/develop/CONTRIBUTING.md) diff --git a/packages/legacy/rollup-plugin/package.json b/packages/legacy/rollup-plugin/package.json new file mode 100644 index 000000000000..9df54674c2fb --- /dev/null +++ b/packages/legacy/rollup-plugin/package.json @@ -0,0 +1,65 @@ +{ + "name": "@sentry/rollup-plugin", + "version": "11.4.0", + "description": "Official Sentry Rollup plugin", + "repository": "git://github.com/getsentry/sentry-javascript.git", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin", + "author": "Sentry", + "license": "MIT", + "keywords": [ + "Sentry", + "rollup-plugin", + "Rollup", + "bundler", + "plugin" + ], + "engines": { + "node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "/build" + ], + "main": "build/cjs/index.js", + "module": "build/esm/index.js", + "types": "build/types/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./build/types/index.d.ts", + "import": "./build/esm/index.js", + "require": "./build/cjs/index.js" + } + }, + "scripts": { + "build": "run-p build:transpile build:types", + "build:dev": "yarn build", + "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:types": "tsc -p tsconfig.types.json", + "build:watch": "run-p build:transpile:watch", + "build:dev:watch": "yarn build:watch", + "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:tarball": "npm pack", + "clean": "rimraf build coverage sentry-rollup-plugin-*.tgz", + "lint": "oxlint . --type-aware", + "lint:fix": "oxlint . --fix --type-aware", + "test": "vitest run", + "test:unit": "vitest run" + }, + "dependencies": { + "@sentry/bundler-plugins": "11.4.0" + }, + "peerDependencies": { + "rollup": ">=3.2.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + }, + "volta": { + "extends": "../../../package.json" + } +} diff --git a/packages/legacy/rollup-plugin/rollup.npm.config.mjs b/packages/legacy/rollup-plugin/rollup.npm.config.mjs new file mode 100644 index 000000000000..601cc6837ce0 --- /dev/null +++ b/packages/legacy/rollup-plugin/rollup.npm.config.mjs @@ -0,0 +1,7 @@ +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; + +export default makeNPMConfigVariants( + makeBaseNPMConfig({ + entrypoints: ['src/index.ts'], + }), +); diff --git a/packages/legacy/rollup-plugin/src/index.ts b/packages/legacy/rollup-plugin/src/index.ts new file mode 100644 index 000000000000..0807365d7f98 --- /dev/null +++ b/packages/legacy/rollup-plugin/src/index.ts @@ -0,0 +1 @@ +export * from '@sentry/bundler-plugins/rollup'; diff --git a/packages/legacy/rollup-plugin/test/index.test.ts b/packages/legacy/rollup-plugin/test/index.test.ts new file mode 100644 index 000000000000..759af8b27bb6 --- /dev/null +++ b/packages/legacy/rollup-plugin/test/index.test.ts @@ -0,0 +1,10 @@ +import * as bundlerPlugins from '@sentry/bundler-plugins/rollup'; +import { describe, expect, it } from 'vitest'; +import * as plugin from '../src/index'; + +describe('@sentry/rollup-plugin', () => { + it('re-exports @sentry/bundler-plugins/rollup', () => { + expect(plugin.sentryRollupPlugin).toBe(bundlerPlugins.sentryRollupPlugin); + expect(Object.keys(plugin).sort()).toEqual(Object.keys(bundlerPlugins).sort()); + }); +}); diff --git a/packages/legacy/rollup-plugin/test/tsconfig.json b/packages/legacy/rollup-plugin/test/tsconfig.json new file mode 100644 index 000000000000..76d0c9cff6f2 --- /dev/null +++ b/packages/legacy/rollup-plugin/test/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../tsconfig.json", + "include": ["../src/**/*", "./**/*"], + "compilerOptions": { + "types": ["node"] + } +} diff --git a/packages/legacy/rollup-plugin/tsconfig.json b/packages/legacy/rollup-plugin/tsconfig.json new file mode 100644 index 000000000000..79bdd1df1220 --- /dev/null +++ b/packages/legacy/rollup-plugin/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../../tsconfig.json", + "include": ["./src/**/*.ts", "./package.json"] +} diff --git a/packages/legacy/rollup-plugin/tsconfig.types.json b/packages/legacy/rollup-plugin/tsconfig.types.json new file mode 100644 index 000000000000..9321489cd9a9 --- /dev/null +++ b/packages/legacy/rollup-plugin/tsconfig.types.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "build/types" + } +} diff --git a/packages/legacy/rollup-plugin/vite.config.ts b/packages/legacy/rollup-plugin/vite.config.ts new file mode 100644 index 000000000000..d18e1bd6826f --- /dev/null +++ b/packages/legacy/rollup-plugin/vite.config.ts @@ -0,0 +1,8 @@ +import baseConfig from '../../../vite/vite.config'; + +export default { + ...baseConfig, + test: { + ...baseConfig.test, + }, +}; diff --git a/packages/legacy/vite-plugin/.gitignore b/packages/legacy/vite-plugin/.gitignore new file mode 100644 index 000000000000..22cfeae206b4 --- /dev/null +++ b/packages/legacy/vite-plugin/.gitignore @@ -0,0 +1,2 @@ +build +*.tgz diff --git a/packages/legacy/vite-plugin/LICENSE b/packages/legacy/vite-plugin/LICENSE new file mode 100644 index 000000000000..c23a90edc9be --- /dev/null +++ b/packages/legacy/vite-plugin/LICENSE @@ -0,0 +1,29 @@ +# MIT License + +Copyright (c) 2022-2026, Sentry +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/legacy/vite-plugin/README.md b/packages/legacy/vite-plugin/README.md new file mode 100644 index 000000000000..95264132eb3b --- /dev/null +++ b/packages/legacy/vite-plugin/README.md @@ -0,0 +1,47 @@ +

+ + Sentry + +

+ +# Sentry Vite Plugin + +A Vite plugin that uploads source maps to Sentry and injects release and Debug ID information into your bundles. + +This package re-exports `@sentry/bundler-plugins/vite`. + +## Installation + +```bash +npm install @sentry/vite-plugin --save-dev +``` + +## Usage + +```js +// vite.config.js +import { defineConfig } from 'vite'; +import { sentryVitePlugin } from '@sentry/vite-plugin'; + +export default defineConfig({ + build: { + sourcemap: true, + }, + plugins: [ + sentryVitePlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + ], +}); +``` + +## Documentation + +- [Uploading source maps](https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/) + +## Support + +- [Report a bug](https://github.com/getsentry/sentry-javascript/issues/new/choose) +- [Contributing](https://github.com/getsentry/sentry-javascript/blob/develop/CONTRIBUTING.md) diff --git a/packages/legacy/vite-plugin/package.json b/packages/legacy/vite-plugin/package.json new file mode 100644 index 000000000000..4f8551417edd --- /dev/null +++ b/packages/legacy/vite-plugin/package.json @@ -0,0 +1,56 @@ +{ + "name": "@sentry/vite-plugin", + "version": "11.4.0", + "description": "Official Sentry Vite plugin", + "repository": "git://github.com/getsentry/sentry-javascript.git", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin", + "author": "Sentry", + "license": "MIT", + "keywords": [ + "Sentry", + "Vite", + "bundler", + "plugin" + ], + "engines": { + "node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "/build" + ], + "main": "build/cjs/index.js", + "module": "build/esm/index.js", + "types": "build/types/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./build/types/index.d.ts", + "import": "./build/esm/index.js", + "require": "./build/cjs/index.js" + } + }, + "scripts": { + "build": "run-p build:transpile build:types", + "build:dev": "yarn build", + "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:types": "tsc -p tsconfig.types.json", + "build:watch": "run-p build:transpile:watch", + "build:dev:watch": "yarn build:watch", + "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:tarball": "npm pack", + "clean": "rimraf build coverage sentry-vite-plugin-*.tgz", + "lint": "oxlint . --type-aware", + "lint:fix": "oxlint . --fix --type-aware", + "test": "vitest run", + "test:unit": "vitest run" + }, + "dependencies": { + "@sentry/bundler-plugins": "11.4.0" + }, + "volta": { + "extends": "../../../package.json" + } +} diff --git a/packages/legacy/vite-plugin/rollup.npm.config.mjs b/packages/legacy/vite-plugin/rollup.npm.config.mjs new file mode 100644 index 000000000000..601cc6837ce0 --- /dev/null +++ b/packages/legacy/vite-plugin/rollup.npm.config.mjs @@ -0,0 +1,7 @@ +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; + +export default makeNPMConfigVariants( + makeBaseNPMConfig({ + entrypoints: ['src/index.ts'], + }), +); diff --git a/packages/legacy/vite-plugin/src/index.ts b/packages/legacy/vite-plugin/src/index.ts new file mode 100644 index 000000000000..cc8533273401 --- /dev/null +++ b/packages/legacy/vite-plugin/src/index.ts @@ -0,0 +1 @@ +export * from '@sentry/bundler-plugins/vite'; diff --git a/packages/legacy/vite-plugin/test/index.test.ts b/packages/legacy/vite-plugin/test/index.test.ts new file mode 100644 index 000000000000..5cb1c33948c4 --- /dev/null +++ b/packages/legacy/vite-plugin/test/index.test.ts @@ -0,0 +1,10 @@ +import * as bundlerPlugins from '@sentry/bundler-plugins/vite'; +import { describe, expect, it } from 'vitest'; +import * as plugin from '../src/index'; + +describe('@sentry/vite-plugin', () => { + it('re-exports @sentry/bundler-plugins/vite', () => { + expect(plugin.sentryVitePlugin).toBe(bundlerPlugins.sentryVitePlugin); + expect(Object.keys(plugin).sort()).toEqual(Object.keys(bundlerPlugins).sort()); + }); +}); diff --git a/packages/legacy/vite-plugin/test/tsconfig.json b/packages/legacy/vite-plugin/test/tsconfig.json new file mode 100644 index 000000000000..76d0c9cff6f2 --- /dev/null +++ b/packages/legacy/vite-plugin/test/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../tsconfig.json", + "include": ["../src/**/*", "./**/*"], + "compilerOptions": { + "types": ["node"] + } +} diff --git a/packages/legacy/vite-plugin/tsconfig.json b/packages/legacy/vite-plugin/tsconfig.json new file mode 100644 index 000000000000..79bdd1df1220 --- /dev/null +++ b/packages/legacy/vite-plugin/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../../tsconfig.json", + "include": ["./src/**/*.ts", "./package.json"] +} diff --git a/packages/legacy/vite-plugin/tsconfig.types.json b/packages/legacy/vite-plugin/tsconfig.types.json new file mode 100644 index 000000000000..9321489cd9a9 --- /dev/null +++ b/packages/legacy/vite-plugin/tsconfig.types.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "build/types" + } +} diff --git a/packages/legacy/vite-plugin/vite.config.ts b/packages/legacy/vite-plugin/vite.config.ts new file mode 100644 index 000000000000..d18e1bd6826f --- /dev/null +++ b/packages/legacy/vite-plugin/vite.config.ts @@ -0,0 +1,8 @@ +import baseConfig from '../../../vite/vite.config'; + +export default { + ...baseConfig, + test: { + ...baseConfig.test, + }, +}; diff --git a/packages/legacy/webpack-plugin/.gitignore b/packages/legacy/webpack-plugin/.gitignore new file mode 100644 index 000000000000..22cfeae206b4 --- /dev/null +++ b/packages/legacy/webpack-plugin/.gitignore @@ -0,0 +1,2 @@ +build +*.tgz diff --git a/packages/legacy/webpack-plugin/LICENSE b/packages/legacy/webpack-plugin/LICENSE new file mode 100644 index 000000000000..c23a90edc9be --- /dev/null +++ b/packages/legacy/webpack-plugin/LICENSE @@ -0,0 +1,29 @@ +# MIT License + +Copyright (c) 2022-2026, Sentry +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +- Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/legacy/webpack-plugin/README.md b/packages/legacy/webpack-plugin/README.md new file mode 100644 index 000000000000..035bc61567ae --- /dev/null +++ b/packages/legacy/webpack-plugin/README.md @@ -0,0 +1,44 @@ +

+ + Sentry + +

+ +# Sentry Webpack Plugin + +A Webpack plugin that uploads source maps to Sentry and injects release and Debug ID information into your bundles. + +This package re-exports `@sentry/bundler-plugins/webpack`. + +## Installation + +```bash +npm install @sentry/webpack-plugin --save-dev +``` + +## Usage + +```js +// webpack.config.js +const { sentryWebpackPlugin } = require('@sentry/webpack-plugin'); + +module.exports = { + devtool: 'source-map', + plugins: [ + sentryWebpackPlugin({ + org: process.env.SENTRY_ORG, + project: process.env.SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, + }), + ], +}; +``` + +## Documentation + +- [Uploading source maps](https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/) + +## Support + +- [Report a bug](https://github.com/getsentry/sentry-javascript/issues/new/choose) +- [Contributing](https://github.com/getsentry/sentry-javascript/blob/develop/CONTRIBUTING.md) diff --git a/packages/legacy/webpack-plugin/package.json b/packages/legacy/webpack-plugin/package.json new file mode 100644 index 000000000000..cb111a62c07c --- /dev/null +++ b/packages/legacy/webpack-plugin/package.json @@ -0,0 +1,64 @@ +{ + "name": "@sentry/webpack-plugin", + "version": "11.4.0", + "description": "Official Sentry Webpack plugin", + "repository": "git://github.com/getsentry/sentry-javascript.git", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin", + "author": "Sentry", + "license": "MIT", + "keywords": [ + "Sentry", + "Webpack", + "bundler", + "plugin" + ], + "engines": { + "node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "/build" + ], + "main": "build/cjs/index.js", + "module": "build/esm/index.js", + "types": "build/types/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./build/types/index.d.ts", + "import": "./build/esm/index.js", + "require": "./build/cjs/index.js" + }, + "./webpack5": { + "types": "./build/types/webpack5.d.ts", + "import": "./build/esm/webpack5.js", + "require": "./build/cjs/webpack5.js" + } + }, + "scripts": { + "build": "run-p build:transpile build:types", + "build:dev": "yarn build", + "build:transpile": "rollup -c rollup.npm.config.mjs", + "build:types": "tsc -p tsconfig.types.json", + "build:watch": "run-p build:transpile:watch", + "build:dev:watch": "yarn build:watch", + "build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch", + "build:tarball": "npm pack", + "clean": "rimraf build coverage sentry-webpack-plugin-*.tgz", + "lint": "oxlint . --type-aware", + "lint:fix": "oxlint . --fix --type-aware", + "test": "vitest run", + "test:unit": "vitest run" + }, + "dependencies": { + "@sentry/bundler-plugins": "11.4.0" + }, + "peerDependencies": { + "webpack": ">=5.1.0" + }, + "volta": { + "extends": "../../../package.json" + } +} diff --git a/packages/legacy/webpack-plugin/rollup.npm.config.mjs b/packages/legacy/webpack-plugin/rollup.npm.config.mjs new file mode 100644 index 000000000000..b4522dc9186d --- /dev/null +++ b/packages/legacy/webpack-plugin/rollup.npm.config.mjs @@ -0,0 +1,7 @@ +import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils'; + +export default makeNPMConfigVariants( + makeBaseNPMConfig({ + entrypoints: ['src/index.ts', 'src/webpack5.ts'], + }), +); diff --git a/packages/legacy/webpack-plugin/src/index.ts b/packages/legacy/webpack-plugin/src/index.ts new file mode 100644 index 000000000000..054e9f40a1f3 --- /dev/null +++ b/packages/legacy/webpack-plugin/src/index.ts @@ -0,0 +1 @@ +export * from '@sentry/bundler-plugins/webpack'; diff --git a/packages/legacy/webpack-plugin/src/webpack5.ts b/packages/legacy/webpack-plugin/src/webpack5.ts new file mode 100644 index 000000000000..054e9f40a1f3 --- /dev/null +++ b/packages/legacy/webpack-plugin/src/webpack5.ts @@ -0,0 +1 @@ +export * from '@sentry/bundler-plugins/webpack'; diff --git a/packages/legacy/webpack-plugin/test/index.test.ts b/packages/legacy/webpack-plugin/test/index.test.ts new file mode 100644 index 000000000000..6a542d367dab --- /dev/null +++ b/packages/legacy/webpack-plugin/test/index.test.ts @@ -0,0 +1,15 @@ +import * as bundlerPlugins from '@sentry/bundler-plugins/webpack'; +import { describe, expect, it } from 'vitest'; +import * as plugin from '../src/index'; + +describe('@sentry/webpack-plugin', () => { + it('re-exports @sentry/bundler-plugins/webpack', () => { + expect(plugin.sentryWebpackPlugin).toBe(bundlerPlugins.sentryWebpackPlugin); + expect(Object.keys(plugin).sort()).toEqual(Object.keys(bundlerPlugins).sort()); + }); + + it('re-exports the plugin from ./webpack5', async () => { + const webpack5 = await import('../src/webpack5'); + expect(webpack5.sentryWebpackPlugin).toBe(bundlerPlugins.sentryWebpackPlugin); + }); +}); diff --git a/packages/legacy/webpack-plugin/test/tsconfig.json b/packages/legacy/webpack-plugin/test/tsconfig.json new file mode 100644 index 000000000000..76d0c9cff6f2 --- /dev/null +++ b/packages/legacy/webpack-plugin/test/tsconfig.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../tsconfig.json", + "include": ["../src/**/*", "./**/*"], + "compilerOptions": { + "types": ["node"] + } +} diff --git a/packages/legacy/webpack-plugin/tsconfig.json b/packages/legacy/webpack-plugin/tsconfig.json new file mode 100644 index 000000000000..79bdd1df1220 --- /dev/null +++ b/packages/legacy/webpack-plugin/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "../../../tsconfig.json", + "include": ["./src/**/*.ts", "./package.json"] +} diff --git a/packages/legacy/webpack-plugin/tsconfig.types.json b/packages/legacy/webpack-plugin/tsconfig.types.json new file mode 100644 index 000000000000..9321489cd9a9 --- /dev/null +++ b/packages/legacy/webpack-plugin/tsconfig.types.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "include": ["./src/**/*"], + "compilerOptions": { + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "build/types" + } +} diff --git a/packages/legacy/webpack-plugin/vite.config.ts b/packages/legacy/webpack-plugin/vite.config.ts new file mode 100644 index 000000000000..d18e1bd6826f --- /dev/null +++ b/packages/legacy/webpack-plugin/vite.config.ts @@ -0,0 +1,8 @@ +import baseConfig from '../../../vite/vite.config'; + +export default { + ...baseConfig, + test: { + ...baseConfig.test, + }, +}; From 3058255a4d8b32e6ddccfae447baa3cf6563f5c3 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 6 Oct 2026 11:49:33 +0100 Subject: [PATCH 02/10] Revert changelog and README changes --- CHANGELOG.md | 6 ------ README.md | 7 ------- packages/bundler-plugins/README.md | 12 ++++++------ 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aaa76e8a53c..96ff401eb033 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,6 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott -### Important Changes - -- **feat(bundler-plugins): Publish `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from this repository** - - The standalone bundler plugins moved here from `getsentry/sentry-javascript-bundler-plugins` and now release in lockstep with the SDK. Their version jumps from 5.x to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` subpath, so the plugin options are unchanged. The minimum Node.js version is now the same as the SDK's. `@sentry/webpack-plugin/webpack5` still works and points to the same plugin as `@sentry/webpack-plugin`. - ## 11.4.0 - feat(sveltekit): Support stable SvelteKit 3 ([#25009](https://github.com/getsentry/sentry-javascript/pull/25009)) diff --git a/README.md b/README.md index b3e484ac4d6c..688bf7e72f79 100644 --- a/README.md +++ b/README.md @@ -114,13 +114,6 @@ below: Provides the integration for Session Replay. - [`@sentry/core`](https://github.com/getsentry/sentry-javascript/tree/master/packages/core): The base for all JavaScript SDKs with interfaces, type definitions and base classes. -- [`@sentry/bundler-plugins`](https://github.com/getsentry/sentry-javascript/tree/master/packages/bundler-plugins): - Uploads source maps and injects release and Debug ID information at build time. Also available as standalone - plugins: - [`@sentry/webpack-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/webpack-plugin), - [`@sentry/vite-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/vite-plugin), - [`@sentry/rollup-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/rollup-plugin) - and [`@sentry/esbuild-plugin`](https://github.com/getsentry/sentry-javascript/tree/master/packages/legacy/esbuild-plugin). ## Bug Bounty Program diff --git a/packages/bundler-plugins/README.md b/packages/bundler-plugins/README.md index 7f53436e360b..e9387aab6f40 100644 --- a/packages/bundler-plugins/README.md +++ b/packages/bundler-plugins/README.md @@ -6,14 +6,14 @@ # Sentry Bundler Plugins -Sentry plugins for Webpack, Vite, Rollup and esbuild. Each plugin is a subpath export of this package, for example `@sentry/bundler-plugins/vite`. +Core package containing the bundler-agnostic functionality used by the [bundler plugins](https://github.com/getsentry/sentry-javascript-bundler-plugins). -The plugins are also published as standalone packages: +Check out the individual packages for more information and examples: -- [`@sentry/rollup-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin) -- [`@sentry/vite-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin) -- [`@sentry/esbuild-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin) -- [`@sentry/webpack-plugin`](https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin) +- [Rollup](https://www.npmjs.com/package/@sentry/rollup-plugin) +- [Vite](https://www.npmjs.com/package/@sentry/vite-plugin) +- [esbuild](https://www.npmjs.com/package/@sentry/esbuild-plugin) +- [Webpack](https://www.npmjs.com/package/@sentry/webpack-plugin) ## Documentation From 9ec908e03d04cb3a9c3098038295a652d0dc2104 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 6 Oct 2026 13:27:40 +0100 Subject: [PATCH 03/10] chore: Clean legacy package tarballs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index efceaee9a09c..7fd80a27395f 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "clean:build": "nx run-many -t clean", "clean:caches": "yarn rimraf eslintcache .nxcache .nx", "clean:deps": "rimraf packages/*/node_modules dev-packages/*/node_modules && rm -rf node_modules && yarn", - "clean:tarballs": "rimraf {packages,dev-packages}/*/*.tgz", + "clean:tarballs": "rimraf {packages,dev-packages}/*/*.tgz packages/legacy/*/*.tgz", "clean:watchman": "watchman watch-del \".\"", "clean:all": "run-s clean:build clean:tarballs clean:caches clean:deps clean:watchman", "format": "oxfmt . --write", From 882fab8e1a12218eeb5442e3c2437a0c20b72fde Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 7 Oct 2026 13:42:07 +0100 Subject: [PATCH 04/10] chore: Bump legacy bundler plugin packages to 11.5.0 --- packages/legacy/esbuild-plugin/package.json | 4 ++-- packages/legacy/rollup-plugin/package.json | 4 ++-- packages/legacy/vite-plugin/package.json | 4 ++-- packages/legacy/webpack-plugin/package.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/legacy/esbuild-plugin/package.json b/packages/legacy/esbuild-plugin/package.json index d7c6b315705d..baee14d02df4 100644 --- a/packages/legacy/esbuild-plugin/package.json +++ b/packages/legacy/esbuild-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/esbuild-plugin", - "version": "11.4.0", + "version": "11.5.0", "description": "Official Sentry esbuild plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.4.0" + "@sentry/bundler-plugins": "11.5.0" }, "volta": { "extends": "../../../package.json" diff --git a/packages/legacy/rollup-plugin/package.json b/packages/legacy/rollup-plugin/package.json index 9df54674c2fb..7a2b88e18c06 100644 --- a/packages/legacy/rollup-plugin/package.json +++ b/packages/legacy/rollup-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/rollup-plugin", - "version": "11.4.0", + "version": "11.5.0", "description": "Official Sentry Rollup plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin", @@ -49,7 +49,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.4.0" + "@sentry/bundler-plugins": "11.5.0" }, "peerDependencies": { "rollup": ">=3.2.0" diff --git a/packages/legacy/vite-plugin/package.json b/packages/legacy/vite-plugin/package.json index 4f8551417edd..bbf2fdf4b1cf 100644 --- a/packages/legacy/vite-plugin/package.json +++ b/packages/legacy/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vite-plugin", - "version": "11.4.0", + "version": "11.5.0", "description": "Official Sentry Vite plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.4.0" + "@sentry/bundler-plugins": "11.5.0" }, "volta": { "extends": "../../../package.json" diff --git a/packages/legacy/webpack-plugin/package.json b/packages/legacy/webpack-plugin/package.json index cb111a62c07c..ec31f412a222 100644 --- a/packages/legacy/webpack-plugin/package.json +++ b/packages/legacy/webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/webpack-plugin", - "version": "11.4.0", + "version": "11.5.0", "description": "Official Sentry Webpack plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin", @@ -53,7 +53,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.4.0" + "@sentry/bundler-plugins": "11.5.0" }, "peerDependencies": { "webpack": ">=5.1.0" From b2f3bc1b8292907dcf96a206f73754c1cf822b04 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 7 Oct 2026 13:59:51 +0100 Subject: [PATCH 05/10] test(e2e): Use packed legacy bundler plugin tarballs --- dev-packages/e2e-tests/lib/packedTarballUtils.ts | 4 +++- dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dev-packages/e2e-tests/lib/packedTarballUtils.ts b/dev-packages/e2e-tests/lib/packedTarballUtils.ts index 7469eb12f4a2..e5ddfdb7ee25 100644 --- a/dev-packages/e2e-tests/lib/packedTarballUtils.ts +++ b/dev-packages/e2e-tests/lib/packedTarballUtils.ts @@ -5,6 +5,8 @@ import { sync as globSync } from 'glob'; const E2E_TESTS_ROOT = path.resolve(__dirname, '..'); const REPOSITORY_ROOT = path.resolve(E2E_TESTS_ROOT, '../..'); +export const PACKAGE_JSON_GLOB = '{packages/*,packages/legacy/*}/package.json'; + /** * Workspace @sentry and @sentry-internal packages that have a built tarball for the E2E version. * @returns The names of the published Sentry tarball packages. @@ -13,7 +15,7 @@ export function getPublishedSentryTarballPackageNames(): string[] { const version = getE2eTestsPackageVersion(); const names: string[] = []; - for (const packageJsonPath of globSync('packages/*/package.json', { + for (const packageJsonPath of globSync(PACKAGE_JSON_GLOB, { cwd: REPOSITORY_ROOT, absolute: true, })) { diff --git a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts index ac6110ed7afd..effc367b68ba 100644 --- a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts +++ b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as path from 'path'; import { sync as globSync } from 'glob'; -import { packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; +import { PACKAGE_JSON_GLOB, packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; const e2eTestsRoot = path.resolve(__dirname, '..'); const repositoryRoot = path.resolve(e2eTestsRoot, '../..'); @@ -28,7 +28,7 @@ export function syncPackedTarballSymlinks(): void { fs.rmSync(path.join(packedDir, entry.name), { recursive: true, force: true }); } - const packageJsonPaths = globSync('packages/*/package.json', { + const packageJsonPaths = globSync(PACKAGE_JSON_GLOB, { cwd: repositoryRoot, absolute: true, }); From 5544e5fd67d4f95d34f1aae1eee8bd0f1ab97c94 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 7 Oct 2026 15:33:46 +0100 Subject: [PATCH 06/10] test(e2e): Validate packed legacy bundler plugin tarballs --- dev-packages/e2e-tests/lib/packedTarballUtils.ts | 4 ++-- dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts | 4 ++-- dev-packages/e2e-tests/validate-packed-tarball-setup.ts | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dev-packages/e2e-tests/lib/packedTarballUtils.ts b/dev-packages/e2e-tests/lib/packedTarballUtils.ts index e5ddfdb7ee25..21edf9145e10 100644 --- a/dev-packages/e2e-tests/lib/packedTarballUtils.ts +++ b/dev-packages/e2e-tests/lib/packedTarballUtils.ts @@ -5,7 +5,7 @@ import { sync as globSync } from 'glob'; const E2E_TESTS_ROOT = path.resolve(__dirname, '..'); const REPOSITORY_ROOT = path.resolve(E2E_TESTS_ROOT, '../..'); -export const PACKAGE_JSON_GLOB = '{packages/*,packages/legacy/*}/package.json'; +export const PACKAGE_DIRS_GLOB = '{packages/*,packages/legacy/*}'; /** * Workspace @sentry and @sentry-internal packages that have a built tarball for the E2E version. @@ -15,7 +15,7 @@ export function getPublishedSentryTarballPackageNames(): string[] { const version = getE2eTestsPackageVersion(); const names: string[] = []; - for (const packageJsonPath of globSync(PACKAGE_JSON_GLOB, { + for (const packageJsonPath of globSync(`${PACKAGE_DIRS_GLOB}/package.json`, { cwd: REPOSITORY_ROOT, absolute: true, })) { diff --git a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts index effc367b68ba..f7f6671c7e43 100644 --- a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts +++ b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as path from 'path'; import { sync as globSync } from 'glob'; -import { PACKAGE_JSON_GLOB, packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; +import { PACKAGE_DIRS_GLOB, packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; const e2eTestsRoot = path.resolve(__dirname, '..'); const repositoryRoot = path.resolve(e2eTestsRoot, '../..'); @@ -28,7 +28,7 @@ export function syncPackedTarballSymlinks(): void { fs.rmSync(path.join(packedDir, entry.name), { recursive: true, force: true }); } - const packageJsonPaths = globSync(PACKAGE_JSON_GLOB, { + const packageJsonPaths = globSync(`${PACKAGE_DIRS_GLOB}/package.json`, { cwd: repositoryRoot, absolute: true, }); diff --git a/dev-packages/e2e-tests/validate-packed-tarball-setup.ts b/dev-packages/e2e-tests/validate-packed-tarball-setup.ts index a6cc966d56f0..3eeae74aadff 100644 --- a/dev-packages/e2e-tests/validate-packed-tarball-setup.ts +++ b/dev-packages/e2e-tests/validate-packed-tarball-setup.ts @@ -2,13 +2,14 @@ import * as assert from 'assert'; import * as fs from 'fs'; import { sync as globSync } from 'glob'; import * as path from 'path'; +import { PACKAGE_DIRS_GLOB } from './lib/packedTarballUtils'; const repositoryRoot = path.resolve(__dirname, '../..'); const e2ePkg = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8')) as { version: string }; const version = e2ePkg.version; -const tarballPaths = globSync(`packages/*/sentry-*-${version}.tgz`, { +const tarballPaths = globSync(`${PACKAGE_DIRS_GLOB}/sentry-*-${version}.tgz`, { cwd: repositoryRoot, absolute: true, }); From a309bd227b613542cb333925335a6cd330759573 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 8 Oct 2026 11:38:34 +0100 Subject: [PATCH 07/10] docs: Add changelog entry for legacy bundler plugin packages --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ca19496299f..34c9222d40c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +### Important Changes + +- **feat(bundler-plugins): Release `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from the SDK repository ([#25095](https://github.com/getsentry/sentry-javascript/pull/25095))** + + The four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes: + + - Node.js 20.19.0 or higher is required. + - `@sentry/webpack-plugin` requires webpack 5.1 or higher. The `@sentry/webpack-plugin/webpack5` entry point still works and exports the same plugin as `@sentry/webpack-plugin`. + - The plugins use the `sentry` CLI SDK instead of `@sentry/cli`. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work. + - Deploys that the plugins create on Vercel use the value of `VERCEL_TARGET_ENV` (`production`, `preview` or a custom name) as their environment, instead of `vercel-production` or `vercel-preview`. To keep the old value, set `release.deploy.env`. + ## 11.5.0 ### Important Changes From c9a444b390342100e92c4982114fbe1cc99cfd6d Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Mon, 12 Oct 2026 14:31:28 +0100 Subject: [PATCH 08/10] chore: Bump legacy bundler plugin packages to 11.6.0 Also move the changelog entry back under Unreleased. --- CHANGELOG.md | 22 ++++++++++----------- packages/legacy/esbuild-plugin/package.json | 4 ++-- packages/legacy/rollup-plugin/package.json | 4 ++-- packages/legacy/vite-plugin/package.json | 4 ++-- packages/legacy/webpack-plugin/package.json | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 029a399326a4..805743496b3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ Work in this release was contributed by @Philip-Nwabuwa and @4ktLuffy. Thank you for your contributions! +### Important Changes + +- **feat(bundler-plugins): Release `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from the SDK repository ([#25095](https://github.com/getsentry/sentry-javascript/pull/25095))** + + The four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes: + + - Node.js 20.19.0 or higher is required. + - `@sentry/webpack-plugin` requires webpack 5.1 or higher. The `@sentry/webpack-plugin/webpack5` entry point still works and exports the same plugin as `@sentry/webpack-plugin`. + - The plugins use the `sentry` CLI SDK instead of `@sentry/cli`. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work. + - Deploys that the plugins create on Vercel use the value of `VERCEL_TARGET_ENV` (`production`, `preview` or a custom name) as their environment, instead of `vercel-production` or `vercel-preview`. To keep the old value, set `release.deploy.env`. + ## 11.6.0 ### Important Changes @@ -87,17 +98,6 @@ Work in this release was contributed by @Philip-Nwabuwa and @4ktLuffy. Thank you Work in this release was contributed by @zkasuran. Thank you for your contribution! -### Important Changes - -- **feat(bundler-plugins): Release `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from the SDK repository ([#25095](https://github.com/getsentry/sentry-javascript/pull/25095))** - - The four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes: - - - Node.js 20.19.0 or higher is required. - - `@sentry/webpack-plugin` requires webpack 5.1 or higher. The `@sentry/webpack-plugin/webpack5` entry point still works and exports the same plugin as `@sentry/webpack-plugin`. - - The plugins use the `sentry` CLI SDK instead of `@sentry/cli`. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work. - - Deploys that the plugins create on Vercel use the value of `VERCEL_TARGET_ENV` (`production`, `preview` or a custom name) as their environment, instead of `vercel-production` or `vercel-preview`. To keep the old value, set `release.deploy.env`. - ## 11.5.0 ### Important Changes diff --git a/packages/legacy/esbuild-plugin/package.json b/packages/legacy/esbuild-plugin/package.json index baee14d02df4..be4949507475 100644 --- a/packages/legacy/esbuild-plugin/package.json +++ b/packages/legacy/esbuild-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/esbuild-plugin", - "version": "11.5.0", + "version": "11.6.0", "description": "Official Sentry esbuild plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.5.0" + "@sentry/bundler-plugins": "11.6.0" }, "volta": { "extends": "../../../package.json" diff --git a/packages/legacy/rollup-plugin/package.json b/packages/legacy/rollup-plugin/package.json index 7a2b88e18c06..3129ffc4fc11 100644 --- a/packages/legacy/rollup-plugin/package.json +++ b/packages/legacy/rollup-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/rollup-plugin", - "version": "11.5.0", + "version": "11.6.0", "description": "Official Sentry Rollup plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin", @@ -49,7 +49,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.5.0" + "@sentry/bundler-plugins": "11.6.0" }, "peerDependencies": { "rollup": ">=3.2.0" diff --git a/packages/legacy/vite-plugin/package.json b/packages/legacy/vite-plugin/package.json index bbf2fdf4b1cf..80f2cc40f60e 100644 --- a/packages/legacy/vite-plugin/package.json +++ b/packages/legacy/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vite-plugin", - "version": "11.5.0", + "version": "11.6.0", "description": "Official Sentry Vite plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.5.0" + "@sentry/bundler-plugins": "11.6.0" }, "volta": { "extends": "../../../package.json" diff --git a/packages/legacy/webpack-plugin/package.json b/packages/legacy/webpack-plugin/package.json index ec31f412a222..3f65d309e90a 100644 --- a/packages/legacy/webpack-plugin/package.json +++ b/packages/legacy/webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/webpack-plugin", - "version": "11.5.0", + "version": "11.6.0", "description": "Official Sentry Webpack plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin", @@ -53,7 +53,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.5.0" + "@sentry/bundler-plugins": "11.6.0" }, "peerDependencies": { "webpack": ">=5.1.0" From 8e18de3149b7018f62df0b9e77be8059ad2df9ba Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 13 Oct 2026 10:54:54 +0100 Subject: [PATCH 09/10] ref(bundler-plugins): Move plugin packages out of the legacy folder --- .github/workflows/build.yml | 19 +++++++++---------- .../e2e-tests/lib/packedTarballUtils.ts | 4 +--- .../lib/syncPackedTarballSymlinks.ts | 4 ++-- .../validate-packed-tarball-setup.ts | 3 +-- package.json | 10 +++++----- .../{legacy => }/esbuild-plugin/.gitignore | 0 packages/{legacy => }/esbuild-plugin/LICENSE | 0 .../{legacy => }/esbuild-plugin/README.md | 0 .../{legacy => }/esbuild-plugin/package.json | 4 ++-- .../esbuild-plugin/rollup.npm.config.mjs | 0 .../{legacy => }/esbuild-plugin/src/index.ts | 0 .../esbuild-plugin/test/index.test.ts | 0 .../esbuild-plugin/test/tsconfig.json | 0 .../tsconfig.json | 2 +- .../esbuild-plugin/tsconfig.types.json | 0 .../vite.config.ts | 2 +- .../{legacy => }/rollup-plugin/.gitignore | 0 packages/{legacy => }/rollup-plugin/LICENSE | 0 packages/{legacy => }/rollup-plugin/README.md | 0 .../{legacy => }/rollup-plugin/package.json | 4 ++-- .../rollup-plugin/rollup.npm.config.mjs | 0 .../{legacy => }/rollup-plugin/src/index.ts | 0 .../rollup-plugin/test/index.test.ts | 0 .../rollup-plugin/test/tsconfig.json | 0 .../tsconfig.json | 2 +- .../rollup-plugin/tsconfig.types.json | 0 .../vite.config.ts | 2 +- packages/{legacy => }/vite-plugin/.gitignore | 0 packages/{legacy => }/vite-plugin/LICENSE | 0 packages/{legacy => }/vite-plugin/README.md | 0 .../{legacy => }/vite-plugin/package.json | 4 ++-- .../vite-plugin/rollup.npm.config.mjs | 0 .../{legacy => }/vite-plugin/src/index.ts | 0 .../vite-plugin/test/index.test.ts | 0 .../vite-plugin/test/tsconfig.json | 0 .../{legacy => }/vite-plugin/tsconfig.json | 2 +- .../vite-plugin/tsconfig.types.json | 0 .../vite.config.ts | 2 +- .../{legacy => }/webpack-plugin/.gitignore | 0 packages/{legacy => }/webpack-plugin/LICENSE | 0 .../{legacy => }/webpack-plugin/README.md | 0 .../{legacy => }/webpack-plugin/package.json | 4 ++-- .../webpack-plugin/rollup.npm.config.mjs | 0 .../{legacy => }/webpack-plugin/src/index.ts | 0 .../webpack-plugin/src/webpack5.ts | 0 .../webpack-plugin/test/index.test.ts | 0 .../webpack-plugin/test/tsconfig.json | 0 .../{legacy => }/webpack-plugin/tsconfig.json | 2 +- .../webpack-plugin/tsconfig.types.json | 0 .../webpack-plugin/vite.config.ts | 2 +- 50 files changed, 34 insertions(+), 38 deletions(-) rename packages/{legacy => }/esbuild-plugin/.gitignore (100%) rename packages/{legacy => }/esbuild-plugin/LICENSE (100%) rename packages/{legacy => }/esbuild-plugin/README.md (100%) rename packages/{legacy => }/esbuild-plugin/package.json (94%) rename packages/{legacy => }/esbuild-plugin/rollup.npm.config.mjs (100%) rename packages/{legacy => }/esbuild-plugin/src/index.ts (100%) rename packages/{legacy => }/esbuild-plugin/test/index.test.ts (100%) rename packages/{legacy => }/esbuild-plugin/test/tsconfig.json (100%) rename packages/{legacy/rollup-plugin => esbuild-plugin}/tsconfig.json (73%) rename packages/{legacy => }/esbuild-plugin/tsconfig.types.json (100%) rename packages/{legacy/rollup-plugin => esbuild-plugin}/vite.config.ts (59%) rename packages/{legacy => }/rollup-plugin/.gitignore (100%) rename packages/{legacy => }/rollup-plugin/LICENSE (100%) rename packages/{legacy => }/rollup-plugin/README.md (100%) rename packages/{legacy => }/rollup-plugin/package.json (95%) rename packages/{legacy => }/rollup-plugin/rollup.npm.config.mjs (100%) rename packages/{legacy => }/rollup-plugin/src/index.ts (100%) rename packages/{legacy => }/rollup-plugin/test/index.test.ts (100%) rename packages/{legacy => }/rollup-plugin/test/tsconfig.json (100%) rename packages/{legacy/esbuild-plugin => rollup-plugin}/tsconfig.json (73%) rename packages/{legacy => }/rollup-plugin/tsconfig.types.json (100%) rename packages/{legacy/vite-plugin => rollup-plugin}/vite.config.ts (59%) rename packages/{legacy => }/vite-plugin/.gitignore (100%) rename packages/{legacy => }/vite-plugin/LICENSE (100%) rename packages/{legacy => }/vite-plugin/README.md (100%) rename packages/{legacy => }/vite-plugin/package.json (94%) rename packages/{legacy => }/vite-plugin/rollup.npm.config.mjs (100%) rename packages/{legacy => }/vite-plugin/src/index.ts (100%) rename packages/{legacy => }/vite-plugin/test/index.test.ts (100%) rename packages/{legacy => }/vite-plugin/test/tsconfig.json (100%) rename packages/{legacy => }/vite-plugin/tsconfig.json (73%) rename packages/{legacy => }/vite-plugin/tsconfig.types.json (100%) rename packages/{legacy/esbuild-plugin => vite-plugin}/vite.config.ts (59%) rename packages/{legacy => }/webpack-plugin/.gitignore (100%) rename packages/{legacy => }/webpack-plugin/LICENSE (100%) rename packages/{legacy => }/webpack-plugin/README.md (100%) rename packages/{legacy => }/webpack-plugin/package.json (95%) rename packages/{legacy => }/webpack-plugin/rollup.npm.config.mjs (100%) rename packages/{legacy => }/webpack-plugin/src/index.ts (100%) rename packages/{legacy => }/webpack-plugin/src/webpack5.ts (100%) rename packages/{legacy => }/webpack-plugin/test/index.test.ts (100%) rename packages/{legacy => }/webpack-plugin/test/tsconfig.json (100%) rename packages/{legacy => }/webpack-plugin/tsconfig.json (73%) rename packages/{legacy => }/webpack-plugin/tsconfig.types.json (100%) rename packages/{legacy => }/webpack-plugin/vite.config.ts (59%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9649c5efbc7..55dcd184d04c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,9 +43,7 @@ env: # upload-artifact globs drop the path through the first `*` (see upload-artifact # README). Tarballs therefore land in the artifact as /*.tgz; download # build-tarball-output into packages/ so they resolve to packages//*.tgz. - TARBALL_ARTIFACT_GLOB: | - packages/*/*.tgz - packages/legacy/*/*.tgz + TARBALL_ARTIFACT_GLOB: packages/*/*.tgz TARBALL_ARTIFACT_DOWNLOAD_PATH: ${{ github.workspace }}/packages BUILD_LAYER_PATH: ${{ github.workspace }}/packages/aws-serverless/build/aws/dist-serverless @@ -894,9 +892,8 @@ jobs: with: ref: ${{ env.HEAD_COMMIT }} # The fixtures install the locally-packed `@sentry/bundler-plugins` tarball with pnpm. - - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 - with: - version: 9.15.9 + - name: Install pnpm + uses: ./.github/actions/install-pnpm - name: Set up Node uses: actions/setup-node@v7 with: @@ -1058,9 +1055,10 @@ jobs: uses: actions/checkout@v7 with: ref: ${{ env.HEAD_COMMIT }} - - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 + - name: Install pnpm + uses: ./.github/actions/install-pnpm with: - version: ${{ matrix.test-application == 'nuxt-5' && '11.10.0' || '9.15.9' }} + package-json: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json' - name: Set up Node uses: actions/setup-node@v7 with: @@ -1213,9 +1211,10 @@ jobs: uses: actions/checkout@v7 with: ref: ${{ env.HEAD_COMMIT }} - - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 + - name: Install pnpm + uses: ./.github/actions/install-pnpm with: - version: ${{ matrix.test-application == 'nuxt-5' && '11.10.0' || '9.15.9' }} + package-json: 'dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/package.json' - name: Set up Node uses: actions/setup-node@v7 with: diff --git a/dev-packages/e2e-tests/lib/packedTarballUtils.ts b/dev-packages/e2e-tests/lib/packedTarballUtils.ts index 21edf9145e10..7469eb12f4a2 100644 --- a/dev-packages/e2e-tests/lib/packedTarballUtils.ts +++ b/dev-packages/e2e-tests/lib/packedTarballUtils.ts @@ -5,8 +5,6 @@ import { sync as globSync } from 'glob'; const E2E_TESTS_ROOT = path.resolve(__dirname, '..'); const REPOSITORY_ROOT = path.resolve(E2E_TESTS_ROOT, '../..'); -export const PACKAGE_DIRS_GLOB = '{packages/*,packages/legacy/*}'; - /** * Workspace @sentry and @sentry-internal packages that have a built tarball for the E2E version. * @returns The names of the published Sentry tarball packages. @@ -15,7 +13,7 @@ export function getPublishedSentryTarballPackageNames(): string[] { const version = getE2eTestsPackageVersion(); const names: string[] = []; - for (const packageJsonPath of globSync(`${PACKAGE_DIRS_GLOB}/package.json`, { + for (const packageJsonPath of globSync('packages/*/package.json', { cwd: REPOSITORY_ROOT, absolute: true, })) { diff --git a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts index f7f6671c7e43..ac6110ed7afd 100644 --- a/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts +++ b/dev-packages/e2e-tests/lib/syncPackedTarballSymlinks.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as path from 'path'; import { sync as globSync } from 'glob'; -import { PACKAGE_DIRS_GLOB, packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; +import { packedSymlinkFilename, versionedTarballFilename } from './packedTarballUtils'; const e2eTestsRoot = path.resolve(__dirname, '..'); const repositoryRoot = path.resolve(e2eTestsRoot, '../..'); @@ -28,7 +28,7 @@ export function syncPackedTarballSymlinks(): void { fs.rmSync(path.join(packedDir, entry.name), { recursive: true, force: true }); } - const packageJsonPaths = globSync(`${PACKAGE_DIRS_GLOB}/package.json`, { + const packageJsonPaths = globSync('packages/*/package.json', { cwd: repositoryRoot, absolute: true, }); diff --git a/dev-packages/e2e-tests/validate-packed-tarball-setup.ts b/dev-packages/e2e-tests/validate-packed-tarball-setup.ts index 3eeae74aadff..a6cc966d56f0 100644 --- a/dev-packages/e2e-tests/validate-packed-tarball-setup.ts +++ b/dev-packages/e2e-tests/validate-packed-tarball-setup.ts @@ -2,14 +2,13 @@ import * as assert from 'assert'; import * as fs from 'fs'; import { sync as globSync } from 'glob'; import * as path from 'path'; -import { PACKAGE_DIRS_GLOB } from './lib/packedTarballUtils'; const repositoryRoot = path.resolve(__dirname, '../..'); const e2ePkg = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8')) as { version: string }; const version = e2ePkg.version; -const tarballPaths = globSync(`${PACKAGE_DIRS_GLOB}/sentry-*-${version}.tgz`, { +const tarballPaths = globSync(`packages/*/sentry-*-${version}.tgz`, { cwd: repositoryRoot, absolute: true, }); diff --git a/package.json b/package.json index dc4e7daa3262..3e0beef30732 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "clean:build": "nx run-many -t clean", "clean:caches": "yarn rimraf eslintcache .nxcache .nx", "clean:deps": "rimraf packages/*/node_modules dev-packages/*/node_modules && rm -rf node_modules && yarn", - "clean:tarballs": "rimraf {packages,dev-packages}/*/*.tgz packages/legacy/*/*.tgz", + "clean:tarballs": "rimraf {packages,dev-packages}/*/*.tgz", "clean:watchman": "watchman watch-del \".\"", "clean:all": "run-s clean:build clean:tarballs clean:caches clean:deps clean:watchman", "format": "oxfmt . --write", @@ -67,6 +67,7 @@ "packages/effect", "packages/ember", "packages/elysia", + "packages/esbuild-plugin", "packages/eslint-config-sdk", "packages/eslint-plugin-sdk", "packages/feedback", @@ -88,6 +89,7 @@ "packages/replay-internal", "packages/replay-canvas", "packages/replay-worker", + "packages/rollup-plugin", "packages/server-runtime-injection", "packages/server-utils", "packages/solid", @@ -97,12 +99,10 @@ "packages/tanstackstart-react", "packages/typescript", "packages/vercel-edge", + "packages/vite-plugin", "packages/vue", "packages/wasm", - "packages/legacy/esbuild-plugin", - "packages/legacy/rollup-plugin", - "packages/legacy/vite-plugin", - "packages/legacy/webpack-plugin", + "packages/webpack-plugin", "dev-packages/browser-integration-tests", "dev-packages/bundler-plugin-integration-tests", "dev-packages/e2e-tests", diff --git a/packages/legacy/esbuild-plugin/.gitignore b/packages/esbuild-plugin/.gitignore similarity index 100% rename from packages/legacy/esbuild-plugin/.gitignore rename to packages/esbuild-plugin/.gitignore diff --git a/packages/legacy/esbuild-plugin/LICENSE b/packages/esbuild-plugin/LICENSE similarity index 100% rename from packages/legacy/esbuild-plugin/LICENSE rename to packages/esbuild-plugin/LICENSE diff --git a/packages/legacy/esbuild-plugin/README.md b/packages/esbuild-plugin/README.md similarity index 100% rename from packages/legacy/esbuild-plugin/README.md rename to packages/esbuild-plugin/README.md diff --git a/packages/legacy/esbuild-plugin/package.json b/packages/esbuild-plugin/package.json similarity index 94% rename from packages/legacy/esbuild-plugin/package.json rename to packages/esbuild-plugin/package.json index be4949507475..8a05399418db 100644 --- a/packages/legacy/esbuild-plugin/package.json +++ b/packages/esbuild-plugin/package.json @@ -3,7 +3,7 @@ "version": "11.6.0", "description": "Official Sentry esbuild plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", - "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/esbuild-plugin", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/esbuild-plugin", "author": "Sentry", "license": "MIT", "keywords": [ @@ -51,6 +51,6 @@ "@sentry/bundler-plugins": "11.6.0" }, "volta": { - "extends": "../../../package.json" + "extends": "../../package.json" } } diff --git a/packages/legacy/esbuild-plugin/rollup.npm.config.mjs b/packages/esbuild-plugin/rollup.npm.config.mjs similarity index 100% rename from packages/legacy/esbuild-plugin/rollup.npm.config.mjs rename to packages/esbuild-plugin/rollup.npm.config.mjs diff --git a/packages/legacy/esbuild-plugin/src/index.ts b/packages/esbuild-plugin/src/index.ts similarity index 100% rename from packages/legacy/esbuild-plugin/src/index.ts rename to packages/esbuild-plugin/src/index.ts diff --git a/packages/legacy/esbuild-plugin/test/index.test.ts b/packages/esbuild-plugin/test/index.test.ts similarity index 100% rename from packages/legacy/esbuild-plugin/test/index.test.ts rename to packages/esbuild-plugin/test/index.test.ts diff --git a/packages/legacy/esbuild-plugin/test/tsconfig.json b/packages/esbuild-plugin/test/tsconfig.json similarity index 100% rename from packages/legacy/esbuild-plugin/test/tsconfig.json rename to packages/esbuild-plugin/test/tsconfig.json diff --git a/packages/legacy/rollup-plugin/tsconfig.json b/packages/esbuild-plugin/tsconfig.json similarity index 73% rename from packages/legacy/rollup-plugin/tsconfig.json rename to packages/esbuild-plugin/tsconfig.json index 79bdd1df1220..2044e12308ea 100644 --- a/packages/legacy/rollup-plugin/tsconfig.json +++ b/packages/esbuild-plugin/tsconfig.json @@ -1,5 +1,5 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../../tsconfig.json", + "extends": "../../tsconfig.json", "include": ["./src/**/*.ts", "./package.json"] } diff --git a/packages/legacy/esbuild-plugin/tsconfig.types.json b/packages/esbuild-plugin/tsconfig.types.json similarity index 100% rename from packages/legacy/esbuild-plugin/tsconfig.types.json rename to packages/esbuild-plugin/tsconfig.types.json diff --git a/packages/legacy/rollup-plugin/vite.config.ts b/packages/esbuild-plugin/vite.config.ts similarity index 59% rename from packages/legacy/rollup-plugin/vite.config.ts rename to packages/esbuild-plugin/vite.config.ts index d18e1bd6826f..f18ec92095bc 100644 --- a/packages/legacy/rollup-plugin/vite.config.ts +++ b/packages/esbuild-plugin/vite.config.ts @@ -1,4 +1,4 @@ -import baseConfig from '../../../vite/vite.config'; +import baseConfig from '../../vite/vite.config'; export default { ...baseConfig, diff --git a/packages/legacy/rollup-plugin/.gitignore b/packages/rollup-plugin/.gitignore similarity index 100% rename from packages/legacy/rollup-plugin/.gitignore rename to packages/rollup-plugin/.gitignore diff --git a/packages/legacy/rollup-plugin/LICENSE b/packages/rollup-plugin/LICENSE similarity index 100% rename from packages/legacy/rollup-plugin/LICENSE rename to packages/rollup-plugin/LICENSE diff --git a/packages/legacy/rollup-plugin/README.md b/packages/rollup-plugin/README.md similarity index 100% rename from packages/legacy/rollup-plugin/README.md rename to packages/rollup-plugin/README.md diff --git a/packages/legacy/rollup-plugin/package.json b/packages/rollup-plugin/package.json similarity index 95% rename from packages/legacy/rollup-plugin/package.json rename to packages/rollup-plugin/package.json index 3129ffc4fc11..7e2e20d758b2 100644 --- a/packages/legacy/rollup-plugin/package.json +++ b/packages/rollup-plugin/package.json @@ -3,7 +3,7 @@ "version": "11.6.0", "description": "Official Sentry Rollup plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", - "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/rollup-plugin", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/rollup-plugin", "author": "Sentry", "license": "MIT", "keywords": [ @@ -60,6 +60,6 @@ } }, "volta": { - "extends": "../../../package.json" + "extends": "../../package.json" } } diff --git a/packages/legacy/rollup-plugin/rollup.npm.config.mjs b/packages/rollup-plugin/rollup.npm.config.mjs similarity index 100% rename from packages/legacy/rollup-plugin/rollup.npm.config.mjs rename to packages/rollup-plugin/rollup.npm.config.mjs diff --git a/packages/legacy/rollup-plugin/src/index.ts b/packages/rollup-plugin/src/index.ts similarity index 100% rename from packages/legacy/rollup-plugin/src/index.ts rename to packages/rollup-plugin/src/index.ts diff --git a/packages/legacy/rollup-plugin/test/index.test.ts b/packages/rollup-plugin/test/index.test.ts similarity index 100% rename from packages/legacy/rollup-plugin/test/index.test.ts rename to packages/rollup-plugin/test/index.test.ts diff --git a/packages/legacy/rollup-plugin/test/tsconfig.json b/packages/rollup-plugin/test/tsconfig.json similarity index 100% rename from packages/legacy/rollup-plugin/test/tsconfig.json rename to packages/rollup-plugin/test/tsconfig.json diff --git a/packages/legacy/esbuild-plugin/tsconfig.json b/packages/rollup-plugin/tsconfig.json similarity index 73% rename from packages/legacy/esbuild-plugin/tsconfig.json rename to packages/rollup-plugin/tsconfig.json index 79bdd1df1220..2044e12308ea 100644 --- a/packages/legacy/esbuild-plugin/tsconfig.json +++ b/packages/rollup-plugin/tsconfig.json @@ -1,5 +1,5 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../../tsconfig.json", + "extends": "../../tsconfig.json", "include": ["./src/**/*.ts", "./package.json"] } diff --git a/packages/legacy/rollup-plugin/tsconfig.types.json b/packages/rollup-plugin/tsconfig.types.json similarity index 100% rename from packages/legacy/rollup-plugin/tsconfig.types.json rename to packages/rollup-plugin/tsconfig.types.json diff --git a/packages/legacy/vite-plugin/vite.config.ts b/packages/rollup-plugin/vite.config.ts similarity index 59% rename from packages/legacy/vite-plugin/vite.config.ts rename to packages/rollup-plugin/vite.config.ts index d18e1bd6826f..f18ec92095bc 100644 --- a/packages/legacy/vite-plugin/vite.config.ts +++ b/packages/rollup-plugin/vite.config.ts @@ -1,4 +1,4 @@ -import baseConfig from '../../../vite/vite.config'; +import baseConfig from '../../vite/vite.config'; export default { ...baseConfig, diff --git a/packages/legacy/vite-plugin/.gitignore b/packages/vite-plugin/.gitignore similarity index 100% rename from packages/legacy/vite-plugin/.gitignore rename to packages/vite-plugin/.gitignore diff --git a/packages/legacy/vite-plugin/LICENSE b/packages/vite-plugin/LICENSE similarity index 100% rename from packages/legacy/vite-plugin/LICENSE rename to packages/vite-plugin/LICENSE diff --git a/packages/legacy/vite-plugin/README.md b/packages/vite-plugin/README.md similarity index 100% rename from packages/legacy/vite-plugin/README.md rename to packages/vite-plugin/README.md diff --git a/packages/legacy/vite-plugin/package.json b/packages/vite-plugin/package.json similarity index 94% rename from packages/legacy/vite-plugin/package.json rename to packages/vite-plugin/package.json index 80f2cc40f60e..2f61b4f613cb 100644 --- a/packages/legacy/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -3,7 +3,7 @@ "version": "11.6.0", "description": "Official Sentry Vite plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", - "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/vite-plugin", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/vite-plugin", "author": "Sentry", "license": "MIT", "keywords": [ @@ -51,6 +51,6 @@ "@sentry/bundler-plugins": "11.6.0" }, "volta": { - "extends": "../../../package.json" + "extends": "../../package.json" } } diff --git a/packages/legacy/vite-plugin/rollup.npm.config.mjs b/packages/vite-plugin/rollup.npm.config.mjs similarity index 100% rename from packages/legacy/vite-plugin/rollup.npm.config.mjs rename to packages/vite-plugin/rollup.npm.config.mjs diff --git a/packages/legacy/vite-plugin/src/index.ts b/packages/vite-plugin/src/index.ts similarity index 100% rename from packages/legacy/vite-plugin/src/index.ts rename to packages/vite-plugin/src/index.ts diff --git a/packages/legacy/vite-plugin/test/index.test.ts b/packages/vite-plugin/test/index.test.ts similarity index 100% rename from packages/legacy/vite-plugin/test/index.test.ts rename to packages/vite-plugin/test/index.test.ts diff --git a/packages/legacy/vite-plugin/test/tsconfig.json b/packages/vite-plugin/test/tsconfig.json similarity index 100% rename from packages/legacy/vite-plugin/test/tsconfig.json rename to packages/vite-plugin/test/tsconfig.json diff --git a/packages/legacy/vite-plugin/tsconfig.json b/packages/vite-plugin/tsconfig.json similarity index 73% rename from packages/legacy/vite-plugin/tsconfig.json rename to packages/vite-plugin/tsconfig.json index 79bdd1df1220..2044e12308ea 100644 --- a/packages/legacy/vite-plugin/tsconfig.json +++ b/packages/vite-plugin/tsconfig.json @@ -1,5 +1,5 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../../tsconfig.json", + "extends": "../../tsconfig.json", "include": ["./src/**/*.ts", "./package.json"] } diff --git a/packages/legacy/vite-plugin/tsconfig.types.json b/packages/vite-plugin/tsconfig.types.json similarity index 100% rename from packages/legacy/vite-plugin/tsconfig.types.json rename to packages/vite-plugin/tsconfig.types.json diff --git a/packages/legacy/esbuild-plugin/vite.config.ts b/packages/vite-plugin/vite.config.ts similarity index 59% rename from packages/legacy/esbuild-plugin/vite.config.ts rename to packages/vite-plugin/vite.config.ts index d18e1bd6826f..f18ec92095bc 100644 --- a/packages/legacy/esbuild-plugin/vite.config.ts +++ b/packages/vite-plugin/vite.config.ts @@ -1,4 +1,4 @@ -import baseConfig from '../../../vite/vite.config'; +import baseConfig from '../../vite/vite.config'; export default { ...baseConfig, diff --git a/packages/legacy/webpack-plugin/.gitignore b/packages/webpack-plugin/.gitignore similarity index 100% rename from packages/legacy/webpack-plugin/.gitignore rename to packages/webpack-plugin/.gitignore diff --git a/packages/legacy/webpack-plugin/LICENSE b/packages/webpack-plugin/LICENSE similarity index 100% rename from packages/legacy/webpack-plugin/LICENSE rename to packages/webpack-plugin/LICENSE diff --git a/packages/legacy/webpack-plugin/README.md b/packages/webpack-plugin/README.md similarity index 100% rename from packages/legacy/webpack-plugin/README.md rename to packages/webpack-plugin/README.md diff --git a/packages/legacy/webpack-plugin/package.json b/packages/webpack-plugin/package.json similarity index 95% rename from packages/legacy/webpack-plugin/package.json rename to packages/webpack-plugin/package.json index 3f65d309e90a..3e87810ee779 100644 --- a/packages/legacy/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -3,7 +3,7 @@ "version": "11.6.0", "description": "Official Sentry Webpack plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", - "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/legacy/webpack-plugin", + "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/webpack-plugin", "author": "Sentry", "license": "MIT", "keywords": [ @@ -59,6 +59,6 @@ "webpack": ">=5.1.0" }, "volta": { - "extends": "../../../package.json" + "extends": "../../package.json" } } diff --git a/packages/legacy/webpack-plugin/rollup.npm.config.mjs b/packages/webpack-plugin/rollup.npm.config.mjs similarity index 100% rename from packages/legacy/webpack-plugin/rollup.npm.config.mjs rename to packages/webpack-plugin/rollup.npm.config.mjs diff --git a/packages/legacy/webpack-plugin/src/index.ts b/packages/webpack-plugin/src/index.ts similarity index 100% rename from packages/legacy/webpack-plugin/src/index.ts rename to packages/webpack-plugin/src/index.ts diff --git a/packages/legacy/webpack-plugin/src/webpack5.ts b/packages/webpack-plugin/src/webpack5.ts similarity index 100% rename from packages/legacy/webpack-plugin/src/webpack5.ts rename to packages/webpack-plugin/src/webpack5.ts diff --git a/packages/legacy/webpack-plugin/test/index.test.ts b/packages/webpack-plugin/test/index.test.ts similarity index 100% rename from packages/legacy/webpack-plugin/test/index.test.ts rename to packages/webpack-plugin/test/index.test.ts diff --git a/packages/legacy/webpack-plugin/test/tsconfig.json b/packages/webpack-plugin/test/tsconfig.json similarity index 100% rename from packages/legacy/webpack-plugin/test/tsconfig.json rename to packages/webpack-plugin/test/tsconfig.json diff --git a/packages/legacy/webpack-plugin/tsconfig.json b/packages/webpack-plugin/tsconfig.json similarity index 73% rename from packages/legacy/webpack-plugin/tsconfig.json rename to packages/webpack-plugin/tsconfig.json index 79bdd1df1220..2044e12308ea 100644 --- a/packages/legacy/webpack-plugin/tsconfig.json +++ b/packages/webpack-plugin/tsconfig.json @@ -1,5 +1,5 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../../tsconfig.json", + "extends": "../../tsconfig.json", "include": ["./src/**/*.ts", "./package.json"] } diff --git a/packages/legacy/webpack-plugin/tsconfig.types.json b/packages/webpack-plugin/tsconfig.types.json similarity index 100% rename from packages/legacy/webpack-plugin/tsconfig.types.json rename to packages/webpack-plugin/tsconfig.types.json diff --git a/packages/legacy/webpack-plugin/vite.config.ts b/packages/webpack-plugin/vite.config.ts similarity index 59% rename from packages/legacy/webpack-plugin/vite.config.ts rename to packages/webpack-plugin/vite.config.ts index d18e1bd6826f..f18ec92095bc 100644 --- a/packages/legacy/webpack-plugin/vite.config.ts +++ b/packages/webpack-plugin/vite.config.ts @@ -1,4 +1,4 @@ -import baseConfig from '../../../vite/vite.config'; +import baseConfig from '../../vite/vite.config'; export default { ...baseConfig, From 1529f49c3245482a7f1acdeade87e67270955bd7 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Tue, 13 Oct 2026 12:04:29 +0100 Subject: [PATCH 10/10] chore: Bump bundler plugin packages to 11.7.0 Also move the changelog entry back under Unreleased. --- CHANGELOG.md | 22 +++++++++++----------- packages/esbuild-plugin/package.json | 4 ++-- packages/rollup-plugin/package.json | 4 ++-- packages/vite-plugin/package.json | 4 ++-- packages/webpack-plugin/package.json | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06839032d8f5..5571f47fb4eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +### Important Changes + +- **feat(bundler-plugins): Release `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from the SDK repository ([#25095](https://github.com/getsentry/sentry-javascript/pull/25095))** + + The four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes: + + - Node.js 20.19.0 or higher is required. + - `@sentry/webpack-plugin` requires webpack 5.1 or higher. The `@sentry/webpack-plugin/webpack5` entry point still works and exports the same plugin as `@sentry/webpack-plugin`. + - The plugins use the `sentry` CLI SDK instead of `@sentry/cli`. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work. + - Deploys that the plugins create on Vercel use the value of `VERCEL_TARGET_ENV` (`production`, `preview` or a custom name) as their environment, instead of `vercel-production` or `vercel-preview`. To keep the old value, set `release.deploy.env`. + ## 11.7.0 ### Important Changes @@ -155,17 +166,6 @@ Work in this release was contributed by @Philip-Nwabuwa and @4ktLuffy. Thank you for your contributions! -### Important Changes - -- **feat(bundler-plugins): Release `@sentry/webpack-plugin`, `@sentry/vite-plugin`, `@sentry/rollup-plugin` and `@sentry/esbuild-plugin` from the SDK repository ([#25095](https://github.com/getsentry/sentry-javascript/pull/25095))** - - The four standalone bundler plugins now release together with the SDK, so their version jumps from 5.4.1 to the SDK version. Each package re-exports the matching `@sentry/bundler-plugins` entry point, which we recommend for new projects. The plugin options do not change, but the update brings these breaking changes: - - - Node.js 20.19.0 or higher is required. - - `@sentry/webpack-plugin` requires webpack 5.1 or higher. The `@sentry/webpack-plugin/webpack5` entry point still works and exports the same plugin as `@sentry/webpack-plugin`. - - The plugins use the `sentry` CLI SDK instead of `@sentry/cli`. Sentry self-hosted 26.4.2 or higher is supported. Lower versions may continue to work. - - Deploys that the plugins create on Vercel use the value of `VERCEL_TARGET_ENV` (`production`, `preview` or a custom name) as their environment, instead of `vercel-production` or `vercel-preview`. To keep the old value, set `release.deploy.env`. - ## 11.6.0 ### Important Changes diff --git a/packages/esbuild-plugin/package.json b/packages/esbuild-plugin/package.json index 8a05399418db..0f85f5c61ef0 100644 --- a/packages/esbuild-plugin/package.json +++ b/packages/esbuild-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/esbuild-plugin", - "version": "11.6.0", + "version": "11.7.0", "description": "Official Sentry esbuild plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/esbuild-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.6.0" + "@sentry/bundler-plugins": "11.7.0" }, "volta": { "extends": "../../package.json" diff --git a/packages/rollup-plugin/package.json b/packages/rollup-plugin/package.json index 7e2e20d758b2..22252d75e54f 100644 --- a/packages/rollup-plugin/package.json +++ b/packages/rollup-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/rollup-plugin", - "version": "11.6.0", + "version": "11.7.0", "description": "Official Sentry Rollup plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/rollup-plugin", @@ -49,7 +49,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.6.0" + "@sentry/bundler-plugins": "11.7.0" }, "peerDependencies": { "rollup": ">=3.2.0" diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 2f61b4f613cb..c8fa6bf2f241 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vite-plugin", - "version": "11.6.0", + "version": "11.7.0", "description": "Official Sentry Vite plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/vite-plugin", @@ -48,7 +48,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.6.0" + "@sentry/bundler-plugins": "11.7.0" }, "volta": { "extends": "../../package.json" diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 3e87810ee779..639451d01134 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/webpack-plugin", - "version": "11.6.0", + "version": "11.7.0", "description": "Official Sentry Webpack plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/develop/packages/webpack-plugin", @@ -53,7 +53,7 @@ "test:unit": "vitest run" }, "dependencies": { - "@sentry/bundler-plugins": "11.6.0" + "@sentry/bundler-plugins": "11.7.0" }, "peerDependencies": { "webpack": ">=5.1.0"