Daqster

Upstream Management Guide

Parent: Operations Topics Documentation Index

This guide describes how to manage upstream tracking for external libraries used by Daqster.

External Libraries

NodeEditor

QtRest

Fork Delta (compared to upstream)

This section documents Daqster-specific changes in both forks.

NodeEditor: what changed and why

QtRest: what changed and why

Check current divergence from upstream

Use live git commands instead of static ahead/behind numbers:

# 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

Upstream Management Script

Use tools/build_helpers/manage_upstream.sh for common operations:

# Show current status
./tools/build_helpers/manage_upstream.sh status

# Check for updates
./tools/build_helpers/manage_upstream.sh check

# Fetch latest upstream changes
./tools/build_helpers/manage_upstream.sh fetch

# Merge upstream changes
./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 a specific commit
./tools/build_helpers/manage_upstream.sh cherry-pick <commit-hash>

Workflow For Upstream Updates

1. Regular check (monthly)

./tools/build_helpers/manage_upstream.sh check
./tools/build_helpers/manage_upstream.sh fetch

2. Analyze incoming changes

# 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

3. Choose update strategy

A. Full merge (QtRest)

./tools/build_helpers/manage_upstream.sh merge qtrest

B. Cherry-pick (NodeEditor)

./tools/build_helpers/manage_upstream.sh cherry-pick <commit-hash>

C. Integration branch for larger updates

cd src/external_libs/nodeeditor
git checkout -b integration-upstream-$(date +%Y%m%d)
git merge upstream/master

Key Considerations

NodeEditor specifics

QtRest specifics

Troubleshooting

Merge conflicts

git status
git diff
git add .
git commit

Cherry-pick conflicts

git cherry-pick --abort
# or
git add .
git cherry-pick --continue

Missing upstream remote

git remote -v
git remote add upstream <upstream-url>

Best Practices

  1. Run upstream checks at least monthly.
  2. Test after every merge/cherry-pick.
  3. Keep a short changelog of accepted upstream commits.
  4. Prioritize security and crash fixes first.