<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/build/plugins, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-07-21T20:40:24Z</updated>
<entry>
<title>добавить кешируемые герметичные node_modules</title>
<updated>2026-07-21T20:40:24Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-21T20:19:28Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0d6668741655e16d81daaad3669c1719581c4186'/>
<id>urn:sha1:0d6668741655e16d81daaad3669c1719581c4186</id>
<content type='text'>
&lt;section id="quibbler-autodescription"&gt;

#### Добавление кешируемых герметичных node_modules 📝

- 🚀 Внедрена новая система подготовки и кеширования `node_modules`, которая позволяет изолировать зависимости и уменьшить дисковую нагрузку при сборке в CI. Теперь `node_modules` готовятся в отдельной ноде и передаются в сборку как кешируемый слой `node_modules.layer`.

- 🛠️ Добавлена возможность отключения нового потока через макрос `DISABLE_HERMETIC_NODE_MODULES()` или флаг `-DTS_HERMETIC_NODE_MODULES=no`, что обеспечивает обратную совместимость.

- 📦 Введена поддержка `inject-peers` режима, позволяющая корректно разрешать peer-зависимости внутри workspace, при этом устраняя необходимость в повторной установке зависимостей в каждой сборке.

- 🧪 Расширены тесты и добавлены проверки для новых сценариев подготовки зависимостей, включая работу с patch-файлами и tmpfs.

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

- 🧹 Улучшена воспроизводимость сборок за счёт удаления volatile-полей из метаданных `node_modules`, что делает архивы кешируемыми и стабильными.

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
&lt;/section&gt;

