問題タブ [release-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
810 参照

python - Python Pypi:さまざまなPythonバージョンのパッケージをリリースするためのプロセスは何ですか?(Linux)

Pypiで維持している卵がいくつかありますが、これまでは常にPython2.5xに重点を置いてきました。Python2.5とPython2.6の両方で自動化された方法で卵をリリースしたいです。

  1. テストの実行
  2. ドキュメントの生成
  3. 卵を準備する
  4. Pypiへのアップロード

どうやってこれを達成しますか?

関連する質問:卵に「バージョンに依存しない」タグを付けるにはどうすればよいですか?Pythonのすべてのバージョンで動作しますか?

0 投票する
1 に答える
1391 参照

maven-2 - 小規模で非常に頻繁にリリースされる Maven プロジェクトのバージョン管理

Ant プロジェクトを Maven プロジェクトに変換しています。このプロジェクトは、非常に頻繁に (通常は 1 日に 8 ~ 10 回) リリースされるため、私が通常変換したプロジェクトとは異なります。

リリースとは、結果の jar がパッケージ化され、運用環境に含まれていることを意味します。このプロジェクトはリーフプロジェクトであるため、API を発行せず、使用するだけです。また、多くても他の 2 つのプロジェクトのランタイム依存関係です。

次のようなバージョン管理スキームが必要です。

  • 番号には意味がないため、開発者がプロ​​ジェクトに割り当てるバージョン番号について考える必要がなく、簡単に展開できます。
  • このプロジェクトの最新バージョンを依存関係として含めるのは簡単で、依存関係のバージョンを頻繁に上げる必要はありません。

他のプロジェクトで使用して-SNAPSHOTいる と競合するため、依存関係のバージョンはおそらく ではありませんが、提案は受け付けています。maven-release-plugin

0 投票する
1 に答える
148 参照

versioning - 依存コンポーネント/ライブラリのバージョン変更を追跡する方法は?

独立して開発されたいくつかのコンポーネントを含むプロジェクトがあります。それでも、さまざまなスケジュールのさまざまな製品として名前が付けられた多くのリリースがあります。コンポーネントに新しいバージョン (おそらくバグ修正に関連するもの) がある場合は、すぐにフィードバックを得たいと考えています。したがって、そのバージョンに依存するすべての製品も同様に更新されます。

もちろん、これは単純な例です。このシナリオ専用のプロジェクトがあるはずですが、見つかりませんでした。そのような状況に対処するために何をしますか?推奨される (簡単で強力な) 方法は何ですか?

0 投票する
2 に答える
4027 参照

java - 異常なsvnディレクトリ構造からMavenに移行しますか?

「通常の」svnディレクトリ構造とは異なり、私は次の構造を使用しています。

ご覧のとおり、プロジェクトごとに個別のトリプル(トランク/ブランチ/タグ)はありません。

開発のために、必要なすべてのプロジェクトを含むトランクのチェックアウト(場合によってはスパースチェックアウト)を実行します(プロジェクト間には依存関係があり、一部のプロジェクトは単なるライブラリです)。

これに見られる利点は次のとおりです。

  • すべてのプロジェクトに共通のルートディレクトリ(トランク)があるため、更新とチェックインは簡単です。1つは単純であるsvn updateか、svn commitそれをすべて行います。

  • タグまたはブランチの作成は簡単です。これを行うために必要なのはトランクだけだからsvn copyです。(ブランチとタグには実際には必要以上のプロジェクトが含まれていますが、asvn copyは安価であり、必要に応じてブランチまたはタグでスパースチェックアウトを実行できます。)

  • リソースはすべて同じリポジトリにあるため、あるプロジェクトから別のプロジェクトへのリソースの移動は簡単です。

  • トランクのフルチェックアウトに取り組んでいるときは、プロジェクトを見逃さないようにすることができるため、グローバルリファクタリング(たとえば、一般的に使用されるクラスのパッケージの変更)は簡単です。

  • あるプロジェクトから別のプロジェクトへのリファクタリングの移動があった場合でも、ブランチ全体を一度にマージできるため、マージは簡単です。


私はMavenに移行し、すべてのプロジェクトをトランクからMavenプロジェクトに分割するつもりです。Mavenの依存関係管理と利用可能なプラグインの恩恵を受けたいです(現在、巨大なカスタムantファイルを使用しています)。

今私の質問は次のとおりです。

  • すべてのプロジェクトに独自のトリプル(トランク/ブランチ/タグ)を与えるためにsvnディレクトリ構造を変更する必要がありますか?答えは「はい」だと思います。

  • 構造を変更した場合、上記の利点のどれが失われますか(つまり、Mavenでそれを行うとより複雑になることを意味します)?

  • Mavenでそれを行うための同等の方法は何ですか?

0 投票する
2 に答える
276 参照

asp.net - Web サイトの展開スキル

ASP.NET Web サイト/Web アプリの展開に関する知識を増やす必要があります。私たちはますます大きくなり、トラフィックが増えており、より専門的なアプローチが必要です. 言うまでもなく、複数のデータベース/複数のバック エンド/複数のフロント エンド サーバーの展開にも移行しており、それを台無しにしたくありません。

どのタイプのスキルを探す必要がありますか?また、これらのスキルを持つ人々が使用する典型的な称号はありますか?

ありがとう、

実際、私たちは 2 つの回答で言及されている才能のほとんどを持っています。私たちが探しているのは、Dave が Web サーバーの第一人者と呼んでいるものだと思います。誰かに展開の側面を処理してもらいたいだけです。私たちが持っている開発者は、開発のベストプラクティスを理解しようとするのではなく、自分の目的のために取り組む必要があります。また、最終的には複数のプロジェクトとチームになる可能性があり、各チームに個別の担当者が独自のソリューションを導入することは、すべてのチームに 1 つの専用リソースほど効果的ではないと思います。

0 投票する
2 に答える
1712 参照

svn - SVNでリリースを管理する正しい方法は何ですか?

私の最後の雇用主は、進行中の開発に対処するためにSVNの上に座った精巧なシステムを開発しました:(変更管理)バグ/問題を調べ、バグID番号と(リリース管理)タグをタグ付けしてコミットを行うときにそれらをコミットに関連付けますバグ/問題追跡システムに基づく特定のリリースの一部としてのSVNのアイテム。この2番目の部分には、ユーザー/管理者からサインオフを取得するためのワークフローが関連付けられていました。次に、リリースを行うとき(通常は毎週木曜日の夜)に、コマンドを実行して、タグ付けされたすべてのコードをチェックアウトし、デプロイすることができます。

私の新しい会社ははるかに小規模であり、SVNと直接取引することを意味する場合でも、低コスト/低メンテナンスの同等品を見つけることに興味があります。特に、ゲームの後半でコミットがビルドを壊してしまうことがよくあり、含めることができるものを解きほぐすのは非常に困難になります。(SVNの管理に関する限り、私はブランチよりもタグのアイデアを好む傾向があります。これは、事前の考慮が少なくて済むためですが、そうでないことを確信できてうれしいです。)

リリースのコミットにタグを付け、その後のデプロイメントを行うために、人々は何を使用しますか?WebブラウザからSVNを参照し、リリースの問題/コミットにタグを付けることができるリリースサイクルを管理するための優れたオープンソースソリューションはありますか?私がこれまでに見た中で最高のものはJiraですが、それは非常に大きなツールのように見えます(構成/保守が難しいですか?)。Apache Foundationは、この目的のためにJiraをうまく利用しています(たとえば、Mahoutロードマップを参照してください)。

これを超える一歩を踏み出すと、この同じシステムに継続的インテグレーションも含まれるようになり、各コミットで単体テストを実行できるようになり、各バグ/問題にもこの情報が関連付けられます。

注:stackoverflowには少し関連性のある質問がいくつかありますが、デプロイサイクルとリリース管理のこの側面をカバーするものは何もありません(release-management-in-svnmanage-your-project-life-cycle、およびbestを参照してください)。 -way-to-handle-change-management)。

