Skip to content

chore(website): migrate to pnpm and enable minimum release age#724

Open
B4nan wants to merge 9 commits intomasterfrom
chore/migrate-website-to-pnpm
Open

chore(website): migrate to pnpm and enable minimum release age#724
B4nan wants to merge 9 commits intomasterfrom
chore/migrate-website-to-pnpm

Conversation

@B4nan
Copy link
Copy Markdown
Member

@B4nan B4nan commented Apr 14, 2026

Summary

Migrates the website/ subdirectory from Yarn 4 to pnpm 10.24.0 as part of an org-wide supply-chain hardening effort. The Python root (uv) is unchanged.

Enables a 24h minimum release age for third-party npm packages via pnpm-workspace.yaml (with @apify/* and @crawlee/* excluded so first-party releases stay fast), and mirrors the policy in renovate.json via internalChecksFilter=strict plus a packageRule that sets minimumReleaseAge: 0 days for the same scopes.

Changes

  • website/package.json: renamed to apify-client-python-website, marked private: true, set packageManager to pnpm@10.24.0, rewrote all script references from yarn to pnpm.
  • website/pnpm-workspace.yaml (new): sets minimumReleaseAge: 1440 (minutes) with @apify/* and @crawlee/* excluded.
  • website/.npmrc (new): enables hoisted node linker and workspace package linking.
  • website/pnpm-lock.yaml (new): generated from pnpm install.
  • Removed Yarn artifacts: website/yarn.lock, website/.yarnrc.yml, website/.yarn/ (only contained install-state.gz; no .yarn/patches/ directory was present).
  • website/docusaurus.config.js: renamed future.experimental_faster to future.faster (required by Docusaurus 3.10).
  • .github/actions/pnpm-install/action.yml (new): composite action copied verbatim from apify-client-js for use by future CI workflows.
  • .github/workflows/_release_docs.yaml: git add website/yarn.lock -> git add website/pnpm-lock.yaml.
  • .github/workflows/manual_release_stable.yaml: replaced inline yarn install + npx docusaurus in the version_docs job with pnpm/action-setup, pnpm install --frozen-lockfile, and pnpm exec docusaurus. (Steps are inlined rather than calling ./.github/actions/pnpm-install because GitHub Actions does not support working-directory on uses: steps and the composite expects to run from the repo containing the lockfile.)
  • pyproject.toml: poe tasks update-docs-theme, build-docs, and run-docs now use pnpm instead of yarn / corepack enable && yarn.
  • renovate.json: added internalChecksFilter: "strict" and a package rule granting @apify/* / @crawlee/* a 0 days minimum release age.
  • .gitignore: dropped the now-obsolete website/.yarn entry.

Verified locally: pnpm install, pnpm install --frozen-lockfile, and Docusaurus config validation all pass. A full pnpm build is gated by the repo's Python docs pipeline (pydoc-markdown) which is invoked by uv run poe build-docs in CI and was not re-run locally; the Docusaurus config loads past the future.faster rename cleanly.

Rolls out the same pattern just applied to apify-sdk-python.

🤖 Generated with Claude Code

@github-actions github-actions bot added this to the 138th sprint - Tooling team milestone Apr 14, 2026
@github-actions github-actions bot added the t-tooling Issues with this label are in the ownership of the tooling team. label Apr 14, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.30%. Comparing base (586d15e) to head (f18cfd3).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #724      +/-   ##
==========================================
+ Coverage   95.28%   95.30%   +0.02%     
==========================================
  Files          45       45              
  Lines        5114     5115       +1     
==========================================
+ Hits         4873     4875       +2     
+ Misses        241      240       -1     
Flag Coverage Δ
integration 95.30% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@B4nan B4nan added the adhoc Ad-hoc unplanned task added during the sprint. label Apr 14, 2026
Migrate the website/ subdirectory from Yarn 4 to pnpm 10.24.0 as part of
an org-wide supply-chain hardening effort. The Python root (uv) is
unchanged. Enables a 24h minimum release age for third-party packages
via pnpm-workspace.yaml (with @apify/* and @crawlee/* excluded), and
mirrors the policy in renovate.json using internalChecksFilter=strict.

Also renames the renamed-by-Docusaurus future.experimental_faster option
to future.faster in the Docusaurus config, and replaces yarn/npx calls
in workflows and poe tasks with their pnpm equivalents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@B4nan B4nan force-pushed the chore/migrate-website-to-pnpm branch from 0bab2c6 to c77613f Compare April 15, 2026 12:18
@B4nan B4nan marked this pull request as ready for review April 15, 2026 13:41
B4nan added 5 commits April 15, 2026 15:43
Replaces the local .github/actions/pnpm-install composite copy
with the shared one from apify/workflows@main. Identical behavior,
less duplication.
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 vdusek self-requested a review April 16, 2026 07:46
Copy link
Copy Markdown
Contributor

@vdusek vdusek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Claude:

One inconsistency compared to apify-sdk-python #855:

.gitignore — This PR removes website/.yarn but does not add website/.pnpm-store. The apify-sdk-python PR replaces it with website/.pnpm-store. Looks like a missing line here.

B4nan and others added 2 commits April 16, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants