LINUX.ORG.RU

В PyPI появилась возможность переместить пакеты в архив

 , ,


0

2

В Python Package Index (PyPI) – каталоге пакетов для Python – появилась поддержка маркировки проектов, как архивных. Теперь мейнтейнеры пакета могут архивировать проект, чтобы дать пользователям знать, что он не будет больше получать обновлений.

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

Особенности:

  • архивация проекта не является удалением — пакет не удаляется из индекса и не мешает пользователям устанавливать его;
  • архивация — это маркер для пользователей, который дает владельцам проекта возможность сигнализировать о статусе проекта;
  • PyPI не планирует удалять архивированные пакеты.

Владельцы проекта могут архивировать его, перейдя на страницу настроек проекта и прокрутив страницу вниз до раздела «Archive Project». Также рекомендуется сделать финальный релиз перед архивацией, обновив описание проекта и добавив больше информации об архивации.

Также владельцы проекта всегда могут разархивировать проект при необходимости.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 3)

Я как-то шарился в поиске на PyPl. Там такая помойка, что лучше это закрыть и перейти исключительно на git+http ссылки…

Ну или удалить всё к всяким собачьим, а публиковаться давать только проектам, которые показали свою значимость. Остальные пусть с VCS устанавливаются.

Как только проект получает архивный статус, переносить в отдельный репозиторий с пониженным приоритетом.

Кладбище велосипедов.

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 1)
Ответ на: комментарий от egzakharovich

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

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

Не спорю, что выполняют какую-то функцию. Но большинство того, что находил, уже эту функцию не выполняли. Или вовсе остались со времён Python2. Или как и были в зачаточном состоянии «продолжение следует», так и остались.

С точки зрения репозитория это мусор. Который ещё и занимает имя пакета для новых проектов. Потому что попробуй ещё найди имя для проекта, которое не было бы занято каким-то другим чуваком на PyPl, который не успел родить версию 0.0.1, зато уже надо занять имечко, выложить хрень и благополучно забыть.

Такой мусор может и на гитхабе в профиле полежать.

У меня тоже есть парочка подобных велосипедов, но я не несу их на PyPl. Мне достаточно возможности установить их через git+http.

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

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

Ты вот остановился на самом интересном и поэтому в результате у тебя получилось 4.2. Новые пакеты появляются потому, что старые перестают поддерживаться и протухают из-за поломки совместимости с новыми версиями патона.

u5er ★★
()
Ответ на: комментарий от egzakharovich

0.1.0 только как член с двумя яйцами. по традиции не с 0.0.1 релизная версия начинается. мож реально такой шутник был. надо загуглить почему так подозрительно все

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от egzakharovich

имеется в виду релиз типа самая первая версия. просто иногда релиз употребляют в значении продакшн

rtxtxtrx ★★
()
Ответ на: комментарий от egzakharovich

Который ещё и занимает имя пакета для новых проектов. Потому что попробуй ещё найди имя для проекта, которое не было бы занято каким-то другим чуваком на PyPl, который не успел родить версию 0.0.1, зато уже надо занять имечко, выложить хрень и благополучно забыть.

Как ни странно, пхпшники решили эту проблему: там имена в формате «владелец/пакет». То есть можно какие угодно имена брать, даже если у кого-то аналогичный уже есть. И у джавистов в mvn тоже есть пространства имён.

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

Как ни странно, пхпшники решили эту проблему: там имена в формате «владелец/пакет».

Т.е. владелец у пакета смениться не может?

mx__ ★★★★★
()
Ответ на: комментарий от egzakharovich

И что изменится если всё уедет с pypi в git+http? Будет больше возможностей для хакеров перекупать домены и распространять малварь? Гениально.

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

Я вот его слова совсем понять не могу. Может он не в курсе что сайт pypi это всего лишь веб морда.

Все это юзается через pip, к примеру pip search …

https://pip.pypa.io/en/stable/cli/

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от neumond

какие домены? гитхаб блокирует проекты, ворующие данные. на pypi тоже можно пожаловаться, но там похожие имена не дает занять

rtxtxtrx ★★
()
Ответ на: комментарий от egzakharovich

перейти исключительно на git+http ссылки…
Остальные пусть с VCS устанавливаются.

Попробуйте установить из VCS, к примеру, фронтенд для Home Assistant.

Питоновские пакеты далеко не всегда содержат именно питоновский код, многие требуется собирать удивительными способами и с удивительными зависимостями. PyPI нужен именно для быстрой установки таких пакетов.

pisemsky
()
Ответ на: комментарий от mx__

Так любой человек может форкнуть пакет и выложить в своём неймспейсе. «Официальная» смена владельца будет фактически тоже «ребрендингом».

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

Ну на PyPl видимо сразу не догадались, а теперь, чтобы не ломать совместимость…

