ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΡΡΡΠ°ΡΡΠΈΡ
ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Bazel 2.0 Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΡ Β«βincompatible_remap_main_repoΒ» (ΡΡΡΠ»ΠΊΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ΅ΡΠ΅Π· @ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ), Β«βincompatible_disallow_dict_lookupΒ»_(ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅Ρ
Π΅ΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ),
Β«βincompatible_remove_native_maven_jarΒ» ΠΈ Β«βincompatible_prohibit_aapt1Β». Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π΅
aquery ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Π΄Π°ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° Β«protoΒ» (βoutput=proto), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (βincompatible_proto_output_v2) ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ; - ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ Β«βincompatible_remove_enabled_toolchain_typesΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΠ»Π΅ PlatformConfiguration.enabled_toolchain_types;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈ ΡΠ°ΡΠΊΡΡΡΠΈΠΈ ΠΏΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ;
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π³Π° Β«βdisk_cacheΒ» Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΊΡΡΠ°ΠΌΠΈ gRPC;
- Π ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Debian ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ°Ρ ΡΠ°ΠΉΠ»Ρ ~/.bazelversion ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ $USE_BAZEL_VERSION;
- Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠΌ runfiles Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ Β«βexperimental_skip_runfiles_manifestsΒ».
Π‘ΡΠ΅Π΄ ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Bazel ΡΠ° Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅. ΠΠ° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, Bazel Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. BUILD ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠ±Π²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΠ»Π΅Π΄ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ (ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Ρ) ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΠΌΠΎΠ½ΡΠ°ΠΆ, Ρ.Π΅. ΡΠ΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Ρ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ²ΡΡΠΈ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Make ΠΈ Ninja, Bazel ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΡ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΡΠΌ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎ-Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΈ Π³ΠΎΡΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Π² C++β, βΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π² C++β ΠΈΠ»ΠΈ βΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡ Π·Π° C++β, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡ ΡΠ°ΠΉΠ» BUILD ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΊΡΠΏ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅, Π±Π΅Π· ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» ΡΠ±ΠΎΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘Π±ΠΎΡΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Google, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΊΠΎΠ΄ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru