2009-06-05 15 views
2

コンテキスト:私は伝統的に研究型の仕事をしており、商業空間で多くの経験を持っていない小さなソフトウェア会社で働いています。私たちは現在、商業的な世界に押し込もうとしています。研究の起源のために、我々は非常に迅速な開発サイクルに慣れており、適切なバージョンのプロジェクトを維持するという点ではほとんど構造がない。プロジェクト/コードリリース戦略

問題:すべての開発者がコードベースの見方が少し違うため、構造の欠如が多少妨げになっています。ある開発者が発見した問題は、他の開発者が再現することはできず、あるビルドで見つかった問題は次の問題で消えるかもしれません(新しい問題が発生することがあります)。これは、すべてのプロジェクトを統合し、品質と性能の基準が満たされていること、つまり自分自身を満たす責任を負っている人にとって、非常に不満な経験になります。

潜在的な解決策:個人的に私は、固定バージョン番号と通常のリリースでより良い構造を強制する必要があると確信しています。適切なバージョン管理が問題の多くでどのように役立つかは自明ですが、もちろん問題はありません。開発者はリリースを実行してテストするために余分な作業をする必要があります。すべて。

質問:リリースに必要なプロセスと努力を確実にするために、どのような戦略をお勧めしますか?私たちはバージョン管理のためにgitを使用しています。ビルドシステムにはmavenが使用されています。バグ追跡と継続的な統合システムが稼働しています。私は、適切なリリースプロセスがどのように見えるかについて単に不明です。

答えて

3

バージョン管理、Maven経由のワンクリックビルド、継続的ビルドサーバー、バグ追跡などの3つの機能があります。皆さんがアジャイルの方法論に重点を置いているように思えます。したがって、製品のトランクバージョンを常に提供可能な状態に保つように努めなければなりません。

最初のリリースを決定したら、そのリリースのトランクバージョンからブランチを作成します。ラベル付けスキームを決定し、ブランチバージョンにラベルを付けるようにしてください。たとえば、最初のリリースは1.0.4530です.1は最初のバージョン、0は最初のリリース候補、4530はバージョンコントロールの変更番号です。このリリースブランチをテストし、重要なバグを修正します。しばらくしてもう1つのリリース候補を発行すると、1.1.4807と言います。このプロセスは数回反復して(例えば)、あなたのリリースは十分になり、バージョン1.3.5167を出荷します。

一方、新しい開発はトランクバージョンでのみ行われ、時折、1.xリリースブランチからのバグ修正をトランクにマージする必要があります。後で、トランクから2.xブランチを分割して、2番目のリリースのプロセスを繰り返します。一般的には、いくつかのアクティブブランチ(トランクに加えて)があり、開発はトランクに限定され、各ブランチは初期状態であり、開発から独立しています。

皆さんは物事のハングアップを取得し、開発者の調整の問題は少なくなります。しかし、これらの問題はほぼすべてがリリースブランチではなく、トランクに限定されることになります。

+0

良い入力、ありがとう! – toluju

2

1人の開発者が発見した問題は、 次に消えることができる1つのビルドで見つかっ と問題点(またはより悪いが、新しい 問題が表示される場合があります)別の開発者によって再現できない です。これにより、 は非常に不快な経験をして すべてのプロジェクトを統合し、 品質とパフォーマンスを確保しています。 の基準が満たされています。

潜在的な解決策:個人的に私たちは、固定バージョン番号 と定期的なリリースを経て、より良い 構造を強化する必要が 確信しています。

非常に頻繁なリリースは内部的に調整する必要はないと思います。あなたはバージョン管理を通してそれを行うことができます。問題を報告するときに特定のgitリビジョンについて話をするようにしてください。また、外部の依存関係/ライブラリも調整する必要があります。 vendor branchesのいくつかの種類がこれに役立つ可能性があります。

+0

ベンダーのブランチが面白く見えます。特定のリビジョンについて話すことは実際には選択肢ではありません。なぜなら、何十ものプロジェクトに対して1日に50件以上のコミットがあるからです。開発者に絶えず列挙し、バージョンを同期させることは時間がかかるでしょう。タグ/ブランチを介して表示されたバージョン番号は、この同期プロセスをずっと簡単にします。 – toluju

0

一般的なトピックについて書かれた書籍があります。 Amazonの検索では、特殊な「バージョン管理(git with version control)」の3つのタイトルも返されます。

私はコードベースの標準ビューを定義することで恩恵を受けると思います。テストと呼んでください。テストに表示される問題は問題です。一部の開発者の視点で問題が表示されない場合は、重要な違いが何であるかを把握することは開発者次第です。同様に、開発者の視点に現れるが、テストでは見えない問題がある。

1つの習慣は、テストが夜間にソースから再構築されることです。テストがすべての更新時に再構築されるという、もっと激しい慣習があります。あなたのチームが小さく(5つ以下)、遠距離や複数のタイムゾーンに分散していない場合は、ツールチェインがいくつかのcronジョブと共にインストールされているサーバでTestをgitワークスペースにするのが適切です毎晩更新され、再構築されます(通常)。

1

開発者が「テストブランチ」を使用し、「安定版/プロダクションブランチ」を少し尊重する必要があるように聞こえます。

"この枝であなたの野生の西部のものをする"という概念を売り、結果に満足すれば、この "退屈な安定した生産拠点"に合併します.... )