From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1582878793; bh=XccS/H2vnNujUOu5+WqDlOQ4n7ltsSoNsX0wTdmIM0k=; h=References:Date:Message-Id:Subject:In-Reply-To:To:From; b=F7EmXRasOtCACdGKl3LtSz2EHNj8zoh/SEKthPKIzQv7XHW7AkIIufO2oS2ggiuUA qB8pbuh5YOIvrC+5+5KbTXP1f10L7S/9rxG2wby7fq2BbA8GufXcZBunJU1pSA5jsD 7rmij5nk70R39WAv8dIVpUJatLEkgHhzR1gBeVNc= Authentication-Results: mxback2o.mail.yandex.net; dkim=pass header.i=@yandex.ru From: =?utf-8?B?0KHQutGA0YvQu9C10LLRiiDQnNCw0LvRig==?= To: ALT Linux Team development discussions In-Reply-To: <75145edc1555c8ad22e7412ecd28a63a@altlinux.ru> References: <75145edc1555c8ad22e7412ecd28a63a@altlinux.ru> MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 28 Feb 2020 11:33:13 +0300 Message-Id: <7804951582878793@iva8-03ad76494624.qloud-c.yandex.net> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 Subject: Re: [devel] =?utf-8?b?UG9saWN5INC/0L4g0YPQv9Cw0LrQvtCy0LrQtSDQvNC+?= =?utf-8?b?0LTRg9C70LXQuSBOb2RlLmpz?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Feb 2020 08:33:17 -0000 Archived-At: List-Archive: List-Post: 28.02.2020, 00:28, "Vitaly Lipatov" : > Хочу предложить на обсуждение полиси по упаковке модулей для Node.js: > https://www.altlinux.org/Node.js_Policy > > Важно учитывать, что модулей для node (npm-пакетов) многие тысячи, и никакого смысла собирать в репозиторий в виде rpm-пакетов их нет, тем более невозможно учесть разницу в версиях. > Необходимо собирать в пакеты только те модули, которые требуют компиляции (с системными библиотеками), а также модули, которые являются программами в /usr/bin (например, npm, yarn, sass, node-gyp и подобное).`` Думаю тут не нужно впрадать в крайности, типа есть модулей тычячи то и собирать их не надо. Я считаю, что каждый модуль должен быть форомблен в качестве пакет, по двум причинам: * переиспользование модуля приложениями, и другими модулями, потому что кроме того, что есть несколько приложений, которые за собою тащат много повторяющихся модулей, но и модули этих приложений также тащат уже повторные копии тех же самых модулей, что приводит к тому,что в одном пакете приложения, я насчитаю несколько единиц копий одного и того же модуля, а для модулей нижнего уровня этот счёт по видимости может составлять десятки. * разрешение путаницы как для наших так и для сторонних разработчиков, путаницы такой что будут обязательно вопрос почему это такой-то модуль собран отдельно а такой-то нет. А где вопросы там и смущение.... Для меня основным критерием необходимости попадания модуля в репозиторий есть тот, что, необходим ли этот самый модуль вышестоящему приложению или нет, то есть собирать модуль только потому что де он мне понравился смысла не имеет, а вот собирать его потому, что он нужен приложению, имеет. > Программа на nodejs не является модулем для nodejs, поэтому указывать префикс, как у модуля, не требуется. Что тут понимается под понятием программа? Я тут бы разделил, на 2 понятие - приложение и утилита: * приложение это любое приложение на node, зависимости запуска и работу которого определяются в том числе файлом описания проекта package.json, но при этом, оно не опубликовано на npmjs (не nodejs, такого понятия в мире node нету %) ) * утилита - собственно в некотором роде тоже программа, как правило оформленная в виде запускаемого файла, в котором в качестве интерпретатора указано node. Ну и правила оформления такие: для приложения это srpm имеет имя без nodejs/npmjs, целевые rpm также для утилиты srpm может иметь префикс nodejs/npmjs, если этот фай находится в репозитории npmjs, а целевые rpm делятся на библиотеку с темже префиктом, и утилиту - без префикса, ну по типу деления в обычных компилируемых модулях, напр: soft/libsoft, дада тут префикс имеет смысл именно как в этом паре. >Название пакета с модулем для node: nodejs-<имя>. Я сторонник npmjs, как более понятного для внешнего разработчика знакомого с фреймворком node. > И ассоциироваться такой префикс должен не с хранилищем (то есть с сайтом, который и поменяться может), а с названием экосистемы для пакетов, среды их исполнения. Название хранилище может поменяться ровно в тойже степени как и само название node, так что это не очень довод. На моей памяти менялось и то и другое, причём переименование языка влечет более тяжкие последствия. > Традиционно принято в качестве префикса использовать название языка. Так в репозитории Сизиф есть пакеты erlang-*, python-*, perl-*, ruby-*, php-* java-*. Возможно кому-то показалось, что это названия языков, на которых написаны модули. Нет, зачастую такие модули написаны на C, а не на php. И префикс имени пакета для языковых систем показывает, расширение какого языка поставляет этот пакет. Я уже написал, что для ruby/python/erlang это недействительно -- > С уважением, > Виталий Липатов, > ALT Linux Team > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel --  Малъ Скрылевъ about.me/majioa