Ошибка в SDK для работы с модулями

Добрый день.

При установке SDK получаем ошибку -

php7.1 /usr/local/bin/composer global require “cscart/sdk:*”
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- cscart/sdk v1.1.0 requires cscart/upgrade-builder dev-master -> no matching package found.

Новые баги в процессе работы

  1. Игнорится настройка в extra.php - skip DB backup. При каждом update модуля магазин закрывается и делает бекап БД
  2. Не работает INSERT в миграциях. Вам надо обновить phinx

Спасибо за информацию. Не уверен, что SDK подпадает под политику исправления багов и гарантии “исправим за 45 дней”, но разработчикам сообщу об этой теме.

На баг-трекере мы обычно пишем о проблемах в самом дистрибутиве CS-Cart. Поэтому если проблема где-то ещё, то лучше давать ссылку. Баг-трекер проверяет техподдержка, и там вряд ли SDK пользуются. Думаю, если бы в первом сообщении было указано, что проблема в https://github.com/cscart/sdk, то ответили бы быстрее.

Часть связана с дистрибутивом вашим. Баг при обновлении модулей и отсутствии возможности оставить бекап - он из коробки.

Очень плохая на самом деле ошибка, если модуль обновляет один шаблон - запирается магазин и делается полный бекап базы данных. Я думаю и вам стоит на него внимание обратить, он относится к вашим бекапам обновлениями также. Это всегда несколько часов работы магазина мимо - ни один владелец не простит такого обновления модуля.

  1. Проблему с установкой SDK исправили. Вскоре новый релиз должен появится на Packagist.

  2. Настройка skip DB backup должна работать только в 4.9.3 и более новых версиях. На какой версии вы пробуете её использовать?

  3. Пока что мы вынуждены поддерживать PHP 5.6, поэтому не обновляемся на последние версии phinx и используем 0.4.3. Сейчас через команды phinx можно менять только структуру таблиц. Сами данные в таблицах нужно менять через SQL-запросы.

public function getPackagesList()
{
    $packages = array();

    $pack_path = $this->getPackagesDir();
    $packages_dirs = fn_get_dir_contents($pack_path);

    if (!empty($packages_dirs)) {
        foreach ($packages_dirs as $package_id) {
            $schema = $this->getSchema($package_id);
            $schema['id'] = $package_id;

            if (!$this->validateSchema($schema)) {
                continue;
            }

            if (is_file($pack_path . $package_id . '/' . $schema['file'])) {
                $schema['ready_to_install'] = true;
                $schema['backup'] = $this->getBackupProperties($schema);
            } else {
                $schema['ready_to_install'] = false;
            }

            $packages[$schema['type']][$package_id] = $schema;
        }
    }

    return $packages;
}

Вот тут проблема - настройки бекапа перетираются здесь $schema[‘backup’] = $this->getBackupProperties($schema);

4.10 версия

Спасибо, исправили проблему в SDK.

В SDK? Проблема внутри CS-cart, в механизме апдейтов. Или вы там исправили?

SDK неправильно собирал схему пакета обновления. Сегодня разработчик внёс в SDK две правки:

Если остались какие-то проблемы вне SDK, то оформите их, пожалуйста, в отдельные темы. В идеале, “одна тема на баг-трекере = один баг”.

1 лайк