diff --git a/.github/workflows/arduino-stats.yaml b/.github/workflows/arduino-stats.yml similarity index 100% rename from .github/workflows/arduino-stats.yaml rename to .github/workflows/arduino-stats.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e88645443..2cc276a5e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,10 +57,10 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Install Node.js 14.x + - name: Install Node.js 16.x uses: actions/setup-node@v1 with: - node-version: '14.x' + node-version: '16.x' registry-url: 'https://registry.npmjs.org' - name: Install Python 3.x diff --git a/.github/workflows/check-i18n-task.yml b/.github/workflows/check-i18n-task.yml index 36a290ed9..0d0bc8478 100644 --- a/.github/workflows/check-i18n-task.yml +++ b/.github/workflows/check-i18n-task.yml @@ -29,10 +29,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Install Node.js 14.x + - name: Install Node.js 16.x uses: actions/setup-node@v2 with: - node-version: '14.x' + node-version: '16.x' registry-url: 'https://registry.npmjs.org' - name: Install Go diff --git a/.github/workflows/compose-full-changelog.yaml b/.github/workflows/compose-full-changelog.yml similarity index 100% rename from .github/workflows/compose-full-changelog.yaml rename to .github/workflows/compose-full-changelog.yml diff --git a/.github/workflows/github-stats.yaml b/.github/workflows/github-stats.yml similarity index 100% rename from .github/workflows/github-stats.yaml rename to .github/workflows/github-stats.yml diff --git a/.github/workflows/i18n-nightly-push.yml b/.github/workflows/i18n-nightly-push.yml index 53e552674..80b7ee190 100644 --- a/.github/workflows/i18n-nightly-push.yml +++ b/.github/workflows/i18n-nightly-push.yml @@ -16,10 +16,10 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Install Node.js 14.x + - name: Install Node.js 16.x uses: actions/setup-node@v2 with: - node-version: '14.x' + node-version: '16.x' registry-url: 'https://registry.npmjs.org' - name: Install Go diff --git a/.github/workflows/i18n-weekly-pull.yml b/.github/workflows/i18n-weekly-pull.yml index b91bc2bca..12b049fd9 100644 --- a/.github/workflows/i18n-weekly-pull.yml +++ b/.github/workflows/i18n-weekly-pull.yml @@ -16,10 +16,10 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Install Node.js 14.x + - name: Install Node.js 16.x uses: actions/setup-node@v2 with: - node-version: '14.x' + node-version: '16.x' registry-url: 'https://registry.npmjs.org' - name: Install Go diff --git a/.github/workflows/themes-weekly-pull.yml b/.github/workflows/themes-weekly-pull.yml index 41c159ea7..dff11a145 100644 --- a/.github/workflows/themes-weekly-pull.yml +++ b/.github/workflows/themes-weekly-pull.yml @@ -9,7 +9,7 @@ on: env: # See vars.GO_VERSION field of https://github.com/arduino/arduino-cli/blob/master/DistTasks.yml GO_VERSION: "1.17" - NODE_VERSION: 14.x + NODE_VERSION: 16.x jobs: pull-from-jsonbin: diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json index a51e42af1..ee627be08 100644 --- a/arduino-ide-extension/package.json +++ b/arduino-ide-extension/package.json @@ -158,11 +158,7 @@ ], "arduino": { "cli": { - "version": { - "owner": "arduino", - "repo": "arduino-cli", - "commitish": "c8ff042" - } + "version": "0.28.0" }, "fwuploader": { "version": "2.2.0" @@ -171,7 +167,7 @@ "version": "14.0.0" }, "languageServer": { - "version": "0.7.1" + "version": "0.7.2" } } } diff --git a/arduino-ide-extension/scripts/download-cli.js b/arduino-ide-extension/scripts/download-cli.js index 531e22a50..564f80e6a 100755 --- a/arduino-ide-extension/scripts/download-cli.js +++ b/arduino-ide-extension/scripts/download-cli.js @@ -42,6 +42,9 @@ const suffix = (() => { switch (platform) { case 'darwin': + if (arch === 'arm64') { + return 'macOS_ARM64.tar.gz'; + } return 'macOS_64bit.tar.gz'; case 'win32': return 'Windows_64bit.zip'; diff --git a/arduino-ide-extension/scripts/download-ls.js b/arduino-ide-extension/scripts/download-ls.js index a67c65929..991dfb07d 100755 --- a/arduino-ide-extension/scripts/download-ls.js +++ b/arduino-ide-extension/scripts/download-ls.js @@ -76,6 +76,12 @@ lsSuffix = 'macOS_64bit.tar.gz'; clangdSuffix = 'macOS_64bit'; break; + case 'darwin-arm64': + clangdExecutablePath = path.join(build, 'clangd'); + clangFormatExecutablePath = path.join(build, 'clang-format'); + lsSuffix = 'macOS_ARM64.tar.gz'; + clangdSuffix = 'macOS_ARM64'; + break; case 'linux-x64': clangdExecutablePath = path.join(build, 'clangd'); clangFormatExecutablePath = path.join(build, 'clang-format'); diff --git a/docs/development.md b/docs/development.md index b3146acae..c69c6eeb9 100644 --- a/docs/development.md +++ b/docs/development.md @@ -54,7 +54,7 @@ This repository contains the main code, but two more repositories are included d If you’re familiar with TypeScript, the [Theia IDE](https://theia-ide.org/), and if you want to contribute to the project, you should be able to build the Arduino IDE locally. Please refer to the [Theia IDE prerequisites](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites) documentation for the setup instructions. -> **Note**: Node.js 14 must be used instead of the version 12 recommended at the link above. +> **Note**: Node.js 16 should be used instead of the version 14 recommended at the link above. `arm64` arch is not recognized on 14+. If you want to work build IDE2 on ARM, Node.js 16 is a must. Once you have all the tools installed, you can build the editor following these steps diff --git a/docs/internal/Arm.md b/docs/internal/Arm.md index f6f1d52aa..c36e16fb3 100644 --- a/docs/internal/Arm.md +++ b/docs/internal/Arm.md @@ -2,14 +2,14 @@ Building the Pro IDE on Linux `armv7l` (aka `armhf`) and `aarch64` (aka `arm64`): -1. Install Node.js 14.x with [nvm](https://github.com/nvm-sh/nvm#install--update-script): +1. Install Node.js 16.x with [nvm](https://github.com/nvm-sh/nvm#install--update-script): ``` wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash ``` Restart your shell then: ``` - nvm install 14 - nvm use 14 + nvm install 16 + nvm use 16 ``` Verify: ``` diff --git a/docs/internal/Ubuntu.md b/docs/internal/Ubuntu.md index 5c67b516a..de556410c 100644 --- a/docs/internal/Ubuntu.md +++ b/docs/internal/Ubuntu.md @@ -18,9 +18,9 @@ sudo apt update \ build-essential \ && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash \ && source ~/.bashrc \ -&& nvm install 14 \ -&& nvm use 14 \ -&& nvm alias default 14 \ +&& nvm install 16 \ +&& nvm use 16 \ +&& nvm alias default 16 \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list \ && sudo apt update && sudo apt install --no-install-recommends yarn \ diff --git a/electron/build/template-package.json b/electron/build/template-package.json index f934a176f..61688b202 100644 --- a/electron/build/template-package.json +++ b/electron/build/template-package.json @@ -11,7 +11,7 @@ "devDependencies": { "@theia/cli": "1.25.0", "cross-env": "^7.0.2", - "electron-builder": "23.0.2", + "electron-builder": "23.3.3", "electron-notarize": "^1.1.1", "is-ci": "^2.0.0", "ncp": "^2.0.0", @@ -26,7 +26,7 @@ "patch": "ncp ./patch/backend/main.js ./src-gen/backend/main.js" }, "engines": { - "node": ">=14.0.0 <15" + "node": ">=15.0.0 <17" }, "repository": { "type": "git", @@ -89,7 +89,10 @@ "hardenedRuntime": true, "gatekeeperAssess": false, "entitlements": "resources/entitlements.mac.plist", - "entitlementsInherit": "resources/entitlements.mac.plist" + "entitlementsInherit": "resources/entitlements.mac.plist", + "target": { + "target": "default" + } }, "linux": { "target": [ diff --git a/electron/packager/conf-node-gyp.sh b/electron/packager/conf-node-gyp.sh deleted file mode 100755 index 994c3cd40..000000000 --- a/electron/packager/conf-node-gyp.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -npm install --global node-gyp@7.0.0 - -if [ "$OSTYPE" = "cygwin" ] || [ "$OSTYPE" = "msys" ]; then - npm config set node_gyp "`npm prefix -g`\node_modules\node-gyp\bin\node-gyp.js" -else - npm config set node_gyp "`npm prefix -g`/lib/node_modules/node-gyp/bin/node-gyp.js" -fi - -echo "npm config get node_gyp -> `npm config get node_gyp`" diff --git a/electron/packager/config.js b/electron/packager/config.js index 44af9f323..d460b9c82 100644 --- a/electron/packager/config.js +++ b/electron/packager/config.js @@ -27,6 +27,9 @@ function artifactName() { throw new Error(`Unsupported platform, arch: ${platform}, ${arch}`); } case 'darwin': { + if (arch === 'arm64') { + return `${name}_${id}_macOS_ARM64.\$\{ext}`; + } return `${name}_${id}_macOS_64bit.\$\{ext}`; } case 'linux': { diff --git a/electron/packager/index.js b/electron/packager/index.js index d769fecc0..95223dd13 100644 --- a/electron/packager/index.js +++ b/electron/packager/index.js @@ -6,7 +6,6 @@ const shell = require('shelljs'); const glob = require('glob'); const isCI = require('is-ci'); - shell.env.THEIA_ELECTRON_SKIP_REPLACE_FFMPEG = '1'; // Do not run the ffmpeg validation for the packager. // Note, this will crash on PI if the available memory is less than desired heap size. // https://github.com/shelljs/shelljs/issues/1024#issuecomment-1001552543 shell.env.NODE_OPTIONS = '--max_old_space_size=4096'; // Increase heap size for the CI diff --git a/electron/packager/package.json b/electron/packager/package.json index e1f6c72df..006f92996 100644 --- a/electron/packager/package.json +++ b/electron/packager/package.json @@ -33,7 +33,7 @@ "yargs": "^12.0.5" }, "engines": { - "node": ">=14.0.0 <15" + "node": ">=15.0.0 <17" }, "mocha": { "reporter": "spec", diff --git a/package.json b/package.json index 7e31aaf44..51f02681e 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "AGPL-3.0-or-later", "private": true, "engines": { - "node": ">=14.0.0 <15" + "node": ">=15.0.0 <17" }, "devDependencies": { "@theia/cli": "1.25.0",