Clone
1
Tracking upstream
Jaroslav Beneš edited this page 2026-08-08 18:35:15 +02:00

Tracking upstream YTSage

SageTube keeps the full git history of YTSage and the internal ytsage package name so upstream improvements can be merged.

Syncing

git fetch upstream            # upstream = https://github.com/oop7/YTSage.git
git merge upstream/main

Expected conflict zones

Most SageTube features live in new files and merge cleanly. Conflicts are likely only in:

File Reason
ytsage/gui/ytsage_gui_main.py tab-shell edit in init_ui (_setup_main_tabs), closeEvent hook
ytsage/gui/ytsage_gui_analysis.py delegates subprocess execution to YtdlpClient
ytsage/utils/ytsage_constants.py SageTube data dirs, PATH prepend for managed binaries
ytsage/utils/ytsage_config_manager.py atomic save, defaults merge, player/feed/advanced keys
pyproject.toml name, version, deps (python-mpv), URLs
ytsage/languages/en.json added sections: player, cards, main_tabs, search, watch, browse, feed

Bug fixes made in this fork (see git log between the merge commit and the first feature commit) may also conflict if upstream fixes them differently — prefer whichever version is stricter about verification and thread safety.

SageTube-only modules (never conflict)

  • ytsage/core/ytsage_client.py — shared yt-dlp JSON invocation layer
  • ytsage/core/ytsage_mpv.py — libmpv probe
  • ytsage/gui/ytsage_gui_player.py — embedded mpv player
  • ytsage/gui/ytsage_gui_watch.py / _search.py / _browse.py / _feed.py — tabs
  • ytsage/gui/ytsage_gui_router.py / _cards.py — navigation + video cards
  • ytsage/utils/ytsage_library_manager.py — subscriptions/history/queue DB