Skip to main content

Publishing Meshtastic

This document is a WIP.

If you’d like to do ‘real’ releases with your changes, the procedure is:

Device

  • Update protobufs
cd proto
git checkout master && git pull
cd ..
git add proto
git commit -m "updating proto submodule to latest"
run bin/regen-protos.sh
  • edit version.properties to set release version
  • commit and push (or merge) to root of repo - this should cause GitHub to start a release build (see the CI actions)
  • edit the draft release text and click publish

Update Protobufs

Android

Pre-requisites

  • Add repository secrets
    • KEYSTORE_FILENAME
      • name of the .jks
    • KEYSTORE
      • we will convert the .jks to base64
      • openssl base64 < filename.jks | tr -d '\n' | tee filename.txt
    • KEYSTORE_PROPERTIES
      • storePassword=nononononono keyPassword=nononononono keyAlias=upload storeFile=nononononono.jks

Instructions - Automated

  • Update protobufs
  • Go to Actions / Make Release / Run Workflow
  • Pick the Releases branch
  • Enter the version found in app/gradle.build

iOS

TBD

Meshtastic-flasher

A meshtastic-flasher release consists of publishing the release to PyPi https://pypi.org/project/meshtastic-flasher/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-gui-installer/releases.

Instructions - automated

Python

A python release consists of publishing the release to PyPi https://pypi.org/project/meshtastic/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-python/releases.

Pre-requisites

No pre-requisites are needed locally to make a release. All builds are done via Github Actions currently.

To test/validate, you will need to run:

pip3 install -r requirements.txt
pip install .

Instructions

connect one device to the serial port and run:

pytest -m smoke1
note

You need permissions in the GitHub project to make a build

Web

Releases are automatically generated for every commit as per out CI. This performs two actions:

  1. Generates a perpetually updated GitHub release with an accompanying build.tar that a automatically get's pulled by the firmware CI at build time.
  2. A hosted version is deployed to client.meshtastic.org.