Follow these steps to create a new release:

  1. Write the new version in VERSION.txt. The version should hace the format <major>.<minor>.<revision>.

    Increment <major> for non-backwards compatible changes.

    Increment <minor> for new features.

    Increment <revision> for bug fixes.

  2. Write the new version in package.json. This file is used by PlatformIO 3 to find the current Simba release.

  3. Run the test suites and generate the documentation.

    make test-all-boards
    make release-test
  4. Generate files for Arduino.

    make arduino
  5. Add the new releases to make/arduino/<family>/package_simba_<family>_index.json. The sha256 sums of the zip-archives are calculated by make arduino and written to simba-arduino/*.sha256.

  6. Copy the Simba Arduino releases to SourceForge.

    scp simba-arduino/simba-arduino-avr-*.zip <user>
    scp simba-arduino/simba-arduino-sam-*.zip <user>
    scp simba-arduino/simba-arduino-esp-*.zip <user>
    scp simba-arduino/simba-arduino-esp32-*.zip <user>
  7. Start a http server used to download package manifests in the Arduino IDE.

    (cd make/arduino && python -m SimpleHTTPServer)
  8. Start the Arduino IDE and add these URL:s in Preferences.

  9. Install all four packages and run the blink example for each one of them.

  10. Commit the changes, and tag the commit with the new version.

  11. Push the new commit and tag.

  12. Copy the Simba Arduino package manifests to SourceForge.

scp make/arduino/avr/package_simba_avr_index.json <user>
scp make/arduino/sam/package_simba_sam_index.json <user>
scp make/arduino/esp/package_simba_esp_index.json <user>
scp make/arduino/esp32/package_simba_esp32_index.json <user>
  1. Download the release zip-file from Github and calculate its SHA1 checksum. Upload the zip-file to sourceforge and add the new releases to make/platformio/manifest.json.
sha1sum <version>.zip
scp <version>.zip <user>
  1. Commit and push.
  2. Done.