

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 付録: ADR の例
<a name="appendix"></a>

**タイトル**

この決定は、ABC アプリケーション開発におけるソフトウェア開発ライフサイクルのアプローチを定義しています。

**ステータス**

承諾

**日付**

2022-03-11

**Context**

ABC アプリケーションはパッケージ化されたソリューションで、デプロイパッケージを使用してお客様の環境にデプロイされます。制御可能な機能、修正プログラム、リリースパイプラインを実現できる開発プロセスが必要です。

**決定**

[GitFlow ワークフロー](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)を改造したバージョンを使用して、ABC アプリケーションを開発します。

![ABC サンプルアプリケーションに適合した GitFlow ワークフロー](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/architectural-decision-records/images/gitflow-workflow.png)


わかりやすくするため、`hotfix/*` ブランチと `release/*` ブランチは使用しません。ABC アプリケーションは特定の環境にデプロイされる代わりにパッケージ化されるからです。このため、複雑にして、本番リリースのバグ修正に迅速に対応できなくなったり、別の環境でのリリースのテストができなくなったりする必要はありません。

合意されたブランチ戦略は次のとおりです。
+ 各リポジトリには、リリースのタグ付けに使用される保護された `main` ブランチが必要です。
+ 各リポジトリには、進行中の開発作業のすべてに対して、保護された `develop` ブランチが必要です。

**結果**

ポジティブ:
+ 適合した GitFlow プロセスにより、ABC アプリケーションのリリースバージョンを管理できるようになります。

ネガティブ:
+ GitFlow はトランクベースの開発や GitHub フローよりも複雑で、オーバーヘッドも大きくなります。

**コンプライアンス**
+ 各リポジトリの `main` ブランチと `develop` ブランチには `Protected` のマークを付ける必要があります。
+ `main` ブランチと `develop` ブランチへの変更はマージリクエストを使用して伝達する必要があります。
+ マージリクエストごとに少なくとも 1 つの承認が必要です。

**Notes** (メモ)
+ 著者: Jane Doe
+ バージョン: 0.1
+ 変更ログ: 
  + 0.1: 初回提案バージョン