Publishing
Releases & Versioning
Channels, staged rollouts and version management
A listing is the product; a release is a specific version of it. Releases let you ship updates safely with channels and staged rollouts.
Versioning
Use semantic versioning: MAJOR.MINOR.PATCH.
- •PATCH — bug fixes, no behavior change (
1.4.2 → 1.4.3) - •MINOR — backward‑compatible features (
1.4.3 → 1.5.0) - •MAJOR — breaking changes (
1.5.0 → 2.0.0)
Version numbers must strictly increase per channel.
Channels
| Channel | Audience | Use for |
|---|---|---|
stable | Everyone | Production releases |
beta | Opt‑in testers | Release candidates |
canary | Small % of users | Early validation |
Staged rollout
Ship to a fraction of users, watch crash and review metrics, then widen:
curl -X POST https://api.theaimart.co/api/v1/releases \
-H "Authorization: Bearer $THEAIMART_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"listing_id": "app_123",
"version": "1.5.0",
"channel": "stable",
"rollout_percent": 10,
"release_notes": "New dark mode + 30% faster startup."
}'
Increase rollout_percent (e.g. 10 → 50 → 100) as confidence grows, or halt to freeze distribution and rollback to promote the previous release.
curl -X POST https://api.theaimart.co/api/v1/releases/$RELEASE_ID/rollback \
-H "Authorization: Bearer $THEAIMART_API_KEY"
Rollback doesn't delete a release — it re‑promotes the last known‑good version so users stop receiving the bad one. The failed release stays visible in history for debugging.
Release notes matter
Buyers read them, and they feed discovery. Lead with user‑visible changes, group by Added / Fixed / Changed, and keep it human.
Events
Subscribe to release lifecycle webhooks:
- •
release.created - •
release.rollout.updated - •
release.rolled_back
Next
- •Automation — publish releases from CI
- •Analytics — watch a rollout's health