Releasing & auto-update
Conductor ships an in-app updater (the Tauri updater plugin) that checks GitHub Releases for new versions. Updates must be signed with the project's private key, or the app refuses to install them.
This is a summary. The authoritative, step-by-step guide lives in
RELEASING.mdat the repo root.
Signing keys (one-time)
A signing keypair is generated once:
pnpm tauri signer generate -w ~/.tauri/elyra-conductor.key
- Private key:
~/.tauri/elyra-conductor.key— keep secret, never commit. - Public key: embedded in
src-tauri/tauri.conf.jsonunderplugins.updater.pubkey.
If the private key is lost, existing installs can no longer auto-update.
Cutting a release
-
Update the changelog. In
CHANGELOG.md, rename[Unreleased]to[<version>] — <YYYY-MM-DD>, add a fresh empty[Unreleased], and update the comparison links at the bottom. This section becomes the GitHub release notes. -
Bump the version in
package.json,src-tauri/tauri.conf.json, andsrc-tauri/Cargo.toml(keep them in sync); commit the changelog + bump together. -
Build a signed bundle:
./scripts/release-build.sh # set TAURI_SIGNING_PRIVATE_KEY_PASSWORD=… first if your key has a passwordIt runs
pnpm tauri buildandmake-latest-json.mjs, producing (insrc-tauri/target/release/bundle/) the.dmginstaller, the.app.tar.gzupdater payload, and its.sig. -
Manifest:
latest.jsonis generated automatically (regenerate manually withnode scripts/make-latest-json.mjs). -
Create the GitHub release for tag
v<version>(use the new changelog section as the notes) and upload the four assets, renaming the tarball/sig to the stable, space-free nameelyra-conductor.app.tar.gz:git tag -a v<version> -m "elyra-conductor v<version>" && git push origin v<version>
How the update check works
plugins.updater.endpointspoints at the repo'sreleases/latest/download/latest.json, which always resolves to the latest non-prerelease manifest.- On startup (and via
⌘K→ Check for updates…), the app fetches the manifest, compares versions, and offers a one-click install & restart for newer builds. - The downloaded
.app.tar.gzis verified against the embedded public key before installing.
Notes
- Current target is Apple Silicon (
darwin-aarch64). To support Intel or a universal binary, build for that target and add the matchingplatformsentry inlatest.json. - Releases are not notarized by Apple, so the first launch still needs right-click → Open. Notarization is independent of the Tauri update signature.
Related
RELEASING.md— the full guide.CHANGELOG.md— version history and release notes.