plone / volto

React-based frontend for the Plone Content Management System
https://demo.plone.org/
MIT License
457 stars 618 forks source link

Help needed with add-on development set up. `make install` fails with missing parcel watcher on Mac #6416

Open ksuess opened 4 days ago

ksuess commented 4 days ago

Describe the bug make install fails.

To Reproduce

  1. Create add-on with pipx run cookieplone
  2. Go to add-on directory.
  3. Run make install
  4. See error

Software:

What I tried so far

Please note '✕ missing peer @parcel/core@^2.12.0' in log:

% make install        
Install
 Not installing pre-commit

Using ./
Found core at core
✓ update core to tag 18.0.0-alpha.46
Scope: all 18 workspace projects
core/packages/client                     |  WARN  deprecated glob@7.1.6
core/packages/scripts                    |  WARN  deprecated babel-plugin-react-intl@5.1.17
core/packages/volto                      |  WARN  deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6
core/packages/volto                      |  WARN  deprecated eslint@8.57.1
core/packages/volto                      |  WARN  deprecated superagent@3.8.2
 WARN  58 deprecated subdependencies found: @babel/plugin-proposal-class-properties@7.18.6, @babel/plugin-proposal-numeric-separator@7.18.6, @babel/plugin-proposal-object-rest-spread@7.20.7, @babel/plugin-proposal-optional-chaining@7.21.0, @babel/plugin-proposal-private-methods@7.18.6, @babel/plugin-proposal-private-property-in-object@7.21.11, @formatjs/intl-unified-numberformat@3.3.7, @formatjs/intl-utils@2.3.0, @humanwhocodes/config-array@0.13.0, @humanwhocodes/object-schema@2.0.3, @npmcli/move-file@1.1.2, @npmcli/move-file@2.0.1, @types/testing-library__dom@7.5.0, abab@2.0.6, airbnb-prop-types@2.16.0, are-we-there-yet@2.0.0, are-we-there-yet@3.0.1, copy-concurrently@1.0.5, core-js@1.2.7, core-js@2.6.12, debuglog@1.0.1, domexception@1.0.1, domexception@2.0.1, domexception@4.0.0, figgy-pudding@3.5.2, formidable@1.2.6, fs-write-stream-atomic@1.0.10, fsevents@1.2.13, gauge@3.0.2, gauge@4.0.4, glob@7.2.3, glob@8.1.0, har-validator@5.1.5, inflight@1.0.6, intl-messageformat-parser@3.6.4, left-pad@1.3.0, mini-create-react-context@0.4.1, move-concurrently@1.0.1, npmlog@5.0.1, npmlog@6.0.2, q@1.5.1, querystring@0.2.1, read-package-json@6.0.4, readdir-scoped-modules@1.1.0, request-promise-native@1.0.9, request@2.88.2, resolve-url@0.2.1, rimraf@2.7.1, rimraf@3.0.2, sane@4.1.0, sinon@10.0.1, source-map-resolve@0.5.3, source-map-url@0.4.1, stable@0.1.8, svgo@1.3.2, urix@0.1.0, uuid@3.4.0, w3c-hr-time@1.0.2
Packages: +3 -5
+++-----
Progress: resolved 3163, reused 3055, downloaded 0, added 3, done
 WARN  Issues with peer dependencies found
core/packages/blocks
└─┬ parcel 2.12.0
  └─┬ @parcel/config-default 2.12.0
    └─┬ @parcel/optimizer-htmlnano 2.12.0
      └─┬ htmlnano 2.1.1
        └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano

core/packages/client
├─┬ @parcel/config-default 2.12.0
│ └─┬ @parcel/optimizer-htmlnano 2.12.0
│   └─┬ htmlnano 2.1.1
│     └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
└─┬ @vitest/coverage-v8 1.6.0
  └── ✕ unmet peer vitest@1.6.0: found 2.1.3

core/packages/components
├─┬ @parcel/config-default 2.12.0
│ └─┬ @parcel/optimizer-htmlnano 2.12.0
│   └─┬ htmlnano 2.1.1
│     └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
└─┬ @vitest/coverage-v8 1.6.0
  └── ✕ unmet peer vitest@1.6.0: found 2.1.3

