Boxen

Boxenをアップデートする方法

More than 5 years have passed since last update.

Boxenも定期的にアップデートしていかなければいけません。で、Boxenをアップデートしようと思って、Puppetfileで指定されているBoxenのバージョンだけを変更して script/boxen を実行してもおそらくエラーが発生します。

boxen/our-boxenをgit-pullでアップデートしてから script/boxen するのが正解。


puppet-boxenとour-boxenのおさらい

簡単におさらいしておくと

repo
役割

boxen/puppet-boxen
boxenのコアモジュール

boxen/our-boxen
boxenの容れ物

Puppetfileで指定しているのはコアモジュールの方のバージョンです。

容れ物のバージョン毎に対応しているコアのバージョンが微妙に異なっているっぽく、コアだけをバージョンアップしてもダメな訳です。コア自体はBoxenでバージョン管理されていますが、容れ物の方はgitで管理されています。

で、our-boxenのmasterは基本的に正しい組み合わせになっているので、our-boxenをアップデートして、そのときついてくるpuppet-boxenを使うと失敗が少ないです。


our-boxenをアップデートする

ローカルにあるBoxenのリポジトリは本来our-boxenをgit-cloneして、masterをプライベートなリポジトリに向けていると思います。なので、まず最初に本家のboxen/our-boxenをremoteに設定してやりましょう。


本家のリポジトリをupstreamという名前で登録

% git remote add upstream git://github.com/boxen/our-boxen.git

# 設定できてるか確認
% git remote -v | grep upstream
upstream git://github.com/boxen/our-boxen.git (fetch)
upstream git://github.com/boxen/our-boxen.git (push)

そしたらupstreamからpullします。


本家の変更を取り込む

% git pull upstream master


コンフリクトが発生したらよしなに解消してください。これでour-boxenのアップデートが完了したので、必要に応じて設定を更新してから script/boxen を実行します。


Boxenを実行する

% ./script/boxen


成功したら忘れずにコミットして、originにgit-pushしておきましょう。


originへ変更をpushする

% git add -A

% git commit -m 'Update our-boxen'
% git push origin master