0 投票する
8 に答える
15202 参照

android - Androidでの開発モードとリリースモードの環境設定の区別

私はAndroidアプリケーションを構築しており、開発モードかリリースモードかに応じて微調整できるいくつかの環境変数を維持したいと考えています。たとえば、Webサービスを呼び出す必要があり、どちらのモードでもURLが少し異なります。この設定やその他の設定を外部化して、ターゲットの展開に基づいて簡単に変更できるようにしたいと思います。

このニーズを支援するためのベストプラクティスやSDKに何かありますか?

0 投票する
2 に答える
157 参照

maven-2 - Maven でビルドする場合のアーカイブ可能で複製可能なリリース: 正しい方法はありますか?

大規模なスタンドアロン (Java EE ではない) の商用 Java プロジェクト (10,000 以上のクラス、4 ~ 5 の SVN リポジトリ、10 ~ 20 のサードパーティ ライブラリ) があり、Maven に切り替え中です。残念ながら、Maven の経験があるエンジニアは 1 人だけです (3 か国に分散した 12 人ほどのチームの中で)。

古い Ant のやり方では、次のことを行います。

  1. 3 つまたは 4 つのリポジトリからソース コードをチェックアウトする
  2. すべてを単一のモノリシック JAR にコンパイルする
  3. そのリリース (ライブラリ JAR、インストーラー、さまざまな構成ファイルなどを含む ZIP ファイルの一部として)
  4. JAR を SVN にチェックインして、顧客が実際に得たものを記録しました。

これで、アーティファクトでいっぱいの Maven リポジトリと、Maven がそのリポジトリにアクセスできることに依存するビルド プロセスができました。したがって、実際に顧客に出荷したものを複製する必要がある場合は、すべての適切なバージョンがすべて含まれている Maven リポジトリに対してビルドを行う必要があります。(SVN で管理されている) POM ファイル (の一部のバージョン) で、すべての依存関係をリリースされたバージョンに設定した場合、これは実行可能だと思いますか?

