問題タブ [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.
release-management - 複数のサブ製品および複数のリリースにわたる更新を管理するためにどのような戦略がありますか?
出荷される複数の拡張機能を備えた製品があり、それぞれに独自のバージョン番号があります。(具体的には、複数の拡張機能を備えたxulrunnerアプリケーションがあります)。xulrunnerの拡張機能マネージャーは更新機能を提供し、その拡張機能のバージョン番号が増加したときにいつでも関数を呼び出すようにします。これにより、アップデートで必要なクリーンアップを実行するためのフックが得られます。
ただし、バージョン番号を増やす必要のある拡張機能と、基本的に変更されていない拡張機能を追跡するための適切な方法を見つけるのは非常に困難になっています。私たちが想像できる最善のプロセスは、1)チケットを閉じるときに事前作業を追加することです(すべてのチケットには、変更が必要な内線番号を指定する一連のフラグを付けることができます)
2)最後から内線番号に変更があったチケットを検索するクエリを作成します特定のクライアント向けのリリースおよび3)製品全体の拡張バージョン番号の更新
これはすべて、開発中とリリース時の両方で面倒であり、エラーが発生しやすいようです。助言がありますか?
bazaar - バザールでのタグ作成の日付の決定
バザールの使用:
リビジョンがタグ付けされた日付を判別することは可能ですか?これは、コードがいつリリースされたかを判断するのに役立ちます。注意してください、私はタグ付けされたリビジョンの日付ではなく、リビジョンがタグ付けされた日付にあまり興味がありません。
eclipse - Eclipse ant エディターで取り消しを有効にするにはどうすればよいですか?
Eclipse の ant エディターで Undo が機能しません。Ctrl-Z を押しても何も起こりません。
どういうわけか元に戻すことは可能ですか、それともバグですか?
Windows XP Professional で Eclipse 3.4.2 (Ganymede) を使用しています。
php - SVN からの展開中に開発環境とライブ環境の間の構成の違いを維持する
ExpressionEngine CMS (php) を使用して Web サイトを作成します。サイトごとに、Subversion リポジトリをセットアップし、EE のインストールと、使用されているカスタム テンプレート、画像、JavaScript などをコミットします。リポジトリには、すべての環境変数を含むファイルと .htaccess ファイルが含まれています。
開発に使用するポストコミットを介して更新されたリポジトリの作業コピーを備えた開発サーバーがあります。リリースの準備ができたら、Subversion でブランチを作成し、本番環境に必要な変更を加え、リリース番号をタグ付けし、リポジトリをエクスポートし、ライブ サーバーの新しいディレクトリにアップロードし、ファイルを適切な場所にシンボリック リンクします。ロールバックは、シンボリック リンクを以前のリリースに戻すのと同じくらい簡単です。
問題は、開発サーバーと運用サーバーで異なる必要がある環境変数を変更する必要があるステップです。これは、間違った場所にリダイレクトする htaccess ルールのコメント化 (解除) 、ドメインが異なるため Google マップ API キーの交換、JavaScript を 1 つの難読化ファイルに最小化してサイズと http 接続をダウンさせるスクリプトの実行などです。 .
問題は、これをより自動化するにはどうすればよいかということです。リリース手順を最小限に抑えたいと考えています。Capistrano や Make などのツールの存在は知っていますが、必要なすべてのファイルを変更する方法がわかりません...どのように整理しますか? 数週間に 1 回程度の頻度で発生する場合、自動化に時間を費やす価値はありますか?
ruby-on-rails - Railsアプリを複数の場所にデプロイする
同じRailsアプリを、アプリ名、ロゴ、スタイルシートなどが異なる2つの異なる場所にデプロイしようとしています。
私はenvironments/production.rbに保存しているAPP_NAMEとHOST_NAME変数に基づいてコードを動作させています。次に、実際にデプロイする必要があります。本番マシンで環境ファイルを手動で編集するよりも優れたソリューションが必要です。
私がそれを行うために見ることができる唯一の方法は、新しい本番環境(たとえば、production_app2)を作成し、それらでAPP_NAMEとHOST_NAMEを異なる方法で定義することです。もっと良い方法はありますか?
.net - Msbuild初心者向けの入門書が必要
私たちは、vb/c# .net で開発された中規模の Windows アプリケーションを維持しています。今でも、このアプリのビルドとデプロイのプロセスは手動です。私はまだ知識がないMSBuildを使用して、このプロセスを自動化することを決意しています。
私たちのアプリのビルド構造は単純で、一連のプロジェクトは既に 4 つのソリューション (.sln) にグループ化されており、4 つの sln を順番にビルドするだけで済みます。次に、プロジェクト (ビルドする最後の sln の一部) をディレクトリに公開します。それだ。すでに 30 分の手動ビルド時間を消費している単純なプロセスであり、少なくとも 1/4 の時間で msbuild を使用して手動干渉なしでこれを達成できると確信しています。
私の目標はすべてうまく設定されました。私は自分のプロセスを達成するために MSBuild リソースを Web で探し始めましたが、多くのことを見て混乱している可能性があります。私の単純なシナリオの開始方法と開始場所についてのポインタまたは適切な説明が必要です。助けていただければ幸いです。
version-control - 1 つのコードベースから複数の製品を開発するための戦略
私は、(間もなく)複数の異なるバージョン(Trial、Professional、Enterpriseなど)に分岐するプロジェクトに取り組んでいます。
私は Subversion が最初にリリースされたときから (そしてそれ以前は CVS も) 使用してきたので、ブランチとタグの抽象的な概念に慣れています。しかし、私のすべての開発経験において、実際にトランク コードに取り組んだことはありません。ごくまれに、他の開発者 (リポジトリを所有していた) が特定のブランチへの変更をコミットするように私に依頼し、私は彼が私に求めたことを実行しました。私は「融合」を奇妙な黒魔術と考えており、注意深い監督下でのみ試みたことがあります.
しかし、この場合、私はリポジトリを担当しており、この種のことは私にとってまったく新しいことです。
コードの大部分はすべての製品で共有されるため、コードは常にトランクにあると想定しています。また、各製品のリリース ビルドのタグを使用して、各バージョンのブランチを用意することも想定しています。
しかし、それ以上のことはよくわかりません。それを台無しにする方法は千と 1 通りあると確信しています。できればネタバレは避けたいです。
たとえば、プロ バージョンとエンタープライズ バージョンの新機能を開発したいが、その機能をデモ バージョンから除外したいとします。どうすればそれを達成できますか?
また、日々の開発では、作業中に開発スナップショットをブランチからブランチに切り替える (またはトランクに戻す) 必要があると想定しています。混乱を最小限に抑える最善の方法は何ですか?
他にどのような戦略、ガイドライン、ヒントをお勧めしますか?
アップデート:
では、大丈夫です。
分岐はまったく正しい戦略ではないようです。そのため、質問のタイトルを変更して「分岐」の焦点を削除し、質問を広げています。
私の他のオプションのいくつかは次のとおりだと思います。
1) すべての機能を備えたフル バージョンのソフトウェアを常に配布し、ライセンスを使用して、ライセンスの承認に基づいて機能を選択的に有効または無効にすることができます。もし私がこの道を選んだとしたら、if/else ブロックのねずみの巣が、ある種のシングルトン「ライセンス マネージャー」オブジェクトを呼び出すことを想像できます。このような場合、コードのスパゲティ現象を回避する最善の方法は何ですか?
2) 依存性注入を使用できます。しかし、一般的には、私はそれを嫌います (ロジックをソース コードから構成ファイルに移動し、プロジェクトを理解しにくくするため)。それでも、完全なアプリを配布し、実行時に機能を選択しています。可能であれば、エンタープライズ バージョンのバイナリをデモ ユーザーに配布したくありません。
3) プラットフォームが条件付きコンパイルをサポートしていれば、#IFDEF ブロックとビルド フラグを使用して機能を選択的に含めることができます。これは、GUI パネル全体のような大きくて分厚い機能に適しています。しかし、小規模で分野横断的なコンサートの場合はどうでしょうか?たとえば、ロギングや統計追跡などはどうでしょうか?
4) ビルドに ANT を使用しています。ANT のビルド時の依存性注入のようなものはありますか?
makefile - 多くのターゲット ディレクトリを持つ GNU make
多くの HTML ファイルの生成を既存の .xml ファイルに統合する必要がありますMakefile
。問題は、HTML ファイルが多くの異なるディレクトリに存在する必要があることです。私の考えは、ソース ファイル (*.st) を対応する html ファイルに変換する暗黙のルールを作成することです。
およびすべての html ファイルに依存するルール
HTML ファイルが builddir にない場合、makeは暗黙のルールを検出しません: *** No rule to make target
. 暗黙のルールをそのように変更すると
見つかりましたが、プロジェクト内のほぼすべてのファイルに対して暗黙のルールを設定する必要があります。GNUマニュアルのImplicit Rule Search Algorithmによると、ルール検索は次のように機能します。make
- ターゲット名t全体をdと呼ばれるディレクトリ部分とnと呼ばれる残りの部分に分割します。たとえば、tが
src/foo.o
の場合、dはsrc/
であり、nはfoo.o
です。- ターゲットの 1 つがtまたはnに一致するすべてのパターン ルールのリストを作成します。ターゲット パターンにスラッシュが含まれている場合は、 tと照合されます。それ以外の場合は、n に対して。
暗黙のルールが見つからないのはなぜですか? また、GNUmake
が使用されていると仮定すると、最も洗練されたソリューションは何でしょうか?
これは my の簡略版ですMakefile
:
javascript - デプロイ前に JavaScript コードに何をしますか?
展開プロセスに JS を縮小するステップはありますか? コメントと console.logs を残して自動的に削除できる、JavaScript 用のプリプロセッサはありますか? あなたの JavaScript マシンは GWT または Script# によって生成されていますか? 展開を自動化するために ANT または別のツールを使用していますか?
エディターからそのまま出てきたように見える JavaScript がたくさんあり、空白とコメントがたくさんあります。デプロイされたコードの状態を気にしないことによるものと、オープン Web の精神によるものはどれくらいあるのでしょうか?