私はSaaS企業で働いており、6週間ごとに新機能とバグ修正をお客様にリリースしています。コードの変更を作成する場合、本番サーバーに到達する前に、さまざまなステップ(ステートマシンなど)を通過します。手順は、変更が通常の開発サイクルで行われるか、緊急修正として行われるかによって異なります。現在、Harvestを使用して手順を管理し、どのコード(パッケージを介した機能とバグ修正)が顧客にリリースされているかを追跡しており、その意味でうまく機能しています。
残念ながら、Harvestは高価であり、プログラマーの観点から使用するのは面倒です。分岐とマージは悪夢です。そこで、Mercurialへの切り替えを検討しています。Mercurialはこれらの分野で優れているようです。ただし、Mercurialは、変更を追跡したり、上記のプロセスを管理したりするために作成されたものではなく、SCMのみを実行します。
Q:リリースプロセスに関してはどのようなオプションがありますか?コードを本番サーバーにリリースする前に品質管理を望んでいる他のSaaS企業(Google、Flickr、Facebook、LinkedInなど)は確かにありますか?
Q:Mercurialでプロセスを構築しようとするのは悪い考えですか、それともMercurialと一緒に使用する必要のある他のツールがありますか?
[編集] 明確にするために、これは私たちの(提案された)ブランチ構造です。
現在Harvestにあるプロセスフローは次のとおりです。
Hotfix <--> Test Level 1 <--> Test Level 2 <--> Master (Production)
Feature <--> Test <--> Release Test <--> Master (Production)
私はバグトラッカーを探しているのではなく、テスターによって検証されたコード(リリースブランチのコード)を追跡してデプロイするのに役立つデプロイメントツールを探しています。同時に複数の修正プログラムが機能している場合は、それらを一緒にテストできる必要があります。コードが解読された場合は、コード解読の変更をプロセスフローの1ステップに「デモート」できる必要があります。今日では、2人の開発者がテストレベル1への変更を「プロモート」するだけで十分であり、システムは両方の変更を一緒にテストできます。1人の開発者の変更が、他の開発者のコードと一緒になっている場合にのみ何かが壊れた場合、テストレベル1から簡単に降格できます。