volto icon indicating copy to clipboard operation
volto copied to clipboard

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

Open ksuess opened this issue 1 year ago • 5 comments

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:

  • OS: [Mac with M1]
  • Volto Version [current 18 alpha]

What I tried so far

  • Add missing parcel watcher to optionalDependencies or devDependencies.

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 [email protected]
core/packages/scripts                    |  WARN  deprecated [email protected]
core/packages/volto                      |  WARN  deprecated @babel/[email protected]
core/packages/volto                      |  WARN  deprecated [email protected]
core/packages/volto                      |  WARN  deprecated [email protected]
 WARN  58 deprecated subdependencies found: @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @babel/[email protected], @formatjs/[email protected], @formatjs/[email protected], @humanwhocodes/[email protected], @humanwhocodes/[email protected], @npmcli/[email protected], @npmcli/[email protected], @types/[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
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 [email protected]: 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 [email protected]: 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 [email protected]: 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 [email protected]: found 8.1.2
│ └── ✕ unmet peer [email protected]: 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/[email protected] 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/@[email protected]/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/@[email protected]_@[email protected]_@[email protected]__@[email protected]/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/[email protected] 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 avatar Oct 18 '24 17:10 ksuess

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",

ksuess avatar Oct 18 '24 18:10 ksuess

@ksuess What version of Node is active?

davisagli avatar Oct 18 '24 21:10 davisagli

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

ichim-david avatar Oct 19 '24 17:10 ichim-david

@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?

davisagli avatar Oct 19 '24 20:10 davisagli

@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 :(

sneridagh avatar Oct 21 '24 10:10 sneridagh

After upgrading all possible screws to turn,

  • upgrading to latest MacOS
  • updating homebrew formulae
  • trying Node 20, 22, and also 18

I still had another error than before: (see below)

I could finally install a vanilla project generated by cookieplone by first running pnpm install --force to install optionalDependencies See https://pnpm.io/cli/install#--force Hope that helps anyone stumbling about install problems like me.

> @plone/[email protected] build … /core/packages/registry
> parcel build

Error: dlopen(…
…ssary/node_modules/.pnpm/[email protected]/node_modules/lmdb/build/Release/lmdb.node
…
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), 
…

ksuess avatar Oct 25 '24 07:10 ksuess

After upgrading all possible screws to turn, I still had another error than before: (see below)

I could finally install a vanilla project generated by cookieplone by first running pnpm install --force to install optionalDependencies See https://pnpm.io/cli/install#--force Hope that helps anyone stumbling about install problems like me.

@ksuess I'm glad you were able to get this issue sorted after performing all of the steps that you did. If this command solved this issue we should document it then at the very least in order to give a solution to others as well in case install breaks similarly for them.

ichim-david avatar Oct 25 '24 07:10 ichim-david

I would review a pull request that would insert another note admonition after the existing one here: https://6.docs.plone.org/install/create-project-cookieplone.html#install-the-project.

stevepiercy avatar Oct 25 '24 09:10 stevepiercy