Skip to content

Commit

Permalink
feat(build): Drop prepack step & directly pack /build directory (#1…
Browse files Browse the repository at this point in the history
…2656)

This is mostly an internal change, but it does change the layout of the
published package, which shouldn't affect users, unless they depend on
non-public things (which nobody should!).

With this change, we will simply pack the packages as-is without moving
any folder relativity. This means we do not need a `prepack` step
anymore.

Instead, we define which files should be included in the tarball via
`files` in the `package.json`.

<img width="497" alt="image"
src="https://github.com/getsentry/sentry-javascript/assets/2411343/39aeba01-eff2-41b3-afc2-6e437a23be96">

Fixes #12642

There are some tiny fluctuations in the comparison table but as far as I
can tell nothing serious/bad.
  • Loading branch information
mydea authored Jun 27, 2024
1 parent 24dbf1c commit 2a7c22b
Show file tree
Hide file tree
Showing 48 changed files with 166 additions and 444 deletions.
18 changes: 7 additions & 11 deletions docs/new-sdk-release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,22 +29,18 @@ differ slightly for other SDKs depending on how they are structured and how they

- [ ] Make sure that the tarball (`yarn build:tarball`) has all the necessary contents

For basic SDKs, this means that the tarball has at least these files:
For basic SDKs, this means that the tarball has at least these files - you can configure what is included in the
tarball via the `files` field in `package.json`:

- [ ] `cjs/<entrypoint>.js`
- [ ] `esm/<entrypoint>.js`
- [ ] `types/<entrypoint.d.ts>`
- [ ] `build/cjs/<entrypoint>.js` (or `build/npm/cjs/<entrypoint>.js`)
- [ ] `build/esm/<entrypoint>.js` (or `build/npm/esm/<entrypoint>.js`)
- [ ] `build/types/<entrypoint.d.ts>` (or `build/npm/types/<entrypoint>.js`)
- [ ] `package.json`
- [ ] Entry points registered in this file match the file structure above
- [ ] `LICENSE`
- [ ] `README.md`
- [ ] If your tarball should contain additional files outside `esm`, `cjs`, and `types` that are not listed above
(e.g. like Gatsby or Remix), be sure to add a package-specific `prepack.ts` script. In this script, you can copy
these additional files and make other adjustments.\
Check out the
[Gatsby script](https://github.com/getsentry/sentry-javascript/blob/acd7fbb56ed1859ce48f06a76143075108631c25/packages/gatsby/scripts/prepack.ts#L1)
as an example.\
It’s recommended to build and pack a tarball and then `yarn add path/to/tarball.tar.gz` it to your test app(s)
- [ ] Any additional files that should be part of the tarball
- [ ] It’s recommended to build and pack a tarball and then `yarn add path/to/tarball.tar.gz` it to your test app(s)
to ensure that it has all the correct files.

- [ ] Make sure `build.yml` CI script is correctly set up to cover tests for the new package
Expand Down
2 changes: 1 addition & 1 deletion packages/angular/ng-package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"entryFile": "src/index.ts"
},
"allowedNonPeerDependencies": ["@sentry/browser", "@sentry/core", "@sentry/utils", "@sentry/types", "tslib"],
"assets": ["README.md", "LICENSE"]
"assets": []
}
6 changes: 3 additions & 3 deletions packages/angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"test": "yarn test:unit",
"test:unit": "vitest run",
"test:unit:watch": "vitest --watch",
"yalc:publish": "yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand All @@ -73,8 +73,8 @@
"outputs": [
"{projectRoot}/build/esm2015",
"{projectRoot}/build/fesm2015",
"{projectRoot}/build/*.{md,json}",
"{projectRoot}/build/LICENCE"
"{projectRoot}/build/fesm2020",
"{projectRoot}/build/*.d.ts"
]
}
}
Expand Down
11 changes: 3 additions & 8 deletions packages/astro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,7 @@
},
"type": "module",
"files": [
"cjs",
"esm",
"types",
"types-ts3.8",
"import-hook.mjs",
"loader-hook.mjs"
"/build"
],
"main": "build/cjs/index.client.js",
"module": "build/esm/index.server.js",
Expand Down Expand Up @@ -81,15 +76,15 @@
"build:dev:watch": "yarn build:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.client.ts && madge --circular src/index.server.ts && madge --circular src/index.types.ts",
"clean": "rimraf build coverage sentry-astro-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test": "yarn test:unit",
"test:unit": "vitest run",
"test:watch": "vitest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
13 changes: 5 additions & 8 deletions packages/aws-serverless/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,9 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8",
"import-hook.mjs",
"loader-hook.mjs"
"/build/npm",
"/build/import-hook.mjs",
"/build/loader-hook.mjs"
],
"main": "build/npm/cjs/index.js",
"types": "build/npm/types/index.d.ts",
Expand Down Expand Up @@ -88,14 +85,14 @@
"build:dev:watch": "yarn build:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build dist-awslambda-layer coverage sentry-serverless-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test": "jest",
"test:watch": "jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts --bundles && yalc publish ./build/npm --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
9 changes: 3 additions & 6 deletions packages/browser-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8"
"/build"
],
"main": "build/cjs/index.js",
"module": "build/esm/index.js",
Expand Down Expand Up @@ -57,14 +54,14 @@
"build:dev:watch": "run-p build:transpile:watch build:types:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"clean": "rimraf build coverage sentry-internal-browser-utils-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test:unit": "jest",
"test": "jest",
"test:watch": "jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
9 changes: 3 additions & 6 deletions packages/browser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8"
"/build/npm"
],
"main": "build/npm/cjs/index.js",
"module": "build/npm/esm/index.js",
Expand Down Expand Up @@ -68,7 +65,7 @@
"build:bundle:watch": "rollup -c rollup.bundle.config.mjs --watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build coverage .rpt2_cache sentry-browser-*.tgz",
"fix": "eslint . --format stylish --fix",
Expand All @@ -78,7 +75,7 @@
"test:unit": "jest",
"test:package": "node test/package/npm-build.js && rm test/package/tmp.js",
"test:unit:watch": "jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts --bundles && yalc publish ./build/npm --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
9 changes: 3 additions & 6 deletions packages/bun/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8"
"/build"
],
"main": "build/cjs/index.js",
"module": "build/esm/index.js",
Expand Down Expand Up @@ -62,7 +59,7 @@
"build:dev:watch": "yarn build:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build coverage sentry-bun-*.tgz",
"fix": "eslint . --format stylish --fix",
Expand All @@ -71,7 +68,7 @@
"test": "run-s install:bun test:bun",
"test:bun": "bun test",
"test:watch": "bun test --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
9 changes: 3 additions & 6 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8"
"/build"
],
"main": "build/cjs/index.js",
"module": "build/esm/index.js",
Expand Down Expand Up @@ -56,14 +53,14 @@
"build:dev:watch": "yarn build:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build coverage sentry-core-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test": "jest",
"test:watch": "jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
8 changes: 3 additions & 5 deletions packages/deno/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@
"access": "public"
},
"files": [
"index.mjs",
"index.mjs.map",
"index.d.ts"
"/build"
],
"dependencies": {
"@sentry/core": "8.12.0",
Expand All @@ -43,7 +41,7 @@
"build:types": "run-s deno-types build:types:tsc build:types:bundle",
"build:types:tsc": "tsc -p tsconfig.types.json",
"build:types:bundle": "rollup -c rollup.types.config.mjs",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build build-types build-test coverage",
"prefix": "yarn deno-types",
Expand All @@ -57,7 +55,7 @@
"test:types": "deno check ./build/index.mjs",
"test:unit": "deno test --allow-read --allow-run",
"test:unit:update": "deno test --allow-read --allow-write --allow-run -- --update",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-config-sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"node": ">=14.18"
},
"files": [
"src"
"/src"
],
"main": "src/index.js",
"publishConfig": {
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"node": ">=14.18"
},
"files": [
"src"
"/src"
],
"main": "src/index.js",
"publishConfig": {
Expand Down
9 changes: 3 additions & 6 deletions packages/feedback/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8"
"/build/npm"
],
"main": "build/npm/cjs/index.js",
"module": "build/npm/esm/index.js",
Expand Down Expand Up @@ -62,14 +59,14 @@
"build:transpile:watch": "yarn build:transpile --watch",
"build:bundle:watch": "yarn build:bundle --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts --bundles && npm pack ./build/npm",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build sentry-internal-feedback-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test": "jest",
"test:watch": "jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts --bundles && yalc publish ./build/npm --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
9 changes: 3 additions & 6 deletions packages/gatsby/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@
"node": ">=14.18"
},
"files": [
"cjs",
"esm",
"types",
"types-ts3.8",
"/build",
"gatsby-node.js",
"gatsby-node.d.ts"
],
Expand Down Expand Up @@ -75,14 +72,14 @@
"build:dev:watch": "yarn build:watch",
"build:transpile:watch": "rollup -c rollup.npm.config.mjs --watch",
"build:types:watch": "tsc -p tsconfig.types.json --watch",
"build:tarball": "ts-node ../../scripts/prepack.ts && npm pack ./build",
"build:tarball": "npm pack",
"circularDepCheck": "madge --circular src/index.ts",
"clean": "rimraf build coverage *.d.ts sentry-gatsby-*.tgz",
"fix": "eslint . --format stylish --fix",
"lint": "eslint . --format stylish",
"test": "yarn ts-node scripts/pretest.ts && yarn jest",
"test:watch": "yarn ts-node scripts/pretest.ts && yarn jest --watch",
"yalc:publish": "ts-node ../../scripts/prepack.ts && yalc publish build --push --sig"
"yalc:publish": "yalc publish --push --sig"
},
"volta": {
"extends": "../../package.json"
Expand Down
32 changes: 0 additions & 32 deletions packages/gatsby/scripts/prepack.ts

This file was deleted.

Loading

0 comments on commit 2a7c22b

Please sign in to comment.