gakimaru/common_lib
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
【開発環境サンプル】
■common_lib
--------------------------------------------------------------------------------
▼内容
・共通ライブラリのヘッダーファイル(*.h/*.inl)とライブラリファイル(*.a/*.lib)。
・ソースファイル(*.cpp)は別リポジトリ(common_lib_src)。
・共通ライブラリ開発用のプロジェクトファイルも別リポジトリ(common_lib_proj)。
・各プロジェクトへの共通ライブラリ提供パターンは下記の通り。
①common_lib(ブランチ) + common_lib_src(ブランチ) + common_lib_confidential(ブランチ) + common_lib_confidential_src(ブランチ) + common_lib_individual(ブランチ) + (プロジェクト専用リポジトリ)
★②common_lib(ブランチ) + common_lib_src(ブランチ) + common_lib_confidential(ブランチ) + common_lib_individual(ブランチ) + (プロジェクト専用リポジトリ)
★③common_lib(ブランチ) + common_lib_src(ブランチ) + common_lib_individual(ブランチ) + (プロジェクト専用リポジトリ)
④common_lib(ブランチ) + common_lib_confidential(ブランチ) + common_lib_individual(ブランチ) + (プロジェクト専用リポジトリ)
⑤common_lib(ブランチ) + common_lib_individual(ブランチ) + (プロジェクト専用リポジトリ)
⑥common_lib(ブランチ) + common_lib_src(ブランチ) + common_lib_confidential(ブランチ) + common_lib_confidential_src(ブランチ) + common_lib_individual(ブランチ) + common_lib_proj(ブランチ) ※ライブラリ開発用
⑦common_lib(本流) + common_lib_src(本流) + common_lib_confidential(本流) + common_lib_confidential_src(本流) + common_lib_individual(本流) + common_lib_proj(本流) ※ライブラリテスト用
★は最も標準的な構成。
ライブラリ成長の為にも、極力ソースコードを提供し、修正と追加のフィードバックを得る事を優先する。
ただし、機密性共通ライブラリ(暗号化アルゴリズムなど)のソースコード提供はしない。
- common_lib ... 共通ライブラリ(ヘッダーとライブラリファイル)。
- common_lib_src ... 共通ライブラリ(ソースファイル)。
- common_lib_confidential ... 機密性共通ライブラリ(ヘッダーとライブラリファイル)。
- common_lib_confidential_src ... 機密性共通ライブラリ(ソースファイル)。
- common_lib_individual ... 共通ライブラリの動作設定(ヘッダーファイル)。 ※各プロジェクトが個別にコミットする。
- common_lib_proj ... 共通/機密性共通ライブラリ開発用プロジェクト。
※「common_lib_proj」以外は全て、各プロジェクト向けのブランチを持つ。
【問題点】
Gitのリポジトリの複製機能とサブモジュールの仕組みを使用して各プロジェクトに共通モジュールを公開する。
セキュリティはリポジトリ単位でしか設定できない為、公開したリポジトリ内の全ブランチが見えてしまう。
この問題については、利害関係者全体の合意の元、極力不問として扱う。
合意できないプロジェクトに対しては、専用リポジトリを作成してコピーを提供する。この場合、最新版の提供やフィードバックが困難になる。
--------------------------------------------------------------------------------
▼ブランチ
・本流(master) ... 共通ライブラリ開発用
・(各プロジェクト向けブランチ)
--------------------------------------------------------------------------------
▼依存リポジトリ
・common_lib_individual ... 共通ライブラリの動作設定(ヘッダーファイル)。
--------------------------------------------------------------------------------
▼サブモジュール適用フォルダ
(なし)
--------------------------------------------------------------------------------
以上