Yii2 fork: dev-custom существует как yiisoft / yii2, но они отклонены вашим ограничением - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь использовать свою разветвленную версию yiisoft / yii2 в установке yii2-app-advanced .

Я следовал эта вики .

Я создал ветку с именем custom и протолкнул ее на свою вилку yii2.

В composer. json моей вилки у меня есть следующее (это имеет значение?):

...
"extra": {
    "branch-alias": {
        "dev-custom": "2.0.x-dev"
    }
...

Тогда в моей yii2-app-advanced установке у меня есть следующее composer.json:

{
    "name": "yiisoft/yii2-app-advanced",

    ...

    "minimum-stability": "stable",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/david-it/yii2"
        }        
    ],
    "require": {
        "php": ">=5.6.0",
        "yiisoft/yii2": "dev-custom",
        "yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0",
        "yiisoft/yii2-bootstrap4": "~2.0.6"
    },

    ...

}

Когда я запускаю composer update, я получаю следующая ошибка:

Problem 1
    - The requested package yiisoft/yii2 dev-custom exists as yiisoft/yii2[2.0.0, 2.0.0-alpha, 2.0.0-beta, 2.0.0-rc, 2.0.1, 2.0.10, 2.0.11, 2.0.11.1, 2.0.11.2, 2.0.12, 2.0.12.1, 2.0.12.2, 2.0.13, 2.0.13.1, 2.0.13.2, 2.0.13.3, 2.0.14, 2.0.14.1, 2.0.14.2, 2.0.15, 2.0.15.1, 2.0.16, 2.0.16.1, 2.0.17, 2.0.18, 2.0.19, 2.0.2, 2.0.20, 2.0.21, 2.0.22, 2.0.23, 2.0.24, 2.0.25, 2.0.26, 2.0.27, 2.0.28, 2.0.29, 2.0.3, 2.0.30, 2.0.31, 2.0.32, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.1.x-dev, 3.0.x-dev, dev-master, 2.0.x-dev] but these are rejected by your constraint.

Команда composer why-not yiisoft/yii2 dev-custom (если она здесь полезна) показывает это:

yiisoft/yii2-bootstrap4   2.0.8   requires  yiisoft/yii2 (~2.0)     
yiisoft/yii2-debug        2.1.13  requires  yiisoft/yii2 (~2.0.13)  
yiisoft/yii2-faker        2.0.4   requires  yiisoft/yii2 (~2.0.0)   
yiisoft/yii2-gii          2.1.4   requires  yiisoft/yii2 (~2.0.14)  
yiisoft/yii2-swiftmailer  2.1.2   requires  yiisoft/yii2 (>=2.0.4)

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

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

Composer 1.9.3 (2020-02-04 12:58:49) с PHP 7.2.24-0ubuntu0.18.04.3 на Linux / 4.15.0-91-generi c

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

Выбор dev-master по мере необходимости работает, но загружаются оригинальные файлы (не те, что в форке).

"require": {
        ...
        "yiisoft/yii2": "dev-master",
        ...
}

Я также попробовал все советы с этот ответ без везения.

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

После долгих часов проб и ошибок я нашел два рабочих решения.

Решение 1 (С помощью Yii2 forum )

Ветвь, по-видимому, считается "нестабильной", поэтому необходимо указать @dev, чтобы composer работал нормально:

"require": {
        ...
        "yiisoft/yii2": "dev-master@dev",
        ...
}

Решение 2

В composer.json моего форка я добавил псевдоним, указывающий на ветку:

"extra": {
    "branch-alias": {
        "dev-master": "2.0.x-dev",
        "dev-custom": "2.0.n-dev"
    }
}

Где n это просто число (должно быть, оно уникально среди доступных версий) .

Затем в composer.json моего проекта я использовал "yiisoft/yii2": "2.0.n.x-dev".

Я не совсем уверен, почему я должен использовать "2.0.n.x-dev" вместо "2.0.n-dev". Возможное объяснение: здесь .

0 голосов
/ 20 марта 2020

На данный момент у вас есть ветка custom. В этой ситуации вам нужно создать ветку с именем dev-custom, используйте то же имя ветки в разделе require вашего composer. json файла.

Ваше пользовательское имя ветви должно иметь префикс dev- .

...