Skip to content

Не паковать тестовую обвязку в transport.zip - #789

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-781-exclude-test-harness
Open

Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-781-exclude-test-harness

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

В transport уезжали tests/, scripts/, .phpunit.cache/, phpunit*.xml, composer.json/lock и .gitignore. File vehicle копировал весь core без фильтра, а xPDOFileVehicle при pack не передаёт copy_exclude_* в copyTree. Сборка теперь стейджит отфильтрованное дерево в _build/_package_stage/, а resolver_10 чистит уже установленные копии через obsolete_package_files.php (в том числе каталоги).

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #781

Как это было протестировано?

php -l _build/package_exclude.php
php -l _build/build.php
php -l core/components/minishop3/src/Utils/ObsoletePackageFiles.php
# exit 0

php core/components/minishop3/tests/BuildPackageExcludeTest.php
# OK

php core/components/minishop3/tests/ObsoletePackageFilesTest.php
# OK

cd core/components/minishop3
./vendor/bin/phpunit tests/Unit/Utils/ObsoletePackageFilesTest.php
# PHPUnit: OK (14 tests, 64 assertions), exit 0

Полный php _build/build.php на этой машине не гонялся (нужен чистый --no-dev vendor и MODX).

  • Ручное тестирование
  • Автоматические тесты (composer ci:php / composer test, npm run lint:ci, composer stan / GitHub Actions CI)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: ветка fix/issue-781-exclude-test-harness
  • MODX: n/a (build/unit)
  • PHP: локальный

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок (composer stan / CI job PHPStan)
  • ESLint проходит без ошибок (npm run lint:ci для Vue)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

Список исключений: _build/package_exclude.php. Staging: _build/_package_stage/ (в .gitignore). В исходниках Extra tests/ и composer.json остаются для CI. Связано с #779 (vendor --no-dev).

@Ibochkarev
Ibochkarev requested a review from biz87 September 24, 2026 18:53
Stage a filtered core tree before packaging so tests, composer
metadata and phpunit junk never ship. Purge the same leftovers on
upgrade for sites that already have them.
@Ibochkarev
Ibochkarev force-pushed the fix/issue-781-exclude-test-harness branch from 011d76e to 0ce3e79 Compare September 25, 2026 03:07
@Ibochkarev Ibochkarev added this to the Install & package hygiene milestone Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Build] В транспортный пакет уезжает тестовая обвязка: tests/, phpunit.xml, composer.json

1 participant