Skip to content
Gemini 3 Flash is now available. Speed no longer has to mean compromising quality. Read the announcement

Release confidence strategy

This document outlines the strategy for gaining confidence in every release of the Gemini CLI. It serves as a checklist and quality gate for release manager to ensure we are shipping a high-quality product.

To answer the question, “Is this release truly ready for our users?” with a high degree of confidence, based on a holistic evaluation of automated signals, manual verification, and data.

These are the baseline requirements. If any of these fail, the release is a no-go.

All workflows in .github/workflows/ci.yml must pass on the main branch (for nightly) or the release branch (for preview/stable).

  • Platforms: Tests must pass on Linux and macOS.
    • Note: Windows tests currently run with continue-on-error: true. While a failure here doesn’t block the release technically, it should be investigated.
  • Checks:
    • Linting: No linting errors (ESLint, Prettier, etc.).
    • Typechecking: No TypeScript errors.
    • Unit Tests: All unit tests in packages/core and packages/cli must pass.
    • Build: The project must build and bundle successfully.

All workflows in .github/workflows/chained_e2e.yml must pass.

  • Platforms: Linux, macOS and Windows.
  • Sandboxing: Tests must pass with both sandbox:none and sandbox:docker on Linux.

After a release is published to npm, the smoke-test.yml workflow runs. This must pass to confirm the package is installable and the binary is executable.

  • Command: npx -y @google/gemini-cli@<tag> --version must return the correct version without error.
  • Platform: Currently runs on ubuntu-latest.

Level 2: Manual verification and dogfooding

Section titled “Level 2: Manual verification and dogfooding”

Automated tests cannot catch everything, especially UX issues.

The weekly release cadence promotes code from main -> nightly -> preview -> stable.

  • Requirement: The preview release must be used by maintainers for at least one week before being promoted to stable.
  • Action: Maintainers should install the preview version locally:
    Terminal window
    npm install -g @google/gemini-cli@preview
  • Goal: To catch regressions and UX issues in day-to-day usage before they reach the broad user base.

Before promoting a preview release to stable, a release manager must manually run through this checklist.

  • Setup:

    • Uninstall any existing global version: npm uninstall -g @google/gemini-cli
    • Clear npx cache (optional but recommended): npm cache clean --force
    • Install the preview version: npm install -g @google/gemini-cli@preview
    • Verify version: gemini --version
  • Authentication:

    • In interactive mode run /auth and verify all login flows work:
      • Login With Google
      • API Key
      • Vertex AI
  • Basic prompting:

    • Run gemini "Tell me a joke" and verify a sensible response.
    • Run in interactive mode: gemini. Ask a follow-up question to test context.
  • Piped input:

    • Run echo "Summarize this" | gemini and verify it processes stdin.
  • Context management:

    • In interactive mode, use @file to add a local file to context. Ask a question about it.
  • Settings:

    • In interactive mode run /settings and make modifications
    • Validate that setting is changed
  • Function calling:

    • In interactive mode, ask gemini to “create a file named hello.md with the content ‘hello world’” and verify the file is created correctly.

If any of these CUJs fail, the release is a no-go until a patch is applied to the preview channel.

3. Pre-Launch bug bash (tier 1 and 2 launches)

Section titled “3. Pre-Launch bug bash (tier 1 and 2 launches)”

For high-impact releases, an organized bug bash is required to ensure a higher level of quality and to catch issues across a wider range of environments and use cases.

Definition of tiers:

  • Tier 1: Industry-Moving News 🚀
  • Tier 2: Important News for Our Users 📣
  • Tier 3: Relevant, but Not Life-Changing 💡
  • Tier 4: Bug Fixes ⚒️

Requirement:

A bug bash must be scheduled at least 72 hours in advance of any Tier 1 or Tier 2 launch.

Rule of thumb:

A bug bash should be considered for any release that involves:

  • A blog post
  • Coordinated social media announcements
  • Media relations or press outreach
  • A “Turbo” launch event
  • Go to go/gemini-cli-dash.
  • Navigate to the “Tool Call” tab.
  • Validate that there are no spikes in errors for the release you would like to promote.
  • Navigate to go/gemini-cli-offline-evals-dash.
  • Make sure that the release you want to promote’s recurring run is within average eval runs.

Before triggering the Release: Promote workflow to move preview to stable:

  1. Level 1: CI and E2E workflows are green for the commit corresponding to the current preview tag.
  2. Level 2: The preview version has been out for one week, and the CUJ checklist has been completed successfully by a release manager. No blocking issues have been reported.
  3. Level 3: Dashboard Health and Model Evaluation checks have been completed and show no regressions.

If all checks pass, proceed with the promotion.