From 9c9427e145a07436c7b8bea0395fb8f42d9722c3 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Wed, 12 Apr 2023 15:27:46 +0100 Subject: [PATCH 01/10] As per @Yun Feng: everyone has npm installed globally but maybe not yarn --- packages/rrvideo/package.json | 2 +- packages/rrweb-player/package.json | 4 ++-- packages/rrweb-snapshot/package.json | 2 +- packages/rrweb/package.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/rrvideo/package.json b/packages/rrvideo/package.json index 4ddc1a0d55..8954b4a253 100644 --- a/packages/rrvideo/package.json +++ b/packages/rrvideo/package.json @@ -12,7 +12,7 @@ "types": "build/index.d.ts", "scripts": { "build": "tsc", - "prepublish": "yarn build" + "prepublish": "npm run build" }, "author": "yanzhen@smartx.com", "license": "MIT", diff --git a/packages/rrweb-player/package.json b/packages/rrweb-player/package.json index b90a5ce3ee..15089bb692 100644 --- a/packages/rrweb-player/package.json +++ b/packages/rrweb-player/package.json @@ -29,10 +29,10 @@ "scripts": { "build": "rollup -c", "dev": "rollup -c -w", - "prepublishOnly": "yarn build", + "prepublishOnly": "npm run build", "start": "sirv public", "validate": "svelte-check", - "prepublish": "yarn build", + "prepublish": "npm run build", "lint": "yarn eslint src/**/*.ts" }, "description": "rrweb's replayer UI", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index 101b6cf24d..4c2d2c17a8 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -9,7 +9,7 @@ "test:watch": "jest --watch", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", - "dev": "yarn bundle:es-only --watch", + "dev": "npm run bundle:es-only --watch", "typings": "tsc -d --declarationDir typings", "prepublish": "npm run typings && npm run bundle", "lint": "yarn eslint src" diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index a28dead56e..2d104af916 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -9,8 +9,8 @@ "test:headless": "PUPPETEER_HEADLESS=true npm run test", "test:watch": "PUPPETEER_HEADLESS=true npm run test -- --watch", "repl": "npm run bundle:browser && node scripts/repl.js", - "live-stream": "yarn bundle:browser && node scripts/stream.js", - "dev": "yarn bundle:browser --watch", + "live-stream": "npm run bundle:browser && node scripts/stream.js", + "dev": "npm run bundle:browser --watch", "bundle:browser": "cross-env BROWSER_ONLY=true rollup --config", "bundle": "rollup --config", "typings": "tsc -d --declarationDir typings", From 87adc08f4ea2a1571b0d7c4188cdf29303fd707f Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Wed, 12 Apr 2023 15:31:14 +0100 Subject: [PATCH 02/10] Add command to enable test result updating --- README.md | 5 +++-- package.json | 1 + packages/rrweb-snapshot/package.json | 1 + packages/rrweb/package.json | 1 + turbo.json | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7e81e98957..b85f0cd94c 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,9 @@ Since we want the record and replay sides to share a strongly typed data structu 2. Run `yarn install` in the root to install required dependencies for all sub-packages (note: `npm install` is _not_ recommended). 3. Run `yarn dev` in the root to get auto-building for all the sub-packages whenever you modify anything. 4. Navigate to one of the sub-packages (in the `packages` folder) where you'd like to make a change. -5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. -6. Push the code and create a pull request. +5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. Add test cases in order to avoid future regression. +6. If tests are failing, but the change in output is desirable, run `yarn test:update` and carefully commit the changes in test output. +7. Push the code and create a pull request. Protip: You can run `yarn test` in the root folder to run all the tests. diff --git a/package.json b/package.json index 60096855a9..f7a809a7f3 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "build:all": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", + "test:update": "yarn turbo run test:update", "dev": "yarn turbo run dev", "repl": "cd packages/rrweb && npm run repl", "live-stream": "cd packages/rrweb && yarn live-stream", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index 4c2d2c17a8..a720e2d2e2 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -7,6 +7,7 @@ "prepack": "npm run bundle && npm run typings", "test": "jest", "test:watch": "jest --watch", + "test:update": "jest --updateSnapshot", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", "dev": "npm run bundle:es-only --watch", diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 2d104af916..5229d50424 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -8,6 +8,7 @@ "test": "npm run bundle:browser && jest --testPathIgnorePatterns test/benchmark", "test:headless": "PUPPETEER_HEADLESS=true npm run test", "test:watch": "PUPPETEER_HEADLESS=true npm run test -- --watch", + "test:update": "PUPPETEER_HEADLESS=true npm run test -- --updateSnapshot", "repl": "npm run bundle:browser && node scripts/repl.js", "live-stream": "npm run bundle:browser && node scripts/stream.js", "dev": "npm run bundle:browser --watch", diff --git a/turbo.json b/turbo.json index 3908cac7ef..2d2691a30e 100644 --- a/turbo.json +++ b/turbo.json @@ -8,6 +8,7 @@ }, "test": {}, "test:watch": {}, + "test:update": {}, "dev": {}, "lint": {}, "check-types": {} From ef1cbbfd9ccdac643415f56defd44acf2e87a028 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Wed, 12 Apr 2023 16:30:50 +0100 Subject: [PATCH 03/10] Default to running tests HEADLESS on rrweb --- packages/rrweb/package.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 5229d50424..3a127ad090 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -5,10 +5,12 @@ "scripts": { "prepare": "npm run prepack", "prepack": "npm run bundle", - "test": "npm run bundle:browser && jest --testPathIgnorePatterns test/benchmark", - "test:headless": "PUPPETEER_HEADLESS=true npm run test", - "test:watch": "PUPPETEER_HEADLESS=true npm run test -- --watch", - "test:update": "PUPPETEER_HEADLESS=true npm run test -- --updateSnapshot", + "build-and-test": "npm run bundle:browser && jest --testPathIgnorePatterns test/benchmark", + "test": "npm run test:headless", + "test:headless": "PUPPETEER_HEADLESS=true npm run build-and-test", + "test:headful": "PUPPETEER_HEADLESS=false npm run build-and-test", + "test:watch": "npm run test:headless -- --watch", + "test:update": "npm run test:headless -- --updateSnapshot", "repl": "npm run bundle:browser && node scripts/repl.js", "live-stream": "npm run bundle:browser && node scripts/stream.js", "dev": "npm run bundle:browser --watch", From 99d3390f6001c8786a9241dcf55fe7d7f12237d4 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Thu, 13 Apr 2023 11:17:26 +0100 Subject: [PATCH 04/10] Add command to build:all in a low memory environment --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index f7a809a7f3..d2418a665c 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "typescript": "^4.7.3" }, "scripts": { + "build:all:lowmem": "NODE_OPTIONS='--max-old-space-size=4096' npm run build:all", "build:all": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", From 1b8143f0070ac3332eb3d569aa3d1c4940a9b78d Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Thu, 13 Apr 2023 11:20:30 +0100 Subject: [PATCH 05/10] Add a 'retest' command for when the code hasn't changed, but you are working on the test cases --- packages/rrweb/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 3a127ad090..17849e4843 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -5,7 +5,8 @@ "scripts": { "prepare": "npm run prepack", "prepack": "npm run bundle", - "build-and-test": "npm run bundle:browser && jest --testPathIgnorePatterns test/benchmark", + "retest": "jest --testPathIgnorePatterns test/benchmark", + "build-and-test": "npm run bundle:browser && npm run retest", "test": "npm run test:headless", "test:headless": "PUPPETEER_HEADLESS=true npm run build-and-test", "test:headful": "PUPPETEER_HEADLESS=false npm run build-and-test", From 81bc33bdfe57bec72f10254d8f35dd0a43859a30 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Thu, 13 Apr 2023 11:46:04 +0100 Subject: [PATCH 06/10] Add commands to reformat according to prettier. Named 'reformat' to indicate that we are doing a `--write` --- package.json | 1 + packages/rrdom/package.json | 1 + packages/rrweb-player/package.json | 1 + packages/rrweb-snapshot/package.json | 1 + packages/rrweb/package.json | 1 + packages/types/package.json | 1 + turbo.json | 1 + 7 files changed, 7 insertions(+) diff --git a/package.json b/package.json index d2418a665c..7ecfb8c463 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", "test:update": "yarn turbo run test:update", + "reformat:all": "yarn turbo run reformat", "dev": "yarn turbo run dev", "repl": "cd packages/rrweb && npm run repl", "live-stream": "cd packages/rrweb && yarn live-stream", diff --git a/packages/rrdom/package.json b/packages/rrdom/package.json index e477b4a12c..211fb9fd84 100644 --- a/packages/rrdom/package.json +++ b/packages/rrdom/package.json @@ -19,6 +19,7 @@ "url": "git+https://github.com/rrweb-io/rrweb.git" }, "scripts": { + "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "rollup -c -w", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", diff --git a/packages/rrweb-player/package.json b/packages/rrweb-player/package.json index 15089bb692..b13201ffb9 100644 --- a/packages/rrweb-player/package.json +++ b/packages/rrweb-player/package.json @@ -28,6 +28,7 @@ }, "scripts": { "build": "rollup -c", + "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "rollup -c -w", "prepublishOnly": "npm run build", "start": "sirv public", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index a720e2d2e2..e402e26841 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -10,6 +10,7 @@ "test:update": "jest --updateSnapshot", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", + "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "npm run bundle:es-only --watch", "typings": "tsc -d --declarationDir typings", "prepublish": "npm run typings && npm run bundle", diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 17849e4843..b3b7f256f5 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -15,6 +15,7 @@ "repl": "npm run bundle:browser && node scripts/repl.js", "live-stream": "npm run bundle:browser && node scripts/stream.js", "dev": "npm run bundle:browser --watch", + "reformat": "yarn prettier --write '**/*.{ts,md}'", "bundle:browser": "cross-env BROWSER_ONLY=true rollup --config", "bundle": "rollup --config", "typings": "tsc -d --declarationDir typings", diff --git a/packages/types/package.json b/packages/types/package.json index 24e3873ef0..561ea23b1d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -9,6 +9,7 @@ "@rrweb/types" ], "scripts": { + "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "vite", "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", diff --git a/turbo.json b/turbo.json index 2d2691a30e..e03ba78323 100644 --- a/turbo.json +++ b/turbo.json @@ -9,6 +9,7 @@ "test": {}, "test:watch": {}, "test:update": {}, + "reformat": {}, "dev": {}, "lint": {}, "check-types": {} From 56b08ab146127104fbe855c468d1af89c197738a Mon Sep 17 00:00:00 2001 From: Justin Halsall Date: Fri, 2 Jun 2023 11:47:46 +0200 Subject: [PATCH 07/10] Update package.json Co-authored-by: Yun Feng --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 7ecfb8c463..630971b2b4 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,7 @@ "typescript": "^4.7.3" }, "scripts": { - "build:all:lowmem": "NODE_OPTIONS='--max-old-space-size=4096' npm run build:all", - "build:all": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", + "build:all": "NODE_OPTIONS='--max-old-space-size=4096' yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", "test:update": "yarn turbo run test:update", From eb47b09096b7eeafa193f7020bd06399d891f0cc Mon Sep 17 00:00:00 2001 From: Justin Halsall Date: Fri, 2 Jun 2023 12:03:45 +0200 Subject: [PATCH 08/10] Apply suggestions from code review Co-authored-by: Yun Feng --- package.json | 2 +- packages/rrdom/package.json | 1 - packages/rrvideo/package.json | 2 +- packages/rrweb-player/package.json | 5 ++--- packages/rrweb-snapshot/package.json | 5 ++--- packages/rrweb/package.json | 19 +++++++++---------- packages/types/package.json | 1 - turbo.json | 1 - 8 files changed, 15 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 630971b2b4..3e7cb6027c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", "test:update": "yarn turbo run test:update", - "reformat:all": "yarn turbo run reformat", + "format": "yarn prettier --write '**/*.{ts,md}'", "dev": "yarn turbo run dev", "repl": "cd packages/rrweb && npm run repl", "live-stream": "cd packages/rrweb && yarn live-stream", diff --git a/packages/rrdom/package.json b/packages/rrdom/package.json index 211fb9fd84..e477b4a12c 100644 --- a/packages/rrdom/package.json +++ b/packages/rrdom/package.json @@ -19,7 +19,6 @@ "url": "git+https://github.com/rrweb-io/rrweb.git" }, "scripts": { - "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "rollup -c -w", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", diff --git a/packages/rrvideo/package.json b/packages/rrvideo/package.json index 8954b4a253..4ddc1a0d55 100644 --- a/packages/rrvideo/package.json +++ b/packages/rrvideo/package.json @@ -12,7 +12,7 @@ "types": "build/index.d.ts", "scripts": { "build": "tsc", - "prepublish": "npm run build" + "prepublish": "yarn build" }, "author": "yanzhen@smartx.com", "license": "MIT", diff --git a/packages/rrweb-player/package.json b/packages/rrweb-player/package.json index b13201ffb9..b90a5ce3ee 100644 --- a/packages/rrweb-player/package.json +++ b/packages/rrweb-player/package.json @@ -28,12 +28,11 @@ }, "scripts": { "build": "rollup -c", - "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "rollup -c -w", - "prepublishOnly": "npm run build", + "prepublishOnly": "yarn build", "start": "sirv public", "validate": "svelte-check", - "prepublish": "npm run build", + "prepublish": "yarn build", "lint": "yarn eslint src/**/*.ts" }, "description": "rrweb's replayer UI", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index e402e26841..0fc37d25c2 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -10,10 +10,9 @@ "test:update": "jest --updateSnapshot", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", - "reformat": "yarn prettier --write '**/*.{ts,md}'", - "dev": "npm run bundle:es-only --watch", + "dev": "yarn bundle:es-only --watch", "typings": "tsc -d --declarationDir typings", - "prepublish": "npm run typings && npm run bundle", + "prepublish": "yarn typings && yarn bundle", "lint": "yarn eslint src" }, "type": "module", diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index b3b7f256f5..ab153465f9 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -6,16 +6,15 @@ "prepare": "npm run prepack", "prepack": "npm run bundle", "retest": "jest --testPathIgnorePatterns test/benchmark", - "build-and-test": "npm run bundle:browser && npm run retest", - "test": "npm run test:headless", - "test:headless": "PUPPETEER_HEADLESS=true npm run build-and-test", - "test:headful": "PUPPETEER_HEADLESS=false npm run build-and-test", - "test:watch": "npm run test:headless -- --watch", - "test:update": "npm run test:headless -- --updateSnapshot", - "repl": "npm run bundle:browser && node scripts/repl.js", - "live-stream": "npm run bundle:browser && node scripts/stream.js", - "dev": "npm run bundle:browser --watch", - "reformat": "yarn prettier --write '**/*.{ts,md}'", + "build-and-test": "yarn bundle:browser && yarn retest", + "test:headless": "PUPPETEER_HEADLESS=true yarn build-and-test", + "test:headful": "PUPPETEER_HEADLESS=false yarn build-and-test", + "test": "yarn test:headless", + "test:watch": "yarn test:headless -- --watch", + "test:update": "yarn test:headless -- --updateSnapshot", + "repl": "yarn bundle:browser && node scripts/repl.js", + "live-stream": "yarn bundle:browser && node scripts/stream.js", + "dev": "yarn bundle:browser --watch", "bundle:browser": "cross-env BROWSER_ONLY=true rollup --config", "bundle": "rollup --config", "typings": "tsc -d --declarationDir typings", diff --git a/packages/types/package.json b/packages/types/package.json index 561ea23b1d..24e3873ef0 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -9,7 +9,6 @@ "@rrweb/types" ], "scripts": { - "reformat": "yarn prettier --write '**/*.{ts,md}'", "dev": "vite", "build": "tsc -noEmit && vite build", "check-types": "tsc -noEmit", diff --git a/turbo.json b/turbo.json index e03ba78323..2d2691a30e 100644 --- a/turbo.json +++ b/turbo.json @@ -9,7 +9,6 @@ "test": {}, "test:watch": {}, "test:update": {}, - "reformat": {}, "dev": {}, "lint": {}, "check-types": {} From 99f0ecfb75374e488761aa9311ce44942e5f82ff Mon Sep 17 00:00:00 2001 From: Justin Halsall Date: Fri, 2 Jun 2023 12:04:55 +0200 Subject: [PATCH 09/10] Create few-turkeys-reflect.md --- .changeset/few-turkeys-reflect.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changeset/few-turkeys-reflect.md diff --git a/.changeset/few-turkeys-reflect.md b/.changeset/few-turkeys-reflect.md new file mode 100644 index 0000000000..ec380ec43f --- /dev/null +++ b/.changeset/few-turkeys-reflect.md @@ -0,0 +1,3 @@ +--- +--- + From 7d44e993a548d9f96ce7e277c25b45ed91e999be Mon Sep 17 00:00:00 2001 From: Juice10 Date: Fri, 2 Jun 2023 10:06:38 +0000 Subject: [PATCH 10/10] Apply formatting changes --- .changeset/few-turkeys-reflect.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.changeset/few-turkeys-reflect.md b/.changeset/few-turkeys-reflect.md index ec380ec43f..a845151cc8 100644 --- a/.changeset/few-turkeys-reflect.md +++ b/.changeset/few-turkeys-reflect.md @@ -1,3 +1,2 @@ --- --- -