Dima
Что?
да я хз, что там выше был за аргумент - lock file. Просто отзеркалировал))) подчеркнув бессмысленность аргумента.
Dima
lock file просто частная реализация в pipenv , она вообще меня не интересует
Oleg
да пох, лучше расскажи о твоем роде задач, при которых так нужен pipenv. Который дает гибкое управление зависимости , их отслеживаниаем. А это значит , что и основным родом твоих задач должно быть какое-то управление зависимостями и их отслеживанием
Я же писал выше какие есть проблемы с pip freeze. Чтобы, например, добавить зависимость тебе нужно развернуть чистый venv, поставить туда все что нужно, и потом сделать pip freeze иначе у тебя в requirements.txt попадут dev-зависимости.
Dima
Lockfile вполне себе разумный аргумент.
так вот разумность и надо описывать, а не название какой-то частной реализации
Dima
слишком надумання проблема
Oleg
ну так я и ответил на это
ты ответил что нужен CI/CD. Ну так расскажи какой должен быть флоу
Maxim
так вот разумность и надо описывать, а не название какой-то частной реализации
Не очень похоже, что ты разбираешься в вопросе, чтобы так рьяно дискутировать.
Oleg
слишком надумання проблема
почему надуманная? Аргументируй
Dima
ты ответил что нужен CI/CD. Ну так расскажи какой должен быть флоу
это комплексная задача, под которую берутся аж прям отдельные специалисты... Оно не надо это обсуждать, там много чего можно гибко понастроить
Dima
почему надуманная? Аргументируй
выше то прочти , я описал в ответе
Oleg
это комплексная задача, под которую берутся аж прям отдельные специалисты... Оно не надо это обсуждать, там много чего можно гибко понастроить
Ты только что утверждал отдавайте предпочтение минималистичности и простоте, если отсутствует прямая потребность в усложнении, а теперь сам говоришь это комплексная задача, под которую берутся аж прям отдельные специалисты...
Oleg
это комплексная задача, под которую берутся аж прям отдельные специалисты... охуеть минималистичность и простота
Tishka17
вы о какой задаче вообще?
Maxim
вы о какой задаче вообще?
Фиксирование зависимостей, вроде
Tishka17
вот чет я не уверен
Dima
Ты только что утверждал отдавайте предпочтение минималистичности и простоте, если отсутствует прямая потребность в усложнении, а теперь сам говоришь это комплексная задача, под которую берутся аж прям отдельные специалисты...
Верно подметил. Подразумевал следующее: 1. CI/CD + pip, docker 2. CI/CD + pipenv, docker В случае отсутствия CI/CD не вижу вообще смысл рассуждать об управлении зависимостями. Говняжь прямо куда хочешь
Oleg
и то как должны всеми этими зависимостями управлять разработчики
Dima
да нечего рассказывать, заходишь в цицд и включаешь воображение)
Oleg
lock-файл CI/CD формирует и пушит в репозиторий?
Dima
и то как должны всеми этими зависимостями управлять разработчики
ты завышаешь значимость, проблема в этом, я пытаюсь донести, что нету такой важности и частоты таких операций, чтобы брать pipenv , учитывай наличие специализированных инструментов в среднестатистической компании
Tishka17
опять слошная вода и невозможность сформулировать мысли
Dima
забудь кароче, пользуйтесь pipenv
Tishka17
почему люди не могут просто ответить на вопрос?
Oleg
ты завышаешь значимость, проблема в этом, я пытаюсь донести, что нету такой важности и частоты таких операций, чтобы брать pipenv , учитывай наличие специализированных инструментов в среднестатистической компании
ты завышаешь значимость, проблема в этом, я пытаюсь донести, что нету такой важности и частоты таких операций, чтобы брать pipenv откуда ты знаешь какая у кого важность или частота. Ты экстраполируешь свой опыт на всех вокруг?
Tishka17
- сколько будет 2+2? - я пытаюсь донести, что нету такой важности и частоты таких операций, чтобы считать 2+2 , учитывай наличие специализированных инструментов в среднестатистической компании
Dima
чтобы как раз узнать твои потребности и род задач, чтобы своё видение не проецировать на тебя
Oleg
я тебе вопрос задавал об этом https://t.me/ru_python/874534
Есть проект, у него есть зависимости. Эти зависимости меняются/добавляются/удаляются. Нужно: 1. Уметь фиксировать все зависимости (lock-файл) 2. Разработчику должно быть удобно c этим работать
Dima
Есть проект, у него есть зависимости. Эти зависимости меняются/добавляются/удаляются. Нужно: 1. Уметь фиксировать все зависимости (lock-файл) 2. Разработчику должно быть удобно c этим работать
у меня есть и было куча проектов. В них редко менялись, добавлялись, удалялись зависимости(видимо плохо проектировал изначально). Я фиксировал зависимости через pip. Мне и моим коллегам это удобно
Dima
просто ответь, кто вызывает pip freeze - человек или CI?
в CI/CD описывается этот вызов, или разные вариации вызовов, потом тыкается кнопка по описанному Task
Tishka17
ой
Tishka17
кнопка
Tishka17
в CI
Oleg
лол
Tishka17
в итоге все равно вызывает разработчик
Oleg
и этот человек нам рассказывает про автоматизацию
Dima
кнопка
ну хочешь, обращайся по апи, если граф интерфейс не нужен
Tishka17
пускай и по кнопке
Tishka17
а если запускает человек - он может это сделать вне CI
Dima
и этот человек нам рассказывает про автоматизацию
блат, ну по событиям, по расписанию)))
Tishka17
чо
Tishka17
фиксирвоать зависимости по расписанию?
Oleg
блат, ну по событиям, по расписанию)))
ну ок, а дальше что? пуш в репозиторий?
Dima
а если запускает человек - он может это сделать вне CI
дядь, с большими объемами речи об описании вне CI не идет
Maxim
и этот человек нам рассказывает про автоматизацию
"У нас на командном пункте всё автоматизировано. Мне достаточно нажать кнопку и отдать приказ в микрофон, дежурные офицеры _автоматически_ отдают распоряжения и солдаты _автоматически_ прибегают и делают."
Dima
ну ок, а дальше что? пуш в репозиторий?
я не собираюсь описывать, мне покаалось ты вкурсе всего этого, это стандартная работа же
Tishka17
если это стнадартная работа - чего мы вообще это обсуждаем?
Oleg
я не собираюсь описывать, мне покаалось ты вкурсе всего этого, это стандартная работа же
я в курсе про CI/CD, но ты сказал, что pipenv не нужен, т.к. все хорошо решается pip'ом. Тебя пропросили рассказать как это должно работать
Dima
мы касались этого вопроса в начале
Oleg
мы касались этого вопроса в начале
Ты можешь ответить на простой вопрос: как lock-файл попадает в репозиторий?
Oleg
его туда пушит CI?
Dima
обычный список зависимостей выводится, с него строить образ докера, в кастомных случаях строится еще образ, своим именем отображающий разницу версий, это делается в CI/CD
Oleg
никак, он там не нужен вообще
так, т.е. получается что docker image не воспроизводимый?
Oleg
сегодня он соберется с одной версией зависимости, а завтра - с другой?
Dima
его туда пушит CI?
нет, CI/CD в репу ничего не пишет, он строит на своих ресурсах образ для контейнера и доставляет его на сервер для запуска. При построении описывается кастомизации, если надо
Tishka17
никак, он там не нужен вообще
как не нужен? а как второй раз собрать такой же образ?
Tishka17
допустим ты пофиксил мелкий баг в проге и хочешь персобрать с теми же либами, чтобы не перетестировать всё
Oleg
а еще другие разработчки как-то должно воспроизвести это же окружение у себя
Dima
так, т.е. получается что docker image не воспроизводимый?
работай гибко с образами, строй образы с разными версиями(решается тэгированием образа). Это базовый функционал докера
Dima
потом запускай контейнер из образа с нужной версией
Tishka17
потом запускай контейнер из образа с нужной версией
как собрать новую версию контейнера, в которой будет отличаться только кусок кода твоей проги?
Oleg
если у тебя нет лок-файла, то ты не можешь гарантировать что два раза собрав docker image в них будут одинаковые зависимости
Tishka17
и чтобы при этом не отличались версии зависимостей
ну я ж сказал ТОЛЬКО. вообще все идентично должно быть остальное
Oleg
вангую, что сейчас он нам будет про кэш слоев в докере рассказывать