| Родител: Operations Topics | Documentation Index |
Този документ описва как да управлявате upstream tracking за external библиотеките в Daqster проекта.
feature/deembed-hover-fronting-wmsrc/external_libs/nodeeditorfeature/qt6-port-cmake-unifiedsrc/external_libs/qtrest_lib/qtrestТози раздел описва целевите промени във fork-овете, които са специфични за Daqster.
Добавен embed/de-embed lifecycle за node widget-и в Daqster интеграцията. Причина: Daqster използва node model-и с по-богати QWidget UI панели и е нужен контрол дали widget-ът да е вграден в сцената или отделен top-level прозорец.
Добавен hover fronting behavior за detached widget прозорци. Причина: при припокриване на прозорци и scene items потребителят трябва бързо да изкарва активния node панел отпред без ръчно window management.
Добавени guard и lightweight fronting механизми за избягване на излишно reposition/flag churn. Причина: upstream-неутралното поведение не покриваше специфични WM edge-case-и при Daqster workflow (hover, focus-shift, stacked detached windows).
CMake standard е уеднаквен към C++17. Причина: Daqster и останалите плъгини са на C++17 и унифицираният стандарт елиминира несъвместимости при mixed-target build.
Qt5/Qt6 dual-major линкване и dependency gating в Daqster build graph. Причина: проектът трябва да се компилира и в Qt5, и в Qt6 без разклоняване на отделни кодови линии.
Уточнени условия за включване на QtCoinTrader/qtrest в зависимост от наличните Qt компоненти. Причина: да се избегнат false-positive target-и и частични конфигурации при липсващи Qt модули.
Използвай тези команди вместо статични числа в документацията:
# NodeEditor
cd src/external_libs/nodeeditor
git fetch upstream
git rev-list --left-right --count HEAD...upstream/master
# QtRest
cd src/external_libs/qtrest_lib/qtrest
git fetch upstream
git rev-list --left-right --count HEAD...upstream/master
Използвайте tools/build_helpers/manage_upstream.sh скрипта за лесно управление на upstream updates:
# Покажи текущото състояние
./tools/build_helpers/manage_upstream.sh status
# Провери за нови промени
./tools/build_helpers/manage_upstream.sh check
# Изтегли последните промени от upstream
./tools/build_helpers/manage_upstream.sh fetch
# Слей промени от upstream
./tools/build_helpers/manage_upstream.sh merge nodeeditor
./tools/build_helpers/manage_upstream.sh merge qtrest
./tools/build_helpers/manage_upstream.sh merge all
# Cherry-pick конкретен commit
./tools/build_helpers/manage_upstream.sh cherry-pick <commit-hash>
# Провери за нови промени
./tools/build_helpers/manage_upstream.sh check
# Ако има нови промени, изтегли ги
./tools/build_helpers/manage_upstream.sh fetch
# Виж детайлно какво е ново в NodeEditor
cd src/external_libs/nodeeditor
git log HEAD..upstream/master --oneline -10
git diff HEAD..upstream/master --stat
# Виж детайлно какво е ново в QtRest
cd src/external_libs/qtrest_lib/qtrest
git log HEAD..upstream/master --oneline -10
git diff HEAD..upstream/master --stat
# QtRest е по-малко модифициран, може да се merge-не директно
./tools/build_helpers/manage_upstream.sh merge qtrest
# NodeEditor има много custom модификации
# Cherry-pick само нужните commits
./tools/build_helpers/manage_upstream.sh cherry-pick <commit-hash>
# За големи updates, създай отделен branch
cd src/external_libs/nodeeditor
git checkout -b integration-upstream-$(date +%Y%m%d)
git merge upstream/master
# Разреши конфликтите и тествай
# NodeEditor
cd src/external_libs/nodeeditor
git remote add upstream https://github.com/paceholder/nodeeditor.git
# QtRest
cd src/external_libs/qtrest_lib/qtrest
git remote add upstream https://github.com/kafeg/qtrest.git
git fetch upstream
git cherry-pick <commit-hash>
git merge upstream/master
# Добавете в cron за месечна проверка
0 0 1 * * /path/to/Daqster/tools/build_helpers/manage_upstream.sh check
# Виж конфликтите
git status
git diff
# Разреши конфликтите ръчно
# След това:
git add .
git commit
# Отмени cherry-pick
git cherry-pick --abort
# Или разреши конфликтите
git add .
git cherry-pick --continue
# Провери remote-ите
git remote -v
# Добави upstream ако липсва
git remote add upstream <upstream-url>