[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