@otalan/cli 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to `@otalan/cli` will be documented in this file.
4
4
 
5
+ ## 1.0.7 - 2026-05-06
6
+
7
+ ### Changed
8
+
9
+ - Clean public README examples to avoid project-specific app IDs, generated-looking slugs, and local development API URLs.
10
+ - Keep user-facing login guidance pointed at the public Otalan API keys page.
11
+
12
+ ## 1.0.6 - 2026-05-05
13
+
14
+ ### Changed
15
+
16
+ - Improve README CI setup examples, generated output guidance, publish rollout examples, and maintainer release checklist.
17
+ - Add release metadata test coverage to keep package version and changelog entries in sync.
18
+
19
+ ## 1.0.5 - 2026-05-04
20
+
21
+ ### Changed
22
+
23
+ - Update npm package homepage metadata.
24
+
5
25
  ## 1.0.4 - 2026-05-04
6
26
 
7
27
  ### Added
package/README.md CHANGED
@@ -116,6 +116,7 @@ Optional:
116
116
 
117
117
  ```bash
118
118
  bun install --frozen-lockfile
119
+ bun add -g @otalan/cli
119
120
  bun run build
120
121
  otalan login --api-key "$OTALAN_API_KEY" --api-url "${OTALAN_API_URL:-https://api.otalan.com}"
121
122
  otalan init --app-id "$OTALAN_APP_ID"
@@ -129,6 +130,7 @@ Use your normal app build command before `otalan bundle`. The CLI then packages
129
130
 
130
131
  ```bash
131
132
  bun install --frozen-lockfile
133
+ bun add -g @otalan/cli
132
134
  otalan login --api-key "$OTALAN_API_KEY" --api-url "${OTALAN_API_URL:-https://api.otalan.com}"
133
135
  otalan init --app-id "$OTALAN_APP_ID"
134
136
  otalan bundle --target expo --platform ios --bundle-from-package
@@ -204,8 +206,8 @@ Example project config:
204
206
 
205
207
  ```json
206
208
  {
207
- "organizationSlug": "test-org-407b69f7",
208
- "projectSlug": "test-project-ca3bcb8a",
209
+ "organizationSlug": "example-organization",
210
+ "projectSlug": "example-project",
209
211
  "appId": "com.example.app"
210
212
  }
211
213
  ```
@@ -225,6 +227,7 @@ Prints the installed CLI version.
225
227
  ```bash
226
228
  otalan version
227
229
  otalan --version
230
+ otalan -v
228
231
  ```
229
232
 
230
233
  ### `otalan login`
@@ -235,12 +238,6 @@ Saves the CI key and API base URL locally.
235
238
  otalan login --api-key otalan_ci_xxx --api-url https://api.otalan.com
236
239
  ```
237
240
 
238
- Local development:
239
-
240
- ```bash
241
- otalan login --api-key otalan_ci_xxx --api-url http://localhost:8787
242
- ```
243
-
244
241
  ### `otalan doctor`
245
242
 
246
243
  Checks API connectivity and prints the organization/project context resolved from the configured CI key.
@@ -265,13 +262,15 @@ If you already ran `otalan login`, the CLI resolves `organizationSlug` and `proj
265
262
 
266
263
  ```bash
267
264
  otalan init \
268
- --app-id app.cryptosan.app
265
+ --app-id com.example.app
269
266
  ```
270
267
 
271
268
  ### `otalan bundle`
272
269
 
273
270
  Builds `.otalan/bundle/bundle.zip` and `.otalan/bundle/manifest.json`.
274
271
 
272
+ `.otalan/` is generated output. Add it to your app repo's `.gitignore`; `otalan publish` reads the bundle files from the current CI workspace after `otalan bundle` runs.
273
+
275
274
  Capacitor:
276
275
 
277
276
  ```bash
@@ -324,6 +323,7 @@ If you want to take the bundle ID from `package.json` instead:
324
323
 
325
324
  ```bash
326
325
  otalan bundle --target capacitor --platform ios --bundle-from-package
326
+ otalan bundle --target expo --platform ios --bundle-from-package
327
327
  ```
328
328
 
329
329
  ### `otalan publish`
@@ -335,8 +335,13 @@ Publishes the current bundle output with rollout metadata.
335
335
  Current behavior:
336
336
 
337
337
  - `channel` is chosen at publish time
338
+ - publishes are mandatory by default
339
+ - default rollout is `100`
338
340
  - `--platform` and `--native-version` can override the manifest, but only if they match it
339
341
  - `--output-dir` lets you publish a bundle from a non-default folder
342
+ - `--rollout-percent` accepts an integer from `0` to `100`
343
+ - `--optional` marks the update as non-mandatory
344
+ - `--release-notes` attaches release notes to the published bundle
340
345
  - Expo publish forwards the stored Expo app config when present
341
346
  - Otalan validates the release ZIP before the publish completes
342
347
 
@@ -346,6 +351,18 @@ Default flow:
346
351
  otalan publish --channel production
347
352
  ```
348
353
 
354
+ Staged rollout:
355
+
356
+ ```bash
357
+ otalan publish --channel production --rollout-percent 25 --release-notes "Fix startup crash"
358
+ ```
359
+
360
+ Optional update:
361
+
362
+ ```bash
363
+ otalan publish --channel production --optional
364
+ ```
365
+
349
366
  This uses `POST /v1/releases/create` and waits for `GET /v1/releases/ingests/:id` to reach `ready` before returning success.
350
367
 
351
368
  If validation fails, `otalan publish` exits non-zero and prints the ingest failure reason when the API provides one. This makes the command safe to use directly in CI/CD pipelines.
@@ -427,6 +444,10 @@ otalan status --platform ios --channel production
427
444
 
428
445
  Before publishing a public package release:
429
446
 
447
+ - update `package.json` to the new package version
448
+ - add the matching `CHANGELOG.md` entry
449
+ - run the release checks and inspect the package dry run
450
+
430
451
  ```bash
431
452
  bun install --frozen-lockfile
432
453
  bun test
@@ -443,6 +464,5 @@ bun pm pack --dry-run
443
464
  - This is a Bun-based CLI published on npm.
444
465
  - Expo / React Native bundling uses `bunx expo ...`.
445
466
  - Default API URL is `https://api.otalan.com`.
446
- - Local development API URL is `http://localhost:8787`.
447
467
  - Publishing, rollback, status, and `bundles` expect a CI key and an active app.
448
468
  - Run `bun run build` after changing CLI source if you want `dist/bin.js` updated locally.