<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>13.2.6. リリース手順 — groonga v3.0.5ドキュメント</title> <link rel="stylesheet" href="../../_static/groonga.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../', VERSION: '3.0.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../../_static/jquery.js"></script> <script type="text/javascript" src="../../_static/underscore.js"></script> <script type="text/javascript" src="../../_static/doctools.js"></script> <script type="text/javascript" src="../../_static/translations.js"></script> <link rel="shortcut icon" href="../../_static/favicon.ico"/> <link rel="top" title="groonga v3.0.5ドキュメント" href="../../index.html" /> <link rel="up" title="13.2. groonga開発者向け情報" href="../development.html" /> <link rel="next" title="13.2.7. テスト方法" href="test.html" /> <link rel="prev" title="13.2.4. クエリの実現" href="query.html" /> </head> <body> <div class="header"> <h1 class="title"> <a id="top-link" href="../../index.html"> <span class="project">groonga</span> <span class="separator">-</span> <span class="description">オープンソースのカラムストア機能付き全文検索エンジン</span> </a> </h1> <div class="other-language-links"> <ul> <li><a href="../../../../en/html/contribution/development/release.html"><img src="../../_static/us.png" alt="English">English page</a></li> </ul> </div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="総合索引" accesskey="I">索引</a></li> <li class="right" > <a href="test.html" title="13.2.7. テスト方法" accesskey="N">次へ</a> |</li> <li class="right" > <a href="query.html" title="13.2.4. クエリの実現" accesskey="P">前へ</a> |</li> <li><a href="../../index.html">groonga v3.0.5ドキュメント</a> »</li> <li><a href="../../contribution.html" >13. groongaへのコントリビュート方法</a> »</li> <li><a href="../development.html" accesskey="U">13.2. groonga開発者向け情報</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="id1"> <h1>13.2.6. リリース手順<a class="headerlink" href="#id1" title="このヘッドラインへのパーマリンク">¶</a></h1> <div class="section" id="id2"> <h2>13.2.6.1. 前提条件<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリース手順の前提条件は以下の通りです。</p> <ul class="simple"> <li>ビルド環境は Ubuntu 12.04 LTS(Precise Pangolin)</li> <li>コマンドラインの実行例はzsh</li> </ul> <p>作業ディレクトリ例は以下を使用します。</p> <ul class="simple"> <li>GROONGA_DIR=$HOME/work/groonga</li> <li>GROONGA_CLONE_DIR=$HOME/work/groonga/groonga.clean</li> <li>GROONGA_GITHUB_COM_PATH=$HOME/work/groonga/groonga.github.com</li> <li>CUTTER_DIR=$HOME/work/cutter</li> <li>CUTTER_SOURCE_PATH=$HOME/work/cutter/cutter</li> </ul> </div> <div class="section" id="id3"> <h2>13.2.6.2. ビルド環境の準備<a class="headerlink" href="#id3" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>以下にgroongaのリリース作業を行うために事前にインストール しておくべきパッケージを示します。</p> <p>なお、ビルド環境としては Ubuntu 12.04 LTS(Precise Pangolin)を前提として説明しているため、その他の環境では適宜読み替えて下さい。:</p> <div class="highlight-none"><div class="highlight"><pre>% sudo apt-get install -V debootstrap rinse createrepo rpm mercurial python-docutils python-jinja2 ruby1.9.1-full mingw-w64 g++-mingw-w64 mecab libmecab-dev nsis gnupg2 </pre></div> </div> <p>rinseのバージョンが古いとCentOS 5/6パッケージのビルドを行うことができません。 別途debパッケージを以下のコマンドを実行して最新版をインストールします。:</p> <div class="highlight-none"><div class="highlight"><pre>% sudo dpkg -i rinse_1.9.2-1_all.deb </pre></div> </div> <p>また、rubyのrakeパッケージを以下のコマンドによりインストールします。:</p> <div class="highlight-none"><div class="highlight"><pre>% sudo gem1.9.1 install rake </pre></div> </div> </div> <div class="section" id="id4"> <h2>13.2.6.3. パッケージ署名用秘密鍵のインポート<a class="headerlink" href="#id4" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリース作業ではRPMパッケージに対する署名を行います。 その際、パッケージ署名用の鍵が必要です。</p> <p>groongaプロジェクトでは署名用の鍵をリリース担当者の公開鍵で暗号化してリポジトリのpackages/ディレクトリ以下へと登録しています。</p> <p>リリース担当者はリポジトリに登録された秘密鍵を復号した後に鍵のインポートを以下のコマンドにて行います。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages % gpg --decrypt release-key-secret.asc.gpg.(担当者) > (復号した鍵 ファイル) % gpg --import (復号した鍵ファイル) </pre></div> </div> <p>鍵のインポートが正常終了すると gpg --list-keys でgroongaの署名用の鍵を確認することができます。:</p> <div class="highlight-none"><div class="highlight"><pre>pub 1024R/F10399C0 2012-04-24 uid groonga Key (groonga Official Signing Key) <packages@groonga.org> sub 1024R/BC009774 2012-04-24 </pre></div> </div> <p>鍵をインポートしただけでは使用することができないため、インポートした鍵に対してtrust,signを行う必要があります。</p> <p>以下のコマンドを実行して署名を行います。(途中の選択肢は省略):</p> <div class="highlight-none"><div class="highlight"><pre>% gpg --edit-key packages@groonga.org gpg> trust gpg> sign gpg> save gpg> quit </pre></div> </div> <p>この作業は、新規にリリースを行うことになった担当者やパッケージに署名する鍵に変更があった場合などに行います。</p> </div> <div class="section" id="id5"> <h2>13.2.6.4. リリース作業用ディレクトリの作成<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのリリース作業ではリリース専用の環境下(コンパイルフラグ)でビルドする必要があります。</p> <p>リリース時と開発時でディレクトリを分けずに作業することもできますが、誤ったコンパイルフラグでリリースしてしまう危険があります。</p> <p>そのため、以降の説明では$GROONGA_DIR以下のディレクトリにリリース用の作業ディレクトリ(groonga.clean)としてソースコードをcloneしたものとして説明します。</p> <p>リリース用のクリーンな状態でソースコードを取得するために$GROONGA_DIRにて以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% git clone git@github.com:groonga/groonga.git groonga.clean </pre></div> </div> <p>この作業はリリース作業ごとに行います。</p> </div> <div class="section" id="id6"> <h2>13.2.6.5. 変更点のまとめ<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>前回リリース時からの変更点を$GROONGA_CLONE_DIR/doc/source/news.txtにまとめます。 ここでまとめた内容についてはリリースアナウンスにも使用します。</p> <p>前回リリースからの変更履歴を参照するには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% git log -p --reverse $(git tag | tail -1).. </pre></div> </div> <p>ログを^commitで検索しながら、以下の基準を目安として変更点を追記していきます。</p> <p>含めるもの</p> <ul class="simple"> <li>ユーザへ影響するような変更</li> <li>互換性がなくなるような変更</li> </ul> <p>含めないもの</p> <ul class="simple"> <li>内部的な変更(変数名の変更やらリファクタリング)</li> </ul> </div> <div class="section" id="groonga"> <h2>13.2.6.6. groongaのウェブサイトの取得<a class="headerlink" href="#groonga" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのウェブサイトのソースはgroonga同様にgithubにリポジトリを置いています。</p> <p>リリース作業では後述するコマンド(make update-latest-release)にてトップページのバージョンを置き換えることができるようになっています。</p> <p>groongaのウェブサイトのソースコードを$GROONGA_GITHUB_COM_PATHとして取得するためには、$GROONGA_DIRにて以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% git clone git@github.com:groonga/groonga.github.com.git </pre></div> </div> <p>これで、$GROONGA_GITHUB_COM_PATHにgroonga.github.comのソースを取得できます。</p> </div> <div class="section" id="cutter"> <h2>13.2.6.7. cutterのソースコード取得<a class="headerlink" href="#cutter" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのリリース作業では、cutterに含まれるスクリプトを使用しています。</p> <p>そこであらかじめ用意しておいた$HOME/work/cutterディレクトリにてcutterのソースコードを以下のコマンドにて取得します。:</p> <div class="highlight-none"><div class="highlight"><pre>% git clone git@github.com:clear-code/cutter.git </pre></div> </div> <p>これで、$CUTTER_SOURCE_PATHディレクトリにcutterのソースを取得できます。</p> </div> <div class="section" id="configure"> <h2>13.2.6.8. configureスクリプトの生成<a class="headerlink" href="#configure" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのソースコードをcloneした時点ではconfigureスクリプトが含まれておらず、そのままmakeコマンドにてビルドすることができません。</p> <p>$GROONGA_CLONE_DIRにてautogen.shを以下のように実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% sh autogen.sh </pre></div> </div> <p>このコマンドの実行により、configureスクリプトが生成されます。</p> </div> <div class="section" id="id7"> <h2>13.2.6.9. configureスクリプトの実行<a class="headerlink" href="#id7" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Makefileを生成するためにconfigureスクリプトを実行します。</p> <p>リリース用にビルドするためには以下のオプションを指定してconfigureを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% ./configure CFLAGS="-O0 -ggdb3" CXXFLAGS="-O0 -ggdb3" --prefix=/tmp/local --with-rsync-path="packages@packages.groonga.org:public" --with-groonga-github-com-path=$HOME/work/groonga/groonga.github.com --enable-document --with-ruby19 --with-cutter-source-path=$HOME/work/cutter/cutter </pre></div> </div> <p>configureオプションである--with-groonga-github-com-pathにはgroongaのウェブサイトのリポジトリをcloneした場所を指定します。</p> <p>configureオプションである--with-cutter-source-pathにはcutterのソースをcloneした場所を指定します。</p> <p>以下のようにgroongaのソースコードをcloneした先からの相対パスを指定することもできます。:</p> <div class="highlight-none"><div class="highlight"><pre>% ./configure CFLAGS="-O0 -ggdb3" CXXFLAGS="-O0 -ggdb3" --prefix=/tmp/local --with-rsync-path="packages@packages.groonga.org:public" --with-groonga-github-com-path=../groonga.github.com --enable-document --with-ruby19 --with-cutter-source-path=../../cutter/cutter </pre></div> </div> <p>あらかじめpackagesユーザでpackages.groonga.orgにsshログインできることを確認しておいてください。</p> <p>ログイン可能であるかの確認は以下のようにコマンドを実行して行います。:</p> <div class="highlight-none"><div class="highlight"><pre>% ssh packages@packages.groonga.org </pre></div> </div> </div> <div class="section" id="make-update-latest-release"> <h2>13.2.6.10. make update-latest-releaseの実行<a class="headerlink" href="#make-update-latest-release" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>make update-latest-releaseコマンドでは、OLD_RELEASE_DATEに前回のリリースの日付を、NEW_RELEASE_DATEに次回リリースの日付を指定します。</p> <p>2.0.2のリリースを行った際は以下のコマンドを実行しました。::</p> <div class="highlight-none"><div class="highlight"><pre>% make update-latest-release OLD_RELEASE=2.0.1 OLD_RELEASE_DATE=2012-03-29 NEW_RELEASE_DATE=2012-04-29 </pre></div> </div> <p>これにより、clone済みのgroongaのWebサイトのトップページのソース(index.html,ja/index.html)やRPMパッケージのspecファイルのバージョン表記などが更新されます。</p> </div> <div class="section" id="make-update-files"> <h2>13.2.6.11. make update-filesの実行<a class="headerlink" href="#make-update-files" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ロケールメッセージの更新や変更されたファイルのリスト等を更新するために以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-files </pre></div> </div> <p>make update-filesを実行すると新規に追加されたファイルなどが各種.amファイルへとリストアップされます。</p> <p>リリースに必要なファイルですので漏れなくコミットします。</p> </div> <div class="section" id="make-update-po"> <h2>13.2.6.12. make update-poの実行<a class="headerlink" href="#make-update-po" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ドキュメントの最新版と各国語版の内容を同期するために、poファイルの更新を以下のコマンドにて実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-po </pre></div> </div> <p>make update-poを実行すると、doc/locale/ja/LC_MESSAGES以下の各種.poファイルが更新されます。</p> </div> <div class="section" id="po"> <h2>13.2.6.13. poファイルの翻訳<a class="headerlink" href="#po" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>make update-poコマンドの実行により更新した各種.poファイルを翻訳します。</p> <p>翻訳結果をHTMLで確認するために、以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make -C doc/locale/ja html % make -C doc/locale/en html </pre></div> </div> <p>確認が完了したら、翻訳済みpoファイルをコミットします。</p> </div> <div class="section" id="id8"> <h2>13.2.6.14. リリースタグの設定<a class="headerlink" href="#id8" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリース用のタグを打つには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make tag </pre></div> </div> </div> <div class="section" id="id9"> <h2>13.2.6.15. リリース用アーカイブファイルの作成<a class="headerlink" href="#id9" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリース用のソースアーカイブファイルを作成するために以下のコマンドを$GROONGA_CLONE_DIRにて実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make dist </pre></div> </div> <p>これにより$GROONGA_CLONE_DIR/groonga-(バージョン).tar.gzが作成されます。</p> <div class="admonition note"> <p class="first admonition-title">ノート</p> <p class="last">タグを打つ前にmake distを行うとversionが古いままになることがあります。 するとgroonga --versionで表示されるバージョン表記が更新されないので注意が必要です。 make distで生成したtar.gzのversionおよびversion.shがタグと一致することを確認するのが望ましいです。</p> </div> </div> <div class="section" id="id10"> <h2>13.2.6.16. パッケージのビルド<a class="headerlink" href="#id10" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリース用のアーカイブファイルができたので、パッケージ化する作業を行います。</p> <p>パッケージ化作業は以下の3種類を対象に行います。</p> <ul class="simple"> <li>Debian系(.deb)</li> <li>Red Hat系(.rpm)</li> <li>Windows系(.exe,.zip)</li> </ul> <p>パッケージのビルドではいくつかのサブタスクから構成されています。</p> <div class="section" id="id11"> <h3>13.2.6.16.1. ビルド用パッケージのダウンロード<a class="headerlink" href="#id11" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>debパッケージのビルドに必要なパッケージをダウンロードするには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/apt % make download </pre></div> </div> <p>これにより、lucid以降の関連する.debパッケージやソースアーカイブなどがカレントディレクトリ以下へとダウンロードされます。</p> <p>rpmパッケージのビルドに必要なパッケージをダウンロードするには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/yum % make download </pre></div> </div> <p>これにより、groongaやMySQLのRPM/SRPMパッケージなどがカレントディレクトリ以下へとダウンロードされます。</p> <p>windowsパッケージのビルドに必要なパッケージをダウンロードするには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/windows % make download </pre></div> </div> <p>これにより、groongaのインストーラやzipアーカイブがカレントディレクトリ以下へとダウンロードされます。</p> <p>sourceパッケージに必要なものをダウンロードするには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/source % make download </pre></div> </div> <p>これにより過去にリリースしたソースアーカイブ(.tar.gz)が packages/source/filesディレクトリ以下へとダウンロードされます。</p> </div> </div> <div class="section" id="debian"> <h2>13.2.6.17. Debian系パッケージのビルド<a class="headerlink" href="#debian" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのpackages/aptサブディレクトリに移動して、以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/apt % make build PALALLEL=yes </pre></div> </div> <p>make build PALALLEL=yesコマンドを実行すると、ディストリビューションのリリースとアーキテクチャの組み合わせでビルドを平行して行うことができます。</p> <p>現在サポートされているのは以下の通りです。</p> <ul class="simple"> <li>squeeze i386/amd64</li> <li>wheezy i386/amd64</li> <li>unstable i386/amd64</li> <li>lucid i386/amd64</li> <li>natty i386/amd64</li> <li>oneiric i386/amd64</li> <li>precise i386/amd64</li> <li>quantal i386/amd64</li> </ul> <p>正常にビルドが終了すると$GROONGA_CLONE_DIR/packages/apt/repositories配下に.debパッケージが生成されます。</p> <p>make build ではまとめてビルドできないこともあります。 その場合にはディストリビューションごとやアーキテクチャごとなど、個別にビルドすることで問題が発生している箇所を切り分ける必要があります。</p> <p>生成したパッケージへの署名を行うには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make sign-packages </pre></div> </div> <p>リリース対象のファイルをリポジトリに反映するには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-repository </pre></div> </div> <p>リポジトリにGnuPGで署名を行うために以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make sign-repository </pre></div> </div> </div> <div class="section" id="red-hat"> <h2>13.2.6.18. Red Hat系パッケージのビルド<a class="headerlink" href="#red-hat" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaのpackages/yumサブディレクトリに移動して、以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/yum % make build PALALLES=yes </pre></div> </div> <p>make build PALALLEL=yesコマンドを実行すると、ディストリビューションのリリースとアーキテクチャの組み合わせでビルドを平行して行うことができます。</p> <p>現在サポートされているのは以下の通りです。</p> <ul class="simple"> <li>centos-5 i386/x86_64</li> <li>centos-6 i386/x86_64</li> <li>fedora-17 i386/x86_64</li> </ul> <p>ビルドが正常終了すると$GROONGA_CLONE_DIR/packages/yum/repositories配下にRPMパッケージが生成されます。</p> <ul class="simple"> <li>repositories/yum/centos/5/i386/Packages</li> <li>repositories/yum/centos/5/x86_64/Packages</li> <li>repositories/yum/centos/6/i386/Packages</li> <li>repositories/yum/centos/6/x86_64/Packages</li> <li>repositories/yum/fedora/17/i386/Packages</li> <li>repositories/yum/fedora/17/x86_64/Packages</li> </ul> <p>リリース対象のRPMに署名を行うには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make sign-packages </pre></div> </div> <p>リリース対象のファイルをリポジトリに反映するには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-repository </pre></div> </div> </div> <div class="section" id="windows"> <h2>13.2.6.19. Windows用パッケージのビルド<a class="headerlink" href="#windows" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>packages/windowsサブディレクトリに移動して、以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/windows % make build % make package % make installer </pre></div> </div> <p>make releaseを実行することでbuildからuploadまで一気に実行することができますが、途中で失敗することもあるので順に実行することをおすすめします。</p> <p>make buildでクロスコンパイルを行います。 正常に終了するとdist-x64/dist-x86ディレクトリ以下にx64/x86バイナリを作成します。</p> <p>make packageが正常に終了するとzipアーカイブをfilesディレクトリ以下に作成します。</p> <p>make installerが正常に終了するとWindowsインストーラをfilesディレクトリ以下に作成します。</p> </div> <div class="section" id="id12"> <h2>13.2.6.20. パッケージの動作確認<a class="headerlink" href="#id12" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ビルドしたパッケージに対しリリース前の動作確認を行います。</p> <p>Debian系もしくはRed Hat系の場合には本番環境へとアップロードする前にローカルのaptないしyumのリポジトリを参照して正常に更新できることを確認します。</p> <p>ここでは以下のようにrubyを利用してリポジトリをwebサーバ経由で参照できるようにします。:</p> <div class="highlight-none"><div class="highlight"><pre>% ruby1.9.1 -run -e httpd -- packages/yum/repositories (yumの場合) % ruby1.9.1 -run -e httpd -- packages/apt/repositories (aptの場合) </pre></div> </div> <div class="section" id="grntest"> <h3>13.2.6.20.1. grntestの準備<a class="headerlink" href="#grntest" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>grntestを実行するためにはgroongaのテストデータとgrntestのソースが必要です。</p> <p>まずgroongaのソースを任意のディレクトリへと展開します。:</p> <div class="highlight-none"><div class="highlight"><pre>% tar zxvf groonga-(バージョン).tar.gz </pre></div> </div> <p>次にgroongaのtest/functionディレクトリ以下にgrntestのソースを展開します。 つまりtest/function/grntestという名前でgrntestのソースを配置します。:</p> <div class="highlight-none"><div class="highlight"><pre>% ls test/function/grntest/ README.md binlib license test </pre></div> </div> </div> <div class="section" id="id13"> <h3>13.2.6.20.2. grntestの実行方法<a class="headerlink" href="#id13" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>grntestではgroongaコマンドを明示的にしていすることができます。 後述のパッケージごとのgrntestによる動作確認では以下のようにして実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% GROONGA=(groongaのパス指定) test/function/run-test.sh </pre></div> </div> <p>最後にgrntestによる実行結果が以下のようにまとめて表示されます。:</p> <div class="highlight-none"><div class="highlight"><pre>55 tests, 52 passes, 0 failures, 3 not checked tests. 94.55% passed. </pre></div> </div> <p>grntestでエラーが発生しないことを確認します。</p> </div> <div class="section" id="id14"> <h3>13.2.6.20.3. Debian系の場合<a class="headerlink" href="#id14" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>Debian系の場合の動作確認手順は以下の通りとなります。</p> <ul class="simple"> <li>旧バージョンをchroot環境へとインストールする</li> <li>chroot環境の/etc/hostsを書き換えてpackages.groonga.orgがホストを 参照するように変更する</li> <li>ホストでwebサーバを起動してドキュメントルートをビルド環境のもの (repositories/apt/packages)に設定する</li> <li>アップグレード手順を実行する</li> <li>grntestのアーカイブを展開してインストールしたバージョンでテストを実 行する</li> <li>grntestの正常終了を確認する</li> </ul> </div> <div class="section" id="id15"> <h3>13.2.6.20.4. Red Hat系の場合<a class="headerlink" href="#id15" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>Red Hat系の場合の動作確認手順は以下の通りとなります。</p> <ul class="simple"> <li>旧バージョンをchroot環境へとインストール</li> <li>chroot環境の/etc/hostsを書き換えてpackages.groonga.orgがホストを参照するように変更する</li> <li>ホストでwebサーバを起動してドキュメントルートをビルド環境のもの(packages/yum/repositories)に設定する</li> <li>アップグレード手順を実行する</li> <li>grntestのアーカイブを展開してインストールしたバージョンでテストを実行する</li> <li>grntestの正常終了を確認する</li> </ul> </div> <div class="section" id="id16"> <h3>13.2.6.20.5. Windows向けの場合<a class="headerlink" href="#id16" title="このヘッドラインへのパーマリンク">¶</a></h3> <ul class="simple"> <li>新規インストール/上書きインストールを行う</li> <li>grntestのアーカイブを展開してインストールしたバージョンでテストを実行する</li> <li>grntestの正常終了を確認する</li> </ul> <p>zipアーカイブも同様にしてgrntestを実行し動作確認を行います。</p> </div> </div> <div class="section" id="id17"> <h2>13.2.6.21. リリースアナウンスの作成<a class="headerlink" href="#id17" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリースの際にはリリースアナウンスを流して、groongaを広く通知します。</p> <p>news.txtに変更点をまとめましたが、それを元にリリースアナウンスを作成します。</p> <p>リリースアナウンスには以下を含めます。</p> <ul class="simple"> <li>インストール方法へのリンク</li> <li>リリースのトピック紹介</li> <li>リリース変更点へのリンク</li> <li>リリース変更点(news.txtの内容)</li> </ul> <p>リリースのトピック紹介では、これからgroongaを使う人へアピールする点や既存のバージョンを利用している人がアップグレードする際に必要な情報を提供します。</p> <p>非互換な変更が含まれるのであれば、回避方法等の案内を載せることも重要です。</p> <p>参考までに過去のリリースアナウンスへのリンクを以下に示します。</p> <ul> <li><p class="first">[Groonga-talk] [ANN] groonga 2.0.2</p> <blockquote> <div><ul class="simple"> <li><a class="reference external" href="http://sourceforge.net/mailarchive/message.php?msg_id=29195195">http://sourceforge.net/mailarchive/message.php?msg_id=29195195</a></li> </ul> </div></blockquote> </li> <li><p class="first">[groonga-dev,00794] [ANN] groonga 2.0.2</p> <blockquote> <div><ul class="simple"> <li><a class="reference external" href="http://sourceforge.jp/projects/groonga/lists/archive/dev/2012-April/000794.html">http://sourceforge.jp/projects/groonga/lists/archive/dev/2012-April/000794.html</a></li> </ul> </div></blockquote> </li> </ul> </div> <div class="section" id="id18"> <h2>13.2.6.22. パッケージのアップロード<a class="headerlink" href="#id18" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>動作確認が完了し、Debian系、Red Hat系、Windows向け、ソースコードそれぞれにおいてパッケージやアーカイブのアップロードを行います。</p> <p>Debian系のパッケージのアップロードには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/apt % make upload </pre></div> </div> <p>Red Hat系のパッケージのアップロードには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/yum % make upload </pre></div> </div> <p>Windows向けのパッケージのアップロードには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/windows % make upload </pre></div> </div> <p>ソースアーカイブのアップロードには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% cd packages/source % make upload </pre></div> </div> <p>アップロードが正常終了すると、リリース対象のリポジトリデータやパッケージ、アーカイブ等がpackages.groonga.orgへと反映されます。</p> </div> <div class="section" id="blogroonga"> <h2>13.2.6.23. blogroonga(ブログ)の更新<a class="headerlink" href="#blogroonga" title="このヘッドラインへのパーマリンク">¶</a></h2> <p><a class="reference external" href="http://groonga.org/blog/">http://groonga.org/blog/</a> および <a class="reference external" href="http://groonga.org/blog/">http://groonga.org/blog/</a> にて公開されているリリース案内を作成します。</p> <p>基本的にはリリースアナウンスの内容をそのまま記載します。</p> <p>cloneしたWebサイトのソースに対して以下のファイルを新規追加します。</p> <ul class="simple"> <li>groonga.github.com/en/_post/(リリース日)-release.textile</li> <li>groonga.github.com/ja/_post/(リリース日)-release.textile</li> </ul> <p>編集した内容をpushする前に確認したい場合にはjekyllおよびRedClothが必要です。 インストールするには以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% sudo gem1.9.1 install jekyll RedCloth </pre></div> </div> <p>jekyllのインストールを行ったら、以下のコマンドでローカルにwebサーバを起動します。:</p> <div class="highlight-none"><div class="highlight"><pre>% jekyll serve --watch </pre></div> </div> <p>あとはブラウザにてhttp://localhost:4000にアクセスして内容に問題がないかを確認します。</p> <div class="admonition note"> <p class="first admonition-title">ノート</p> <p>記事を非公開の状態でアップロードするには.textileファイルのpublished:をfalseに設定します。:</p> <div class="last highlight-none"><div class="highlight"><pre>--- layout: post.en title: Groonga 2.0.5 has been released published: false --- </pre></div> </div> </div> </div> <div class="section" id="id19"> <h2>13.2.6.24. ドキュメントのアップロード<a class="headerlink" href="#id19" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>doc/source以下のドキュメントを更新、翻訳まで完了している状態で、ドキュメントのアップロード作業を行います。</p> <p>そのためにはまず以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-document </pre></div> </div> <p>これによりcloneしておいたgroonga.github.comのdoc/locale以下に更新したドキュメントがコピーされます。</p> <p>生成されているドキュメントに問題のないことを確認できたら、コミット、pushしてgroonga.orgへと反映します。</p> </div> <div class="section" id="id20"> <h2>13.2.6.25. リリースアナウンス<a class="headerlink" href="#id20" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>作成したリリースアナウンスをメーリングリストへと流します。</p> <ul class="simple"> <li>groonga-dev <a class="reference external" href="mailto:groonga-dev%40lists.sourceforge.jp">groonga-dev<span>@</span>lists<span>.</span>sourceforge<span>.</span>jp</a></li> <li>Groonga-talk <a class="reference external" href="mailto:groonga-talk%40lists.sourceforge.net">groonga-talk<span>@</span>lists<span>.</span>sourceforge<span>.</span>net</a></li> </ul> </div> <div class="section" id="freecode-com"> <h2>13.2.6.26. freecode.comへリリース情報を登録<a class="headerlink" href="#freecode-com" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>groongaプロジェクトではfreecode.comでもリリース情報を発信しています。</p> <p>freecode.comのプロジェクトページは以下の通りです。</p> <blockquote> <div><a class="reference external" href="https://freecode.com/projects/groonga">https://freecode.com/projects/groonga</a></div></blockquote> <p>プロジェクトの管理メニューから「Submit a release」をクリックし、 新規リリース情報を登録します。</p> <blockquote> <div><a class="reference external" href="https://freecode.com/projects/groonga/releases/new">https://freecode.com/projects/groonga/releases/new</a></div></blockquote> <div class="admonition note"> <p class="first admonition-title">ノート</p> <p class="last">投稿した内容に対するレビューが運営側で実施されるので、反映されるまでしばらく時間がかかります。</p> </div> </div> <div class="section" id="twitter"> <h2>13.2.6.27. Twitterでリリースアナウンスをする<a class="headerlink" href="#twitter" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>blogroongaのリリースエントリには「リンクをあなたのフォロワーに共有する」ためのツイートボタンがあるので、そのボタンを使ってリリースアナウンスします。(画面下部に配置されている)</p> <p>このボタンを経由する場合、ツイート内容に自動的にリリースタイトル(「groonga 2.0.8リリース」など)とblogroongaのリリースエントリのURLが挿入されます。</p> <p>この作業はblogroongaの英語版、日本語版それぞれで行います。 あらかじめgroongaアカウントでログインしておくとアナウンスを円滑に行うことができます。</p> <p>以上でリリース作業は終了です。</p> </div> <div class="section" id="id21"> <h2>13.2.6.28. リリース後にやること<a class="headerlink" href="#id21" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>リリースアナウンスを流し終えたら、次期バージョンの開発が始まります。</p> <ul class="simple"> <li>groonga プロジェクトの新規バージョン追加</li> <li>groonga のbase_versionの更新</li> </ul> <div class="section" id="id22"> <h3>13.2.6.28.1. groonga プロジェクトの新規バージョン追加<a class="headerlink" href="#id22" title="このヘッドラインへのパーマリンク">¶</a></h3> <p><a class="reference external" href="http://redmine.groonga.org/projects/groonga/settings">groonga プロジェクトの設定ページ</a> にて新規バージョンを追加します。(例: release-2.0.6)</p> </div> <div class="section" id="id24"> <h3>13.2.6.28.2. groonga バージョン更新<a class="headerlink" href="#id24" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>$GROONGA_CLONE_DIRにて以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-version NEW_VERSION=2.0.6 </pre></div> </div> <p>これにより$GROONGA_CLONE_DIR/base_versionが更新されるのでコミットしておきます。</p> <div class="admonition note"> <p class="first admonition-title">ノート</p> <p class="last">base_versionはtar.gzなどのリリース用のファイル名で使用します。</p> </div> </div> </div> <div class="section" id="tips"> <h2>13.2.6.29. ビルド時のTIPS<a class="headerlink" href="#tips" title="このヘッドラインへのパーマリンク">¶</a></h2> <div class="section" id="id25"> <h3>13.2.6.29.1. ビルドを並列化したい<a class="headerlink" href="#id25" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>make build PALALLES=yesを指定するとchroot環境で並列にビルドを 実行できます。</p> </div> <div class="section" id="id26"> <h3>13.2.6.29.2. 特定の環境向けのみビルドしたい<a class="headerlink" href="#id26" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>Debian系の場合、CODES,ARCHITECTURESオプションを明示的に指定することで、特定のリリース、アーキテクチャのみビルドすることができます。</p> <p>squeezeのi386のみビルドしたい場合には以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make build ARCHITECTURES=i386 CODES=squeeze </pre></div> </div> <p>buildコマンド以外でも build-package-deb build-repository-debなどのサブタスクでもARCHITECTURES,CODES指定は有効です。</p> <p>Red Hat系の場合、ARCHITECTURES,DISTRIBUTIONSオプションを明示的に指定することで、特定のリリース、アーキテクチャのみビルドすることができます。</p> <p>fedoraのi386のみビルドしたい場合には以下のコマンドを実行します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make build ARCHITECTURES=i386 DISTRIBUTIONS=fedora </pre></div> </div> <p>buildコマンド以外でも build-in-chroot build-repository-rpmなどのサブタスクでもARCHITECTURES,DISTRIBUTIONSの指定は有効です。</p> <p>centosの場合、CENTOS_VERSIONSを指定することで特定のバージョンのみビルドすることができます。</p> </div> <div class="section" id="id27"> <h3>13.2.6.29.3. パッケージの署名用のパスフレーズを知りたい<a class="headerlink" href="#id27" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>パッケージの署名に必要な秘密鍵のパスフレーズについては リリース担当者向けの秘密鍵を復号したテキストの1行目に記載してあります。</p> </div> <div class="section" id="id28"> <h3>13.2.6.29.4. バージョンを明示的に指定してドキュメントを生成したい<a class="headerlink" href="#id28" title="このヘッドラインへのパーマリンク">¶</a></h3> <p>リリース後にドキュメントの一部を差し替えたい場合、特に何も指定しないと生成したHTMLに埋め込まれるバージョンが「v3.0.1-xxxxxドキュメント」となってしまうことがあります。gitでのコミット時ハッシュの一部が使われるためです。</p> <p>これを回避するには、以下のようにDOCUMENT_VERSIONやDOCUMENT_VERSION_FULLを明示的に指定します。:</p> <div class="highlight-none"><div class="highlight"><pre>% make update-document DOCUMENT_VERSION=3.0.1 DOCUMENT_VERSION_FULL=3.0.1 </pre></div> </div> </div> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../../index.html">目次</a></h3> <ul> <li><a class="reference internal" href="#">13.2.6. リリース手順</a><ul> <li><a class="reference internal" href="#id2">13.2.6.1. 前提条件</a></li> <li><a class="reference internal" href="#id3">13.2.6.2. ビルド環境の準備</a></li> <li><a class="reference internal" href="#id4">13.2.6.3. パッケージ署名用秘密鍵のインポート</a></li> <li><a class="reference internal" href="#id5">13.2.6.4. リリース作業用ディレクトリの作成</a></li> <li><a class="reference internal" href="#id6">13.2.6.5. 変更点のまとめ</a></li> <li><a class="reference internal" href="#groonga">13.2.6.6. groongaのウェブサイトの取得</a></li> <li><a class="reference internal" href="#cutter">13.2.6.7. cutterのソースコード取得</a></li> <li><a class="reference internal" href="#configure">13.2.6.8. configureスクリプトの生成</a></li> <li><a class="reference internal" href="#id7">13.2.6.9. configureスクリプトの実行</a></li> <li><a class="reference internal" href="#make-update-latest-release">13.2.6.10. make update-latest-releaseの実行</a></li> <li><a class="reference internal" href="#make-update-files">13.2.6.11. make update-filesの実行</a></li> <li><a class="reference internal" href="#make-update-po">13.2.6.12. make update-poの実行</a></li> <li><a class="reference internal" href="#po">13.2.6.13. poファイルの翻訳</a></li> <li><a class="reference internal" href="#id8">13.2.6.14. リリースタグの設定</a></li> <li><a class="reference internal" href="#id9">13.2.6.15. リリース用アーカイブファイルの作成</a></li> <li><a class="reference internal" href="#id10">13.2.6.16. パッケージのビルド</a><ul> <li><a class="reference internal" href="#id11">13.2.6.16.1. ビルド用パッケージのダウンロード</a></li> </ul> </li> <li><a class="reference internal" href="#debian">13.2.6.17. Debian系パッケージのビルド</a></li> <li><a class="reference internal" href="#red-hat">13.2.6.18. Red Hat系パッケージのビルド</a></li> <li><a class="reference internal" href="#windows">13.2.6.19. Windows用パッケージのビルド</a></li> <li><a class="reference internal" href="#id12">13.2.6.20. パッケージの動作確認</a><ul> <li><a class="reference internal" href="#grntest">13.2.6.20.1. grntestの準備</a></li> <li><a class="reference internal" href="#id13">13.2.6.20.2. grntestの実行方法</a></li> <li><a class="reference internal" href="#id14">13.2.6.20.3. Debian系の場合</a></li> <li><a class="reference internal" href="#id15">13.2.6.20.4. Red Hat系の場合</a></li> <li><a class="reference internal" href="#id16">13.2.6.20.5. Windows向けの場合</a></li> </ul> </li> <li><a class="reference internal" href="#id17">13.2.6.21. リリースアナウンスの作成</a></li> <li><a class="reference internal" href="#id18">13.2.6.22. パッケージのアップロード</a></li> <li><a class="reference internal" href="#blogroonga">13.2.6.23. blogroonga(ブログ)の更新</a></li> <li><a class="reference internal" href="#id19">13.2.6.24. ドキュメントのアップロード</a></li> <li><a class="reference internal" href="#id20">13.2.6.25. リリースアナウンス</a></li> <li><a class="reference internal" href="#freecode-com">13.2.6.26. freecode.comへリリース情報を登録</a></li> <li><a class="reference internal" href="#twitter">13.2.6.27. Twitterでリリースアナウンスをする</a></li> <li><a class="reference internal" href="#id21">13.2.6.28. リリース後にやること</a><ul> <li><a class="reference internal" href="#id22">13.2.6.28.1. groonga プロジェクトの新規バージョン追加</a></li> <li><a class="reference internal" href="#id24">13.2.6.28.2. groonga バージョン更新</a></li> </ul> </li> <li><a class="reference internal" href="#tips">13.2.6.29. ビルド時のTIPS</a><ul> <li><a class="reference internal" href="#id25">13.2.6.29.1. ビルドを並列化したい</a></li> <li><a class="reference internal" href="#id26">13.2.6.29.2. 特定の環境向けのみビルドしたい</a></li> <li><a class="reference internal" href="#id27">13.2.6.29.3. パッケージの署名用のパスフレーズを知りたい</a></li> <li><a class="reference internal" href="#id28">13.2.6.29.4. バージョンを明示的に指定してドキュメントを生成したい</a></li> </ul> </li> </ul> </li> </ul> <h4>前のトピックへ</h4> <p class="topless"><a href="query.html" title="前の章へ">13.2.4. クエリの実現</a></p> <h4>次のトピックへ</h4> <p class="topless"><a href="test.html" title="次の章へ">13.2.7. テスト方法</a></p> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../../_sources/contribution/development/release.txt" rel="nofollow">ソースコードを表示</a></li> </ul> <div id="searchbox" style="display: none"> <h3>クイック検索</h3> <form class="search" action="../../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> モジュール、クラス、または関数名を入力してください </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../../genindex.html" title="総合索引" >索引</a></li> <li class="right" > <a href="test.html" title="13.2.7. テスト方法" >次へ</a> |</li> <li class="right" > <a href="query.html" title="13.2.4. クエリの実現" >前へ</a> |</li> <li><a href="../../index.html">groonga v3.0.5ドキュメント</a> »</li> <li><a href="../../contribution.html" >13. groongaへのコントリビュート方法</a> »</li> <li><a href="../development.html" >13.2. groonga開発者向け情報</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009-2013, Brazil, Inc. </div> </body> </html>