<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/build/conf, 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-24T22:31:57Z</updated>
<entry>
<title>Use RAM disk for hermetic node_modules</title>
<updated>2026-07-24T22:31:57Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-24T21:57:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d0453beb987699b1ff63237406375a4342ed4b0d'/>
<id>urn:sha1:d0453beb987699b1ff63237406375a4342ed4b0d</id>
<content type='text'>
-
commit_hash:0fb3e12fc9193c58fa49632aa965aba2d01d53c7
</content>
</entry>
<entry>
<title>добавить цпу и ram_disk для prepare deps</title>
<updated>2026-07-22T19:30:45Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-22T19:07:20Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c00f48cbc41cfd5dc511692554d4a8aac37d96e0'/>
<id>urn:sha1:c00f48cbc41cfd5dc511692554d4a8aac37d96e0</id>
<content type='text'>
commit_hash:8b816b255fd5fa5aa24c521f8cacf8d206279e73
</content>
</entry>
<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>nots/ts: задать медиум для чеков</title>
<updated>2026-07-20T17:44:04Z</updated>
<author>
<name>baymer</name>
<email>baymer@yandex-team.com</email>
</author>
<published>2026-07-20T17:02:22Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=104f85512f2a2f1e8069a18224a3807fb838b9a1'/>
<id>urn:sha1:104f85512f2a2f1e8069a18224a3807fb838b9a1</id>
<content type='text'>
commit_hash:495661965ba43a59b6637e923fe4e03a07c21882
</content>
</entry>
<entry>
<title>Revert commit rXXXXXX, YTFLOW: Move yt/yt/flow linters autoinclude to opensource autoincludes.json</title>
<updated>2026-07-17T08:06:56Z</updated>
<author>
<name>mr2dark</name>
<email>mr2dark@yandex-team.com</email>
</author>
<published>2026-07-15T22:09:46Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=8f5597a4e25ccb791dd97cf258fd848a977a5682'/>
<id>urn:sha1:8f5597a4e25ccb791dd97cf258fd848a977a5682</id>
<content type='text'>
commit_hash:da078122b5538fae2438ae2277bf8ead75e7736d
</content>
</entry>
<entry>
<title>YTFLOW: Move yt/yt/flow linters autoinclude to opensource autoincludes.json</title>
<updated>2026-07-17T07:23:51Z</updated>
<author>
<name>pechatnov</name>
<email>pechatnov@yandex-team.com</email>
</author>
<published>2026-07-15T18:07:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3f9480d4761a83d21aaa185ab18337c627d0275a'/>
<id>urn:sha1:3f9480d4761a83d21aaa185ab18337c627d0275a</id>
<content type='text'>
Flow ships to opensource, so its linters.make.inc (STYLE_CPP_YT) must be discoverable there. Move the yt/yt/flow autoinclude path from build/internal/conf/autoincludes.json to build/conf/autoincludes.json, which is included in the opensource build. Per devtools/ya/opensource/README.md (autoincludes.json section).
commit_hash:d8fd836d6aba9c99759cf007f974da0672274728
</content>
</entry>
<entry>
<title>Get rid of CONSISTENT_DEBUG_LIGHT</title>
<updated>2026-07-14T17:45:10Z</updated>
<author>
<name>thegeorg</name>
<email>thegeorg@yandex-team.com</email>
</author>
<published>2026-07-14T17:00:30Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=d7243fd423a30fc532246414e47b60dfff882ad5'/>
<id>urn:sha1:d7243fd423a30fc532246414e47b60dfff882ad5</id>
<content type='text'>
Setting CONSISTENT_DEBUG_LIGHT is a no-op if CONSISTENT_DEBUG is enabled (which is the default).
commit_hash:0974798f81275ed0c47471a22dbac38be0af553f
</content>
</entry>
<entry>
<title>STYLE_YAML - added CONFIG_TYPE</title>
<updated>2026-07-13T17:51:13Z</updated>
<author>
<name>chopik</name>
<email>chopik@yandex-team.com</email>
</author>
<published>2026-07-13T17:02:49Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bffec4f246164c5bc9dee19f45d052f3ac59e9c6'/>
<id>urn:sha1:bffec4f246164c5bc9dee19f45d052f3ac59e9c6</id>
<content type='text'>
STYLE_YAML умел работать только с фиксированным конфигом yamlfmt, поэтому проекту нельзя было задать свой (например, отступ в 2 пробела). Разрешать кастомный конфиг прямо в STYLE_YAML нельзя — с DIRS/DIRS_RECURSE его добавление в linters.make.inc могло бы сканировать весь проект широкими глобами.

Поэтому повторяю схему STYLE_DETEKT + COLLECT_KOTLIN_LINT_SRCS: COLLECT_YAML_LINT_SRCS(DIRS/DIRS_RECURSE, EXCLUDE) собирает файлы (в linters.make.inc нельзя), а STYLE_YAML_WITH_CONFIG(CONFIG_TYPE) гоняет yamlfmt по собранным файлам с кастомным конфигом (в linters.make.inc можно; тип .yamlfmt.yml уже разрешён в LINTER_CONFIG_TYPES). Параметр EXCLUDE опционален — по умолчанию не исключает ничего, так что при желании можно линтить и a.yaml/t.yaml.
Заодно STYLE_YAML переиспользует COLLECT_YAML_LINT_SRCS вместо копии сбора файлов — поведение не меняется

[AI-MANAGED]
commit_hash:60bce64c07b9bdd8c51f84d8a3bc3d17fe4b6070
</content>
</entry>
<entry>
<title>feat ts build: add RESOURCE_LIB in recurse tags</title>
<updated>2026-07-08T19:54:49Z</updated>
<author>
<name>vansokol</name>
<email>vansokol@yandex-team.com</email>
</author>
<published>2026-07-08T18:56:02Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0a3296ea1f1de710d74790427bb34e16bd86b516'/>
<id>urn:sha1:0a3296ea1f1de710d74790427bb34e16bd86b516</id>
<content type='text'>
Позволяем использовать GEN_LIBRARY в модулях на языке typescript.

Relates: https://nda.ya.ru/t/Kjhi4BNJ7hv6WA
commit_hash:fe7f85a048e4c3adc6f19c41a30e4df9f7ccf1e8
</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>
</feed>
