{"id":28724404,"url":"https://github.com/voral/bitrix-module-tool","last_synced_at":"2026-03-10T11:05:41.204Z","repository":{"id":296077120,"uuid":"992218849","full_name":"Voral/bitrix-module-tool","owner":"Voral","description":"Расширение  для vs-version-incrementor для автоматизации создания пакетов обновления модулей Битрикс для загрузки на маркетплейс","archived":false,"fork":false,"pushed_at":"2025-08-19T06:21:51.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-25T00:40:54.912Z","etag":null,"topics":["bitrix","bitrix-cms","bitrix-marketplace","bitrix-module","modules","php","tool"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Voral.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-28T20:02:46.000Z","updated_at":"2025-08-19T06:21:55.000Z","dependencies_parsed_at":"2025-05-28T21:56:41.197Z","dependency_job_id":"d6f78e10-b4b6-48bd-9dc3-136c9f2236f9","html_url":"https://github.com/Voral/bitrix-module-tool","commit_stats":null,"previous_names":["voral/bitrix-module-tool"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Voral/bitrix-module-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voral%2Fbitrix-module-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voral%2Fbitrix-module-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voral%2Fbitrix-module-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voral%2Fbitrix-module-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Voral","download_url":"https://codeload.github.com/Voral/bitrix-module-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Voral%2Fbitrix-module-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30331654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitrix","bitrix-cms","bitrix-marketplace","bitrix-module","modules","php","tool"],"created_at":"2025-06-15T10:39:13.510Z","updated_at":"2026-03-10T11:05:41.196Z","avatar_url":"https://github.com/Voral.png","language":"PHP","readme":"# Сборка пакета обновления модуля Битрикс\n\nРасширение для пакета [voral/version-increment](https://github.com/Voral/vs-version-incrementor) автоматизирующее пакетов обновления модулей для Битрикс-маркетплейс на основе анализа git коммитов и семантического обновления версии. А так же изменяющее номер версии в файле version.php\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/voral/bitrix-module-tool)](https://packagist.org/packages/voral/bitrix-module-tool )  \n\n## Основные функции\n\nПри вычислении новой версии утилитой voral/version-increment перед коммитом выполняются следующие этапы по сборке обновления версии:\n\n1. Изменение версии модуля в соответствии с обновлением в файле install/version.php. А так же даты версии модуля на текущую. Если это файла нет в модуле - он будет создан.\n2. На основе анализа коммитов выполненных с предыдущей версии копируются новые и измененные файлы модуля в каталог пакета обновления. Кроме того, при необходимости, добавляется код удаления файлов, которые были удалены из модуля в скрипт обновления `updater.php`\n    \u003e  Обратите внимание, что функционал удаления упрощенный - перед окончательным оформлением пакета обновлений рекомендую проверить и скорректировать при необходимости\n3. Если в обновление были добавлены каталоги `install/admin`, `install/components` и т.п в скрипт `updater.php` добавляется код по их копированию. При этом для каталога admin выполняется не копирование, а создание файлов которые подключают оригинальные.\n4. Если произведена соответствующая настройка в скрипт `updater.php` добавляется проверка версии PHP\n5. Если произведена соответствующая настройка в скрипт `updater.php` добавляется дополнительный кастомный PHP код\n6. На основе коммитов git выполненных с предыдущей версии формируются файлы description.* пакета обновлений\n7. Если произведена соответствующая настройка генерируется файл контроля версий модулей от которых ваш модуль зависит\n8. Файлы `updater.php`, `description.*`, а так же `\u003cпуть_к_исходникам\u003e/install/version.php` (если он был создан) добавляются в репозиторий git\n\n## Требования\n\n- PHP \u003e= 8.1\n- Git установлен и доступен в CLI\n- Composer для управления зависимостями\n\n## Подготовка\n\nДля начала необходимо установить пакет\n\n```bash\ncomposer require -dev voral/bitrix-module-tool\n```\n\nЕсли у вас до этого не был установлен пакет [voral/version-increment](https://github.com/Voral/vs-version-incrementor)  - он будет установлен и необходимо будет произвести настройку согласно документации. А так же подключить данный пакет в файле `.vs-version-increment.php`\n\n```php\nuse Vasoft\\VersionIncrement\\Config;\nuse Vasoft\\VersionIncrement\\Events\\EventType;\nuse Voral\\BitrixModuleTool\\ModuleListener;\n\n$config = new Config();\n\n$eventBus = $config-\u003egetEventBus();\n$listener = new ModuleListener(\n    $config,\n    'vendor.module',\n    includePhpFile: __DIR__ . '/updates/update_include.php',\n);\n$eventBus-\u003eaddListener(EventType::BEFORE_VERSION_SET, $listener);\n// прочие настройки\n\nreturn $config;\n\n```\n\nТ.к., как правило, есть необходимость доработать пакет обновлений перед загрузкой на маркетплейс (например перевести языковые description.*), рекомендую команду обновления версии выполнять с флагом отключающим коммит\n\n```bash\nphp ./vendor/bin/vs-version-increment --no-commit\n```\n\nУдобно записать этот скрипт в composer.json. Так же необходимо добавить скрипты создания пакетов модуля (обновления и полного) для загрузки на маркетплейс\n\n```json\n{\n   \"scripts\": {\n      \"vi:auto\": \"php ./vendor/bin/vs-version-increment --no-commit\",\n      \"pack:last\": \"sh scripts/pack-last.sh\",\n      \"pack:ver\": \"sh scripts/pack-version.sh\",\n      \"pack\": [\n         \"@pack:ver\",\n         \"@pack:last\"\n      ]\n   },\n   \"scripts-descriptions\": {\n      \"vi:auto\": \"Increment module version and generate update package\",\n      \"pack:last\": \"Pack the full package of the module's latest version\",\n      \"pack:ver\": \"Pack the update package for a specified module version\",\n      \"pack\": \"Pack the full package of the latest version and the update package for a specified version\"\n   }\n}\n```\n\n## Применение\n\n1. После выполнения изменений в модуле выполните расчет версии. Ппо окончанию этого скрипта в консоль будут выведены рекомендуемые команды для выполнения коммита и установки тега. Они будут содержать новую версию пакета.\n   ```bash\n   composer vi:auto\n   ```\n\n2. При необходимости внесите изменения в CHANGELOG.md, в так же сгенерированные файлы описания обновления /updates/\u003cверсия_пакета\u003e/description.*\n\n3. Выполните сборку пакета обновлений для полученной версии (например для версии 1.3.0)\n   ```bash\n   composer pack:last 1.3.0\n   ```\n4. Выполните проверку пакета обновлений как описано в [статье](doc/check_update.md)\n5. После всех проверок выполните сборку пакетов обновления и полного пакета модуля\n   ```bash\n   composer pack:pack 1.3.0\n   ```\n6. Выполните коммит релиза и установите так как рекомендовано на шаге 1\n7. Загрузить пакет на Битрикс маркетплейс\n\n## Конфигурация\n\nНастройка выполняется при помощи конструктора, который имеет следующие параметры:\n\n**$config** - обязательный. Конфигурация version-increment\n\n**$moduleId** - обязательный. Идентификатор вашего модуля\n\n**$sourcePath** - необязательный. Каталог с исходниками модуля, относительно корня проекта. По умолчанию `src`\n\n**$destinationPath** - необязательный. Каталог для пакетов обновлений, относительно корня проекта. По умолчанию `updates`\n\n**$phpVersion** - необязательный. Версия PHP если необходим контроль в скрипте обновления\n\n**$modulesVersion** - необязательный. Требующиеся модули и их версии\n\n**$excludeCommitTypes** - необязательный. Типы коммитов, сообщения которых необходимо пропускать при формировании файлов description.*\n\n**$lang** - необязательный. Символьные коды языков для создания описания обновлений (файлов description.*)\n\n**$includePhpFile** - необязательный. Путь у php файлу, код которого необходимо включить в скрипт обновления update.php\n\nПример конфигурации\n```php\nuse Vasoft\\VersionIncrement\\Config;\nuse Vasoft\\VersionIncrement\\Events\\EventType;\nuse Voral\\BitrixModuleTool\\ModuleListener;\n\n$config = new Config();\n\n$eventBus = $config-\u003egetEventBus();\n$listener = new ModuleListener(\n    $config,\n    'vendor.module',\n    'last_version',\n    'marketplace',\n    '8.3.0',\n    [\n        'main' =\u003e '24.100.100',\n        'sale' =\u003e '24.0.100',\n    ],\n    ['build','docs','test'],\n    ['ru','en','fr']\n    __DIR__ . '/updates/update_include.php',\n);\n$eventBus-\u003eaddListener(EventType::BEFORE_VERSION_SET, $listener);\n// прочие настройки\n\nreturn $config;\n\n```\n\n## Исключения генерируемые расширением\n\n| Код  | Описание                                                     |\n|------|--------------------------------------------------------------|\n| 5101 | Нет доступа к каталогу проекта                               |\n| 5102 | Не корректный путь к проекту                                 |\n| 5103 | Не найден git тег версии                                     |\n| 5104 | Отсутствует или не верный формат файла version.php           |\n| 5105 | Не корректно задан путь к каталогу исходников или обновлений |\n\nЧтобы избежать конфликты с прочими расширениями пакета voral/vs-version-incrementor можно изменять коды ошибок. Для этого необходимо задать дельту. В приведенном ниже примере коды ошибок будут увеличены на 100\n\n```php\nuse Vasoft\\VersionIncrement\\Config;\nuse Vasoft\\VersionIncrement\\Events\\EventType;\nuse Voral\\BitrixModuleTool\\ModuleListener;\nuse Voral\\BitrixModuleTool\\Exception\\ExtensionException;\n\nExtensionException::$errorCodeDelta = 100;\n$config = new Config();\n\n$eventBus = $config-\u003egetEventBus();\n$listener = new ModuleListener($config, 'vendor.module');\n$eventBus-\u003eaddListener(EventType::BEFORE_VERSION_SET, $listener);\n// прочие настройки\n\nreturn $config;\n```\n\n## Пример файла install/version.php\n\n```php\n\u003c?php\n$arModuleVersion = [\n    'VERSION' =\u003e '1.0.0',\n    'VERSION_DATE' =\u003e '2023-01-01'\n];\n```\n\n## Лицензия\n\nMIT License. Подробности в файле [LICENSE](LICENSE.md).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoral%2Fbitrix-module-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoral%2Fbitrix-module-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoral%2Fbitrix-module-tool/lists"}