問題概要#
GitHub公開後にLICENSEファイルに虚偽の第三者データ参照記載が発覚しました。コード内には該当データが存在しないにもかかわらず、LICENSEに記載が残っていました。
原因#
段階的に第三者データ(ArduPilot Rascal空力係数等)を削除・置換したが、LICENSEファイルの更新を漏らしたことが原因です。
詳細な原因#
- 段階的削除の落とし穴: コード内の第三者データは削除したが、LICENSEファイルの更新を忘れた
- 検証スクリプトの盲点:
verify_copyright_compliance.shがLICENSEを検証対象から除外していた - 原則の無視: 「検証の例外を作ってはならない」という原則を無視した結果
教訓: 重要ファイル(LICENSE、README.md等)こそ、検証対象から除外してはならない。
解決方法#
即座の対処#
ステップ1: LICENSEファイルの修正
- LICENSEファイルから第三者データ参照セクションを削除
- 修正内容をコミット
ステップ2: 全ファイルの手動確認
検証スクリプトに依存せず、全ファイルを手動grepで再確認:
grep -rn "Rascal\|ArduPilot" --include="*.md" --include="*.py" --include="LICENSE" .ステップ3: Git履歴のクリーンアップ(必要に応じて)
虚偽記載が複数コミットに渡る場合:
# 注意: force pushが必要なため、慎重に実行
rm -rf .git
git init
git add .
git commit -m "Initial commit with corrected LICENSE"
git remote add origin <repository-url>
git push -f origin main検証スクリプトの改善#
LICENSEを明示的に検証対象に含める:
#!/bin/bash
# verify_copyright_compliance.sh
# 第三者データ参照の検出(LICENSEを明示的に含む)
echo "=== LICENSE検証 ==="
grep -rn "Rascal\|ArduPilot" --include="LICENSE" . || echo "✅ LICENSE: 第三者データ参照なし"
echo "=== ドキュメント検証 ==="
grep -rn "Rascal\|ArduPilot" --include="*.md" --exclude-dir=node_modules . || echo "✅ ドキュメント: 第三者データ参照なし"
echo "=== コード検証 ==="
grep -rn "Rascal\|ArduPilot" --include="*.py" --include="*.js" . || echo "✅ コード: 第三者データ参照なし"最終チェックリストの追加#
GitHub公開前の必須チェック項目:
- LICENSE内容確認(第三者データ参照がないか)
- README.md内容確認(誤った記載がないか)
- 全ドキュメントディレクトリ確認(除外設定なし)
- コミットメッセージに問題を示唆する表現なし(例: “Rascal削除”)
- package.json、setup.py等の設定ファイル確認
予防策#
1. 重要ファイルを検証スクリプトの必須項目リストに追加#
必須検証対象ファイル:
- LICENSE
- README.md
- package.json / setup.py
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
これらのファイルは検証対象から除外してはならない。
2. 除外設定の理由を明記#
検証スクリプトで除外設定を使用する場合、必ず理由をコメントで明記:
# ✅ 良い例
--exclude-dir=node_modules # 外部依存パッケージ、検証不要
--exclude-dir=.venv # Python仮想環境、検証不要
# ❌ 悪い例
--exclude-dir=docs # 理由不明、除外すべきでない可能性3. 定期的なレビュー#
除外設定を定期的にレビューし、不要な除外を削除:
- 月次レビュー: 除外設定の妥当性確認
- リリース前レビュー: 全除外設定の再確認
4. 第三者による精査#
GitHub公開前に第三者による全ファイル精査を実施:
- 別の開発者がLICENSE、README.mdを読む
- 検証スクリプトの除外設定を確認
- 疑わしい記載がないか総点検
まとめ#
LICENSE虚偽記載問題は、重要ファイルを検証対象から除外したことが根本原因です。
原因:
- LICENSEファイルの更新漏れ
- 検証スクリプトがLICENSEを除外
- 「検証の例外を作ってはならない」原則の無視
解決策:
- LICENSEファイルの修正と全ファイルの手動確認
- 検証スクリプトにLICENSEを明示的に含める
- 最終チェックリストの追加
予防策:
- 重要ファイルを必須検証対象に指定
- 除外設定に理由を明記し、定期的にレビュー
- 第三者による精査を実施
LICENSE、README.md等の重要ファイルこそ、最優先で検証すべきです。
関連記事#
- 【トラブル備忘】Excelテンプレートのデフォルト値が使われる - セル空欄・NaN判定(記事E-13)
© 2025 Yaaasoh. All Rights Reserved.