<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/build/scripts, 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-09T19:30:47Z</updated>
<entry>
<title>Up compileSdk -&gt; 36</title>
<updated>2026-07-09T19:30:47Z</updated>
<author>
<name>aosipenko</name>
<email>aosipenko@yandex-team.com</email>
</author>
<published>2026-07-09T19:03:09Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b1025b264c4e2b3bb21cc57c7a197774f97c384c'/>
<id>urn:sha1:b1025b264c4e2b3bb21cc57c7a197774f97c384c</id>
<content type='text'>
Поднимаю compileSdk, targetSdk: 35 -&gt; 36

Понадобилось для подключения kotlin-native модулей камеры в тест-апп. В камере используется sdk 36.
commit_hash:7cf3f51e915ad22b867f5eae1b4c4d146a296bcf
</content>
</entry>
<entry>
<title>[clang-tidy] Allow clang-tidy on generated sources.</title>
<updated>2026-07-08T08:11:37Z</updated>
<author>
<name>born-in-void</name>
<email>born-in-void@yandex-team.com</email>
</author>
<published>2026-07-08T07:44:07Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a63edbc01b528e58065aa59fefaf17a2f27d8988'/>
<id>urn:sha1:a63edbc01b528e58065aa59fefaf17a2f27d8988</id>
<content type='text'>
Adds an opt-in mode for clang-tidy to process generated sources.

By default, clang-tidy keeps the current behavior and skips sources from the build root. With `-DTIDY_ALLOW_GENERATED=yes`, the generated `clang_tidy.py` command receives `--allow-generated-sources` and does not skip those files.
commit_hash:7d7939f1fd226722c2a6a07a48ea025194897c73
</content>
</entry>
<entry>
<title>conf var feature flag (__NO_UID__) + shallow root-based cache dir</title>
<updated>2026-07-02T20:37:44Z</updated>
<author>
<name>iniklyaev</name>
<email>iniklyaev@yandex-team.com</email>
</author>
<published>2026-07-02T19:47:17Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=941084a7c1a64c6d8f63ec6d660ff690103083d2'/>
<id>urn:sha1:941084a7c1a64c6d8f63ec6d660ff690103083d2</id>
<content type='text'>
**Feature-flag the persistent javac/kotlinc daemon and relocate its runtime dir to SHALLOW_ROOT**

The javac/kotlinc daemon is now opt-in via `ya make -DYA_JAVAC_DAEMON` (default off). Toggling it does not change node UIDs; enabling/disabling the daemon never invalidates the build cache.
The daemon's runtime dir (jar \+ logs) moves from `/tmp` to ya's `$(SHALLOW_ROOT)` via `YA_JAVAC_DAEMON_HOME`, so it works in environments where `/tmp` is unwanted. The unix socket stays in `/tmp` because of the AF_UNIX path limit; the socket name gains the jar hash to distinguish daemon versions across protocol changes.

This code is LLM-generated.
commit_hash:179a98b265f6458d04a6bf6c7d02721c90cc355b
</content>
</entry>
<entry>
<title>Javac/kotlinc daemon [AI generated]</title>
<updated>2026-06-29T21:08:25Z</updated>
<author>
<name>iniklyaev</name>
<email>iniklyaev@yandex-team.com</email>
</author>
<published>2026-06-29T20:43:27Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=66d0c52de24f9482c50a1efa2596824b7f635504'/>
<id>urn:sha1:66d0c52de24f9482c50a1efa2596824b7f635504</id>
<content type='text'>
**Persistent javac/kotlinc compilation daemon for `ya make` (opt-in)**

**Note:** the code in this PR was generated mostly by an LLM.

This PR adds an opt-in persistent compilation daemon that runs `javac` and `kotlinc` in-process inside a long-lived JVM, instead of spawning a fresh subprocess per build node. Each Java/Kotlin module today pays the full JVM \+ compiler startup cost (\~150–340 ms of startup, plus \~55 MB of kotlinc class-loading) on every node, which dominates the wall time of short compiles; amortizing that startup across all nodes in a build session yields measurable speedups (1.3x–3.7x CPU economy on the benchmarked targets, with zero correctness fallbacks or failed nodes).

