chore(website): migrate to pnpm and enable minimum release age#855
Draft
chore(website): migrate to pnpm and enable minimum release age#855
Conversation
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>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #855 +/- ##
==========================================
+ Coverage 86.57% 86.64% +0.06%
==========================================
Files 48 48
Lines 2920 2920
==========================================
+ Hits 2528 2530 +2
+ Misses 392 390 -2
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:
|
Contributor
|
could you do it for crawlee-python as well? |
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.
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