Size: a a a

2021 October 13

DA

Dmitry Alimov in SPb Python
приорити кернел спейс тредов по умолчанию повыше. обычно их pid поменьше.
как это в шедулере сделано надо смотреть.
источник

YS

Yaroslav Shmelev in SPb Python
Привет всем!
Я python разработчик в небольшом стартапе, который занимается торговлей на крипторынках.
Разрабатываю на удаленных linux машинах(в терминале, используя vim и tmux в основном).

Как известно гит репозитории - это очень классная штука. И хорошо, когда их много)
Так вот, у меня есть проект, который вырос внутри себя так, что логически его можно разделить на несколько(больше чем три) отдельных гит репо. Однако все они используют общий код. Который должен быть общим, а не дублирующимся. Сейчас это выглядит как то так:

repo/
├── lib/
|    └── codebase1/
|        └── .../
├── progect1/
|    ├── lib/ (symlink of lib)
|    ├── modyle1.py
|    └── .../
├── progect2/
|    ├── lib/ (symlink of lib)
|    ├── modyle11.py
|    └── .../
└── progect3/
    ├── lib/ (symol link of lib)
    ├── modyle111.py
    └── .../


Кажется правильным все разделить на отдельные репозитории: lib, progect1, progect2, …
Но как это сделать правильно?

Сейчас достаточно просто, разрабатывая какую то фичу в одном из проектов(или исправляя), каждый раз не нужно делать каких то действий для того, чтобы поддерживать весь код: ты исправляешь общий код в lib, и во всех проектах внутри ссылаешься на этот общий код. Написал, запустил, проверил, переписал, запустил… Все просто и быстро.

Но сейчас это все же кажется немного нелогично: зачем одному проекту жить под одной крышей со всеми другими, которые ему никак не нужны? Зачем мне клонировать все на новую машину, когда мне нужна только отдельная часть?

В общем, суть в чем: подскажите как правильно разделить подобную репу по отдельным проектам так, чтобы можно было бы не очень потерять в удобстве и скорости разработки.
Навярняка есть удобные инструменты и общие правила, о которых я просто не знаю)
Когда то пробовал submodules. Получилось не очень. Вероятность что-то забыть и запутаться крайне велика. Может не так использовал конечно.
источник

MA

Maxim Afanasev in SPb Python
Есть три варианта: монорепозиторий, сабмодули и публикация пакетов в приватный registry. У меня лично негативный опыт работы с сабмодулями, чаще всего используем registry, иногда монорепозитории. @lig11 вроде пилил тулзу для работы с сабмодулями, но он здесь редко появляется теперь.
В общем, я бы рекомендовал registry для больших проектов, где много людей и раздельные процессы разработки. Для чего-то попроще монорепозиторий подойдет, но про тулинг я сам не знаю. Некоторые компании, например яндекс и гугл предпочитают вообще всё в одном репозитории держать. Но у них там свои соображения на этот счет, не уверен, что это релевантно за пределами этих компаний
источник

DA

Dmitry Alimov in SPb Python
мы используем сабмодули у себя.
@mdafanasev а какой негативный опыт у тебя был? у нас иногда бывают проблемы с тем что не обновляют рекурсивно ссылки на сабмодули или удаляют ветку после мержа на которую ссылается сабмодуль. но это бывает редко и легко фиксится.
источник

SK

Sergio Keler in SPb Python
Программа в памяти не прибита к одному ядру гвоздями и после переключения контекста может уйти на другое.
источник

MA

Maxim Afanasev in SPb Python
Негативный опыт был связан с объяснением новым разработчикам, как с этим работать. Немного контринтуитивно это устроено. В общем, мне нравятся отдельные пакеты которые лежат себе где-нибудь каждый со своей версией )
источник

YS

Yaroslav Shmelev in SPb Python
Спасибо большое!
Посмотрю что такое монорепозиторий и registry.
источник

АМ

Андрей Мавлянов... in SPb Python
а как вы версирнируете сабмодули?
источник

MA

Maxim Afanasev in SPb Python
Я cам не пользуюсь сабмодулями, думаю это скорее к @delimitry Хотя там не версионирование, а скорее просто ветки
источник

DA

Dmitry Alimov in SPb Python
ага у нас ветки master/dev/feature
источник

D

Dmitry in SPb Python
Всем привет! Посоветуйте, пожалуйста, стоматологическую клинику и стоматолога-терапевта в СПб 🙏
источник

YS

Yaroslav Shmelev in SPb Python
https://onesmile-clinic.com

Игорь Лебедев - супер крутой спец в своем деле.
Правда не из дёшевых клиник. Но качество того стоит.
источник

SK

Sergio Keler in SPb Python
источник

SK

Sergio Keler in SPb Python
Спец там Рустам Ялышев
источник

SM

Serge Matveenko in SPb Python
один проект — один контейнер — один репозиторий
для библиотек можно и пакеты питоновские замутить, но сабмодули вполне работают, даже без всякого тулинга
особенно удобно, что можно сабмодули своих библиотек в develop режиме использовать, что позволяет сразу подготовить нужный код и в проект и в либу. коммитить придется отдельно и по очереди, ну тут уж
вот так можно использовать сабмодуль в pyproject.yml с poetry
mylib = { path = "deps/mylib", develop = true }
источник

SM

Serge Matveenko in SPb Python
сильно не рекомендую монорепозитории. весь современный тулинг будет работать против вас
источник

A

Alexander in SPb Python
А я наоборот, проникся монорепой когда мы начали наш проект на отдельные библиотеки дробить
источник

A

Alexander in SPb Python
Вроде как в итоге сабмодули тоже решили использовать, но монорепа была бы лучше
источник

SK

Sergio Keler in SPb Python
источник

YS

Yaroslav Shmelev in SPb Python
Спасибо! Очень полезено!

Примеры/инструменты/обучалки очень были бы полезны тоже.
источник