diff --git a/.github/workflows/update-deps.yml b/.github/workflows/update-deps.yml index a267f33c1d..1224a58710 100644 --- a/.github/workflows/update-deps.yml +++ b/.github/workflows/update-deps.yml @@ -56,15 +56,6 @@ jobs: name: CLI ssh-key: ${{ secrets.CI_DEPLOY_KEY }} - bundler-plugins: - runs-on: ubuntu-latest - steps: - - uses: getsentry/github-workflows/updater@607fed74f812e69201531a5185b6c3c57caa4e89 # v3 - with: - path: scripts/update-bundler-plugins.sh - name: Bundler Plugins - ssh-key: ${{ secrets.CI_DEPLOY_KEY }} - sample-rn: runs-on: ubuntu-latest steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d0f01b16a..3d8a45aa9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,10 @@ These tasks previously read `project` state at execution time — `onlyIf` predicates resolving closures from `project.extra`, plus `project.rootDir`, `project.copy`, `project.logger`, and `Project.file` inside task actions — which fails the build with `Could not evaluate onlyIf predicate` when `org.gradle.configuration-cache=true` (Gradle 9 defaults to recommending it). Environment reads are now captured at configuration time, file copies use an injected `FileSystemOperations`, and task actions use the task's own `logger`. No behaviour change. Interim step ahead of the full SAGP migration (getsentry/sentry-android-gradle-plugin#796). +### Internal + +- Migrate from `@sentry/babel-plugin-component-annotate` to `@sentry/bundler-plugins/babel-plugin` ([#6501](https://github.com/getsentry/sentry-react-native/pull/6501)) + ### Dependencies - Bump JavaScript SDK from v10.65.0 to v10.67.0 ([#6471](https://github.com/getsentry/sentry-react-native/pull/6471), [#6494](https://github.com/getsentry/sentry-react-native/pull/6494)) diff --git a/packages/core/package.json b/packages/core/package.json index 4f6fd5eeed..a86897a6dd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -73,8 +73,8 @@ "react-native": ">=0.65.0" }, "dependencies": { - "@sentry/babel-plugin-component-annotate": "5.3.0", "@sentry/browser": "10.67.0", + "@sentry/bundler-plugins": "10.67.0", "@sentry/cli": "3.6.1", "@sentry/core": "10.67.0", "@sentry/expo-upload-sourcemaps": "workspace:*", diff --git a/packages/core/src/js/tools/sentryBabelTransformerUtils.ts b/packages/core/src/js/tools/sentryBabelTransformerUtils.ts index a92bffa21d..5b39e5959d 100644 --- a/packages/core/src/js/tools/sentryBabelTransformerUtils.ts +++ b/packages/core/src/js/tools/sentryBabelTransformerUtils.ts @@ -1,4 +1,4 @@ -import componentAnnotatePlugin from '@sentry/babel-plugin-component-annotate'; +import componentAnnotatePlugin from '@sentry/bundler-plugins/babel-plugin'; import { debug } from '@sentry/core'; import * as process from 'process'; diff --git a/packages/core/src/js/touchevents.tsx b/packages/core/src/js/touchevents.tsx index 1f9549f89f..97d488850d 100644 --- a/packages/core/src/js/touchevents.tsx +++ b/packages/core/src/js/touchevents.tsx @@ -379,7 +379,7 @@ function getTouchedComponentInfo( (shouldExtractText ? extractTextFromFiber(currentInst) : undefined); return dropUndefinedKeys({ - // provided by @sentry/babel-plugin-component-annotate + // provided by @sentry/bundler-plugins/babel-plugin name: getComponentName(props) || displayName, element: getElementName(props), file: getFileName(props), diff --git a/packages/core/tsconfig.build.json b/packages/core/tsconfig.build.json index a3d63de10e..7fb2b88faf 100644 --- a/packages/core/tsconfig.build.json +++ b/packages/core/tsconfig.build.json @@ -17,7 +17,12 @@ // `react-native/types`. Pin classic node resolution to keep these imports working. "moduleResolution": "node", "paths": { - "metro": ["./node_modules/metro/src/index"] + "metro": ["./node_modules/metro/src/index"], + // `@sentry/bundler-plugins` exposes the component-annotate plugin via the `./babel-plugin` + // subpath export, which classic `node` resolution can't follow. Point directly at its types. + "@sentry/bundler-plugins/babel-plugin": [ + "./node_modules/@sentry/bundler-plugins/build/types/babel-plugin/index.d.ts" + ] }, "outDir": "dist", "rootDir": "src", diff --git a/packages/core/tsconfig.build.tools.json b/packages/core/tsconfig.build.tools.json index 32ae129b5b..b6282eb9a8 100644 --- a/packages/core/tsconfig.build.tools.json +++ b/packages/core/tsconfig.build.tools.json @@ -8,7 +8,12 @@ // incompatible with `module: CommonJS` below. Pin classic node resolution. "moduleResolution": "node", "paths": { - "metro": ["./node_modules/metro/src/index"] + "metro": ["./node_modules/metro/src/index"], + // `@sentry/bundler-plugins` exposes the component-annotate plugin via the `./babel-plugin` + // subpath export, which classic `node` resolution can't follow. Point directly at its types. + "@sentry/bundler-plugins/babel-plugin": [ + "./node_modules/@sentry/bundler-plugins/build/types/babel-plugin/index.d.ts" + ] }, "outDir": "dist", "rootDir": "src", diff --git a/packages/core/tsconfig.lint.json b/packages/core/tsconfig.lint.json index 58e0cd6511..1c4b1691ae 100644 --- a/packages/core/tsconfig.lint.json +++ b/packages/core/tsconfig.lint.json @@ -39,7 +39,12 @@ // From tsconfig.json / tsconfig.build.json "rootDir": ".", "paths": { - "metro": ["./node_modules/metro/src/index"] + "metro": ["./node_modules/metro/src/index"], + // `@sentry/bundler-plugins` exposes the component-annotate plugin via the `./babel-plugin` + // subpath export, which classic `node` resolution can't follow. Point directly at its types. + "@sentry/bundler-plugins/babel-plugin": [ + "./node_modules/@sentry/bundler-plugins/build/types/babel-plugin/index.d.ts" + ] }, "lib": ["es7"], "jsx": "react", diff --git a/samples/expo/package.json b/samples/expo/package.json index 54e0943a03..6c516a9b11 100644 --- a/samples/expo/package.json +++ b/samples/expo/package.json @@ -47,7 +47,7 @@ "devDependencies": { "@babel/core": "^7.26.0", "@babel/preset-env": "^7.26.0", - "@sentry/babel-plugin-component-annotate": "5.3.0", + "@sentry/bundler-plugins": "10.67.0", "@types/node": "20.10.4", "sentry-react-native-samples-utils": "workspace:^" }, diff --git a/samples/react-native/package.json b/samples/react-native/package.json index d34126b16f..c3d59891a9 100644 --- a/samples/react-native/package.json +++ b/samples/react-native/package.json @@ -78,7 +78,7 @@ "@react-native/jest-preset": "0.86.0", "@react-native/metro-config": "0.86.0", "@react-native/typescript-config": "0.86.0", - "@sentry/babel-plugin-component-annotate": "5.3.0", + "@sentry/bundler-plugins": "10.67.0", "@testing-library/react-native": "^13.2.2", "@types/jest": "^29.5.14", "@types/node": "^22.13.1", diff --git a/scripts/update-bundler-plugins.sh b/scripts/update-bundler-plugins.sh deleted file mode 100755 index cd9f4bf16b..0000000000 --- a/scripts/update-bundler-plugins.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -tagPrefix='' -repo="https://github.com/getsentry/sentry-javascript-bundler-plugins.git" -packages=('@sentry/babel-plugin-component-annotate') - -. $(dirname "$0")/update-package-json.sh diff --git a/scripts/update-javascript.sh b/scripts/update-javascript.sh index b41c832505..4bbe98751e 100755 --- a/scripts/update-javascript.sh +++ b/scripts/update-javascript.sh @@ -5,5 +5,6 @@ tagPrefix='' repo="https://github.com/getsentry/sentry-javascript.git" packages=('@sentry/browser' '@sentry/core' '@sentry/react' '@sentry/typescript') packages+=('@sentry/eslint-plugin-sdk') +packages+=('@sentry/bundler-plugins') . $(dirname "$0")/update-package-json.sh diff --git a/yarn.lock b/yarn.lock index c7b50ea6f7..18afbfc206 100644 --- a/yarn.lock +++ b/yarn.lock @@ -351,7 +351,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.20.0, @babel/core@npm:^7.22.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2, @babel/core@npm:^7.26.0, @babel/core@npm:^7.26.7": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.5, @babel/core@npm:^7.20.0, @babel/core@npm:^7.22.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2, @babel/core@npm:^7.26.0, @babel/core@npm:^7.26.7": version: 7.29.7 resolution: "@babel/core@npm:7.29.7" dependencies: @@ -9704,13 +9704,6 @@ __metadata: languageName: node linkType: hard -"@sentry/babel-plugin-component-annotate@npm:5.3.0": - version: 5.3.0 - resolution: "@sentry/babel-plugin-component-annotate@npm:5.3.0" - checksum: 10c0/744ef0fdc71fb30210ddabcdd665a2b69985b5e85fd12a65c456e0cb6286f5df71e304918058d285bc7fcb794792da91541cc290dc1f738aa406a6a40472e456 - languageName: node - linkType: hard - "@sentry/browser-utils@npm:10.67.0": version: 10.67.0 resolution: "@sentry/browser-utils@npm:10.67.0" @@ -9735,6 +9728,36 @@ __metadata: languageName: node linkType: hard +"@sentry/bundler-plugins@npm:10.67.0": + version: 10.67.0 + resolution: "@sentry/bundler-plugins@npm:10.67.0" + dependencies: + "@babel/core": "npm:^7.18.5" + "@sentry/cli": "npm:^2.58.6" + "@sentry/core": "npm:10.67.0" + dotenv: "npm:^17.4.2" + find-up: "npm:^5.0.0" + glob: "npm:^13.0.6" + magic-string: "npm:~0.30.8" + peerDependencies: + rollup: ">=3.2.0" + webpack: ">=5.0.0" + peerDependenciesMeta: + rollup: + optional: true + webpack: + optional: true + checksum: 10c0/11e58ac3e839ce386d0baf333eb03f593232b28a44ef0c730fa3328367776936092bc356828d057aa03c4043a88f5ff983c88cd29ac8aad9944047f9b54142ae + languageName: node + linkType: hard + +"@sentry/cli-darwin@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-darwin@npm:2.58.6" + conditions: os=darwin + languageName: node + linkType: hard + "@sentry/cli-darwin@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-darwin@npm:3.6.1" @@ -9742,6 +9765,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-linux-arm64@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-linux-arm64@npm:2.58.6" + conditions: (os=linux | os=freebsd | os=android) & cpu=arm64 + languageName: node + linkType: hard + "@sentry/cli-linux-arm64@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-linux-arm64@npm:3.6.1" @@ -9749,6 +9779,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-linux-arm@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-linux-arm@npm:2.58.6" + conditions: (os=linux | os=freebsd | os=android) & cpu=arm + languageName: node + linkType: hard + "@sentry/cli-linux-arm@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-linux-arm@npm:3.6.1" @@ -9756,6 +9793,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-linux-i686@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-linux-i686@npm:2.58.6" + conditions: (os=linux | os=freebsd | os=android) & (cpu=x86 | cpu=ia32) + languageName: node + linkType: hard + "@sentry/cli-linux-i686@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-linux-i686@npm:3.6.1" @@ -9763,6 +9807,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-linux-x64@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-linux-x64@npm:2.58.6" + conditions: (os=linux | os=freebsd | os=android) & cpu=x64 + languageName: node + linkType: hard + "@sentry/cli-linux-x64@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-linux-x64@npm:3.6.1" @@ -9770,6 +9821,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-win32-arm64@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-win32-arm64@npm:2.58.6" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@sentry/cli-win32-arm64@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-win32-arm64@npm:3.6.1" @@ -9777,6 +9835,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-win32-i686@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-win32-i686@npm:2.58.6" + conditions: os=win32 & (cpu=x86 | cpu=ia32) + languageName: node + linkType: hard + "@sentry/cli-win32-i686@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-win32-i686@npm:3.6.1" @@ -9784,6 +9849,13 @@ __metadata: languageName: node linkType: hard +"@sentry/cli-win32-x64@npm:2.58.6": + version: 2.58.6 + resolution: "@sentry/cli-win32-x64@npm:2.58.6" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sentry/cli-win32-x64@npm:3.6.1": version: 3.6.1 resolution: "@sentry/cli-win32-x64@npm:3.6.1" @@ -9830,6 +9902,46 @@ __metadata: languageName: node linkType: hard +"@sentry/cli@npm:^2.58.6": + version: 2.58.6 + resolution: "@sentry/cli@npm:2.58.6" + dependencies: + "@sentry/cli-darwin": "npm:2.58.6" + "@sentry/cli-linux-arm": "npm:2.58.6" + "@sentry/cli-linux-arm64": "npm:2.58.6" + "@sentry/cli-linux-i686": "npm:2.58.6" + "@sentry/cli-linux-x64": "npm:2.58.6" + "@sentry/cli-win32-arm64": "npm:2.58.6" + "@sentry/cli-win32-i686": "npm:2.58.6" + "@sentry/cli-win32-x64": "npm:2.58.6" + https-proxy-agent: "npm:^5.0.0" + node-fetch: "npm:^2.6.7" + progress: "npm:^2.0.3" + proxy-from-env: "npm:^1.1.0" + which: "npm:^2.0.2" + dependenciesMeta: + "@sentry/cli-darwin": + optional: true + "@sentry/cli-linux-arm": + optional: true + "@sentry/cli-linux-arm64": + optional: true + "@sentry/cli-linux-i686": + optional: true + "@sentry/cli-linux-x64": + optional: true + "@sentry/cli-win32-arm64": + optional: true + "@sentry/cli-win32-i686": + optional: true + "@sentry/cli-win32-x64": + optional: true + bin: + sentry-cli: bin/sentry-cli + checksum: 10c0/3037c8c03d0b56114d4bdccc409a88b2e48df3544b2ddd800556a70d45b72e889e1dc5fc1a2997d962f9d047e360d30e5090d8f454078c9d7be1545ad32e7c0c + languageName: node + linkType: hard + "@sentry/conventions@npm:^0.16.0": version: 0.16.0 resolution: "@sentry/conventions@npm:0.16.0" @@ -9975,8 +10087,8 @@ __metadata: "@mswjs/interceptors": "npm:^0.25.15" "@react-native/babel-preset": "npm:0.86.0" "@react-native/jest-preset": "npm:0.86.0" - "@sentry/babel-plugin-component-annotate": "npm:5.3.0" "@sentry/browser": "npm:10.67.0" + "@sentry/bundler-plugins": "npm:10.67.0" "@sentry/cli": "npm:3.6.1" "@sentry/core": "npm:10.67.0" "@sentry/eslint-plugin-sdk": "npm:10.67.0" @@ -15369,6 +15481,13 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^17.4.2": + version: 17.4.2 + resolution: "dotenv@npm:17.4.2" + checksum: 10c0/164f8e77a646c8446867d5b588d26ea6005c8ea7c5eb41cf926f6113d23f2191355f6e0cfd95ea9bab98394a5b0a3f1e51a8399711b666fe55cc7b0bd745f942 + languageName: node + linkType: hard + "dottie@npm:^2.0.0": version: 2.0.7 resolution: "dottie@npm:2.0.7" @@ -17994,7 +18113,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:13.0.6, glob@npm:^13.0.3": +"glob@npm:13.0.6, glob@npm:^13.0.3, glob@npm:^13.0.6": version: 13.0.6 resolution: "glob@npm:13.0.6" dependencies: @@ -18596,7 +18715,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.1": +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: @@ -21573,6 +21692,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:~0.30.8": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a + languageName: node + linkType: hard + "magicast@npm:^0.2.10": version: 0.2.11 resolution: "magicast@npm:0.2.11" @@ -27308,7 +27436,7 @@ __metadata: dependencies: "@babel/core": "npm:^7.26.0" "@babel/preset-env": "npm:^7.26.0" - "@sentry/babel-plugin-component-annotate": "npm:5.3.0" + "@sentry/bundler-plugins": "npm:10.67.0" "@sentry/core": "npm:10.67.0" "@sentry/react-native": "npm:8.19.0" "@types/node": "npm:20.10.4" @@ -27395,7 +27523,7 @@ __metadata: "@react-navigation/native-stack": "npm:^7.3.24" "@react-navigation/stack": "npm:^7.4.5" "@reduxjs/toolkit": "npm:^2.8.2" - "@sentry/babel-plugin-component-annotate": "npm:5.3.0" + "@sentry/bundler-plugins": "npm:10.67.0" "@sentry/core": "npm:10.67.0" "@sentry/react": "npm:10.67.0" "@sentry/react-native": "npm:8.19.0"