Skip to content

Fix webpack duplication and react-aria catalog minimums, add minimumReleaseAge - #8464

Merged
davisagli merged 2 commits into
mainfrom
deps-catalog-fixes
Oct 18, 2026
Merged

davisagli merged 2 commits into
mainfrom
deps-catalog-fixes

Conversation

@sneridagh

Copy link
Copy Markdown
Member

Follow-up to #8461, which regenerated pnpm-lock.yaml without changing any package.json. All updated versions stay within their declared ranges, but the refresh exposed some drift.

  • Single webpack again. catalog.json pins webpack to 5.105.4, but @plone/razzle-dev-utils only declares it as a ~5 peer. After the refresh, pnpm resolved that peer to 5.112.0, so the monorepo installed two webpack versions, and the webpack-dev-server and react-dev-utils used by razzle-dev-utils were linked against the newer one. This adds a webpack: catalog: devDependency, so the workspace resolves the peer to the pinned version. The published peer range stays ~5, so consumers aren't affected.
  • react-aria minimums match what we test. catalog.json still had react-aria-components ^1.17.0, react-aria ^3.48.0, react-stately ^3.46.0, and so on, while the lock and CI use 1.22.1, 3.53.1 and 3.51.0. react-aria-components pins react-aria and react-stately to exact versions, so loose minimums in the published @plone/components and @plone/volto can leave consumers with two copies of react-aria. The minimums for react-aria-components, react-aria, react-stately, @react-aria/utils, @react-spectrum/utils and @internationalized/date are now the locked versions. The resolved versions don't change.
  • minimumReleaseAge: 4320 in pnpm-workspace.yaml. pnpm will only resolve versions that have been published for at least 3 days. Update packages in pnpm-lock.yaml #8461 locked 39 versions that were less than 3.5 days old (webpack 5.112.0, rollup 4.64.7 and its native bindings, undici, joi, …).

The lockfile diff only changes the catalog specifiers and removes webpack@5.112.0 (and minimizer-webpack-plugin, which only that version needed). No other resolved versions change. The @plone/razzle and @plone/components unit tests pass locally.

- @plone/razzle-dev-utils: resolve webpack from the catalog via a
  devDependency, so the monorepo installs a single webpack (5.105.4)
  again instead of also pulling 5.112.0 through the ~5 peer range
- catalog.json: raise the react-aria family minimums to the versions
  that are locked and tested
- pnpm-workspace.yaml: add minimumReleaseAge (3 days)
@sneridagh

Copy link
Copy Markdown
Member Author

@davisagli @wesleybl can we be more careful when dealing with this kind of PRs? Updating blindly to next versions all the deps could be a mess. eg RAC. If you do not update RAC properly, you might endup with two RAC versions in the same build. And this is bad. The present tests do not test that (maybe it might). When I update VLT to this, it will break. In 19 it could break too, because we already use them in several places.

You also forget that we are using the catalog.json to pin versions across the build... You need to update them. Otherwise other projects that have their own lock won't pick this. (eg. VLT)

Anyways, I only wanted to point that out.

@davisagli

Copy link
Copy Markdown
Member

@sneridagh Sorry about that. But I really don't know how to review these PRs that re-lock everything. It's an enormous diff and I won't notice what's significant if I try to read through. So I rely on the tests. How did you notice there was a problem in this case?

I don't think we can simply not update our dependencies -- this resolved a lot of open security alerts. So probably we need to improve our tests. How about a check to make sure we don't have package versions in pnpm-lock.yaml that are incompatible with the catalog? Or a check that we don't have multiple versions of packages listed in peerDependencies?

@davisagli
davisagli merged commit 75457ef into main Oct 18, 2026
79 checks passed
@davisagli
davisagli deleted the deps-catalog-fixes branch October 18, 2026 17:14
@sneridagh

Copy link
Copy Markdown
Member Author

@davisagli no worries, the problem is with the integration in project mode. Maybe we can come up with a CI test (cookieplone) that makes sure that it works well with a project with RAC dependencies (which is the one that we detected that is conflictive...) I will take a look.

@wesleybl

Copy link
Copy Markdown
Member

@sneridagh Sorry about that. Next time, I’ll check the catalog. I think we should update the versions to remove those with vulnerabilities. Having an automated check in place would be great.

@wesleybl

Copy link
Copy Markdown
Member

@sneridagh And what about Volto 18, where we don’t have a catalog? Would the maintainer themselves have to resolve these issues? I think we should update the versions in Volto 18 as well.

@wesleybl

Copy link
Copy Markdown
Member

@davisagli @sneridagh I created an automated script in: #8469

sneridagh added a commit that referenced this pull request Oct 20, 2026
…sschemaendpoint

* origin/blocksschemaendpoint: (32 commits)
  Fix webpack duplication and react-aria catalog minimums, add minimumReleaseAge (#8464)
  Restore pnpm store cache fallback and fix volto-razzle CI job (#8463)
  Update packages in pnpm-lock.yaml (#8461)
  Fix invisible keyboard focus on single react-select widgets (#8457)
  Use pnpm/action-setup and setup-node pnpm cache in CI (#8459)
  Don't show the parent's tags and related items below the add form. (#8453)
  Fix adding a field with the default type in the schema editor (#8454)
  Pick the SSR locale only from supportedLanguages (#8448) (#8449)
  Fixed link redirects from `thevalleyofcode.com` to `flaviocopes.com` (#8451)
  Fix release-it from babel-preset-razzle
  Release 19.5.0
  Release @plone/volto-slate 19.1.0
  Release @plone/razzle 1.0.2
  Release @plone/razzle-dev-utils 1.0.1
  Release @plone/scripts 4.0.2
  Release @plone/babel-preset-razzle 1.0.2
  Release @plone/registry 3.0.3
  Release @plone/components 4.2.2
  Release @plone/types 2.1.0
  Fix diff of text block word by word (#8429)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants