diff --git a/dev/docs/contribution.html b/dev/docs/contribution.html index 83ead3e206..a5c8277cc5 100644 --- a/dev/docs/contribution.html +++ b/dev/docs/contribution.html @@ -509,7 +509,7 @@

12. How to contribute to groonga12.3.7. リリース手順
  • 12.3.8. テスト方法 -
    -

    12.3.7.3.5. rake release:version:updateの実行#

    -

    rake release:version:update コマンドでは、 OLD_RELEASE に前回のバージョンを、 GROONGA_ORG_DIR にGroongaのWebサイトのディレクトリーを、 NEW_RELEASE_DATE に次回リリースの日付(未来の日付)を指定します。

    -
    $ cd $GROONGA_CLONE_DIR
    -$ rake release:version:update OLD_RELEASE=14.0.9 GROONGA_ORG_DIR=../groonga.org OLD_RELEASE_DATE=2024-09-27 NEW_RELEASE_DATE=2024-11-05
    +
    +

    12.3.7.3.6. rake release の実行#

    +

    rake release コマンドでは、 NEW_RELEASE_DATE にリリースの日付(≒ 実行日)を指定します。

    +
    $ cd ${GROONGA_CLONE_DIR}
    +$ rake release NEW_RELEASE_DATE=$(date +%Y-%m-%d)
     
    -

    これにより、clone済みのGroongaのWebサイトのトップページのソース(index.html,ja/index.html)やRPMパッケージのspecファイルのバージョン表記などが更新されます。

    +

    release タスクは次の3つのタスクを実行します。

    +
      +
    1. release:version:update

      +
        +
      • RPMパッケージのspecファイルに新しいバージョンのチェンジログを追記したりなどします。

      • +
      +
    2. +
    3. release:tag

      +
        +
      • リリース用のタグを打ちます。

      • +
      • これによりタグがプッシュされ自動リリースが動き出します。

      • +
      +
    4. +
    5. dev:version:bump

      +
        +
      • 次のリリースに向けてバージョンを更新します。

      • +
      +
    6. +
    +
    +

    12.3.7.3.6.1. 補足: dev:version:bump タスク#

    +

    rake dev:version:bump NEW_VERSION=x.x.x のようにバージョンを指定して更新できます。

    +
    +

    Note

    +

    base_versionはtar.gzなどのリリース用のファイル名で使用します。

    +
    +
    -

    12.3.7.3.6. Ubuntu向けパッケージのビルド確認#

    -

    Ubuntu向けのパッケージは、LaunchPadでビルドしています。 +

    12.3.7.3.7. Ubuntu向けパッケージのビルド確認#

    +

    Ubuntu向けのパッケージは、Launchpadでビルドしています。 リリース前にUbuntu向けパッケージが正常にビルドできるか以下の手順で確認します。

    rake release:version:update の結果をリポジトリーにpush後にGitHub Actionsで生成されるソースアーカイブをダウンロードします。 ダウンロードしたソースアーカイブを $GROONGA_CLONE_DIR のトップに配置します。その後、以下のコマンドを実行してください。

    @@ -589,61 +574,17 @@

    12.3.7.3.5. rake release:version:update

    -

    12.3.7.3.7. 各種テストの確認#

    +

    12.3.7.3.8. 各種テストの確認#

    リリース用のタグを設定する前に、以下のテストが全てパスしているかを確認します。 タグを設定してから問題が発覚すると、再度リリースすることになってしまうので、タグを設定する前に問題がないか確認します。

    テストやパッケージの作成に失敗していたら、原因を特定して修正します。

    -

    12.3.7.3.8. リリースタグの設定#

    -

    リリース用のタグを打つには以下のコマンドを実行します。

    -
    $ rake release:tag
    -
    -
    -
    -
    -

    12.3.7.3.9. リリース用アーカイブファイルの作成とアップロード#

    -

    Groongaのリリース用アーカイブファイルは、MroongaやPGroonga、Rroonga等関連プロダクトのリリースにも使用します。 -生成でき次第アップロードしておくと、関連プロダクトのリリース作業がしやすくなります。

    -

    タグを設定すると、GitHub Actionsで自動生成されます。 -GitHub Actionsでソースアーカイブが自動生成されたのを確認したら以下の手順でアップロードします。

    -
    $ cd packages
    -$ rake source GITHUB_ACCESS_TOKEN=...
    -
    -
    -

    これにより、GitHub Actionsで生成したソースアーカイブを $GROONGA_CLONE_DIR/groonga-(バージョン).tar.gz -にダウンロードし packages.groonga.org へアップロードします。

    -
    -
    -

    12.3.7.3.10. パッケージのビルドとアップロード#

    -

    パッケージングは以下の3種類を対象に行います。 -Ubuntu以外のOS向けのパッケージは全てGitHub Actionsで生成されます。

    -
      -
    • Debian系(.deb)

    • -
    • Red Hat系(.rpm)

    • -
    • Windows系(.exe,.zip)

    • -
    -
    -
    -

    12.3.7.3.11. Debian系パッケージのビルドとアップロード#

    -

    タグを設定すると、GitHub Actionsで自動生成されます。

    -

    GitHub Actionsでパッケージが自動生成されたのを確認したら以下の手順で、packages.groonga.orgへアップロードします。

    -
    $ cd packages
    -$ rake apt
    -
    -
    -

    この段階では、ビルドしたパッケージは未署名なので、$PACKAGES_GROONGA_ORG_REPOSITORYに移動し、以下のコマンドを実行します。

    -
    $ rake apt
    -
    -
    -

    上記のコマンドを実行することで、リポジトリーの同期、パッケージの署名、リポジトリーの更新、アップロードまで実行できます。

    -
    -
    -

    12.3.7.3.12. Ubuntu用パッケージのアップロード#

    +

    12.3.7.3.9. Ubuntu用パッケージのアップロード#

    Ubuntu向けパッケージの作成には、作業マシン上にGroongaのビルドに必要な依存ソフトウェア一式がインストールされている必要があります。以下のようにしてインストールしておいて下さい。

    $ sudo apt build-dep groonga
     
    @@ -657,38 +598,14 @@

    12.3.7.3.12. Ubuntu用パッケージの
    -
    -

    12.3.7.3.12.1. Ubuntu用パッケージの公開の取り消し#

    +
    +

    12.3.7.3.9.1. Ubuntu用パッケージの公開の取り消し#

    LaunchpadのGroongaチームのページで対象のPPAを選択し、バージョン一覧の上にある「View package details」リンクの先で「Delete packages」リンクを辿ると、アップロード済みパッケージを削除できます。 例;[不安定版リポジトリのパッケージの削除用のページ](https://launchpad.net/~groonga/+archive/ubuntu/nightly/+delete-packages)。

    -
    -

    12.3.7.3.13. Red Hat系パッケージのビルドとアップロード#

    -

    タグを設定すると、GitHub Actionsで自動生成されます。

    -

    GitHub Actionsでパッケージが自動生成されたのを確認したら以下の手順で、packages.groonga.orgへアップロードします。

    -
    $ cd packages
    -$ rake yum
    -
    -
    -

    この段階では、ビルドしたパッケージはまだ未署名なので、$PACKAGES_GROONGA_ORG_REPOSITORYに移動し、以下のコマンドを実行します。

    -
    $ rake yum
    -
    -
    -

    上記のコマンドを実行することで、リポジトリーの同期、パッケージの署名、リポジトリーの更新、アップロードまで実行できます。

    -
    -
    -

    12.3.7.3.14. Windows用パッケージのビルドとアップロード#

    -

    タグを設定すると、GitHub Actionsで自動生成されます。 -GitHub Actionsでパッケージが自動生成されたのを確認したら以下の手順で、packages.groonga.orgからGitHub Actionsへのリンクを作成します。

    -
    $ cd packages
    -$ rake windows
    -
    -
    -

    packages.groonga.org上にWindows版の最新パッケージへリダイレクトする .htaccess が作成されます。

    -
    -

    12.3.7.3.15. WindowsのMSYS2用パッケージのアップロード#

    +

    12.3.7.3.10. WindowsのMSYS2用パッケージのアップロード#

    MINGW-packages の、 mingw-w64-groonga/PKGBUILD を最新にして、プルリクエストを作成します。

    MINGW-packagesはforkして自分のリポジトリを作成しておきます。 また、forkしたリポジトリのGitHub Actionsを有効にしておきます。

    @@ -726,8 +643,16 @@

    12.3.7.3.15. WindowsのMSYS2用パッケ

    プルリクエストがマージされると、MSYS2用のパッケージがリリースされます。

    +
    +

    12.3.7.3.11. ドキュメントの更新#

    +

    groonga.org リポジトリにて次のタスクを実行します。そうすることでタグがプッシュされCIにてドキュメントが更新されます。

    +
    $ cd ${GROONGA_ORG_PATH}
    +$ rake release:version:update
    +
    +
    +
    -

    12.3.7.3.16. Dockerイメージの更新#

    +

    12.3.7.3.12. Dockerイメージの更新#

    Docker Hub のGroongaのDockerイメージを更新します。

    GroongaのDockerリポジトリー をクローンし、リポジトリーの中のDockerfileを更新します。

    以下は、Groongaのバージョンが 12.0.9 の場合の例です。作業時には最新のバージョンを指定してください。

    @@ -745,8 +670,8 @@

    12.3.7.3.16. Dockerイメージの更新

    pushすると、 GroongaのDockerリポジトリーのGithub Actions が Docker HubのGroonga のDockerイメージを自動で更新します。

    -
    -

    12.3.7.3.17. リリースアナウンスの作成#

    +
    +

    12.3.7.3.13. リリースアナウンスの作成#

    リリースの際にはリリースアナウンスを流して、Groongaを広く通知します。

    news.rstに変更点をまとめましたが、それを元にリリースアナウンスを作成します。

    リリースアナウンスには以下を含めます。

    @@ -777,55 +702,8 @@

    12.3.7.3.17. リリースアナウンス

    後述しますが、Twitter等でのリリースアナウンスの際はここで用意したアナウンス文の要約を使用します。

    -
    -

    12.3.7.3.18. BloGroonga(ブログ)の更新#

    -

    https://groonga.org/blog/ および https://groonga.org/blog/ にて公開されているリリース案内を作成します。

    -

    基本的にはリリースアナウンスの内容をそのまま記載します。

    -

    cloneしたWebサイトのソースに対して以下のファイルを新規追加します。

    -
      -
    • groonga.org/en/_post/(リリース日)-release.md

    • -
    • groonga.org/ja/_post/(リリース日)-release.md

    • -
    -

    編集した内容をpushする前に確認したい場合にはJekyllおよびRedCloth(Textileパーサー)、RDiscount(Markdownパーサー)、JavaScript interpreter(therubyracer、Node.jsなど)が必要です。 -インストールするには以下のコマンドを実行します。

    -
    $ sudo gem install jekyll jekyll-paginate RedCloth rdiscount therubyracer
    -
    -
    -

    jekyllのインストールを行ったら、以下のコマンドでローカルにwebサーバを起動します。

    -
    $ jekyll serve --watch
    -
    -
    -

    あとはブラウザにてhttp://localhost:4000にアクセスして内容に問題がないかを確認します。

    -
    -

    Note

    -

    記事を非公開の状態でアップロードするには.mdファイルのpublished:をfalseに設定します。

    -
    ---
    -layout: post.en
    -title: Groonga 2.0.5 has been released
    -published: false
    ----
    -
    -
    -
    -
    -
    -

    12.3.7.3.19. ドキュメントのアップロード#

    -

    doc/source以下のドキュメントを更新、翻訳まで完了している状態で、ドキュメントのアップロード作業を行います。

    -

    そのためにはまず groonga のリポジトリをカレントディレクトリにして以下のコマンドを実行します。

    -
    $ cmake -S . -B ../groonga.doc --preset=doc --fresh
    -$ rake release:document:update BUILD_DIR=../groonga.doc GROONGA_ORG_DIR=../groonga.org
    -
    -
    -

    これで、 groonga.orgdocs/ja/docs 以下に更新したドキュメントがコピーされます。

    -

    生成されているドキュメントに問題のないことを確認できたら、コミット、pushして groonga.org へと反映します。

    -

    また、 groonga.org リポジトリの _config.yml に最新リリースのバージョン番号と日付を表す情報の指定があるので、これらも更新します。

    -
    groonga_version: x.x.x
    -groonga_release_date: xxxx-xx-xx
    -
    -
    -
    -

    12.3.7.3.20. Homebrewの更新#

    +

    12.3.7.3.14. Homebrewの更新#

    この手順は省略可能です(Homebrewの更新はGroongaプロジェクト本体のリリース要件には含まれません)。

    OS Xでのパッケージ管理方法として Homebrew があります。

    Groongaを簡単にインストールできるようにするために、Homebrewへpull requestを送ります。

    @@ -839,53 +717,21 @@

    12.3.7.3.20. Homebrewの更新 -

    12.3.7.3.21. リリースアナウンス#

    -

    作成したリリースアナウンスをメーリングリストへと流します。

    - -

    -

    12.3.7.3.22. Twitterでリリースアナウンスをする#

    +

    12.3.7.3.15. Twitterでリリースアナウンスをする#

    BloGroongaのリリースエントリには「リンクをあなたのフォロワーに共有する」ためのツイートボタンがあるので、そのボタンを使ってリリースアナウンスします。(画面下部に配置されている)

    このボタンを経由する場合、ツイート内容に自動的にリリースタイトル(「groonga 2.0.8リリース」など)とBloGroongaのリリースエントリのURLが挿入されます。

    この作業はBloGroongaの英語版、日本語版それぞれで行います。 あらかじめgroongaアカウントでログインしておくとアナウンスを円滑に行うことができます。

    -

    12.3.7.3.23. Facebookでリリースアナウンスをする#

    +

    12.3.7.3.16. Facebookでリリースアナウンスをする#

    FacebookにGroongaグループがあります。 https://www.facebook.com/groonga/

    Groongaグループのメンバーになると、個人のアカウントではなく、Groongaグループのメンバーとして投稿できます。 ブログエントリなどをもとに、リリースアナウンスを投稿します。

    以上でリリース作業は終了です。

    -
    -

    12.3.7.3.24. リリース後にやること#

    -

    リリースアナウンスを流し終えたら、次期バージョンの開発が始まります。

    -
      -
    • Groonga のbase_versionの更新

    • -
    -
    -

    12.3.7.3.24.1. Groonga バージョン更新#

    -

    $GROONGA_CLONE_DIRにて以下のコマンドを実行します。

    -
    $ rake dev:version:bump NEW_VERSION=x.x.x
    -
    -
    -

    これにより$GROONGA_CLONE_DIR/base_versionが更新されるのでコミットしておきます。

    -
    -

    Note

    -

    base_versionはtar.gzなどのリリース用のファイル名で使用します。

    -
    -
    -
    -

    12.3.7.3.24.2. パッケージの署名用のパスフレーズを知りたい#

    -

    パッケージの署名に必要な秘密鍵のパスフレーズについては -リリース担当者向けの秘密鍵を復号したテキストの1行目に記載してあります。

    -
    -
    @@ -939,43 +785,33 @@

    12.3.7.3.24.2. パッケージの署名
  • 12.3.7.1. 前提条件
  • 12.3.7.2. 最初の1回だけ行う手順
  • -
  • 12.3.7.3. 毎回のリリースで行う手順

    後述しますが、Twitter等でのリリースアナウンスの際はここで用意したアナウンス文の要約を使用します。

    -
    -

    12.3.7.3.18. BloGroonga(ブログ)の更新#

    -

    https://groonga.org/blog/ および https://groonga.org/blog/ にて公開されているリリース案内を作成します。

    -

    基本的にはリリースアナウンスの内容をそのまま記載します。

    -

    cloneしたWebサイトのソースに対して以下のファイルを新規追加します。

    -
      -
    • groonga.org/en/_post/(リリース日)-release.md

    • -
    • groonga.org/ja/_post/(リリース日)-release.md

    • -
    -

    編集した内容をpushする前に確認したい場合にはJekyllおよびRedCloth(Textileパーサー)、RDiscount(Markdownパーサー)、JavaScript interpreter(therubyracer、Node.jsなど)が必要です。 -インストールするには以下のコマンドを実行します。

    -
    $ sudo gem install jekyll jekyll-paginate RedCloth rdiscount therubyracer
    -
    -
    -

    jekyllのインストールを行ったら、以下のコマンドでローカルにwebサーバを起動します。

    -
    $ jekyll serve --watch
    -
    -
    -

    あとはブラウザにてhttp://localhost:4000にアクセスして内容に問題がないかを確認します。

    -
    -

    注釈

    -

    記事を非公開の状態でアップロードするには.mdファイルのpublished:をfalseに設定します。

    -
    ---
    -layout: post.en
    -title: Groonga 2.0.5 has been released
    -published: false
    ----
    -
    -
    -
    -
    -
    -

    12.3.7.3.19. ドキュメントのアップロード#

    -

    doc/source以下のドキュメントを更新、翻訳まで完了している状態で、ドキュメントのアップロード作業を行います。

    -

    そのためにはまず groonga のリポジトリをカレントディレクトリにして以下のコマンドを実行します。

    -
    $ cmake -S . -B ../groonga.doc --preset=doc --fresh
    -$ rake release:document:update BUILD_DIR=../groonga.doc GROONGA_ORG_DIR=../groonga.org
    -
    -
    -

    これで、 groonga.orgdocs/ja/docs 以下に更新したドキュメントがコピーされます。

    -

    生成されているドキュメントに問題のないことを確認できたら、コミット、pushして groonga.org へと反映します。

    -

    また、 groonga.org リポジトリの _config.yml に最新リリースのバージョン番号と日付を表す情報の指定があるので、これらも更新します。

    -
    groonga_version: x.x.x
    -groonga_release_date: xxxx-xx-xx
    -
    -
    -
    -

    12.3.7.3.20. Homebrewの更新#

    +

    12.3.7.3.14. Homebrewの更新#

    この手順は省略可能です(Homebrewの更新はGroongaプロジェクト本体のリリース要件には含まれません)。

    OS Xでのパッケージ管理方法として Homebrew があります。

    Groongaを簡単にインストールできるようにするために、Homebrewへpull requestを送ります。

    @@ -840,53 +718,21 @@

    12.3.7.3.20. Homebrewの更新 -

    12.3.7.3.21. リリースアナウンス#

    -

    作成したリリースアナウンスをメーリングリストへと流します。

    - -

    -

    12.3.7.3.22. Twitterでリリースアナウンスをする#

    +

    12.3.7.3.15. Twitterでリリースアナウンスをする#

    BloGroongaのリリースエントリには「リンクをあなたのフォロワーに共有する」ためのツイートボタンがあるので、そのボタンを使ってリリースアナウンスします。(画面下部に配置されている)

    このボタンを経由する場合、ツイート内容に自動的にリリースタイトル(「groonga 2.0.8リリース」など)とBloGroongaのリリースエントリのURLが挿入されます。

    この作業はBloGroongaの英語版、日本語版それぞれで行います。 あらかじめgroongaアカウントでログインしておくとアナウンスを円滑に行うことができます。

    -

    12.3.7.3.23. Facebookでリリースアナウンスをする#

    +

    12.3.7.3.16. Facebookでリリースアナウンスをする#

    FacebookにGroongaグループがあります。 https://www.facebook.com/groonga/

    Groongaグループのメンバーになると、個人のアカウントではなく、Groongaグループのメンバーとして投稿できます。 ブログエントリなどをもとに、リリースアナウンスを投稿します。

    以上でリリース作業は終了です。

    -
    -

    12.3.7.3.24. リリース後にやること#

    -

    リリースアナウンスを流し終えたら、次期バージョンの開発が始まります。

    -
      -
    • Groonga のbase_versionの更新

    • -
    -
    -

    12.3.7.3.24.1. Groonga バージョン更新#

    -

    $GROONGA_CLONE_DIRにて以下のコマンドを実行します。

    -
    $ rake dev:version:bump NEW_VERSION=x.x.x
    -
    -
    -

    これにより$GROONGA_CLONE_DIR/base_versionが更新されるのでコミットしておきます。

    -
    -

    注釈

    -

    base_versionはtar.gzなどのリリース用のファイル名で使用します。

    -
    -
    -
    -

    12.3.7.3.24.2. パッケージの署名用のパスフレーズを知りたい#

    -

    パッケージの署名に必要な秘密鍵のパスフレーズについては -リリース担当者向けの秘密鍵を復号したテキストの1行目に記載してあります。

    -
    -
    @@ -940,43 +786,33 @@

    12.3.7.3.24.2. パッケージの署名
  • 12.3.7.1. 前提条件
  • 12.3.7.2. 最初の1回だけ行う手順
  • -
  • 12.3.7.3. 毎回のリリースで行う手順