core/packages/coresandbox
└─┬ react-intl 3.12.1
  └── ✕ unmet peer react@^16.3.0: found 18.2.0

core/packages/helpers
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│   └─┬ @parcel/types 2.12.0
│     └─┬ @parcel/cache 2.12.0
│       ├── ✕ missing peer @parcel/core@^2.12.0
│       └─┬ @parcel/fs 2.12.0
│         ├── ✕ missing peer @parcel/core@^2.12.0
│         └─┬ @parcel/types 2.12.0
│           └─┬ @parcel/package-manager 2.12.0
│             ├── ✕ missing peer @parcel/core@^2.12.0
│             └─┬ @parcel/fs 2.12.0
│               ├── ✕ missing peer @parcel/core@^2.12.0
│               └─┬ @parcel/workers 2.12.0
│                 └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
  └─┬ @parcel/config-default 2.12.0
    └─┬ @parcel/optimizer-htmlnano 2.12.0
      └─┬ htmlnano 2.1.1
        └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
  @parcel/core@">=2.12.0 <3.0.0-0"  

core/packages/providers
└─┬ @parcel/config-default 2.12.0
  └─┬ @parcel/optimizer-htmlnano 2.12.0
    └─┬ htmlnano 2.1.1
      └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano

core/packages/registry
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│   └─┬ @parcel/types 2.12.0
│     └─┬ @parcel/cache 2.12.0
│       ├── ✕ missing peer @parcel/core@^2.12.0
│       └─┬ @parcel/fs 2.12.0
│         ├── ✕ missing peer @parcel/core@^2.12.0
│         └─┬ @parcel/types 2.12.0
│           └─┬ @parcel/package-manager 2.12.0
│             ├── ✕ missing peer @parcel/core@^2.12.0
│             └─┬ @parcel/fs 2.12.0
│               ├── ✕ missing peer @parcel/core@^2.12.0
│               └─┬ @parcel/workers 2.12.0
│                 └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
  └─┬ @parcel/config-default 2.12.0
    └─┬ @parcel/optimizer-htmlnano 2.12.0
      └─┬ htmlnano 2.1.1
        └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
  @parcel/core@">=2.12.0 <3.0.0-0"  

core/packages/slots
├─┬ @parcel/packager-ts 2.12.0
│ └─┬ @parcel/plugin 2.12.0
│   └─┬ @parcel/types 2.12.0
│     └─┬ @parcel/cache 2.12.0
│       ├── ✕ missing peer @parcel/core@^2.12.0
│       └─┬ @parcel/fs 2.12.0
│         ├── ✕ missing peer @parcel/core@^2.12.0
│         └─┬ @parcel/types 2.12.0
│           └─┬ @parcel/package-manager 2.12.0
│             ├── ✕ missing peer @parcel/core@^2.12.0
│             └─┬ @parcel/fs 2.12.0
│               ├── ✕ missing peer @parcel/core@^2.12.0
│               └─┬ @parcel/workers 2.12.0
│                 └── ✕ missing peer @parcel/core@^2.12.0
└─┬ parcel 2.12.0
  └─┬ @parcel/config-default 2.12.0
    └─┬ @parcel/optimizer-htmlnano 2.12.0
      └─┬ htmlnano 2.1.1
        └── ✕ unmet peer svgo@^3.0.2: found 2.8.0 in @parcel/optimizer-htmlnano
Peer dependencies that should be installed:
  @parcel/core@">=2.12.0 <3.0.0-0"  

core/packages/types
└─┬ react-intl 3.12.1
  └── ✕ unmet peer react@^16.3.0: found 18.2.0

