Композитор требует название ветки

106

Например, я хочу потребовать:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "v1-master"
  }
}

В этом примере я пробую требовать google/apiclientв ветке v1-master. Я получаю ошибку:

  [UnexpectedValueException]                                                        
  Could not parse version constraint v1-master: Invalid version string "v1-master"
Волшебник
источник

Ответы:

188

Вам нужно префикс всех ветвей разработки (= без тегов) dev-.

Для установки нужной вам ветки используйте:

composer require google/apiclient:dev-v1-master

См. Документы композитора .

Томаш Вотруба
источник
1
Полезная информация. Спасибо!
Мэтт Комарницки
Я пытаюсь это сделать на компьютере с Windows, но не могу найти правильную команду для запуска композитора для загрузки пакета из репозитория git. Пожалуйста, помогите с этим?
Старший руководитель группы программистов PHP
Добавить префикс «dev-» можно только в команде композитора. Вам не нужно ничего менять в названии веток репозитория
Сайлас Рибас Мартинс
Не удалось переустановить обновленную ветку даже с --no-cache, поэтому я использовал это:composer require google/apiclient:dev-v1-master#COMMITHASH
M Ростами
46

это будет работать:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "dev-BRANCH_NAME"
  }
}

поэтому шаблон - "dev- *", если имя вашей ветки - "bug-fix", то "dev-bug-fix"

с командной строкой:

composer require google/apiclient:dev-BRANCH_NAME
fico7489
источник
4
Спасибо за объяснение паттерна «dev- *»
Эмека
4
Если вы разделили основное репо, не меняйте имя поставщика в обязательной части. Вилка: "url": "https://github.com/your-username/google-api-php-client.git"но требует пребывания: googleпоставщик.
Владимир Вуканац
1
@VladimirVukanac, эта маленькая жемчужина нуждается в большей видимости!
Джейкоб Томасон