vercel / vercel/hyper

Fix CI errors for macos and windows builds

Open
#8,026 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
44.7k
Forks
3.6k
Avg merge
21m
Merged PRs (30d)
1

Description

CI currently always fails for macos and windows builds.

These are likely false positives, but they should be addressed either way.

macOS CI error:

Run python3 -m pip install packaging setuptools
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:
    
    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz
    
    If you wish to install a Python application that isn't in Homebrew,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. You can install pipx with
    
    brew install pipx
    
    You may restore the old behavior of pip by passing
    the '--break-system-packages' flag to pip, or by adding
    'break-system-packages = true' to your pip.conf file. The latter
    will permanently disable this error.
    
    If you disable this error, we STRONGLY recommend that you additionally
    pass the '--user' flag to pip, or set 'user = true' in your pip.conf
    file. Failure to do this can result in a broken Homebrew installation.
    
    Read more about this behavior here: <https://peps.python.org/pep-0668/>

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Notice:  A new release of pip is available: 24.0 -> 24.1.2
Notice:  To update, run: python3.12 -m pip install --upgrade pip
Error: Process completed with exit code 1.

Windows CI error:

Run yarn install
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "electron-builder > app-builder-lib@24.13.3" has unmet peer dependency "electron-builder-squirrel-windows@24.13.3".
[4/4] Building fresh packages...
$ yarn run v8-snapshot && webpack --config-name hyper-app && electron-builder install-app-deps && yarn run rebuild-node-pty && cpy --cwd=target node_modules "../../app/" && husky install && yarn run generate-schema
yarn run v1.22.22
$ cross-env npm_config_arch=x64 yarn run v8-snapshot:arch && cross-env npm_config_arch=arm64 yarn run v8-snapshot:arch
$ yarn run mk-snapshot && yarn run cp-snapshot
$ cross-env ELECTRON_CUSTOM_VERSION=$npm_package_devDependencies_electron node node_modules/electron-mksnapshot/download-mksnapshot.js && node bin/mk-snapshot.js
Creating a linked script..
Generating startup blob in "D:\a\hyper\hyper/cache/x64"
<ref *1> Error: spawnSync D:\a\hyper\hyper\node_modules\.bin\mksnapshot.cmd EINVAL
    at Object.spawnSync (node:internal/child_process:1117:20)
    at spawnSync (node:child_process:876:24)
    at Object.execFileSync (node:child_process:919:15)
    at main (D:\a\hyper\hyper\bin\mk-snapshot.js:45:16) {
  errno: -4071,
  code: 'EINVAL',
  syscall: 'spawnSync D:\\a\\hyper\\hyper\\node_modules\\.bin\\mksnapshot.cmd',
  path: 'D:\\a\\hyper\\hyper\\node_modules\\.bin\\mksnapshot.cmd',
  spawnargs: [
    'D:\\a\\hyper\\hyper/cache/snapshot-libs.js',
    '--output_dir',
    'D:\\a\\hyper\\hyper/cache/x64'
  ],
  error: [Circular *1],
  status: null,
  signal: null,
  output: null,
  pid: 0,
  stdout: null,
  stderr: null
}
$ node bin/cp-snapshot.js
Copying v8 snapshots from D:\a\hyper\hyper\cache\x64\snapshot_blob.bin to D:\a\hyper\hyper\node_modules\electron\dist
Error: ENOENT: no such file or directory, copyfile 'D:\a\hyper\hyper\cache\x64\snapshot_blob.bin' -> 'D:\a\hyper\hyper\node_modules\electron\dist\snapshot_blob.bin'
    at Object.copyFileSync (node:fs:2982:3)
    at copySnapshot (D:\a\hyper\hyper\bin\cp-snapshot.js:12:6)
    at Object.<anonymous> (D:\a\hyper\hyper\bin\cp-snapshot.js:51:5)
    at Module._compile (node:internal/modules/cjs/loader:1364:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
    at Module.load (node:internal/modules/cjs/loader:1203:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1019:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
    at node:internal/main/run_main_module:28:49
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Process completed with exit code 1.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the macOS pip install step and the Windows yarn install sequence, then inspect bin/mk-snapshot.js and bin/cp-snapshot.js, which are named in the Windows trace. Confirm the cause of each platform failure and verify that both macOS and Windows CI builds complete successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, node.js, python, typescript
Domain
build-system, ci-cd, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.