endojs / endo

Endo is a distributed secure JavaScript sandbox, based on SES
Apache License 2.0
823 stars 71 forks source link

Support Windows in Hermes scripts #2474

Open leotm opened 1 week ago

leotm commented 1 week ago

What is the Problem Being Solved?

Windows compatibility

introduces a couple scripts which run fine in CI (ubuntu-latest) and locally (macOS), but may not on Windows

https://github.com/endojs/endo/blob/13aa1afa0a51841468d08f978a256429d3708fd3/packages/ses/package.json#L73

runs on my Win11 machine https://github.com/endojs/endo/pull/2334#discussion_r1771824699 but may not for others

https://github.com/endojs/endo/blob/13aa1afa0a51841468d08f978a256429d3708fd3/packages/ses/package.json#L85

doesn't run on Windows https://github.com/endojs/endo/pull/2334#discussion_r1771850474

it could be a good idea to support Windows contributors running these locally including those setup to run React Native on Windows

Description of the Design

1 build:hermes util.parseArgs https://github.com/endojs/endo/pull/2334#discussion_r1761823192

2 test:hermes unsure how to run this on Windows, @boneskull may have an idea

Security Considerations

Scaling Considerations

Test Plan

consider running windows-latest in CI (Windows Server 2022)

Compatibility Considerations

Upgrade Considerations

boneskull commented 3 days ago

@leotm here's an example of including windows in a build matrix:

jobs:
  build:
    name: Node.js v${{ matrix.node_version }} / ${{ matrix.os }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node_version: [18, 20]
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
      - name: Use Node.js ${{ matrix.node_version }}
        uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
        with:
          node-version: ${{ matrix.node_version }}

The Windows job(s) will be running under pwsh, which will quickly surface portability issues.