Draft
Conversation
Something somewhere broke importing stripAnsi on node 20 in vitest???
B4nan
added a commit
to apify/apify-shared-js
that referenced
this pull request
Apr 14, 2026
Adopts the caching pattern from apify/apify-cli#1068: a reusable composite action at .github/actions/pnpm-install that handles pnpm setup, pnpm store caching (keyed by year-month + lockfile hash), and the install. Workflows now delegate their install step to `uses: ./.github/actions/pnpm-install` instead of inlining each piece. setup-node remains in workflows (without the cache: pnpm parameter, since caching is handled inside the composite). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/apify-shared-js
that referenced
this pull request
Apr 14, 2026
Adopts the caching pattern from apify/apify-cli#1068: a reusable composite action at .github/actions/pnpm-install that handles pnpm setup, pnpm store caching (keyed by year-month + lockfile hash), and the install. Workflows now delegate their install step to `uses: ./.github/actions/pnpm-install` instead of inlining each piece. setup-node remains in workflows (without the cache: pnpm parameter, since caching is handled inside the composite). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/actor-scraper
that referenced
this pull request
Apr 14, 2026
Migrates actor-scraper from npm workspaces to pnpm workspaces and adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers for immediate updates. Notable changes: - package.json: drop "workspaces" (moved to pnpm-workspace.yaml); set packageManager to pnpm@10.24.0; add @isaacs/brace-expansion as explicit root devDep (pnpm 10 doesn't pull it transitively for minimatch@10 which actor-scraper-sitemap depends on) - lerna.json: npmClient: "pnpm" - .npmrc: node-linker=hoisted + link-workspace-packages=true + prefer-workspace-packages=true (flat layout for debugging + prefer workspace packages over registry) - packages/actor-scraper/*/package.json: use "workspace:*" protocol for @apify/scraper-tools so pnpm links the workspace copy instead of fetching the identical version from npm (required for consistent peer-dep resolution across workspace and registry types) - packages/scraper-tools/src/browser_tools.ts: relax Page interface exposeFunction return type from Promise<void> to Promise<unknown> so it accepts both Puppeteer (Promise<void>) and newer Playwright (Promise<Disposable>) page types. Return value is unused. - New .github/actions/pnpm-install composite action adopts the caching pattern from apify/apify-cli#1068 (pnpm store cache keyed by year-month + lockfile hash) - CI workflows: delegate install to the composite; drop the separate npm cache config on setup-node - renovate.json: minimumReleaseAge "1 day", internalChecksFilter "strict", @apify/* and @crawlee/* whitelist; drop npm constraint Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/got-scraping
that referenced
this pull request
Apr 14, 2026
Migrates got-scraping from npm to pnpm and adds a 1-day minimum release age supply-chain guard at the package-manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers. This repo previously had no Renovate config; a standard config is added now. Notable changes: - package.json: set packageManager to pnpm@10.24.0; bump engines node >=18 (was >=16; pnpm 10 needs Node 18+); "npm run" -> "pnpm" in scripts - pnpm-workspace.yaml: non-monorepo minimumReleaseAge settings only - .npmrc: node-linker=hoisted + link-workspace-packages=true + prefer-workspace-packages=true + public-hoist-pattern[]=* (last one ensures transitive types are visible to tsc like they were under npm's hoisted layout) - tsconfig.json: skipLibCheck: true (standard, suppresses ow/quick-lru d.ts incompatibilities with TS 5.9 lib types) - src/agent/wrapped-agent.ts + src/index.ts: two small casts to satisfy stricter type resolution under pnpm (npm happened to hide these mismatches via different node_modules layout; the same code paths at runtime) - New .github/actions/pnpm-install composite action (cached pnpm store, year-month + lockfile hash key — pattern from apify/apify-cli#1068) - CI workflows (check.yml, release.yaml, publish-to-npm.yaml): delegate install to the composite; use pnpm/pnpm publish --no-git-checks; Node matrix 18/20/22/24 - New renovate.json with minimumReleaseAge "1 day", internalChecksFilter "strict", and @apify/* + @crawlee/* whitelist Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/apify-client-js
that referenced
this pull request
Apr 14, 2026
Migrates apify-client-js from npm workspaces to pnpm workspaces and adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers. The website/ directory becomes a proper workspace (previously had its own lockfile). Single root lockfile now. Notable changes: - package.json: set packageManager to pnpm@10.24.0; "npm run X" -> "pnpm X" in scripts - pnpm-workspace.yaml: packages [website], release-age settings - .npmrc: node-linker=hoisted, link-workspace-packages=true, prefer-workspace-packages=true, public-hoist-pattern[]=* (kept the pre-existing legacy-peer-deps=true) - website/package.json: add "name": "apify-client-website" so pnpm recognises it as a workspace; "npm run" -> "pnpm" in scripts - website/docusaurus.config.js: rename future.experimental_faster -> future.faster (renamed in Docusaurus 3.10, which is what pnpm resolves from the ^3.8.1 range; npm previously resolved 3.9.x via --force) - New .github/actions/pnpm-install composite action (cached pnpm store, keyed by year-month + lockfile hash — pattern from apify/apify-cli#1068) - All 5 CI workflows (check, docs, publish_to_npm, release, pre_release) use the composite; npm/npx/`npm version` -> pnpm equivalents. docs workflow's `npm update @apify/docs-theme` becomes `pnpm --filter apify-client-website update @apify/docs-theme`. publish uses `pnpm publish --tag X --no-git-checks`. - renovate.json: add minimumReleaseAge "1 day", internalChecksFilter "strict", @apify/* + @crawlee/* whitelist; drop old npm constraint - Both package-lock.json files deleted; single pnpm-lock.yaml Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/crawlee
that referenced
this pull request
Apr 14, 2026
Migrates crawlee from Yarn 4 to pnpm workspaces across the 20-package monorepo, plus docs/ and website/ workspaces. Adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers. Notable changes: - package.json: drop "workspaces", set packageManager to pnpm@10.24.0; "yarn X" -> "pnpm X" in scripts - lerna.json: npmClient "yarn" -> "pnpm" - .npmrc: node-linker=hoisted + link-workspace-packages=true + prefer-workspace-packages=true + public-hoist-pattern[]=* - pnpm-workspace.yaml: packages [packages/*, website, docs], min release age 1440, @apify/* + @crawlee/* excluded, plus pinned overrides for playwright-core and @browserbasehq/stagehand - All 20 packages/*/package.json: yarn -> pnpm in scripts; internal @crawlee/* deps converted to "workspace:*" - Deleted yarn.lock, .yarnrc.yml, docs/yarn.lock, website/yarn.lock; generated pnpm-lock.yaml - .husky/pre-commit: yarn -> pnpm - New .github/actions/pnpm-install composite action (cached pnpm store, pattern from apify/apify-cli#1068) - CI workflows (docs, publish-to-npm, release, test-ci, test-e2e): delegate install to composite; yarn/corepack removed; yarn -> pnpm; pnpm publish --no-git-checks - renovate.json: add @apify/* + @crawlee/* whitelist; drop "yarn" from ignoreDeps and old npm constraint. minimumReleaseAge and internalChecksFilter were already in place. WIP / known local issue: @crawlee/types build currently fails in gen-esm-wrapper (dist resolution), needs small follow-up fix. CI will likely surface additional peer-dep / type-resolution issues typical of a large yarn->pnpm swap. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/crawlee-python
that referenced
this pull request
Apr 14, 2026
Migrates the website/ subdirectory from Yarn 4 to pnpm. The Python root (uv) is untouched. Adds @apify/* + @crawlee/* whitelist at the Renovate layer (minimumReleaseAge was already present in renovate.json). - website/package.json: rename to crawlee-python-website + private: true, packageManager -> pnpm@10.24.0, yarn/npx -> pnpm - website/pnpm-workspace.yaml: minimumReleaseAge 1440 with @apify/* + @crawlee/* excluded - website/.npmrc: hoisted linker + workspace linking flags - website/docusaurus.config.js: rename future.experimental_faster -> future.faster (Docusaurus 3.10 renamed the key) - Delete website/yarn.lock and website/.yarnrc.yml - pyproject.toml poe tasks build-docs/run-docs: drop corepack + yarn, use pnpm install --frozen-lockfile + pnpm build/start - New .github/actions/pnpm-install composite action (pattern from apify/apify-cli#1068) - manual_release_stable.yaml version_docs job: pnpm/action-setup + pnpm install --frozen-lockfile instead of corepack + yarn; npx docusaurus -> pnpm exec docusaurus; commit pnpm-lock.yaml - renovate.json: add internalChecksFilter "strict" and @apify/* + @crawlee/* whitelist (minimumReleaseAge "1 day" was already set) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/apify-shared-js
that referenced
this pull request
Apr 15, 2026
Adopts the caching pattern from apify/apify-cli#1068: a reusable composite action at .github/actions/pnpm-install that handles pnpm setup, pnpm store caching (keyed by year-month + lockfile hash), and the install. Workflows now delegate their install step to `uses: ./.github/actions/pnpm-install` instead of inlining each piece. setup-node remains in workflows (without the cache: pnpm parameter, since caching is handled inside the composite). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/actor-scraper
that referenced
this pull request
Apr 15, 2026
Migrates actor-scraper from npm workspaces to pnpm workspaces and adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers for immediate updates. Notable changes: - package.json: drop "workspaces" (moved to pnpm-workspace.yaml); set packageManager to pnpm@10.24.0; add @isaacs/brace-expansion as explicit root devDep (pnpm 10 doesn't pull it transitively for minimatch@10 which actor-scraper-sitemap depends on) - lerna.json: npmClient: "pnpm" - .npmrc: node-linker=hoisted + link-workspace-packages=true + prefer-workspace-packages=true (flat layout for debugging + prefer workspace packages over registry) - packages/actor-scraper/*/package.json: use "workspace:*" protocol for @apify/scraper-tools so pnpm links the workspace copy instead of fetching the identical version from npm (required for consistent peer-dep resolution across workspace and registry types) - packages/scraper-tools/src/browser_tools.ts: relax Page interface exposeFunction return type from Promise<void> to Promise<unknown> so it accepts both Puppeteer (Promise<void>) and newer Playwright (Promise<Disposable>) page types. Return value is unused. - New .github/actions/pnpm-install composite action adopts the caching pattern from apify/apify-cli#1068 (pnpm store cache keyed by year-month + lockfile hash) - CI workflows: delegate install to the composite; drop the separate npm cache config on setup-node - renovate.json: minimumReleaseAge "1 day", internalChecksFilter "strict", @apify/* and @crawlee/* whitelist; drop npm constraint Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/apify-client-js
that referenced
this pull request
Apr 15, 2026
Migrates apify-client-js from npm workspaces to pnpm workspaces and adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers. The website/ directory becomes a proper workspace (previously had its own lockfile). Single root lockfile now. Notable changes: - package.json: set packageManager to pnpm@10.24.0; "npm run X" -> "pnpm X" in scripts - pnpm-workspace.yaml: packages [website], release-age settings - .npmrc: node-linker=hoisted, link-workspace-packages=true, prefer-workspace-packages=true, public-hoist-pattern[]=* (kept the pre-existing legacy-peer-deps=true) - website/package.json: add "name": "apify-client-website" so pnpm recognises it as a workspace; "npm run" -> "pnpm" in scripts - website/docusaurus.config.js: rename future.experimental_faster -> future.faster (renamed in Docusaurus 3.10, which is what pnpm resolves from the ^3.8.1 range; npm previously resolved 3.9.x via --force) - New .github/actions/pnpm-install composite action (cached pnpm store, keyed by year-month + lockfile hash — pattern from apify/apify-cli#1068) - All 5 CI workflows (check, docs, publish_to_npm, release, pre_release) use the composite; npm/npx/`npm version` -> pnpm equivalents. docs workflow's `npm update @apify/docs-theme` becomes `pnpm --filter apify-client-website update @apify/docs-theme`. publish uses `pnpm publish --tag X --no-git-checks`. - renovate.json: add minimumReleaseAge "1 day", internalChecksFilter "strict", @apify/* + @crawlee/* whitelist; drop old npm constraint - Both package-lock.json files deleted; single pnpm-lock.yaml Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/apify-shared-js
that referenced
this pull request
Apr 15, 2026
Adopts the caching pattern from apify/apify-cli#1068: a reusable composite action at .github/actions/pnpm-install that handles pnpm setup, pnpm store caching (keyed by year-month + lockfile hash), and the install. Workflows now delegate their install step to `uses: ./.github/actions/pnpm-install` instead of inlining each piece. setup-node remains in workflows (without the cache: pnpm parameter, since caching is handled inside the composite). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/crawlee-python
that referenced
this pull request
Apr 16, 2026
Migrates the website/ subdirectory from Yarn 4 to pnpm. The Python root (uv) is untouched. Adds @apify/* + @crawlee/* whitelist at the Renovate layer (minimumReleaseAge was already present in renovate.json). - website/package.json: rename to crawlee-python-website + private: true, packageManager -> pnpm@10.24.0, yarn/npx -> pnpm - website/pnpm-workspace.yaml: minimumReleaseAge 1440 with @apify/* + @crawlee/* excluded - website/.npmrc: hoisted linker + workspace linking flags - website/docusaurus.config.js: rename future.experimental_faster -> future.faster (Docusaurus 3.10 renamed the key) - Delete website/yarn.lock and website/.yarnrc.yml - pyproject.toml poe tasks build-docs/run-docs: drop corepack + yarn, use pnpm install --frozen-lockfile + pnpm build/start - New .github/actions/pnpm-install composite action (pattern from apify/apify-cli#1068) - manual_release_stable.yaml version_docs job: pnpm/action-setup + pnpm install --frozen-lockfile instead of corepack + yarn; npx docusaurus -> pnpm exec docusaurus; commit pnpm-lock.yaml - renovate.json: add internalChecksFilter "strict" and @apify/* + @crawlee/* whitelist (minimumReleaseAge "1 day" was already set) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
B4nan
added a commit
to apify/crawlee
that referenced
this pull request
Apr 16, 2026
Migrates crawlee from Yarn 4 to pnpm workspaces across the 20-package monorepo, plus docs/ and website/ workspaces. Adds a 1-day minimum release age supply-chain guard at the package manager layer (pnpm-workspace.yaml) and at the Renovate layer. Internal `@apify/*` and `@crawlee/*` packages are whitelisted at both layers. Notable changes: - package.json: drop "workspaces", set packageManager to pnpm@10.24.0; "yarn X" -> "pnpm X" in scripts - lerna.json: npmClient "yarn" -> "pnpm" - .npmrc: node-linker=hoisted + link-workspace-packages=true + prefer-workspace-packages=true + public-hoist-pattern[]=* - pnpm-workspace.yaml: packages [packages/*, website, docs], min release age 1440, @apify/* + @crawlee/* excluded, plus pinned overrides for playwright-core and @browserbasehq/stagehand - All 20 packages/*/package.json: yarn -> pnpm in scripts; internal @crawlee/* deps converted to "workspace:*" - Deleted yarn.lock, .yarnrc.yml, docs/yarn.lock, website/yarn.lock; generated pnpm-lock.yaml - .husky/pre-commit: yarn -> pnpm - New .github/actions/pnpm-install composite action (cached pnpm store, pattern from apify/apify-cli#1068) - CI workflows (docs, publish-to-npm, release, test-ci, test-e2e): delegate install to composite; yarn/corepack removed; yarn -> pnpm; pnpm publish --no-git-checks - renovate.json: add @apify/* + @crawlee/* whitelist; drop "yarn" from ignoreDeps and old npm constraint. minimumReleaseAge and internalChecksFilter were already in place. WIP / known local issue: @crawlee/types build currently fails in gen-esm-wrapper (dist resolution), needs small follow-up fix. CI will likely surface additional peer-dep / type-resolution issues typical of a large yarn->pnpm swap. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.