mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-06-08 21:26:32 +00:00

On every startup, the Arduino IDE checks for new versions of the IDE. If a newer version is available, a notification/dialog is shown offering an update. "Newer" is determined by comparing the version of the user's IDE to the latest available version on the update channel. This comparison is done according to the Semantic Versioning Specification ("SemVer"). In order to facilitate beta testing, builds are generated of the Arduino IDE at the current stage in development. These builds are given an identifying version of the following form: - <version>-snapshot-<short hash> - builds generated for every push and pull request that modifies relevant files - <version>-nightly-<YYYYMMDD> - daily builds of the tip of the default branch The previous release procedure caused the <version> component of these to be the version of the most recent release. During the pre-release phase of the project development, all releases had a pre-release suffix (e.g., 2.0.0-rc9.4). Appending the "snapshot" or "nightly" suffix to that pre-release version caused these builds to have the correct precedence (e.g., 2.0.0-rc9.2.snapshot-20cc34c > 2.0.0-rc9.2). This situation has changed now that the project is using production release versions (e.g., 2.0.0-nightly-20220915 < 2.0.0). This caused users of "snapshot" or "nightly" builds to be presented with a spurious update notification on startup. The solution is to add a step to the end of the release procedure to do a minor bump of the version metadata after creating the release tag. This means that the metadata bump traditionally done before the creation of the release tag will already have been done in advance for patch releases. However, it will still need to be done for minor or major releases. The release procedure documentation is hereby updated to produce correct tester and nightly build version precedence. The metadata bump step is moved from before to after the tag creation step, replaced by a new step to verify the version before the tag creation, updating it in the event it is not a patch release. Both those steps may require updating the metadata. As an alternative to maintaining duplicate copies, each step links to a single copy of the fairly complex instructions for doing so. The structure of the document is adjusted to accomodate this, by placing the steps of the procedure under a "Steps" section and creating a new "Operations" section to contain any such shared content.
Remote Sketchbook
Arduino IDE provides a Remote Sketchbook feature that can be used to upload sketches to Arduino Cloud.
In order to use this feature, a user must be registered on Arduino Cloud and logged in. This feature is completely optional and can be disabled in the IDE via the "File > Advanced > Hide Remote Sketchbook" menu item.
Developer guide
A developer could use the content of this repo to create a customized version of this feature and implement a different remote storage as follows:
1. Changing remote connection parameters in the Preferences panel (be careful while editing the Preferences panel!)
Here a screenshot of the Preferences panel
- The settings under Arduino > Auth should be edited to match the OAuth2 configuration of your custom remote sketchbook storage
- The setting under Arduino > Sketch Sync Endpoint should be edited to point to your custom remote sketchbook storage service
2. Implementing the Arduino Cloud Store APIs for your custom remote sketchbook storage
Following the API Reference below:
Build the Arduino IDE with this extension
To build the Arduino IDE with this extension, run the following in a terminal. On Windows, use Git Bash.
./bootstrap.sh