core/packages/volto
├─┬ razzle 4.2.18
│ ├── ✕ unmet peer mini-css-extract-plugin@">=0.9.0 <1.0.0": found 2.7.2
│ ├─┬ file-loader 4.3.0
│ │ └── ✕ unmet peer webpack@^4.0.0: found 5.90.1
│ ├─┬ url-loader 2.3.0
│ │ └── ✕ unmet peer webpack@^4.0.0: found 5.90.1
│ ├─┬ webpack-manifest-plugin 3.2.0
│ │ └── ✕ unmet peer webpack@^4.44.2: found 5.90.1
│ └─┬ @pmmmwh/react-refresh-webpack-plugin 0.4.3
│   └── ✕ unmet peer webpack-dev-server@3.x: found 4.11.1
├─┬ razzle-plugin-scss 4.2.18
│ └── ✕ unmet peer mini-css-extract-plugin@">=0.9.0 <1.0.0": found 2.7.2
├─┬ react-intl 3.12.1
│ └── ✕ unmet peer react@^16.3.0: found 18.2.0
├─┬ react-router 5.2.0
│ └─┬ mini-create-react-context 0.4.1
│   └── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": found 18.2.0
├─┬ react-select 4.3.1
│ ├── ✕ unmet peer react@"^16.8.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer react-dom@"^16.8.0 || ^17.0.0": found 18.2.0
│ └─┬ react-input-autosize 3.0.0
│   └── ✕ unmet peer react@"^16.3.0 || ^17.0.0": found 18.2.0
├─┬ react-with-styles 4.2.0
│ └─┬ airbnb-prop-types 2.16.0
│   └── ✕ unmet peer react@"^0.14 || ^15.0.0 || ^16.0.0-alpha": found 18.2.0
├─┬ react-with-direction 1.4.0
│ ├── ✕ unmet peer react@"^0.14 || ^15 || ^16": found 18.2.0
│ └── ✕ unmet peer react-dom@"^0.14 || ^15 || ^16": found 18.2.0
├─┬ @testing-library/react-hooks 8.0.1
│ ├── ✕ unmet peer react@"^16.9.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer react-dom@"^16.9.0 || ^17.0.0": found 18.2.0
│ ├── ✕ unmet peer @types/react@"^16.9.0 || ^17.0.0": found 18.2.27
│ └── ✕ unmet peer react-test-renderer@"^16.9.0 || ^17.0.0": found 18.2.0
├─┬ connected-react-router 6.8.0
│ ├── ✕ unmet peer react@^16.4.0: found 18.2.0
│ └── ✕ unmet peer react-redux@"^6.0.0 || ^7.1.0": found 8.1.2
├─┬ react-beautiful-dnd 13.0.0
│ ├── ✕ unmet peer react@^16.8.5: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.8.5: found 18.2.0
├─┬ react-dates 21.5.1
│ ├── ✕ unmet peer react@"^0.14 || ^15.5.4 || ^16.1.1": found 18.2.0
│ └── ✕ unmet peer react-dom@"^0.14 || ^15.5.4 || ^16.1.1": found 18.2.0
├─┬ react-detect-click-outside 1.1.1
│ ├── ✕ unmet peer react@"^16.8.0 || ^17": found 18.2.0
│ └── ✕ unmet peer react-dom@"^16.8.0 || ^17": found 18.2.0
├─┬ react-dnd 5.0.0
│ └─┬ recompose 0.27.1
│   └── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0": found 18.2.0
├─┬ react-image-gallery 1.2.7
│ └── ✕ unmet peer react@"^16.0.0 || ^17.0.0": found 18.2.0
├─┬ react-medium-image-zoom 3.0.15
│ ├── ✕ unmet peer react@^16.0.0: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.0.0: found 18.2.0
├─┬ react-select-async-paginate 0.5.3
│ ├── ✕ unmet peer react@"^16.14.0 || ^17.0.0": found 18.2.0
│ └─┬ react-is-mounted-hook 1.1.2
│   ├── ✕ unmet peer react@"^16.8.6 || ^17": found 18.2.0
│   └── ✕ unmet peer react-dom@"^16.8.6 || ^17": found 18.2.0
├─┬ react-simple-code-editor 0.7.1
│ ├── ✕ unmet peer react@^16.0.0: found 18.2.0
│ └── ✕ unmet peer react-dom@^16.0.0: found 18.2.0
├─┬ react-sortable-hoc 2.0.0
│ ├── ✕ unmet peer react@"^16.3.0 || ^17.0.0": found 18.2.0
│ └── ✕ unmet peer react-dom@"^16.3.0 || ^17.0.0": found 18.2.0
├─┬ react-virtualized 9.22.3
│ ├── ✕ unmet peer react@"^15.3.0 || ^16.0.0-alpha": found 18.2.0
│ └── ✕ unmet peer react-dom@"^15.3.0 || ^16.0.0-alpha": found 18.2.0
├─┬ redux-connect 10.0.0
│ ├── ✕ unmet peer react@^16.8.4: found 18.2.0
│ ├── ✕ unmet peer react-redux@7.x.x: found 8.1.2
│ └── ✕ unmet peer redux-actions@2.x.x: found 3.0.0
├─┬ @testing-library/jest-dom 6.4.2
│ └── ✕ unmet peer jest@">= 28": found 26.6.3
├─┬ eslint-import-resolver-babel-plugin-root-import 1.1.1
│ └── ✕ unmet peer babel-plugin-root-import@^5.1.0: found 6.1.0
├─┬ ts-jest 26.5.6
│ └── ✕ unmet peer typescript@">=3.8 <5.0": found 5.6.3
└─┬ react-intl-redux 2.3.0
  ├── ✕ unmet peer react-redux@"^5.0.1 || ^6.0.0 || ^7.0.0": found 8.1.2
  └── ✕ unmet peer prop-types@^15.8.1: found 15.7.2

