per1234 8f88aa69bf Adjust release procedure to produce correct tester and nightly build version precedence
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.
2022-09-26 05:04:43 -07:00
..

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:

API Call OpenAPI documentation
DELETE create/v2/files/d/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletedir
DELETE create/v2/files/f/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_deletefile
GET create/v2/files/d/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_list
GET create/v2/files/f/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_read
GET create/v2/sketches https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_search
GET create/v2/sketches/byID/{id} https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byID
GET create/v2/sketches/byPath{path} https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_byPath
POST create/v2/files/d/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_mkdir
POST create/v2/files/f/$HOME/sketches_v2{posixPath} https://api2.arduino.cc/create/docs#!/files95v2/files_v2_write
POST create/v2/sketches/{sketch.id} https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_edit
POST create/v3/files/cp https://api2.arduino.cc/create/docs#!/files95v3/files_v3_copy
POST create/v3/files/mv https://api2.arduino.cc/create/docs#!/files95v3/files_v3_move
PUT create/v2/sketches https://api2.arduino.cc/create/docs#!/sketches95v2/sketches_v2_create

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