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

ChannelAudienceUse for
stableEveryoneProduction releases
betaOpt‑in testersRelease candidates
canarySmall % of usersEarly 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