From db69a87a3cdbf2aa388fe08e6469c18b55dc19cd Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Sat, 12 Apr 2025 01:30:40 +0900 Subject: [PATCH 01/13] Add packages to workspaces --- package.json | 1 + packages/playground-bundling/package.json | 12 +- yarn.lock | 431 ++++++++++++++++++++++ 3 files changed, 436 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index e7d73e8de4..be5d0c6d6c 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "typescript": "5.8.2" }, "workspaces": [ + "packages/*", "tests/dependencies/**", "tests/analysis_tests/**", "tests/gentype_tests/**", diff --git a/packages/playground-bundling/package.json b/packages/playground-bundling/package.json index 2f7b0ca1ce..8480953568 100644 --- a/packages/playground-bundling/package.json +++ b/packages/playground-bundling/package.json @@ -1,19 +1,15 @@ { - "name": "proj", - "version": "1.0.0", - "description": "", + "private": true, + "name": "playground-bundling", "type": "module", - "main": "index.js", "scripts": { "build": "rescript clean && rescript build && node ./scripts/generate_cmijs.js", "bundle": "rollup -c", "clean": "rescript clean" }, - "keywords": [], - "author": "", - "license": "ISC", "dependencies": { - "@rescript/react": "^0.13.0" + "@rescript/react": "^0.13.1", + "rescript": "workspace:^" }, "devDependencies": { "@rollup/plugin-node-resolve": "^16.0.0", diff --git a/yarn.lock b/yarn.lock index 521187df7b..d05e9f6c23 100644 --- a/yarn.lock +++ b/yarn.lock @@ -422,6 +422,186 @@ __metadata: languageName: unknown linkType: soft +"@rescript/std@workspace:packages/std": + version: 0.0.0-use.local + resolution: "@rescript/std@workspace:packages/std" + languageName: unknown + linkType: soft + +"@rollup/plugin-node-resolve@npm:^16.0.0": + version: 16.0.1 + resolution: "@rollup/plugin-node-resolve@npm:16.0.1" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + "@types/resolve": "npm:1.20.2" + deepmerge: "npm:^4.2.2" + is-module: "npm:^1.0.0" + resolve: "npm:^1.22.1" + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10c0/54d33282321492fafec29b49c66dd1efd90c72a24f9d1569dcb57a72ab8de8a782810f39fdb917b96ec6a598c18f3416588b419bf7af331793a010de1fe28c60 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.1": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10c0/6d58fbc6f1024eb4b087bc9bf59a1d655a8056a60c0b4021d3beaeec3f0743503f52467fd89d2cf0e7eccf2831feb40a05ad541a17637ea21ba10b21c2004deb + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm64@npm:4.39.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.39.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@tests/analysis@workspace:tests/analysis_tests/tests": version: 0.0.0-use.local resolution: "@tests/analysis@workspace:tests/analysis_tests/tests" @@ -488,6 +668,13 @@ __metadata: languageName: unknown linkType: soft +"@types/estree@npm:1.0.7, @types/estree@npm:^1.0.0": + version: 1.0.7 + resolution: "@types/estree@npm:1.0.7" + checksum: 10c0/be815254316882f7c40847336cd484c3bc1c3e34f710d197160d455dc9d6d050ffbf4c3bc76585dba86f737f020ab20bdb137ebe0e9116b0c86c7c0342221b8c + languageName: node + linkType: hard + "@types/node@npm:^20.14.9": version: 20.17.27 resolution: "@types/node@npm:20.17.27" @@ -523,6 +710,13 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: 10c0/c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 + languageName: node + linkType: hard + "@types/semver@npm:^7.5.8": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" @@ -902,6 +1096,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 + languageName: node + linkType: hard + "default-require-extensions@npm:^3.0.0": version: 3.0.1 resolution: "default-require-extensions@npm:3.0.1" @@ -1000,6 +1201,13 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10c0/53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.2 resolution: "exponential-backoff@npm:3.1.2" @@ -1118,6 +1326,13 @@ __metadata: languageName: node linkType: hard +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + "gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" @@ -1164,6 +1379,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^11.0.1": + version: 11.0.1 + resolution: "glob@npm:11.0.1" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^4.0.1" + minimatch: "npm:^10.0.0" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^2.0.0" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/2b32588be52e9e90f914c7d8dec32f3144b81b84054b0f70e9adfebf37cd7014570489f2a79d21f7801b9a4bd4cca94f426966bfd00fb64a5b705cfe10da3a03 + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -1222,6 +1453,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -1324,6 +1564,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -1347,6 +1596,13 @@ __metadata: languageName: node linkType: hard +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 10c0/795a3914bcae7c26a1c23a1e5574c42eac13429625045737bf3e324ce865c0601d61aee7a5afbca1bee8cb300c7d9647e7dc98860c9bdbc3b7fdc51d8ac0bffc + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -1490,6 +1746,15 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^4.0.1": + version: 4.1.0 + resolution: "jackspeak@npm:4.1.0" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + checksum: 10c0/08a6a24a366c90b83aef3ad6ec41dcaaa65428ffab8d80bc7172add0fbb8b134a34f415ad288b2a6fbd406526e9a62abdb40ed4f399fbe00cb45c44056d4dce0 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -1598,6 +1863,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^11.0.0": + version: 11.1.0 + resolution: "lru-cache@npm:11.1.0" + checksum: 10c0/85c312f7113f65fae6a62de7985348649937eb34fb3d212811acbf6704dc322a421788aca253b62838f1f07049a84cc513d88f494e373d3756514ad263670a64 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -1644,6 +1916,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.0.0": + version: 10.0.1 + resolution: "minimatch@npm:10.0.1" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/e6c29a81fe83e1877ad51348306be2e8aeca18c88fdee7a99df44322314279e15799e41d7cb274e4e8bb0b451a3bc622d6182e157dfa1717d6cda75e9cd8cd5d + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -2002,6 +2283,13 @@ __metadata: languageName: node linkType: hard +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + "path-scurry@npm:^1.11.1": version: 1.11.1 resolution: "path-scurry@npm:1.11.1" @@ -2012,6 +2300,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^2.0.0": + version: 2.0.0 + resolution: "path-scurry@npm:2.0.0" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10c0/3da4adedaa8e7ef8d6dc4f35a0ff8f05a9b4d8365f2b28047752b62d4c1ad73eec21e37b1579ef2d075920157856a3b52ae8309c480a6f1a8bbe06ff8e52b33c + languageName: node + linkType: hard + "picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" @@ -2026,6 +2324,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc + languageName: node + linkType: hard + "pkg-dir@npm:^4.1.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -2035,6 +2340,18 @@ __metadata: languageName: node linkType: hard +"playground-bundling@workspace:packages/playground-bundling": + version: 0.0.0-use.local + resolution: "playground-bundling@workspace:packages/playground-bundling" + dependencies: + "@rescript/react": "npm:^0.13.1" + "@rollup/plugin-node-resolve": "npm:^16.0.0" + glob: "npm:^11.0.1" + rescript: "workspace:^" + rollup: "npm:^4.32.0" + languageName: unknown + linkType: soft + "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" @@ -2123,6 +2440,12 @@ __metadata: languageName: node linkType: hard +"rescript-test@workspace:packages/test": + version: 0.0.0-use.local + resolution: "rescript-test@workspace:packages/test" + languageName: unknown + linkType: soft + "rescript@workspace:., rescript@workspace:^": version: 0.0.0-use.local resolution: "rescript@workspace:." @@ -2150,6 +2473,32 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.22.1": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939 + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -2179,6 +2528,81 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.32.0": + version: 4.39.0 + resolution: "rollup@npm:4.39.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.39.0" + "@rollup/rollup-android-arm64": "npm:4.39.0" + "@rollup/rollup-darwin-arm64": "npm:4.39.0" + "@rollup/rollup-darwin-x64": "npm:4.39.0" + "@rollup/rollup-freebsd-arm64": "npm:4.39.0" + "@rollup/rollup-freebsd-x64": "npm:4.39.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.39.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.39.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.39.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.39.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.39.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.39.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.39.0" + "@rollup/rollup-linux-x64-musl": "npm:4.39.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.39.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.39.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.39.0" + "@types/estree": "npm:1.0.7" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/2dc0c23ca04bd00295035b405c977261559aed8acc9902ee9ff44e4a6b54734fcb64999c32143c43804dcb543da7983032831b893a902633b006c21848a093ce + languageName: node + linkType: hard + "safe-buffer@npm:^5.1.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -2419,6 +2843,13 @@ __metadata: languageName: node linkType: hard +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + "tar@npm:^7.4.3": version: 7.4.3 resolution: "tar@npm:7.4.3" From f8f368b35401e30c3c5777fd6145b7240b8245e4 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 04:42:29 +0900 Subject: [PATCH 02/13] add comment about yarn --- scripts/npmPack.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/npmPack.js b/scripts/npmPack.js index 967803c827..5d620bdddc 100755 --- a/scripts/npmPack.js +++ b/scripts/npmPack.js @@ -2,7 +2,9 @@ // @ts-check -// TODO: Use `yarn pack --json` instead. +// NOTE: +// We cannot use `yarn pack` since we need to set our OCaml binaries executable. +// Yarn (Berry) only allow `bin` to be executable, wouldn't preserve permission bits. // This performs `npm pack` and retrieves the list of artifact files from the output. // From bc5ba8c07f8274dc38158f36bf27c869c697cb86 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 05:25:24 +0900 Subject: [PATCH 03/13] use Yarn workspace instead npm link --- .../scripts/generate_cmijs.js | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/packages/playground-bundling/scripts/generate_cmijs.js b/packages/playground-bundling/scripts/generate_cmijs.js index 7d0df1e877..c48befc664 100644 --- a/packages/playground-bundling/scripts/generate_cmijs.js +++ b/packages/playground-bundling/scripts/generate_cmijs.js @@ -3,9 +3,7 @@ // @ts-check /* - * Requires the version matching `rescript` binary to be `npm link`ed in this - * project. Or in other words: You need to build cmij files with the same - * rescript version as the compiler bundle. + * You need to build cmij files with the same rescript version as the compiler bundle. * * This script extracts all cmi / cmj files of the rescript/lib/ocaml and all * dependencies listed in the project root's rescript.json, creates cmij.js @@ -27,6 +25,7 @@ const RESCRIPT_COMPILER_ROOT_DIR = path.join( "..", "..", ); + const PLAYGROUND_DIR = path.join(RESCRIPT_COMPILER_ROOT_DIR, "playground"); // The playground-bundling root dir @@ -36,9 +35,7 @@ const PROJECT_ROOT_DIR = path.join(import.meta.dirname, ".."); const PACKAGES_DIR = path.join(PLAYGROUND_DIR, "packages"); // Making sure this directory exists, since it's not checked in to git -if (!fs.existsSync(PACKAGES_DIR)) { - fs.mkdirSync(PACKAGES_DIR, { recursive: true }); -} +fs.mkdirSync(PACKAGES_DIR, { recursive: true }); /** * @param {string} cmd @@ -53,10 +50,9 @@ function e(cmd) { console.log("<<<<<<"); } -e("npm install"); -e(`npm link ${RESCRIPT_COMPILER_ROOT_DIR}`); -e("npx rescript clean"); -e("npx rescript"); +e("yarn install"); +e("yarn rescript clean"); +e("yarn rescript"); const packages = resConfig["bs-dependencies"]; @@ -64,21 +60,16 @@ const packages = resConfig["bs-dependencies"]; // Otherwise we can't use them for compilation within the playground. function buildCompilerCmij() { const rescriptLibOcamlFolder = path.join( - PROJECT_ROOT_DIR, - "node_modules", - "rescript", + RESCRIPT_COMPILER_ROOT_DIR, "lib", "ocaml", ); const outputFolder = path.join(PACKAGES_DIR, "compiler-builtins"); + fs.mkdirSync(outputFolder, { recursive: true }); const cmijFile = path.join(outputFolder, "cmij.cjs"); - if (!fs.existsSync(outputFolder)) { - fs.mkdirSync(outputFolder, { recursive: true }); - } - e( `find ${rescriptLibOcamlFolder} -name "*.cmi" -or -name "*.cmj" | xargs -n1 basename | xargs js_of_ocaml build-fs -o ${cmijFile} -I ${rescriptLibOcamlFolder}`, ); @@ -87,27 +78,24 @@ function buildCompilerCmij() { function buildThirdPartyCmijs() { for (const pkg of packages) { const libOcamlFolder = path.join( - PROJECT_ROOT_DIR, + RESCRIPT_COMPILER_ROOT_DIR, "node_modules", pkg, "lib", "ocaml", ); const libEs6Folder = path.join( - PROJECT_ROOT_DIR, + RESCRIPT_COMPILER_ROOT_DIR, "node_modules", pkg, "lib", "es6", ); const outputFolder = path.join(PACKAGES_DIR, pkg); + fs.mkdirSync(outputFolder, { recursive: true }); const cmijFile = path.join(outputFolder, "cmij.cjs"); - if (!fs.existsSync(outputFolder)) { - fs.mkdirSync(outputFolder, { recursive: true }); - } - e(`find ${libEs6Folder} -name '*.js' -exec cp {} ${outputFolder} \\;`); e( `find ${libOcamlFolder} -name "*.cmi" -or -name "*.cmj" | xargs -n1 basename | xargs js_of_ocaml build-fs -o ${cmijFile} -I ${libOcamlFolder}`, @@ -116,7 +104,7 @@ function buildThirdPartyCmijs() { } function bundleStdlibJs() { - e("npm run bundle"); + e("yarn bundle"); } buildCompilerCmij(); From c9b18e17f9434472e5e579cfbab5c249235b12cd Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 05:30:51 +0900 Subject: [PATCH 04/13] use an isolated directory for installation test --- .github/workflows/ci.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81657ff016..d0017a2ef0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -513,23 +513,36 @@ jobs: with: node-version-file: .nvmrc + - name: Make test directory + id: tmp-dir + shell: bash + run: | + if [[ "$RUNNER_OS" == "Windows" ]]; then + dir=$(powershell -Command "[System.IO.Path]::GetTempPath() + [System.Guid]::NewGuid().ToString()" | tr -d '\r') + mkdir -p "$dir" + else + dir=$(mktemp -d) + fi + echo "path=$dir" >> "$GITHUB_OUTPUT" + cp -r packages/test/* "$dir" + - name: Download artifacts uses: actions/download-artifact@v4 with: name: npm-packages - path: packages/test + path: ${{ steps.tmp-dir.outputs.path }} - name: Install ReScript package run: | npm i --ignore-scripts --no-audit \ rescript-${{ needs.package.outputs.rescript_version }}.tgz shell: bash - working-directory: packages/test + working-directory: ${{ steps.tmp-dir.outputs.path }} - name: Test installation run: npx rescript -h && npx rescript build && cat src/Test.bs.js shell: bash - working-directory: packages/test + working-directory: ${{ steps.tmp-dir.outputs.path }} publish: needs: [package, installationTest] From 7d51d640a8edf470d08442bfbfd090493751f660 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 05:38:28 +0900 Subject: [PATCH 05/13] remove unused script --- packages/test/test_freebsd.sh | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100755 packages/test/test_freebsd.sh diff --git a/packages/test/test_freebsd.sh b/packages/test/test_freebsd.sh deleted file mode 100755 index b84fe63a5c..0000000000 --- a/packages/test/test_freebsd.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Node 16 doesn't work, see https://forums.freebsd.org/threads/nodejs-and-libcrypto-so-wrong-version-after-upgrade.82471/ -sudo pkg install -y npm-node14 python gcc - -npm i rescript*.tgz - -npx rescript -h -npx rescript build -cat src/Test.bs.js - -# Cleanup -rm -rf node_modules From 72b7dd5e0891fa899dfa2d104e85797c56b92220 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 05:52:58 +0900 Subject: [PATCH 06/13] exclude installation test template from workspaces --- .github/workflows/ci.yml | 2 +- packages/test/.gitignore | 2 -- packages/test/package.json | 4 ---- packages/test/rescript.json | 16 ---------------- .../installation_test/rescript.json | 12 ++++++++++++ .../installation_test}/src/Test.res | 0 yarn.lock | 6 ------ 7 files changed, 13 insertions(+), 29 deletions(-) delete mode 100644 packages/test/.gitignore delete mode 100644 packages/test/package.json delete mode 100644 packages/test/rescript.json create mode 100644 tests/package_tests/installation_test/rescript.json rename {packages/test => tests/package_tests/installation_test}/src/Test.res (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d0017a2ef0..1738ab199e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -524,7 +524,7 @@ jobs: dir=$(mktemp -d) fi echo "path=$dir" >> "$GITHUB_OUTPUT" - cp -r packages/test/* "$dir" + cp -r tests/package_tests/installation_test/* "$dir" - name: Download artifacts uses: actions/download-artifact@v4 diff --git a/packages/test/.gitignore b/packages/test/.gitignore deleted file mode 100644 index 23d31d5825..0000000000 --- a/packages/test/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -package-lock.json -yarn.lock diff --git a/packages/test/package.json b/packages/test/package.json deleted file mode 100644 index 31130847f5..0000000000 --- a/packages/test/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "rescript-test", - "version": "0.0.0" -} diff --git a/packages/test/rescript.json b/packages/test/rescript.json deleted file mode 100644 index 5923440e94..0000000000 --- a/packages/test/rescript.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "rescript-test", - "sources": [ - { - "dir": "src", - "subdirs": true - } - ], - "package-specs": [ - { - "module": "esmodule", - "in-source": true - } - ], - "suffix": ".bs.js" -} diff --git a/tests/package_tests/installation_test/rescript.json b/tests/package_tests/installation_test/rescript.json new file mode 100644 index 0000000000..fd6dfe79cd --- /dev/null +++ b/tests/package_tests/installation_test/rescript.json @@ -0,0 +1,12 @@ +{ + "name": "install-test", + "sources": { + "dir": "src", + "subdirs": true + }, + "package-specs": { + "module": "esmodule", + "in-source": true, + "suffix": ".res.js" + } +} diff --git a/packages/test/src/Test.res b/tests/package_tests/installation_test/src/Test.res similarity index 100% rename from packages/test/src/Test.res rename to tests/package_tests/installation_test/src/Test.res diff --git a/yarn.lock b/yarn.lock index d05e9f6c23..fbc9e93bd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2440,12 +2440,6 @@ __metadata: languageName: node linkType: hard -"rescript-test@workspace:packages/test": - version: 0.0.0-use.local - resolution: "rescript-test@workspace:packages/test" - languageName: unknown - linkType: soft - "rescript@workspace:., rescript@workspace:^": version: 0.0.0-use.local resolution: "rescript@workspace:." From 2f71c2df29296e7cb8e34e6c9b789dcc9c538285 Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Tue, 15 Apr 2025 06:37:38 +0900 Subject: [PATCH 07/13] compose playground settings into a single workspace --- .github/workflows/ci.yml | 11 +++--- CONTRIBUTING.md | 20 +++++------ Makefile | 8 ++--- .../.gitignore | 6 ++-- .../README.md | 35 ++++++------------- .../package.json | 12 ++++--- .../playground}/playground_test.cjs | 6 ++-- .../rescript.json | 14 ++++---- .../rollup.config.mjs | 4 +-- .../scripts/generate_cmijs.mjs} | 16 +++------ .../playground/scripts}/upload_bundle.sh | 7 ++-- .../scripts}/website_update_playground.sh | 2 +- .../src/App.res | 0 .../tsconfig.json | 0 yarn.lock | 4 +-- 15 files changed, 64 insertions(+), 81 deletions(-) rename packages/{playground-bundling => playground}/.gitignore (88%) rename packages/{playground-bundling => playground}/README.md (57%) rename packages/{playground-bundling => playground}/package.json (54%) rename {playground => packages/playground}/playground_test.cjs (90%) rename packages/{playground-bundling => playground}/rescript.json (62%) rename packages/{playground-bundling => playground}/rollup.config.mjs (81%) rename packages/{playground-bundling/scripts/generate_cmijs.js => playground/scripts/generate_cmijs.mjs} (87%) rename {playground => packages/playground/scripts}/upload_bundle.sh (90%) rename {playground => packages/playground/scripts}/website_update_playground.sh (95%) rename packages/{playground-bundling => playground}/src/App.res (100%) rename packages/{playground-bundling => playground}/tsconfig.json (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1738ab199e..ad2bf7b303 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -406,21 +406,18 @@ jobs: - name: Build playground compiler if: matrix.build_playground - run: | - opam exec -- node packages/playground-bundling/scripts/generate_cmijs.js - opam exec -- dune build --profile browser - cp ./_build/default/compiler/jsoo/jsoo_playground_main.bc.js playground/compiler.cjs + run: opam exec -- make playground playground-cmijs - name: Test playground compiler if: matrix.build_playground - run: node playground/playground_test.cjs + run: yarn workspace playground test - name: Upload playground compiler to CDN if: ${{ matrix.build_playground && startsWith(github.ref, 'refs/tags/v') }} env: KEYCDN_USER: ${{ secrets.KEYCDN_USER }} KEYCDN_PASSWORD: ${{ secrets.KEYCDN_PASSWORD }} - run: bash playground/upload_bundle.sh + run: yarn workspace playground upload-bundle - name: "Upload artifacts: binaries" if: matrix.upload_binaries @@ -577,5 +574,5 @@ jobs: - name: Update Website Playground env: NEXT_REVALIDATE_SECRET_TOKEN: ${{ secrets.NEXT_REVALIDATE_SECRET_TOKEN }} - run: ./playground/website_update_playground.sh + run: yarn workspace playground revalidate shell: bash diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e7b135867..b72a486baa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -241,29 +241,28 @@ make playground make playground-cmijs ``` -Note that building the cmijs is based on the dependencies defined in `packages/playground-bundling/package.json`. In case you want to build some different version of e.g. `@rescript/react` or just want to add a new package, change the definition within the `package.json` file and run `make playground-cmijs` again. +Note that building the cmijs is based on the dependencies defined in `packages/playground/package.json`. In case you want to build some different version of e.g. `@rescript/react` or just want to add a new package, change the definition within the `package.json` file and run `yarn workspace playground build` again. After a successful compilation, you will find following files in your project: - `playground/compiler.js` -> This is the ReScript compiler, which binds the ReScript API to the `window` object. -- `playground/packages` -> Contains third party deps with cmij.js files (as defined in `packages/playground-bundling/bsconfig.json`) -- `playground/compilerCmij.js` -> The compiler base cmij containing all the relevant core modules (`Js`, `Belt`, `Pervasives`, etc.) +- `playground/packages/compiler-builtins` -> The compiler base cmij containing all the relevant core modules (`Js`, `Belt`, `Pervasives`, etc.) +- `playground/packages/*` -> Contains third party deps with cmij.js files (as defined in `packages/playground/rescript.json`) You can now use the `compiler.js` file either directly by using a `