Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic

7 июня 2019 года

СиДжей Сильверио (CJ Silverio), в конце прошлого года покинувшая пост технического директора компании NPM Inc, представила новый репозиторий пакетов Entropic (Архивная копия от 23 октября 2020 на Wayback Machine), который развивается как распределённая альтернатива NPM, не подконтрольная конкретной компании. Код Entropic написан на JavaScript и распространяется под лицензией Apache 2.0. Проект развивается всего месяц и находится на стадии начального прототипа, но уже поддерживает базовые операции, такие как подключение, публикация и установка пакетов.

В качестве причины создания Entropic называется полная зависимость экосистемы JavaScript/Node.js от компании NPM Inc, которая контролирует разработку пакетного менеджера и поддержание репозитория NPM. Сложилась ситуация когда нацеленная на получение прибыли компания единолично контролирует систему от которой зависят миллионы разработчиков и приложений на JavaScript, и которая обрабатывает миллиарды загрузок пакетов в неделю.

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

Сильверио также сомневается, что NPM Inc заинтересована в оптимизации взаимодействия со своим бэкендом, так как это приведёт к снижению потоков данных, потенциально интересных с точки зрения монетизации. При каждом запуске команды "npm audit" во вне отдаётся содержимое файла package-lock, включающего много интересных сведений о том, чем занимается разработчик. В качестве реакции несколько видных участников сообщества JavaScript/Node.js начали разработку альтернативы, не подконтрольной отдельным компаниям.

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

Все пакеты разделяются с использованием пространств имён и включают информацию о хосте, на котором размещается их первичный репозиторий. Пространство имён по сути представляет собой имя владельца пакета или группы мэйнтейнеров, имеющих право на выпуск обновлений. В общем виде адрес пакета выглядит как "namespace@repohost.com/pkg-name". Метаданные и сведения о зависимостях определяются в формате TOML.

В случае размещения в локальном репозитории пакета, связанного зависимостями из других репозиториев, данные пакеты зеркалируются в локальном репозитории. Таким образом локальный репозиторий становится самодостаточным и включает копии всех необходимых зависимостей. Имеется прослойка для взаимодействия с классическим репозиторием NPM, который обрабатывается как доступный в режиме только для чтения архив. В том числе можно устанавливать пакеты из NPM, используя локально развёрнутые окружения Entropic.

Для управления предоставляется инструментарий командной строки, упрощающий развёртывание репозиториев в своей локальной сети. Entropic предлагает принципиально новые

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.