Skip to content

Capawesome CLI 4.0.0 Release

We are excited to announce version 4.0.0 of the Capawesome CLI! This major release brings a host of new features and improvements to enhance your development experience, including new commands for managing live updates, channel control, and web build support. This release also includes some breaking changes that you should be aware of before upgrading.

Breaking Changes

Before upgrading, please review the following breaking changes:

Minimum Node.js Version

The minimum required Node.js version has been updated to Node.js 20. This ensures better performance, security, and access to the latest JavaScript features. Please update your Node.js installation before upgrading to CLI 4.0.0.

Renamed Commands

Several commands have been renamed to better reflect their purpose and align with the new build and deployment system:

Old Command New Command
apps:bundles:create apps:liveupdates:upload or apps:liveupdates:register
manifests:generate apps:liveupdates:generatemanifest

The apps:bundles:create command has been split into two separate commands:

This separation provides clearer intent and better flexibility for different deployment workflows.

New Features

Live Update Rollback

The new apps:liveupdates:rollback command allows you to quickly roll back the active build in a channel to a previous deployment:

npx @capawesome/cli apps:liveupdates:rollback \
  --app-id your-app-id \
  --channel production \
  --steps 1

The --steps option specifies how many deployments to go back (1-5), making it easy to revert to a known working state when issues arise. See our Rollbacks guide for more details.

Live Update Rollout

Control the rollout percentage of your live updates with the new apps:liveupdates:rollout command:

npx @capawesome/cli apps:liveupdates:rollout \
  --app-id your-app-id \
  --channel production \
  --percentage 25

This enables gradual rollouts, allowing you to deploy updates to a subset of users before rolling out to everyone. For more information on implementing gradual rollouts, see our Rollouts guide.

Channel Pausing and Resuming

Two new commands give you more control over your deployment channels:

# Pause a channel to investigate issues
npx @capawesome/cli apps:channels:pause \
  --app-id your-app-id \
  --channel production

# Resume a paused channel after resolving issues
npx @capawesome/cli apps:channels:resume \
  --app-id your-app-id \
  --channel production

Pausing channels is useful during maintenance windows or when you need to temporarily halt updates without removing the channel entirely.

Protected Channels

The apps:channels:create and apps:channels:update commands now support an optional --protected flag:

npx @capawesome/cli apps:channels:create \
  --app-id your-app-id \
  --name production \
  --protected

Protected channels provide an additional layer of security by preventing accidental modifications or deletions.

Web Build Support

The apps:builds:create command now supports web builds with the --platform web option:

npx @capawesome/cli apps:builds:create \
  --app-id your-app-id \
  --platform web \
  --git-ref main

This allows you to create web builds directly from the CLI, which can then be deployed as live updates. For more information, see our blog post on Capawesome Cloud Web Builds.

Skip Confirmation Prompts

A new --yes (or -y) flag has been added to commands that require confirmation prompts:

npx @capawesome/cli apps:delete --app-id your-app-id --yes

This is particularly useful for CI/CD pipelines and automated scripts where interactive prompts are not possible.

Upgrading

To upgrade to version 4.0.0, run:

npm install -g @capawesome/cli@latest

Make sure you have Node.js 20 or later installed before upgrading.

Migration Guide

If you're upgrading from a previous version, here's what you need to update:

  1. Update Node.js: Ensure you're running Node.js 20 or later
  2. Update command names: Replace apps:bundles:create with apps:liveupdates:upload or apps:liveupdates:register
  3. Update manifest command: Replace manifests:generate with apps:liveupdates:generatemanifest

Feedback

We hope these new features and improvements make your development workflow even more efficient. If you have any questions or feedback, please create a discussion in our GitHub repository. Feel free to subscribe to our newsletter to stay updated on the latest releases and features!