DynamicFileBinder ist ein C++17-Tool zum sicheren Verwalten von Dateibindungen (physische Kopie oder symbolische Verknuepfung) inklusive Governance-Regeln, Error-Stack, CLI/GUI und Daemon-Betrieb.
- Sichere Bind-Operationen mit Staging, Integritaetspruefung und Rollback
- Governance-Engine fuer BindPhysical/BindSymbolic/Defer/Reject
- Zentraler Error-Stack mit Domain/Severity/Error-Codes
- GUI mit wxWidgets (verpflichtend) und CLI/Daemon-Kommandos
- CTest-Suite mit Integrations- und Fehler-Matrix-Tests
- Version: 0.1.x (aktive Entwicklung)
- Build-System: CMake + vcpkg Manifest
- GUI: wxWidgets
- CMake >= 3.20
- Visual Studio 2026 Build Tools oder Visual Studio 2026
- Git mit Submodule-Unterstuetzung
git clone --recurse-submodules https://github.com/makr-code/DynamicFileBinder.git
cd DynamicFileBinderWenn bereits geklont:
git submodule update --init --recursive.\vcpkg\bootstrap-vcpkg.batcmake --preset vs-debug-vcpkg
cmake --build --preset build-debug
ctest --preset test-debugHinweis: wxWidgets ist Pflichtabhaengigkeit. Wenn vcpkg oder das Manifest nicht verfuegbar ist, stoppt die Konfiguration bewusst.
Fuer GitHub Actions keine festen Build-Pfade oder IDE-spezifischen Generatoren verwenden. Dieses Repo nutzt dafuer dedizierte CI-Presets:
cmake --preset ci-windows
cmake --build --preset build-ci-debug
ctest --preset test-ci-debugDie Presets sind relativ zum Workspace aufgebaut und damit in lokalen Runs und Workflows konsistent nutzbar. Der Workflow ist in zwei Jobs geteilt:
- smoke-windows: schnelle Kernregression (CTest-Label smoke)
- edge-windows: Tiefen-/Mengen-Checks plus Edge-Tests (CTest-Label edge)
Zusatzworkflow:
- cmake-multi-platform: manueller Matrix-Check (Windows/Linux/macOS) per
workflow_dispatch
.\bin\Debug\dynamic_file_binder.exe --uidynamic_file_binder <source> [link] [symlink|hardlink|physical]
dynamic_file_binder --revert
dynamic_file_binder --cleanup
dynamic_file_binder --daemon-statusDie Testabdeckung umfasst u. a.:
- Error- und Governance-Entscheidungen
- Datenbank-Roundtrip inkl. Versionsmismatch
- CRUD- und Copy/Link-Flows
- Zwei-Ordner-Sync-Lifecycle
- State-Storm mit absichtlich fehlerhaften Sequenzen
- Multi-Folder-Soak-Test (folder A/B/C) fuer Langzeitstabilitaet
Direktlauf:
ctest --test-dir build -C Debug --output-on-failureSoak-Test gezielt starten:
ctest --test-dir build -C Debug -R core.longrun --output-on-failureLabel-basierte Teilmengen:
ctest --test-dir build -C Debug -L smoke --output-on-failure
ctest --test-dir build -C Debug -L edge --output-on-failureManueller 10-Minuten-Langlauf:
ctest --test-dir build -C Debug -R soak.longrun_10min --output-on-failureStress-Datensaetze fuer Mengen-/Tiefen-Edge-Tests erzeugen:
pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile quick -Clean
pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile medium -Clean
pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile edge-depth -CleanVerfuegbare Profile:
- quick: kurzer lokaler Lauf
- medium: regelmaessiger CI/Regression-Lauf
- heavy: Langzeit-Soak mit hoher Last
- edge-depth: Fokus auf tiefe Pfade nahe OS-Grenzen
- edge-count: Fokus auf sehr viele Dateien
Hinweis: Generierte Daten liegen unter tests/stress_generated/ und sind in .gitignore ausgeschlossen.
- Changelog: CHANGELOG.md
- Roadmap: ROADMAP.md
- Contributing: CONTRIBUTING.md
- Security: SECURITY.md
- Support: SUPPORT.md
- Code of Conduct: CODE_OF_CONDUCT.md
Dieses Projekt priorisiert Datenkonsistenz. Bei Integritaets- oder Versionskonflikten wird ein Merge/Overwrite nicht stillschweigend ausgefuehrt, sondern explizit mit Fehlercode abgebrochen.
Siehe LICENSE.