9

フロントエンド コードとバックエンド コードを含む Web アプリケーションを github にプッシュしたいのですが、現在、ソース ツリーで管理されている依存関係がいくつかあります。バックエンド コードは Perl であり、CPAN からモジュールの依存関係をインストールすることはよく理解されているため、そこにはありません。私は主に jQuery ライブラリと、オープン ソースの他の Javascript ライブラリをいくつか持っています。

-mycode
-mydir
   -mycode
   -jquerylibs (with their license)
   -mycode
   -jslibs     (with their own licenses)
-mycode

デプロイの場合、これは非常に便利です。どのバージョンのライブラリが使用されているかを制御でき、CDN (コンテンツ配信ネットワーク) を使用して、まだオンラインではない可能性のあるリモート ドメインから jQuery などをロードすることをユーザーに強制しないからです。 3年か5年で。

ただし、ライセンス ファイルを含めたとしても、アプリケーションに他のプロジェクトのソースを含めることが適切かどうかはわかりません。

このような依存関係をオープン ソースの Web アプリケーションに含めて、依存関係を尊重しながら、実際の展開の利便性を維持する最善の方法は何ですか?

4

5 に答える 5

1

JS の依存関係にBowerのようなパッケージ管理を使用することを検討しましたか? このフロントエンドのパッケージ管理はより一般的になり、バックエンド モジュール (CPAN、gems、pip など) に似ています。

于 2013-08-13T20:49:24.000 に答える
0

また、アプリに必要なライセンスの種類も確認します。ダウンローダーがライセンスの種類を変更または変更して、それを使用できるようにするオープンソースの目的でいくつかあります。もちろん、GPL ライセンスや MIT ライセンスのバリエーションもあります。あなたのニーズに合ったものを探してください。

于 2013-06-24T22:00:12.113 に答える
0

永遠に存在するものは何もありません - ここであなたが答えようとしていると思う質問は、真実の情報源がそれらに依存するコードの存続期間にわたって持続するように物事を設定する方法です.

ツリーにソースを含めることは、それがいくつかのことであり、特定のリリースに依存している場合は完全に合理的です。

別の方法として、とにかく GitHub にプッシュしているので、必要な前提条件をフォークし、アプリケーションに適切にタグ付けしてから、それらを Git サブモジュールとして含めることができます。そうすれば、少なくともメイン アプリケーションのソース コードの標準的な信頼できる情報源と同じくらい長く存在します。

それらが現在 GitHub になくてもオープン ソースである場合は、それらを自分で GitHub に追加してから、これらの新しい GitHub リポジトリをサブモジュールとしてプロジェクトに追加するのが妥当です。

于 2013-03-19T18:52:09.773 に答える
0

ライセンスに従う限り、プロジェクトにソースを含めることは問題ありません。気を散らすかもしれませんが。jQuery などに精通していない人は、それがサード パーティのコードであることを認識していない可能性があります。彼らは、それがあなたのプロジェクトとは無関係であることを認識せずに、何かを掘り下げて時間を無駄にするかもしれません。

いずれにせよ、依存関係を readme ファイルに文書化する必要があります (例: README、INSTALL、DEPENDS など)。現在 jQuery xyz を使用している可能性がありますが、ソフトウェアに影響を与えるバグが含まれている可能性があります。したがって、修正済みリリースが常に理想的であるとは限りません。

通常、ソースをバンドルする代わりに (ソースは変更されず、ほとんど追跡する必要がないため)、代わりにヘルパー bash または Perl プログラムを作成して、ネットから依存関係を取得します。そうすれば、多くの読書や手作業をしたくない人のためにおそらく機能する簡単なボタンがありますが、他のプロジェクトの混乱があなた自身のコードから人々の気を散らすことはなく、依存関係はありませんリポジトリによって不必要に追跡されることはありません。

追加:

可能であれば、ツリー内でサードパーティのソフトウェアを自分のソフトウェアと完全に分離することを好む必要があります。これにより、サードパーティのソフトウェアがどこから始まり、自分のソフトウェアがどこにあるのかが明確になります (繰り返しになりますが、人々が自分のソフトウェアと間違えないようにするためです。これは無意味な結果につながる可能性があります)あなたの要求など)。

* <root>/
`-* README
`-* extlib/  <-- third party stuff can be tucked away in here, for example
| `-* <third_party_code>
| `-* jquery-x.y.z/
| | `-* ...
| `-* other-x.y.z/
|   `-* ...
`-* include/
`-* Makefile
`-* src/
  `-* <your_code>
  `-* main.c
  `-* ...

展開時に混合する必要がある場合は、ビルド システムに適切な場所にコピーまたはリンクさせます。

于 2013-05-31T13:51:44.323 に答える