[devel] [cyber] I: Autoimports/Sisyphus 20130625 packages: +138! (3153)
Дмитрий Кулик
lnkvisitor.ts на gmail.com
Пт Июн 28 00:53:11 MSK 2013
2013/6/27 Igor Vlasenko <vlasenko на imath.kiev.ua>
> On Thu, Jun 27, 2013 at 07:47:39PM +0300, Igor Vlasenko wrote:
> > хочу написать библиотеку, которая определяла бы, какое
> > минимальное число версий пакета надо собрать и порядок их
> > сборки.
>
> И хочу отметить, что эту библиотеку я еще не написал,
> а то, что ушло в autoimports, это тестирование,
> пробная сборка, чтобы убедиться, что rpm-build-nodejs работает,
> toolchain работает, зависимости присутствуют.
>
> Я эти пакеты могу удалить, если они кому-то мешают.
Может помогу немного...на примере того же express.
Я надеюсь робот умеет брать с интернета то что ему нужно.
для начала https://registry.npmjs.org/express получаем описание пакета в
package.
разбираем package.versions
"versions":{
- "0.14.0":{},
- "0.14.1":{},
- "1.0.0beta":{},
- "1.0.0beta2":{},
- "1.0.0rc":{},
- "1.0.0rc2":{},
- "1.0.0rc3":{},
- ...
}
сортируем в порядке убывания версии. для сортировки родной механизм -
https://github.com/isaacs/node-semver в ридми все по человечески написано
если не указана версия - то берем максимальную иначе через semver идем от
максимальной и вниз.
если подходит - запоминаем version
если эта версия уже есть в репозитории - то припускаем,
далее работаем с package.versions[version]
{
"name": "express",
"description": "Sinatra inspired web development framework",
"version": "3.3.1",
"author": {
"name": "TJ Holowaychuk",
"email": "tj на vision-media.ca"
},
"contributors": [
{
"name": "TJ Holowaychuk",
"email": "tj на vision-media.ca"
},
{
"name": "Aaron Heckmann",
"email": "aaron.heckmann+github на gmail.com"
},
{
"name": "Ciaran Jessup",
"email": "ciaranj на gmail.com"
},
{
"name": "Guillermo Rauch",
"email": "rauchg на gmail.com"
}
],
"dependencies": { //Их снова скармливаем роботу, робот должен по идее
вернуть собраную версию для наших Reqs
"connect": "2.8.1",
"commander": "0.6.1",
"range-parser": "0.0.4",
...
},
"devDependencies": { // Эти зависимости не ставятся по умолчанию.
Только если мы разрабатываем модуль, для тестирования, прочее
"ejs": "*",
"mocha": "*",
"jade": "0.30.0",
...
},
"keywords": [
"express",
"framework",
...
],
"repository": {
"type": "git",
"url": "git://github.com/visionmedia/express"
},
"main": "index",
"bin": { // это то что должно линковаться в /usr/bin и как называться
"express": "./bin/express"
},
"scripts": { //здесь описываются команды для сборки
"prepublish": "npm prune",
"test": "make test"
},
"engines": { //некоторые модули могут указывать на старые версии, но
работают и на более новых
"node": "*"
},
// Это у нас markdown. иногда присутствует файлом
"readme": "![express logo](
http://f.cl.ly/items/0V2S1n0K1i3y1c122g04/Screen%20Shot%202012-04-11%20at%209.59.42%20AM.png)\n\n
Fast, unopinionated, minimalist web framework for [node](http://nodejs.org).
",
"readmeFilename": "Readme.md",
"_id": "express на 3.3.1",
"dist": {
"shasum": "4bb79fb3548313d9e1a49ffdc5aa369a936127d7",
"tarball": "http://registry.npmjs.org/express/-/express-3.3.1.tgz"
},
"_from": ".",
"_npmVersion": "1.2.14",
"_npmUser": {
"name": "tjholowaychuk",
"email": "tj на vision-media.ca"
},
"maintainers": [
{
"name": "tjholowaychuk",
"email": "tj на vision-media.ca"
}
],
"directories": {
},
}
Более подробно читаем https://npmjs.org/doc/json.html
Надеюсь информация будет полезной
З.Ы есть в версиях package.versions[version].license
-
--
Dmitry Kulik
ALTLinux Team
e-mail: lnkvisitor.ts[at]gmail.com
jabber: lnkvisitor.ts[at]gmail.com
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20130627/417345e2/attachment-0001.html>
Подробная информация о списке рассылки Devel