Skip to content

feat: add nightly release channel alongside stable#154

Merged
davideweaver merged 2 commits into
mainfrom
feat/nightly-releases
Jul 1, 2026
Merged

feat: add nightly release channel alongside stable#154
davideweaver merged 2 commits into
mainfrom
feat/nightly-releases

Conversation

@davideweaver

Copy link
Copy Markdown
Contributor

What

Silo now has two release channels that run completely independently:

Stable

Traditional release-please flow: merged conventional commits feed a "release PR" that bumps versions, updates CHANGELOG.md, tags silo-vX.Y.Z, and triggers builds + publish of installers and the updater manifest.

Nightly

Builds from main automatically every day at 3am UTC via the release-nightly.yml workflow. Nightly is a separate application (Silo Nightly, identifier com.silo.desktop.nightly) that installs side-by-side with stable and uses its own data directories. The version string is auto-generated: 0.x.y-nightly.YYYYMMDD.githash. The nightly GitHub Release is pinned to the nightly tag and overwritten on every build — release-please is not involved.

Changes

File Purpose
.github/workflows/release-nightly.yml Nightly build workflow (Tauri bundler, version injection, asset upload)
apps/desktop/src-tauri/tauri.nightly.conf.json Nightly Tauri config (separate ID, name, version)
apps/desktop/src-tauri/src/commands/app_paths.rs nightly_data_path() CLI command, unified path logic
apps/desktop/src-tauri/src/lib.rs Nightly-specific app ID and data dir override
CONTRIBUTING.md Updated release docs with both channels
apps/docs/roadmap.md Nightly channel as stable
apps/docs/.vitepress/config.ts Sidebar link to release channels guide
apps/docs/guide/release-channels.md User-facing guide for both channels
docs/decisions/0024-release-channels.md ADR documenting the dual-channel design
packages/extension-host/src/services/user-config.ts Expose releaseChannel on the user config surface
packages/extension-host/src/services/user-config.test.ts Test for the new config property

Nightly specifics

  • Separate identitycom.silo.desktop.nightly installs alongside stable without conflict
  • Separate data dirs — Nightly gets its own silo-nightly application/data directories (handled via nightly_data_path() CLI command)
  • Manual trigger — can be run on-demand via Actions → release-nightly → Run workflow
  • No release-please — nightly versioning and releases are entirely separate from the stable flow

- Add nightly builds from main via GitHub Actions (daily at 3am UTC)
- Nightly runs as a separate app (com.silo.desktop.nightly), side-by-side with stable
- Auto-generated version: 0.x.y-nightly.YYYYMMDD.githash
- Configurable via tauri.nightly.conf.json and release-nightly.yml workflow
- Document release channels in docs/guide and roadmap
- Add ADR 0024 for release channels decision
- Update CONTRIBUTING.md with release channel info
- Add nightly_data_path() CLI command for nightly-specific data dirs
- Expand user config tests for the new channel surface
- Format markdown tables to match Prettier's printWidth 80 rules
- Restore .githooks/ pre-commit hook (deleted in PR #145) which auto-formats
  staged files with Prettier via lint-staged — this is the root cause of the
  recurring CI format failures
- Also restore commit-msg hook for Conventional Commit enforcement
@davideweaver davideweaver merged commit 7f7adfe into main Jul 1, 2026
3 checks passed
@davideweaver davideweaver deleted the feat/nightly-releases branch July 1, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant