This document describes the steps needed to release a new version of LNC binaries.
- Android Studio with Android SDK (API level 16 or newer)
- Xcode (latest version)
- Go v1.22.3 or newer
- gomobile (https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile)
- javac version 1.7 or higher (Included in Java Development Kit 7+)
Ensure that NDK is installed for the Android Studio SDK tools.
To install NDK in Android Studio, navigate to Preferences (or Settings) |
Appearance & Behavior | System Settings | Android SDK. Navigate to the SDK Tools
tab, mark NDK (Side by side)
and then click the "Apply" button.
From the root of the project, run the following command. Replace vX.Y.Z-alpha
with the next version number (ex: v0.2.0-alpha)
$ make release tag=vX.Y.Z-alpha
When this completes, a build
dir will be created with four files:
- lnc-vX.Y.Z-alpha.wasm: the WASM reproducible binary
- lnc-vX.Y.Z-alpha-android.zip: the gomobile library for android
- lnc-vX.Y.Z-alpha-ios.zip: the gomobile library for iOS
- manifest-vX.Y.Z-alpha.txt: the sha256 hash manifest file
For the signing commands below to work without modifying the path, you first
need navigate build
dir that was created with the make release
command
above.
$ cd build
- Replace
{PGP_EMAIL}
with your email address associated with your PGP key - Replace
{GITHUB_USERNAME}
with your github username
$ gpg --default-key {PGP_EMAIL} --output manifest-{GITHUB_USERNAME}-vX.Y.Z-alpha.sig --detach-sign manifest-vX.Y.Z-alpha.txt
Go to https://opentimestamps.org. Upload the newly generated
manifest-{GITHUB_USERNAME}-vX.Y.Z-alpha.sig
signature file, and download the
resulting ots
file.
First, double check that the release you just created, was based on the latest upstream master branch commit. Also verify that you are currently based on the on the latest master branch commit when creating any tags!
Using the -s
option signs the tag with your PGP key
$ git tag -s vX.Y.Z-alpha -m "lightning-node-connect vX.Y.Z-alpha"
$ git push origin vX.Y.Z-alpha
On Github create a new release. Select the tag you just pushed, then click the "Auto-generate release notes" button.
Take the rest of the content from a previous release. Be sure to update the version number and update the verification examples to use your own PGP key.
In the assets, include these six files:
- lnc-vX.Y.Z-alpha.wasm
- lnc-vX.Y.Z-alpha-android.zip
- lnc-vX.Y.Z-alpha-ios.zip
- manifest-vX.Y.Z-alpha.txt
- manifest-{GITHUB_USERNAME}-vX.Y.Z-alpha.sig
- manifest-{GITHUB_USERNAME}-vX.Y.Z-alpha.sig.ots
The lnc-vX.Y.Z-alpha.wasm
should be deployed to our CDN so it is available
at the url https://lightning.engineering/lnc-vX.Y.Z-alpha.wasm
.