@@ -187,33 +187,60 @@ plugin at runtime (`plugin: external-chat loaded v<version>`).
187187
188188## Building & packaging with the Makefile
189189
190- Run all ` make` commands from the ** repository root** . The pipeline bumps the
191- version, builds the plugin, copies it into the branding bundle, and produces a
192- versioned zip.
190+ Run all ` make` commands from the ** repository root** .
193191
194192` ` ` bash
195- make # same as ` make package ` — runs the full pipeline
193+ make # full release: bump the minor version, build, then package
194+ make package # build & package using the CURRENT version (no bump)
196195` ` `
197196
198197### Targets
199198
200- | Target | What it does |
201- | -- - | -- - |
202- | ` make bump` | Bumps the ** minor** version in ` external-chat/package.json` (` npm version minor --no-git-tag-version` — no git commit or tag). |
203- | ` make build` | Runs ` bump` , then ` npm run build` so the new version is embedded in the bundle. |
204- | ` make deploy` | Runs ` build` , then copies ` external-chat/dist/` into ` webapp3/branding/plugins/external-chat/` . |
205- | ` make package` | Runs ` deploy` , then zips the ` webapp3/` folder into ` external-chat-v<version>.zip` at the repo root. |
206- | ` make all` | Alias for ` make package` (the default target). |
207- | ` make clean` | Removes ` external-chat/dist/` and the deployed plugin folder. |
208-
209- Dependency chain: ` package → deploy → build → bump` .
199+ | Target | What it does | Bumps version? |
200+ | -- - | -- - | -- - |
201+ | ` make release` | Bumps the version, then runs ` package` . | ✅ |
202+ | ` make all` | Alias for ` make release` (the default target). | ✅ |
203+ | ` make bump` | Bumps the ** minor** version in ` external-chat/package.json` (` npm version minor --no-git-tag-version` — no git commit or tag). | ✅ |
204+ | ` make build` | Runs ` npm run build` . | — |
205+ | ` make deploy` | Runs ` build` , then copies ` external-chat/dist/` into ` webapp3/branding/plugins/external-chat/` . | — |
206+ | ` make package` | Runs ` deploy` , then zips the ` webapp3/` folder into ` external-chat-v<version>.zip` at the repo root, using the current ` package.json` version. | — |
207+ | ` make clean` | Removes ` external-chat/dist/` and the deployed plugin folder. | — |
208+
209+ Dependency chains: ` release → bump → package → deploy → build` . Only ` release` ,
210+ ` all` , and ` bump` change the version — ` build` / ` deploy` / ` package` use the current
211+ one, so ** CI and one- off packaging never bump** (CI runs ` make package` ).
210212
211213### Output
212214
213215` make` produces ` external-chat-v<version>.zip` in the repo root, where ` <version>`
214- is the freshly bumped value from ` package.json` (e .g . ` external-chat-v1.4.0.zip` ).
215- The zip contains the full ` webapp3/` branding bundle, ready to upload.
216+ is the value in ` package.json` (e .g . ` external-chat-v1.4.0.zip` ) — freshly bumped
217+ by ` make` / ` make release` , or unchanged by ` make package` . The zip contains the
218+ full ` webapp3/` branding bundle, ready to upload.
219+
220+ ## Continuous integration
221+
222+ ` .github/workflows/ci.yml` runs on pushes to ` main` , on pull requests, and on
223+ manual dispatch . It installs dependencies (` npm ci` ), then runs ** lint** ,
224+ ** typecheck** (` tsc --noEmit` ), and ** ` make package` ** (build + zip, ** no version
225+ bump** ). The resulting ` external-chat-v<version>.zip` is uploaded as a downloadable
226+ workflow artifact named ` external-chat-v<version>` .
227+
228+ ## Releasing
229+
230+ ` .github/workflows/release.yml` is a ** manually triggered** workflow
231+ (Actions → * Release* → * Run workflow* ). It reads the current version from
232+ ` external-chat/package.json` , builds the zip (` make package` , no bump), then
233+ creates a ` v<version>` git tag and a GitHub release with
234+ ` external-chat-v<version>.zip` attached as an asset . Release notes are
235+ auto- generated from the changes since the previous release.
236+
237+ Typical flow:
238+
239+ ` ` ` bash
240+ make bump # 1. bump the minor version in package.json
241+ git commit -am "release" # 2. commit the bump (and push)
242+ # 3. run the "Release" workflow from the Actions tab
243+ ` ` `
216244
217- > ⚠️ ** Every ` make` (or ` make build` / ` deploy` / ` package` ) bumps the minor version** ,
218- > because ` build` depends on ` bump` . To build * without* bumping, run
219- > ` cd external-chat && npm run build` directly and copy ` dist/` yourself.
245+ If a release for the current version already exists, the workflow fails with a
246+ reminder to bump first (it never overwrites an existing tag/ release).
0 commit comments