You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: migrate to pnpm and enable minimum release age (#534)
## Summary
Migrates fingerprint-suite from npm to pnpm as part of an org-wide
supply-chain hardening effort, aligning with the patterns established in
apify/apify-shared-js#616, apify/actor-scraper#273 and
apify/got-scraping#175.
Enables a 24-hour `minimumReleaseAge` for third-party packages both at
install time (via `pnpm-workspace.yaml`) and at dependency-update time
(via `renovate.json`). `@apify/*` and `@crawlee/*` are excluded so our
own releases can still be consumed immediately.
## Changes
- Replace `package-lock.json` with `pnpm-lock.yaml`.
- Move `workspaces` config from `package.json` to `pnpm-workspace.yaml`
and add `minimumReleaseAge` settings with an exclude list for `@apify/*`
and `@crawlee/*`.
- Switch internal cross-package dependencies
(`generative-bayesian-network`, `header-generator`,
`fingerprint-generator`) to the `workspace:*` protocol so pnpm links the
local copies rather than fetching from the registry.
- Add `.npmrc` with `node-linker=hoisted`,
`link-workspace-packages=true`, `prefer-workspace-packages=true`,
`public-hoist-pattern[]=*`; drop `.npmrc` from `.gitignore`.
- Add reusable composite action `.github/actions/pnpm-install` and use
it from every workflow that installs deps (`test-and-sync`,
`publish-to-npm`, `e2e-benchmark`, `model-updater`).
- Replace all `npm run X` / `npx` with `pnpm X` / `pnpm exec` in root
and package scripts and in workflows.
- Bump `engines.node` to `>=18.0.0` in every workspace package and
update the CI test matrix to `[18, 20, 22, 24]`.
- Bump `packageManager` to `pnpm@10.24.0`.
- `scripts/publish.sh` uses `pnpm publish --no-git-checks`.
- Update `renovate.json`: add `"minimumReleaseAge": "1 day"` and
`"internalChecksFilter": "strict"`, remove the legacy `"constraints": {
"npm": "^7.0.0" }`, and add a package rule that sets `minimumReleaseAge:
0 days` for `@apify/*` and `@crawlee/*`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments