Skip to content

Commit 68e38ae

Browse files
committed
ci: add dev prerelease release line
Publish prereleases from the existing dev branch while keeping main on latest. Document the dev channel install path and the merge-to-promote workflow so future changes use the branch correctly.
1 parent 9e6c6cd commit 68e38ae

4 files changed

Lines changed: 26 additions & 6 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CI
22

33
on:
44
push:
5-
branches: [main]
5+
branches: [main, dev]
66
pull_request:
7-
branches: [main]
7+
branches: [main, dev]
88

99
jobs:
1010
check:
@@ -27,7 +27,7 @@ jobs:
2727
- run: pnpm exec tsc --noEmit
2828

2929
release:
30-
if: github.ref == 'refs/heads/main'
30+
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
3131
needs: check
3232
runs-on: ubuntu-latest
3333
permissions:

‎.releaserc.json‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
{
2-
"branches": ["main"],
2+
"branches": [
3+
"main",
4+
{
5+
"name": "dev",
6+
"channel": "dev",
7+
"prerelease": "dev"
8+
}
9+
],
310
"plugins": [
411
"@semantic-release/commit-analyzer",
512
"@semantic-release/release-notes-generator",

‎AGENTS.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,12 @@ Commits must follow [Conventional Commits](https://www.conventionalcommits.org/)
106106
- Transpiles to JS via tsdown: `bin` → `dist/cli.mjs`, `exports` → `dist/*.mjs` + `dist/*.d.mts`
107107
- `files` array controls what's published: `dist/`, `styles/`, `src/pwa/icons/`, `README.md`, `CHANGELOG.md`, `LICENSE`
108108
- CI: `.github/workflows/ci.yml` — pnpm test + biome check
109-
- Release: `release` job in `.github/workflows/ci.yml` — semantic-release on push to main, gated on `check` job
109+
- Release: `release` job in `.github/workflows/ci.yml` — semantic-release on push to `main` and `dev`, gated on `check` job
110110
- Versioning, changelog, npm publish, and GitHub Release are all automated
111111
- `npx semantic-release --dry-run` for local verification
112+
- Stable channel: `main` → npm `latest`
113+
- Prerelease channel: `dev` → npm `dev` + GitHub prereleases
114+
- Promote experimental releases by merging `dev` into `main`
112115
- Release triggers: `feat:` → minor, `fix:` → patch, `BREAKING CHANGE` → major
113116
- No release: `chore:`, `docs:`, `refactor:`, `test:`, `ci:`
114117
- See **Local Development** above for running from source

‎README.md‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ It's a terminal on a 6-inch screen. It won't win design awards. But you can do *
1818
/bin/bash -c "$(curl -fsSL http://remobi.app/install.sh)"
1919
```
2020

21-
To upgrade: `npm install -g remobi@latest`
21+
To upgrade stable: `npm install -g remobi@latest`
22+
23+
To try the experimental channel: `npm install -g remobi@dev`
2224

2325
Your coding agent handles the rest. It installs remobi, inspects your tmux config, generates a config, and suggests tweaks to make your tmux more mobile-friendly — one conversation. Works with Claude Code and Codex.
2426

@@ -54,6 +56,14 @@ For local development, see the [Development](#development) section below.
5456

5557
Open `http://localhost:7681` on the same machine to verify it works. For phone access, put a trusted proxy/tunnel in front of it, for example [Tailscale Serve](docs/guides/tailscale-serve.md).
5658

59+
## Release channels
60+
61+
- `main` publishes stable releases to npm `latest`
62+
- `dev` publishes prereleases to npm `dev`
63+
- merge `dev` into `main` to promote an experimental line to stable
64+
65+
If an experimental change is breaking for consumers, mark it with `feat!:` or `BREAKING CHANGE:` so semantic-release computes the right next version on both channels.
66+
5767
## Set up with AI
5868

5969
Install the remobi skill:

0 commit comments

Comments
 (0)