Size: a a a

2021 March 05

А

Алексей R in Yii Framework 3
Dmitriy S
Один в вендор в конфиге пакета, второй в конфиге пакета в апп, третий в конфиге пакета апп в подпапке дист
а, ну если учитывать и тот что в вендоре..
источник

DS

Dmitriy S in Yii Framework 3
В девтул такое на автомате отрабатывает. Надо только универсальнее сделать, чтобы не только для пакетов из yiisoft работало
источник

AM

Alexander Makarov in Yii Framework 3
Nex Otaku
Ну я под WSL запускаю.
1. Вытянуть старый мастер со старым конфиг-плагином
2. Сделать ./yii-dev update yii-demo
Я локально.
источник

AM

Alexander Makarov in Yii Framework 3
Можно в issue?
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Я локально.
У меня подобное вылезало когда я композером в проекте вне yii-dev работал. То ли обновлял со старой версии на новую, то ли тег вешал на config-plugin. Приходилось вендор сносить.
Я так понимаю, там просто возникают ситуации, когда по событию композера надо дёрнуть хендлер config-плагина, но хендлера физически нет. То ли это поведение кешируется в композере, то ли событие не то выбрано - хз.
источник

AB

Alexander Borisov in Yii Framework 3
Alexander Makarov
Можно в issue?
источник

NO

Nex Otaku in Yii Framework 3
Сделал PR по избавлению от дублирующихся конфигов:

1. Убрал ненужное копирование и создание папок

2. Сделал загрузку конфига из вендора если пользовательский конфиг отсутствует

3. Поправил один из тестов, к сожалению тестов много и все завязаны на дубликаты, поэтому править их долго, не успеваю (

https://github.com/yiisoft/config/pull/16
источник

СП

Сергей Предводителев... in Yii Framework 3
Nex Otaku
Сделал PR по избавлению от дублирующихся конфигов:

1. Убрал ненужное копирование и создание папок

2. Сделал загрузку конфига из вендора если пользовательский конфиг отсутствует

3. Поправил один из тестов, к сожалению тестов много и все завязаны на дубликаты, поэтому править их долго, не успеваю (

https://github.com/yiisoft/config/pull/16
Может возникнут проблема в ситуации:

• Приложение работает с пакетом 0.1.0, использует конфиги по умолчанию
• Пакет обновляет конфиги в версии 0.2.0
• В приложении обновляем пакет и мы НЕ знаем, что конфигурация-то изменилась
источник

NO

Nex Otaku in Yii Framework 3
Сергей Предводителев
Может возникнут проблема в ситуации:

• Приложение работает с пакетом 0.1.0, использует конфиги по умолчанию
• Пакет обновляет конфиги в версии 0.2.0
• В приложении обновляем пакет и мы НЕ знаем, что конфигурация-то изменилась
Слом обратной совместимости это не дело пакета управления конфигами, а дело автора конкретного пакета, и он должен это сам корректно разруливать например через соблюдение семантического версионирования.
источник

NO

Nex Otaku in Yii Framework 3
+ инструкция по обновлению на ломающие совместимость версии
источник

СП

Сергей Предводителев... in Yii Framework 3
Nex Otaku
Слом обратной совместимости это не дело пакета управления конфигами, а дело автора конкретного пакета, и он должен это сам корректно разруливать например через соблюдение семантического версионирования.
Автор изменил конфиг пакета, но это меняет конфигурацию нашего приложения.
Хотелось бы это держать под контролем.
источник

СП

Сергей Предводителев... in Yii Framework 3
Сейчас я сразу увижу, что конфиг изменился.
источник

NO

Nex Otaku in Yii Framework 3
Конфиг это лишь место где хранятся настройки. Поймите уже наконец. Если автор пакета прописал дефолтное значение в конфиге, это ничем не отличается от того если бы он прописал это значение в своём коде. И последствия изменения и в конфиге и в коде абсолютно те же самые.
источник

NO

Nex Otaku in Yii Framework 3
Если он меняет что-то что ломает совместимость с приложением он обязан это разрулить, вне зависимости в конфиге это или в коде.
источник

NO

Nex Otaku in Yii Framework 3
Например апнуть мажорную версию или предоставить инструкции по обновлению или и то и другое.
источник

СП

Сергей Предводителев... in Yii Framework 3
Например, в конфиге пакета 0.1.0:
MyInterface::class => MyImplementation::class

В приложении используется MyInterface и всё работает.

В конфиге пакета 0.2.0 конфигурация этого интерфейса убирается. Пакет работает отлично.

Но после обновления, моё приложение уже не будет работать, так как не сможет получить реализацию интерфейса.
источник

СП

Сергей Предводителев... in Yii Framework 3
Конфиги - это не код... менять мажорную версию из-за конфигов - не правильно.
источник

NO

Nex Otaku in Yii Framework 3
Почему у вас в голове конфиг это что-то отдельное от приложения? Это тупо часть кода, просто для удобства редактирования сгруппированная в одном файле. Точно так же определяет поведение приложения как и всё остальное.

Исключение - это "секреты", типа ключей, паролей, IP, хосты, и прочие инфраструктурные вещи. Это уже отдельно. Но для этого обычно есть .env либо локальные конфиги которые не хранятся в гите, это другое )
источник

AB

Alexander Borisov in Yii Framework 3
Сергей Предводителев
Например, в конфиге пакета 0.1.0:
MyInterface::class => MyImplementation::class

В приложении используется MyInterface и всё работает.

В конфиге пакета 0.2.0 конфигурация этого интерфейса убирается. Пакет работает отлично.

Но после обновления, моё приложение уже не будет работать, так как не сможет получить реализацию интерфейса.
С ^0.1.0 ты не обновишь до 0.2.0
источник

NO

Nex Otaku in Yii Framework 3
Сергей Предводителев
Конфиги - это не код... менять мажорную версию из-за конфигов - не правильно.
Неправильно думать что ты можешь вытолкнуть часть своего кода в отдельный файл, обозвать его конфигом и позволить его менять как душеньке угодно наплевав на проблемы пользователей этого файла.
источник