LINUX.ORG.RU

как вы обновляете requirements.txt?

 , , ,


0

1

Всем привет.

Возникла задача обновить requirements.txt . А проблема в том что он содержит как прямые зависимости проекта, так и зависимости зависимостей. Мне бы хотелось обновить прямые зависимости до конкретных версий, а все остальные поставить самые последние (чтобы, скажем, получить все security fixes и прочее). Как бы это сделать?

Ну или поделитесь своим опытом обновления requirements.txt . Я пока не придумал ничего лучше как начать с пустого virtualenv и добавлять пакеты пока проект не станет запускаться. Но мне этот подход не нравится, например, тем что

1) это ручная работа

2) иногда import попадается в середине кода. А покрытие тестами пока хромает чтобы надёжно выявить такие дурацкие проблемы (но мы над этим работаем).

★★★★★

все остальные поставить самые последние

На текущий момент? pip freeze.

Вообще последние? Не нужно.

x3al ★★★★★
()

обновить прямые зависимости до конкретных версий, а все остальные поставить самые последние

Разработчики иногда такие шалунишки - при таком подходе ты можешь получить нерабочий проект, так как кто-то мог сломать обратную совместимость и какая-то из зависимостей, для которой ты прописал конкретную версию, может сломаться при обновлении ее зависимостей до последней версии.

gnunixon ★★★
()

А зачем зависимости зависимостей в requirements.txt прописывать, кроме как чтобы не залочить их? Обновляй прямые зависимости, а остальное выпили пока. Потом посмотришь, какие версии поставились и залочишь. В идеале это должно всё автоматически происходить. Вот например: https://github.com/pypa/pipfile

anonymous
()
Ответ на: комментарий от gnunixon

Ответ на все твои вопросы простой: мы всё тестируем.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Обновляй прямые зависимости, а остальное выпили пока

Вот про это я и спрашиваю. В requirements.txt не сказано какие зависимости прямые.

Один из вариантов что я придумал это держать отдельный requirements-main.txt в котором руками прописаны только прямые зависимости. Потом делается так:

pip install -r requirements-main.txt
pip freeze --local > ./requirements.txt

Да, наверно так и поступлю. На сколько понял, pipfile делает точно так же, только автоматизирует, верно? Надо будет попробовать.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от Shtsh

О, про --upgrade забыл, спасибо. Хотя, всё равно хотелось бы иметь отдельный список прямых зависимостей чтобы было проще вычищать. У нас много барахла скопилось, был случай когда возникли проблемы с пакетами которые вообще не были нужны.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.