しかし、私たちのリリース エンジニアは気味が悪いようです。

  1. 誰かが誤って WebDAV サーバー上の foo-api-1.2.3.jar のコピーを破壊しないようにするため (WebDAV サーバーにはアクセス制御がありますが、バグのあるビルド スクリプトは停止しません)
  2. 彼らがしたかどうかを検出する
  3. その後回復する

彼のアイデアは、リリース ビルドの場合、WebDAV サーバーではなくローカル ファイル システムをリポジトリとして使用し、そのローカル リポジトリを SVN の管理下に置くことです。

私たちの Maven 経験のあるエンジニアはそれが好きではありません - 彼はバイナリをバージョン管理下に置くのが好きではないのでしょうか? -- また、Nexus サーバーのプロフェッショナル バージョンがクロバリングまたはクロバ追跡/回復の問題を解決できる可能性があることを示唆しています。

個人的には (Sonatype の読者の皆さん、申し訳ありませんが)、無料バージョンからまだ何の利益も得られていないのに、無料ではないビルド システムに大金をつぎ込むことに満足しておらず、それが実際に問題を解決するという保証もありません。

したがって、私たちの選択は次のようになります。

  1. WebDAV サーバー
    • 長所:開発者もアクセスできるサーバーは1つだけです...?
    • 短所: 簡単な破壊、破壊追跡/回復なし
  2. ローカル ファイル システム
    • 長所: リビジョン管理下に置くことができます
    • 短所:配布スクリプトでのみ機能します

率直に言って、これらは両方ともハックのように思えます。これを行うためのより良い方法がないかどうか疑問に思う必要があります。

だから:ここでやるべきことはありますか?

0 投票する
1 に答える
147 参照

project-management - 製品とコンポーネント間のリリースを追跡および同期するにはどうすればよいですか?

私は仕事で奇妙な状況を見つけました、そして私は解決策からどこから始めるべきかを理解しようとしています。

複数のボードを含むカスタムハードウェア/ソフトウェアデバイスがあり、それぞれに独自の機能とソフトウェアのフレーバー(CPLD、ブートローダー、アプリケーションなど)があります。さらに、デバイスは特定のWebアプリおよびPCアプリケーションと対話します。

これらの各コンポーネントには、個別に追跡される改訂履歴があります。特定のデバイス(もちろんすべて機能のないブラックボックス)には、すべてのコンポーネント、ハードウェア、およびソフトウェアのバージョンが異なる可能性があります。まだプロトタイプとテストの段階にあります。

私が欲しいのは、ある種の統一されたバージョン追跡です。ここでは、バグや機能要求に対してソフトウェアビルドを追跡し、ボードの履歴/回路図を持ち、最も重要なのは、コンポーネントのどのバージョンが他のどのバージョンに対してテストされたかを追跡できることです。コンポーネント。つまり、ブートローダーバージョン1はボードバージョンAと組み合わせてテストに合格しましたが、当時は存在していましたが、必ずしも同じボードのバージョンBに対してテストされたわけではありませんでした。

個々の回転数の追跡は比較的簡単です。さまざまなソフトウェアコンポーネントを使用している開発者が数人います。それらを結び付けて、「PRODUCT VERSION 1.0」はこのコンポーネントのバッグで構成されており、相互にテストされており、他にはあまりありません。そうすれば、たとえばブートローダーを更新するときに、他のすべてのコンポーネントの現在のバージョンに対して回帰テストを行い、「PRODUCT VERSION 1.1」全体にラベルを付けて、誰かがバージョンを入手したとしても、そのスナップショットが何であるかを知ることができます。同じ日のアプリケーションコードの1.4。

理想的には、すべてのコンポーネントにわたってリビジョン履歴を個別に追跡し、ユーザーが特定のコンポーネントまたは製品全体に対してバグをログに記録できるようにします。その後、開発者はバグを適切なサブシステムに再割り当てできます。開発者は物理的に同じ場所に配置されていないため、Webベースのものが理想的です。

現在、Bugzillaを使用していますが、これはタスクにほど遠いものです。私はTracを見ていますが、それが仕事に適したツールかどうかはわかりません。ソース管理システム、改訂履歴システム、プロジェクト管理システムはたくさんあるようですが、必要なものをすべて処理できるものは見つかりませんでした。

それよりも複雑に聞こえるかもしれませんが、私たちがそれを使って塹壕に入っているときはかなり複雑です。これには解決策が必要です!

何か案は?

0 投票する
2 に答える
209 参照

svn - SVN - 1 つのプロジェクト、2 種類のリリースを処理する方法、唯一の違いはいくつかの追加ファイルがあります

1 つの方法は、1 つのコード ベースを保持し、エクスポート時に、リリース要件ごとにこれらの追加ファイルを手動で追加するか、追加しないことだと思います。ただし、コピーをエクスポートするたびにこれを行うことを覚えておく必要があり、忘れがちです。

これらのファイルを含めてSVNでプロジェクトのブランチを作成しましたが、問題はトランクを変更するたびに、ブランチまたはマージで再度行う必要があることです。2 つのコード ベースを維持する必要なしに、どうすれば目的のリリースを取得できますか? または、2 つのプロジェクト (トランク、ブランチ) の指定された部分ファイルを自動同期する方法はありますか? なにか提案を?