meshtastic/docs/developers/publish.md
2022-01-02 23:53:45 -07:00

2.1 KiB
Raw Blame History

id title sidebar_label
publish Publishing Meshtastic Publishing Meshtastic

This document is a WIP.

If youd 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

Python

Pre-requisites

  • Python Packages
    • pip3 install pdoc3
    • pip3 install pygatt
    • pip3 install pandoc
    • pip install twine
    • pip3 install -r requirements.txt
  • https://pandoc.org/installing.html
  • nanopb 0.4.4 installed

Instructions

  • 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
  • bump the version in setup.py
  • run bin/test-release.sh
    • Ensure no errors.
  • run bin/upload-release.sh

I usually just edit setup.py to bump the version number, then run "bin/upload-release.sh" (though you should use bin/test-release.sh for the first time - which is just a dry deploy to the pypi test server). This script does the build (including new docs - which will end up in the git checkin) and upload to pypi. Then I do a git commit/push and tag wit the version number.

:::note You need permissions in the GitHub project to make a build :::