Chrome Extension Version Management — Publishing Guide

2 min read

Version Management Strategies

manifest.json Version Fields

Semantic Versioning for Extensions

Automated Version Bumping

# npm version bumps package.json AND can run scripts
npm version patch  # 1.0.0 -> 1.0.1
npm version minor  # 1.0.1 -> 1.1.0
npm version major  # 1.1.0 -> 2.0.0

CI/CD Version Management

# GitHub Actions example
- name: Bump version
  run: |
    VERSION=$(jq -r '.version' manifest.json)
    PATCH=$(echo $VERSION | cut -d. -f3)
    NEW_PATCH=$((PATCH + 1))
    NEW_VERSION=$(echo $VERSION | sed "s/\.[0-9]*$/.$NEW_PATCH/")
    jq ".version = \"$NEW_VERSION\"" manifest.json > tmp && mv tmp manifest.json

Git Tags for Releases

git tag -a v1.2.3 -m "Release 1.2.3: bug fixes"
git push origin v1.2.3

Changelog Generation

Handling Hotfixes

Rollback Strategies

Staged Rollouts

Beta Testing Channel

Version in Extension UI

const manifest = chrome.runtime.getManifest();
document.getElementById('version').textContent = `v${manifest.version}`;

Common Mistakes

Part of the Chrome Extension Guide by theluckystrike. Built at zovo.one.