Release process
The selected workflow builds artifacts when a GitHub Release is published.
Before creating a release
Section titled “Before creating a release”Confirm version metadata
Section titled “Confirm version metadata”The release workflow derives the shipping bundle version from the release tag. These files retain development defaults:
package.jsonsrc-tauri/Cargo.tomlsrc-tauri/tauri.conf.json
Verify that the release tag is a valid application version, then check the generated bundle name and runtime metadata after the build.
Run all quality gates
Section titled “Run all quality gates”npm run checkcargo fmt --manifest-path src-tauri/Cargo.toml --checkcargo clippy --locked --manifest-path src-tauri/Cargo.toml --all-targets -- -D warningscargo test --locked --manifest-path src-tauri/Cargo.toml.venv/bin/python -m pytest tests/python/ -qAlso perform the manual lifecycle and persistence checks in Testing and quality.
Build locally when changing packaging
Section titled “Build locally when changing packaging”npm run build:appThis script sets CI=true so DMG creation skips Finder customization that can hang
outside an interactive GUI session.
Create the GitHub Release
Section titled “Create the GitHub Release”The workflow listens for:
on: release: types: [published]Creating the release starts two independent matrix jobs:
| Target | Artifact architecture suffix |
|---|---|
aarch64-apple-darwin |
aarch64 |
x86_64-apple-darwin |
x86_64 |
The workflow checks out the release ref, installs the target Rust toolchain and Node
version, runs npm ci, installs the pinned Tauri CLI, and runs:
cargo tauri build --target <target-triple> --config '{"version":"<tag-without-v>"}'Artifact naming
Section titled “Artifact naming”The workflow removes a leading v from the tag and renames found bundles:
Molt_<version>_<arch>.dmgEach matrix job requires exactly one DMG, renames it to this form, and uploads it to the same GitHub Release with overwrite enabled.
Verify the published release
Section titled “Verify the published release”For both architectures:
- Confirm the workflow completed successfully.
- Confirm the artifact name contains the intended version and architecture.
- Record SHA-256 digests.
- Mount the DMG and install the app.
- Verify the app launches on matching hardware or a representative runner.
- Run a cell and relaunch to test source persistence.
- Confirm the bundled
kernel_server.pyand application icon resolve. - Confirm no development URL or debug behavior remains.
- Confirm all kernels die on quit.
Signing and notarization
Section titled “Signing and notarization”The current release workflow contains no signing-certificate, hardened-runtime, or Apple notarization steps. Public release notes and installation documentation must continue to disclose Gatekeeper behavior until those steps are implemented and verified.
Stable-release metadata
Section titled “Stable-release metadata”The documentation template treats a GitHub Release as stable when both draft and
prerelease are false, regardless of tag text. Mark development releases as
prereleases so they do not become the canonical source for molt-docs.
Synchronize documentation
Section titled “Synchronize documentation”After publishing a qualifying stable release:
- Resolve its exact tag and commit.
- Compare implementation, tests, manifests, and release notes with the prior documented source.
- Update all affected
molt-docspages anddocs-source.jsontogether. - Run the documentation repository’s formatting and validation commands.
- Review the Cloudflare preview before merging.
