Я собираюсь выпустить библиотеку Python, над которой я работал последние несколько недель. Я много читал о зависимостях Python, но кое-что еще не совсем ясно:
Некоторые люди притворяются, что никогда не должны привязывать версии зависимостей, поскольку это мешает пользователям вашей библиотеки обновлять эти зависимости.
Некоторые другие утверждают, что вы всегда должны указывать свои версии зависимостей, так как это единственный способ гарантировать, что ваш выпуск будет работать так, как он был разработан, когда вы его разработали, и чтобы предотвратить изменение в зависимостях от хакерской атаки в вашей библиотеке.
Я как-то пошел на гибридное решение, где я предположил, что мои зависимости используют семантическое управление версиями и закрепляют только основной номер версии (скажем, somelib >= 2.3.0, < 3
), за исключением случаев, когда основной номер версии равен 0
(семантическое управление версиями диктует, что такие версии считаются изменчивыми и могут нарушать API даже при столкновении только с номером патча).
На данный момент я не уверен, какой путь лучший. Есть ли официальное руководство (возможно, даже PEP?), Которое диктует наилучшую практику в отношении зависимостей Python и как их определять?