Хотя, если подумать, внедрить неймспейсы можно. А те что без неймспейсов сделать якобы членами master неймспейса. Но что делать с велосипедами и мусором, вопрос открытый останется.

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 1)
Ответ на: комментарий от mx__

И что? Это не меняет ситуации, что за десятки лет там собралась такая тонна лясопедов и трупов, что теперь проще выжечь это напалмом и начать заново?

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

Мне реально нужно пояснять разницу между большинство и все? Уровень дискуссий который мы заслужили.

После выжигания напалмом, что-то принципиально изменится? Какие-то особые, намазанные мёдом пакаджи попрут?

И главное, что, проще дышать станет, если на pypi останется самые популярные 100 пакетов с их зависимостями? Чья это проблема? У pypi там место заканчивается или что?

И давай уж, чтоб мне тут не пояснили, вдруг я не знаю. Даже сейчас можно все зависимости указать урлам на гит и pip это поставит. Даже сейчас можно завести свой отдельный pypi со своими пакетами. Но вот практика показывает что никому это не нужно, кроме аудита безопасников в относительно больших компаниях.

neumond
()
Ответ на: комментарий от pisemsky

Ну, то что PyPl содержит бинарные пакеты, я знаю. Но и для них можно было бы что-то придумать. Ведь большинство VCS-хостингов поддерживают артефакты в релизах. Тем более GitHub. Для остальных немного сложнее…

Но, например, я слышал, что у Go для незнакомых доменов, есть возможность с помощью meta-тегов указать, где что искать. Или писать бекенды для часто используемых служб и указывать их отдельно в конфиге для каждого незнакомого домена.

Среди файлов к тегу нужной версии, pip находит whl файлы и устанавливает их в зависимости от архитектуры.

Но всё было бы гораздо проще, будь там изначально неймспейсы, конечно.

egzakharovich
()
Ответ на: комментарий от neumond

После выжигания напалмом, что-то принципиально изменится?

Изменится. Что все неактуальные проекты для мёртвых версий Python уйдут. Велосипеды тоже. Искать проекты по ключевым словам станет проще.

В основной неймспейс (потому что неймспейсы таки нужны) пускать только после модерации и только после достижения определённого количества загрузок в месяц.

Я вот, например, попробовал поискать библиотечку для работы с мастдайным COM из python. Ибо никаких готовых сборок, для работы со своей библиотекой через python, одна российская копрорация проприетарно-сертифицированного софта не предоставляет. Проще через COM-интерфейс получить всю нужную инфу.

Пока нашёл более-менее рабочие варианты, перерыл десяток-другой страниц мусорной выдачи, типа пакета с именем google.com. И среди них был десяток проектов, которые, вроде как выглядят тем что надо, но они оказались заброшены.

Так стоп, мне сколько раз одно и то же повторять? Ну вот, последний раз повторил, для самых особенных. Больше не буду. Не хотите понимать, не понимайте, раз вас всё устраивает. Или сами сходите, попробуйте поискать библиотечку для Python в инторнетах.

И вообще, мне как-то хотелось написать свой лясопед. А потом я сходил на PyPI, а там оказалось, что все пришедшие в голову названия заняты такими же лясопедами, только заброшенными. И дай б-г работающими под Python 3.8+. И сразу перехотелось. Прям выкладывать сразу не планировал, только если получится что-то внятное. Потому считайте, что это моя личная обидка и закроем тему.

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

Найти что-то нужное на pypi таки да, сложно. Но в случае модерации там кроме джанги ничего не останется. Вряд ли кто-то пустит никому неведомый пакет для COM в основную подборку. Это всё не решит твою проблему, а усугубит её.

neumond
()
Ответ на: комментарий от static_lab

Ну я не согласен, и морщу лоб и ни как не могу вспомнить двух прог с одним названием. Вася-Мозилла, Федя-Гимп, Торвальдс-Ядро, все почему то придумывают другое-свое название.

mx__ ★★★★★
()
Ответ на: комментарий от egzakharovich

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

mx__ ★★★★★
()
Ответ на: комментарий от neumond

Странно как то. Я иногда пописываю на питоне и всегда искал на pypi что то конкретное. Или прочитал про это где то, или в коде каком то увидел. Это не только конечные и конкретные приложения это куча всяких либ … не очень понимаю про поиск непонятно чего.

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

Как повезёт. От балды ввёл запрос infrared, какой-нибудь инфракрасный порт, а там всё забито плагином для ансибла. А пару других тем поискало прям отлично, надо наверное почаще там искать.

neumond
()
Ответ на: комментарий от static_lab

Я вообще то не про либы php а вообще про любые проги.

Мне вообще реализация с именами не нравится, делать мне нечего как еще ники юзеров запоминать.

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

Я вообще то не про либы php а вообще про любые проги.

Странное обобщение. Мы тут о пакетах для ЯП разговариваем.

Мне вообще реализация с именами не нравится, делать мне нечего как еще ники юзеров запоминать.

Предлагаешь UUID запоминать?

static_lab ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.