Repository navigation
chore: sdk maintenance for react-native 0.81+ - #269
Merged
Merged
Conversation
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
from
September 18, 2026 22:26
3fe8490 to
ab447f0
Compare
- `babel-plugin-transform-class-properties` is a Babel 6 plugin that no config loads. It pulled in `babel-traverse` 6.26.0, the source of the critical Dependabot alert - `ts-jest` and `tsconfig.jest.json` are unused, since Jest runs through `babel-jest`. `tsconfig.jest.json` has also been invalid since the sdk moved to `nodenext` - `glob` is a direct dev dependency that nothing imports, and its 11.x release is deprecated, so every install printed a warning for it
No job ran `tsc`, so a change that broke the SDK's types could still get a green check. That's how the uuid 14 bump (#264) merged without anything checking its types.
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
4 times, most recently
from
September 19, 2026 15:06
f923ed9 to
5acc379
Compare
Both workflows ran on every `push` and every `pull_request`, so a PR from a branch in this repo ran each job twice: 8 checks for 4 jobs. Force-pushes also left runs for replaced commits holding runners ahead of the current one. ExpoDemo wasn't built at all, so nothing noticed when a dependency update broke it. - Run on `pull_request`, and on `push` only to master - Cancel a PR's in-progress runs when a newer commit arrives. Each push to master gets its own concurrency group, keyed by commit SHA, because GitHub cancels a pending run when a newer run joins the same group; this way every master commit gets a complete run - Only run each workflow when its files change: SDK CI for `sdk/`, Demo CI for `sdk/` and `demo/`, Expo Demo CI for `sdk/` and `ExpoDemo/`, each plus its own workflow file. Docs and config changes no longer start a macOS build - Add Expo Demo CI, which installs the SDK and ExpoDemo, runs `expo prebuild`, and builds a debug Android app on Ubuntu and an iOS simulator app on macOS 26 with Xcode 26.6, as Expo SDK 56 and later need Xcode 26.4 or later - Check formatting with `prettier --check` inside `sdk-checks`, and drop the separate job and its third-party action. Prettier is now a pinned dev dependency (3.9.8), so CI no longer picks up whatever version is latest - Add `sdk/.prettierignore` for `dist/`. The check now runs from `sdk/`, and Prettier only reads ignore files from the directory it runs in, so the root `.gitignore` entry for `sdk/dist/` doesn't apply there; a local build would fail the check - Limit the workflow token to `contents: read` Master has no required status checks, so a workflow skipped by its path filter can't leave a PR waiting on a check that never runs.
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
8 times, most recently
from
September 21, 2026 11:16
08a1161 to
425c50c
Compare
raygun4android 6 declares `minCompileSdk=36`, so host apps must compile against Android SDK 36 or higher. React Native 0.81 is the oldest release whose defaults do, which sets the new floor for the SDK. - raygun4android 5.2.1 → 6.2.3. Keep the kotlin-stdlib exclusion: 6.2.3 declares stdlib 2.4.10, which the Kotlin compilers in React Native 0.81-0.87 can't read - 6.2.3 saves crash reports for uncaught exceptions before the process stops, so they are no longer lost (raygun4android#322). It also aligns the okhttp artifacts, so React Native's `okhttp-urlconnection` 4.x no longer splits from okhttp 5 (raygun4android#324) - Fallback compileSdk 35 → 36 and minSdk 23 → 24, matching React Native 0.81's defaults - Drop the library's `targetSdk` and `buildToolsVersion`, which have no effect on an Android library under AGP 8 - Java 11 → 17, which React Native 0.81+ already requires - Timber 4.7.1 → 5.0.1, the version raygun4android already resolves to - Replace the deprecated `hasActiveCatalystInstance()` with `hasActiveReactInstance()`
`s.source` pointed at the `kerwin/refactory/storage` branch of a personal fork (`hunteva/raygun4reactnative`), so anything resolving the pod from its source got that branch rather than this repo's release. - Point `s.source` at MindscapeHQ/raygun4reactnative, at the release's `v<version>` tag - Take the iOS minimum from React Native's `min_ios_version_supported` (15.1 for React Native 0.81+) instead of the stale 12.0 - Use `install_modules_dependencies` instead of depending on `React-Core` directly, as React Native's library template does - Remove the `RCTConvert` and `RaygunCrashReportConverter` imports from `RaygunNativeBridge.m`; nothing in the file uses either
- `prepublish` doesn't run on `npm publish` from npm 7 on, so a publish shipped whatever `dist/` was on the publishing machine, however stale. Replace it with `prepare`, which runs on `npm pack` and `npm publish`, and on a local `npm install` or `npm ci` as `prepublish` did, so ExpoDemo, which uses the SDK through `file:../sdk` and `dist/index.js`, still gets a build. It clears `dist/` first, because `tsc` never removes output for deleted sources and a 1.x `dist/` would otherwise ship its leftovers - Installing ExpoDemo now runs that build inside `../sdk`, which needs the SDK's dev dependencies, so ExpoDemo's README installs the SDK first, as the bare demo's does - Without a `files` allowlist, the 1.7.1 tarball shipped `__tests__`, `__mocks__`, `babel.config.js` and `eslint.config.mjs` to customers. List the runtime files instead. Android is listed file by file so a local `android/build/` can't be packed - Delete `.npmignore`, which npm ignores once `files` is set `npm pack --dry-run` now lists 34 files: `dist/`, the Android sources and Gradle files, the iOS sources, the podspec, `react-native.config.js`, `package.json` and the README.
The SDK didn't declare which React Native versions it supports, so package managers couldn't warn apps that fall below it. raygun4android 6 makes React Native 0.81 the minimum, and these ranges come from what React Native 0.81 itself declares. - `react-native >=0.81.0` - `react >=19.1.0`, React Native 0.81's React requirement. Lower bounds only, so a future React or React Native major doesn't make npm refuse the install - `engines.node >=20.19.4`, React Native 0.81's Node requirement
The README still listed React Native `^0.60.0` and async-storage `^1.13.3`, and told Android users to declare two services that no longer exist. - Replace the requirements with the minimums this branch sets: React Native 0.81, React 19.1, async-storage 1.13-3.x as a peer dependency, Android compileSdk 36 and minSdk 24, iOS 15.1, Expo SDK 54 - Install async-storage alongside the SDK, now that it's a peer dependency - Remove the Android step. It declared `CrashReportingPostService` and `RUMPostService`, which raygun4android replaced with WorkManager workers; autolinking needs nothing more - Remove the `platform :ios, '10.0'` Podfile line, below the new iOS minimum - Replace the manual integration steps with a short troubleshooting note. Autolinking covers React Native 0.81+, and the manual Android steps named the wrong project - Fix the Expo iOS section, which ran `npx expo run:android`, and install async-storage with `npx expo install` so Expo picks a compatible version - RELEASING.md: the version lives in `sdk/package.json`, not `src/package.json`, and the release tag must be `v<version>` for the podspec's `s.source` - CHANGELOG.md: Expo SDK 55 is React Native 0.83, not 0.81
Both warnings now print on every CI run. - Prettier 3 deprecates `jsxBracketSameLine`; `bracketSameLine` is its replacement and formats the same way - eslint-plugin-react warns when the React version isn't set. Set it to 19.1, the oldest React in the peer dependency range. `"detect"` isn't an option: it calls `context.getFilename()`, which ESLint 10 removed, and eslint-plugin-react 7.37.5 crashes
The demo's Gemfile allowed activesupport 6.1.7.5 and up, which covers versions with three moderate advisories (GHSA-2j26-frm8-cmj9, GHSA-cg4j-q9v8-6v38 and GHSA-89vf-4333-qx8v). 7.2.3.1 is the first fixed release below 8, and CocoaPods requires activesupport below 8. activesupport 7.2 needs Ruby 3.1 or later, so the Ruby floor rises from 2.6.10 to 3.1.0. Bundler resolves the Gemfile to activesupport 7.2.3.2 and CocoaPods 1.15.2. CI runs `pod install` without Bundler, so it doesn't exercise this file. React Native 0.87's template Gemfile still has the old floor, so the demo rebuild needs to keep this.
The MIT license requires its notice to be included with copies of the software, but the published package has never contained it: the license file is `LICENSE-MIT` at the repo root, and the package is published from `sdk/`. `sdk/package.json` already names the file `LICENSE` (`licenseFilename`), and npm always packs a `LICENSE` file. Add `sdk/LICENSE` with the same text as `LICENSE-MIT`, one line per paragraph rather than hard-wrapped.
The RUM monitor used `uuidv4()` only to key an in-memory map that pairs each request's open, send and response callbacks; the ID never leaves the process. Keying the map on the request itself does the same job. A `WeakMap` also lets a request that is opened but never completed be collected, rather than holding its entry for the life of the app. This drops `uuid`, the SDK's last runtime dependency. uuid 14 (#264) only publishes an ES module through package `exports`, with no `main`, so apps whose Metro doesn't read `exports` would fail to bundle the SDK. It also calls `crypto.randomUUID` without checking that `crypto` exists, which would throw on each monitored request once network monitoring works again. Also remove `uuid` from Jest's `transformIgnorePatterns`, which only listed it so Jest would transform its ES module build.
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
from
September 24, 2026 09:42
425c50c to
20b1b91
Compare
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
from
October 6, 2026 19:56
20b1b91 to
8c3cabc
Compare
This was referenced Oct 6, 2026
TheRealAgentK
previously approved these changes
Oct 23, 2026
TheRealAgentK
left a comment
Contributor
There was a problem hiding this comment.
Approving, see additional commentary in Slack, @velocitysystems
Real User Monitoring has sent no network timing events on React Native 0.80 or later since 1.6.0, and logged nothing about it. The SDK loaded React Native's private XHRInterceptor from one of two paths: `react-native/src/private/inspector/XHRInterceptor`, which only existed in React Native 0.79, or `react-native/Libraries/Network/XHRInterceptor`, which 0.79 removed. When neither loaded, it silently fell back to an interceptor that did nothing. React Native 0.87 no longer exports `./src/*` at all, so correcting the path wouldn't last. - Add `NetworkInterceptor.ts`, which wraps `XMLHttpRequest.prototype.open` and `send` itself and reports the request when it completes. React Native's `fetch()` is built on XMLHttpRequest, so fetch requests are captured too. Callback errors are logged instead of reaching the app's request. The callbacks carry only the method, the URL and the request, which is all the monitor uses, so the response body is never read - Wire it into `RealUserMonitor`, and log a warning if XMLHttpRequest isn't available rather than failing silently - Name network events with the method upper-cased and without the query string and fragment, as raygun4js, raygun4android and raygun4apple do. The query string can carry tokens, and both would otherwise split one endpoint into several names. Before 1.6.0, when network timing last worked, the full URL was sent - Delete `MaybeNewXHRInterceptorModule.ts` and `MaybeOldXHRInterceptorModule.ts` - Add tests for the interceptor and for the monitor: completed requests become network timing events, responses pair with their own requests, ignored URLs are skipped, names are normalised, and nothing is intercepted when network monitoring is disabled. The two tests that expect events fail against the old code Expo SDK 56 and later replace the global `fetch` with a native implementation that doesn't use XMLHttpRequest, so this doesn't capture `fetch()` calls in those apps unless they set `EXPO_PUBLIC_USE_RN_FETCH=1`.
Expo SDK 56 and later replace the global `fetch` with `expo/fetch`, which makes requests through a native module rather than XMLHttpRequest. So the XMLHttpRequest interceptor alone missed every `fetch()` call in those apps, unless they set `EXPO_PUBLIC_USE_RN_FETCH=1`. Expo SDK 54 and 55 don't replace `fetch`. - Wrap the global `fetch` as well, reporting each call when it settles. A fetch that rejects or throws is reported too, as a failed XMLHttpRequest is, and the error still reaches the caller - Skip XMLHttpRequests opened while a `fetch` call is running. React Native's own `fetch` (whatwg-fetch) creates, opens and sends its XMLHttpRequest synchronously inside that call, so without this each fetch would be reported twice on React Native and Expo 54-55 - Expo's global `fetch` is a lazy property with a setter, so replacing it works there too Tests cover resolved, rejected and synchronously throwing fetches, Request-like inputs, a React Native-style fetch being reported once rather than twice, and interception when only `fetch` is available.
The bare demo was on React Native 0.84.1, with a native layer older than even the 0.84 template: an Objective-C AppDelegate, and DefaultReactNativeHost and SoLoader in MainApplication. Its tsconfig extended a path that @react-native/typescript-config no longer exports, so `tsc` couldn't run. - Regenerate `android/` and `ios/` from the React Native 0.87.1 template, keeping the one customisation: the `Raygun4ReactNativeDemo` module name. The template's lower Kotlin (2.2.0) now exercises the SDK's kotlin-stdlib exclusion - Take the template's config files (Babel, Metro, Jest, TypeScript, ESLint, Prettier, Watchman, Bundler, `.gitignore`) and Gemfile, keeping this branch's Ruby 3.1 and activesupport floor - Move react-native to 0.87.1 with its tooling, and the demo's libraries to their latest: React Navigation 7.4.1 and 7.19.2, react-native-screens 4.28.0, react-native-safe-area-context 5.10.0, and async-storage 3.1.1, which exercises the SDK's support for v3 - Keep @react-native-community/checkbox on 0.5.20. 0.6.0's `codegenConfig` points at a `js` directory the package doesn't ship, so iOS codegen fails. 0.5.20 defines BuildConfig fields, which Android Gradle Plugin 9 only generates when a module turns them on, so the root `build.gradle` turns them on for that module - Regenerate `package-lock.json` and `Podfile.lock`, which recorded the SDK as 1.6.0 The app code (`App.tsx`, `screens/`, `utils/`) is unchanged. Built locally: an Android debug build (AGP 9.2.1, compileSdk 37) and an iOS simulator build, plus Metro release bundles for both platforms. `tsc` now runs and reports 9 type-only errors in the screens, left alone because fixing them changes the demo code.
ExpoDemo was on Expo SDK 55 and couldn't start or bundle: #256 moved it to TypeScript 7, which has no JavaScript API, and Expo's CLI reads `tsconfig.json` through that API. - Run `npx expo install expo@~57.0.24` and `npx expo install --fix`: Expo 57.0.24, React Native 0.86.3, TypeScript 6.0.3, and every Expo package on its SDK 57 version - Install react-native-worklets, a required peer dependency of react-native-reanimated 4 - Remove `newArchEnabled` from `app.json`, which SDK 57's config schema rejects, as the New Architecture is always on. `expo install` added the `expo-status-bar` config plugin - Regenerate `package-lock.json`, whose SDK entry recorded 1.6.0 The app code is unchanged. `expo install --check` and `tsc` are clean. Expo Doctor passes 20 of 21 checks; the other flags the SDK's own `../sdk/node_modules`, which native autolinking doesn't use and the Metro config blocks. Built locally: `expo export` for both platforms, and an Android debug build and iOS simulator build after `expo prebuild`.
With the RN 0.87 tsconfig, `tsc` could run on the bare demo and reported 9 errors. All are type-only; none changes what the demo does. - Pass `e as Error` to `sendError` in the four `catch` blocks, whose variables are `unknown` - Use `undefined` instead of `null` for the breadcrumb's `level` and the user's `fullName`, which the SDK types as optional strings. `recordBreadcrumb` and `setUser` strip `null` fields before applying defaults, so both values end up the same - Give `@react-native-community/checkbox` a component type. Its typings declare a class that React 19's JSX types reject, and the package exports no props type - Return `null` from `completedImageLoad`, which is called inside JSX; it rendered nothing before and still does
- Delete `plugins/withRaygunAndroid.js` and its `app.json` entry. It added `CrashReportingPostService` and `RUMPostService` to the Android manifest, but raygun4android replaced those services with WorkManager workers, so nothing ever started them. The SDK's README stopped asking for them in this branch - Remove `@react-navigation/native` and `@react-navigation/bottom-tabs`. The app doesn't import them, and Expo Router hasn't needed them since SDK 56 - Remove the `reset-project` script, whose `scripts/reset-project.js` doesn't exist, and the `test` script with its Jest setup (`jest`, `jest-expo`, `@types/jest`), as there are no tests The app code is unchanged. `expo install --check` and `tsc` are clean, `expo export` bundles both platforms, and a fresh `expo prebuild` has no Raygun services in the manifest.
The bare demo depended on `file:raygun4reactnative-<version>.tgz`, a tarball that `.gitignore` excludes, so following its README on a fresh clone failed with ENOENT. Only the SDK's `build_pack_1` and `build_demo_2` scripts, which CI ran, created it. Every SDK change also changed the tarball's integrity hash in the demo's lockfile. - Depend on `file:../sdk`, as ExpoDemo does. Installing it runs the SDK's `prepare` build - Point Metro at `../sdk`, block the SDK's own `node_modules`, and resolve the SDK's imports from the demo's `node_modules`, as ExpoDemo's Metro config does - Update the README: `npm install` replaces `npm install --install-links` - CI installs the SDK and the demo with `npm ci` instead of packing and copying a tarball - Remove the SDK's `builder`, `build_run`, `build_pack_1`, `build_demo_2` and `run_demo_3` scripts, and the `copyfiles` and `run-script-os` dev dependencies only they used Checked on a clean install: `npm ci`, `tsc`, Metro release bundles for both platforms, `pod install`, and Android debug and iOS simulator builds.
The SDK's iOS sources produced 8 compiler warnings in every app build. None changed behaviour; they came from declarations and code nothing uses. - `RaygunNativeBridge.h` declared `viewStartedLoading:atTime:` and `viewFinishedLoading:atTime:`, which don't exist. The bridge implements and registers the notification handlers `viewStartedLoading:` and `viewFinishedLoading:` - `UIViewController+ReactNativeRaygunRUM.h` declared `loadViewCapture`, `viewDidLoadCapture`, `viewWillAppearCapture:` and `viewDidAppearCapture:`, which don't exist either. `+load` swizzles the `...CaptureReactNative` methods the category defines - Remove `ksdl_imageNamed`, which nothing calls, and the `<mach-o/dyld.h>` include only it used - Declare `processStartTime(void)`, as C requires for a function with no parameters The demo's iOS simulator build now compiles the SDK with no warnings.
`tsc --noEmit` used the SDK's tsconfig, whose `include` is `src/` alone, so a type error in `__tests__` passed CI: Jest strips types through `babel-jest`, and ESLint only lints `src/`. A deliberate error in a test file exited 0 before this change, and fails now. - Add `tsconfig.test.json`, extending the SDK's config with `src/`, `__tests__/` and `__mocks__/`, and with Node's types for the globals the tests replace - Point CI's type-check step at it - Type the `fetch` and `sendError` mocks the existing tests install, so the calls they record keep their types instead of widening to an empty tuple
- Add a CI badge to both READMEs, as raygun4flutter does - The Native Crash Reporting section said to set `disableNativeCrashReporting` to `false` to disable it, in two places. The provider starts the native SDKs when the flag is false, so disabling them needs `true` - Fix two table-of-contents anchors that no longer match their headings: the `sendRUMTimingEvent` parameter is `durationMs`, and `setUser` takes `User | null` - Fix three typos Checked every anchor in the SDK README against the heading it points at, and that the badge URL responds.
Both demos sent every request with `fetch`, and ExpoDemo ran with Real User Monitoring off, so two of the three paths the SDK intercepts were never exercised outside the unit tests: a request made with XMLHttpRequest, which libraries such as axios use, and Expo SDK 56's `fetch`, which is native and does not use XMLHttpRequest. - Add a "Send XHR Request" section to the demo's RUM screen. The URL carries a query string and a fragment, so the name RUM reports shows they are removed - Turn Real User Monitoring on in ExpoDemo, and give it a fetch button and an XHR button The API key placeholders are unchanged, so both demos still need one before they report. Checked on an Android emulator and an iOS simulator: each path reports one network event, and the five concurrent requests stay one name with five requests.
Nothing in the SDK or its tests imports either package. Removing them supersedes Dependabot's jest-fetch-mock 3 to 4 bump rather than taking a major upgrade of a package the suite doesn't use.
- Update `globals` to 17 and `typescript-eslint` to 8.71, superseding Dependabot's bumps - Pin `@types/node` to 20, the oldest Node the `engines` field supports, so type-checking fails on APIs the SDK can't rely on being present. Dependabot proposed 26, which goes the other way
Each Expo SDK pins compatible versions of expo, react, react-native and their companions, and `npx expo install` keeps them in step. Dependabot bumps each one alone to its latest release, past what the SDK supports: #256 moved ExpoDemo to TypeScript 7, which Expo's CLI can't read `tsconfig.json` through, and the demo stopped starting. Those packages now move only when ExpoDemo moves to a new Expo SDK. Also ignore major `@types/node` updates for the SDK, which is pinned to the oldest Node its `engines` field supports.
raygun4android 6.3.0 publishes Kotlin 2.2 metadata and depends on `kotlin-stdlib` 2.2.21, which the Kotlin 2.1.20 compiler in React Native 0.81-0.86 can read. The `kotlin-stdlib` exclude added for #237 only existed because 6.2.3 published 2.4.10, so it goes with the version that needed it, and host apps get the stdlib raygun4android was built against. Crash reports cached by 6.3.0 can't be read by 6.2.3, so reports pending on a device are lost if an app downgrades to a release that ships 6.2.3.
Lockfile-only bump of a dev dependency pulled in by react-devtools-core. Folded in here so Dependabot's standalone PR doesn't conflict with this branch's lockfile changes.
Lockfile-only bump of dev dependencies pulled in by Jest and eslint-plugin-react. 1.1.21 fixes GHSA-q2hr-2g5m-vwhr, a CPU denial of service on crafted brace patterns, which only the dev tooling can reach. Folded in here so Dependabot's standalone PR doesn't conflict with this branch's lockfile changes.
Major version: the minimum is now React Native 0.81 with React 19.1, Android SDK 36 and Java 17, iOS 15.1 and Node 20.19.4, and raygun4android 6.3.0's crash cache cannot be read by 6.2.3 after a downgrade. - Set the version in `package.json` and `package-lock.json` - Add the 2.0.0 entry to `CHANGELOG.md`, with the breaking changes and this branch's commits - Update the demo's `Podfile.lock`, which records the SDK version
velocitysystems
force-pushed
the
chore/sdk-maintenance
branch
from
October 23, 2026 15:26
879a1a7 to
8f4fc4c
Compare
TheRealAgentK
approved these changes
Oct 26, 2026
TheRealAgentK
left a comment
Contributor
There was a problem hiding this comment.
Approved. The inline XHR listener finding is non-blocking and can be addressed in a follow-up; it does not need to hold up this PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR releases 2.0.0. It updates the native SDKs, fixes RUM network timing and packaging, and sets React Native 0.81 as the minimum. It also removes unused dependencies and makes CI run each check one time.
Breaking changes
compileSdk36,minSdk24 and Java 17.min_ios_version_supported.enginesrequires>=20.19.4, the same as React Native 0.81.Changes
Release
CHANGELOG.mdentry.SDK
NetworkInterceptor.tswrapsXMLHttpRequestdirectly.fetchrequests on Expo SDK 56 and later. Expo replaces the globalfetchwith a nativefetchthat does not use XHR. The SDK now wrapsfetchtoo, and reports each request one time.WeakMap. This removesuuid, the last runtime dependency. uuid 14 has nomainfield, so some Metro configurations could not bundle the SDK.kotlin-stdlibexclude (Pulls kotlin-stdlib 2.3.0, breaking Android builds on Expo SDK 55 / React Native 0.81 #237). 6.2.3 fixes lost uncaught crash reports (raygun4android#322) and the okhttp conflict (raygun4android#324). 6.3.0 sends cached reports with the API key and endpoint that created them.Packaging
v<version>tag in this repository. Before, it pointed at a branch on a personal fork.dist/inprepare, so pack and publish always make a new build. Afilesallowlist decreases the package from 40 files to 32.reactandreact-nativepeer dependencies and thenodeengine.Dependencies
ts-jest,glob,jest-fetch-mock,mockdate,copyfilesandrun-script-os. This removes the criticalbabel-traverseandhandlebarsalerts.shell-quoteto 1.12.0 (from chore(deps-dev): bump shell-quote from 1.10.0 to 1.12.0 in /sdk #280),brace-expansionto 1.1.21 and 5.0.12 (from chore(deps-dev): bump brace-expansion from 1.1.18 to 1.1.21 in /sdk #282), andglobalsto 17. Update the lockedtypescript-eslintto 8.71.1. Its range inpackage.jsonstays at^8.34.0.@types/nodeto 20, the oldest Node inengines.activesupportin the demo to 7.2.3.1. This clears three moderate alerts. The demo now requires Ruby 3.1.Demos
../sdk. Before, the bare demo used a gitignored tarball.fetchbuttons to the RUM screens.CI and tooling
npx expo install.Docs
disableNativeCrashReportingtotrue, notfalse.RELEASING.md, the 1.7.1 changelog entry, two anchors and three typos.Verification
npm ci, bothtsc --noEmitconfigs,npm test(41 pass), ESLint and Prettier pass.npm audit --omit=devfinds no vulnerabilities. The full audit finds 43 advisories (no critical) in dev tooling only: Jest 29, Metro and React Native.npm pack --dry-runlists 32 files. It does not include olddist/files or build output.expo exportbundle both platforms.RCTFatalException. This also occurred before this PR, and a separate PR will fix it.fetch, XHR and Expofetcheach send one network event. Five concurrent requests to the same URL send one name with five requests.To verify: the RUM dashboard shows these events as network timing.
Not in this PR
dependabot.ymlgroups.