* docs: expand public user and contributor guides * docs: address public guide review feedback * docs: align web e2e coverage guidance * test: cover collapsed docs references * fix: validate shortcut docs references * fix: parse balanced docs links * fix: handle indented docs code blocks
3.5 KiB
title, description
| title | description |
|---|---|
| Release Process | Understand Kandev's automated version, changelog, runtime bundle, desktop, npm, GitHub, and Homebrew release flow. |
Release Process
Kandev uses one semantic version for the CLI, native runtime bundles, desktop artifacts, npm packages, Git tag, GitHub release, and Homebrew formula. Releases are driven by the Release GitHub Actions workflow, not by manually publishing individual channels.
Before a release
- Confirm required checks pass on
main. - Review user-visible changes and update
docs/public/**plus changelog inputs. - Verify platform-sensitive launcher, agentctl, and desktop changes on their target systems.
- Confirm publishing credentials, signing/notarization secrets, npm access, and Homebrew tap access are healthy.
- Avoid starting a release while another version or release PR is active.
Run the workflow
In GitHub Actions, open Release, choose Run workflow, select patch, minor, or major, and optionally enable dry-run validation.
The workflow validates the requested bump, computes the next version, updates the package version and changelog, opens and merges the release PR, creates the vX.Y.Z tag, then builds and publishes the release channels.
Do not create a competing tag or edit generated release files while the workflow is running.
Artifacts and channels
The release produces platform runtime bundles containing the unified kandev binary and agentctl helpers. npm installs a small launcher plus one platform-selected @kdlbs/runtime-* optional package. Homebrew consumes GitHub release tarballs. The Tauri desktop build embeds the matching runtime before packaging and signing.
Supported runtime targets and artifact shapes are maintained in apps/cli/README_internal.md and the release scripts. When adding a platform, update build matrices, npm optional dependencies, archive names, launcher mapping, tests, checksums, desktop resources, and Homebrew handling together.
Signing and publishing
Desktop signing/notarization and package publishing depend on repository secrets. Logs and artifacts must not expose signing material. A failure after the tag exists is a release-repair incident: inspect which channels published before rerunning or changing tags.
Never overwrite an already published semantic version. Fix the pipeline and publish a new patch when immutable package registries or release assets require it.
Verify the release
After publication:
- check the GitHub release, notes, checksums, and expected platform archives;
- install with
npx kandev@latestin a clean directory; - verify a Homebrew install or upgrade;
- launch the desktop artifact on signed target platforms;
- run
kandev --versionand a minimal first task; - confirm the Updates screen sees the new release;
- verify public docs describe the shipped behavior rather than unreleased
mainwhere it matters.
Rollback and repair
Published artifacts are immutable evidence. If a release is broken:
- stop or disable the failing publication stage if it is still running;
- record which channels and architectures are affected;
- preserve logs and release metadata;
- fix on
mainwith focused tests; - publish a new patch release;
- document upgrade or mitigation steps for affected users.
For the exact workflow implementation, inspect .github/workflows/release.yml, scripts/release/, apps/cli/README_internal.md, and the desktop signing documentation in the repository. These internal files are more detailed but are not the user-facing product contract.