-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Problem Statement
Because of bugs in rrweb, its slow development cycle, and the fact that they're working on v2 (which is also problematic on its own, getsentry/sentry-javascript#6655) we have to apply multiple patches to the library, and bundle it into our @sentry/replay package. This has a number of drawbacks:
- The patch we apply with
patch-packagehas grown enormously (10k lines; see feat(replay): Update rrweb & rrweb-snapshot sentry-javascript#6749) - As outlined in feat(replay): Update rrweb & rrweb-snapshot sentry-javascript#6749, applying this patch correctly involves a lot of steps
- Because of patching, we have to pull the rrweb files into our replay package, which causes isses (#6690)
Solution Brainstorm
In a first step, to make developing patches on rrweb v1 easier, we update our rrweb fork in which we now create and merge PRs which we then use to patch the actual rrweb package.
We now propose to release our rrweb fork (e.g. @sentry-internal/rrweb) to NPM so we can stop patching the official package all together and just use our fork like a regular dependency. The steps to get this done are:
For the most part, we can follow our SDK release checklist to make sure we've covered everything necessary.
Furthermore, we can also take getsentry/sentry-javascript-bundler-plugins#60 as an inspiration, where we recently started releasing to NPM from a new repo.