On Sun, 2021-01-24 at 18:16 +0000, Alexey Sokolov wrote: > вс, 24 янв. 2021 г. в 12:59, Michał Górny <mgo...@gentoo.org>: > > > > Here's v2 with extra 'tl;dr' instructions in first para: > > > > ``` > > Title: Python preference to follow PYTHON_TARGETS > > Author: Michał Górny <mgo...@gentoo.org> > > Posted: 2021-01-24 > > Revision: 1 > > News-Item-Format: 2.0 > > > > On 2021-02-01 stable users will switch to a new method of updating > > the preferred Python versions that employs the configuration update > > mechanism in order to follow PYTHON_TARGETS. We will also deprecate > > and stop installing app-eselect/eselect-python by default. If you wish > > to use the newest Python version present in your PYTHON_TARGETS, you > > only have to accept configuration changes. If you wish need > > to customize the behavior, read on. > > typo: wish need
Fixed, thanks. > > > > > Since 2017, /usr/bin/python and the related non-versioned symlinks > > are wrapped through dev-lang/python-exec. The list of preferred Python > > implementations is stored in /etc/python-exec/python-exec.conf and/or > > per-program /etc/python-exec/<basename>.conf configuration files. > > To preserve backwards compatibility, app-eselect/eselect-python remained > > a wrapper that updated this file. > > > > However, this mechanism alone has proven inconvenient to end users who > > had to update python-exec.conf whenever the default PYTHON_TARGETS > > changed. Thanks to the fallback logic, this was not a major problem > > for software installed via Gentoo packages that always ensure that > > a supported implementation is used. However, users have reported that > > whenever the preference for /usr/bin/python mismatched their > > PYTHON_TARGETS, their custom scripts would break due to unsatisfied > > dependencies. This does not follow the principle of least surprise. > > > > For this reason, we have decided to change the default python-exec > > configuration to match PYTHON_TARGETS by default, in the eclass > > preference order, that is from the newest CPython version to oldest, > > with alternative Python implementations coming afterwards. This change > > will be propagated via the configuration protection mechanism whenever > > dev-lang/python-exec-conf is installed or rebuilt due to PYTHON_TARGETS > > changes. This will permit the users to interactively confirm > > the updates. > > > > If the new default is not correct for you, please use your preferred > > configuration update tool to discard or edit the new configuration file. > > > > Furthermore, dev-lang/python will no longer attempt to automatically > > update the Python interpreter preference, or pull in eselect-python > > automatically. If you wish to continue using it, please install it > > manually to ensure that it is not unmerged. > > Perhaps add the "emerge" command here, to avoid users to actually > *manually* installing it? That is, not via the ebuild. Indeed, I didn't think of this 'manual' ;-). I'll update it and send v3 soonish. > The Russian translation follows. Should I post it as a separate file > somewhere? Thank you. To be honest, I don't really know what's the process for localization is. FWICS none of the existing news items includes translations. In any case, if you don't mind I would prefer if we waited with this until the final news item is committed, so we don't have to track changes in it. > > Title: Предпочтения Python будут следовать PYTHON_TARGETS > > 1 февраля 2021 пользователи стабильной ветки перейдут на новый метод > обновления > предпочтительной версии Python, который будет использовать значение переменной > PYTHON_TARGETS и применять механизм обновления конфигураций. Также мы > объявляем app-eselect/eselect-python устаревшим и по умолчанию перестанем его > устанавливать. Если вы хотите использовать самую новую версию Python из > указанных в PYTHON_TARGETS, вам надо только принять изменения конфигурации. > Если же вам нужно настроить индивидуальное поведение, продолжайте читать. > > С 2017 года /usr/bin/python и тому подобные символические ссылки без версии > являются обёртками с помощью dev-lang/python-exec. Список предпочтительных > реализаций Python хранится в /etc/python-exec/python-exec.conf и/или в > /etc/python-exec/<программа>.conf для программ с конфигурацией не по > умолчанию. > Для обратной совместимости app-eselect/eselect-python остался обёрткой, > которая > обновляла этот файл. > > Однако сам по себе этот механизм оказался неудобен пользователям, которым > теперь приходилось обновлять python-exec.conf каждый раз, когда менялась > переменная PYTHON_TARGETS. Благодаря логике запасных вариантов это не было > большой проблемой для программ, установленных из репозитория Gentoo, т.к. они > гарантируют использование поддерживаемой реализации Python. Но пользователи > сообщали, что, когда предпочтение для /usr/bin/python не совпадало с их > PYTHON_TARGETS, из-за неудовлетворённых зависимостей ломались пользовательские > программы, что противоречит принципу наименьшего удивления. > > Поэтому мы решили изменить стандартную настройку python-exec, теперь она будет > совпадать с PYTHON_TARGETS в порядке предпочтения, используемым eclass'ом: > сначала все CPython, начиная с новейшей версии и заканчивая старейшей, затем > другие реализации Python. Это изменение будет установлено в систему с помощью > механизма защиты конфигураций каждый раз при установке или пересборке > dev-lang/python-exec-conf из-за изменения PYTHON_TARGETS. При этом у > пользователей будет возможность интерактивно подтвердить данные изменения. > > Если новые настройки вам не подходят, пожалуйста, используйте ваш любимый > инструмент обновления конфигурации, чтобы отбросить изменения или > отредактировать новый файл. > > Более того, dev-lang/python больше не будет пытаться автоматически обновить > предпочтительную версию Python и больше не будет автоматически затягивать > eselect-python. Если вы хотите продолжать его использовать, пожалуйста, > установите его вручную, чтобы он не удалился. -- Best regards, Michał Górny