Должны ли текущие проекты Python перечислять `<4` в` python_requires` (setup.py) или нет? - PullRequest
0 голосов
/ 15 марта 2019

Я сделал пару из PR , в некоторых проектах я участвую в добавлении python_requires к их setup.py (согласно packaging.python.org / руководства / сбросив-старая-питон-версия / ).

Один вопрос, который возникает, - это хорошая идея включить <4 в это утверждение или нет.

С одной стороны, нет никакой гарантии, что код будет работать на Python 4 всякий раз, когда он выйдет (возможно, в будущем), но, возможно, это также является чрезмерным уточнением, и его лучше оставить и добавить, когда Py4 действительно станет вещь, которая даже рассматривается?

Я пытался найти это (в том числе на SO :)), но я не получаю хороших результатов. Существуют ли темы списков рассылки или что-то, чего я не нашел, где обсуждаются лучшие практики для этого? sampleproject включает <4, но, по-видимому, на самом деле это не обсуждалось в соответствующем PR , документация packaging.python.org для setup_requires содержит примеры как с <4, так и без него, но в действительности не описывает (насколько я могу судить), когда включать его или нет.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Должен ли текущий список проектов Python <4 в python_requires (setup.py) или нет?

Нет, они не должны этого делать, поскольку ожидается, что Python 4 * будет задом напередсовместим с Python 3.9.Пропусти это.Верхние границы в спецификаторах требований действительно полезны только для проектов, которые следуют за semver или аналогичными.

Вот основной разработчик, обсуждающий Python 4 и обратное сравнение:

В настоящее время я ожидаю, что Python 4.0 будет просто «выпуском, который выйдет после Python 3.9».Вот и все.Никаких глубоких изменений в языке, никаких серьезных нарушений обратной совместимости - переход с Python 3,9 на 4,0 должен быть таким же безболезненным, как переход с Python 3,3 на 3,4

К моменту появления Python 4.0 мыможно надеяться, что Python 2 будет мертв, а Python 3 просто будет называться «python».

0 голосов
/ 15 марта 2019

может быть, это слишком завышенная спецификация, и лучше ее исключить и добавить, как только Py4 станет предметом обсуждения?

Точно!

Разработчики ядра даже не начали обсуждать Python 4, не говоря уже о планировании или реализации. Они также пообещали не ломать вещи так, как они сделали с переходом 2 к 3.

С таким отдаленным будущим и обещанием обратной совместимости просто слишком рано защищать себя от неизвестных и незапланированных поломок. Подождите хотя бы пока разработчики ядра не начнут обсуждать Python 4.

...