Отношения с апстримом¶
Форк живёт от satnogs-flowgraphs Libre Space Foundation. Эта страница
фиксирует, где мы разошлись, что берём из апстрима, а что нет — и почему.
Обновляется при каждой синхронизации.
Точка расхождения¶
Апстрим |
https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs |
Последний взятый коммит |
|
Проверено на |
|
Проверить, что появилось нового:
git remote add upstream https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git
git fetch upstream
git log --oneline ae57df06..upstream/master
Что мы берём, а что нет¶
Берём: новые .grc-декодеры, правки существующих флоуграфов, исправления в
подписчиках, всё, что не ломает контракт командной строки.
Не берём: изменения архитектуры запуска. Диспетчер — это точка стыка с
soniks-client-new, и она у нас другая.
Ключевые инварианты форка, которые нельзя обменять на апстримовский код:
.grc — источник правды (декодеры Geoscan и USP существуют только как .grc);
flowgraph_dispatcher --mode <MODE> — контракт с клиентом станции. См.
Инварианты.
Решение по MR от 2026‑07‑02: не внедрять¶
Все 16 коммитов, появившихся после ae57df06, — это одна работа: перевод
диспетчера на gRPC и отказ от .grc в пользу сборки флоуграфа в рантайме.
Коммиты |
Что делают |
|---|---|
|
|
|
сабмодуль |
|
диспетчер становится долгоживущим gRPC-сервером, параметры приходят protobuf-сообщениями |
|
gRPC-клиенты для ручной проверки |
|
|
Причины отказа:
Ломается контракт с клиентом.
soniks-client-newвызываетflowgraph_dispatcher --mode <MODE>и ждёт кода возврата процесса. gRPC-сервер — другая модель жизненного цикла, её пришлось бы одновременно внедрять в оба проекта.Наши декодеры исчезнут. Geoscan и USP — это
.grc; апстримовскийblock_initializers.pyимпортирует толькоgnuradio.satnogs,soapyиHamlib, а из модуляций собран пока один FSK. Перенос декодеров пришлось бы делать вручную в Python, потеряв возможность править их в GRC.Стоимость. Тесты, CMake,
debian/и всяdocs/построены вокруг текущей схемы; замена — это переписывание форка, а не слияние.Выгоды нет. Внутри этих 16 коммитов нет ни одного исправления ошибки, применимого к нашей схеме.
Отдельно рассмотрены и отклонены две мелочи:
eb7145dd—type=floatдля--baudи--lo-offset. У нас бодрейт уходит во флоуграф какstr(baud), и--baud=9600превратился бы вbaudrate=9600.0. Риск ради нулевой выгоды:int(float(baud))в диспетчере и так принимает оба вида записи.461c1f35— снятиеtry/except, которые только пробрасывают исключение дальше. Эквивалентная чистка в нашем диспетчере уже сделана.
Если апстрим понадобится позже¶
Возврат к общей ветке возможен только как отдельный проект: перенести Geoscan и
USP в flowgraph_builder, договориться с soniks-client-new о gRPC и заново
собрать тесты. До тех пор берём из апстрима точечные коммиты через
git cherry-pick, а не слияния веток.