タグ付けされた質問 「versioning」

ソフトウェアのバージョン管理は、一意のバージョン名または一意のバージョン番号をコンピューターソフトウェアの一意の状態に割り当てるプロセスです。特定のバージョン番号カテゴリ(メジャー、マイナー)内では、これらの番号は通常、昇順で割り当てられ、ソフトウェアの新しい開発に対応しています。

9
Javaプロジェクトのビルドとバージョン番号付け(ant、cvs、hudson)
Javaプロジェクトにおける体系的なビルド番号付けとバージョン番号管理の現在のベストプラクティスは何ですか?具体的には: 分散開発環境で体系的にビルド番号を管理する方法 ソース内のバージョン番号を維持する方法/ランタイムアプリケーションで利用可能 ソースリポジトリと適切に統合する方法 バージョン番号とリポジトリタグをより自動的に管理する方法 継続的ビルドインフラストラクチャと統合する方法 非常に多くのツールが利用可能であり、ant(使用しているビルドシステム)にはビルド番号を維持するタスクがありますが、CVSやsvnなどを使用して複数の同時開発者がこれを管理する方法は明確ではありません。 [編集] いくつかの優れた役立つ部分的または具体的な回答が以下に表示されているので、それらのいくつかを要約します。これには本当に強力な「ベストプラクティス」はなく、重複するアイデアのコレクションがあるように思えます。以下に、私の要約と、人々がフォローアップとして回答しようとする可能性があるいくつかの結果の質問を示します。[stackoverflowの新機能...これが間違っている場合はコメントを入力してください。] SVNを使用している場合は、特定のチェックアウトのバージョン管理が行われます。ビルド番号はこれを利用して、特定のチェックアウト/リビジョンを識別する一意のビルド番号を作成できます。[レガシーの理由で使用しているCVSは、このレベルの洞察を提供していません...タグを手動で操作することで、その一部を実現できます。] ビルドシステムとしてmavenを使用している場合、SCMからバージョン番号を生成するためのサポートと、リリースを自動的に生成するためのリリースモジュールがあります。[私たちはさまざまな理由でmavenを使用できませんが、これは使用できる人を助けます。[ マルセロモラルのおかげで]] ビルドシステムとしてantを使用している場合、次のタスクの説明は、ビルド情報をキャプチャするJava .propertiesファイルを生成するのに役立ちます。これは、さまざまな方法でビルドに組み込むことができます。[このアイデアを拡張して、ハドソン派生の情報を含めました。おかげでmarty -lamb ]。 Antとmaven(およびhudsonとcruiseコントロール)は、ビルド番号を.propertiesファイルまたは.txt / .htmlファイルに取得する簡単な手段を提供します。これは、意図的または偶発的に改ざんされないように「安全」ですか?ビルド時にそれを「バージョン管理」クラスにコンパイルする方が良いですか? アサーション:ビルド番号は、hudsonのような継続的インテグレーションシステムで定義/制定する必要があります。[ marcelo-moralesに感謝します ]この提案を採用しましたが、リリースエンジニアリングに関する質問を解き明かします。リリースはどのように行われるのですか?リリースに複数のビルド番号はありますか?異なるリリースのビルド番号の間に意味のある関係はありますか? 質問:ビルド番号の目的は何ですか?QAに使用されますか?どうやって?開発中に複数のビルド間を明確にするために主に開発者によって使用されていますか、それともQAがエンドユーザーが取得したビルドを特定するために使用されていますか?目標が再現性である場合、理論的にはこれがリリースバージョン番号で提供されるものです-なぜそうではないのですか?(以下の回答の一部としてこれに回答してください。これは、あなたが行った/提案した選択を明らかにするのに役立ちます...) 質問:手動ビルドでビルド番号の場所はありますか?これは問題があるので、誰もがCIソリューションを使用する必要がありますか? 質問:ビルド番号をSCMにチェックインする必要がありますか?目標が特定のビルドを確実かつ明確に識別することである場合、クラッシュ/再起動/などする可能性があるさまざまな継続的または手動のビルドシステムに対処する方法... 質問:ビルド番号は短くて甘いもの(つまり、単調に増加する整数)にする必要があります。これにより、アーカイブのためにファイル名を簡単に挿入したり、コミュニケーションなどで参照したりしやすくなります。日付スタンプ、マシン名など? 質問:ビルド番号の割り当てが大規模な自動リリースプロセスにどのように適合するかについて詳細を教えてください。はい、メイベン愛好家、私たちはこれが行われていることを知っていますが、私たち全員がまだクールエイドを飲んでいるわけではありません... 少なくともcvs / ant / hudsonのセットアップの具体例については、これを完全な答えに具体化して、誰かがこの質問に基づいて完全な戦略を構築できるようにしたいと思います。この特定のケース(cvsタグ付けスキーム、関連するCI構成項目、およびビルド番号をリリースに組み込んでプログラム的になるようにリリースするリリース手順を含む)についての説明を提供できる人は、「The Answer」としてマークしますアクセス可能。)別の特定の構成(たとえば、svn / maven / cruise control)について質問/回答したい場合は、ここから質問にリンクします。--JA [編集10月23日09]他のいくつかの回答にも良いアイデアが含まれている一方で、それは合理的な解決策だと思うので、私はトップ投票の回答を受け入れました。これらのいくつかをmarty-lambで合成することに挑戦したい場合は、別のものを受け入れることを検討します。私がmarty-lambに関して私が持っている唯一の懸念は、確実にシリアル化されたビルド番号を生成しないことです-明確ではないビルド番号を提供するためにビルダーのシステムのローカルクロックに依存しますが、これは素晴らしいことではありません。 [7月10日編集] 以下のようなクラスを含めます。これにより、バージョン番号を最終的な実行可能ファイルにコンパイルできます。さまざまな形式のバージョン情報がログデータ、長期のアーカイブ出力製品で出力され、特定のビルドまでの出力製品の(場合によっては後で)分析を追跡するために使用されます。 public final class AppVersion { // SVN should fill …

17
データベーススキーマをどのようにバージョン管理しますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 10か月前に閉鎖。 この質問を改善する SQLデルタをどのように準備しますか?スキーマを変更する各SQLを手動でデルタフォルダーに保存しますか、それとも何らかの自動化された差分プロセスを使用しますか? データベーススキーマとソースコードをバージョン管理するための規則に興味があります。おそらく、スキーマを比較するpre-commitフックですか? また、どのようなデルタを差分のためのオプションが別に存在しDbDeploy? 編集:回答を見て、デルタを使用してデータベースの移行を実行するための標準的なスキームに精通していることを明確にしたいと思います。私の質問は、デルタ自体を、できれば自動的に作成することです。 また、違いがある場合、バージョン管理はPHPとMySQL向けです。(Rubyソリューションはありません)。
128 sql  mysql  schema  versioning 

16
改訂のためのデータベース設計?
プロジェクトでは、エンティティのすべてのリビジョン(変更履歴)をデータベースに保存する必要があります。現在、このために設計された2つの提案があります。 例:「従業員」エンティティ デザイン1: -- Holds Employee Entity "Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)" -- Holds the Employee Revisions in Xml. The RevisionXML will contain -- all data of that particular EmployeeId "EmployeeHistories (EmployeeId, DateModified, RevisionXML)" デザイン2: -- Holds Employee Entity "Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)" -- In …


9
SpringでREST APIのバージョン管理を行う方法は?
Spring 3.2.xを使用してREST APIバージョンを管理する方法を検索してきましたが、メンテナンスが簡単なものは見つかりませんでした。最初に私が抱えている問題を説明し、次に解決策を説明します...しかし、ここで車輪を再発明するのかどうか疑問に思います。 Acceptヘッダーに基づいてバージョンを管理したいと思います。たとえば、リクエストにAcceptヘッダーが含まれている場合、application/vnd.company.app-1.1+jsonSpring MVCがこれをこのバージョンを処理するメソッドに転送するようにします。また、APIのすべてのメソッドが同じリリースで変更されるわけではないので、各コントローラーに移動して、バージョン間で変更されていないハンドラーを変更する必要はありません。また、Springは既に呼び出すメソッドを検出しているため、コントローラー自体で使用するバージョンを判別するロジックは必要ありません(サービスロケーターを使用)。 ハンドラーがバージョン1.0で導入され、v1.7で変更されたバージョン1.0から1.8のAPIを取り上げたので、これを次のように処理します。コードがコントローラー内にあり、ヘッダーからバージョンを抽出できるコードがいくつかあると想像してください。(Springでは以下は無効です) @RequestMapping(...) @VersionRange(1.0,1.6) @ResponseBody public Object method1() { // so something return object; } @RequestMapping(...) //same Request mapping annotation @VersionRange(1.7) @ResponseBody public Object method2() { // so something return object; } 2つのメソッドに同じRequestMappingアノテーションがあり、Springがロードに失敗するため、これはSpring では不可能です。アイデアは、VersionRangeアノテーションがオープンまたはクローズドバージョン範囲を定義できるというものです。最初の方法はバージョン1.0から1.6まで有効ですが、2番目の方法はバージョン1.7以降(最新バージョン1.8を含む)で有効です。誰かがバージョン99.99に合格することを決めた場合、このアプローチはうまくいかないことを知っていますが、それは私が共存しても問題ありません。 さて、春はどのように機能するかを真剣にやり直さなければ上記は不可能なので、ハンドラーをリクエストに一致させる方法をいじくり回すこと、特に自分自身を書くことを考えていました ProducesRequestConditionでそこにバージョン範囲を持たせることを考えていました。例えば コード: @RequestMapping(..., produces = "application/vnd.company.app-[1.0-1.6]+json) @ResponseBody public Object method1() { …

3
composer PHP要件をスキップ
PHPCIとcomposerを使用しています。PHPCIを実行するサーバーはPHP 5.3上にあります。 プロジェクトでは、composerを使用してFacebook PHP SDKを追加しました。PHP 5.4が必要です。ComposerはPHPCIによってトリガーされ、実行されます。しかし、CIサーバーはPHP 5.3 composerを取得したばかりなので、次のエラーメッセージで失敗しました。 facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found. もちろん、これによりPHPCIでのビルドが失敗します。 この要件をスキップする可能性はありますか?多分composer.jsonにオプションを追加することによって?またはcomposer.phar呼び出しのパラメーター?

14
既存の.exe、.dllのバージョン情報を設定するにはどうすればよいですか?
ビルドプロセスの一環として、コンパイルされたすべてのバイナリのバージョン情報を設定する必要があります。一部のバイナリには、(コンパイル時に追加された)バージョン情報が既にあり、一部にはありません。 次の情報を適用できるようにしたいと思います。 会社名 著作権表示 商品名 製品説明 ファイルのバージョン 製品バージョン これらの属性はすべてビルドスクリプトによって指定され、コンパイル後に適用する必要があります。これらは、C ++ Builder 2007でコンパイルされた標準のバイナリ(アセンブリではない)です。 これどうやってするの?

12
CIプラットフォーム(Hudson)を介してC#アセンブリバージョンを自動インクリメントするにはどうすればよいですか?
私と私のグループは、アセンブリのバージョン番号をインクリメントすることに恐ろしく、1.0.0.0バージョンのアセンブリを頻繁に出荷しています。明らかに、これは多くの頭痛の種です。 CIプラットフォームを介してプラクティスを大幅に改善しているassemblyinfo.csので、ファイル内の値を自動インクリメントして、アセンブリのバージョンがそのアセンブリのコード変更で自動更新されるように設定したいと思います。 以前に(Hudsonを見つける前に)msbuildまたはコマンドライン(覚えていない)を介して値をインクリメントする方法をセットアップしましたが、Hudsonを使用すると、SVNリポジトリが更新され、別のビルドがトリガーされます。Hudsonが1時間ごとにSVNをポーリングするため、遅い無限ループが発生します。 ハドソンにバージョン番号を増加させることは悪い考えですか?それを行う別の方法は何でしょうか? 理想的には、ソリューションの私の基準は次のようなものになるでしょう: ビルドassemblyinfo.cs前にビルド番号をインクリメントします 変更されたアセンブリのビルド番号のみをインクリメントします。Hudsonはビルドを行うたびにプロジェクトフォルダーを一掃するため、これは不可能である可能性があります 変更されたassemblyinfo.csをコードリポジトリにコミットします(現在はVisualSVN) Hudsonが次に変更をスキャンするときに新しいビルドをトリガーしません 私の頭の中でこれを解決すると、バッチファイル/コマンドを介してこのほとんどの解決策を簡単に思いつくことができましたが、私のすべてのアイデアにより、次にスキャンするときにHudsonが新しいビルドをトリガーするようになります。私は私のためにすべてを行う誰かを探しているのではなく、正しい方向に私を向けるだけで、おそらくHudsonに特定のSVNコミットを無視させるテクニックなどです。 これまでに見つけたものはすべて、バージョン番号を自動的にインクリメントする方法を説明する記事にすぎません。無限ループになる可能性のあるCIプラットフォームは考慮されていません。

11
REST URIをバージョン管理する方法
REST URIをバージョン管理する最良の方法は何ですか?現在、URI自体にバージョン#があります。 http://example.com/users/v4/1234/ この表現のバージョン4。 バージョンはqueryStringに属していますか?すなわち。 http://example.com/users/1234?version=4 または、バージョン管理は別の方法で行うのが最善ですか?

7
バージョン番号を自動的に更新する
アプリケーションのバージョンプロパティをビルドごとに増やしたいのですが、Visual Studio(2005/2008)でこの機能を有効にする方法がわかりません。AssemblyVersionを1.0。*として指定しようとしましたが、それは私が望むものを正確に取得しません。 私は設定ファイルも使用していますが、以前の試みでは、アセンブリバージョンが変更されたときに、アプリケーションが別のディレクトリで設定ファイルを探したため、設定がデフォルトにリセットされました。 バージョン番号を1.1.38の形式で表示できるようにしたいので、ユーザーが問題を見つけたときに、使用しているバージョンをログに記録したり、古いリリースがある場合はアップグレードするように指示したりできます。 バージョン管理がどのように機能するかについての簡単な説明もいただければ幸いです。ビルド番号とリビジョン番号はいつ増加しますか?

4
バージョン管理されたAPIの基盤となるコードベースをどのように管理しますか?
私はReST APIのバージョン管理戦略について調べてきましたが、それらのどれも対処していないように見えるのは、基盤となるコードベースの管理方法です。 我々は、APIへの変更を壊すの束を作っているとしましょう-例えば、それは別の返すように私たちのお客様のリソースを変更forenameし、surname代わりに、単一のフィールドnameのフィールド。(この例では、関連する概念を理解するのは簡単なので、URLバージョン管理ソリューションを使用しますが、質問はコンテンツネゴシエーションまたはカスタムHTTPヘッダーにも同様に適用できます) これで、にエンドポイントがhttp://api.mycompany.com/v1/customers/{id}あり、別の互換性のないエンドポイントがにありますhttp://api.mycompany.com/v2/customers/{id}。私たちはまだv1 APIのバグ修正とセキュリティ更新をリリースしていますが、新機能の開発はすべてv2に焦点を合わせています。APIサーバーへの変更をどのように記述、テスト、およびデプロイしますか?私は少なくとも2つの解決策を見ることができます: v1コードベースのソース管理ブランチ/タグを使用します。v1とv2は個別に開発およびデプロイされ、両方のバージョンに同じバグ修正を適用するために必要に応じてリビジョンコントロールマージが使用されます。これは、以前のバージョンをサポートしながらメジャーな新しいバージョンを開発するときにネイティブアプリのコードベースを管理する方法と同様です。 コードベース自体にAPIバージョンを認識させると、v1の顧客表現とv2の顧客表現の両方を含む単一のコードベースが作成されます。デプロイメントの問題ではなく、ソリューションアーキテクチャの一部としてバージョン管理を扱います。おそらく名前空間とルーティングのいくつかの組み合わせを使用して、要求が正しいバージョンで処理されるようにします。 ブランチモデルの明らかな利点は、古いAPIバージョンを削除するのが簡単であることです。適切なブランチ/タグのデプロイを停止するだけですが、複数のバージョンを実行している場合、ブランチ構造とデプロイパイプラインが非常に複雑になる可能性があります。「統一されたコードベース」モデルはこの問題を回避しますが、(不要だと思いますか?)不要になったリソースとエンドポイントが不要になったときにコードベースから削除することをはるかに難しくします。単純な正解はありそうもないので、これはおそらく主観的ですが、複数のバージョンにわたって複雑なAPIを維持している組織がこの問題をどのように解決しているかを知りたいと思います。

9
ExcelファイルとSQLスキーマファイルのドキュメントバージョン管理を改善する方法
私はいくつかのExcelファイルとSQLスキーマファイルを担当しています。これらのファイルでドキュメントのバージョン管理を改善するにはどうすればよいですか? これらのファイルで変更された部分(異なる部分)を確認し、すべてのバージョンを参照用に保持する必要があります。現在、ファイル名にタイムスタンプを追加していますが、効率が悪いようです。 ドキュメントのバージョン管理を改善する方法または良い方法はありますか? ちなみに、編集者はメールでファイルを送ってくれます。


22
バージョン番号解析の正規表現
次の形式のバージョン番号があります。 version.release.modification ここで、バージョン、リリース、および変更は、数字のセットまたは「*」ワイルドカード文字のいずれかです。さらに、これらの番号のいずれか(および先行する。)が欠落している可能性があります。 したがって、以下は有効であり、次のように解析されます。 1.23.456 = version 1, release 23, modification 456 1.23 = version 1, release 23, any modification 1.23.* = version 1, release 23, any modification 1.* = version 1, any release, any modification 1 = version 1, any release, any modification * = any version, any release, …
84 regex  versioning 

2
Settings.bundleのバージョン番号は$(MARKETING_VERSION)として更新されます
私がインクリメントしたときに自動的にバージョンを設定していたアプリがあります XCode>一般>バージョン。 しかし、最近、XCodeを11.0に更新し、スクリプトが期待どおりに機能していないようです。 version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/MyApp/Info.plist` version+=" (" version+=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $SRCROOT/MyApp/Info.plist` version+=")" /usr/libexec/PlistBuddy "$SRCROOT/MyApp/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $version" 上記のスクリプトは、バージョンを自動的に更新することを想定しており、[設定]> [アプリ]に表示されます。 しかし、問題は、XCodeからバージョン番号を自動的に更新するために、このスクリプトで行う必要のある変更があることでしょうか。 現在、バージョンがXCode> General> Versionから正しくない場合、バージョンが$(MARKETING_VERSION)としてスクリプトに置き換えられています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.