The daemon (`devtools/buildstep_tools/javac_daemon`, a `JAVA_PROGRAM` built to a committed `JavacDaemon.jar`) listens on a Unix domain socket and runs both compilers concurrently; a thin Python client in the existing build scripts (`javac_daemon_client.py`, wired into `run_javac.py` / `compile_java.py` via `build/conf/java.conf`) decides per-node eligibility, routes launcher flags, selects/launches the right daemon instance, and **always falls back to a plain subprocess** on any doubt (old JDK, resource JVM flag, denied annotation processor, daemon error), so build correctness never depends on the daemon. The feature is **off by default** and activated only via `YA_JAVAC_DAEMON=1` passed to `ya make`; without it the build uses the existing subprocess path unchanged.

See `junk/iniklyaev/javac-daemon/DESIGN_javac_daemon.md` for the full design, flag-routing rules, fault-isolation model, and benchmark methodology.
commit_hash:f4e07c5bb51064e0bc24539348e01a85ff63a835
</content>
</entry>
<entry>
<title>use modern threading api .daemon=True</title>
<updated>2026-06-24T21:06:43Z</updated>
<author>
<name>ya-shishqa</name>
<email>ya-shishqa@yandex-team.com</email>
</author>
<published>2026-06-24T20:30:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=84bdff4dce2e2d4467996c11806550b5a378c92d'/>
<id>urn:sha1:84bdff4dce2e2d4467996c11806550b5a378c92d</id>
<content type='text'>
fix warning:

```
build/scripts/yndexer.py:31: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead
  thread.setDaemon(True)
```
commit_hash:e0f678398f698f93b319d3f864ba4ef495176df9
</content>
</entry>
<entry>
<title>Remove Go 1.25 coverage feature flag from conf, remove old Go coverage code from conf</title>
<updated>2026-06-23T04:33:27Z</updated>
<author>
<name>dimdim11</name>
<email>dimdim11@yandex-team.com</email>
</author>
<published>2026-06-23T04:15:08Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4df2cdadeb19107170734a4b9fddb495423cad32'/>
<id>urn:sha1:4df2cdadeb19107170734a4b9fddb495423cad32</id>
<content type='text'>
commit_hash:6e76745385a337c7399c1d643db30025b47f7bd5
</content>
</entry>
<entry>
<title>[clang-tidy]  Aggregate build volume metrics.</title>
<updated>2026-06-20T12:39:39Z</updated>
<author>
<name>born-in-void</name>
<email>born-in-void@yandex-team.com</email>
</author>
<published>2026-06-20T12:22:30Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2daf4a0de115e72026c034a80f1f536fd321162e'/>
<id>urn:sha1:2daf4a0de115e72026c034a80f1f536fd321162e</id>
<content type='text'>
Aggregates build_volume from .global.tidyjson inputs into clang-tidy suite metrics.
This keeps dependency statistics out of per-file test cases while preserving them as target-level metrics in the test trace.
commit_hash:56b9580abe19b8a9f336d6378cdec988bea4d778
</content>
</entry>
<entry>
<title>Fixes for Go coverings empty source sets</title>
<updated>2026-06-19T22:12:55Z</updated>
<author>
<name>dimdim11</name>
<email>dimdim11@yandex-team.com</email>
</author>
<published>2026-06-19T21:33:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9f7400bcd80688670a28548ff40fa5d430263e41'/>
<id>urn:sha1:9f7400bcd80688670a28548ff40fa5d430263e41</id>
<content type='text'>
Fixes for Go coverings empty source sets
commit_hash:8529d3bff57df23db59b0c15e97f33c25213e156
</content>
</entry>
<entry>
<title>Fix merge issue</title>
<updated>2026-06-17T20:02:00Z</updated>
<author>
<name>spreis</name>
<email>spreis@yandex-team.com</email>
</author>
<published>2026-06-17T19:36:35Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f4f096a9721e5982158ba85a3c7544c9f8add9ca'/>
<id>urn:sha1:f4f096a9721e5982158ba85a3c7544c9f8add9ca</id>
<content type='text'>
commit_hash:ff7a1cf6cf69a636f8a1ecd31af363331eb168be
</content>
</entry>
<entry>
<title>[clang-tidy] Add build volume counting.</title>
<updated>2026-06-17T18:00:17Z</updated>
<author>
<name>born-in-void</name>
<email>born-in-void@yandex-team.com</email>
</author>
<published>2026-06-17T17:17:39Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=40573ad91a0e52563aee4d2e8d5873d081dc7bcb'/>
<id>urn:sha1:40573ad91a0e52563aee4d2e8d5873d081dc7bcb</id>
<content type='text'>
When TIDY=yes, clang-tidy now calculates the total source volume of the translation unit (in bytes) and passes it to profile.build_volume. It is enabled by default
commit_hash:1a2608000828b09165d431c72cab0778d7a06355
</content>
</entry>
</feed>
