| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
## 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
|
| |
|
|
|
|
|
|
|
|
| |
**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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
**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
|
| |
|
|
|
| |
Fix errorprone in ya ide gradle
commit_hash:e9869d6c2b58ed137b3864a90c7c1f86c9a5ef66
|
| |
|
|
|
| |
Add semantic for excludes in sets
commit_hash:c7c3877e0d8d06cef8e94ab3eecda7863ab4ae6a
|
| |
|
|
|
| |
Use FILES in JAVA_SRCS as Globs in ya ide gradle
commit_hash:29b0f3bf3e1dfe334ccf90a9393104d6fd68f5d0
|
| |
|
|
| |
commit_hash:b1d2bd3f39ea9039fb7bd70d18f20ff7cad737d2
|
| |
|
|
| |
commit_hash:645e2e2b7678df55116f758a92a38e5e2c6484a4
|
| |
|
|
| |
commit_hash:8752a3e8d1f26635c499b914b852ad9f6ee5dfa4
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<section id="quibbler-autodescription">
#### Поддержка bytecode Java 25 в компиляции Kotlin 📝
- 🔄 Обновлена логика определения целевой версии JVM для Kotlin: при использовании JDK 26 теперь устанавливается целевая версия 25, вместо ранее используемой версии 24.
- 🛠 Исправлена логика сопоставления версий JDK и целевой версии Kotlin: теперь версия 25 и выше соответствует целевой версии 25, а не 24.
- 🧪 Обновлена тестовая конфигурация: изменена версия JDK в тестах с 24 на 25 для соответствия новой логике.
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
</section>
#### Поддержка bytecode Java 25 в компиляции Kotlin 📝
- 🔄 Обновлено указание версии JDK с 24 на 25 для корректной компиляции проектов с использованием Java 25.
- 🧠 Настроена поддержка Java 25 в компиляторе Kotlin, чтобы он генерировал байт-код, совместимый с этой версией JDK.
- 🔧 Исправлена логика определения целевой версии JVM для Kotlin при использовании JDK 26, теперь она указывает на версию 25.
- 🧪 Обновлена версия JDK в тестовой конфигурации с 24 на 25.
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
commit_hash:ed2d6f419f387b3853f491bf71c6544ff78be5d2
|
| |
|
|
|
|
| |
Support Java 26 in build/test/uberjar packaging in ya.make
<https://nda.ya.ru/t/KrSYyO6u7ZafNd>
commit_hash:3a488935d6801a40d6781e73db65507d563e5eac
|
| |
|
|
| |
commit_hash:bda5345b24376264b1e1d6474f9797688bd78844
|
| |
|
|
| |
commit_hash:ade0dfc912b5ba20c5ec6bec0d70f16c765deb63
|
| |
|
|
|
| |
* fixing bug in 6.0.0: https://github.com/junit-team/junit-framework/issues/5102
commit_hash:eadf8a5bf7b3ab6a18e293ce5b6921b8de66ba0d
|
| |
|
|
| |
commit_hash:149c1ae291e3d36e575da998f65e61592450767e
|
| |
|
|
| |
commit_hash:5ab82c3d88d30afb83605c695328d4333d5adb0a
|
| |
|
|
| |
commit_hash:a4941df2884ca8613a9f365500112c564c6ba363
|
| |
|
|
| |
commit_hash:44bba6229e44c6c9edef93e123e882b77945a4d9
|
| |
|
|
| |
commit_hash:161319595b231a155b0f9706546cef7f786236d8
|
| |
|
|
| |
commit_hash:e4365ca29da53491cdfcd5a8a094785132f20bf7
|
| |
|
|
| |
commit_hash:196d6a01eedff1fae0280a7b780793b9f42c99f5
|
| |
|
|
| |
commit_hash:9f4602d9122e664a9afaae7cd634767295d90c70
|
| |
|
|
| |
commit_hash:fabb8eb2d763b5925e18b91f9e1af30540ba60f5
|
| |
|
|
| |
commit_hash:d58cdd1fa782e43bf9c8c1f1ad5f1ae5c467bde6
|
| |
|
|
| |
commit_hash:31291b3e6c26273e724fe4dbcd734923e685a5e8
|
| |
|
|
| |
commit_hash:58865ffea05729d4396cfb67fc089cf6043a5180
|
| |
|
|
| |
commit_hash:aca48ff9cb1979067e868408da20f2db1c7162c2
|
| |
|
|
| |
commit_hash:f1f7519c459d853e645b6088ac206765519afa9b
|
| |
|
|
| |
commit_hash:5c8559ea37b8b1aae0db551602c4bf812b147a33
|
| |
|
|
|
|
| |
компиляции kotlin
commit_hash:e2f48fa70dbfdee54baf2880c00e56cf96ccf65b
|
| |
|
|
| |
commit_hash:66c561594268435c46e184e51157219548b35c61
|
| |
|
|
| |
commit_hash:542a7acfa2562932bc0bf429ec1bcbd616d6f9d1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Обновление Detekt CLI для работы с собственным компилятором Kotlin 📝
- 🛠️ Заменён способ подключения Detekt CLI: вместо кастомной обёртки используется официальный модуль detekt-cli версии 1.23.8 из contrib.
- 🧱 Изменён класс запуска Detekt с внутреннего (`ru.yandex.pcode.detekt.DetektValidateKt`) на стандартный CLI-класс из библиотеки (`io.gitlab.arturbosch.detekt.cli.Main`).
- ⚙️ Внесены изменения в систему сборки, чтобы корректно поддерживать запуск Detekt CLI с зависимостями из contrib.
- 📦 Добавлен новый модуль сборки `_JAR_CONTRIB_RUNNABLE`, обеспечивающий правильную работу Java-программ из contrib с класспасом и генерацией скриптов.
- 🧹 Удалена ссылка на старую обёртку Detekt в основной конфигурации проекта.
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
#| || **<a href="https://nda.ya.ru/t/Rgy1Tp7_7Mm3JA" target="_blank"> Echo tests</a>** || |#
commit_hash:10459bffa21e7fd62e11654e7b0819cf3dec908a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<section id="quibbler-autodescription">
#### Добавление ограничений на пропущенные файлы в glob-шаблонах 📝
- 🔧 Добавлены параметры `SKIPPED_MIN_MATCHES` и `SKIPPED_ERROR_PERCENT` в макросах `_GLOB` и `_LATE_GLOB` для контроля количества пропущенных файлов при сборке. Это позволяет избежать ситуаций, когда значительная часть файлов находится на диске, но отбрасывается.
- ⚙️ Для большинства конфигурационных файлов установлены единые значения: минимальное количество файлов — 2000, порог ошибки — 90%. Это означает, что если пропущено более 90% от количества файлов (если найдено минимум 2000 файлов), сборка завершится с ошибкой по ограничениям глоба.
- 🧪 Для фронтовых макросов, в которых всё в кучу (стили, тесты, картинки) ограничения смягчены, а местами выключены, потому что может отбрасываться более 99% найденных файлов.
- 📄 В паре модулей уточнены глобы, чтобы не отбрасывать более 90% файлов в глобах.
Параметры позволяют запретить создание в Аркадии глобов с большим количеством пропущенных файлов, что впустую расходует ресурсы кластера сборки.
<a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a>
</section>
commit_hash:992c0828a6a4a3b4133262f8fd28afca43c13362
|
| |
|
|
| |
commit_hash:42c31bdc603f17c76fa501097b49cfd8774b972b
|
| |
|
|
|
| |
Overwrite user kotlinc flag -jvm-target by system JDK version value
commit_hash:bcc8d1cd4bda7860cc0e2aa25d2629ca75e42965
|
| |
|
|
|
| |
Use in semanticts JDK_REAL_VERSION as is
commit_hash:68800aa65d9c3d5a56b218a7ec57b8e0974c79cb
|
| |
|
|
| |
commit_hash:5b128341c508407dcc51d4d95b01a894c3544636
|
| |
|
|
| |
commit_hash:3680273e31d0040d3fbea89432d1e8539c3bce3f
|
| |
|
|
| |
commit_hash:cc348cd44c4c6d2b32ccc6b36ee7210ac4585c54
|
| |
|
|
|
| |
Add glob restrictions
commit_hash:cc9055e74a023eaeea3076afdf525e2262101209
|
| |
|
|
| |
commit_hash:d94f2f05ef062c16ba7ad619b89cc8c71679e06b
|
| |
|
|
| |
commit_hash:426d14d83a0ac051f25653da255346a3e946797a
|
| |
|
|
| |
commit_hash:fa0354c890985a8717c644fff83657614a6579ea
|
| |
|
|
| |
commit_hash:a4b4ea1430f9dac200fb204ac6cb79bf29723e3d
|
| |
|
|
| |
commit_hash:9222049b8c4fcdc00d541b68ff5f0ed4630efa89
|
| |
|
|
|
| |
https://nda.ya.ru/t/8WYUG2pO7Kaaag
commit_hash:5faed6ce4dc3add634be2e5b04f537573ff4c616
|
| |
|
|
|
| |
Replace external JDK to 17 with --target 11
commit_hash:2fa07228f9e341ee06623e3e262725295080c2cb
|
| |
|
|
|
| |
Fix java semantics
commit_hash:8be3d546d77f4fd5aaebbc19a7f2ff08989d508a
|
| |
|
|
| |
commit_hash:a5be9c234b34c043ab421bd2fe6381ff56ffc41f
|