(альтернативная версия первого подхода для всех таргетов https://nda.ya.ru/t/wPf_YFmj7jJf9h
Для TS_LIBRARY и TS_PACKAGE с INJECT_PEERS добавлен новый flow подготовки переносимого node_modules.layer с кешированием в графе сборки. Сохранена обратная совместимость: новый flow можно полностью отключить, nots/cli и прогрев YT-кеша пока используют legacy-пайплайн. Добавлены поддержка тестовых recipe, документация по макросам, ADR и troubleshooting; source builder временно включён для проверки в CI.
commit_hash:28a730972541c0c34330c0a3a903eb499c440d00
</content>
</entry>
<entry>
<title>move node_modules bundling to builder</title>
<updated>2026-07-21T18:23:16Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-21T17:12:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0d4b7df096637162d9092e447d3d10ae881499e6'/>
<id>urn:sha1:0d4b7df096637162d9092e447d3d10ae881499e6</id>
<content type='text'>
&lt;section id="quibbler-autodescription"&gt;

#### Перенос сборки node_modules в билдер 📝

- 🔄 Перенос логики упаковки node_modules из этапа установки зависимостей в этап сборки, что позволяет более гибко управлять процессом и улучшает порядок выполнения операций.
- 📦 Введение нового механизма упаковки workspace_node_modules.tar в билдере после успешной сборки, а не во время установки зависимостей, что упрощает управление зависимостями и избегает конфликтов.
- 🛠️ Обновление логики установки зависимостей для поддержки только материализации без упаковки, сохраняя при этом корректную работу с peer-зависимостями.
- 🧪 Добавление тестов для проверки корректности порядка выполнения операций и поведения при ошибках в процессе сборки.
- 📁 Внесение изменений в структуру и логику работы с контекстом node_modules, включая введение нового класса контекста и изменение порядка вызовов функций.
- 🧩 Обновление конфигураций и ресурсов для соответствия новой архитектуре сборки, включая обновление информации о PR и URI ресурсов.

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
&lt;/section&gt;

Create workspace_node_modules.tar in the builder after a successful build instead of during dependency installation. Preserve non-inject peer layouts, keep install recipes materialization-only, and cover build ordering and failure behavior with tests.
commit_hash:7945ba21b541d2999d8d32f457ff03d858c222aa
</content>
</entry>
<entry>
<title>добавить ram и ram_disk</title>
<updated>2026-07-17T10:23:54Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-16T18:46:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d959fbaf92f5eb714bc8782761398088779c81c9'/>
<id>urn:sha1:d959fbaf92f5eb714bc8782761398088779c81c9</id>
<content type='text'>
commit_hash:25bfc3fc4c7e2859bef8a21f1548c33bd373b502
</content>
</entry>
<entry>
<title>Линтинг TS оомится</title>
<updated>2026-07-15T17:50:26Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-15T17:02:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=32a22eb9c18a3dd282623b0783a8493669feb8b7'/>
<id>urn:sha1:32a22eb9c18a3dd282623b0783a8493669feb8b7</id>
<content type='text'>
commit_hash:68ff403c225cd6ebeeaa26b166541b7238c4ef89
</content>
</entry>
<entry>
<title>Ignore fields for macros only</title>
<updated>2026-07-14T04:40:24Z</updated>
<author>
<name>svidyuk</name>
<email>svidyuk@yandex-team.com</email>
</author>
<published>2026-07-14T03:55:56Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=25daaace7e0cbea0096177e9c5eab644397d30cf'/>
<id>urn:sha1:25daaace7e0cbea0096177e9c5eab644397d30cf</id>
<content type='text'>
commit_hash:d7a6a06f6a848f0164c1ff81723152ccfa1d4835
</content>
</entry>
<entry>
<title>Port TS macro to decorator [enum case]</title>
<updated>2026-07-10T03:59:55Z</updated>
<author>
<name>svidyuk</name>
<email>svidyuk@yandex-team.com</email>
</author>
<published>2026-07-10T03:19:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=70096a56426e126aa98412b4fd6278f7418778ac'/>
<id>urn:sha1:70096a56426e126aa98412b4fd6278f7418778ac</id>
<content type='text'>
commit_hash:5c782ac7ebeef7ea9942ba51758be63848e54d98
</content>
</entry>
<entry>
<title>Port tyescript macros to new decorator (hidden tuple-&gt;list conversion case)</title>
<updated>2026-07-09T02:52:58Z</updated>
<author>
<name>svidyuk</name>
<email>svidyuk@yandex-team.com</email>
</author>
<published>2026-07-09T02:34:26Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b25747f3027f3e9f491ac4b3a764daa8a378ae12'/>
<id>urn:sha1:b25747f3027f3e9f491ac4b3a764daa8a378ae12</id>
<content type='text'>
commit_hash:8a9ea0926a38212b756f08e11143699b49b6866f
</content>
</entry>
<entry>
<title>classpath.clash: move from compilation modules to test/runnable</title>
<updated>2026-07-08T06:15:21Z</updated>
<author>
<name>iniklyaev</name>
<email>iniklyaev@yandex-team.com</email>
</author>
<published>2026-07-08T05:56:00Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=ad607c3561c9a0fa7555589fe2e91ab109e0bf2c'/>
<id>urn:sha1:ad607c3561c9a0fa7555589fe2e91ab109e0bf2c</id>
<content type='text'>
## What

Move the `classpath.clash` check from compilation modules to runnable/test modules, so it validates the *real* runtime classpath.

## Why

- Checking the classpath on compilation modules (`JAR_LIBRARY`) misses clashes introduced only at runtime/test time (e.g. deps pulled via `JAVA_RUNTIME_PEERDIR`). Running the check on runnable/test modules makes it complete.
- Required for the java build acceleration project (ijar splitting).

## What changed

- `build/conf/java.conf`, `build/plugins/java.py`:

  - `_ADD_CLASSPATH_CLASH_CHECK()` is moved from `JAR_LIBRARY` to test (`_JAR_TEST`) and runnable modules.
  - New macros `_ADD_CLASSPATH_CLASH_CHECK_IF_UBERJAR` / `_ADD_CLASSPATH_CLASH_CHECK_IF_NOT_UBERJAR` bind the check to either `JAR_RUNNABLE` or `JAR_COMPILATION` on `MAKE_UBERJAR_VALUE` (since uberjar packs deps into the jar, clash test should be run in compilation module).
  - Added `JTEST_JCOMMANDER_IGNORE_CLASSPATH_CLASH` and `JTEST_GSON_IGNORE_CLASSPATH_CLASH` variables listing the classes brought by the JTEST `DEPENDENCY_MANAGEMENT` (jcommander 1.72 / gson 2.10.1) that the more complete check now surfaces.

- Per-module `ya.make`: added `JAVA_IGNORE_CLASSPATH_CLASH_FOR(...)` referencing the relevant variable(s) for modules where the more complete check found pre-existing clashes. These are real clashes; the ignores are temporary and each carries a `TODO` to fix and remove.
commit_hash:3527a2c1e6a461cd1dc7491d6d973a12d1baaedb
</content>
</entry>
<entry>
<title>Porting TS plugins to decrator [trivial cases]</title>
<updated>2026-07-08T02:15:29Z</updated>
<author>
<name>svidyuk</name>
<email>svidyuk@yandex-team.com</email>
</author>
<published>2026-07-08T01:55:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5b85f9a52f10588de27d38b23fc8436073008d6a'/>
<id>urn:sha1:5b85f9a52f10588de27d38b23fc8436073008d6a</id>
<content type='text'>
&lt;section id="quibbler-autodescription"&gt;

#### Портинг TS плагинов на декоратор 📝

- 🛠️ Обновлена функция-обёртка `_with_report_configure_error` для корректной передачи аргумента `unit` и сохранения аннотаций типов
- 📦 Добавлены декораторы `@ymake.macro` к функциям обработчикам макросов для правильной регистрации в системе сборки
- 🧪 Обновлены сигнатуры функций обработчиков с учётом новых требований к типам аргументов и добавлены аннотации для улучшения поддержки IDE
- 📝 Внесены изменения в сигнатуры функций для соответствия новой архитектуре, включая изменение типов параметров и добавление новых проверок
- 🧹 Упрощена логика передачи аргументов в обёртке, убрана лишняя логика извлечения `unit` из `args`
- 🔧 Исправлены аннотации типов для аргументов функций, чтобы обеспечить корректную работу с типами данных в среде разработки
- 🧩 Обновлены имена функций в соответствии с новыми соглашениями по именованию, чтобы улучшить читаемость и поддержку кода

&lt;a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"&gt;&lt;font size="2"&gt;Autodescription by Yandex Code Assistant&lt;/font&gt;&lt;/a&gt;
&lt;/section&gt;
commit_hash:0d820fdb9c2b629be9daf4806519f2eead0dbde8
</content>
</entry>
<entry>
<title>Добавить linters.make.inc для adfox</title>
<updated>2026-07-07T18:29:37Z</updated>
<author>
<name>andreyshest</name>
<email>andreyshest@yandex-team.com</email>
</author>
<published>2026-07-07T17:38:20Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=072dd2788d212380dae9d7bbdcfc34fe3167d123'/>
<id>urn:sha1:072dd2788d212380dae9d7bbdcfc34fe3167d123</id>
<content type='text'>
 Добавить linters.make.inc для adfox
commit_hash:e981916cf9686576b60dbe94650b9e83a812e01b
</content>
</entry>
</feed>
