Skip to content

Commit 45f0671

Browse files
author
Akos Kitta
committed
Updated the documentation.
- [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>
1 parent 08e3731 commit 45f0671

File tree

6 files changed

+86
-41
lines changed

6 files changed

+86
-41
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
branches:
66
- master
77
tags:
8-
- 'v[0-9]+.[0-9]+.[0-9]+*'
8+
- '[0-9]+.[0-9]+.[0-9]+*'
99
pull_request:
1010
branches:
1111
- master

README.md

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,86 @@
11
# Arduino Pro IDE
22

3-
[![Build Status](https://dev.azure.com/typefox/Arduino/_apis/build/status/bcmi-labs.arduino-editor?branchName=master)](https://dev.azure.com/typefox/Arduino/_build/latest?definitionId=4&branchName=master)
3+
![Arduino Pro IDE](https://github.com/bcmi-labs/arduino-editor/workflows/Arduino%20Pro%20IDE/badge.svg)
44

5-
> **Beware:** This is very much work-in-progress. Things can and probably will be broken, even on master.
5+
### Download
66

7-
This repo contains a proof-of-concept for an Arduino IDE based on Theia.
8-
It's built on top of a [fork of the arduino-cli](https://github.com/typefox/arduino-cli/tree/daemon) that sports a gRPC interface.
7+
You can download the latest version of the Arduino Pro IDE application for the supported platforms from the [GitHub release page](https://github.com/arduino/arduino-pro-ide/releases) or following the links in the following table.
98

10-
## How to try (offline)
9+
#### Latest version
1110

12-
### Prerequisites
13-
You should be able to build Theia locally. The requirements are defined [here](https://github.com/theia-ide/theia/blob/master/doc/Developing.md#prerequisites).
11+
Platform | 32 bit | 64 bit |
12+
--------- | ------------------------ | ------------------------ |
13+
Linux | | [Linux 64 bit] |
14+
Linux ARM | [🚧 Work in progress...] | [🚧 Work in progress...] |
15+
Windows | | [Windows 64 bit] |
16+
macOS | | [macOS 64 bit] |
1417

15-
```
16-
git clone https://github.com/bcmi-labs/arduino-editor
17-
cd arduino-editor
18+
[🚧 Work in progress...]: https://github.com/arduino/arduino-pro-ide/issues/287
19+
[Linux 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide_latest_Linux_64bit.zip
20+
[Windows 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide_latest_Windows_64bit.zip
21+
[macOS 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/arduino-pro-ide_latest_macOS_64bit.dmg
22+
23+
#### Previous versions
24+
25+
These are available from the [GitHub releases page](https://github.com/arduino/arduino-pro-ide/releases).
26+
27+
#### Nightly builds
28+
29+
These builds are generated every day at 03:00 GMT from the `master` branch and
30+
should be considered unstable. In order to get the latest nightly build
31+
available for the supported platform, use the following links:
32+
33+
Platform | 32 bit | 64 bit |
34+
--------- | ------------------------ | ------------------------ |
35+
Linux | | [Nightly Linux 64 bit] |
36+
Linux ARM | [🚧 Work in progress...] | [🚧 Work in progress...] |
37+
Windows | | [Nightly Windows 64 bit] |
38+
macOS | | [Nightly macOS 64 bit] |
39+
40+
[🚧 Work in progress...]: https://github.com/arduino/arduino-pro-ide/issues/287
41+
[Nightly Linux 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/nightly/arduino-pro-ide_nightly-latest_Linux_64bit.zip
42+
[Nightly Windows 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/nightly/arduino-pro-ide_nightly-latest_Windows_64bit.zip
43+
[Nightly macOS 64 bit]: https://downloads.arduino.cc/arduino-pro-ide/nightly/arduino-pro-ide_nightly-latest_macOS_64bit.dmg
44+
45+
> These links return an HTTP `302: Found` response, redirecting to latest
46+
generated builds by replacing `latest` with the latest available build
47+
date, using the format YYYYMMDD (i.e for 2019/Aug/06 `latest` is
48+
replaced with `20190806` )
49+
50+
### Build from source
51+
52+
If you’re familiar with TypeScript, the [Theia IDE](https://theia-ide.org/), and of you want to contribute to the
53+
project, you should be able to build the Arduino Pro IDE locally. Please refer to the [Theia IDE prerequisites](https://github.com/theia-ide/theia/blob/master/doc/) documentation for the setup instructions.
54+
55+
### Build
56+
```sh
1857
yarn
19-
yarn rebuild:electron
20-
yarn --cwd electron-app start
2158
```
2259

23-
If you want to switch back to the browser-based example, execute the following in the repository root
24-
```
25-
yarn rebuild:browser
26-
```
27-
Then you can start the browser example again:
28-
```
29-
yarn --cwd browser-app start
60+
### Rebuild the native dependencies
61+
```sh
62+
yarn rebuild:electron
3063
```
64+
Note: this step takes long. It completes in 4-5 minutes on a MacBook Pro, 2.9 GHz Quad-Core Intel Core i7.
3165

32-
Click [here](./arduino-ide-extension/README.md) for more details on various IDE services, and the Arduino Pro IDE implementation in general.
33-
66+
### Start
67+
```sh
68+
yarn start
69+
```
3470

35-
## Arduino Pro IDE Electron Application
36-
The project is built on [Azure DevOps](https://dev.azure.com/typefox/Arduino).
71+
### CI
3772

38-
Currently, we provide the Arduino Pro IDE for the following platforms:
39-
- Windows,
40-
- macOS, and
41-
- Linux.
42-
43-
You can download the latest release applications fom [here](https://github.com/bcmi-labs/arduino-editor/releases/latest).
44-
If you want to get a nightly build, go to the [Azure DevOps page](https://dev.azure.com/typefox/Arduino/_build?definitionId=4),
45-
and follow the steps from below.
73+
This project is built on [GitHub Actions](https://github.com/bcmi-labs/arduino-editor/actions?query=workflow%3A%22Arduino+Pro+IDE%22).
4674

47-
<img width="500" src="static/download_01.gif">
48-
<img width="500" src="static/download_02.gif">
75+
- _Snapshot_ builds run when changes are pushed to the `master` branch, or when a PR is created against the `master` branch. For the sake of the review and verification process, the build artifacts can be downloaded from the GitHub Actions page. Note: [due to a limitation](https://github.com/actions/upload-artifact/issues/80#issuecomment-630030144) with the GH Actions UI, you cannot download a particular build, but you have to get all together inside the `build-artifacts.zip`.
76+
- _Nightly_ builds run every day at 03:00 GMT from the `master` branch.
77+
- _Release_ builds run when a new tag is pushed to the remote. The tag must follow the [semver](https://semver.org/). For instance, `1.2.3` is a correct tag, but `v2.3.4` won't work. Steps to trigger a new release build:
78+
- Create a local tag:
79+
```sh
80+
git tag -a 1.2.3 -m "Creating a new tag for the `1.2.3` release."
81+
```
82+
- Push it to the remote:
83+
```sh
84+
git push origin 1.2.3
85+
```
4986

50-
Click [here](./electron/README.md) for more details on the CI/CD, the GitHub release, and the build process in general.

electron/build/template-package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@
7979
"hardenedRuntime": true,
8080
"gatekeeperAssess": false,
8181
"entitlements": "resources/entitlements.mac.plist",
82-
"entitlementsInherit": "resources/entitlements.mac.plist"
82+
"entitlementsInherit": "resources/entitlements.mac.plist",
83+
"target": [
84+
"dmg"
85+
]
8386
},
8487
"linux": {
8588
"target": [

electron/packager/config.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ function getVersion() {
7979
if (!semver.valid(version)) {
8080
throw new Error(`Invalid patched version: '${version}'.`);
8181
}
82-
} else {
83-
version = `v${version}`;
8482
}
8583
return version;
8684
}

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@
88
"private": true,
99
"devDependencies": {
1010
"@theia/cli": "next",
11+
"cross-env": "^7.0.2",
1112
"lerna": "^3.20.2",
1213
"rimraf": "^2.6.1",
1314
"tslint": "^5.5.0",
1415
"typescript": "^3.9.2"
1516
},
1617
"scripts": {
17-
"prepare": "lerna run prepare && yarn download:plugins",
18+
"prepare": "cross-env THEIA_ELECTRON_SKIP_REPLACE_FFMPEG=1 lerna run prepare && yarn download:plugins",
1819
"rebuild:browser": "theia rebuild:browser",
1920
"rebuild:electron": "theia rebuild:electron --modules \"@theia/node-pty\" nsfw native-keymap find-git-repositories grpc",
20-
"start": "yarn --cwd ./browser-app start",
21+
"start": "yarn rebuild:electron && yarn --cwd ./electron-app start",
2122
"watch": "lerna run watch --parallel",
2223
"test": "lerna run test",
2324
"download:plugins": "theia download:plugins"

yarn.lock

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5882,6 +5882,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
58825882
safe-buffer "^5.0.1"
58835883
sha.js "^2.4.8"
58845884

5885+
cross-env@^7.0.2:
5886+
version "7.0.2"
5887+
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
5888+
integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==
5889+
dependencies:
5890+
cross-spawn "^7.0.1"
5891+
58855892
cross-spawn-async@^2.1.1:
58865893
version "2.2.5"
58875894
resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
@@ -5909,7 +5916,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
59095916
shebang-command "^1.2.0"
59105917
which "^1.2.9"
59115918

5912-
cross-spawn@^7.0.0:
5919+
cross-spawn@^7.0.0, cross-spawn@^7.0.1:
59135920
version "7.0.3"
59145921
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
59155922
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==

0 commit comments

Comments
 (0)