Как обновить Commerce с субмодулями через Composer.
28 февраля 2021 в 16:25
Извините за тупой вопрос. Как обновить Commerce?
$ composer outdate
drupal/commerce 2.21.0 2.24.0
drupal/commerce_cart 2.21.0 2.24.0
drupal/commerce_number_pattern 2.21.0 2.24.0
drupal/commerce_order 2.21.0 2.24.0
drupal/commerce_price 2.21.0 2.24.0
drupal/commerce_product 2.21.0 2.24.0
drupal/commerce_store 2.21.0 2.24.0
drupal/commerce 2.21.0 2.24.0
drupal/commerce_cart 2.21.0 2.24.0
drupal/commerce_number_pattern 2.21.0 2.24.0
drupal/commerce_order 2.21.0 2.24.0
drupal/commerce_price 2.21.0 2.24.0
drupal/commerce_product 2.21.0 2.24.0
drupal/commerce_store 2.21.0 2.24.0
Обновляю.
$ composer update 'drupal/commerce' --with-dependencies
Результат. Обновляется только сам базовый модуль commerce. commerce_cart, commerce_number_pattern и остальные входящите в комплект остаются не обновлены.
Go to accepted answer
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Ничего не понимаю ни в композере, ни в коммерсе, но сильно сомневаюсь, что модуль commerce зависит от его собственных субмодулей. По логике скорее наоборот?
Тут вы правы. Но вот если удалить композером Комерц, а потом запросить новую версию, то поставиться тоже только базовый модуль. А субмодули остнутся какие и были.
Так как правильно? Неужели каждый субмодуль обновлять по отдельности?
Я исключительно к тому, что dependencies - это немножко из другой оперы. А как правильно - не знаю.
PS Документация вон что врёт:
Может быть
composer update 'drupal/commerce*'
сработает?composer update drupal/commerce
"composer update drupal/commerce" пробовал. То же самое: обновляется базовый модуль не обновляются субмодули.
"Может быть composer update 'drupal/commerce*' сработает?" вполне вероятно, что оно сработает.
Но онобновит по алфавитному признаку. А можно чтобы обновило по признаку модули зависящие от и при этом являющиеся субмодулями?
не может такого быть, обновится всё
удали папку с коммерц и запусти - наверняка увидишь, но повторю, всё должно обновить нормально
"не может такого быть" в том то и проблема. Я б не писал на форуме если бы ее не было. Удалял модуль - результат тот же.
значит кроме этого у тебя есть что-то ещё. Но работать должно, composer и commerce не причём
composer update drupal/COMPONENT --with-dependencies работает у меня с Коммерс всегда. А что в composer.json?
"name": "drupal/recommended-project",
"description": "Project template for Drupal 8 projects with a relocated document root",
"type": "project",
"license": "GPL-2.0-or-later",
"homepage": "https://www.drupal.org/project/drupal",
"support": {
"docs": "https://www.drupal.org/docs/user_guide/en/index.html",
"chat": "https://www.drupal.org/node/314178"
},
"repositories": [{
"type": "composer",
"url": "https://packages.drupal.org/8"
},
{
"type": "package",
"package": {
"name": "bower-asset/photoswipe",
"version": "4.1.1",
"type": "drupal-library",
"dist": {
"url": "https://github.com/dimsemenov/PhotoSwipe/archive/v4.1.1.zip",
"type": "zip"
}
}
}
],
"require": {
"bower-asset/photoswipe": "^4.1",
"composer/installers": "^1.2",
"cweagans/composer-patches": "^1.7",
"drupal/admin_toolbar": "^2.4",
"drupal/administration_language_negotiation": "^1.10",
"drupal/ajax_loader": "1.x-dev@dev",
"drupal/allowed_formats": "^1.3",
"drupal/asset_injector": "^2.7",
"drupal/better_exposed_filters": "^5.0@beta",
"drupal/bg_image_formatter": "^1.14",
"drupal/blazy": "^2.1",
"drupal/blazy_photoswipe": "^1.1",
"drupal/block_class": "^1.3",
"drupal/colorbox_inline": "1.x-dev@dev",
"drupal/colorbox_load": "^1.2",
"drupal/colorbox_simple_load": "^2.0",
"drupal/commerce": "^2.21",
"drupal/commerce_autosku": "^2.0@beta",
"drupal/commerce_variation_cart_form": "^1.2",
"drupal/conditional_fields": "1.x-dev@dev",
"drupal/core-composer-scaffold": "^8.8",
"drupal/core-project-message": "^8.8",
"drupal/core-recommended": "^8.8",
"drupal/ctools": "^3.4",
"drupal/datetime_min_max": "^1.3",
"drupal/datetimehideseconds": "^1.1",
"drupal/dc_ajax_add_cart": "^1.0@beta",
"drupal/default_content": "^2.0@alpha",
"drupal/default_content_deploy": "^1.0@beta",
"drupal/devel": "^4.0",
"drupal/empty_fields": "^1.0@beta",
"drupal/entity": "^1.1",
"drupal/entity_reference_revisions": "^1.8",
"drupal/exif_orientation": "^1.1",
"drupal/field_group": "^3.1",
"drupal/file_mdm": "^2.1",
"drupal/fullscreen_modal": "^1.0",
"drupal/image_effects": "^3.0",
"drupal/image_style_quality": "^1.4",
"drupal/image_url_formatter": "^1.0",
"drupal/imagefield_tokens": "^2.22",
"drupal/imce": "^2.3",
"drupal/inline_entity_form": "^1.0@RC",
"drupal/libraries": "^3.0@alpha",
"drupal/mailcontrol": "^1.2",
"drupal/mailsystem": "^4.3",
"drupal/markup": "^1.0@beta",
"drupal/menu_link_attributes": "^1.1",
"drupal/metatag": "^1.14",
"drupal/minifyhtml": "^1.10",
"drupal/minifyjs": "^2.2",
"drupal/module_filter": "^3.1",
"drupal/pathauto": "^1.8",
"drupal/profile": "^1.2",
"drupal/redirect": "^1.6",
"drupal/rules": "3.x-dev@dev",
"drupal/slick": "^2.2",
"drupal/slick_lightbox": "^1.2",
"drupal/slick_views": "^2.3",
"drupal/state_machine": "^1.0",
"drupal/swiftmailer": "^2.0",
"drupal/token": "^1.7",
"drupal/toolbar_themes": "^1.0@alpha",
"drupal/transliterate_filenames": "^1.4",
"drupal/tvi": "^1.0@RC",
"drupal/twig_tweak": "^2.8",
"drupal/viewfield": "^3.0@beta",
"drupal/views_conditional": "^1.2",
"drupal/views_field_view": "^1.0@beta",
"drupal/views_fieldsets": "^3.3",
"drupal/weight": "^3.2",
"drupal/xmlsitemap": "^1.0",
"drupal/yaml_editor": "^1.1"
},
"require-dev": {
"drupal/core-dev": "^8.8",
"drush/drush": "^10.3"
},
"conflict": {
"drupal/drupal": "*"
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"sort-packages": true
},
"extra": {
"drupal-scaffold": {
"locations": {
"web-root": "web/"
}
},
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/Commands/contrib/{$name}": ["type:drupal-drush"],
"web/modules/custom/{$name}": ["type:drupal-custom-module"],
"web/themes/custom/{$name}": ["type:drupal-custom-theme"],
"libraries/{$name}": ["type:drupal-library", "bower-asset/photoswipe"]
},
"drupal-core-project-message": {
"include-keys": ["homepage", "support"],
"post-create-project-cmd-message": [
"<bg=blue;fg=white> </>",
"<bg=blue;fg=white> Congratulations, you’ve installed the Drupal codebase </>",
"<bg=blue;fg=white> from the drupal/recommended-project template! </>",
"<bg=blue;fg=white> </>",
"",
"<bg=yellow;fg=black>Next steps</>:",
" * Install the site: https://www.drupal.org/docs/8/install",
" * Read the user guide: https://www.drupal.org/docs/user_guide/en/index.html",
" * Get support: https://www.drupal.org/support",
" * Get involved with the Drupal community:",
" https://www.drupal.org/getting-involved",
" * Remove the plugin that prints this message:",
" composer remove drupal/core-project-message"
]
},
"enable-patching": true,
"patches": {
"drupal/core": {
"Активный класс ссылки в views": "web/patches/2652000-8.9-115.patch"
},
"drupal/views_fieldsets": {
"Без патча работает плохо": "web/patches/views_fieldsets-fix_empty_handler_query-2908454-56.patch"
},
"drupal/slick": {
"Использовать настройки поля": "web/patches/slick_entityreference-3134342-19.patch"
},
"drupal/commerce": {
"Аргумент корзины в views": "web/patches/commerce-Views_argument_default_current_cart-2852363-5.patch",
"Совместимость с field_group": "web/patches/allow_field_group_rendering-2906502-29.patch"
},
"drupal/dc_ajax_add_cart": {
"Класс к popup окну корзины": "web/patches/vasyok-dc_ajax_cart_class.patch"
},
"drupal/conditional_fields": {
"Совместимость с profile": "web/patches/conditional_fields-work-for-profile-registration-page-and-biling-information-2893662-12.patch"
}
}
}
}
И никаких ошибок и предупреждений во время апдейта?
На всякий случай commerce_cart.info.yml, например, еще.
Если удалить помимо вендора еще composer.lock?
Ошибок - никаких.
"Если удалить помимо вендора еще composer.lock" - не понял.
Вероятно, я говорю то, что итак понятно и сделано, но все-таки: удалить [root]/vendor + [root]/composer.lock, а потом уже все обновлять. В .lock ведь все зависимости зафиксированы.
Кстати спасибо, жму руку. Удалил Комерц Композером, удалил vendor и composer.lock, выполнил composer insеall, потому загрузил Комерц - хренатень с версиями субмодулей прошла.
Так что? Дайте ответ на мой, вероятно, лишний комент) Решили? Как?
Модули, входящие в состав коммерса, не являются отдельными пакетами и чисто физически не могут быть установлены или обновлены отдельно. Уверен, что отчёт о доступных обновлениях в самом друпале не будет ругаться на это.
И прекратите говорить о зависимостях, все перечисленные модули не являются зависимостями коммерса.
Справедливо. Отчасти: если нет костылей.
Так а как быть в этой ситуации?
искать какие костыли конкретно здесь )) Такие проблемы просто так не появляются
И речь, как понимаю, не об отчете в Друпале. И я говорю про ответы Композера при обновлении.
Представьте исключение зависимостей "так надо было" и вот вам результат.
Друзья, спасибо за поддержку даже моральную.
Ерунда происходит из-за патчей поставленых к Комерцу. Конечно же я уберу лишние, но факт остается: возможно добиться, чтобы Комерц был одной версии, а субмодули другой.
Есть подозрение, что это не так, а всего лишь отчет Композера. Фишка в том, что версия субмодулей в отчете outdate показывается, но сами субмодули удалить Композером нельзя. Удалить субмодули нельзя, но обновить можно. (Шта?)
Я знаю что делать. Можете подсказать: как вывести список всего что поставлено Композером с версиями? Чето не гуглится по запросу "drupal composer list modules".
так он выводит прямо в консоле
какой командой он выводит в консоли версии всего что поставлено?
composer install
composer update
Нет, мне только список на экране получить, а не устанавливать и обновлять.
так потом откатишь
composer update --dry-run
?
Выдало "Nothing to install or update". Хотя, модули нуждающиеся в обновлениях точно есть.
Нет мне нужно просто список всех модулей и их версий. А что обновлять я сам решу.
Хотя вру. Там другой чел обновил, поэтому я не заметил. Все равно данная команда пишет что нужно обновить, что не есть суть моего вопроса выше.