トランクベース開発を採用する

完了

ソース管理でトレーニング スクリプトとジョブ定義を使用する場合、次の課題はそれらを保護することです。 main ブランチで同じファイルを同時に編集する 2 人のデータ サイエンティストは、競合を発生させ、さらに重要なことに、他のユーザーが依存するコードを誤って中断する可能性があります。 トランクベースの開発により、運用コードの安定性を維持しながら、モデルを進化させる構造化された方法がチームに提供されます。

共有ブランチを安定した状態に保つ

トランクベースの開発では、共同作成者は変更を 1 つの共有ブランチ (通常は main) に統合します。 チームは、このブランチが新しい作業を始める際の信頼できる出発点であり続けられるように、健全な状態に保ちます。

Proseware プロジェクトの場合、チームは pull request を通じて main に到達するために変更を要求します。 このポリシーは、レビュー担当者と自動チェックに、統合前に各変更を評価する機会を提供します。

有効期間の短い機能ブランチ

データ サイエンティストが新しい機能 (たとえば、糖尿病モデルに BMI 変数を追加する) を試したいとき、 mainから有効期間の短い分岐を作成します。 この作業は、他のすべてのユーザーのコードから分離された場所で行われます。 実験を確認する準備ができたら、データ サイエンティストがプル要求を開きます。

有効期間の短い分岐により、 mainから離れる可能性が低くなり、マージが容易になり、競合が小さくなります。

プルリクエスト、レビュー、必須チェック

プル要求では、レビュー担当者に変更された内容が正確に表示され、自動チェックのトリガー ポイントになるという 2 つの処理が行われます。 校閲者は質問したり、変更を要求したり、作業を承認したりすることができます。 自動化はレビューと並行して実行されます。

ブランチ保護規則 または ルールセット では、このプロセスを適用できます。 リポジトリの設定に応じて、 main に関する規則は次のことができます。

  • 直接プッシュを制限する
  • マージする前に承認の最小数を要求する
  • マージする前に、特定のステータスチェックに合格することを必須にする

GitHub Actionsワークフローでは、ルールに必要なチェックを生成できます。 これらのチェックは、次のユニットで確認します。

ブランチ保護ルールとルールセットは、GitHub Actions ではなく、GitHub リポジトリの設定です。 ワークフローは、 実行内容 を定義します。 保護規則は、結果に基づいて マージを許可するかどうかを 決定します。

Tip

数週間の作業が必要なモデルの変更を検討してください。 長期間存続するブランチを作成せずに、main にマージできるより小さな変更にそれを分割するには、どうすればよいですか?