core/packages/volto-slate
├─┬ react-intl 3.12.1
│ └── ✕ unmet peer react@^16.3.0: found 18.2.0
└─┬ react-router-dom 5.2.0
  └─┬ react-router 5.2.0
    └─┬ mini-create-react-context 0.4.1
      └── ✕ unmet peer react@"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": found 18.2.0

core/packages/volto-testing
└─┬ @testing-library/react 12.1.5
  ├── ✕ unmet peer react@<18.0.0: found 18.2.0
  └── ✕ unmet peer react-dom@<18.0.0: found 18.2.0

Done in 7.5s
make[1]: Entering directory '/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon'

> @plone/registry@1.8.0 build /Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/core/packages/registry
> parcel build

Error: No prebuild or local build of @parcel/watcher found. Tried @parcel/watcher-darwin-x64. Please ensure it is installed (don't use --no-optional when installing with npm). Otherwise it is possible we don't support your platform yet. If this is the case, please report an issue to https://github.com/parcel-bundler/watcher.
    at Object.<anonymous> (/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/node_modules/.pnpm/@parcel+watcher@2.4.1/node_modules/@parcel/watcher/index.js:26:13)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/node_modules/.pnpm/@parcel+fs@2.12.0_@parcel+core@2.12.0_@swc+helpers@0.5.13__@swc+helpers@0.5.13/node_modules/@parcel/fs/lib/index.js:7:28)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon/core/packages/registry:
 ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @plone/registry@1.8.0 build: `parcel build`
Exit status 1
make[1]: *** [Makefile:54: core/packages/registry/dist] Error 1
make[1]: Leaving directory '/Users/katjasuss/Desktop/_temp/scratch_cookieplone/20241018/volto-addon'
make: *** [Makefile:39: install] Error 2
ksuess commented 3 days ago

make install is successfull with:

  "devDependencies": {
    "@parcel/core": "^2.12.0",
    "@parcel/watcher-darwin-x64": "^2.4.1",
    "@swc/core-darwin-x64": "1.4.16",
davisagli commented 3 days ago

@ksuess What version of Node is active?

ichim-david commented 3 days ago

@davisagli I also just got a similar error and I have node version 20.14.0 https://gist.github.com/ichim-david/7748ad9cd6c7c7fd15542e48d7f422f8

davisagli commented 2 days ago

@ichim-david That doesn't look like the same error. @ksuess' build failed with "Error: No prebuild or local build of @parcel/watcher found." but yours failed with "libc++abi: terminating due to uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument"

I tried to reproduce these errors but I didn't have any problem. These are both beyond my understanding of node packaging. Any ideas, @sneridagh?

sneridagh commented 1 day ago

@ksuess where do you need @parcel/watcher-darwin-x64 ? No package in core needs it as a direct dep. I never use the watcher... I only relied on the built things. Core nowadays only relies on @plone/registry to be built to work. Unless you are working on it, I'd suggest you don't open a watcher for that.

@ichim-david It happens to me as well, parcel throws a segmentation fault randomly in macos... :( Node issued a patch regarding that issue in 22 last week (but parcel denied to run, it throwed a segmentation fault always in 22), no clue if they ported it to 20, maybe it works better. Under my experience, removing completely dist folders, trying again, solves the problem. Let's hope it works better in 22, or in latest 20, if not, we might need to drop Parcel :(