- Create modular IDataNode interface with tree navigation, pattern matching, and typed access - Implement IDataTree container with manual hot-reload capabilities - Add DataTreeFactory for flexible data source management - Support hierarchical data with per-node blobs and children - Enable pattern matching search (*wildcards) across entire subtrees - Provide type-safe property access (getString, getInt, getBool, getDouble) - Include hash system for validation and synchronization (getDataHash, getTreeHash) - Add property-based queries with lambda predicates for gameplay data filtering - Fix window positioning system to eliminate UI overlaps - Enforce explicit type declarations (ban auto keyword) in CLAUDE.md coding standards 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
12 KiB
12 KiB
🤖 Warfactory Complete Automation Guide
Ce guide décrit le système d'automation complet de Warfactory, conçu pour automatiser complètement le workflow de développement multi-engines avec Claude Code.
🎯 Vue d'ensemble de l'automation
Le système combine 12 couches d'automation :
- 🔧 Dependency Management - FetchContent automatique
- 🧪 Testing per Engine - CTest intégré
- 📚 Documentation Auto - Doxygen pour tous les engines
- 🔗 Export/Import System - Engines peuvent s'importer mutuellement
- ⚙️ Multiple Build Configs - Debug/Release/Testing/Profiling
- ⚡ Precompiled Headers - Compilation accélérée
- 📦 Packaging Auto - DEB/RPM/NSIS/Bundle
- 🛡️ Advanced Defenses - Fuzzing, formal verification, etc.
- 🤖 Claude Code Targets - Workflow spécialisé pour Claude
- 📊 Performance Monitoring - Benchmarks automatiques
- 🔍 Static Analysis - Validation de code continue
- 🚀 CI/CD Simulation - Pipeline complet local
🚀 Installation complète
# 1. Setup des outils avancés
./scripts/setup_advanced_tools.sh
# 2. Application automation complète
./scripts/apply_full_automation.sh
# 3. Build avec automation complète
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_ADVANCED_TOOLS=ON -DENABLE_BENCHMARKING=ON ..
# 4. Workflow complet Claude Code
make claude-workflow
⚙️ Configurations de build disponibles
🐛 Debug Mode (Développement)
cmake -DCMAKE_BUILD_TYPE=Debug ..
# → Tous les sanitizers, assertions, debug symbols
# → Optimisation: -O0 -g
# → Parfait pour développement avec Claude Code
🚀 Release Mode (Production)
cmake -DCMAKE_BUILD_TYPE=Release ..
# → Optimisation maximale, pas de debug
# → Optimisation: -O3 -DNDEBUG
# → Parfait pour déploiement
🧪 Testing Mode (CI/CD)
cmake -DCMAKE_BUILD_TYPE=Testing ..
# → Coverage activé, optimisation minimale
# → Optimisation: -O0 -g --coverage
# → Parfait pour mesurer la couverture de test
📊 Profiling Mode (Performance)
cmake -DCMAKE_BUILD_TYPE=Profiling ..
# → Profiling activé, optimisation modérée
# → Optimisation: -O2 -g -pg
# → Parfait pour analyser les performances
📦 Dependency Management automatique
Librairies auto-installées par FetchContent :
- Redis++ : Communication inter-engines
- nlohmann/json : Sérialisation uniforme
- spdlog : Logging unifié
- Catch2 : Framework de test
- Google Benchmark : Mesure de performance
- Microsoft GSL : Guidelines Support Library
Usage dans le code :
#include <sw/redis++/redis++.h> // Communication
#include <nlohmann/json.hpp> // JSON
#include <spdlog/spdlog.h> // Logging
#include <catch2/catch_test_macros.hpp> // Tests
#include <benchmark/benchmark.h> // Benchmarks
#include <gsl/gsl> // Safety contracts
🧪 Testing automatique par engine
Structure auto-générée :
engines/Economy-Engine/
├── tests/
│ └── test_economy-engine.cpp # Tests unitaires
├── benchmarks/
│ └── bench_economy-engine.cpp # Benchmarks performance
└── CMakeLists.txt # Configuration auto
Commandes de test :
# Tests d'un engine spécifique
make economy-engine-tests
ctest -R economy-engine
# Tests de tous les engines
make test-all-engines
ctest --parallel 4
# Benchmarks de performance
make economy-engine-bench
make bench-all-engines
📚 Documentation automatique
Génération auto avec Doxygen :
# Documentation d'un engine
make economy-engine_docs
# Documentation de tous les engines
make docs-all
# Visualiser
open build/docs/economy-engine/html/index.html
Configuration automatique :
- HTML + XML générés
- Source browser activé
- Code inline inclus
- Diagrammes automatiques
🔗 Export/Import entre engines
Usage automatique :
# Dans Economy-Engine/CMakeLists.txt - automatique
warfactory_add_full_automation(economy-engine)
# Dans un autre engine qui dépend d'Economy
find_package(economy-engine REQUIRED)
target_link_libraries(war-engine PRIVATE Warfactory::economy-engine-lib)
Installation des packages :
# Installer pour utilisation externe
make install
# Ou créer package
make package-all
⚡ Precompiled Headers automatiques
Headers pré-compilés automatiquement :
- STL containers (vector, string, unordered_map...)
- I/O streams (iostream, fstream...)
- Threading (thread, future, atomic...)
- Math (cmath, algorithm...)
- Warfactory contracts
- Third-party libs (si disponibles)
Fichier pch.h auto-généré dans chaque engine
🤖 Targets d'automation pour Claude Code
Workflow de développement optimal :
# Workflow complet Claude Code (build + test + validate)
make claude-workflow
# Build rapide tous les engines
make build-all-fast
# Validation complète du code
make validate-all
# Simulation CI/CD complète
make ci-simulation
# Rebuild complet propre
make rebuild-all
Static analysis automatique :
# Cppcheck sur tous les engines
make cppcheck-all
# clang-tidy sur tous les engines
make clang-tidy-all
# Validation combinée
make validate-all
📦 Packaging automatique multi-plateforme
Formats supportés automatiquement :
Linux :
- DEB packages (Ubuntu/Debian)
- RPM packages (Fedora/CentOS)
- TGZ/ZIP archives
Windows :
- NSIS installer
- WIX installer (MSI)
- ZIP archives
macOS :
- Bundle (.app)
- DragNDrop (.dmg)
- TGZ archives
Commandes de packaging :
# Package par défaut
make package
# Tous les formats
make package-all
# Source seulement
make package-source
# Binaires seulement
make package-binary
Installation sélective par composants :
- engines : Executables de jeu
- libraries : Libs de développement
- headers : Headers C++
- documentation : Docs générées
🔧 Options CMake complètes
Options principales :
-DCMAKE_BUILD_TYPE=Debug|Release|Testing|Profiling
-DENABLE_ADVANCED_TOOLS=ON # Fuzzing, verification, etc.
-DENABLE_STATIC_ANALYSIS=ON # Clang Static Analyzer
-DENABLE_FUZZING=ON # Fuzzing automatique
-DENABLE_BENCHMARKING=ON # Google Benchmark
Build examples complets :
# Développement Claude Code
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_ADVANCED_TOOLS=ON ..
# Testing avec coverage
cmake -DCMAKE_BUILD_TYPE=Testing -DENABLE_BENCHMARKING=ON ..
# Production optimisée
cmake -DCMAKE_BUILD_TYPE=Release ..
# Profiling performance
cmake -DCMAKE_BUILD_TYPE=Profiling -DENABLE_BENCHMARKING=ON ..
🎯 Targets disponibles par engine (exemple: economy-engine)
Build & Core :
make economy-engine # Build basic
make economy-engine-lib # Build library
make economy-engine-tests # Build tests
make economy-engine-bench # Build benchmarks
Documentation :
make economy-engine_docs # Generate docs
Testing :
make economy-engine_unit_tests # Unit tests
make economy-engine_integration_tests # Integration tests
make economy-engine_benchmarks # Performance tests
Advanced Testing :
make economy-engine_fuzz_all # All fuzzing
make economy-engine_cbmc # Formal verification
make economy-engine_helgrind # Race detection
make economy-engine_coverage_run # Coverage report
Static Analysis :
make economy-engine_cppcheck # Cppcheck
make economy-engine_pvs # PVS-Studio
ABI :
make economy-engine_abi_dump # Create ABI dump
make economy-engine_abi_check # Check compatibility
🎮 Targets globaux (tous les engines)
Build :
make all-engines # Build all
make build-all-fast # Quick build
make rebuild-all # Clean + rebuild
Testing :
make test-all-engines # All tests
make bench-all-engines # All benchmarks
make coverage-all-engines # All coverage
Advanced :
make fuzz-all-engines # Fuzzing massif
make analyze-all-engines # Static analysis
make concurrency-all-engines # Concurrency analysis
make test-everything # TOUT en parallèle
Documentation :
make docs-all # All documentation
Validation :
make validate-all # Complete validation
make cppcheck-all # Cppcheck on all
make clang-tidy-all # clang-tidy on all
Claude Code Workflow :
make claude-workflow # Dev workflow
make ci-simulation # CI/CD simulation
Packaging :
make package # Default package
make package-all # All formats
make package-source # Source distribution
make package-binary # Binary distribution
🔄 Workflow types recommandés
👨💻 Développement quotidien avec Claude
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make claude-workflow
# → Build + test + validation en une commande
🧪 Testing & QA
mkdir build-testing && cd build-testing
cmake -DCMAKE_BUILD_TYPE=Testing -DENABLE_BENCHMARKING=ON ..
make ci-simulation
# → Tests complets + coverage + benchmarks
🚀 Préparation release
mkdir build-release && cd build-release
cmake -DCMAKE_BUILD_TYPE=Release ..
make all-engines
make package-all
# → Build optimisé + packaging multi-plateforme
🔬 Debug performance
mkdir build-profiling && cd build-profiling
cmake -DCMAKE_BUILD_TYPE=Profiling -DENABLE_BENCHMARKING=ON ..
make bench-all-engines
# → Profiling + benchmarks détaillés
🛡️ Security audit
mkdir build-security && cd build-security
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_ADVANCED_TOOLS=ON ..
make test-everything
# → Fuzzing + static analysis + formal verification
📊 Monitoring automatique
Métriques collectées automatiquement :
- Build times par engine
- Test coverage par engine
- Performance benchmarks
- Memory usage par engine
- Static analysis issues
- ABI compatibility changes
Visualisation :
# Coverage reports HTML
open build/economy-engine_coverage_report/index.html
# Documentation générée
open build/docs/economy-engine/html/index.html
# ABI compatibility reports
open economy-engine_abi_report.html
🎯 Integration CI/CD
GitHub Actions exemple :
name: Warfactory CI
on: [push, pull_request]
jobs:
full-automation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Advanced Tools
run: ./scripts/setup_advanced_tools.sh
- name: Apply Full Automation
run: ./scripts/apply_full_automation.sh
- name: Configure
run: |
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Testing -DENABLE_ADVANCED_TOOLS=ON ..
- name: Run Complete CI Simulation
run: cd build && make ci-simulation
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
files: build/coverage.xml
🚨 Troubleshooting
Si la configuration échoue :
# 1. Vérifier les dépendances
./scripts/setup_advanced_tools.sh
# 2. Build minimal
cmake -DCMAKE_BUILD_TYPE=Release ..
# 3. Désactiver automation temporairement
cmake -DENABLE_ADVANCED_TOOLS=OFF ..
Si les tests échouent :
# Tests détaillés avec output
ctest --output-on-failure --verbose
# Tests d'un engine spécifique
ctest -R economy-engine -V
Si le packaging échoue :
# Vérifier installation
make install DESTDIR=/tmp/test-install
# Package basique seulement
make package-binary
💡 Philosophie Warfactory Automation : "Automatiser complètement le workflow pour que Claude Code puisse se concentrer sur la logique métier, pas sur l'infrastructure"
🎯 Résultat : Un seul make claude-workflow fait tout automatiquement !