The Arduino IDE update check uses a "channel update info file" on Arduino's download server. This file specifies the
latest version of Arduino IDE available from the Arduino download server as well as the download URLs for the release
archives.
There is a separate channel file for each host operating system:
- Windows
- Linux
- macOS
Two macOS host architectures are now supported:
- x86 (AKA "Intel")
- ARM64 (AKA "Apple Silicon")
These each have their own release archive files. The macOS channel file contains data on both. So the updater must be
able to identify the appropriate archive to use for the update based on the host architecture. This is based on the
archive filename.
Arduino IDE's auto-update feature is built on the electron-updater package. The release archive selection is handled by
the electron-updater codebase and the filename pattern is hardcoded there. It selects the archive file that contains
`arm64` in its name (case sensitive), if present, to use for updates on macOS hosts with ARM64 architecture.
Previously, the build system produced archive files with the name format arduino-ide_<version>_macOS_ARM64.zip,
consistent with the established naming in other Arduino tooling projects. Unfortunately this naming would cause either
(depending on the order of the entries in the channel file) the x86 build to be used to update ARM64 macOS hosts
(resulting in lesser performance due to Rosetta 2 overhead) or the ARM64 build to be used to update x86 hosts (resulting
in the IDE failing to start).
So it is necessary to change the build artifact name to follow the format dictated by the electron-updater package.
Although it is not required (because electron-updater uses separate channel files for the x86 and ARM hosts), the Linux
archive filename format was also changed for the sake of consistency.
- From now on, NSFW service disposes after last reference
is removed. No more 10sec delay.
- Moved the temp workspace deletion to a startup task.
- Can set initial task for the window from electron-main.
- Removed the `browser-app`.
Closes#39
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* add patch for setting IDE startup theme based on OS theme
* Patched the default theme behavior.
Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
* add custom themes in register
Co-authored-by: Akos Kitta <a.kitta@arduino.cc>
* IDE updater assorted bugfix
- add linux AppImage target
- fix hardcoded if condition that causes to always show the update dialog
- fix redundant test build version
- recalculate sha512 after notarization on macOS
* boost notarization speed
* recalculate artifacts hash
* Remove check for updates on startup setting
* Remove useless exported function
* Update template-package.json used to package IDE
* Add function to get channel file during packaging step
* Add updates check
* move ide updater on backend
* configure updater options
* add auto update preferences
* TMP check updates on start and download
* index on check-update-startup: fcb8f6e TMP check updates on start and download
* set version to skip on local storage
* add IDE setting to toggle update check on start-up
* comment out check for updates on startup and auto update settings
* Update Theia to 1.22.1
* updated CI
* download changelog and show it in IDE updater dialog
* remove useless file
* remove useless code
* add i18n to updater dialog
* fix i18n
* refactor UpdateInfo typing
* add macos zip to artifacts
* Simply use `--ignore-engines`
* Use correct --ignore-engines
* Fix semver#valid call
* Use C++17
* updated documentation
* add update channel preference
* update updater url
* updated documentation
* Fix the C++ version
* Build flag for cpp
* add disclaimer with correct node version
* Update `electron-builder`
* Fix `Electron.Menu` issue
* Skip electron rebuild
* Rebuild native dependencies beforehand
* Use resolutions section
* Update template-package.json as well
* move ide-updater to electron application
* refactor ide-updater service
* update yarn.lock
* update i18n
* Revert "Add gRPC user agent (#834)"
This reverts commit 5ab3a747a6e8bf551b5c0e59a98154d387e0a200.
* fix ide download url
* update latest file in CI
* fix i18n check
Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
Co-authored-by: Francesco Stasi <f.stasi@me.com>
Co-authored-by: Mark Sujew <msujew@yahoo.de>
When you have multiple snapshot builds on your computer for testing purposes, it's difficult to keep track of which is which. The commit hash is shown by the running application, but it's more convenient to have the installation also identified by its folder name.
Adding the short commit hash to the build archive filename (and thus the extracted folder name) provides a clear identifier for each build.
Before this change, the archive is named like:
arduino-pro-ide_snapshot_Linux_64bit.zip
after:
arduino-pro-ide_0.0.7-snapshot.1b8c510_Linux_64bit.zip
- [macOS] Removed `zip` target. We need it later for the auto-update.
- [CI]: From now on, the release tag must not start with `v`.
- [yarn]: Added steps on how to rebuild the natives from the source.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
- Split up the pipeline to build, publish, and release.
- Set a 30 minutes build timeout, to avoid macOS signing issues.
- Removed global envs. `env` cannot be accessed for `if` in jobs.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
- Support for multiple electron targe per platform.
- Removed packager CLI. Changed the logic we calculate the app name.
- Fixed various OS-specific tests: stubbed `os`.
- Restructured the final ZIP formats for Windows and Linux.
- Added packager tests.
- Switched from `@grpc/grpc-js` to native `grpc`.
- Updated the version from 0.0.5 to 0.0.6.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This change is a NOOP for the electron application started in dev mode.
Closesarduino/arduino-pro-ide#187
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
- We have to reuse the `yarn.lock` file for the final app, not just
for the extensions.
- Simplified the clean-up phase.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
```
info There appears to be trouble with your network connection. Retrying...
error An unexpected error occurred: "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz: ESOCKETTIMEDOUT".
info If you think this is a bug, please open a bug report with the information provided in "D:\\a\\1\\s\\yarn-error.log".
```
Signed-off-by: Akos Kitta <kittaakos@typefox.io>