はじめに

導入

運用

参加・貢献

リソース

GitHubでこのページを編集

Home / 5 / collaborator / リリース手順

リリース手順

プラグインをモノレポと Packagist に登録する

新しいプラグインを作成した場合は、リリース時にモノレポの分割対象のパッケージとして登録します。

パッケージの分割は、 master ブランチ、または、タグをプッシュした際には、GitHub Actions にて実行されますので、
/.github/workflow/split_monorepo.yml を編集して登録します。

jobs:
    packages_split:
        strategy:
            matrix:
                package:
                    -
                        local_path: 'new-plugin-name'
                        split_repository: 'new-plugin-name'

また、新しいプラグインのリポジトリを Packagist に登録します。

composer の設定をマージ

Dockerコンテナにログインし、マージコマンドを使って、パッケージの設定をルートの composer.json にマージします。

# PHPの実行環境が必要
cd docker
docker exec -it bc-php /bin/bash
vendor/bin/monorepo-builder merge

VERSION.txt を更新

plugins/baser-core/VERSION.txt の先頭行をリリースするバージョン番号に変更し、変更内容をまとめます。

現在(2023年1月時点)では月に一度行われるマイルストーンミーティングにて、記載内容を決定します。

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

-改修タイプ: [パッケージの省略文字] 改修内容
(例)
-BUG [BC] fixes #7385 RSSフィードの読込時に本文中の<img>タグが読み取れていない 問題を改善

改修タイプ

  • 新機能:NEW
  • 仕様変更:CHG
  • 不具合修正:BUG
  • パッケージの省略文字

パッケージの省略文字

  • baserCMSコア:BC
  • ブログプラグイン:BG
  • メールプラグイン:ML
  • アップローダー:UL
  • カスタムコンテンツ:CC

その後、コミットしてプッシュします。

git commit -a -m "basercms-5.x.x をリリース"

master ブランチにマージ

dev-5 ブランチを master ブランチにマージします。

git checkout master
git merge dev-5

リリースコマンドを実行

モノレポを使うことで、GitHub 上のパッケージごとのレポジトリへ、一括でリリースすることができます。
リリースの際は、モノレポのリリースコマンドを実行します。
自動的にタグを作成しプッシュします。

GitHubへのプッシュ権限が必要となり、Dockerのコンテナ内で実行する場合、Gitのセットアップができているかを確認してください。

事前に dev-5 ブランチをプッシュすることでテストを行ってもよいかもしれません。

# PHPの実行環境が必要
vendor/bin/monorepo-builder release 5.x.x

親パッケージより一括リリースするため、子パッケージのレポジトリは、読み取り専用の扱いとします。

GitHubActions の実行結果を確認

GitHubActions より、次の2つのCIが成功していることを確認します。

  • master の Packages Split と PhpDocumentor
  • リリース対象バージョンタグ の Packages Split と PhpDocumentor

Packagist の確認

baser-core の Packagist に新しいバージョンが反映されているか確認します。

dev ブランチにマージ

master ブランチにおいてのリリースコマンドで更新された composer.json の変更内容を、 dev ブランチにマージした上でプッシュします。

git checkout dev-5
git merge master
git push origin dev-5

パッケージの作成

Dockerコンテナにログインし、次のコマンドを実行しパッケージを作成します。

# PHPの実行環境が必要
bin/cake create release master
cd tmp
# バージョン番号付きのファイル名にリネーム
mv basercms.zip basercms-5.x.x.zip

master ブランチより作成しますので、必ずリリースコマンド実行後 に行う必要がありますが、開発ブランチでパッケージを作成し、インストール等の動作を確認したい場合は、branch オプションとして引数にブランチ名を追加します。

bin/cake create release dev-5

パッケージのアップロード

baserCMSのオフィシャルサイトの /files/basercms/ ディレクトリにアップロードします。

オフィシャルサイトのダウンロードページを更新

baserCMSのオフィシャルサイトのダウンロードページを更新します。過去バージョンダウンロードについても忘れないように更新します。

GitHubでリリース記事を作成

GitHubにて 新しいリリース記事 を作成します。
※ コミット履歴から参加者を抽出するコマンド git log --after="YYYY-MM-DD" --pretty=format:"%an" |sort| uniq

こちらの記事に先ほど作成した、basercms-5.x.x.zip を添付します。

機能一覧の更新

必要があれば、baserCMS公式ガイドの機能一覧を更新します。

オフィシャルサイトでリリース記事を作成

最後にbaserCMSのオフィシャルサイトでリリース記事を作成します。
その際、カテゴリについて「リリースノート」を選択します。

スペシャルサンクス更新

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

告知

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

これでリリース作業は完了です。お疲れさまでした。

事後作業

  1. plugins/baser-core/VERSION.txt の先頭行を開発バージョンに変更します。
    コミットメッセージを バージョンを5.x.x開発版に変更 としdev-5ブランチにpushします。

  2. バージョンアップに合わせて次の2サイトのアップデートを行います。

トラブルシューティング

リリースコマンドを再度実行するには

リリースについてコミット漏れがあるなど、同じバージョンで再度リリース作業を行いたい場合があります。

その際、次の手順に従います。

1. composer.json を戻す

リリースコマンドを実行すると、composer.json の replace の箇所について、各パッケージごとのバージョン番号が、最新バージョン番号で更新されます。
こちらを手動で元のバージョンに戻します。

    "replace": {
        "baserproject/baser-core": "5.0.2",
        "baserproject/bc-admin-third": "5.0.2",
        "baserproject/bc-blog": "5.0.2",
        "baserproject/bc-column": "5.0.2",
        "baserproject/bc-content-link": "5.0.2",
        "baserproject/bc-custom-content": "5.0.2",
        "baserproject/bc-editor-template": "5.0.2",
        "baserproject/bc-favorite": "5.0.2",
        "baserproject/bc-front": "5.0.2",
        "baserproject/bc-installer": "5.0.2",
        "baserproject/bc-mail": "5.0.2",
        "baserproject/bc-search-index": "5.0.2",
        "baserproject/bc-theme-config": "5.0.2",
        "baserproject/bc-theme-file": "5.0.2",
        "baserproject/bc-uploader": "5.0.2",
        "baserproject/bc-widget-area": "5.0.2"
    },

2. ローカルのタグを削除する

リリースコマンドで作成されたローカルタグを削除します。

git tag -d 5.0.2

3. リモートのタグを削除する

リリースコマンドで作成されたリモートタグを削除します。

git push origin :5.0.2

4. リリースコマンドを実行する

その後、修正コミットなどを追加して、準備ができたら、リリースコマンドを実行します。

vendor/bin/monorepo-builder release 5.0.2