Поддержка версии пакета с использованием тегов git
Я являюсь автором фреймворка Restler, сейчас пытаюсь использовать правильно названные теги для управления версиями пакетов.
Я использую следующий composer.json и назвал свои теги в соответствии с рекомендациями в https://getcomposer.org/doc/02-libraries.md#tags которые вы можете увидеть по адресу https://github.com/Luracast/Restler/releases
Но packagist не перечисляет версии пакетов!
{
"name": "luracast/restler",
"type": "library",
"description": "Restler is a simple and effective multi-format Web API Server framework written in PHP. Just deal with your business logic in php, Restler will take care of the REST!",
"keywords": ["server", "api", "framework", "REST"],
"homepage": "http://luracast.com/products/restler/",
"license": "LGPL-2.1",
"authors": [
{
"name": "Luracast",
"email": "arul@luracast.com"
},
{
"name": "Nick nickl- Lombard",
"email": "github@jigsoft.co.za"
}
],
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"luracast/explorer": "*",
"guzzle/guzzle": "~3.1.1",
"behat/behat": "2.4.*@stable",
"rodneyrehm/plist": "dev-master",
"zendframework/zendamf": "dev-master",
"symfony/yaml": "*",
"mustache/mustache": "dev-master",
"twig/twig": "v1.13.0",
"bshaffer/oauth2-server-php": "v1.0"
},
"suggest": {
"luracast/explorer": "Restler's very own api explorer (see require-dev for details)",
"guzzle/guzzle": "RESTful api HTTP client framework (see require-dev for details)",
"behat/behat": "Behaviour driven development testing framework (see require-dev for details)",
"rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)",
"zendframework/zendamf": "Support for the amf document format (see require-dev for details)",
"symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)",
"twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)",
"mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)",
"bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/zendframework/ZendAmf.git"
},
{
"type": "package",
"package": {
"name": "luracast/explorer",
"version": "v3.0.0",
"dist": {
"type": "zip",
"url": "https://github.com/Luracast/Restler-API-Explorer/zipball/v3.0.0"
}
}
}
],
"autoload": {
"psr-0": {
"Luracast\\Restler": "vendor/"
}
},
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"v3": "3.0.x-dev"
}
}
}
Я вижу такие проекты, как symfony/symfony
использовали аналогичные composer.json и аналогичные имена веток, но на packagist они показываются очень хорошо
Не смог придумать никакого решения! Любая помощь высоко ценится
1 ответ
Существует простой способ отладки, вы создаете composer.json, содержащий ваш репозиторий, а именно:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/Luracast/Restler"
}
]
}
Тогда ты бежишь composer show -v luracast/restler
, -v будет отображать детали при разборе git-репо. Вывод этой команды:
Reading composer.json of luracast/restler (3.0.0-RC1)
Skipped tag 3.0.0-RC1, tag (3.0.0.0-RC1) does not match version (3.0.0.0) in composer.json
Reading composer.json of luracast/restler (3.0.0)
Importing tag 3.0.0 (3.0.0.0)
Reading composer.json of luracast/restler (2.2.0)
Skipped tag 2.2.0, no composer file
Reading composer.json of luracast/restler (1.0.20)
Skipped tag 1.0.20, no composer file
Reading composer.json of luracast/restler (features/AOP)
Importing branch features/AOP (dev-features/AOP)
Reading composer.json of luracast/restler (features/forms)
Importing branch features/forms (dev-features/forms)
Reading composer.json of luracast/restler (features/html)
Importing branch features/html (dev-features/html)
Reading composer.json of luracast/restler (features/oauth)
Importing branch features/oauth (dev-features/oauth)
Reading composer.json of luracast/restler (features/router)
Importing branch features/router (dev-features/router)
Reading composer.json of luracast/restler (features/swagger1.2)
Importing branch features/swagger1.2 (dev-features/swagger1.2)
Reading composer.json of luracast/restler (master)
Importing branch master (dev-master)
Reading composer.json of luracast/restler (v1)
Skipped branch v1, no composer file
Reading composer.json of luracast/restler (v2)
Skipped branch v2, no composer file
Reading composer.json of luracast/restler (v3)
Importing branch v3 (3.x-dev)
name : luracast/restler
descrip. : Restler is a simple and effective multi-format Web API Server framework written in PHP. Just deal with your business logic in php, Restler will take care of the REST!
keywords : server, api, framework, REST
versions : dev-master, 3.x-dev, v3.0.0, dev-features/swagger1.2, dev-features/AOP, dev-features/forms, dev-features/oauth, dev-features/html, dev-features/router
Как видите, теги были пропущены, потому что в них отсутствует composer.json или версия не совпадает (я вижу, что вы удалили версию в основной ветке, это правильно). Только один тег (3.0.0) был успешно импортирован и отображается во втором бите вывода в списке версий.
Другими словами, все в порядке, и новые теги, которые вы создаете из основной ветки, должны без проблем появиться на packagist вместе с 3.0.0, который уже есть.