Привязка composer.json к определенному SHA Laravel 5

Я работаю над экспериментальным проектом с использованием пока еще не выпущенного Laravel 5. Кажется, что недавний коммит фактически сломал вещи, но вместо того, чтобы ждать решения, я бы просто продолжил использовать версию разработки, которую я знаю, чтобы работать во время мониторинга зафиксировать журнал. Мой текущий composer.json Файл выглядит следующим образом (соответствующий фрагмент):

  "name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "~5.0",
"illuminate/html": "~5.0"},

Я пытаюсь сделать это:

  "name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"},

в документы Composer поддерживает возможность привязки к определенному SHA, однако при запуске composer update Я получаю сообщение:

[UnexpectedValueException]

Could not parse version constraint ~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c:
Invalid version string "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c"

Конечно, я пробовал разные варианты (5.0#..., 5#...и т. д.) но все они выдают одно и то же сообщение об ошибке. Вклад приветствуется!

2

Решение

Вместо этого вы должны использовать псевдоним ветви. Вы должны использовать 5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c как версия:

"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"},
1

Другие решения

Вы можете попробовать с:

"laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",

вместо:

"laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",

и установите его, используя:

composer install --prefer-source

Мой точный composer.json файл был:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"},
"config": {
"preferred-install": "dist"},
"minimum-stability": "dev"}

Однако вы должны заметить, что во время установки отображается следующее сообщение:

Installing laravel/framework (dev-master cd37f40)
Cloning cd37f40bba5dced6b1c30d313df2e46c5c33a62c
cd37f40bba5dced6b1c30d313df2e46c5c33a62c is gone (history was rewritten?), recovered by checking out 5300b9eb19b5aeac8746835558419d274ee21621

кажется, что этот коммит недоступен, но я не эксперт по композиторам, поэтому могу ошибаться.

РЕДАКТИРОВАТЬ

Я перепробовал десятки других настроек, но каждый раз, или он терпел неудачу, или получал другой коммит, а не тот, который вам нужен.

0

Вот похожий вопрос с ответом, который мне помог:

композитор | Laravel 5 — Обновление зависимостей, но сама структура

"require": {
"laravel/framework": "dev-master#49e3c77b518547bb661b1de4fda64a3ae0c5c505",
...
}
0

Вздох, ответ ударил меня, как молния. https://github.com/laravel/laravel/commits/develop очевидно, что Laravel / Laravel совершает, и не Laravel / Framework фиксирует.

Даже после того, как мой нелепый надзор разрешен, мне все еще неясно, как можно на какое-то время привязаться к определенной версии laravel / laravel. Есть обходные пути, чтобы быть уверенным, но я ищу право Кстати, если такое решение существует.

Извините за вращение колеса @Wouter и @Marcin, и спасибо за вашу помощь.

-1
По вопросам рекламы [email protected]