私が取り組んでいるプロジェクトを GPL の下で Sourceforge にアップロードしようとしています。それはgitとうまく機能し、Sourceforgeが物事を提示する方法です。
私のプロジェクトはクロスプラットフォームの C++ アプリケーションであり、次のもので構成されています。
- 実際の作業を行うライブラリ部分
- ライブラリ部分を使用する別の GUI 部分
- ライブラリのコンパイルにインクルード パスが必要なオープン ソース ライブラリ
- 変更されたオープン ソース ライブラリは、ある意味でこのプロジェクトの直接の一部でもあります。
- すべてのライブラリのコンパイル済み出力
これを整理する最良の方法は何ですか?
自分で作業している間、プロジェクトルートから次のようにしています:
/LibPortion
/GuiPortion
/libs/open source libraries
/libs/modified open source libraries
/libs/compiled/ コンパイル済みライブラリを保持します。 Cygwin ライブラリ ファイルなどのオープン ソース ライブラリ以外のもの
これは物事を整理する賢明な方法ですか?それは慣習と期待に一致していますか?
プロジェクトをチェックインするとき、プロジェクトの一部だけでなく、オープン ソース ライブラリもチェックインすることに意味がありますか? 新しい開発者のためにプロジェクトをセットアップして実行する際の摩擦を最小限に抑えるため、そうすることは理にかなっていると思います。確かに、少なくとも変更されたオープン ソース ライブラリをチェックインする必要があります。
また、コンパイルされたライブラリの下にあるリポジトリに何を含めるのが理にかなっていますか? 私のプロジェクトはクロスプラットフォームであるため、その内容はビルドターゲットごとに異なるため、そのディレクトリを無視して空のままにするようにgitに指示するのが最善かもしれないと考えています。
ただし、すべてのライブラリを自分でビルドおよび/またはダウンロードする手間をかけたくない人にとっては、主要なプラットフォーム用に事前にコンパイルされたライブラリを提供することも非常に良いようです. それらを共有する最もスマートな方法は何ですか? 私は Sourceforge を見ていますが、私の git リポジトリの一部ではない場合、それらを共有する方法がすぐにはわかりません。