7.3 更新・バージョン管理
Updates & Version Management
リンク
バージョン番号
Semantic Versioning (SemVer)を推奨。
// manifest.json
{
"version": "1.2.3"
// MAJOR.MINOR.PATCH
}
| 番号 | 変更内容 |
|---|---|
| MAJOR | 互換性のない変更 |
| MINOR | 後方互換性のある機能追加 |
| PATCH | バグ修正 |
更新の流れ
- manifest.jsonのversionを更新
- 新しいZIPファイルを作成
- Developer Dashboardでアップロード
- 審査を経て公開
自動更新Chromeは数時間ごとに更新をチェックし、自動でインストール。
データ移行
chrome.runtime.onInstalled.addListener((details) => {
if (details.reason === 'update') {
const previousVersion = details.previousVersion;
// バージョンごとの移行処理
if (previousVersion < '2.0.0') {
migrateToV2();
}
}
});
async function migrateToV2() {
const old = await chrome.storage.local.get('oldKey');
if (old.oldKey) {
await chrome.storage.local.set({ newKey: old.oldKey });
await chrome.storage.local.remove('oldKey');
}
}
変更履歴の管理
- CHANGELOG.mdをリポジトリに含める
- ストア説明文に主要な変更を記載
- 重大な変更はユーザーに通知
# CHANGELOG
## [2.1.0] - 2025-01-15
### Added
- Side Panel機能を追加
### Fixed
- 特定サイトでの動作不具合を修正
## [2.0.0] - 2025-01-01
### Changed
- データ保存形式を変更(移行処理あり)
ロールバック
Chromeストアにはロールバック機能がない。問題発生時は修正版を新バージョンとして公開する。
- Gitでタグ管理を徹底
- リリース前に十分なテスト
- 段階的ロールアウトを活用
参考文献
[1] Chrome Extensions - Update your extension
[1] Chrome Extensions - Update your extension