diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..072ade1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +# 依存パッケージの定期更新 PR(Dependabot version updates) +# 脆弱性検出(Dependabot alerts / security updates)はリポジトリ設定で有効化する(本ファイルとは独立に動く.ENV_03 参照) +# 更新頻度は monthly: 保守中心のプロジェクトで,OpenCvSharp・OnnxRuntime 等の更新は解析結果を変えうるため,1 件ずつ確認できる頻度にする +version: 2 +updates: + - package-ecosystem: "nuget" + directory: "/Tongue extraction" + schedule: + interval: "monthly" + open-pull-requests-limit: 5 + commit-message: + prefix: "[update]" + groups: + minor-and-patch: + update-types: + - "minor" + - "patch" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + commit-message: + prefix: "[update]" + groups: + actions: + patterns: + - "*" diff --git a/.gitignore b/.gitignore index a1fa515..e28ee7d 100644 --- a/.gitignore +++ b/.gitignore @@ -22,9 +22,15 @@ # .claude/hooks/ の Python フックとそのテスト(tests/test_hooks.py)が生成するバイトコードキャッシュ __pycache__/ -# -- プロジェクト立ち上げ時に有効化する(.claude/rules/git-conventions.md 参照) -- -# .env -# .env.* -# node_modules/ -# build/ -# dist/ +# -- DeepTIAS(C# / Visual Studio) -- +# ビルド出力 +[Bb]in/ +[Oo]bj/ +# NuGet で復元されるパッケージ +packages/ +# Visual Studio の作業フォルダ・個人設定 +.vs/ +*.suo +*.user +# テスト結果 +TestResults/ diff --git a/ColorSubdivision/ColorSubdivision.csproj.user b/ColorSubdivision/ColorSubdivision.csproj.user deleted file mode 100644 index 51f6223..0000000 --- a/ColorSubdivision/ColorSubdivision.csproj.user +++ /dev/null @@ -1,13 +0,0 @@ - - - - publish\ - - - - - - en-US - false - - \ No newline at end of file diff --git a/Tongue extraction/DeepTIAS2.7.csproj b/Tongue extraction/DeepTIAS2.7.csproj index 39cfaef..cda6dde 100644 --- a/Tongue extraction/DeepTIAS2.7.csproj +++ b/Tongue extraction/DeepTIAS2.7.csproj @@ -135,9 +135,6 @@ - - Always - diff --git a/Tongue extraction/DeepTIAS2.7.csproj.user b/Tongue extraction/DeepTIAS2.7.csproj.user deleted file mode 100644 index aeeb0cb..0000000 --- a/Tongue extraction/DeepTIAS2.7.csproj.user +++ /dev/null @@ -1,13 +0,0 @@ - - - - publish\ - - - - - - ja-JP - false - - \ No newline at end of file diff --git "a/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" new file mode 100644 index 0000000..281786f --- /dev/null +++ "b/docs/02_ENV/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" @@ -0,0 +1,62 @@ +# 環境構築手順 (Environment Setup) + +DeepTIAS をビルド・実行するための開発環境の構築手順.新しく参加したメンバーや,PC を入れ替えたときに上から順に行う. + +## 前提 (Prerequisites) + +- Windows 10 / 11(x64),メモリ 8 GB 以上 +- GitHub のアカウントがあり,リポジトリ `rintoHasegawa/DeepTIAS` へのアクセス権を持っていること + +## 手順 (Steps) + +### 1. Visual Studio 2022 Community を入れる + +ワークロード「.NET デスクトップ開発」と「C++ によるデスクトップ開発」を選んでインストールする. +コマンドで入れる場合は以下を実行する. + +```powershell +winget install Microsoft.VisualStudio.2022.Community --override "--add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --passive" +``` + +- ※ 「C++ によるデスクトップ開発」は `rgb2lab\TongueAnalysis.exe`(Calib モードで使う)が必要とする VC++ のデバッグ用ランタイムを入れるために必要. + +### 2. Git・Git LFS・GitHub CLI・Python を入れる + +```powershell +winget install Git.Git GitHub.cli Python.Python.3.12 +git lfs install +``` + +- ※ Git for Windows には Git LFS が同梱されている. +- ※ Python は Claude Code のフック実行に使う(アプリ自体は Python を使わない). + +### 3. リポジトリを取得する + +```powershell +git clone https://github.com/rintoHasegawa/DeepTIAS.git +cd DeepTIAS +git lfs pull +``` + +- ※ モデル(`*.pb`,`*.onnx`)は Git LFS で管理している.`git lfs pull` 後に `Tongue extraction\models\` の各ファイルが数十 MB あることを確認する(数百バイトしか無ければ LFS の取得に失敗している). + +### 4. ビルドする + +Visual Studio で `Tongue extraction.sln` を開き,構成を `Release`・プラットフォームを `x64` にしてビルドする.NuGet パッケージは初回ビルド時に自動で復元される. +コマンドでビルドする場合は [ENV_04_開発コマンド](ENV_04_開発コマンド.md) を参照する. + +### 5. 入力データを置いて実行する + +※ 未検証(実行に必要な外部バイナリの取り込み後に確定する) + +アプリは作業ディレクトリを基準に `..\Input`・`..\Output` を読み書きする.ビルド出力 `Tongue extraction\bin\x64\Release\` から起動する場合,入力は以下に置く. + +```text +Tongue extraction\bin\x64\ +├── Input\ +│ ├── TongueImage\ # 舌画像(.bmp) +│ └── CalibrationColorChart\ # カラーチャート画像(Calib モードのみ.舌画像と同名) +├── Output\ # 解析結果(実行時に作られる) +└── Release\ + └── DeepTIAS2.7.exe +``` diff --git "a/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" new file mode 100644 index 0000000..fd25534 --- /dev/null +++ "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" @@ -0,0 +1,34 @@ +# 管理者用環境構築手順 (Admin Setup) + +プロジェクト作成時に一度だけ行う初期設定. + +## GitHub リポジトリ (GitHub Repository) + +- リポジトリ: `rintoHasegawa/DeepTIAS`(Private)※ 作成済み +- メンバーを追加するときは,GitHub の Settings → Collaborators から招待する + +## Git LFS + +- `.gitattributes` で `*.pb`・`*.onnx` を Git LFS の対象にしている ※ 設定済み +- 重みや大きなバイナリを別の拡張子で追加するときは,先に `git lfs track "*.拡張子"` で対象に加える +- ※ GitHub の LFS 無料枠はストレージ・転送量とも 10 GiB + +## GitHub リポジトリのセキュリティ設定 (Security Settings) + +Dependabot alerts と Dependabot security updates を有効化する(リポジトリごとに既定で OFF). + +```bash +gh api -X PUT repos/rintoHasegawa/DeepTIAS/vulnerability-alerts +gh api -X PUT repos/rintoHasegawa/DeepTIAS/automated-security-fixes +``` + +有効化を確認する. + +```bash +gh api repos/rintoHasegawa/DeepTIAS/vulnerability-alerts # 204 なら有効 +gh api repos/rintoHasegawa/DeepTIAS/automated-security-fixes # {"enabled":true} なら有効 +``` + +## テンプレートとの同期 (Template Sync) + +- テンプレート(`rintoHasegawa/programming-template`)の更新は `/sync-template` で取り込む diff --git "a/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" new file mode 100644 index 0000000..a3a7f45 --- /dev/null +++ "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" @@ -0,0 +1,14 @@ +# 開発コマンド (Development Commands) + +コマンドは PowerShell から実行する.`msbuild` は「Developer PowerShell for VS 2022」で使える.通常の PowerShell では `& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe"` のようにフルパスで呼ぶ. + +| 用途 | コマンド | +| --- | --- | +| NuGet 復元 | `msbuild "Tongue extraction.sln" -t:restore -p:RestorePackagesConfig=true` | +| ビルド | `msbuild "Tongue extraction.sln" -p:Configuration=Release -p:Platform=x64` | +| 実行 | `cd "Tongue extraction\bin\x64\Release"; .\DeepTIAS2.7.exe`(作業ディレクトリを exe の場所にして起動する) | +| テスト | 未定(テストプロジェクト作成後に記入) | + +- ※ 復元・ビルドは Visual Studio Build Tools 2022(17.14)の MSBuild で動作を確認した.Community 版の MSBuild のパスは未検証. +- ※ ビルド時の警告「規則セット ファイル "MinimumRecommendedRules.ruleset" を検出できませんでした」は Build Tools に規則セットが含まれないために出るもので,ビルド結果には影響しない. +- ※ 実行は未検証(実行に必要な外部バイナリの取り込み後に確定する).