Skip to content

Use esbuild instead of rollup#45

Merged
Grub4K merged 23 commits into
yt-dlp:mainfrom
Grub4K:feat/esbuild
Apr 7, 2026
Merged

Use esbuild instead of rollup#45
Grub4K merged 23 commits into
yt-dlp:mainfrom
Grub4K:feat/esbuild

Conversation

@Grub4K
Copy link
Copy Markdown
Member

@Grub4K Grub4K commented Jan 17, 2026

Fixes #42

Still work in progress as yt-dlp will have to be adapted for the resulting bundles for testing.

This is slightly problematic as we deno task bundle to use deno, nothing else. We could keep it like this and just keep the precedence logic.

This also gets rid of some dependencies and moves all of the building logic into Python land, so we don't ever have to invoke javascript for the actual building part.

@Grub4K
Copy link
Copy Markdown
Member Author

Grub4K commented Jan 18, 2026

Not sure who to ping here for Nix, but @Mynacol or @SuperSandro2000:

I'm intending to drop rollup in favor of esbuild and, to support this, drop pnpm bundling support. pnpm will still be available for installing packages and the lockfile will continue to exist, however for bundling you would instead have to invoke a available runtime or esbuild directly, so set EJS_BUILD_BUNDLER=node for node or EJS_BUILD_BUNDLER=esbuild for esbuild.

It would be nice to know if this combination would still work for you guys.

@SuperSandro2000
Copy link
Copy Markdown

Seems to work for us:

 ➜ git diff | cat
diff --git a/pkgs/development/python-modules/yt-dlp-ejs/default.nix b/pkgs/development/python-modules/yt-dlp-ejs/default.nix
index 156b6cd48f8b..1c5692865f60 100644
--- a/pkgs/development/python-modules/yt-dlp-ejs/default.nix
+++ b/pkgs/development/python-modules/yt-dlp-ejs/default.nix
@@ -18,8 +18,8 @@
   src = fetchFromGitHub {
     owner = "yt-dlp";
     repo = "ejs";
-    tag = version;
-    hash = "sha256-o6qf4rfj42mCyvCBb+wyJmZKg3Q+ojsqbCcBfIJnTPg=";
+    rev = "8c584c87970a7853694c495062f7453ce47bf541";
+    hash = "sha256-qwGDeKZwhL4z5irnZTVlcdemD3CZXoaqvvYDjsFftXw=";
   };

   pnpmDeps = fetchPnpmDeps {
@@ -28,8 +28,8 @@
       version
       src
       ;
-    fetcherVersion = 2;
-    hash = "sha256-3hhwKUzfdlKmth4uRlfBSdxEOIfhAVaq2PZIOHWGWiM=";
+    fetcherVersion = 3;
+    hash = "sha256-+rvz5/PmglWzvcux+cIdFEWv6TvrAQx/dqaBYW4Gae0=";
   };

   build-system = [
yt-dlp-ejs> building '/nix/store/gifa5jgvqyg2da2k0lvz700d075rv0lp-python3.13-yt-dlp-ejs-0.3.2.drv'
yt-dlp-ejs> Sourcing python-remove-tests-dir-hook
yt-dlp-ejs> Sourcing python-catch-conflicts-hook.sh
yt-dlp-ejs> Sourcing python-remove-bin-bytecode-hook.sh
yt-dlp-ejs> Sourcing pypa-build-hook
yt-dlp-ejs> Using pypaBuildPhase
yt-dlp-ejs> Sourcing python-runtime-deps-check-hook
yt-dlp-ejs> Using pythonRuntimeDepsCheckHook
yt-dlp-ejs> Sourcing pypa-install-hook
yt-dlp-ejs> Using pypaInstallPhase
yt-dlp-ejs> Sourcing python-imports-check-hook.sh
yt-dlp-ejs> Using pythonImportsCheckPhase
yt-dlp-ejs> Sourcing python-namespaces-hook
yt-dlp-ejs> Sourcing python-catch-conflicts-hook.sh
yt-dlp-ejs> Running phase: unpackPhase
yt-dlp-ejs> unpacking source archive /nix/store/4cbfcf6j101i0xmqdhi7p9ifqqbxcm2w-source
yt-dlp-ejs> source root is source
yt-dlp-ejs> setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/yt_dlp_ejs/yt/solver/__init__.py"
yt-dlp-ejs> Running phase: patchPhase
yt-dlp-ejs> Running phase: updateAutotoolsGnuConfigScriptsPhase
yt-dlp-ejs> Running phase: configurePhase
yt-dlp-ejs> no configure script, doing nothing
yt-dlp-ejs> Executing pnpmConfigHook
yt-dlp-ejs> Found 'pnpm' with version '10.28.0'
yt-dlp-ejs> Using fetcherVersion: 3
yt-dlp-ejs> Configuring pnpm store
yt-dlp-ejs> /build /build/source
yt-dlp-ejs> /build/source
yt-dlp-ejs> Installing dependencies
yt-dlp-ejs> Lockfile is up to date, resolution step is skipped
yt-dlp-ejs> Packages: +133
yt-dlp-ejs>
yt-dlp-ejs> Progress: resolved 133, reused 133, downloaded 0, added 133, done
yt-dlp-ejs>
yt-dlp-ejs> dependencies:
yt-dlp-ejs> + astring 1.9.0
yt-dlp-ejs> + meriyah 6.1.4
yt-dlp-ejs>
yt-dlp-ejs> devDependencies:
yt-dlp-ejs> + @eslint/js 9.38.0
yt-dlp-ejs> + @types/bun 1.3.0
yt-dlp-ejs> + @types/deno 2.5.0
yt-dlp-ejs> + @types/node 24.8.1
yt-dlp-ejs> + esbuild 0.27.2
yt-dlp-ejs> + eslint 9.38.0
yt-dlp-ejs> + globals 16.4.0
yt-dlp-ejs> + prettier 3.6.2
yt-dlp-ejs> + typescript-eslint 8.46.2
yt-dlp-ejs>
yt-dlp-ejs> Done in 1.4s using pnpm v10.28.0
yt-dlp-ejs> Patching scripts
yt-dlp-ejs> patching script interpreter paths in node_modules/@eslint node_modules/@types node_modules/astring node_modules/esbuild node_modules/eslint node_modules/globals node_modules/meriyah node_modules/prettier node_modules/typescript-eslint node_modules/.bin node_modules/.modules.yaml node_modules/.pnpm node_modules/.pnpm-workspace-state-v1.json
yt-dlp-ejs> node_modules/.bin/astring: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.bin/esbuild: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.bin/prettier: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/eslint@9.38.0/node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/esbuild@0.27.2/node_modules/esbuild/bin/esbuild: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/typescript-eslint@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/typescript-eslint/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/typescript-eslint@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/typescript-eslint/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/typescript-eslint@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/typescript-eslint/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.46.2_@typescript-eslint+parser@8.46.2_eslint@9.38.0__a76a5f78411544990f55631fee7677fb/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.46.2_@typescript-eslint+parser@8.46.2_eslint@9.38.0__a76a5f78411544990f55631fee7677fb/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+eslint-plugin@8.46.2_@typescript-eslint+parser@8.46.2_eslint@9.38.0__a76a5f78411544990f55631fee7677fb/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+tsconfig-utils@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+typescript-estree@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/semver@7.7.3/node_modules/semver/bin/semver.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+type-utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+type-utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+type-utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+project-service@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+project-service@8.46.2_typescript@5.9.3/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/espree@10.4.0/node_modules/espree/node_modules/.bin/acorn: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@eslint+eslintrc@3.3.3/node_modules/@eslint/eslintrc/node_modules/.bin/js-yaml: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/ts-api-utils@2.1.0_typescript@5.9.3/node_modules/ts-api-utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/ts-api-utils@2.1.0_typescript@5.9.3/node_modules/ts-api-utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/astring@1.9.0/node_modules/astring/bin/astring: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/node_modules/.bin/node-which: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/prettier@3.6.2/node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/utils/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+utils@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+parser@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsc: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+parser@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/@typescript-eslint+parser@8.46.2_eslint@9.38.0_typescript@5.9.3/node_modules/@typescript-eslint/parser/node_modules/.bin/tsserver: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> node_modules/.pnpm/which@2.0.2/node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/cikdc61gfwvdma6y0p9b5d5d448aqcv6-nodejs-24.12.0/bin/node"
yt-dlp-ejs> node_modules/.pnpm/@eslint-community+eslint-utils@4.9.0_eslint@9.38.0/node_modules/@eslint-community/eslint-utils/node_modules/.bin/eslint: interpreter directive changed from "#!/bin/sh" to "/nix/store/lw117lsr8d585xs63kx5k233impyrq7q-bash-5.3p3/bin/sh"
yt-dlp-ejs> Finished pnpmConfigHook
yt-dlp-ejs> Running phase: buildPhase
yt-dlp-ejs> Executing pypaBuildPhase
yt-dlp-ejs> Setting SETUPTOOLS_SCM_PRETEND_VERSION to 0.3.2
yt-dlp-ejs> Including all tracked files automatically
yt-dlp-ejs> Creating a wheel...
yt-dlp-ejs> pypa build flags: --no-isolation --outdir dist/ --wheel
yt-dlp-ejs> * Getting build dependencies for wheel...
yt-dlp-ejs> * Building wheel...
yt-dlp-ejs> Install command: /nix/store/rsqvnapfwyal6iw70p5nrk3vng3qdprw-pnpm-10.28.0/bin/pnpm install --frozen-lockfile
yt-dlp-ejs> Lockfile is up to date, resolution step is skipped
yt-dlp-ejs> Already up to date
yt-dlp-ejs> Done in 531ms using pnpm v10.28.0
yt-dlp-ejs> ['/nix/store/rsqvnapfwyal6iw70p5nrk3vng3qdprw-pnpm-10.28.0/bin/pnpm', 'run', '--silent', 'build.mjs']
yt-dlp-ejs> Bundle command: /nix/store/rsqvnapfwyal6iw70p5nrk3vng3qdprw-pnpm-10.28.0/bin/pnpm run --silent build.mjs
yt-dlp-ejs> SHA3-512 checksums:
yt-dlp-ejs> 307f712c5ae065b9701f3e5be1e883561de43b82a78f583a80ed01ec20d4897957f4cb33b63669b1768af9aa5bc1607bc9535967e846ec1bdd261df056d0e544 yt.solver.core.js
yt-dlp-ejs> 999b70bea72857356fcb3793e54c29c417842088d3b0b2192b36ba6adca70cbbff145a745008c55e2c1737ee92016244c6a40c60b3aeaad1ae0d3adc043b1d0c yt.solver.core.min.js
yt-dlp-ejs> 31f9ce3f164e732108cc1db700cf074043dcf233089426c82e5f80355f9feb54a282608cc8f0cfef11520de47b8531352f6d7e2469a5d0d443c2c05b57a1c97f yt.solver.lib.js
yt-dlp-ejs> 4bc8dff8f78abb2a18d952f22033c543b976aff056b26c28e4259fffab53914d9e6c20e4120b372e694e3ad9d5f61200caaac89b222ac3a0ffaf1206e8fb8aa8 yt.solver.lib.min.js
yt-dlp-ejs> e739b9f75ea46c615edfbc8e53d4f46dfa721b4c8c5cbcb539c183655b8b081fa446c57bff5a03e2d9e4d436a1833d1ff2993fc73e573a3fa553133ce5971fea yt.solver.bun.lib.js
yt-dlp-ejs> d624b19826f21e1fa21ed71dd4d3e4afbeadd196c72af7de87071e25a2485173fa85e58a8523faebe0f4a7da7541c881aec8fb3b15c703f24e1619ad578b9ac9 yt.solver.deno.lib.js
yt-dlp-ejs> Successfully built yt_dlp_ejs-0.3.2-py3-none-any.whl
yt-dlp-ejs> Finished creating a wheel...
yt-dlp-ejs> Finished executing pypaBuildPhase
yt-dlp-ejs> Running phase: pythonRuntimeDepsCheckHook
yt-dlp-ejs> Executing pythonRuntimeDepsCheck
yt-dlp-ejs> Checking runtime dependencies for yt_dlp_ejs-0.3.2-py3-none-any.whl
yt-dlp-ejs> Finished executing pythonRuntimeDepsCheck
yt-dlp-ejs> Running phase: installPhase
yt-dlp-ejs> Executing pypaInstallPhase
yt-dlp-ejs> Successfully installed yt_dlp_ejs-0.3.2-py3-none-any.whl
yt-dlp-ejs> Finished executing pypaInstallPhase
yt-dlp-ejs> Running phase: pythonOutputDistPhase
yt-dlp-ejs> Executing pythonOutputDistPhase
yt-dlp-ejs> Finished executing pythonOutputDistPhase
yt-dlp-ejs> Running phase: fixupPhase
yt-dlp-ejs> shrinking RPATHs of ELF executables and libraries in /nix/store/4820355b3w0gs682f9nd57lrsrshj350-python3.13-yt-dlp-ejs-0.3.2
yt-dlp-ejs> checking for references to /build/ in /nix/store/4820355b3w0gs682f9nd57lrsrshj350-python3.13-yt-dlp-ejs-0.3.2...
yt-dlp-ejs> patching script interpreter paths in /nix/store/4820355b3w0gs682f9nd57lrsrshj350-python3.13-yt-dlp-ejs-0.3.2
yt-dlp-ejs> stripping (with command strip and flags -S -p) in  /nix/store/4820355b3w0gs682f9nd57lrsrshj350-python3.13-yt-dlp-ejs-0.3.2/lib
yt-dlp-ejs> shrinking RPATHs of ELF executables and libraries in /nix/store/dxr15xxmkspv99syda6c7px02rdhnxfw-python3.13-yt-dlp-ejs-0.3.2-dist
yt-dlp-ejs> checking for references to /build/ in /nix/store/dxr15xxmkspv99syda6c7px02rdhnxfw-python3.13-yt-dlp-ejs-0.3.2-dist...
yt-dlp-ejs> patching script interpreter paths in /nix/store/dxr15xxmkspv99syda6c7px02rdhnxfw-python3.13-yt-dlp-ejs-0.3.2-dist
yt-dlp-ejs> Executing pythonRemoveTestsDir
yt-dlp-ejs> Finished executing pythonRemoveTestsDir
yt-dlp-ejs> Running phase: installCheckPhase
yt-dlp-ejs> no Makefile or custom installCheckPhase, doing nothing
yt-dlp-ejs> Running phase: pythonCatchConflictsPhase
yt-dlp-ejs> Running phase: pythonRemoveBinBytecodePhase
yt-dlp-ejs> Running phase: pythonImportsCheckPhase
yt-dlp-ejs> Executing pythonImportsCheckPhase
yt-dlp-ejs> Check whether the following modules can be imported: yt_dlp_ejs
 ➜ tree result/
 result
├──  lib
│   └──  python3.13
│       └──  site-packages
│           ├──  yt_dlp_ejs
│           │   ├──  __init__.py
│           │   ├──  __pycache__
│           │   │   ├──  __init__.cpython-313.opt-1.pyc
│           │   │   ├──  __init__.cpython-313.pyc
│           │   │   ├──  _version.cpython-313.opt-1.pyc
│           │   │   └──  _version.cpython-313.pyc
│           │   ├──  _version.py
│           │   └──  yt
│           │       ├──  __init__.py
│           │       ├──  __pycache__
│           │       │   ├──  __init__.cpython-313.opt-1.pyc
│           │       │   └──  __init__.cpython-313.pyc
│           │       └──  solver
│           │           ├──  __init__.py
│           │           ├──  __pycache__
│           │           │   ├──  __init__.cpython-313.opt-1.pyc
│           │           │   └──  __init__.cpython-313.pyc
│           │           ├──  core.min.js
│           │           └──  lib.min.js
│           └──  yt_dlp_ejs-0.3.2.dist-info
│               ├──  licenses
│               │   └──  LICENSE
│               ├──  METADATA
│               ├──  RECORD
│               └──  WHEEL
└──  nix-support
    └──  propagated-build-inputs

@Grub4K
Copy link
Copy Markdown
Member Author

Grub4K commented Apr 6, 2026

I'm sorry for the long roundtrip time, but I have finally managed to find some more time to work on this. I have remoevd the build.mjs script indirection step from the build, instead invoking esbuild through pnpm directly. Theoretically it should continue working as before. If theres any problems please let me know.

With this change I consider this ready for review.

@Grub4K Grub4K marked this pull request as ready for review April 6, 2026 17:21
Comment thread README.md Outdated
@Grub4K Grub4K enabled auto-merge (squash) April 7, 2026 21:20
@Grub4K Grub4K merged commit 2231f1f into yt-dlp:main Apr 7, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider supporting esbuild

3 participants