Skip to content
gondoh edited this page Aug 30, 2019 · 45 revisions

対象Milestoneの全てのIssueがClosedとなると、ベータテストを実施します。
ベータテスト期間を経てリリースマネージャーがリリース予定日にリリース作業を行います。
 

1. ベータテスト

リリース前には、多くの方に動作確認を実施してもらい、フィードバックを行うベータテストを実施します。
リリース内容の規模により、プライベートベータテスト、または、パブリックベータテストを実施します。

  • プライベートベータテスト:コアメンバーにベータ版のリリースを告知し、その中でベータテストを行う方法です。
  • パブリックベータテスト:一般の方でテスターを募り、ベータテストを行う方法です。

ベータテストの詳細については、baserCMSベータテストの参加方法と報告方法 を参考にしてください。
 

2. リリース準備

VERSION.txt の更新

Git のログより、/lib/Baser/VERSION.txt にバージョンアップのログをまとめ、1行目のバージョン番号をリリースする番号に書き換えます

ここからの作業は後述するbasergitlog.shを利用すると良いでしょう。

マージ、.gitignoreの変更、テストの失敗に対する対応、再調整といったログや、内部的な詳細・変更理由は除外し、
Pull Requestのコミットに付属する「(#{PR番号}) 」の部分はそのログから削除します。
また修正という単語は改善という単語に置き換えるようにします。

VERSION.txt に記載するログは、次の形式でまとめます。

-改修タイプ: [パッケージの省略文字]   改修内容

改修タイプは次の内容となります。

  • 新機能:NEW
  • 仕様変更:CHG
  • 不具合修正:BUG

パッケージの省略文字は次のとおりです。

  • baserCMSコア:BC
  • ブログプラグイン:BG
  • メールプラグイン:ML
  • フィードプラグイン:FD
  • アップローダー:UD
(例)-BUG: [FD]  fixes #7385 RSSフィードの読込時に本文中の<img>タグが読み取れていない 問題を改善

また、アップデート時に自動化できない手動作業が発生する場合は、その内容もログの下にまとめておきます。

《basergitlog.sh を利用する》
ログのとりまとめには、basergitlog.sh を利用する事もできます。
利用するには、basergitlog.sh をコマンドとして実行できるように準備し、ローカルレポジトリのパスに移動した上で次のように実行します。
前バージョンのリリース日は、git log で調べるとよいでしょう。
このコマンドは、Git のログを元に整形されたデータを、同階層の「basergit.log」として出力します。
なお、改修タイプは、「BUG」固定、パッケージの省略文字は「BC」固定となりますので、手動で調整が必要となりますので注意してください。

basergitlog.sh [前バージョンリリース日]

(例)basergitlog.sh 2015/03/01

VERSION.txt をコミットする

VERSION.txt の編集が完了したら、江頭に確認依頼を出します。

確認が通ったら、開発版の最後のコミットとプッシュを実施します。
コメントメッセージには、次のようにしましょう。

basercms-x.x.x リリース
(例)
git add lib/Baser/VERSION.txt
git commit -m "basercms-4.0.7 リリース"
git push origin dev-4

3. baserCMS公式サイトの更新準備

リリースの準備が完了したら、baserCMS公式サイト の情報を最新の状態にする為、下書き状態で書き換えます。

機能一覧ページ更新

新機能の追加が発生した場合は、機能一覧 ページを「下書状態」で更新します。
また、機能内容が大きい場合、別途、Webページを作成し、リンクします。

リリースノートページ追加

VERSION.txt の内容を元に リリースノート ページを、最新のものをコピーして「非公開状態」で作成します。

《basergitloghtml.sh を利用する》
リリースノートページの取りまとめには、basergitloghtml.sh を利用する事もできます。
利用するには、basergitloghtml.sh をコマンドとして実行できるように準備し、basergit.log を引数に指定した上で次のように実行します。
このコマンドは、basergit.log を元に整形されたデータを、同階層の「basergitlog.html」として出力します。

(例)basergitloghtml.sh ./basergit.log

アップデート方法ページ追加

baserCMSのアップデート方法を記載した アップデート方法 ページを、最新のものをコピーして「非公開状態」で作成します。
アップデート時に自動化できない手動作業が発生する場合は、その手順等をまとめておきます。

ダウンロードページの更新

ダウンロード ページと、旧バージョンのダウンロード ページを、本校を下書きにコピーして更新します。

baserCMSニュース、リリースノートカテゴリの記事を作成

baserCMSニュース リリースノート に、過去の「リリースノート」カテゴリの記事をコピーして「非公開状態」で記事を作成します。
コミッター一覧の取得にはbasercommiter.shを利用します。

basercommiter.sh [前バージョンリリース日]

(例)basercommiter.sh 2015/03/01

コマンド
git log --after="2019-07-26" --pretty=format:"%an" |sort| uniq

GitHubユーザーへのリンクはターゲットを_blankに設定します。
投稿日を更新するのを忘れないようにします。

4. マスターブランチへのマージ、タグの作成

開発ブランチの全てのコミットが完了したら、マスターブランチにマージして、タグを作成した上でプッシュします。

(例)
git checkout master
git branch master.bak
git merge dev-4
git tag basercms-4.0.7
git push origin master --tags
git checkout dev-4
git branch -D master.bak

5. リリース作業

ダウンロード用のZIPパッケージを作成し baserCMS公式サイトにアップロードします。

後述するbaserpackage.shを利用すると良いでしょう。

(例)パッケージの作成

# クローン
git clone [email protected]:baserproject/basercms.git

cd basercms

# 余計なファイルを削除
rm .gitignore
rm -rf .git
rm -rf lib/Cake/Test
rm -rf vagrant_cookbooks
rm -rf Vagrantfile.default
rm -rf lib/Baser/Test
rm -rf travis.php.ini
rm -rf docker

cd ../

# 圧縮(zip / tar)
zip -r basercms.zip basercms
mv basercms.zip basercms-3.0.7.zip
tar zcvf basercms.tar.gz basercms
mv basercms.tar.gz basercms-3.0.7.tar.gz

# クローンしたファイルを削除
rm -rf basercms

《baserpackage.sh を利用する》
ダウンロードパッケージの作成には、baserpackage.sh を利用する事もできます。
利用するには、baserpackage.sh をコマンドとして実行できるように準備し、ローカル環境で次のように実行します。
このコマンドは、圧縮された zip 形式と、tar 形式のファイルを、同階層の「basercms-バージョン番号.zip」「basercms-バージョン番号.tar.gz」として出力します。

baserpackage.sh [バージョン番号]

(例)baserpackage.sh 3.0.7

 
出来上がったパッケージを元に旧バージョンダウンロードページの最新版のサイズを更新します。

また、devブランチでVERSION.txtの先頭のバージョン番号をx.x.x-devに変更し、メッセージを以下のように書いてコミットし、プッシュします。

バージョン番号を4.1.5-devに変更

6. baserCMS公式サイトの下書ページ、非公開記事の公開

事前に準備した、下書ページ、非公開記事の公開作業を行います。

公開前に江頭に確認依頼を出し、確認が通ったら公開します。

実質これで、最新バージョンをリリースした事になります。

パッケージのダウンロード、リンクのチェックを行います。

7. スペシャルサンクス更新

baserCMSプロジェクトメンバー名簿より、新しくメンバーとなった方で、スペシャルサンクスへの登録希望の方をピックアップし、baserCMS公式サイトのスペシャルサンクスリストに追加する。

8. 告知

バージョンアップした事を広く認知してもらえるよう、告知を行います。

9. 運営サイトのアップデート

最後に baserCMSプロジェクトで運営しているWebサイトのbaserCMSをアップデートします。
実施する際は事前に計画を立て、告知を行ってから行います。

  • デモサイト のbaserCMSを、libフォルダを更新して最新バージョンにアップデート
    メンテナンスモードに入るため/updateを実行
  • baserCMS公式サイト のbaserCMSを最新バージョンにアップデート

↑↑↑ Wikiに登録されているページは古いドキュメントです。 新しいドキュメントは、baserCMS公式ガイド をご覧ください。

Clone this wiki locally