chore(website): migrate to pnpm and enable minimum release age#855
chore(website): migrate to pnpm and enable minimum release age#855
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #855 +/- ##
==========================================
+ Coverage 86.57% 86.67% +0.10%
==========================================
Files 48 48
Lines 2920 2920
==========================================
+ Hits 2528 2531 +3
+ Misses 392 389 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
could you do it for crawlee-python as well? |
6060d71 to
5f2e326
Compare
Migrates the website/ subdirectory from Yarn 4 to pnpm 10 as part of an org-wide supply-chain hardening migration. The Python root (uv) is unchanged. Changes: - website/package.json: replace packageManager with pnpm@10.24.0, add name/private, rewrite scripts from yarn to pnpm - website/pnpm-workspace.yaml: add minimumReleaseAge=1440 minutes (1 day) with exclusions for @apify/* and @crawlee/* - website/.npmrc: hoisted linker to match yarn's node-modules layout - website/.yarnrc.yml, website/yarn.lock: removed - website/docusaurus.config.js: rename future.experimental_faster to future.faster (Docusaurus 3.10+ rename) - .github/actions/pnpm-install/action.yml: add composite action for installing website deps with a working-directory input - .github/workflows/_release_docs.yaml: commit pnpm-lock.yaml instead of yarn.lock on automatic docs-theme updates - .github/workflows/manual_release_stable.yaml: drop corepack+yarn, use the pnpm-install composite action, swap npx for pnpm exec - pyproject.toml: update poe tasks (update-docs-theme, build-docs, run-docs) to invoke pnpm instead of yarn/corepack - renovate.json: add internalChecksFilter=strict and a packageRule with minimumReleaseAge=0 days for @apify/* and @crawlee/* - .gitignore: replace website/.yarn with website/.pnpm-store Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…stall apify-sdk-python's version_docs job needs pnpm install in website/, but the shared action doesn't take a working-directory input, so inline pnpm/action-setup + pnpm install for that one job.
eaf9d0f to
114c28f
Compare
Silences npm warnings about unknown options like node-linker; pnpm reads the same keys from pnpm-workspace.yaml in camelCase form.
Block accidental npm/yarn install — npm 10.5+ and pnpm 10.x both honor devEngines.packageManager and refuse to run when it doesn't match.
vdusek
left a comment
There was a problem hiding this comment.
From Claude:
One inconsistency compared to apify-client-python #724:
This PR correctly replaces website/.yarn with website/.pnpm-store in .gitignore, but apify-client-python only removes website/.yarn without adding website/.pnpm-store. Just flagging in case you want to fix it there.
Otherwise this looks consistent with the other repos.
|
Is this automated? I don't need the same hint 3 times 🙃 I am managing this from a single session, not per repo. |
|
So |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
Migrates the
website/subdirectory from Yarn 4 to pnpm 10 as part of an org-wide supply-chain hardening migration. The Python root (managed by uv) is unchanged.Enables pnpm's
minimumReleaseAge(1 day / 1440 minutes) to block installing packages published within the last 24h, with exclusions for first-party scopes@apify/*and@crawlee/*. Renovate is updated withinternalChecksFilter: strictand a matching 0-day package rule so our own releases are not held back.Changes
packageManagernowpnpm@10.24.0; addsname: apify-sdk-python-websiteandprivate: true; all scripts rewritten fromyarn Xtopnpm XminimumReleaseAge: 1440plus exclusions for@apify/*and@crawlee/*node-linker=hoisted+ workspace hoisting settings to mirror the previous yarnnode-moduleslayout.yarn/patches/existed in this repo, so nothing was preserved)pnpm installfuture.experimental_faster->future.faster(Docusaurus 3.10 rename, forward-compatible)apify-client-js, extended with aworking-directoryinput so it can install insidewebsite/without changing the caller's default directorygit add website/yarn.lock->git add website/pnpm-lock.yamlin the auto-commit step of the docs-theme updatecorepack enable && yarn install, installs via the new composite action withworking-directory: website;npx docusaurus->pnpm exec docusaurusupdate-docs-theme,build-docs,run-docsnow invokepnpmdirectly (no morecorepack enable && yarn)internalChecksFilter: strictand apackageRulematching@apify/*/@crawlee/*withminimumReleaseAge: 0 days.ignoreDepsunchanged (did not containyarn).website/.yarnwithwebsite/.pnpm-storeVerification
pnpm installandpnpm install --frozen-lockfileboth succeed inwebsite/python(notpython3) and this laptop doesn't exposepythonon PATH; in CIactions/setup-pythonprovidespythonso this will resolve there. This is orthogonal to the pnpm migration.pnpm lintsurfaces an eslint v10 flat-config error that pre-dates this PR (noeslint.config.jspresent). Not introduced here.🤖 Generated with Claude Code