Commit a57fcd3
chore(website): migrate to pnpm and enable minimum release age (#855)
## 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 with
`internalChecksFilter: strict` and a matching 0-day package rule so our
own releases are not held back.
## Changes
- **website/package.json** — `packageManager` now `pnpm@10.24.0`; adds
`name: apify-sdk-python-website` and `private: true`; all scripts
rewritten from `yarn X` to `pnpm X`
- **website/pnpm-workspace.yaml** (new) — `minimumReleaseAge: 1440` plus
exclusions for `@apify/*` and `@crawlee/*`
- **website/.npmrc** (new) — `node-linker=hoisted` + workspace hoisting
settings to mirror the previous yarn `node-modules` layout
- **website/.yarnrc.yml, website/yarn.lock** — removed (no
`.yarn/patches/` existed in this repo, so nothing was preserved)
- **website/pnpm-lock.yaml** (new) — generated via `pnpm install`
- **website/docusaurus.config.js** — renamed
`future.experimental_faster` -> `future.faster` (Docusaurus 3.10 rename,
forward-compatible)
- **.github/actions/pnpm-install/action.yml** (new) — composite action
copied from `apify-client-js`, extended with a `working-directory` input
so it can install inside `website/` without changing the caller's
default directory
- **.github/workflows/_release_docs.yaml** — `git add website/yarn.lock`
-> `git add website/pnpm-lock.yaml` in the auto-commit step of the
docs-theme update
- **.github/workflows/manual_release_stable.yaml** — removed `corepack
enable && yarn install`, installs via the new composite action with
`working-directory: website`; `npx docusaurus` -> `pnpm exec docusaurus`
- **pyproject.toml** — poe tasks `update-docs-theme`, `build-docs`,
`run-docs` now invoke `pnpm` directly (no more `corepack enable &&
yarn`)
- **renovate.json** — adds `internalChecksFilter: strict` and a
`packageRule` matching `@apify/*` / `@crawlee/*` with
`minimumReleaseAge: 0 days`. `ignoreDeps` unchanged (did not contain
`yarn`).
- **.gitignore** — replaced `website/.yarn` with `website/.pnpm-store`
## Verification
- `pnpm install` and `pnpm install --frozen-lockfile` both succeed in
`website/`
- Existing peer-dependency warnings (eslint v10, typescript v6,
styled-components) pre-date this migration and are carried over
unchanged
- Local docusaurus build was attempted but could not complete outside CI
because the typedoc plugin spawns `python` (not `python3`) and this
laptop doesn't expose `python` on PATH; in CI `actions/setup-python`
provides `python` so this will resolve there. This is orthogonal to the
pnpm migration.
- `pnpm lint` surfaces an eslint v10 flat-config error that pre-dates
this PR (no `eslint.config.js` present). Not introduced here.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent a5413b5 commit a57fcd3
11 files changed
Lines changed: 17518 additions & 18487 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
58 | 63 | | |
59 | 64 | | |
60 | 65 | | |
61 | 66 | | |
62 | 67 | | |
63 | 68 | | |
64 | | - | |
| 69 | + | |
65 | 70 | | |
66 | 71 | | |
67 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
39 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
40 | 54 | | |
41 | 55 | | |
42 | 56 | | |
| |||
60 | 74 | | |
61 | 75 | | |
62 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
63 | 83 | | |
64 | 84 | | |
65 | 85 | | |
66 | 86 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | 87 | | |
72 | 88 | | |
73 | 89 | | |
| |||
98 | 114 | | |
99 | 115 | | |
100 | 116 | | |
101 | | - | |
102 | | - | |
| 117 | + | |
| 118 | + | |
103 | 119 | | |
104 | 120 | | |
105 | 121 | | |
| |||
110 | 126 | | |
111 | 127 | | |
112 | 128 | | |
| 129 | + | |
113 | 130 | | |
114 | 131 | | |
115 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
231 | 238 | | |
232 | 239 | | |
233 | 240 | | |
| |||
253 | 260 | | |
254 | 261 | | |
255 | 262 | | |
256 | | - | |
| 263 | + | |
257 | 264 | | |
258 | 265 | | |
259 | 266 | | |
260 | | - | |
| 267 | + | |
261 | 268 | | |
262 | 269 | | |
263 | 270 | | |
264 | | - | |
| 271 | + | |
265 | 272 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
| 29 | + | |
25 | 30 | | |
26 | 31 | | |
27 | 32 | | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | | - | |
6 | | - | |
7 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | | - | |
16 | | - | |
| 16 | + | |
| 17 | + | |
17 | 18 | | |
18 | | - | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| |||
47 | 49 | | |
48 | 50 | | |
49 | 51 | | |
50 | | - | |
| 52 | + | |
51 | 53 | | |
0 commit comments