Skip to content

Releases

A release is a snapshot of one environment: its counters, module installs and project-scoped resource rows. Module installs and resource rows are live as soon as you save them; counters only take effect in the runtime after a release. See Releases & Publishing for the full model.

In the dashboard at https://app.rudder.build/, select staging in the environment switcher, open Releases and click Publish. Add an optional description and notes and confirm.

The release moves through statuses:

  • building — the snapshot is being assembled and stored. The dashboard blocks another publish while one is building.
  • completed — the snapshot is stored and the environment’s counters are reloaded from it.
  • failed — nothing changed; the previous snapshot stays in use.

Each release gets a sequential version per project and environment (v1, v2, …). Every completed release keeps its snapshot, which is what makes rollback possible.

On the Releases page, click Promote and confirm. Promotion copies counters, module installs and project-scoped resource rows from staging to prod:

  • New entries are created in prod; existing ones are updated in place. Resource rows keep the same id in both environments.
  • Entries in prod that are missing from staging are deleted.
  • A new prod release is built in the background. Watch the prod release list for it to reach completed.

Player data in prod, including player-scoped resource rows, is not touched. Promotion runs in one transaction; if it fails, prod is unchanged.

Open Releases, find the last good version and click Rollback:

  • The target must be completed and still have its snapshot.
  • The environment’s counters, module installs and project-scoped rows are replaced with the snapshot contents.
  • A new release row is created for the rollback, so it can be rolled back again.

Rollback does not revert player data. Rewards granted in the meantime stay granted.

  • All SDKs keep player, catalog (currencies) and storage in memory and poll revisions every 30 seconds (±20% jitter); the C# SDK polls when you run client.Sync, and the Unity component runs it for you. A completed release bumps the catalog revision, so new currencies reach connected clients within about half a minute. Call reload() / ReloadAsync() to refetch immediately.
  • Module calls (client.modules.call, client.Modules.CallAsync and generated clients) are never cached, so rows you change are visible to the module on the next call.
  • Only completed releases change the runtime. A building or failed release leaves the current counters in place.
  • One build at a time per environment in the dashboard.
  • prod is read-only in the dashboard. Change content in staging and promote.
  • Scheduled module functions run in both environments against each environment’s own installs and rows.