diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json index 59d89d566..63a06d223 100644 --- a/arduino-ide-extension/package.json +++ b/arduino-ide-extension/package.json @@ -1,6 +1,6 @@ { "name": "arduino-ide-extension", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "description": "An extension for Theia building the Arduino IDE", "license": "AGPL-3.0-or-later", "scripts": { @@ -122,7 +122,7 @@ ], "arduino": { "cli": { - "version": "0.18.1" + "version": "0.18.2" } } } diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index db49c33d9..db9d9a772 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -288,10 +288,11 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut } } const { clangdUri, cliUri, lsUri } = await this.executableService.list(); - const [clangdPath, cliPath, lsPath] = await Promise.all([ + const [clangdPath, cliPath, lsPath, cliConfigPath] = await Promise.all([ this.fileService.fsPath(new URI(clangdUri)), this.fileService.fsPath(new URI(cliUri)), this.fileService.fsPath(new URI(lsUri)), + this.fileService.fsPath(new URI(await this.configService.getCliConfigFileUri())) ]); this.languageServerFqbn = await Promise.race([ new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout after ${20_000} ms.`)), 20_000)), @@ -300,6 +301,7 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut cliPath, clangdPath, log: currentSketchPath ? currentSketchPath : log, + cliConfigPath, board: { fqbn, name: name ? `"${name}"` : undefined diff --git a/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts b/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts index ca277e171..e7293b176 100644 --- a/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts +++ b/arduino-ide-extension/src/browser/boards/boards-auto-installer.ts @@ -43,13 +43,27 @@ export class BoardsAutoInstaller implements FrontendApplicationContribution { if (selectedBoard && !this.notifications.find(board => Board.sameAs(board, selectedBoard))) { this.notifications.push(selectedBoard); this.boardsService.search({}).then(packages => { - const candidates = packages - .filter(pkg => BoardsPackage.contains(selectedBoard, pkg)) + + // filter packagesForBoard selecting matches from the cli (installed packages) + // and matches based on the board name + // NOTE: this ensures the Deprecated & new packages are all in the array + // so that we can check if any of the valid packages is already installed + const packagesForBoard = packages.filter(pkg => BoardsPackage.contains(selectedBoard, pkg) || pkg.boards.some(board => board.name === selectedBoard.name)); + + // check if one of the packages for the board is already installed. if so, no hint + if (packagesForBoard.some(({ installedVersion }) => !!installedVersion)) { return; } + + // filter the installable (not installed) packages, + // CLI returns the packages already sorted with the deprecated ones at the end of the list + // in order to ensure the new ones are preferred + const candidates = packagesForBoard .filter(({ installable, installedVersion }) => installable && !installedVersion); + const candidate = candidates[0]; if (candidate) { + const version = candidate.availableVersions[0] ? `[v ${candidate.availableVersions[0]}]` : ''; // tslint:disable-next-line:max-line-length - this.messageService.info(`The \`"${candidate.name}"\` core has to be installed for the currently selected \`"${selectedBoard.name}"\` board. Do you want to install it now?`, 'Install Manually', 'Yes').then(async answer => { + this.messageService.info(`The \`"${candidate.name} ${version}"\` core has to be installed for the currently selected \`"${selectedBoard.name}"\` board. Do you want to install it now?`, 'Install Manually', 'Yes').then(async answer => { const index = this.notifications.findIndex(board => Board.sameAs(board, selectedBoard)); if (index !== -1) { this.notifications.splice(index, 1); diff --git a/arduino-ide-extension/src/browser/boards/boards-list-widget.ts b/arduino-ide-extension/src/browser/boards/boards-list-widget.ts index 8df9f0ee1..7ec54b296 100644 --- a/arduino-ide-extension/src/browser/boards/boards-list-widget.ts +++ b/arduino-ide-extension/src/browser/boards/boards-list-widget.ts @@ -20,6 +20,7 @@ export class BoardsListWidget extends ListWidget { searchable: service, installable: service, itemLabel: (item: BoardsPackage) => item.name, + itemDeprecated: (item: BoardsPackage) => item.deprecated, itemRenderer }); } diff --git a/arduino-ide-extension/src/browser/data/arduino.color-theme.json b/arduino-ide-extension/src/browser/data/arduino.color-theme.json index 00ea41b48..f35d3e0a2 100644 --- a/arduino-ide-extension/src/browser/data/arduino.color-theme.json +++ b/arduino-ide-extension/src/browser/data/arduino.color-theme.json @@ -28,7 +28,8 @@ "scope": [ "meta.function.c", "entity.name.function", - "meta.function-call.c" + "meta.function-call.c", + "variable.other" ], "settings": { "foreground": "#D35400" @@ -42,16 +43,19 @@ "meta.block.c", "meta.function.c", "entity.name.function.preprocessor.c", - "meta.preprocessor.macro.c" + "meta.preprocessor.macro.c", + "variable", + "variable.name" ], "settings": { "foreground": "#434f54" } }, { - "name": "strings", + "name": "constants", "scope": [ - "string.quoted.double" + "string.quoted.double", + "constant" ], "settings": { "foreground": "#005C5F" diff --git a/arduino-ide-extension/src/browser/library/library-list-widget.ts b/arduino-ide-extension/src/browser/library/library-list-widget.ts index a0c70eb3e..4d254e514 100644 --- a/arduino-ide-extension/src/browser/library/library-list-widget.ts +++ b/arduino-ide-extension/src/browser/library/library-list-widget.ts @@ -24,6 +24,7 @@ export class LibraryListWidget extends ListWidget { searchable: service, installable: service, itemLabel: (item: LibraryPackage) => item.name, + itemDeprecated: (item: LibraryPackage) => item.deprecated, itemRenderer }); } diff --git a/arduino-ide-extension/src/browser/settings.tsx b/arduino-ide-extension/src/browser/settings.tsx index f1bcc7bcf..da9570563 100644 --- a/arduino-ide-extension/src/browser/settings.tsx +++ b/arduino-ide-extension/src/browser/settings.tsx @@ -507,7 +507,7 @@ export class SettingsComponent extends React.Component { const uri = await this.props.fileDialogService.showOpenDialog({ title: 'Select new sketchbook location', - openLabel: 'Chose', + openLabel: 'Choose', canSelectFiles: false, canSelectMany: false, canSelectFolders: true diff --git a/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx b/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx index 8c40e8d3b..f459c7265 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx @@ -42,6 +42,7 @@ export namespace ComponentList { export interface Props { readonly items: T[]; readonly itemLabel: (item: T) => string; + readonly itemDeprecated: (item: T) => boolean; readonly itemRenderer: ListItemRenderer; readonly install: (item: T, version?: Installable.Version) => Promise; readonly uninstall: (item: T) => Promise; diff --git a/arduino-ide-extension/src/browser/widgets/component-list/filterable-list-container.tsx b/arduino-ide-extension/src/browser/widgets/component-list/filterable-list-container.tsx index 66163a0a3..af957f988 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/filterable-list-container.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/filterable-list-container.tsx @@ -56,10 +56,11 @@ export class FilterableListContainer extends React.C } protected renderComponentList(): React.ReactNode { - const { itemLabel, resolveContainer, itemRenderer } = this.props; + const { itemLabel, itemDeprecated, resolveContainer, itemRenderer } = this.props; return items={this.state.items} itemLabel={itemLabel} + itemDeprecated={itemDeprecated} itemRenderer={itemRenderer} install={this.install.bind(this)} uninstall={this.uninstall.bind(this)} @@ -78,8 +79,17 @@ export class FilterableListContainer extends React.C } protected sort(items: T[]): T[] { - const { itemLabel } = this.props; - return items.sort((left, right) => itemLabel(left).localeCompare(itemLabel(right))); + // debugger; + const { itemLabel, itemDeprecated } = this.props; + return items.sort((left, right) => { + + // always put deprecated items at the bottom of the list + if (itemDeprecated(left)) { + return 1; + } + + return itemLabel(left).localeCompare(itemLabel(right)) + }); } protected async install(item: T, version: Installable.Version): Promise { @@ -121,6 +131,7 @@ export namespace FilterableListContainer { readonly container: ListWidget; readonly searchable: Searchable; readonly itemLabel: (item: T) => string; + readonly itemDeprecated: (item: T) => boolean; readonly itemRenderer: ListItemRenderer; readonly resolveContainer: (element: HTMLElement) => void; readonly resolveFocus: (element: HTMLElement | undefined) => void; diff --git a/arduino-ide-extension/src/browser/widgets/component-list/list-widget.tsx b/arduino-ide-extension/src/browser/widgets/component-list/list-widget.tsx index 376f12089..3d7a64f0f 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/list-widget.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/list-widget.tsx @@ -102,6 +102,7 @@ export abstract class ListWidget extends ReactWidget install={this.install.bind(this)} uninstall={this.uninstall.bind(this)} itemLabel={this.options.itemLabel} + itemDeprecated={this.options.itemDeprecated} itemRenderer={this.options.itemRenderer} filterTextChangeEvent={this.filterTextChangeEmitter.event} messageService={this.messageService} @@ -133,6 +134,7 @@ export namespace ListWidget { readonly installable: Installable; readonly searchable: Searchable; readonly itemLabel: (item: T) => string; + readonly itemDeprecated: (item: T) => boolean; readonly itemRenderer: ListItemRenderer; } } diff --git a/arduino-ide-extension/src/common/protocol/arduino-component.ts b/arduino-ide-extension/src/common/protocol/arduino-component.ts index 583d061d2..79b7f236b 100644 --- a/arduino-ide-extension/src/common/protocol/arduino-component.ts +++ b/arduino-ide-extension/src/common/protocol/arduino-component.ts @@ -2,6 +2,7 @@ import { Installable } from './installable'; export interface ArduinoComponent { readonly name: string; + readonly deprecated: boolean; readonly author: string; readonly summary: string; readonly description: string; diff --git a/arduino-ide-extension/src/common/protocol/config-service.ts b/arduino-ide-extension/src/common/protocol/config-service.ts index 929274e22..fdbebfd21 100644 --- a/arduino-ide-extension/src/common/protocol/config-service.ts +++ b/arduino-ide-extension/src/common/protocol/config-service.ts @@ -2,6 +2,7 @@ export const ConfigServicePath = '/services/config-service'; export const ConfigService = Symbol('ConfigService'); export interface ConfigService { getVersion(): Promise>; + getCliConfigFileUri(): Promise; getConfiguration(): Promise; setConfiguration(config: Config): Promise; isInDataDir(uri: string): Promise; diff --git a/arduino-ide-extension/src/node/boards-service-impl.ts b/arduino-ide-extension/src/node/boards-service-impl.ts index ed5b7b5cd..c41b72823 100644 --- a/arduino-ide-extension/src/node/boards-service-impl.ts +++ b/arduino-ide-extension/src/node/boards-service-impl.ts @@ -210,6 +210,7 @@ export class BoardsServiceImpl extends CoreClientAware implements BoardsService availableVersions: [platform.getLatest()], description: platform.getBoardsList().map(b => b.getName()).join(', '), installable: true, + deprecated: platform.getDeprecated(), summary: 'Boards included in this package:', installedVersion, boards: platform.getBoardsList().map(b => { name: b.getName(), fqbn: b.getFqbn() }), diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.d.ts index ec8744765..b3d3f1e70 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.d.ts +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.d.ts @@ -152,6 +152,9 @@ export class Platform extends jspb.Message { getManuallyInstalled(): boolean; setManuallyInstalled(value: boolean): Platform; + getDeprecated(): boolean; + setDeprecated(value: boolean): Platform; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): Platform.AsObject; @@ -174,6 +177,7 @@ export namespace Platform { email: string, boardsList: Array, manuallyInstalled: boolean, + deprecated: boolean, } } diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.js b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.js index 8c783ab29..7cad6b29c 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.js +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/common_pb.js @@ -955,7 +955,8 @@ proto.cc.arduino.cli.commands.v1.Platform.toObject = function(includeInstance, m email: jspb.Message.getFieldWithDefault(msg, 7, ""), boardsList: jspb.Message.toObjectList(msg.getBoardsList(), proto.cc.arduino.cli.commands.v1.Board.toObject, includeInstance), - manuallyInstalled: jspb.Message.getBooleanFieldWithDefault(msg, 9, false) + manuallyInstalled: jspb.Message.getBooleanFieldWithDefault(msg, 9, false), + deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 10, false) }; if (includeInstance) { @@ -1029,6 +1030,10 @@ proto.cc.arduino.cli.commands.v1.Platform.deserializeBinaryFromReader = function var value = /** @type {boolean} */ (reader.readBool()); msg.setManuallyInstalled(value); break; + case 10: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setDeprecated(value); + break; default: reader.skipField(); break; @@ -1122,6 +1127,13 @@ proto.cc.arduino.cli.commands.v1.Platform.serializeBinaryToWriter = function(mes f ); } + f = message.getDeprecated(); + if (f) { + writer.writeBool( + 10, + f + ); + } }; @@ -1307,6 +1319,24 @@ proto.cc.arduino.cli.commands.v1.Platform.prototype.setManuallyInstalled = funct }; +/** + * optional bool deprecated = 10; + * @return {boolean} + */ +proto.cc.arduino.cli.commands.v1.Platform.prototype.getDeprecated = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.cc.arduino.cli.commands.v1.Platform} returns this + */ +proto.cc.arduino.cli.commands.v1.Platform.prototype.setDeprecated = function(value) { + return jspb.Message.setProto3BooleanField(this, 10, value); +}; + + diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.d.ts index 38aa9cbb4..4f9c74b2f 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.d.ts +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.d.ts @@ -81,6 +81,11 @@ export class CompileRequest extends jspb.Message { getExportBinaries(): google_protobuf_wrappers_pb.BoolValue | undefined; setExportBinaries(value?: google_protobuf_wrappers_pb.BoolValue): CompileRequest; + clearLibraryList(): void; + getLibraryList(): Array; + setLibraryList(value: Array): CompileRequest; + addLibrary(value: string, index?: number): string; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): CompileRequest.AsObject; @@ -115,6 +120,7 @@ export namespace CompileRequest { sourceOverrideMap: Array<[string, string]>, exportBinaries?: google_protobuf_wrappers_pb.BoolValue.AsObject, + libraryList: Array, } } diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.js b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.js index 61033798e..1229aaf6c 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.js +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/compile_pb.js @@ -93,7 +93,7 @@ if (goog.DEBUG && !COMPILED) { * @private {!Array} * @const */ -proto.cc.arduino.cli.commands.v1.CompileRequest.repeatedFields_ = [8,15]; +proto.cc.arduino.cli.commands.v1.CompileRequest.repeatedFields_ = [8,15,24]; @@ -145,7 +145,8 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.toObject = function(includeInsta clean: jspb.Message.getBooleanFieldWithDefault(msg, 19, false), createCompilationDatabaseOnly: jspb.Message.getBooleanFieldWithDefault(msg, 21, false), sourceOverrideMap: (f = msg.getSourceOverrideMap()) ? f.toObject(includeInstance, undefined) : [], - exportBinaries: (f = msg.getExportBinaries()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f) + exportBinaries: (f = msg.getExportBinaries()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f), + libraryList: (f = jspb.Message.getRepeatedField(msg, 24)) == null ? undefined : f }; if (includeInstance) { @@ -266,6 +267,10 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.deserializeBinaryFromReader = fu reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader); msg.setExportBinaries(value); break; + case 24: + var value = /** @type {string} */ (reader.readString()); + msg.addLibrary(value); + break; default: reader.skipField(); break; @@ -434,6 +439,13 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.serializeBinaryToWriter = functi google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter ); } + f = message.getLibraryList(); + if (f.length > 0) { + writer.writeRepeatedString( + 24, + f + ); + } }; @@ -877,6 +889,43 @@ proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.hasExportBinaries = fu }; +/** + * repeated string library = 24; + * @return {!Array} + */ +proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.getLibraryList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 24)); +}; + + +/** + * @param {!Array} value + * @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this + */ +proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.setLibraryList = function(value) { + return jspb.Message.setField(this, 24, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this + */ +proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.addLibrary = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 24, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.cc.arduino.cli.commands.v1.CompileRequest} returns this + */ +proto.cc.arduino.cli.commands.v1.CompileRequest.prototype.clearLibraryList = function() { + return this.setLibraryList([]); +}; + + /** * List of repeated fields within this message type. diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.d.ts b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.d.ts index 78149890e..c3e5155fd 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.d.ts +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.d.ts @@ -910,4 +910,5 @@ export enum LibraryLocation { LIBRARY_LOCATION_USER = 1, LIBRARY_LOCATION_PLATFORM_BUILTIN = 2, LIBRARY_LOCATION_REFERENCED_PLATFORM_BUILTIN = 3, + LIBRARY_LOCATION_UNMANAGED = 4, } diff --git a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.js b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.js index 84f4564f6..44f24309b 100644 --- a/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.js +++ b/arduino-ide-extension/src/node/cli-protocol/cc/arduino/cli/commands/v1/lib_pb.js @@ -6593,7 +6593,8 @@ proto.cc.arduino.cli.commands.v1.LibraryLocation = { LIBRARY_LOCATION_IDE_BUILTIN: 0, LIBRARY_LOCATION_USER: 1, LIBRARY_LOCATION_PLATFORM_BUILTIN: 2, - LIBRARY_LOCATION_REFERENCED_PLATFORM_BUILTIN: 3 + LIBRARY_LOCATION_REFERENCED_PLATFORM_BUILTIN: 3, + LIBRARY_LOCATION_UNMANAGED: 4 }; goog.object.extend(exports, proto.cc.arduino.cli.commands.v1); diff --git a/arduino-ide-extension/src/node/library-service-server-impl.ts b/arduino-ide-extension/src/node/library-service-server-impl.ts index ac6fa277d..e936a8f33 100644 --- a/arduino-ide-extension/src/node/library-service-server-impl.ts +++ b/arduino-ide-extension/src/node/library-service-server-impl.ts @@ -249,6 +249,7 @@ function toLibrary(pkg: Partial, lib: LibraryRelease | Library, label: '', exampleUris: [], installable: false, + deprecated: false, location: 0, ...pkg, diff --git a/browser-app/package.json b/browser-app/package.json index 209a27eb7..6b2a8b3c7 100644 --- a/browser-app/package.json +++ b/browser-app/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "browser-app", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "license": "AGPL-3.0-or-later", "dependencies": { "@theia/core": "next", @@ -19,7 +19,7 @@ "@theia/process": "next", "@theia/terminal": "next", "@theia/workspace": "next", - "arduino-ide-extension": "2.0.0-beta.5" + "arduino-ide-extension": "2.0.0-beta.6" }, "devDependencies": { "@theia/cli": "next" diff --git a/electron-app/package.json b/electron-app/package.json index df6bd847c..7db954c8e 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "electron-app", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "license": "AGPL-3.0-or-later", "main": "src-gen/frontend/electron-main.js", "dependencies": { @@ -21,7 +21,7 @@ "@theia/process": "next", "@theia/terminal": "next", "@theia/workspace": "next", - "arduino-ide-extension": "2.0.0-beta.5" + "arduino-ide-extension": "2.0.0-beta.6" }, "devDependencies": { "@theia/cli": "next" diff --git a/package.json b/package.json index 84e0ce2d0..ef0a47ff0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "arduino-editor", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "description": "Arduino IDE", "repository": "https://github.com/bcmi-labs/arduino-editor.git", "author": "Arduino SA",