Skip to content

gakimaru/common_lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

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 ... 共通ライブラリの動作設定(ヘッダーファイル)。

--------------------------------------------------------------------------------
▼サブモジュール適用フォルダ

(なし)

--------------------------------------------------------------------------------
以上

About

開発環境サンプル:共通ライブラリ - Gitによるサブモジュールとブランチを活用した効果的なプロジェクト構造を構築

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors