на гитхабе есть репозиторий без описания composer.json я его подключил так Код (PHP): "require": { "terrasoff/yii-flag-behavior":"dev-master", }, "repositories":[ { "type":"package", "package":{ "name":"terrasoff/yii-flag-behavior", "version": "dev-master", "source": { "type": "git", "reference": "master", "url":"https://github.com/terrasoff/yii-flag-behavior" }, "autoload": { "classmap":["FlagBehavior.php"] } } }, проблема в том что при изменении репы композер не обновляет пакет как правильно подключить?
https://getcomposer.org/doc/05-repositories.md#loading-a-pa ... repository здесь репа несколько по другому описана
по ссылке репа не находится но подозреваю что в репе есть свой файл composer.json поэтому нет описания в моем примере в репе нету файла composer.json
ты буквально строки из примера взял чтоли? ну конечно репа не находится. это же пример. смотри тип репозитория. у тебя "type":"package", в примере "type": "vcs". далее по тексту сказано:
мой пример я взял отсюда http://habrahabr.ru/post/145946/ Подключаем произвольный git репозиторий "type":"package" а внутри Код (PHP): "source": { "type": "git", "reference": "master", "url":"https://github.com/terrasoff/yii-flag-behavior" },
да, я был невнимателен. Добавлено спустя 6 минут 30 секунд: Вот товарищь сигналит ту же проблему с НЕобновлением из git и решением отметил следующую рекомендацию: http://stackoverflow.com/a/14600363/272885 либо отмечать каждую новую версию в гите тегом, либо таки придется заводить composer.json в подключаемой репе.
про composer.json в подключаемой репе я догадывался но тут не вариант получается нужно удалять руками пакет чтобы композер заново его скачал? думал что если указать dev-master то композер будет хранить ид последнего скаченного коммита fdf8db9cdb789981937811d154b5cf31951e5b4e и при обновлении записывать
проще говоря, компосер не заменяет клиента гит ))) для его полноценной работы таки нужен composer.json в подключаемом репозитории.
см. свой первый пост - там есть слово version. Добавлено спустя 2 минуты 12 секунд: p.s. я ищу решение параллельно с тобой, на экспертное мнение не претендую ))) читаю, экспериментирую Добавлено спустя 3 минуты 51 секунду: допустим вот человек пытался зажечь тикет по теме, но его успокоили, что такова природа вещей https://github.com/composer/composer/issues/2011 в итоге просто сделали комментарий в доке
"version": "dev-master" вместо dev-master вставить любое число? только что попробовал, если вручную менять число то обновления скачиваются, но ведь это тоже самое что удалить пакет и композер его заново скачает
Не хочу мусорить новой темой composer и github. Как правильно оформить composer.json для репозиторя github? У меня получилось инсталировать репозиторий без этого файла, composer.json в проекте имел вид: Код (PHP): { "repositories":[ { "type": "package", "package": { "name": "Zlatov/pdo", "version": "1.0.0", "source": { "url": "https://github.com/Zlatov/pdo.git", "type": "git", "reference": "dev-master" }, "autoload": { "classmap": ["PDOConnection.php"] } } } ], "require": { "twig/twig": "1.16.3", "Zlatov/pdo": "1.0.0" } } Теперь хочу, чтобы в проекте файл composer.json выглядел проще: Код (PHP): { "repositories":[ { "url": "https://github.com/Zlatov/pdo.git", "type": "git" } ], "require": { "twig/twig": "1.16.3", "Zlatov/pdo": "1.0.1" } } Для этого, как я понимаю, нужно в репе создать свой composer.json: Код (PHP): { "type": "package", "package": { "name": "Zlatov/pdo", "version": "1.0.1", "source": { "url": "https://github.com/Zlatov/pdo.git", "type": "git", "reference": "1.0.0" }, "autoload": { "classmap": ["PDOConnection.php"] } } } Но в такой кофигурации у меня ошибка Код (PHP): Reading composer.json of https://github.com/Zlatov/pdo.git (dev-master) Skipped branch dev-master, Undefined index: name [Composer\Repository\InvalidRepositoryException] No valid composer.json was found in any branch or tag of https://github.com/Zlatov/pdo.git, could not load a packag e from it. Почему name - Undefined index? Почему No valid composer.json was found in any branch or tag? Еще вопрос, почему принято ветку называть dev-master? Можно ли оставить master?
а нет идеи что имя пропадает потому что оно содержит недопустимые символы - например верхний регистр?
я не гуру, но своё понимание расскажу: composer init сделай, он интерактивно создаст валидный файл. в ветке master он должен быть. версии надо обозначать через теги в репозитории. имена по определенной схеме. "dev-master" это такой псевдоним для текущего состояния ветки master - независимо от тегов. буквально создавать ветку с этим именем не надо.
В общем создал валидный composer.json в репе, и назрел вопрос. Код (PHP): { "name": "Zlatov/pdo", "type": "package", "description": "pdo", "keywords": ["pdo","connect"], "homepage": "https://github.com/lastguest/DynamicString", "version": "1.0.3", "license": "MIT", "authors": [ { "name": "Maksim Zlatov", "email": "zlatov@ya.ru" } ], "require": { "php": ">=5.4" }, "minimum-stability": "dev-master", "autoload": { "classmap": [ "PDOConnection.php" ] } } Если при установке запросить версию dev-master то комозер посылает ошибкой, а если указать версию, например 1,0,3 то удачно скачивает. А если указать любую версию: "Zlatov/pdo": "*" , то скачивает последнюю версию 1,0,3 , а не dev-master, хотя указано в репозитории "minimum-stability": "dev-master" Что-то я не так понимаю.... Добавлено спустя 23 минуты 8 секунд: Идеи небыло =) сам github везде пишет Zlatov/... и в ссылках тоже, но спасибо, символы помогли. composer init рулит ага, спасибо с тагами интересно все, теговал четыре раза (1.0.0, 1.0.1, 1.0.2, 1.0.3) и пушил. Но гитхаб видит только два релиза 1.0.1 и 1.0.3, но это мой косяк где-то....
https://getcomposer.org/doc/04-schema.md#minimum-stability dev-master можно упоминать в секции require: ты хочешь подключить пакет foo/bar в версии dev-master. еще нюанс: если через packagist забираешь свой пакет (а не напрямую с гита), то там обновления где-то раз в час происходят. а если хук на гитхабе не настроить, то вообще хз когда раздуплится. оно может тупо не знать про твою текущую версию. Добавлено спустя 2 минуты 22 секунды: с заглавной буквой какие-то сложности: https://github.com/composer/packagist/issues/422 Добавлено спустя 7 минут 38 секунд: Хм, при типа пакета "vcs" есть какие-то особые требования к dev-master. Похоже требуется описать алиас: https://getcomposer.org/doc/articles/aliases.md Код (PHP): { "extra": { "branch-alias": { "dev-master": "1.0.x-dev" } } }
да, вот тут у них непонятка вышла. если они в вопросе о регистрах решили что дабы не держать никакого сервера имен (который разрешал бы ИмЯаВторА в имяавтора) тупо сделать всё в нижнем регистре. и это правильно. днс так же работает. электропочта так же работает. но вот не научить программу тупо переводить в нижний регистр символы, полученных из описания пакета - это пролёт.