diff options
author | alexv-smirnov <alex@ydb.tech> | 2023-03-28 22:25:04 +0300 |
---|---|---|
committer | alexv-smirnov <alex@ydb.tech> | 2023-03-28 22:25:04 +0300 |
commit | b8a17f9b1c166d2e9a26b99348a4c29d972caf55 (patch) | |
tree | 1a2d881f1a9452b9c6103dbf69d73da7624e98e5 /build | |
parent | 25659221f18577ea38430a8ec3349836f5626b6a (diff) | |
download | ydb-b8a17f9b1c166d2e9a26b99348a4c29d972caf55.tar.gz |
Revert ymake build from ydb oss export
Diffstat (limited to 'build')
326 files changed, 0 insertions, 62397 deletions
diff --git a/build/conf/bison_lex.conf b/build/conf/bison_lex.conf deleted file mode 100644 index 49f01474dc..0000000000 --- a/build/conf/bison_lex.conf +++ /dev/null @@ -1,133 +0,0 @@ -# This defines macros and rules for Bison and Flex source processing
-#
-# This specilizes _SRC() macro, so should be imported after generic version definition
-# Thus uses _ADD_HIDDEN_INPUTS() macro from ymake.core.conf
-
-LEX_FLAGS=
-BISON_FLAGS=-v
-
-_BISON_DATA_DIR=contrib/tools/bison/bison/data
-_CPP_BISON_SKELS=${_BISON_DATA_DIR}/glr.cc ${_BISON_DATA_DIR}/lalr1.cc ${_BISON_DATA_DIR}/yacc.c ${_BISON_DATA_DIR}/stack.hh ${_BISON_DATA_DIR}/variant.hh ${_BISON_DATA_DIR}/c++.m4 ${_BISON_DATA_DIR}/c++-skel.m4
-
-_BISON_GEN_EXT=.cpp
-_FLEX_GEN_EXT=.cpp
-
-_BISON_HEADER=--defines=${nopath;noext;output;main;addincl;norel;suf=.h:SRC}
-_BISON_PP=$YMAKE_PYTHON ${input:"build/scripts/preprocess.py"} $_ADD_HIDDEN_INPUTS($_CPP_BISON_SKELS) ${nopath;noext;tmp:SRC.h}
-
-_FLEX_TOOL=${tool:"contrib/tools/flex-old"}
-_FLEX_TOOL_DIR=contrib/tools/flex-old
-_FLEX_HEADER=
-
-### @usage: FLEX_FLAGS(<flags>)
-###
-### Set flags for Lex tool (flex) invocations.
-macro FLEX_FLAGS(Flags...) {
- SET_APPEND(LEX_FLAGS $Flags)
-}
-
-### @usage: BISON_FLAGS(<flags>)
-###
-### Set flags for Bison tool invocations.
-macro BISON_FLAGS(Flags...) {
- SET_APPEND(BISON_FLAGS $Flags)
-}
-
-### @usage: BISON_GEN_C()
-###
-### Generate C from Bison grammar. The C++ is generated by default.
-macro BISON_GEN_C() {
- SET(_BISON_GEN_EXT .c)
- SET(_BISON_PP)
-}
-
-### @usage: BISON_GEN_CPP()
-###
-### Generate C++ from Bison grammar. This is current default.
-macro BISON_GEN_CPP() {
- SET(_BISON_GEN_EXT .cpp)
-}
-
-
-### @usage: FLEX_GEN_C()
-###
-### Generate C from Lex grammar. The C++ is generated by default.
-macro FLEX_GEN_C() {
- SET(_FLEX_GEN_EXT .c)
-}
-
-### @usage: FLEX_GEN_CPP()
-###
-### Generate C++ from Lex grammar. This is current default.
-macro FLEX_GEN_CPP() {
- SET(_FLEX_GEN_EXT .cpp)
-}
-
-### @usage: BISON_HEADER(<header_suffix>)
-###
-### Use SUFF (including extension) to name Bison defines header file. The default is just `.h`.
-macro BISON_HEADER(Suffix) {
- SET(_BISON_HEADER --defines=\${nopath;noext;output;main;addincl;norel;suf=$Suffix:SRC})
-}
-
-### @usage: BISON_NO_HEADER()
-###
-### Don't emit Bison defines header file.
-macro BISON_NO_HEADER() {
- SET(_BISON_HEADER)
-}
-
-### @usage: USE_MODERN_FLEX()
-###
-### Use `contrib/tools/flex` as flex tool. Default is `contrib/tools/flex-old`.
-### @note: by default no header is emitted. Use `USE_MODERN_FLEX_WITH_HEADER` to add header emission.
-macro USE_MODERN_FLEX() {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex"} --m4=\${tool:"contrib/tools/bison/m4"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex)
-}
-
-### @usage: USE_MODERN_FLEX_WITH_HEADER(<header_suffix>)
-###
-### Use `contrib/tools/flex` as flex tool. Default is `contrib/tools/flex-old`.
-### Additionally emit headers with suffix provided. Header suffix should include extension `.h`.
-###
-### @example: USE_MODERN_FLEX_WITH_HEADER(_lexer.h)
-macro USE_MODERN_FLEX_WITH_HEADER(Suffix) {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex"} --m4=\${tool:"contrib/tools/bison/m4"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex)
- SET(_FLEX_HEADER --header-file=\${nopath;noext;output;main;addincl;norel;suf=$Suffix:SRC})
-}
-
-### @usage: USE_OLD_FLEX()
-###
-### Use `contrib/tools/flex-old` as flex tool. This is current default.
-macro USE_OLD_FLEX() {
- SET(_FLEX_TOOL \${tool:"contrib/tools/flex-old"})
- SET(_FLEX_TOOL_DIR contrib/tools/flex-old)
-}
-
-macro _SRC("y", SRC, SRCFLAGS...) {
- .CMD=${tool:"contrib/tools/bison/bison"} $BISON_FLAGS --m4=${tool:"contrib/tools/bison/m4"} $_BISON_HEADER -o ${nopath;output;suf=$_BISON_GEN_EXT:SRC} ${input:SRC} ${SRCFLAGS} ${kv;hide:"p YC"} ${kv;hide:"pc light-green"} && $_BISON_PP
- .SEM=target_bison_parser PRIVATE ${input:SRC} ${output;nopath;noext;hide;suf=${OBJ_SUF}.o:SRC} ${nopath;noext;output;hide:SRC.h} ${nopath;noext;output;addincl;hide:SRC.h} && set_global_flags BISON_FLAGS $BISON_FLAGS && conan_require bison/3.5.3 && conan_import '"bin, bison* -> ./bin/bison/bin"' && conan_import '"res, * -> ./bin/bison/res"'
-}
-
-macro _SRC("ypp", SRC, SRCFLAGS...) {
- .CMD=$_SRC(y $SRC $SRCFLAGS)
- .SEM=$_SRC(y $SRC $SRCFLAGS)
-}
-
-macro _SRC("l", SRC, SRCFLAGS...) {
- .CMD=$_FLEX_TOOL $LEX_FLAGS ${SRCFLAGS} $_FLEX_HEADER -o${output;suf=$_FLEX_GEN_EXT:SRC} ${output_include;hide:"util/system/compiler.h"} ${input:SRC} ${kv;hide:"p LX"} ${kv;hide:"pc yellow"}
- .ADDINCL=$_FLEX_TOOL_DIR
- .SEM=target_flex_lexers ${tool;hide:_FLEX_TOOL} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input:SRC} && set_global_flags LEX_FLAGS $LEX_FLAGS
-}
-
-# tag:src-processing
-macro _SRC("lex", SRC, SRCFLAGS...) {
- .CMD=$_SRC(l $SRC $SRCFLAGS)
-}
-
-# tag:src-processing
-macro _SRC("lpp", SRC, SRCFLAGS...) {
- .CMD=$_SRC(l $SRC $SRCFLAGS)
-}
diff --git a/build/conf/compilers/gnu_compiler.conf b/build/conf/compilers/gnu_compiler.conf deleted file mode 100644 index 1144465700..0000000000 --- a/build/conf/compilers/gnu_compiler.conf +++ /dev/null @@ -1,217 +0,0 @@ -_OPTIMIZE_RELEASE= -when ($_BUILD_RELEASE == "yes") { - when ($_BUILD_SIZE_OPTIMIZED == "yes") { - # -Oz is clang's more size-aggressive version of -Os - # For ARM specifically, clang -Oz is on par with gcc -Os: - # https://github.com/android/ndk/issues/133#issuecomment-365763507 - when($CLANG == "yes") { - _OPTIMIZE_RELEASE=-Oz - } - otherwise { - _OPTIMIZE_RELEASE=-Os - } - } - otherwise { - _OPTIMIZE_RELEASE=-O3 - } -} - -_SFDL_FLAGS=-E -C -x c++ -when ($CLANG == "yes") { - _SFDL_FLAGS+=-Qunused-arguments -} - -_DEBUG_INFO_FLAGS=-g -when ($OS_LINUX == "yes") { - _DEBUG_INFO_FLAGS=-g -ggnu-pubnames -} - -_CROSS_SUFFIX=.pic -when ($FORCE_NO_PIC == "yes") { - _CROSS_SUFFIX= -} - -C_COMPILER=${quo:C_COMPILER_UNQUOTED} -OPTIMIZE=$_OPTIMIZE_RELEASE -FSTACK=-fstack-protector -DUMP_DEPS= -GCC_PREPROCESSOR_OPTS=$DUMP_DEPS $C_DEFINES - -# PIE is only valid for executables, while PIC implies a shared library -# `-pie` with a shared library is either ignored or fails to link -when ($PIC == "yes") { - CFLAGS+=-fPIC - LDFLAGS+=-fPIC -} -elsewhen ($PIE == "yes") { - CFLAGS+=-fPIE - LDFLAGS+=-fPIE -pie -} - -CFLAGS+=$_C_FLAGS $DEBUG_INFO_FLAGS $_C_FOPTIONS $C_WARNING_OPTS $GCC_PREPROCESSOR_OPTS $USER_CFLAGS $USER_CFLAGS_GLOBAL -CXXFLAGS+=$CFLAGS $_CXX_STD $CXX_WARNING_OPTS $USER_CXXFLAGS $USER_CXXFLAGS_GLOBAL -CONLYFLAGS+=$USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL -CXX_COMPILER=${quo:CXX_COMPILER_UNQUOTED} -NOGCCSTACKCHECK=yes -SFDL_FLAG=$_SFDL_FLAGS -o $SFDL_TMP_OUT -WERROR_FLAG=-Werror -DEBUG_INFO_FLAGS=$_DEBUG_INFO_FLAGS - -when ($NO_WSHADOW == "yes") { - C_WARNING_OPTS += -Wno-shadow -} -# Though -w is intended to switch off all the warnings, -# it does not switch at least -Wregister and -Wreserved-user-defined-literal under clang. -# -# Use -Wno-everything to force warning suppression. -when ($NO_COMPILER_WARNINGS == "yes") { - C_WARNING_OPTS = -w - CXX_WARNING_OPTS = -Wno-everything -} -when ($NO_OPTIMIZE == "yes") { - OPTIMIZE = -O0 -} -when ($SAVE_TEMPS == "yes") { - CXXFLAGS += -save-temps -} -when ($NOGCCSTACKCHECK != "yes") { - FSTACK += -fstack-check -} - -when ($FORCE_CONSISTENT_DEBUG == "yes") { - when ($CLANG == "yes") { - CL_DEBUG_INFO=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T -Xclang -fdebug-compilation-dir -Xclang /tmp - } - otherwise { - CL_DEBUG_INFO=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T - } - YASM_DEBUG_INFO=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T ${env:"YASM_TEST_SUITE=1"} -} -elsewhen ($CONSISTENT_DEBUG == "yes") { - when ($CLANG == "yes") { - CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T -Xclang -fdebug-compilation-dir -Xclang /tmp - } - otherwise { - CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -fdebug-prefix-map=${ARCADIA_ROOT}=/-S -fdebug-prefix-map=$(TOOL_ROOT)=/-T - } - YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B --replace=${ARCADIA_ROOT}=/-S --replace=$(TOOL_ROOT)=/-T ${env:"YASM_TEST_SUITE=1"} -} -elsewhen ($CONSISTENT_DEBUG_LIGHT == "yes") { - when ($CLANG == "yes") { - CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B -Xclang -fdebug-compilation-dir -Xclang /tmp - } - otherwise { - CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__=-fdebug-prefix-map=${ARCADIA_BUILD_ROOT}=/-B - } - YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__=--replace=${ARCADIA_BUILD_ROOT}=/-B ${env:"YASM_TEST_SUITE=1"} -} - -when ($FORCE_CONSISTENT_BUILD == "yes") { - CL_MACRO_INFO=-Wno-builtin-macro-redefined -D__DATE__=\""Sep 31 2019\"" -D__TIME__=\"00:00:00\" -fmacro-prefix-map=${ARCADIA_BUILD_ROOT}/= -fmacro-prefix-map=${ARCADIA_ROOT}/= -fmacro-prefix-map=$(TOOL_ROOT)/= -} -elsewhen ($CONSISTENT_BUILD == "yes") { - CL_MACRO_INFO_DISABLE_CACHE__NO_UID__=-Wno-builtin-macro-redefined -D__DATE__=\""Sep 31 2019\"" -D__TIME__=\"00:00:00\" -fmacro-prefix-map=${ARCADIA_BUILD_ROOT}/= -fmacro-prefix-map=${ARCADIA_ROOT}/= -fmacro-prefix-map=$(TOOL_ROOT)/= -} - -_CFLAGS_ARCH_I386= -when ($ARCH_I386 == "yes" && $ARCH_I686 != "yes") { - _CFLAGS_ARCH_I386=-march=pentiumpro -mtune=pentiumpro -} - -CFLAGS+=$_CFLAGS_ARCH_I386 - -BC_CFLAGS+=$CFLAGS -BC_CXXFLAGS+=$CXXFLAGS -C_DEFINES+=-D__LONG_LONG_SUPPORTED - -OBJ_CROSS_SUF=$OBJ_SUF$_CROSS_SUFFIX -OBJECT_SUF=$OBJ_SUF$_CROSS_SUFFIX.o -GCC_COMPILE_FLAGS=$EXTRA_C_FLAGS -c -o $_COMPILE_OUTPUTS ${pre=-I:_C__INCLUDE} -EXTRA_COVERAGE_OUTPUT=${output;noauto;hide;suf=${OBJECT_SUF}.gcno:SRC} -CLANG_TIDY_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}.tidyjson:SRC} -YNDEXER_OUTPUT_FILE=${output;noauto;suf=${OBJECT_SUF}${COMPILE_OUT_SUFFIX}.ydx.pb2:SRC} - -when ($DUMP_COMPILER_DEPS == "yes") { - DUMP_DEPS=-MD ${output;hide;noauto;suf=${OBJ_SUF}.o.d:SRC} -} -elsewhen ($DUMP_COMPILER_DEPS_FAST == "yes") { - DUMP_DEPS=-E -M -MF ${output;noauto;suf=${OBJ_SUF}.o.d:SRC} -} - -_COMPILER_TIME_TRACE_GRANULARITY=500 -when ($TIME_TRACE_GRANULARITY && $TIME_TRACE_GRANULARITY != "") { - _COMPILER_TIME_TRACE_GRANULARITY=$TIME_TRACE_GRANULARITY -} - -_COMPILER_TIME_TRACE_FLAGS= -_COMPILER_TIME_TRACE_POSTPROCESS= -when (($TIME_TRACE == "yes" || $COMPILER_TIME_TRACE == "yes") && $_HAS_TIME_TRACE == "yes") { - _COMPILER_TIME_TRACE_FLAGS=-ftime-trace -ftime-trace-granularity=$_COMPILER_TIME_TRACE_GRANULARITY - _COMPILER_TIME_TRACE_POSTPROCESS=$YMAKE_PYTHON ${input:"build/scripts/find_time_trace.py"} $_COMPILE_OUTPUTS $_COMPILE_TIME_TRACE_OUTPUTS -} - -_C_CPP_KV_STYLE=${hide;kv:"p CC"} ${hide;kv:"pc green"} -_CPP_ARGS=\ - $CLANG_TIDY_ARGS \ - $YNDEXER_ARGS \ - $CXX_COMPILER \ - $C_FLAGS_PLATFORM \ - $GCC_COMPILE_FLAGS \ - $CXXFLAGS \ - $CL_MACRO_INFO \ - $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \ - $_COMPILER_TIME_TRACE_FLAGS \ - $EXTRA_OUTPUT \ - $SRCFLAGS \ - $_LANG_CFLAGS_VALUE \ - ${input:SRC} \ - $TOOLCHAIN_ENV \ - $YNDEXER_OUTPUT \ - && $_COMPILER_TIME_TRACE_POSTPROCESS \ - $_C_CPP_KV_STYLE - -_C_ARGS=\ - $CLANG_TIDY_ARGS \ - $YNDEXER_ARGS \ - $C_COMPILER \ - $C_FLAGS_PLATFORM \ - $GCC_COMPILE_FLAGS \ - $CFLAGS \ - $CL_MACRO_INFO \ - $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ \ - $_COMPILER_TIME_TRACE_FLAGS \ - $CONLYFLAGS \ - $EXTRA_OUTPUT \ - $SRCFLAGS \ - ${input:SRC} \ - $TOOLCHAIN_ENV \ - $YNDEXER_OUTPUT \ - $_C_CPP_KV_STYLE - -### _SRC_C_NODEPS_CMD is obtained from _C_ARGS by filtering the following elements: -### ${input:SRC} -### $CL_MACRO_INFO -### $CL_MACRO_INFO_DISABLE_CACHE__NO_UID__ -### $CLANG_TIDY_ARGS -### $EXTRA_OUTPUT -### $EXTRA_COVERAGE_OUTPUT -### $SRCFLAGS -### $YNDEXER_ARGS -### $YNDEXER_OUTPUT -### -### $GCC_COMPILE_FLAGS is substituted for $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC} -_SRC_C_NODEPS_CMD=\ - $C_COMPILER \ - $C_FLAGS_PLATFORM \ - $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC} \ - $CFLAGS \ - $CONLYFLAGS \ - $TOOLCHAIN_ENV \ - $_C_CPP_KV_STYLE - -_FORCE_CPP_FLAGS=-x c++ - -_SRC_CPP_CMD=$_CPP_ARGS -_SRC_C_CMD=$_C_ARGS -_SRC_M_CMD=$SRC_c($SRC $SRCFLAGS) -_SRC_MASM_CMD=$_EMPTY_CMD diff --git a/build/conf/compilers/msvc_compiler.conf b/build/conf/compilers/msvc_compiler.conf deleted file mode 100644 index a509b02348..0000000000 --- a/build/conf/compilers/msvc_compiler.conf +++ /dev/null @@ -1,90 +0,0 @@ -MSVC_INLINE_OPTIMIZED=yes -when ($MSVC_INLINE_OPTIMIZED == "yes") { - MSVC_INLINE_FLAG=/Zc:inline -} -when ($MSVC_INLINE_OPTIMIZED == "no") { - MSVC_INLINE_FLAG=/Zc:inline- -} - -# Provide proper __cplusplus value -# https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ -_CXX_FLAGS=/Zc:__cplusplus - -_MSVC_ONLY_FLAGS= -DEBUG_INFO_FLAGS=/Z7 -when ($IDE_MSVS == "yes") { - when ($CLANG_CL != "yes") { - _MSVC_ONLY_FLAGS=/FD /MP - } - DEBUG_INFO_FLAGS=/Zi /FS -} - -# https://msdn.microsoft.com/en-us/library/abx4dbyh.aspx -when ($DLL_RUNTIME == "yes") { - _FLAGS_DEBUG_RUNTIME=/MDd - _FLAGS_RELEASE_RUNTIME=/MD -} -otherwise { - _FLAGS_DEBUG_RUNTIME=/MTd - _FLAGS_RELEASE_RUNTIME=/MT -} -CFLAGS_DEBUG=/Ob0 /Od /D_DEBUG $_FLAGS_DEBUG_RUNTIME -CFLAGS_RELEASE=/Ox /Ob2 /Oi /DNDEBUG $_FLAGS_RELEASE_RUNTIME - -MASMFLAGS= -_MASM_IO=/nologo /c /Fo${output;suf=${OBJECT_SUF}:SRC} ${input;msvs_source:SRC} -when ($ARCH_ARMV7) { - _MASM_IO=-o ${output;suf=${OBJECT_SUF}:SRC} ${input;msvs_source:SRC} -} - -OBJ_CROSS_SUF=$OBJ_SUF -OBJECT_SUF=$OBJ_SUF.obj - -CFLAGS+=$_MSVC_FLAGS $_MSVC_ONLY_FLAGS $CFLAGS_PER_TYPE $DEBUG_INFO_FLAGS $C_WARNING_OPTS $C_DEFINES $USER_CFLAGS $USER_CFLAGS_GLOBAL -CXXFLAGS+=$CFLAGS $_STD_CXX $_CXX_FLAGS $_CXX_DEFINES $CXX_WARNING_OPTS $USER_CXXFLAGS $USER_CXXFLAGS_GLOBAL -CONLYFLAGS+=$USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL - -BC_CFLAGS+=$CFLAGS -BC_CXXFLAGS+=$BC_CFLAGS $CXXFLAGS - -CFLAGS+=$_CFLAGS_UCRT_VC_INCLUDES - -when ($NO_WSHADOW == "yes") { - C_WARNING_OPTS+=/wd4456 /wd4457 -} - -when ($NO_COMPILER_WARNINGS == "yes") { - C_WARNING_OPTS=/w - when ($CLANG_CL == "yes") { - # Though /w is intended to switch off all the warnings, - # it does not switch at least -Wregister and -Wreserved-user-defined-literal under clang-cl. - # - # Use -Wno-everything to force warning suppression. - CXX_WARNING_OPTS=-Wno-everything - } - otherwise { - CXX_WARNING_OPTS= - } -} - -when ($NO_OPTIMIZE == "yes") { - OPTIMIZE=/Od -} - -SFDL_FLAG=/E /C /P /TP /Fi$SFDL_TMP_OUT -WERROR_FLAG=/WX - -CL_WRAPPER=${FIX_MSVC_OUTPUT} cl -ML_WRAPPER=${FIX_MSVC_OUTPUT} ml -when ($_UNDER_WINE == "yes" && $CLANG_CL !="yes") { - CL_WRAPPER= - ML_WRAPPER= -} - -_FORCE_CPP_FLAGS=/TP - -_SRC_C_NODEPS_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${C_COMPILER} /c /Fo${OUTFILE} ${SRC} ${EXTRA_C_FLAGS} ${pre=/I :INC} ${CFLAGS} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"} -_SRC_CPP_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${CXX_COMPILER} /c /Fo$_COMPILE_OUTPUTS ${input;msvs_source:SRC} ${EXTRA_C_FLAGS} ${pre=/I :_C__INCLUDE} ${CXXFLAGS} ${SRCFLAGS} ${_LANG_CFLAGS_VALUE} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"} -_SRC_C_CMD=${TOOLCHAIN_ENV} ${CL_WRAPPER} ${C_COMPILER} /c /Fo$_COMPILE_OUTPUTS ${input;msvs_source:SRC} ${EXTRA_C_FLAGS} ${pre=/I :_C__INCLUDE} ${CFLAGS} ${CONLYFLAGS} ${SRCFLAGS} ${hide;kv:"soe"} ${hide;kv:"p CC"} ${hide;kv:"pc yellow"} -_SRC_M_CMD=$_EMPTY_CMD -_SRC_MASM_CMD=${cwd:ARCADIA_BUILD_ROOT} ${TOOLCHAIN_ENV} ${ML_WRAPPER} ${MASM_COMPILER} ${MASMFLAGS} ${SRCFLAGS} $_MASM_IO ${kv;hide:"p AS"} ${kv;hide:"pc yellow"} diff --git a/build/conf/compilers/nvcc.conf b/build/conf/compilers/nvcc.conf deleted file mode 100644 index 12ea72eaa9..0000000000 --- a/build/conf/compilers/nvcc.conf +++ /dev/null @@ -1,3 +0,0 @@ -when ($NO_COMPILER_WARNINGS == "yes") { - CUDA_NVCC_FLAGS += -w -} diff --git a/build/conf/coverage_full_instrumentation.conf b/build/conf/coverage_full_instrumentation.conf deleted file mode 100644 index b87313e7d6..0000000000 --- a/build/conf/coverage_full_instrumentation.conf +++ /dev/null @@ -1,8 +0,0 @@ -USE_SCU_VALUE="yes" - -macro POPULATE_CPP_COVERAGE_FLAGS() { - when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") { - CFLAGS+=-fprofile-instr-generate -fcoverage-mapping -DCLANG_COVERAGE - LDFLAGS+=-fprofile-instr-generate -fcoverage-mapping - } -} diff --git a/build/conf/coverage_selective_instrumentation.conf b/build/conf/coverage_selective_instrumentation.conf deleted file mode 100644 index 7039e194ce..0000000000 --- a/build/conf/coverage_selective_instrumentation.conf +++ /dev/null @@ -1,5 +0,0 @@ -USE_SCU_VALUE="no" - -macro POPULATE_CPP_COVERAGE_FLAGS() { - SET_CPP_COVERAGE_FLAGS() -} diff --git a/build/conf/docs.conf b/build/conf/docs.conf deleted file mode 100644 index 8fe8ed3486..0000000000 --- a/build/conf/docs.conf +++ /dev/null @@ -1,402 +0,0 @@ -# -# Documentation build support -# - -# tag:docs -TOUCH_DOCS=$YMAKE_PYTHON3 ${input:"build/scripts/touch.py"} ${kv;hide:"p DC"} ${kv;hide:"pc light-cyan"} $TARGET -TOUCH_DOCS_MF=$TOUCH_DOCS && $GENERATE_MF - -# tag:docs -### @usage: DOCS_COPY_FILES(FROM src_dir [NAMESPCE dst_dir] files...) -### -### Copy files from src_dir to $BINDIR/dst_dir -macro DOCS_COPY_FILES(FROM="${CURDIR}", NAMESPACE=".", FILES...) { - .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/copy_docs_files.py"} ${input;hide:"build/scripts/process_command_files.py"} --source-root $ARCADIA_ROOT --build-root $ARCADIA_BUILD_ROOT --src-dir $FROM --dst-dir $BINDIR/$NAMESPACE $FILES ${input;hide;context=TEXT;pre=${FROM}/:FILES} ${output;hide;pre=${NAMESPACE}/:FILES} -} - -# tag:docs -_DOCS_USE_PLANTUML=no -_DOCS_EXTRA_TOOLS= -_DOCS_EXTRA_INPUTS= -_DOCS_ENV= -_DOCS_KV=${kv;hide:"p DO"} ${kv;hide:"pc light-cyan"} ${kv;hide:"show_out yes"} - -_DOCS_PLANTUML_ENV=\ -${env:"JAVA_PATH=$JDK19_RESOURCE_GLOBAL/bin/java"} \ -${env:"PLANTUML_PATH=contrib/tools/plantuml/plantuml.run.cp.jar"} \ -${env:"_JAVA_OPTIONS='-Dsun.awt.fontconfig=contrib/java/openjdk-fontconfig/fontconfig.properties -Djava.awt.headless=true'"} \ -${env:"LANG=en_US.UTF-8"} \ -${env:"LC_ALL=C.UTF-8"} - -_DOCS_SRCS_VALUE= -_DOCS_VARS_FLAG= - -_DOCS_YFM_OUTPUT_FORMAT= -_DOCS_YFM_BOOK_OUTPUT_FORMAT=--output-format html --allowHTML -_DOCS_YFM_LIB_OUTPUT_FORMAT=--output-format md --add-map-file --allow-custom-resources - -_DOCS_YFM_CMDLINE=\ -${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/extract_docs.py"} ${input;hide:"build/scripts/process_command_files.py"} --skip-prefix $ARCADIA_BUILD_ROOT --dest-dir $BINDIR/__s ${rootrel:PEERS} \ -&& ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/stdout2stderr.py"} $YFM_TOOL_RESOURCE_GLOBAL/yfm-docs --input $BINDIR/__s --output $BINDIR/__docsbuild $_DOCS_VARS_FLAG $_DOCS_YFM_OUTPUT_FORMAT --config ${input:CONFIG} $_DOCS_EXTRA_TOOLS ${hide;input:EXTRA_INPUTS} $_DOCS_ENV \ -&& $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --output $TARGET --input $BINDIR/__docsbuild $_DOCS_KV - -# tag:internal tag:docs -macro _DOCS_YFM_CMD_IMPL(CONFIG, EXTRA_INPUTS[]) { - .CMD=$_DOCS_YFM_CMDLINE -} - -_DOCS_YFM_CMD=$_DOCS_YFM_CMD_IMPL($_DOCS_CONFIG_VALUE EXTRA_INPUTS $_DOCS_EXTRA_INPUTS) - -# tag:docs -### This module is intended for internal use only. Common parts for DOCS and MKDOCS multimodules -### should be defined here. -module _DOCS_BARE_UNIT: _BARE_UNIT { - .ALLOWED=DOCS_DIR DOCS_CONFIG DOCS_VARS - .CMD=TOUCH_DOCS_MF - .FINAL_TARGET=no - .NODE_TYPE=Bundle - .PEERDIR_POLICY=as_include - - ENABLE(_DOCS_BARE_UNIT) - - SET(MODULE_SUFFIX .tar.gz) - SET(MODULE_LANG DOCS) -} - -# tag:docs tag:internal -_DOCS_DIR_INTERNAL_NAMESPACE= - -# tag:internal tag:docs -_DOCS_LIBRARY_CMDLINE=\ -$YMAKE_PYTHON3 ${input:"build/scripts/copy_docs_files_to_dir.py"} ${input;hide:"build/scripts/process_command_files.py"} $_DOCS_SRCS_VALUE $_DOCS_DIR_VALUE $_DOCS_BIN_DIR_VALUE --dest-dir $BINDIR/__s --source-root $ARCADIA_ROOT --build-root $ARCADIA_BUILD_ROOT ${input;context=TEXT:INCLUDE_SRCS} \ -&& $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --output $TARGET --input $BINDIR/__s $_DOCS_KV - -# tag:internal tag:docs -macro _DOCS_LIBRARY_CMD_IMPL(INCLUDE_SRCS[], EXTRA_INPUTS[]) { - .CMD=$_DOCS_LIBRARY_CMDLINE -} - -_DOCS_LIBRARY_CMD=$_DOCS_LIBRARY_CMD_IMPL(INCLUDE_SRCS $_DOCS_INCLUDE_SOURCES_VALUE) - -# tag:docs -module DOCS_LIBRARY: _DOCS_BARE_UNIT { - .CMD=_DOCS_LIBRARY_CMD - .ALIASES=SRCS=_DOCS_SRCS DOCS_DIR=_YFM_DOCS_DIR - .EPILOGUE=_DOCS_LIBRARY_EPILOGUE - .NODE_TYPE=Library - - ENABLE(DOCS_LIBRARY) - - SET(MODULE_TYPE LIBRARY) - SET(MODULE_TAG DOCS_LIBRARY) - SET(PEERDIR_TAGS DOCS_LIBRARY) - - SET(MODULE_SUFFIX .docslib) -} - -# tag:docs -macro _DOCS_SRCS(SRCDIR=".", EXCLUDE[], INCLUDE...) { - SET(_VAR_DOCS_SRCS_SALT __SRCDIR__ $SRCDIR __EXCLUDE__ $EXCLUDE __INCLUDE__ $INCLUDE) - SET(_DOCS_SRCS_GLOB uniq_docs_${hash:_VAR_DOCS_SRCS_SALT}) - _GLOB(${_DOCS_SRCS_GLOB} ${pre=${SRCDIR}/:INCLUDE} EXCLUDE ${EXCLUDE}) - SET_APPEND(_DOCS_INCLUDE_SOURCES_VALUE ${input:$_DOCS_SRCS_GLOB}) - SET(_YFM_DOCS_DIR_DEFAULT_VALUE __dummy_dir__) -} - -# tag:docs -macro _DOCS_LIBRARY_EPILOGUE() { - _YFM_DOCS_DIR($_YFM_DOCS_DIR_DEFAULT_VALUE) - _SET_DOCS_BIN_DIR_FLAG($_DOCS_DIR_INTERNAL_NAMESPACE $MODDIR) -} - -# tag:docs -### This module is intended for internal use only. Common parts for submodules of DOCS multimodule -### should be defined here. -module _DOCS_BASE_UNIT: _DOCS_BARE_UNIT { - .ALIASES=DOCS_DIR=_YFM_DOCS_DIR - .NODE_TYPE=Library - - ENABLE(_DOCS_BASE_UNIT) - - PEERDIR+=build/platform/yfm - DOCS_CONFIG($_DOCS_YFM_DEFAULT_CONFIG) -} - -# tag:internal tag:docs -### _DOCS_YFM_USE_PLANTUML() # internal -### -### This macr sets appropriate dependencies for use of plantuml plugin -macro _DOCS_YFM_USE_PLANTUML() { - when ($DOCSLIB == "yes") { - PEERDIR+=build/platform/java/jdk/jdk19 contrib/java/openjdk-fontconfig - - _DOCS_ENV+=$_DOCS_PLANTUML_ENV - _DOCS_EXTRA_TOOLS+=${hide;tool:"contrib/tools/plantuml"} - } -} - -# tag:docs -### @usage: DOCS() -### -### Documentation project multimodule. -### -### When built directly, via RECURSE, DEPENDS or BUNDLE the output artifact is docs.tar.gz with statically generated site. -### When PEERDIRed from other DOCS() module behaves like a UNION (supplying own content and dependencies to build target). -### Peerdirs from modules other than DOCS are not accepted. -### Most usual macros are not accepted, only used with the macros DOCS_DIR(), DOCS_CONFIG(), DOCS_VARS(). -### -### @see: [DOCS_DIR()](#macro_DOCS_DIR), [DOCS_CONFIG()](#macro_DOCS_CONFIG), [DOCS_VARS()](#macro_DOCS_VARS). -multimodule DOCS { - module DOCSBOOK: _DOCS_BASE_UNIT { - .CMD=_DOCS_YFM_CMD - .FINAL_TARGET=yes - .PEERDIR_POLICY=as_build_from - .IGNORED=DOCS_DIR DOCS_INCLUDE_SOURCES DOCS_COPY_FILES PEERDIR PYTHON RUN_PROGRAM RUN_PYTHON3 RUN_LUA RUN_JAVA_PROGRAM FROM_SANDBOX SRCS - .PEERDIRSELF=DOCSLIB - - ENABLE(DOCSBOOK) - - SET(MODULE_TAG DOCSBOOK) - SET(PEERDIR_TAGS DOCSLIB) - - _DOCS_YFM_OUTPUT_FORMAT=$_DOCS_YFM_BOOK_OUTPUT_FORMAT - - PROCESS_DOCS() - } - - module DOCSLIB: _DOCS_BASE_UNIT { - .CMD=_DOCS_YFM_CMD - .PEERDIR_POLICY=as_build_from - .IGNORED=DOCS_DIR DOCS_INCLUDE_SOURCES DOCS_COPY_FILES PEERDIR PYTHON RUN_PROGRAM RUN_PYTHON3 RUN_LUA RUN_JAVA_PROGRAM FROM_SANDBOX SRCS - .PEERDIRSELF=DOCSLIB_INTERNAL - .PROXY=yes - - ENABLE(DOCSLIB) - - SET(MODULE_TAG DOCSLIB) - SET(PEERDIR_TAGS DOCSLIB_INTERNAL) - - REALPRJNAME=preprocessed - - _DOCS_YFM_OUTPUT_FORMAT=$_DOCS_YFM_LIB_OUTPUT_FORMAT - - PROCESS_DOCS() - } - - module DOCSLIB_INTERNAL: DOCS_LIBRARY { - .IGNORED=DOCS_CONFIG - .EPILOGUE=_DOCS_LIBRARY_EPILOGUE - - ENABLE(DOCSLIB_INTERNAL) - DISABLE(START_TARGET) - - SET(MODULE_TAG DOCSLIB_INTERNAL) - SET(PEERDIR_TAGS DOCSLIB_EXTERNAL DOCS_LIBRARY) - # additional .fake extension make this output suppressed by ya-bin - SET(MODULE_SUFFIX .docslib.fake) - - SET(_DOCS_DIR_INTERNAL_NAMESPACE .) - - REALPRJNAME=__docs_internal - } - - module DOCSLIB_EXTERNAL: DOCS_LIBRARY { - .IGNORED=DOCS_CONFIG - .EPILOGUE=_DOCS_LIBRARY_EPILOGUE - - ENABLE(DOCSLIB_EXTERNAL) - DISABLE(START_TARGET) - - SET(MODULE_TAG DOCSLIB_EXTERNAL) - SET(PEERDIR_TAGS DOCSLIB_EXTERNAL DOCS_LIBRARY) - - REALPRJNAME=__docs_external - } -} - -_DOCS_FS_TOOLS=$YMAKE_PYTHON3 ${input:"build/scripts/fs_tools.py"} ${input;hide:"build/scripts/process_command_files.py"} - -_DOCS_MKDOCS_CMDLINE_SUFFIX= -_DOCS_MKDOCS_BOOK_CMDLINE_SUFFIX=${pre=--dep ;ext=preprocessed.tar.gz:PEERS} -_DOCS_MKDOCS_LIB_CMDLINE_SUFFIX=--preprocess-md-only - -_DOCS_MKDOCS_CMDLINE=\ -${cwd:ARCADIA_ROOT} $_DOCS_FS_TOOLS copy_all_files $_MKDOCS_DOCS_DIR_VALUE $BINDIR/__s $_DOCS_SRCS_VALUE \ -&& $YMAKE_PYTHON3 ${input:"build/scripts/copy_files_to_dir.py"} ${input;hide:"build/scripts/process_command_files.py"} --dest-dir $BINDIR/__s --skip-prefix $ARCADIA_ROOT --skip-prefix $ARCADIA_BUILD_ROOT ${input;context=TEXT:INCLUDE_SRCS} \ -&& ${cwd:BINDIR} $YMAKE_PYTHON3 ${input:"build/scripts/mkdocs_builder_wrapper.py"} $ARCADIA_BUILD_ROOT ${tool:"tools/mkdocs_builder"} --docs-dir $BINDIR/__s --output-tar $TARGET --config ${input:CONFIG} $_DOCS_VARS_FLAG $_DOCS_MKDOCS_CMDLINE_SUFFIX $_DOCS_EXTRA_TOOLS ${hide;input:EXTRA_INPUTS} $_DOCS_ENV $_DOCS_KV - -# tag:internal tag:docs -macro _DOCS_MKDOCS_CMD_IMPL(CONFIG, INCLUDE_SRCS[], EXTRA_INPUTS[]) { - .CMD=$_DOCS_MKDOCS_CMDLINE -} - -_DOCS_MKDOCS_CMD=$_DOCS_MKDOCS_CMD_IMPL($_DOCS_CONFIG_VALUE INCLUDE_SRCS $_DOCS_INCLUDE_SOURCES_VALUE) - -_DOCS_YFM_DEFAULT_CONFIG=$MODDIR/.yfm -_DOCS_MKDOCS_DEFAULT_CONFIG=$MODDIR/mkdocs.yml - -# tag:docs -### This module is intended for internal use only. Common parts for submodules of MKDOCS multimodule -### should be defined here. -module _MKDOCS_BASE_UNIT: _DOCS_BARE_UNIT { - .ALIASES=DOCS_DIR=_MKDOCS_DOCS_DIR - - ENABLE(_MKDOCS_BASE_UNIT) - - DOCS_CONFIG($_DOCS_MKDOCS_DEFAULT_CONFIG) -} - -# tag:internal tag:docs -### _MKDOCS_EPILOOGUE() # internal -### -### This macro executes macros which should be envoked after all user -### specified macros in the ya.make file -macro _MKDOCS_EPILOGUE() { - _LATE_GLOB(_DOCS_SRCS_GLOB ${pre=${ARCADIA_ROOT}/;suf=/**/*:_MKDOCS_DOCS_DIR_VALUE}) - SET(_DOCS_SRCS_VALUE \${input;hide:_DOCS_SRCS_GLOB}) -} - -# tag:docs -### @usage: MKDOCS() -### -### Documentation project multimodule. -### -### When built directly, via RECURSE, DEPENDS or BUNDLE the output artifact is docs.tar.gz with statically generated site (using mkdocs as builder). -### When PEERDIRed from other MKDOCS() module behaves like a UNION (supplying own content and dependencies to build target). -### Peerdirs from modules other than MKDOCS are not accepted. -### Most usual macros are not accepted, only used with the macros DOCS_DIR(), DOCS_CONFIG(), DOCS_VARS(). -### -### @see: [DOCS_DIR()](#macro_DOCS_DIR), [DOCS_CONFIG()](#macro_DOCS_CONFIG), [DOCS_VARS()](#macro_DOCS_VARS). -multimodule MKDOCS { - module MKDOCSBOOK: _MKDOCS_BASE_UNIT { - .CMD=_DOCS_MKDOCS_CMD - .EPILOGUE=_MKDOCS_EPILOGUE - .FINAL_TARGET=yes - .PEERDIR_POLICY=as_build_from - - ENABLE(MKDOCSBOOK) - - SET(MODULE_TYPE PROGRAM) - SET(PEERDIR_TAGS MKDOCSLIB) - SET(MODULE_TAG MKDOCSBOOK) - - _DOCS_MKDOCS_CMDLINE_SUFFIX=$_DOCS_MKDOCS_BOOK_CMDLINE_SUFFIX - - PROCESS_MKDOCS() - } - - module MKDOCSLIB: _MKDOCS_BASE_UNIT { - .CMD=_DOCS_MKDOCS_CMD - .EPILOGUE=_MKDOCS_EPILOGUE - .PEERDIR_POLICY=as_include - - ENABLE(MKDOCSLIB) - - SET(MODULE_TYPE LIBRARY) - SET(PEERDIR_TAGS MKDOCSLIB) - SET(MODULE_TAG MKDOCSLIB) - - REALPRJNAME=preprocessed - - _DOCS_MKDOCS_CMDLINE_SUFFIX=$_DOCS_MKDOCS_LIB_CMDLINE_SUFFIX - - PROCESS_MKDOCS() - } -} - -# tag:docs -_DOCS_USE_PLANTUML= -### @usage: USE_PLANTUML() -### -### Use PlantUML plug-in for yfm builder to render UML diagrams into documentation -macro USE_PLANTUML() { - ENABLE(_DOCS_USE_PLANTUML) -} - -# tag:docs -_DOCS_DIR_VALUE= -_DOCS_BIN_DIR_VALUE= -### @usage: DOCS_DIR(path) -### -### Specify directory with source .md files for DOCS multimodule if it differs from project directory. -### Path must be Arcadia root relative. -### -### @see: [DOCS](#multimodule_DOCS) -macro DOCS_DIR(Dir) { - ENABLE(UNUSED_MACRO) -} - -# tag:docs tag:internal -macro _APPEND_DOCS_DIR_FLAG(DIR, NAMESPACE, DYMMY...) { - SET_APPEND(_DOCS_DIR_VALUE --docs-dir $DIR $NAMESPACE) -} - -# tag:docs tag:internal -macro _SET_DOCS_BIN_DIR_FLAG(NAMESPACE, DUMMY...) { - SET(_DOCS_BIN_DIR_VALUE --bin-dir $BINDIR $NAMESPACE $AUTO_INPUT) -} - -# tag:docs tag:internal -_YFM_DOCS_DIR_DEFAULT_VALUE=$MODDIR -_YFM_DEFAULT_NAMESPACE= -### @usage: DOCS_DIR(path) # internal -macro _YFM_DOCS_DIR(DIR) { - _APPEND_DOCS_DIR_FLAG($DIR $_DOCS_DIR_INTERNAL_NAMESPACE $DIR) - - SET(_VAR_DOCS_DIR_SALT __MODDIR__ $MODDIR __DIR__ $DIR) - SET(_DOCS_DIR_GLOB uniq_docs_dir_${hash:_VAR_DOCS_DIR_SALT}) - _LATE_GLOB(${_DOCS_DIR_GLOB} ${ARCADIA_ROOT}/$DIR/**/*) - SET_APPEND(_DOCS_SRCS_VALUE \${input;hide:$_DOCS_DIR_GLOB}) - - # We set the value of var _YFM_DOCS_DIR_DEFAULT_VALUE to some non-existing dir. This value - # will be used in _DOCS_LIBRARY_EPILOGUE calls. In case when this macro _YFM_DOCS_DIR is - # explicitly called in DOCS_LIBRARY module $MODDIR as default DOCS_DIR for DOCS_LIBRARY will - # be ignore. - SET(_YFM_DOCS_DIR_DEFAULT_VALUE __dummy_dir__) -} - -# tag:docs tag:internal -_MKDOCS_DOCS_DIR_VALUE=$MODDIR -### @usage: DOCS_DIR(path) # internal -macro _MKDOCS_DOCS_DIR(Dir) { - SET(_MKDOCS_DOCS_DIR_VALUE $Dir) -} - -# tag:docs -_DOCS_DEFAULT_CONFIG= -_DOCS_CONFIG_VALUE=$_DOCS_DEFAULT_CONFIG -### @usage: DOCS_CONFIG(path) -### -### Specify path to config file for DOCS multimodule if it differs from default path. -### If used for [MKDOCS](#multimodule_MKDOCS) multimodule the default path is "%%project_directory%%/mkdocs.yml". -### If used for [DOCS](#multimodule_DOCS) multimodule the default path is "%%project_directory%%/.yfm". -### Path must be either Arcadia root relative. -### -### @see: [DOCS](#multimodule_DOCS) -macro DOCS_CONFIG(File) { - SET(_DOCS_CONFIG_VALUE $File) -} - -# tag:docs -_DOCS_VARS_VALUE= -### @usage: DOCS_VARS(variable1=value1 variable2=value2 ...) -### -### Specify a set of default values of template variables for DOCS multimodule. -### There must be no spaces around "=". Values will be treated as strings. -### -### @see: [DOCS](#multimodule_DOCS) -macro DOCS_VARS(Args...) { - SET_APPEND(_DOCS_VARS_VALUE $Args) -} - -# tag:docs -_DOCS_INCLUDE_SOURCES_VALUE= -### @usage: DOCS_INCLUDE_SOURCES(path...) -### -### Specify a list of paths to source code files which will be used as text includes in a documentation project. -### Paths must be Arcadia root relative. -### -### @see: [DOCS](#multimodule_DOCS) -macro DOCS_INCLUDE_SOURCES(Args...) { - SET_APPEND(_DOCS_INCLUDE_SOURCES_VALUE $Args) -} diff --git a/build/conf/export_gradle.no.conf b/build/conf/export_gradle.no.conf deleted file mode 100644 index 31eb5159b2..0000000000 --- a/build/conf/export_gradle.no.conf +++ /dev/null @@ -1,3 +0,0 @@ -macro _WHEN_EXPORT_GRADLE() { - ENABLE(UNUSED) -} diff --git a/build/conf/export_gradle.yes.conf b/build/conf/export_gradle.yes.conf deleted file mode 100644 index e1c085526a..0000000000 --- a/build/conf/export_gradle.yes.conf +++ /dev/null @@ -1,3 +0,0 @@ -macro _WHEN_EXPORT_GRADLE() { - _SETUP_PROJECT_COORDS_IF_NEEDED($MODDIR) -} diff --git a/build/conf/java.ymake.conf b/build/conf/java.ymake.conf deleted file mode 100644 index f3d9577143..0000000000 --- a/build/conf/java.ymake.conf +++ /dev/null @@ -1,241 +0,0 @@ -YMAKE_JAVA_MODULES=yes -JBUILD_JAVA_MODULES=no - -macro _INPUT_WITH_FLAG(Flag, IN[]) { - .CMD=$_INPUT_WITH_FLAG_IMPL(${pre=$Flag :IN} IN $IN) -} - -macro _INPUT_WITH_FLAG_IMPL(IN{input}[], Args...) { - .CMD=$Args ${input;hide:IN} -} - -macro ACCELEO(XSD{input}[], MTL{input}[], MTL_ROOT="${MODDIR}", LANG{input}[], OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], DEBUG?"stdout2stderr":"stderr2stdout") { - .PEERDIR=build/platform/java/jdk $JDK_RESOURCE_PEERDIR - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input;pre=build/scripts/:DEBUG.py} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:"tools/acceleo"}${RUN_JAR_PROG_CP_SUF} ru.yandex.se.logsng.tool.Cli $_INPUT_WITH_FLAG(--xsd IN $XSD) $_INPUT_WITH_FLAG(--mtl IN $MTL) $_INPUT_WITH_FLAG(--lang IN $LANG) --output-dir $BINDIR --build-root ${ARCADIA_BUILD_ROOT} --source-root ${ARCADIA_ROOT} --mtl-root $MTL_ROOT ${output_include;hide:OUTPUT_INCLUDES} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} -} - -### @usage: JAVA_LIBRARY() -### -### The module describing java library build. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -module JAVA_LIBRARY: JAR_LIBRARY { - .SEM=BUILD_JAR_SEM -} - -PROGRAM_AND_TESTS_CP_COLLECTING_NODES_SEM=IGNORED - -### @usage: JAVA_PROGRAM() -### -### The module describing java programs build. -### Output artifacts: .jar and directory with all the jar to the classpath of the formation. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -multimodule JAVA_PROGRAM { - module JAR_RUNNABLE: _JAR_RUNNABLE { - .ALLOWED=JAVA_RUNTIME_PEERDIR JAVA_RUNTIME_EXCLUDE - .SEM=PROGRAM_AND_TESTS_CP_COLLECTING_NODES_SEM - # TODO(svidyuk) JAVA_DEPENDENCIES_CONFIGURATION must not be ignored here but there are diagnostics issues in case of ECLUDE in the middle: - # * A -> B -> C -> lib-v1.4 - # | |-> DM(lib-v1.1) - # | |-> EXCLUDE(lib-v1.4) - # | |-> FORBID_CONFLICT_DM_RECENT = OK - # |-> DM(lib-v1.1) - # |-> FORBID_CONFLICT_DM_RECENT = FAIL (because downgrade from v1.4 to v1.1 is detected before understanding that v1.4 was excuded on the examined path) - .IGNORED=RUN_JAVA_PROGRAM JAVA_DEPENDENCIES_CONFIGURATION PROVIDES - .ALIASES=JAVA_RUNTIME_PEERDIR=PEERDIR JAVA_RUNTIME_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JAVA_PROGRAM) - } - module JAR_COMPILATION: JAR_LIBRARY { - .IGNORED=JAVA_RUNTIME_PEERDIR JAVA_RUNTIME_EXCLUDE - .ALIASES=JAVA_RUNTIME_PEERDIR=_NOOP_MACRO JAVA_RUNTIME_EXCLUDE=_NOOP_MACRO - .SEM=BUILD_JAR_SEM - .FINAL_TARGET=no - SET(MODULE_TYPE JAVA_PROGRAM) - } -} - -BUILD_JUNIT5_JAR_SEM=$BUILD_JAR_SEM && junit5_test - -multimodule JUNIT5 { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=YT_SPEC - # TODO(svidyuk) JAVA_DEPENDENCIES_CONFIGURATION must not be ignored here but there are diagnostics issues in case of ECLUDE in the middle: - # * A -> B -> C -> lib-v1.4 - # | |-> DM(lib-v1.1) - # | |-> EXCLUDE(lib-v1.4) - # | |-> FORBID_CONFLICT_DM_RECENT = OK - # |-> DM(lib-v1.1) - # |-> FORBID_CONFLICT_DM_RECENT = FAIL (because downgrade from v1.4 to v1.1 is detected before understanding that v1.4 was excuded on the examined path) - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM JAVA_DEPENDENCIES_CONFIGURATION - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - .SEM=PROGRAM_AND_TESTS_CP_COLLECTING_NODES_SEM - - PEERDIR(devtools/jtest-annotations/junit5) - - SET(MODULE_TYPE JUNIT5) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALLOWED=YT_SPEC - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO JAVA_TEST_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - .DEFAULT_NAME_GENERATOR=FullPath - .SEM=BUILD_JUNIT5_JAR_SEM - - PEERDIR+=devtools/junit5-runner - PEERDIR+=build/platform/java/jacoco-agent - - when ($OPENSOURCE != "yes") { - PEERDIR+=devtools/jtest-annotations/junit5 - } - SET(MODULE_TYPE JUNIT5) - } -} - -BUILD_JUNIT4_JAR_SEM=$BUILD_JAR_SEM && junit4_test - -multimodule JTEST { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=YT_SPEC - # TODO(svidyuk) JAVA_DEPENDENCIES_CONFIGURATION must not be ignored here but there are diagnostics issues in case of ECLUDE in the middle: - # * A -> B -> C -> lib-v1.4 - # | |-> DM(lib-v1.1) - # | |-> EXCLUDE(lib-v1.4) - # | |-> FORBID_CONFLICT_DM_RECENT = OK - # |-> DM(lib-v1.1) - # |-> FORBID_CONFLICT_DM_RECENT = FAIL (because downgrade from v1.4 to v1.1 is detected before understanding that v1.4 was excuded on the examined path) - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM JAVA_DEPENDENCIES_CONFIGURATION - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - .SEM=PROGRAM_AND_TESTS_CP_COLLECTING_NODES_SEM - - SET(MODULE_TYPE JTEST) - PEERDIR(devtools/junit-runner devtools/jtest-annotations/junit4) - DEPENDENCY_MANAGEMENT(contrib/java/com/google/code/gson/gson/2.8.6 contrib/java/com/beust/jcommander/1.72 contrib/java/junit/junit/4.12) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALLOWED=YT_SPEC - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO JAVA_TEST_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - .DEFAULT_NAME_GENERATOR=FullPath - .SEM=BUILD_JUNIT4_JAR_SEM - - SET(MODULE_TYPE JTEST) - DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) - - PEERDIR+=build/platform/java/jacoco-agent - when ($OPENSOURCE != "yes") { - PEERDIR+=devtools/jtest-annotations/junit4 - } - } -} - -multimodule JTEST_FOR { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=YT_SPEC - # TODO(svidyuk) JAVA_DEPENDENCIES_CONFIGURATION must not be ignored here but there are diagnostics issues in case of ECLUDE in the middle: - # * A -> B -> C -> lib-v1.4 - # | |-> DM(lib-v1.1) - # | |-> EXCLUDE(lib-v1.4) - # | |-> FORBID_CONFLICT_DM_RECENT = OK - # |-> DM(lib-v1.1) - # |-> FORBID_CONFLICT_DM_RECENT = FAIL (because downgrade from v1.4 to v1.1 is detected before understanding that v1.4 was excuded on the examined path) - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM JAVA_DEPENDENCIES_CONFIGURATION - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - .SEM=PROGRAM_AND_TESTS_CP_COLLECTING_NODES_SEM - - SET(MODULE_TYPE JTEST_FOR) - PEERDIR(${UNITTEST_DIR} devtools/junit-runner) - DEPENDENCY_MANAGEMENT(contrib/java/com/google/code/gson/gson/2.8.6 contrib/java/com/beust/jcommander/1.72 contrib/java/junit/junit/4.12) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALLOWED=YT_SPEC - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO JAVA_TEST_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - .DEFAULT_NAME_GENERATOR=FullPath - .SEM=BUILD_JUNIT4_JAR_SEM - - SET(MODULE_TYPE JTEST_FOR) - DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) - PEERDIR(devtools/junit-runner build/platform/java/jacoco-agent ${UNITTEST_DIR}) - } -} - -multimodule JAVA_CONTRIB_PROGRAM { - module JAR_RUNNABLE: _JAR_RUNNABLE { - .IGNORED=JAVA_SRCS RUN_JAR_PROGRAM RUN_JAVA_PROGRAM JAR_RESOURCE SRC_RESOURCE LOCAL_JAR - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JAVA_PROGRAM) - ENABLE(DISABLE_SCRIPTGEN) - } - module JAR_COMPILATION: JAVA_CONTRIB { - .ALIASES=JAVA_RUNTIME_PEERDIR=_NOOP_MACRO JAVA_RUNTIME_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - .SEM=BUILD_JAR_SEM - } -} - -_EXPLICIT_SWIG_JAVA_SOURCES= -_EXPLICIT_SWIG_IFACE_SOURCES= -macro _EXPORT_JAVA_BINDINGS(JavaSrcs...) { - SET_APPEND(_EXPLICIT_SWIG_JAVA_SOURCES ${input:JavaSrcs}) - .SEM=find_package SWIG COMPONENTS java && find_package Java && find_package JNI && include UseSWIG && include UseJava ${input;hide:JavaSrcs} ${output;hide;pre=$_HASH_HELPER($Args):".o"} -} -macro _EXPORT_SWIG_SOURCES(SwigSrcs...) { - SET_APPEND(_EXPLICIT_SWIG_IFACE_SOURCES ${input:SwigSrcs}) -} - -macro _JNI_CPP_SWIG_SRCS(Srcs...) { - SRCS(${ext=.cpp:Srcs} ${ext=.swg:Srcs}) - _EXPORT_JAVA_BINDINGS(${ext=.java:Srcs}) - _EXPORT_SWIG_SOURCES(${ext=.swg:Srcs}) -} -macro _JNI_JAVA_SWIG_SRCS(Srcs...) { - SRCS(${ext=.java:Srcs} ${ext=.swg:Srcs}) -} - -SWIG_JNI_BINDINGS_SEM= \ - add_swig_jni_library ${MODDIR} ${REALPRJNAME}-cpp GEN_JAVA_FILES_LIST ${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst SOURCES ${_EXPLICIT_SWIG_IFACE_SOURCES} && \ - set_target_property OUTPUT_NAME $REALPRJNAME && \ - ${VCS_INFO_SEM} && \ - target_include_directories PUBLIC $_C__INCLUDE_GLOBAL && \ - target_include_directories PRIVATE $_C__INCLUDE_OWNED && \ - target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && \ - target_link_options PRIVATE $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE && \ - add_jar ${REALPRJNAME} SOURCES $_EXPLICIT_SWIG_JAVA_SOURCES @${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst ${hide:TARGET} - -### @usage: DLL_JAVA() -### -### DLL built using swig for Java. Produces dynamic library and a .jar. -### Dynamic library is treated the same as in the case of PEERDIR from Java to DLL. -### .jar goes on the classpath. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/#integracijascpp/pythonsborkojj -multimodule DLL_JAVA { - module JNI_DLL: DLL { - .ALIASES=SRCS=_JNI_CPP_SWIG_SRCS - .FINAL_TARGET=no - .SEM=SWIG_JNI_BINDINGS_SEM - SWIG_LANG=jni_cpp - } - module JAR_COMPILATION: EXTERNAL_JAVA_LIBRARY { - .ARGS_PARSER=DLL - .ALIASES=SRCS=_JNI_JAVA_SWIG_SRCS PEERDIR=_NOOP_MACRO - .PEERDIRSELF=JNI_DLL - PEERDIR+=build/platform/java/jdk - PEERDIR+=$JDK_RESOURCE_PEERDIR - SET(DONT_RESOLVE_INCLUDES yes) - .FINAL_TARGET=yes - - SWIG_LANG=jni_java - _SWIG_CMD=$_SWIG_JNI_JAVA_CMD - _SWIG_ADDINCLS=$_SWIG_JNI_ADDINCLS - _SWIG_PEERDIR=$_SWIG_JNI_PEERDIR - _SWIG_SEM_TO_MODULE_LINK=${output;hide;suf=.jsrc:SRC} - } -} diff --git a/build/conf/jbuild.ymake.conf b/build/conf/jbuild.ymake.conf deleted file mode 100644 index b9c88dd2db..0000000000 --- a/build/conf/jbuild.ymake.conf +++ /dev/null @@ -1,124 +0,0 @@ -YMAKE_JAVA_MODULES=no -JBUILD_JAVA_MODULES=yes - -EXTERNAL_JAR_VALUE= -### @usage: EXTERNAL_JAR(library.jar) -### -### Provide an external name for built JAVA_LIBRARY() or JAVA_PROGRAM() -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/#ispolzovanievneshnixmavenbibliotek -macro EXTERNAL_JAR(Args...) { - SET_APPEND(EXTERNAL_JAR_VALUE $ARGS_DELIM $Args) -} - -### @usage: JAVA_LIBRARY() -### -### The module describing java library build. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -module JAVA_LIBRARY: _JAVA_PLACEHOLDER { - SET(MODULE_TYPE JAVA_LIBRARY) -} - -### @usage: JAVA_PROGRAM() -### -### The module describing java programs build. -### Output artifacts: .jar and directory with all the jar to the classpath of the formation. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -module JAVA_PROGRAM: _JAVA_PLACEHOLDER { - .ALIASES=JAVA_RUNTIME_PEERDIR=PEERDIR JAVA_RUNTIME_EXCLUDE=EXCLUDE - SET(MODULE_TYPE JAVA_PROGRAM) -} - -### @usage: JUNIT5() -### -### Java tests module based on JUnit 5 framework. -### -### If requested, build system will scan the source code of the module for the presence of junit tests and run them. -### Output artifacts: a jar, a directory of exhaust tests(if required run the tests) - test logs, system logs testiranja, temporary files, tests, etc. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynajava -module JUNIT5: _JAVA_PLACEHOLDER { - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - SET(MODULE_TYPE JUNIT5) - SET(TEST_RUNNER devtools/junit5-runner) - SET(TEST_CLASSPATH_VALUE ${MODDIR} ${TEST_RUNNER}) - PEERDIR(devtools/jtest-annotations/junit5) - # Used as place to add managed dependencies for test execution and take them into account - # during traverses properly. - _RUN_JAVA(TOOL ${TEST_RUNNER} OUT fake.out.java_test_cmd) - - PEERDIR(${TEST_RUNNER}) - PEERDIR(build/platform/java/jacoco-agent) - JAVA_TEST() -} - -### @usage: JTEST() -### -### Java tests module based on JUnit 4 framework. -### -### If requested, build system will scan the source code of the module for the presence of junit tests and run them. -### Output artifacts: a jar, a directory of exhaust tests(if required run the tests) - test logs, system logs testiranja, temporary files, tests, etc. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynajava -module JTEST: _JAVA_PLACEHOLDER { - .ALLOWED=YT_SPEC - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - SET(MODULE_TYPE JTEST) - SET(TEST_RUNNER devtools/junit-runner) - SET(TEST_CLASSPATH_VALUE ${MODDIR} ${TEST_RUNNER}) - # Used as place to add managed dependencies for test execution and take them into account - # during traverses properly. - _RUN_JAVA(TOOL ${TEST_RUNNER} OUT fake.out.java_test_cmd) - - PEERDIR(devtools/jtest-annotations/junit4) - - # TODO: if <needs_sonar> - DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) - DEPENDS(${TEST_RUNNER}) - _GHOST_PEERDIR(${TEST_RUNNER}) - PEERDIR(build/platform/java/jacoco-agent) - JAVA_TEST() - - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -### @usage: JTEST_FOR(ModuleDir) -### -### Convinience java tests module based on JUnit 4 framework for specified library or program. -### -### In contrast to the JTEST, the build system will scan for the presence of the test sources of the module in ModuleDir . As ModuleDir should contain JAVA_PROGRAM or JAVA_LIBRARY . JTEST_FOR also can have its own source, in this case they will be compiled and added to the classpath of a test run. -### Output artifacts: a jar, a directory of exhaust tests(if requested tests are run). -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynajava -module JTEST_FOR: JTEST { - .ALIASES=JAVA_TEST_PEERDIR=PEERDIR JAVA_TEST_EXCLUDE=EXCLUDE - SET(MODULE_TYPE JTEST_FOR) - SET(TEST_CLASSPATH_VALUE ${MODDIR} ${TEST_RUNNER} ${UNITTEST_DIR}) - - PEERDIR(devtools/jtest-annotations/junit4 $UNITTEST_DIR) - SET(REALPRJNAME jtest) - JAVA_TEST() -} - -module JAVA_CONTRIB_PROGRAM: JAVA_CONTRIB { - SET(MODULE_TYPE JAVA_PROGRAM) - ENABLE(DISABLE_SCRIPTGEN) -} - -### @usage: DLL_JAVA() -### -### DLL built using swig for Java. Produces dynamic library and a .jar. -### Dynamic library is treated the same as in the case of PEERDIR from Java to DLL. -### .jar goes on the classpath. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/#integracijascpp/pythonsborkojj -module DLL_JAVA: DLL { - .EXTS=.o .obj .jsrc .java .mf - .CMD=SWIG_DLL_JAR_CMD - PEERDIR(build/platform/java/jdk) - PEERDIR+=$JDK_RESOURCE_PEERDIR - - SWIG_LANG=java -} diff --git a/build/conf/license.conf b/build/conf/license.conf deleted file mode 100644 index a5e8142f0c..0000000000 --- a/build/conf/license.conf +++ /dev/null @@ -1,438 +0,0 @@ -LICENSE_EXPRESSION_IMPLICIT_OR=yes -LICENSE_EXPRESSION_IMPLICIT_AND=yes -LICENSE_EXPRESSION= -LICENSE_NAMES= - -MODULE_LICENSES_RESTRICTIONS= -MODULE_LICENSES_RESTRICTION_EXCEPTIONS= -MODULE_LICENSES_RESTRICTION_TYPES= -DEFAULT_MODULE_LICENSE=YandexUncategorized -EXPLICIT_LICENSE_PREFIXES= - -# List of license properties which can be used to restrict transitive dependencies. There are three variables checked for each -# property: -# * LICENSES_<PROP_NAME>_STATIC: list of licenses which propagates this property when linking with code published by one of -# them statically. -# * LICENSES_<PROP_NAME>_DYNAMIC: list of licenses which propagates this property when linking with code published by one of -# them dyamically. -# * LICENSES_<PROP_NAME>: list of licenses which propagates this property regrdless of type of linking with code published by -# one of them. Putting some license into this list is equivalent to putting it into both -# LICENSES_<PROP_NAME>_STATIC and LICENSES_<PROP_NAME>_DYNAMIC lists. -LICENSE_PROPERTIES= \ - FORBIDDEN NDA REQUIRE_DISCLOSURE PERMISSIVE REQUIRE_CITATION SERVICE PROTESTWARE - - -# NB: Licenses lists below are sorted case-insensitively. Please, keep the list sorted. -LICENSES_UNATTRIBUTED= \ - AFL-2.0 \ - Amazon-SL \ - AML \ - APSL-1.0 \ - Artistic-1.0-Perl \ - Artistic-2.0 \ - ASM-BSD-3-Clause \ - BCL \ - Bison-Exception \ - Bison-exception-2.2 \ - BouncyCastle-MIT \ - BSD-3-Clause-Clear \ - BSD-3-Clause-Open-MPI \ - BSD-4-Clause-Shortened \ - Bsd-New-Tcpdump \ - Bsd-Original-Uc-1986 \ - BSLA \ - Carnegie-Mellon \ - Carnegie-Mellon-Contributors \ - CC-BY-1.0 \ - CC-BY-2.0 \ - CC-BY-2.5 \ - CC-BY-3.0 \ - CC-BY-4.0 \ - CC-BY-NC-1.0 \ - CC-BY-NC-2.0 \ - CC-BY-NC-2.5 \ - CC-BY-NC-3.0 \ - CC-BY-NC-ND-1.0 \ - CC-BY-NC-ND-2.0 \ - CC-BY-NC-ND-2.5 \ - CC-BY-NC-ND-3.0 \ - CC-BY-NC-SA-1.0 \ - CC-BY-NC-SA-2.0 \ - CC-BY-NC-SA-2.5 \ - CC-BY-NC-SA-3.0 \ - CC-BY-ND-1.0 \ - CC-BY-ND-2.0 \ - CC-BY-ND-2.5 \ - CC-BY-ND-3.0 \ - CC-BY-SA-1.0 \ - CC-BY-SA-2.0 \ - CC-BY-SA-2.5 \ - CC-BY-SA-3.0 \ - CC-BY-SA-4.0 \ - CDDL \ - CECILL-B \ - ClArtistic \ - DOC \ - DSO-1.1 \ - Elastic-License-2.0 \ - Fftpack-2004 \ - FSFUL \ - FSFULLR \ - GCC-exception-3.1 \ - GDAL \ - GFDL-1.1-or-later \ - Go-License \ - Google-Patent-License-Webm \ - Google-Patent-License-Webrtc \ - GPL-2.0 WITH Classpath-exception-2.0 \ - GPL-2.0 WITH FOSS-exception \ - GPL-2.0-only WITH freertos-exception-2.0 \ - GPL-2.0-only WITH Mysql-Linking-Exception-2018 \ - GPL-2.0-only WITH Universal-FOSS-exception-1.0 \ - GPL-2.0-or-later WITH Avisynth-C-Interface-Exception \ - GPL-2.0-or-later WITH Bison-Exception-2.0 \ - GPL-2.0-or-later WITH Bison-exception-2.2 \ - GPL-2.0-or-later WITH C-Interface-Exception \ - GPL-2.0-or-later WITH freertos-exception-2.0 \ - GPL-2.0-or-later WITH Libtool-exception \ - GPL-2.0-or-later WITH mif-exception \ - GWT-Terms \ - Hdf5 \ - HPND \ - HPND-sell-variant \ - HPND-sell-variant \ - HSQLDB-BSD-3-Clause \ - Ibm-Dhcp \ - Ietf-trust \ - ImageMagick \ - Info-Zip \ - Intel-Material \ - IPL-1.0 \ - JAMon-BSD-3-Clause \ - jQuery-MIT \ - LGPL-2.0-or-later WITH Sdbus-C++-LGPL-exception-1.1 \ - LGPL-3.0-or-later WITH ZeroMQ-Exception \ - LicenseRef-scancode-afpl-9.0 \ - LicenseRef-scancode-amd-historical \ - LicenseRef-scancode-anu-license \ - LicenseRef-scancode-bsd-3-clause-jtag \ - LicenseRef-scancode-bsd-axis-nomod \ - LicenseRef-scancode-bsd-new-nomod \ - LicenseRef-scancode-bsd-no-disclaimer \ - LicenseRef-scancode-bsd-x11 \ - LicenseRef-scancode-bsla-no-advert \ - LicenseRef-scancode-cavium-malloc \ - LicenseRef-scancode-cc-by-2.0-uk \ - LicenseRef-scancode-cc-devnations-2.0 \ - LicenseRef-scancode-cc-sampling-1.0 \ - LicenseRef-scancode-cmu-simple \ - LicenseRef-scancode-commercial-license \ - LicenseRef-scancode-commons-clause \ - LicenseRef-scancode-delorie-historical \ - LicenseRef-scancode-flex-2.5 \ - LicenseRef-scancode-free-unknown \ - LicenseRef-scancode-gary-s-brown \ - LicenseRef-scancode-generic-cla \ - LicenseRef-scancode-generic-exception \ - LicenseRef-scancode-intel-osl-1993 \ - LicenseRef-scancode-mit-xfig \ - LicenseRef-scancode-newlib-historical \ - LicenseRef-scancode-nilsson-historical \ - LicenseRef-scancode-openssl \ - LicenseRef-scancode-openssl-exception-lgpl-3.0-plus \ - LicenseRef-scancode-openssl-nokia-psk-contribution \ - LicenseRef-scancode-osf-1990 \ - LicenseRef-scancode-other-copyleft \ - LicenseRef-scancode-other-permissive \ - LicenseRef-scancode-paul-mackerras \ - LicenseRef-scancode-paul-mackerras-binary \ - LicenseRef-scancode-paul-mackerras-new \ - LicenseRef-scancode-pcre \ - LicenseRef-scancode-ppp \ - LicenseRef-scancode-proprietary-license \ - LicenseRef-scancode-secret-labs-2011 \ - LicenseRef-scancode-ssleay-windows \ - LicenseRef-scancode-sun-source \ - LicenseRef-scancode-swig \ - LicenseRef-scancode-unknown \ - LicenseRef-scancode-unknown-license-reference \ - LicenseRef-scancode-unknown-spdx \ - LicenseRef-scancode-warranty-disclaimer \ - LicenseRef-scancode-xfree86-1.0 \ - LPL-1.02 \ - MirOS \ - Mit-Xfig \ - Mozilla-GC \ - NAIST-2003 \ - Nvidia-Gov \ - Oracle \ - Oracle-technology \ - PSF-3.7.2 \ - Qhull \ - Quicklz \ - Ruby \ - Sendmail \ - Softsurfer \ - Spencer-99 \ - SSPL-1.0 \ - Stlport-4.5 \ - SZIP \ - TCL \ - TU-Berlin-1.0 \ - Unicode-TOU \ - Universal-FOSS-exception-1.0 \ - Unknown \ - Vcalendar \ - Vim \ - X11-Adobe-Dec \ - X11-Hanson \ - X11-XConsortium-Veillard \ - Xfree86-1.0 \ - Xnet - -LICENSES_PATCHES_FORBIDDEN= \ - Unicode - -LICENSES_FORBIDDEN= \ - AGPL-3.0-only \ - AGPL-3.0-or-later \ - Artistic-1.0 \ - Musl-Exception \ - ${LICENSES_UNATTRIBUTED} - -# Group for proprietary code licenses -LICENSES_NDA= \ - Intel-NDA \ - mimepp \ - OracleOebs \ - Sophos-SDK \ - YandexUncategorized \ - YandexNDA - -# These licenses allow use with opensource code only -LICENSES_REQUIRE_DISCLOSURE= \ - CDDL-1.0 \ - CDDL-1.1 \ - CECILL-2.0 \ - CPL-1.0 \ - EPL-1.0 \ - EPL-2.0 \ - GPL \ - GPL-1.0-only \ - GPL-1.0-or-later \ - GPL-1.0-or-later WITH Linux-syscall-note \ - GPL-1.1 \ - GPL-2.0 \ - GPL-2.0-only \ - GPL-2.0-only WITH GCC-exception-2.0 \ - GPL-2.0-only WITH Linux-syscall-note \ - GPL-2.0-or-later \ - GPL-2.0-or-later WITH GCC-exception-2.0 \ - GPL-2.0-or-later WITH Linux-syscall-note \ - GPL-3.0-only \ - GPL-3.0-only WITH Bison-exception-2.2 \ - GPL-3.0-or-later \ - GPL-3.0-or-later WITH Bison-exception-2.2 \ - GPLv2+ - -LICENSES_REQUIRE_DISCLOSURE_STATIC= \ - LGPL \ - LGPL-1.0-or-later \ - LGPL-2.0-only \ - LGPL-2.0-or-later \ - LGPL-2.0-or-later WITH Libtool-exception \ - LGPL-2.0-or-later WITH Linux-syscall-note \ - LGPL-2.1-only \ - LGPL-2.1-only WITH Linux-syscall-note \ - LGPL-2.1-or-later \ - LGPL-2.1-or-later WITH Linux-syscall-note \ - LGPL-3.0-only \ - LGPL-3.0-or-later - -# These licenses allows any kind of linkage with proprietary code -LICENSES_PERMISSIVE= \ - 0BSD \ - Apache-1.0 \ - Apache-1.1 \ - Apache-2.0 \ - Apache-2.0 WITH LLVM-exception \ - APSL-2.0 \ - Beerware \ - blessing \ - BSD \ - BSD-1-Clause \ - BSD-2-Clause \ - BSD-2-Clause-Patent \ - BSD-2-Clause-Views \ - BSD-3-Clause \ - BSD-4-Clause \ - BSD-4-Clause-UC \ - BSD-derived \ - BSD-ORIGINAL-UC-1986 \ - Bsd-Simplified-Darwin \ - BSD-Source-Code \ - Bsd-Unchanged \ - Bsd-Unmodified \ - BSL-1.0 \ - bzip2-1.0.6 \ - CC-PDDC \ - CC0-1.0 \ - Cmu-Computing-Services \ - CUP-Parser \ - curl \ - Custom-Punycode \ - EDL-1.0 \ - Facebook-SDK \ - FDK \ - FSFAP \ - FTL \ - H2 \ - IBM-pibs \ - ICU \ - Ietf \ - IJG \ - Intel-LLVM-SGA \ - Intel-Simplified \ - ISC \ - JSON \ - Khronos \ - Libpbm \ - Libpng \ - libpng-2.0 \ - libtiff \ - LicenseRef-scancode-ams-fonts \ - LicenseRef-scancode-bitstream \ - Linux-OpenIB \ - Martin-Birgmeier \ - Minpack \ - MIT \ - MIT-0 \ - MIT-CMU \ - MIT-Modern-Variant \ - MIT-Nagy \ - Mit-Old-Style \ - MIT-open-group \ - Mit-Veillard-Variant \ - MPL-1.0 \ - MPL-1.1 \ - MPL-2.0 \ - NCSA \ - Not-Applicable \ - NTP \ - Nvidia \ - OGC-1.0 \ - OLDAP-2.8 \ - OML \ - OpenSSL \ - PayPal-SDK \ - PCRE \ - PD \ - PHP-3.01 \ - PIL \ - Plexus \ - PostgreSQL \ - Protobuf-License \ - PSF \ - PSF-2.0 \ - Public-Domain \ - Public-Domain-US-Govt \ - Python-2.0 \ - Qhull \ - Red-Hat-Attribution \ - Repoze-public \ - RSA-1990 \ - RSA-MD \ - RSA-MD4 \ - SGI-B-2.0 \ - Sleepycat \ - SMLNJ \ - Snprintf \ - SSH-short \ - SSLeay \ - Sunpro \ - Unicode-DFS-2016 \ - Unicode-Icu-58 \ - Unicode-Mappings \ - Unlicense \ - Unrar \ - UPL-1.0 \ - Vertica \ - W3C \ - WTFPL \ - X11 \ - X11-Lucent \ - YandexOpen \ - Zlib \ - zlib-acknowledgement \ - ZPL-2.1 \ - ${CUSTOM_LICENSE_LINUX_SYSCALL_NOTE} \ - ${CUSTOM_LICENSE_MUSL_EXCEPTION} \ - ${LICENSES_PATCHES_FORBIDDEN} - -LICENSES_PERMISSIVE_DYNAMIC= \ - LGPL \ - LGPL-2.0-only \ - LGPL-2.0-or-later \ - LGPL-2.1-only \ - LGPL-2.1-or-later \ - LGPL-3.0-only \ - LGPL-3.0-or-later - -# https://st.yandex-team.ru/ARCADIAWGSUP-34 -CUSTOM_LICENSE_LIBSSH2_AGENT_WIN=Libssh2-Agent-Win -# Permissive if the code is used to declare and invoke syscalls -CUSTOM_LICENSE_LINUX_SYSCALL_NOTE=Linux-syscall-note-in-syscall-glue -# Permissive only in musllib -CUSTOM_LICENSE_MUSL_EXCEPTION=Musl-Exception-in-Musllib - -# TODO: this list is almost empty. needed for DEVRULES-151 -LICENSES_REQUIRE_CITATION= \ - Apache-2.0 \ - Brian-Gladman-3-Clause \ - Cmu-Computing-Services \ - Custom-Oasis-Pkcs11 \ - EDL-1.0 \ - OpenSSL \ - Spencer-94 \ - NetCDF \ - ${CUSTOM_LICENSE_LIBSSH2_AGENT_WIN} - -LICENSES_SERVICE= \ - Service-Dll-Harness \ - Service-Prebuilt-Tool \ - Service-Py23-Proxy - -LICENSES_PROTESTWARE= \ - Protestware - -macro _REQUIRE_EXPLICIT_LICENSE(Prefix...) { - SET(EXPLICIT_LICENSE_PREFIXES ${Prefix}) -} - -### @usage: LICENSE(licenses...) -### -### Specify the licenses of the module, separated by spaces. Specifying multiple licenses interpreted as permission to use this -### library satisfying all conditions of any of the listed licenses. -### -### A license must be prescribed for contribs -macro LICENSE(Flags...) { - SET(LICENSE_EXPRESSION $Flags) - SET(LICENSE_NAMES $Flags) -} - -### @usage RESTRICT_LICENSES(ALLOW_ONLY|DENY LicenseProperty...) -### -### Restrict licenses of direct and indirect module dependencies. -### -### ALLOW_ONLY restriction type requires dependent module to have at leas one license without propertis not listed in restrictions -### list. -### -### DENY restriction type forbids dependency on module with no license without any listed propery from the list. -### -### Note: Can be used multiple times on the same module all specified constraints will be checked. -### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) -macro RESTRICT_LICENSES(TYPE, EXCEPT[], RESTRICTIONS...) { - SET_APPEND(MODULE_LICENSES_RESTRICTION_TYPES $TYPE) - SET_APPEND(MODULE_LICENSES_RESTRICTIONS $RESTRICTIONS) - SET_APPEND(MODULE_LICENSES_RESTRICTION_EXCEPTIONS $EXCEPT) -} diff --git a/build/conf/linkers/ld.conf b/build/conf/linkers/ld.conf deleted file mode 100644 index 17985e52b3..0000000000 --- a/build/conf/linkers/ld.conf +++ /dev/null @@ -1,338 +0,0 @@ -LDFLAGS+=$USER_LDFLAGS $_LD_FLAGS -LDFLAGS_GLOBAL+= - -_START_GROUP= -_END_GROUP= -START_WHOLE_ARCHIVE_VALUE= -END_WHOLE_ARCHIVE_VALUE= -LD_STRIP_FLAG= -_SONAME_OPTION= -_LD_SRCS_GLOBALS=--start-wa ${rootrel;ext=.a:SRCS_GLOBAL} --end-wa ${rootrel;ext=.o:SRCS_GLOBAL} ${rootrel;ext=.supp:SRCS_GLOBAL} -when ($OS_LINUX == "yes" || $OS_ANDROID == "yes" || $OS_CYGWIN == "yes" || $OS_NONE == "yes") { - _START_GROUP=-Wl,--start-group - _END_GROUP=-Wl,--end-group - START_WHOLE_ARCHIVE_VALUE=-Wl,--whole-archive - END_WHOLE_ARCHIVE_VALUE=-Wl,--no-whole-archive - LD_STRIP_FLAG=-s - _SONAME_OPTION=-soname - _LD_SRCS_GLOBALS=-Wl,--whole-archive ${rootrel;ext=.a:SRCS_GLOBAL} -Wl,--no-whole-archive ${rootrel;ext=.o:SRCS_GLOBAL} ${rootrel;ext=.supp:SRCS_GLOBAL} -} - -when ($_LD_WHOLE_ARCHIVE == "yes") { -} - -when ($OS_DARWIN == "yes" || $OS_IOS == "yes") { - _SONAME_OPTION=-install_name -} - -_LD_LINKER_OUTPUT= -_LD_LINKER_OUTPUT_FLAG=--linker-output ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX$MODULE_VERSION.linker.txt:REALPRJNAME} - -# Enable section-level DCE (dead code elimination): -# remove whole unused code and data sections -# (needs `-ffunction-sections` and `-fdata-sections` to be useful) -# -# NOTE: CGO linker doesn't seem to support DCE, but shares common LDFLAGS -_LD_DCE_FLAG_GC_SECTIONS= -_LD_DCE_FLAG_PRINT_SECTIONS= -when ($OS_DARWIN == "yes") { - _LD_DCE_FLAG_GC_SECTIONS=-Wl,-dead_strip -} -elsewhen ($OS_LINUX == "yes" || $OS_ANDROID == "yes" || $OS_NONE == "yes") { - _LD_DCE_FLAG_GC_SECTIONS=-Wl,--gc-sections - when ($LINKER_DCE_PRINT_SECTIONS == "yes") { - _LD_DCE_FLAG_PRINT_SECTIONS=-Wl,--print-gc-sections - _LD_LINKER_OUTPUT=$_LD_LINKER_OUTPUT_FLAG - } -} -LD_DCE_FLAG = -LD_DCE_FLAG+=$_LD_DCE_FLAG_GC_SECTIONS -LD_DCE_FLAG+=$_LD_DCE_FLAG_PRINT_SECTIONS -DCE_FLAG= - -_LD_ICF_FLAG= -_LD_ICF_FLAG_PRINT_SECTIONS= -when ($_DEFAULT_LINKER_ID == "lld") { - # Enable ICF (identical code folding pass) in safe mode - # https://research.google/pubs/pub36912/ - _LD_ICF_FLAG=-Wl,-icf=safe - when ($LINKER_ICF_PRINT_SECTIONS == "yes") { - _LD_ICF_FLAG_PRINT_SECTIONS=-Wl,--print-icf-sections - _LD_LINKER_OUTPUT=$_LD_LINKER_OUTPUT_FLAG - } -} -LD_ICF_FLAG = -LD_ICF_FLAG+=$_LD_ICF_FLAG -LD_ICF_FLAG+=$_LD_ICF_FLAG_PRINT_SECTIONS -ICF_FLAG= - -STRIP_FLAG= - -C_LIBRARY_PATH= -C_SYSTEM_LIBRARIES_INTERCEPT= -when ($USEMPROF == "yes" || $USE_MPROF == "yes") { - C_SYSTEM_LIBRARIES_INTERCEPT+=-ldmalloc -} - -_LD_THREAD_LIBRARY= -when ($OS_LINUX == "yes" || $OS_DARWIN == "yes") { - _LD_THREAD_LIBRARY=-lpthread -} - -_LD_USE_STDLIB= -when ($_BUILD_COVERAGE == "yes" || $GCOV_COVERAGE == "yes" || $CLANG_COVERAGE == "yes" || $_BUILD_SANITIZED == "yes") { - _LD_USE_STDLIB= -} -elsewhen ($OS_ANDROID == "yes") { - when ($_ANDROID_NDK_VERSION_LESS_THEN_23 == "yes") { - # Preserve old behaviour: specify runtime libs manually - _LD_USE_STDLIB=-nodefaultlibs - } - otherwise { - # Use toolchain defaults to link with libunwind/clang_rt.builtins - _LD_USE_STDLIB=-nostdlib++ - } -} -elsewhen ($OS_LINUX == "yes" || $OS_DARWIN == "yes" || $OS_IOS == "yes") { - _LD_USE_STDLIB=-nodefaultlibs -} - -_C_SYSTEM_LIBRARIES=$_LD_USE_STDLIB $_LD_THREAD_LIBRARY $_LD_SYS_LIB -lc -when ($MUSL == "yes") { - _C_SYSTEM_LIBRARIES=-nostdlib -} -C_SYSTEM_LIBRARIES=$_C_SYSTEM_LIBRARIES - -OBJADDE= - -LD_EXPORT_ALL_DYNAMIC_SYMBOLS_FLAG= -when ($OS_LINUX == "yes" || $OS_ANDROID == "yes") { - LD_EXPORT_ALL_DYNAMIC_SYMBOLS_FLAG=-rdynamic -} - -NO_EXPORT_DYNAMIC_SYMBOLS= -EXPORTS_VALUE=$LD_EXPORT_ALL_DYNAMIC_SYMBOLS_FLAG -when ($EXPORTS_FILE) { - EXPORTS_VALUE=$LD_EXPORT_ALL_DYNAMIC_SYMBOLS_FLAG -Wl,--version-script=${input:EXPORTS_FILE} -} -when ($NO_EXPORT_DYNAMIC_SYMBOLS == "yes") { - EXPORTS_VALUE= -} - -LINKER_SCRIPT_VALUE=${ext=.ld;pre=-T:SRCS_GLOBAL} - -_LINKER_TIME_TRACE_GRANULARITY=500 -when ($TIME_TRACE_GRANULARITY && $TIME_TRACE_GRANULARITY != "") { - _LINKER_TIME_TRACE_GRANULARITY=$TIME_TRACE_GRANULARITY -} - -_LINKER_TIME_TRACE_FLAG= -when (($TIME_TRACE == "yes" || $LINKER_TIME_TRACE == "yes") && $_DEFAULT_LINKER_ID == "lld") { - _LINKER_TIME_TRACE_FLAG=\ - -Wl,--time-trace \ - -Wl,--time-trace-granularity=$_LINKER_TIME_TRACE_GRANULARITY \ - -Wl,--time-trace-file=${output;rootrel;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.time_trace.json:REALPRJNAME} -} - -_EXE_FLAGS=\ - $C_FLAGS_PLATFORM \ - $BEFORE_PEERS \ - $_START_GROUP \ - ${rootrel:PEERS} \ - $_END_GROUP \ - $AFTER_PEERS \ - $EXPORTS_VALUE \ - $LINKER_SCRIPT_VALUE \ - $LDFLAGS \ - $LDFLAGS_GLOBAL \ - $OBJADDE \ - $OBJADDE_LIB \ - $C_LIBRARY_PATH \ - $C_SYSTEM_LIBRARIES_INTERCEPT \ - $C_SYSTEM_LIBRARIES \ - $STRIP_FLAG \ - $DCE_FLAG \ - $ICF_FLAG \ - $_LINKER_TIME_TRACE_FLAG - -_SONAME_FLAG=-Wl,$_SONAME_OPTION,$_SONAME -_SHARED_FLAG=-shared -_EXEC_SHARED_FLAG= -when ($OS_LINUX == "yes") { - _EXEC_SHARED_FLAG=-pie -fPIE -Wl,--unresolved-symbols=ignore-all -rdynamic -} - -_LD_ENV_STYLE=${cwd:ARCADIA_BUILD_ROOT} $TOOLCHAIN_ENV ${kv;hide:"p LD"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - -# Program -GENERATE_MF_CMD=\ - $YMAKE_PYTHON ${input:"build/scripts/generate_mf.py"} ${input;hide:"build/scripts/process_command_files.py"} \ - --build-root $ARCADIA_BUILD_ROOT \ - --module-name $REALPRJNAME \ - -o ${output;rootrel;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME} \ - -t $MODULE_TYPE \ - --ya-start-command-file \ - -Ya,lics $LICENSE_NAMES \ - -Ya,peers ${rootrel:PEERS} \ - -Ya,credits ${input:CREDITS_TEXTS_FILE} $CREDITS_FLAGS \ - --ya-end-command-file - -LINK_SCRIPT_EXE_FLAGS= - -REAL_LINK_EXE_CMDLINE =\ - $YMAKE_PYTHON ${input:"build/scripts/link_exe.py"} \ - --source-root $ARCADIA_ROOT - REAL_LINK_EXE_CMDLINE+=$_LD_LINKER_OUTPUT - REAL_LINK_EXE_CMDLINE+=\ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - $_LD_ARCH_FLAG \ - $LINK_SCRIPT_EXE_FLAGS \ - $CXX_COMPILER \ - $_LD_SRCS_GLOBALS \ - $VCS_C_OBJ $AUTO_INPUT -o $TARGET \ - $_EXE_FLAGS \ - $_LD_ENV_STYLE - -REAL_LINK_EXE_TIDY=\ - $YMAKE_PYTHON ${input:"build/scripts/clang_tidy_arch.py"} \ - --build-root $ARCADIA_BUILD_ROOT \ - --source-root $ARCADIA_ROOT \ - --output-file $TARGET \ - $AUTO_INPUT \ - $_LD_ENV_STYLE - -# Executable Shared Library - -REAL_LINK_EXEC_DYN_LIB_CMDLINE =\ - $YMAKE_PYTHON ${input:"build/scripts/link_dyn_lib.py"} \ - --target $TARGET -REAL_LINK_EXEC_DYN_LIB_CMDLINE+=$_LD_LINKER_OUTPUT -REAL_LINK_EXEC_DYN_LIB_CMDLINE+=\ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - $_LD_ARCH_FLAG \ - $LINK_DYN_LIB_FLAGS \ - $CXX_COMPILER \ - $_LD_SRCS_GLOBALS \ - $VCS_C_OBJ $AUTO_INPUT -o $TARGET \ - $_EXEC_SHARED_FLAG \ - $_SONAME_FLAG \ - $_EXE_FLAGS \ - $_LD_ENV_STYLE - -REAL_LINK_EXEC_DYN_LIB=$REAL_LINK_EXEC_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) - -# Shared Library - -LINK_DYN_LIB_FLAGS= - -REAL_LINK_DYN_LIB_CMDLINE =\ - $YMAKE_PYTHON ${input:"build/scripts/link_dyn_lib.py"} \ - --target $TARGET -REAL_LINK_DYN_LIB_CMDLINE+=$_LD_LINKER_OUTPUT -REAL_LINK_DYN_LIB_CMDLINE+=\ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - $_LD_ARCH_FLAG \ - $LINK_DYN_LIB_FLAGS \ - $CXX_COMPILER \ - $_LD_SRCS_GLOBALS \ - $VCS_C_OBJ $AUTO_INPUT -o $TARGET \ - $_SHARED_FLAG \ - $_SONAME_FLAG \ - $_EXE_FLAGS \ - $_LD_ENV_STYLE - -REAL_LINK_DYN_LIB=$REAL_LINK_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) - -_DWARF_COMMAND= -when ($OS_DARWIN == "yes" && $NO_DEBUGINFO != "yes" && $SPLIT_DWARF_VALUE != "no" && $NO_SPLIT_DWARF != "yes") { - _DWARF_COMMAND=$DWARF_TOOL $TARGET -o ${output;pre=$MODULE_PREFIX$REALPRJNAME.dSYM/Contents/Resources/DWARF/$MODULE_PREFIX:REALPRJNAME} $_LD_ENV_STYLE -} -elsewhen ($OS_DARWIN == "yes" && $NO_DEBUGINFO != "yes") { - _EXE_FLAGS+=$DEBUG_INFO_FLAGS -} -otherwise { - _DWARF_COMMAND= -} -DWARF_COMMAND=$_DWARF_COMMAND - -_REAL_LINK_EXE=$REAL_LINK_EXE_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) -_LINK_EXE=$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $REAL_LINK_EXE && $DWARF_COMMAND && $LINK_ADDITIONAL_SECTIONS_COMMAND && $PACK_IOS_CMD -_LINK_DYN_LIB=$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $REAL_LINK_DYN_LIB && $DWARF_COMMAND && $LINK_ADDITIONAL_SECTIONS_COMMAND -when ($TIDY == "yes") { - _REAL_LINK_EXE=$REAL_LINK_EXE_TIDY - _LINK_EXE=$REAL_LINK_EXE - _LINK_DYN_LIB=$REAL_LINK_EXE -} -REAL_LINK_EXE=$_REAL_LINK_EXE -LINK_EXE=$_LINK_EXE -LINK_DYN_LIB=$_LINK_DYN_LIB - -LINK_EXEC_DYN_LIB=\ - $GENERATE_MF && \ - $GENERATE_VCS_C_INFO_NODEP && \ - $REAL_LINK_EXEC_DYN_LIB && \ - $DWARF_COMMAND && \ - $LINK_ADDITIONAL_SECTIONS_COMMAND - -SWIG_DLL_JAR_CMD=\ - $GENERATE_MF && \ - $GENERATE_VCS_C_INFO_NODEP && \ - $REAL_SWIG_DLL_JAR_CMD && \ - $DWARF_COMMAND - -_LD_TAIL_LINK_LIB=$AUTO_INPUT ${kv;hide:"p AR"} $TOOLCHAIN_ENV ${kv;hide:"pc light-red"} ${kv;hide:"show_out"} -_LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/link_lib.py"} ${quo:AR_TOOL} $AR_TYPE $_LD_LLVM_AR_FORMAT $ARCADIA_BUILD_ROOT $_LD_AR_PLUGIN -_LD_LIB_GENERATE_MF=$GENERATE_MF && -when ($TIDY == "yes") { - _LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/clang_tidy_arch.py"} --source-root $ARCADIA_ROOT --build-root $ARCADIA_BUILD_ROOT --output-file - _LD_LIB_GENERATE_MF= -} -LINK_LIB=$_LD_LIB_GENERATE_MF $_LD_ARCHIVER $TARGET $_LD_TAIL_LINK_LIB -GLOBAL_LINK_LIB=$_LD_ARCHIVER $GLOBAL_TARGET $_LD_TAIL_LINK_LIB - -# "Fat Object" : pre-linked global objects and static library with all dependencies -_LD_LINK_FAT_PREFIX=$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $YMAKE_PYTHON ${input:"build/scripts/link_fat_obj.py"} --build-root $ARCADIA_BUILD_ROOT -_LD_LINK_FAT_SRCS_GLOBALS_WA=$_LD_SRCS_GLOBALS -_LD_LINK_FAT_SRCS_GLOBALS_NO_WA=${rootrel;ext=.a:SRCS_GLOBAL} ${rootrel;ext=.o:SRCS_GLOBAL} - -_LD_LINK_FAT_SUFFIX1=$_LD_ARCH_FLAG \ - -Ya,input $AUTO_INPUT $VCS_C_OBJ \ - -Ya,global_srcs - -_LD_LINK_FAT_SUFFIX2=-Ya,peers $PEERS \ - -Ya,linker $CXX_COMPILER \ - $LDFLAGS_GLOBAL $C_FLAGS_PLATFORM $LD_SDK_VERSION \ - -Ya,archiver $_LD_ARCHIVER \ - $TOOLCHAIN_ENV ${kv;hide:"p LD"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - -LINK_FAT_OBJECT=\ - $_LD_LINK_FAT_PREFIX \ - --obj=$TARGET --lib=${output:REALPRJNAME.a} \ - $_LD_LINK_FAT_SUFFIX1 \ - $_LD_LINK_FAT_SRCS_GLOBALS_WA \ - $_LD_LINK_FAT_SUFFIX2 - -LINK_RECURSIVE_LIBRARY=\ - $_LD_LINK_FAT_PREFIX \ - --lib=$TARGET --with-own-obj --with-global-srcs \ - $_LD_LINK_FAT_SUFFIX1 \ - $_LD_LINK_FAT_SRCS_GLOBALS_NO_WA \ - $_LD_LINK_FAT_SUFFIX2 - -LINK_FAT_OBJECT_LIBRARY=\ - $_LD_LINK_FAT_PREFIX \ - --lib=$TARGET $FAT_OBJECT_ARGS $FAT_OBJECT_OUTS \ - $_LD_LINK_FAT_SUFFIX1 \ - $_LD_LINK_FAT_SRCS_GLOBALS_NO_WA \ - $_LD_LINK_FAT_SUFFIX2 - -LIBRT=-lrt -MD5LIB=-lcrypt -LIBRESOLV= -when ($OS_LINUX || $OS_DARWIN || $OS_ANDROID) { - LIBRESOLV=-lresolv -} -PROFFLAG=-pg diff --git a/build/conf/linkers/msvc_linker.conf b/build/conf/linkers/msvc_linker.conf deleted file mode 100644 index 9f852b1ef4..0000000000 --- a/build/conf/linkers/msvc_linker.conf +++ /dev/null @@ -1,271 +0,0 @@ -_MSVC_ARCH= -when ($ARCH_I386 == "yes" || $ARCH_I686 == "yes") { - _MSVC_ARCH=x86 -} -elsewhen ($ARCH_X86_64 == "yes") { - _MSVC_ARCH=x64 -} -elsewhen ($ARCH_ARM == "yes") { - _MSVC_ARCH=arm -} - -_FLAGS_MACHINE=/MACHINE:${toupper:_MSVC_ARCH} - -_FLAGS_IGNORE=/IGNORE:4221 - -_FLAGS_COMMON_IDE_MSVS= -when ($IDE_MSVS == "yes") { - _FLAGS_COMMON_IDE_MSVS=/INCREMENTAL -} -otherwise { - _FLAGS_COMMON_IDE_MSVS=/INCREMENTAL:NO -} - -# TODO(nslus): DEVTOOLS-1868 remove restriction. -_FLAGS_DEBUG_ONLY_DEBUG= -_FLAGS_RELEASE_ONLY_DEBUG= -_FLAGS_COMMON_DEBUG= -when (!$NO_DEBUGINFO || $NO_DEBUGINFO == "no" || $NO_DEBUGINFO == "0") { - when ($IDE_MSVS == "yes") { - when ($CLANG_CL == "yes") { - _FLAGS_DEBUG_ONLY_DEBUG=/DEBUG - } - otherwise { - _FLAGS_DEBUG_ONLY_DEBUG=/DEBUG:FASTLINK - } - _FLAGS_RELEASE_ONLY_DEBUG=/DEBUG - } - otherwise { - _FLAGS_COMMON_DEBUG=/DEBUG - } -} - -_FLAGS_COMMON_LIBPATHS= -when ($IDE_MSVS != "yes") { - _FLAGS_COMMON_LIBPATHS=\ - /LIBPATH:"$_MSVC_TC_KIT_LIBS/um/$_MSVC_ARCH" \ - /LIBPATH:"$_MSVC_TC_KIT_LIBS/ucrt/$_MSVC_ARCH" \ - /LIBPATH:"$_MSVC_TC_VC_ROOT/lib/$_MSVC_ARCH" -} - -_FLAGS_COMMON =/NOLOGO /ERRORREPORT:PROMPT /SUBSYSTEM:CONSOLE /TLBID:1 $MSVC_DYNAMICBASE /NXCOMPAT -_FLAGS_COMMON+=$_FLAGS_IGNORE -_FLAGS_COMMON+=$_FLAGS_MACHINE -_FLAGS_COMMON+=$_FLAGS_COMMON_IDE_MSVS -_FLAGS_COMMON+=$_FLAGS_COMMON_DEBUG -_FLAGS_COMMON+=$_FLAGS_COMMON_LIBPATHS - -_FLAGS_DEBUG_ONLY_CLANG_CL= -when ($CLANG_CL == "yes") { - _FLAGS_DEBUG_ONLY_CLANG_CL=/STACK:4194304 -} - -_FLAGS_DEBUG_ONLY =$_FLAGS_DEBUG_ONLY_CLANG_CL -_FLAGS_DEBUG_ONLY+=$_FLAGS_DEBUG_ONLY_DEBUG -_FLAGS_RELEASE_ONLY =$_FLAGS_RELEASE_ONLY_DEBUG - -LINK_EXE_FLAGS_DEBUG =$_FLAGS_COMMON -LINK_EXE_FLAGS_DEBUG+=$_FLAGS_DEBUG_ONLY - -LINK_EXE_FLAGS_RELEASE =$_FLAGS_COMMON -LINK_EXE_FLAGS_RELEASE+=$_FLAGS_RELEASE_ONLY - -LINK_LIB_FLAGS=$_FLAGS_IGNORE $_FLAGS_MACHINE - -LINK_STDLIBS=\ - advapi32.lib \ - comdlg32.lib \ - crypt32.lib \ - dnsapi.lib \ - gdi32.lib \ - iphlpapi.lib \ - kernel32.lib \ - mswsock.lib \ - ole32.lib \ - oleaut32.lib \ - psapi.lib \ - rpcrt4.lib \ - secur32.lib \ - shell32.lib \ - shlwapi.lib \ - user32.lib \ - userenv.lib \ - uuid.lib \ - version.lib \ - winmm.lib \ - winspool.lib \ - ws2_32.lib - -LDFLAGS_GLOBAL= -LDFLAGS= -OBJADDE= - -LINK_EXE_FLAGS=$LINK_EXE_FLAGS_PER_TYPE - -LINK_IMPLIB=/IMPLIB:${output;noext;rootrel;pre=$MODULE_PREFIX:REALPRJNAME.lib} -_LINK_EXTRA_OUTPUT= -when (!$NO_DEBUGINFO || $NO_DEBUGINFO == "no" || $NO_DEBUGINFO == "0") { - _LINK_EXTRA_OUTPUT=/PDB:${output;noext;rootrel;pre=$MODULE_PREFIX:REALPRJNAME.pdb} -} -LINK_EXTRA_OUTPUT=$_LINK_EXTRA_OUTPUT - -LIB_WRAPPER=${FIX_MSVC_OUTPUT} lib -LINK_WRAPPER=${FIX_MSVC_OUTPUT} link -when ($_UNDER_WINE == "yes") { - LIB_WRAPPER= - LINK_WRAPPER= -} - -LINK_WRAPPER_DYNLIB=${YMAKE_PYTHON} ${input:"build/scripts/link_dyn_lib.py"} --arch WINDOWS --target $TARGET - -EXPORTS_VALUE= -LINK_IMPLIB_VALUE= -when ($EXPORTS_FILE) { - LINK_IMPLIB_VALUE=$LINK_IMPLIB - EXPORTS_VALUE=/DEF:${input:EXPORTS_FILE} -} - -GENERATE_MF_CMD=\ - $YMAKE_PYTHON ${input:"build/scripts/generate_mf.py"} ${input;hide:"build/scripts/process_command_files.py"} \ - --build-root $ARCADIA_BUILD_ROOT \ - --module-name $REALPRJNAME \ - -o ${output;rootrel;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME} \ - -t $MODULE_TYPE \ - --ya-start-command-file \ - -Ya,lics $LICENSE_NAMES \ - -Ya,peers ${rootrel:PEERS} \ - -Ya,credits ${input:CREDITS_TEXTS_FILE} $CREDITS_FLAGS \ - --ya-end-command-file - -# we split srcs_global into two groups: libs and objs -# # each group can be in its own command file -# first group need /WHOLEARCHIVE: prefix which will be added in fix_msvc_output.py or run_msvc_wine.py -# the tail of link commands will be added in the third command file -_MSVC_SRCS_GLOBALS=\ ---start-wa --ya-start-command-file ${qe;rootrel;ext=.lib:SRCS_GLOBAL} --ya-end-command-file --end-wa \ ---ya-start-command-file ${qe;rootrel;ext=.obj:SRCS_GLOBAL} --ya-end-command-file - -REAL_LINK_DYN_LIB_CMDLINE=\ - ${TOOLCHAIN_ENV} \ - ${cwd:ARCADIA_BUILD_ROOT} \ - ${LINK_WRAPPER} \ - ${LINK_WRAPPER_DYNLIB} \ - ${LINK_EXE_CMD} \ - ${LINK_IMPLIB_VALUE} \ - /DLL \ - /OUT:${qe;rootrel:TARGET} \ - ${LINK_EXTRA_OUTPUT} \ - ${EXPORTS_VALUE} \ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - $_MSVC_SRCS_GLOBALS \ - --ya-start-command-file \ - ${VCS_C_OBJ_RR} \ - ${qe;rootrel:AUTO_INPUT} \ - ${qe;rootrel;ext=.lib:PEERS} ${qe;rootrel;ext=.dll;noext;suf=.lib:PEERS} \ - $LINK_EXE_FLAGS \ - $LINK_STDLIBS $LDFLAGS \ - $LDFLAGS_GLOBAL \ - $OBJADDE \ - --ya-end-command-file - -REAL_LINK_DYN_LIB=$REAL_LINK_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) - -SWIG_DLL_JAR_CMD=$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $REAL_SWIG_DLL_JAR_CMD - -_MSVC_HEAD_LINK_LIB=${TOOLCHAIN_ENV} ${cwd:ARCADIA_BUILD_ROOT} ${LIB_WRAPPER} ${LINK_LIB_CMD} -_MSVC_TAIL_LINK_LIB=\ - --ya-start-command-file \ - ${qe;rootrel:AUTO_INPUT} \ - $LINK_LIB_FLAGS \ - --ya-end-command-file \ - ${hide;kv:"soe"} ${hide;kv:"p AR"} ${hide;kv:"pc light-red"} - -LINK_LIB=${GENERATE_MF} && $_MSVC_HEAD_LINK_LIB /OUT:${qe;rootrel:TARGET} $_MSVC_TAIL_LINK_LIB -GLOBAL_LINK_LIB=$_MSVC_HEAD_LINK_LIB /OUT:${qe;rootrel:GLOBAL_TARGET} $_MSVC_TAIL_LINK_LIB - -LINK_EXE_CMDLINE=\ - ${GENERATE_MF} && \ - $GENERATE_VCS_C_INFO_NODEP && \ - ${TOOLCHAIN_ENV} \ - ${cwd:ARCADIA_BUILD_ROOT} \ - ${LINK_WRAPPER} \ - ${LINK_EXE_CMD} \ - /OUT:${qe;rootrel:TARGET} \ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - ${LINK_EXTRA_OUTPUT} \ - $_MSVC_SRCS_GLOBALS \ - --ya-start-command-file \ - ${VCS_C_OBJ_RR} \ - ${qe;rootrel:AUTO_INPUT} \ - $LINK_EXE_FLAGS \ - $LINK_STDLIBS \ - $LDFLAGS \ - $LDFLAGS_GLOBAL \ - $OBJADDE \ - ${qe;rootrel;ext=.lib:PEERS} ${qe;rootrel;ext=.dll;noext;suf=.lib:PEERS} \ - --ya-end-command-file \ - ${hide;kv:"soe"} ${hide;kv:"p LD"} ${hide;kv:"pc blue"} - -LINK_EXE=$LINK_EXE_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) - -LINK_DYN_LIB=${GENERATE_MF} && $GENERATE_VCS_C_INFO_NODEP && $REAL_LINK_DYN_LIB ${hide;kv:"soe"} ${hide;kv:"p LD"} ${hide;kv:"pc blue"} - -LINK_EXEC_DYN_LIB_CMDLINE=\ - ${GENERATE_MF} && \ - $GENERATE_VCS_C_INFO_NODEP && \ - ${TOOLCHAIN_ENV} \ - ${cwd:ARCADIA_BUILD_ROOT} \ - ${LINK_WRAPPER} \ - ${LINK_WRAPPER_DYNLIB} \ - ${LINK_EXE_CMD} \ - /OUT:${qe;rootrel:TARGET} \ - ${LINK_EXTRA_OUTPUT} \ - ${EXPORTS_VALUE} \ - ${pre=--whole-archive-peers :WHOLE_ARCHIVE_PEERS} \ - ${pre=--whole-archive-libs :_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL} \ - $_MSVC_SRCS_GLOBALS \ - '--ya-start-command-file \ - ${VCS_C_OBJ_RR} \ - ${qe;rootrel:AUTO_INPUT} \ - ${qe;rootrel;ext=.lib:PEERS} ${qe;rootrel;ext=.dll;noext;suf=.lib:PEERS} \ - $LINK_EXE_FLAGS \ - $LINK_STDLIBS \ - $LDFLAGS $LDFLAGS_GLOBAL \ - $OBJADDE \ - --ya-end-command-file \ - ${hide;kv:"soe"} ${hide;kv:"p LD"} ${hide;kv:"pc blue"} - -LINK_EXEC_DYN_LIB=$LINK_EXEC_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE) - -LINK_GLOBAL_FAT_OBJECT=\ - ${TOOLCHAIN_ENV} \ - ${cwd:ARCADIA_BUILD_ROOT} \ - ${LIB_WRAPPER} \ - ${LINK_LIB_CMD} \ - /OUT:${qe;rootrel:TARGET} \ - --ya-start-command-file \ - ${qe;rootrel;ext=.lib:SRCS_GLOBAL} \ - ${qe;rootrel;ext=.obj:SRCS_GLOBAL} \ - ${qe;rootrel:AUTO_INPUT} \ - $LINK_LIB_FLAGS \ - --ya-end-command-file - -LINK_PEERS_FAT_OBJECT=\ - ${TOOLCHAIN_ENV} \ - ${cwd:ARCADIA_BUILD_ROOT} \ - ${LIB_WRAPPER} \ - ${LINK_LIB_CMD} \ - /OUT:${qe;rootrel;output:REALPRJNAME.lib} \ - --ya-start-command-file \ - ${qe;rootrel:PEERS} \ - $LINK_LIB_FLAGS \ - --ya-end-command-file - -LINK_FAT_OBJECT=\ - ${GENERATE_MF} && \ - $GENERATE_VCS_C_INFO_NODEP && \ - $LINK_GLOBAL_FAT_OBJECT && \ - $LINK_PEERS_FAT_OBJECT \ - ${kv;hide:"p LD"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} diff --git a/build/conf/opensource.conf b/build/conf/opensource.conf deleted file mode 100644 index 3725fd0853..0000000000 --- a/build/conf/opensource.conf +++ /dev/null @@ -1,74 +0,0 @@ -EXPORT_CMAKE=no -EXPORT_GRADLE=no - -when ($CATBOOST_OPENSOURCE == "yes") { - OPENSOURCE=yes - CFLAGS+=-DCATBOOST_OPENSOURCE=yes - CXXFLAGS+=-DCATBOOST_OPENSOURCE=yes -} - -when ($OPENSOURCE == "yes") { - LOCAL_YDB_DOCKER_PUBLIC_BUILD=yes - CATBOOST_OPENSOURCE=yes - GO_VET=no - USE_DYNAMIC_IDN=yes - USE_DYNAMIC_AIO=yes - USE_DYNAMIC_ICONV=yes - USE_ASMLIB=no - SO_OUTPUTS=yes - UDF_NO_PROBE=yes - HAVE_MKL=no - USE_MKL=no - USE_PREBUILT_TOOLS=no -} - -# Extra macros to control how gradle export works - -when ($OPENSOURCE == "yes" && $EXPORT_GRADLE == "yes") { - RECURSIVE_ADD_PEERS_TESTS=yes -} - -# Extra macros to control how cmake export works - -when ($OPENSOURCE == "yes" && $EXPORT_CMAKE == "yes") { - # Python version is not acttually used in exported cmake's rigth now. - # The only reason to set it is to avoid any deps on contrib/python|contrib/libs/python when - # exporting PY_*_MODULE and force dependency to build/platform/python there. - USE_SYSTEM_PYTHON=3.10 - USE_ARCADIA_PYTHON=no - # YMAKE-477. yexport does not support USE_GLOBAL_CMD=no and crashes with OOM. - # USE_GLOBAL_CMD=yes does not work for Windows with ya make builds but works with exported CMake files: YMAKE-657. - USE_GLOBAL_CMD=yes -} - -CMAKE_PACKAGE= -CMAKE_PACKAGE_COMPONENT= -CMAKE_PACKAGE_TARGET= -CONAN_REFERENCE= -CONAN_PKG_OPTS= -### @usage: OPENSOURCE_EXPORT_REPLACEMENT(CMAKE PkgName CMAKE_TARGET PkgName::PkgTarget CONAN ConanRef CMAKE_COMPONENT OptCmakePkgComponent) -### -### Use specified conan/system pacakcge when exporting cmake build scripts for arcadia C++ project -### for opensource publication. -macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENT[], CONAN[], CONAN_OPTIONS[]) { - SET(CMAKE_PACKAGE $CMAKE) - SET(CMAKE_PACKAGE_COMPONENT $CMAKE_COMPONENT) - SET(CMAKE_LINK_TARGET $CMAKE_TARGET) - SET(CONAN_REFERENCE $CONAN) - SET(CONAN_PKG_OPTS $CONAN_OPTIONS) -} - -CMAKE_TARGET_NAME=$REALPRJNAME -CMAKE_TARGET_ARTEFACT_RENAME_RULES= -### @usage CMAKE_EXPORTED_TARGET_NAME(Name) -### -### Forces to use the name given as cmake target name without changing the name of output artefact. -### This macro should be used to resolve target name conflicts in exported cmake project when -### changing module name is not applicable. For example both CUDA and non-CUDA py modules for -### catboost should have same name lib_catboost.so and both of them are defined as PY_ANY_MODULE(_catboost). -### adding CMAKE_EXPORTED_TARGET_NAME(_catboost_non_cuda) to the non CUDA module ya.make file -### changes exported cmake target name but preserve generated artefact file name. -macro CMAKE_EXPORTED_TARGET_NAME(Name) { - SET(CMAKE_TARGET_NAME $Name) - SET(CMAKE_TARGET_ARTEFACT_RENAME_RULES && set_target_property OUTPUT_NAME $REALPRJNAME) -} diff --git a/build/conf/project_specific/maps/aar.conf b/build/conf/project_specific/maps/aar.conf deleted file mode 100644 index 7ac21e5d8e..0000000000 --- a/build/conf/project_specific/maps/aar.conf +++ /dev/null @@ -1,350 +0,0 @@ - -_GRADLE_FLAGS_VALUE= -### @usage: GRADLE_FLAGS(flags...) # internal -### -### SEt additional flags for gradle -macro GRADLE_FLAGS(FLAGS...) { - SET_APPEND(_GRADLE_FLAGS_VALUE $FLAGS) -} - -### @usage: PROGUARD_RULES(ProguardRuleFiles...) -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro PROGUARD_RULES(RULES...) { - SET_APPEND(_PROGUARD_RULES_GLOBAL $RULES) -} - -### @usage: AARS(Aars...) -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro AARS(DEPS...) { - SET_APPEND(_AARS_GLOBAL $DEPS) -} - -### @usage: MOBILE_DLL() # internal -module MOBILE_DLL: DLL { - .CMD=LINK_MOBILE_DLL - - PEERDIR(build/external_resources/android_sdk) - PEERDIR(build/external_resources/gradle) - PEERDIR(build/platform/java/jdk) - PEERDIR($JDK_RESOURCE_PEERDIR) - - SET(BIN_AAR_DIR $BINDIR/aar) - SET(BIN_TMP_DIR $BINDIR/tmp) -} - -_MOBILE_TEST_APK_AAR_MANIFEST_VALUE= -### @usage: MOBILE_TEST_APK_AAR_MANIFEST(file) # internal -macro MOBILE_TEST_APK_AAR_MANIFEST(FILE) { - SET(_MOBILE_TEST_APK_AAR_MANIFEST_VALUE $FILE) -} - -_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE= -### @usage: MOBILE_TEST_APK_AAR_PROGUARD_RULES(file) # internal -macro MOBILE_TEST_APK_AAR_PROGUARD_RULES(FILE) { - SET(_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE $FILE) -} - -_MOBILE_TEST_APK_AAR_AARS_VALUE= -### @usage: MOBILE_TEST_APK_AAR_AARS(filenames...) # internal -macro MOBILE_TEST_APK_AAR_AARS(AARS...) { - SET_APPEND(_MOBILE_TEST_APK_AAR_AARS_VALUE $AARS) -} - -_MOBILE_TEST_APK_AAR_BUNDLES_VALUE= -### @usage: MOBILE_TEST_APK_AAR_BUNDLES(filenames...) # internal -macro MOBILE_TEST_APK_AAR_BUNDLES(BUNDLES...) { - SET_APPEND(_MOBILE_TEST_APK_AAR_BUNDLES_VALUE $BUNDLES) - BUNDLE_EXTRA_INPUTS($BUNDLES) -} - -_MOBILE_TEST_APK_TEMPLATE_DIR= -### @usage: MOBILE_TEST_APK_TEMPLATE(dir filenames...) # internal -macro MOBILE_TEST_APK_TEMPLATE(TEMPLATE_DIR, INPUTS...) { - SET(_MOBILE_TEST_APK_TEMPLATE_DIR $TEMPLATE_DIR) - BUNDLE_EXTRA_INPUTS(${pre=$TEMPLATE_DIR/:INPUTS}) -} - -_MOBILE_TEST_APK_CMDLINE=\ -$FS_TOOLS md $BIN_TMP_DIR \ -&& $FS_TOOLS md $BINDIR/.android \ -&& $COPY_CMD $GRADLE_DEBUG_STORE_RESOURCE_GLOBAL/debug.keystore $BINDIR/.android/debug.keystore \ -&& $FS_TOOLS md $BINDIR/jni_libs/$ARCH_NAME \ -&& $YMAKE_PYTHON ${input:"build/scripts/extract_asrc.py"} --output $BIN_TMP_DIR --input ${suf=.asrc:PEERS} \ -&& $MOVE_FILE $OUTPUT $BINDIR/jni_libs/$ARCH_NAME/${pre=lib;suf=.so:_MOBILE_TEST_APK_LIBRARY_NAME} \ -&& $FS_TOOLS md $BIN_AAR_DIR \ -&& $YMAKE_PYTHON ${input:"build/scripts/gen_aar_gradle_script.py"} \ -${input;hide:EXTRA_INPUTS} \ ---aidl-dirs $BIN_TMP_DIR/aidl \ ---assets-dirs $BIN_TMP_DIR/assets \ ---java-dirs $BIN_TMP_DIR/src \ ---jni-libs-dirs $BINDIR/jni_libs \ ---res-dirs $BIN_TMP_DIR/res \ ---manifest ${input:_MOBILE_TEST_APK_AAR_MANIFEST_VALUE} \ ---proguard-rules ${input:_MOBILE_TEST_APK_AAR_PROGUARD_RULES_VALUE} ${input:_PROGUARD_RULES_GLOBAL} \ ---aars $_MOBILE_TEST_APK_AAR_AARS_VALUE $_AARS_GLOBAL \ ---bundles $_MOBILE_TEST_APK_AAR_BUNDLES_VALUE \ ---output-dir $BIN_AAR_DIR \ ---bundle-name unittest \ ---maven-repos ${MAPSMOBI_MAVEN_REPO_RESOURCE_GLOBAL} \ -&& ${cwd:BIN_AAR_DIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR assemble${_BUNDLE_BUILD_TYPE} ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} \ -&& $FS_TOOLS md $BIN_APK_DIR \ -&& $FS_TOOLS md $BIN_APK_DIR/res \ -&& $COPY_CMD $_MOBILE_TEST_APK_TEMPLATE_DIR/Manifest.xml $BIN_APK_DIR/Manifest.xml \ -&& $YMAKE_PYTHON ${input:"build/scripts/gen_test_apk_gradle_script.py"} \ -${input;hide:EXTRA_INPUTS} \ ---app-id $REALPRJNAME \ ---assets-dirs $_MOBILE_TEST_APK_ASSETS_DIRS_VALUE \ ---java-dirs $_MOBILE_TEST_APK_TEMPLATE_DIR/java \ ---jni-libs-dirs \ ---res-dirs $BIN_APK_DIR/res $_MOBILE_TEST_APK_TEMPLATE_DIR/res $BIN_TMP_DIR/res \ ---manifest Manifest.xml \ ---aars \ ---output-dir $BIN_APK_DIR \ ---bundle-name $REALPRJNAME \ ---bundles $BIN_AAR_DIR/build/outputs/aar/unittest-${tolower:_BUNDLE_BUILD_TYPE}.aar $_MOBILE_TEST_APK_AAR_BUNDLES_VALUE \ ---library-name $_MOBILE_TEST_APK_LIBRARY_NAME \ ---maven-repos ${MAPSMOBI_MAVEN_REPO_RESOURCE_GLOBAL} \ -&& ${cwd:BIN_APK_DIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR assembleDebug ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} \ -&& $COPY_CMD $BIN_APK_DIR/build/outputs/apk/${tolower:_BUNDLE_BUILD_TYPE}/$REALPRJNAME.apk ${OUTPUT} - -_MOBILE_TEST_APK_EXTRA_INPUTS_VALUE= - -macro _MOBILE_TEST_APK_CMD_IMPL(OUTPUT, EXTRA_INPUTS...) { - .CMD=$_MOBILE_TEST_APK_CMDLINE -} - -_MOBILE_TEST_APK_CMD=$_MOBILE_TEST_APK_CMD_IMPL($TARGET $_BUNDLE_EXTRA_INPUTS_VALUE) - -LINK_MOBILE_TEST_APK=$LINK_DYN_LIB && $_MOBILE_TEST_APK_CMD - -### @usage: MOBILE_TEST_APK() # internal -module MOBILE_TEST_APK: DLL { - .CMD=LINK_MOBILE_TEST_APK - .GLOBAL=_AARS _PROGUARD_RULES - - PEERDIR(build/external_resources/android_sdk) - PEERDIR(build/external_resources/gradle) - PEERDIR(build/platform/java/jdk) - PEERDIR($JDK_RESOURCE_PEERDIR) - - SET(MODULE_PREFIX) - SET(MODULE_SUFFIX .apk) - - SET(BIN_AAR_DIR $BINDIR/aar) - SET(BIN_APK_DIR $BINDIR/apk) - SET(BIN_TMP_DIR $BINDIR/tmp) - SET(BIN_GRADLE_USER_HOME_DIR $BINDIR/gradle) - - SET(_MOBILE_TEST_APK_LIBRARY_NAME unittests) - - when ($OS_ANDROID == "yes") { - when ($ARCH_ARM7 == "yes") { - ARCH_NAME=armeabi-v7a - } - elsewhen ($ARCH_ARM64 == "yes") { - ARCH_NAME=arm64-v8a - } - elsewhen ($ARCH_I386 == "yes") { - ARCH_NAME=x86 - } - elsewhen ($ARCH_X86_64 == "yes") { - ARCH_NAME=x86_64 - } - otherwise { - ARCH_NAME=unsupported - } - } -} - - -### @usage: MOBILE_BOOST_TEST_APK() # internal -module MOBILE_BOOST_TEST_APK: MOBILE_TEST_APK { - PEERDIR(devtools/dummy_arcadia/test/test_apk/template) - PEERDIR(build/external_resources/mapsmobi_maven_repo) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME boost.test) - - MOBILE_TEST_APK_TEMPLATE(${ARCADIA_ROOT}/devtools/dummy_arcadia/test/test_apk/template Manifest.xml java/com/yandex/test/unittests/RunTestsActivity.java java/com/yandex/test/unittests/CrashHandler.java res/values/strings.xml) -} - -when ($BT_RELEASE) { - _BUNDLE_BUILD_TYPE=Release -} -otherwise { - _BUNDLE_BUILD_TYPE=Debug -} - -_AAR_EXTRA_INPUTS_VALUE= - -_AAR_MANIFEST_VALUE= -### @usage: AAR_MANIFEST(filename) # internal -macro AAR_MANIFEST(FILE) { - SET(_AAR_MANIFEST_VALUE $FILE) -} - -_AAR_PROGUARD_RULES_VALUE= -### @usage: AAR_PROGUARD_RULES(filename) # internal -macro AAR_PROGUARD_RULES(FILE) { - SET(_AAR_PROGUARD_RULES_VALUE $FILE) -} - -_AAR_AARS_VALUE= -### @usage: AAR_AARS(aars...) # internal -macro AAR_AARS(Aars...) { - SET_APPEND(_AAR_AARS_VALUE $Aars) -} - -_AAR_COMPILE_ONLY_AARS_VALUE= -### @usage: AAR_COMPILE_ONLY_AARS(compile_only_aars...) # internal -macro AAR_COMPILE_ONLY_AARS(Aars...) { - SET_APPEND(_AAR_COMPILE_ONLY_AARS_VALUE $Aars) -} - - -_AAR_AIDL_DIRS_VALUE= -### @usage: AAR_AIDL_SRCS(dir filenames...) # internal -macro AAR_AIDL_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_AAR_AIDL_DIRS_VALUE $PREFIX) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_AAR_ASSETS_DIRS_VALUE= -### @usage: AAR_ASSETS_SRCS(dir filenames...) # internal -macro AAR_ASSETS_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_AAR_ASSETS_DIRS_VALUE $PREFIX) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_AAR_BUNDLES_VALUE= -### @usage: AAR_BUNDLES(filenames...) # internal -macro AAR_BUNDLES(BUNDLES...) { - SET_APPEND(_AAR_BUNDLES_VALUE $BUNDLES) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE $BUNDLES) -} - -_AAR_JNI_LIB_DIRS_VALUE= -### @usage: AAR_JNI_LIBS(dir filenames...) # internal -macro AAR_JNI_LIBS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_AAR_JNI_LIB_DIRS_VALUE $PREFIX) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_AAR_JAVA_DIRS_VALUE= -### @usage: AAR_JAVA_SRCS(dir filenames...) # internal -macro AAR_JAVA_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_AAR_JAVA_DIRS_VALUE $PREFIX) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_AAR_RES_DIRS_VALUE= -### @usage: AAR_RES_SRCS(dir filenames...) # internal -macro AAR_RES_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_AAR_RES_DIRS_VALUE $PREFIX) - SET_APPEND(_AAR_EXTRA_INPUTS_VALUE ${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_AAR_LOCAL_MAVEN_REPO_VALUE= -### @usage: AAR_LOCAL_MAVEN_REPO(repo...) -macro AAR_LOCAL_MAVEN_REPO(REPO...) { - SET_APPEND(_AAR_LOCAL_MAVEN_REPO_VALUE $REPO) -} - -_AAR_GRADLE_SCRIPT_GENERATOR_VALUE= -### @usage: AAR_GRADLE_SCRIPT_GENERATOR(python_script) -macro AAR_GRADLE_SCRIPT_GENERATOR(GENERATOR) { - SET(_AAR_GRADLE_SCRIPT_GENERATOR_VALUE $GENERATOR) -} - -when ($AAR_GENERATE_DOC) { - _AAR_GENERATE_DOC_VALUE=--generate-doc - _AAR_COPY_DOC_VALUE=\ - && ${cwd:BINDIR} $COPY_CMD build/${REALPRJNAME}-javadoc.tar.gz ${output;suf=-javadoc.tar.gz:REALPRJNAME} -} -otherwise { - _AAR_GENERATE_DOC_VALUE= - _AAR_COPY_DOC_VALUE= -} - -when ($AAR_NO_STRIP) { - _AAR_NO_STRIP_VALUE=--do-not-strip -} -otherwise { - _AAR_NO_STRIP_VALUE= -} - -_AAR_CMDLINE=\ -$FS_TOOLS md $BIN_TMP_DIR \ -&& $FS_TOOLS md $BINDIR/.android \ -&& $COPY_CMD $GRADLE_DEBUG_STORE_RESOURCE_GLOBAL/debug.keystore $BINDIR/.android/debug.keystore \ -&& $YMAKE_PYTHON ${input:"build/scripts/extract_asrc.py"} --output $BIN_TMP_DIR --input ${suf=.asrc:PEERS} \ -&& $YMAKE_PYTHON ${input:_AAR_GRADLE_SCRIPT_GENERATOR_VALUE} \ -${input;hide:EXTRA_INPUTS} \ ---aidl-dirs $_AAR_AIDL_DIRS_VALUE $BIN_TMP_DIR/aidl \ ---assets-dirs $_AAR_ASSETS_DIRS_VALUE $BIN_TMP_DIR/assets \ ---java-dirs $_AAR_JAVA_DIRS_VALUE $BIN_TMP_DIR/src \ ---jni-libs-dirs $_AAR_JNI_LIB_DIRS_VALUE $BIN_TMP_DIR/jni_libs \ ---res-dirs $_AAR_RES_DIRS_VALUE $BIN_TMP_DIR/res \ ---manifest ${input:_AAR_MANIFEST_VALUE} \ ---proguard-rules ${input:_AAR_PROGUARD_RULES_VALUE} ${input:_PROGUARD_RULES_GLOBAL} \ ---aars $_AAR_AARS_VALUE $_AARS_GLOBAL \ ---compile-only-aars $_AAR_COMPILE_ONLY_AARS_VALUE \ ---bundles $_AAR_BUNDLES_VALUE \ ---output-dir $BINDIR \ ---bundle-name $REALPRJNAME \ ---peers $PEERS \ ---maven-repos $_AAR_LOCAL_MAVEN_REPO_VALUE \ -$_AAR_GENERATE_DOC_VALUE \ -$_AAR_NO_STRIP_VALUE \ -&& ${cwd:BINDIR} ${GRADLE_RESOURCE_GLOBAL}/bin/gradle $_GRADLE_FLAGS_VALUE --no-daemon --offline -g $BIN_GRADLE_USER_HOME_DIR bundle${_BUNDLE_BUILD_TYPE}Aar ${env:"ANDROID_HOME=$ANDROID_SDK_RESOURCE_GLOBAL/android_sdk"} ${env:"JAVA_HOME=$JDK_RESOURCE"} ${env:"ANDROID_SDK_HOME=$BINDIR"} $VCS_INFO_DISABLE_CACHE__NO_UID__ \ -&& ${cwd:BINDIR} $COPY_CMD build/outputs/aar/${REALPRJNAME}-${tolower:_BUNDLE_BUILD_TYPE}.aar $TARGET \ -$_AAR_COPY_DOC_VALUE \ -&& ${cwd:BINDIR} $COPY_CMD build/${suf=-pom.xml:REALPRJNAME} ${output;suf=-pom.xml:REALPRJNAME} \ -&& ${cwd:BINDIR} $COPY_CMD build/libs/${suf=-sources.jar:REALPRJNAME} ${output;suf=-sources.jar:REALPRJNAME} - -macro _AAR_CMD_IMPL(EXTRA_INPUTS...) { - .CMD=$_AAR_CMDLINE && $GENERATE_MF -} - -AAR_CMD=$_AAR_CMD_IMPL($_AAR_EXTRA_INPUTS_VALUE) - -### @usage: AAR() # internal -module AAR: _BASE_UNIT { - .CMD=AAR_CMD - .GLOBAL=_AARS _PROGUARD_RULES - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - - SET(MODULE_PREFIX) - SET(MODULE_SUFFIX .aar) - SET(DONT_RESOLVE_INCLUDES yes) - SET(NEED_PLATFORM_PEERDIRS no) - NO_PLATFORM() - - PEERDIR(build/external_resources/android_sdk) - PEERDIR(build/external_resources/gradle) - PEERDIR(build/platform/java/jdk) - PEERDIR($JDK_RESOURCE_PEERDIR) - - SET(BIN_TMP_DIR $BINDIR/tmp) - SET(BIN_GRADLE_USER_HOME_DIR $BINDIR/gradle) -} - -_SECONDARY_OUTPUT_VALUE= - -### @usage: SECONDARY_OUTPUT(filename) # internal -### -### The use of this macro is strictly prohibited!!! -macro SECONDARY_OUTPUT(OUTPUT) { - SET(_SECONDARY_OUTPUT_VALUE $OUTPUT) -} - -_AAR_PROXY_LIBRARY_CMD=$LINK_LIB && $COPY_CMD $_SECONDARY_OUTPUT_VALUE ${input;hide:_SECONDARY_OUTPUT_VALUE} ${output:REALPRJNAME.aar} - -### @usage: AAR_PROXY_LIBRARY() # internal -### -### The use of this module is strictly prohibited!!! -module AAR_PROXY_LIBRARY: _PROXY_LIBRARY { - .ALLOWED=SECONDARY_OUTPUT - .CMD=_AAR_PROXY_LIBRARY_CMD -} diff --git a/build/conf/project_specific/maps/asrc.conf b/build/conf/project_specific/maps/asrc.conf deleted file mode 100644 index cdecd2b1a4..0000000000 --- a/build/conf/project_specific/maps/asrc.conf +++ /dev/null @@ -1,121 +0,0 @@ -_BUNDLE_DELIM_JAVA=__DELIM_JAVA__ -_BUNDLE_DELIM_RES=__DELIM_RES__ -_BUNDLE_DELIM_ASSETS=__DELIM_ASSETS__ -_BUNDLE_DELIM_AIDL=__DELIM_AIDL__ - -_BUNDLE_EXTRA_INPUTS_VALUE= -### @usage: BUNDLE_EXTRA_INPUTS(filenames...) # internal -macro BUNDLE_EXTRA_INPUTS(INPUTS...) { - SET_APPEND(_BUNDLE_EXTRA_INPUTS_VALUE $INPUTS) -} - -_BUNDLE_AIDL_SRCS_VALUE= -### @usage: BUNDLE_AIDL_SRCS(dirname filenames...) # internal -macro BUNDLE_AIDL_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_BUNDLE_AIDL_SRCS_VALUE $_BUNDLE_DELIM_AIDL $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) - BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_BUNDLE_JAVA_SRCS_VALUE= -### @usage: BUNDLE_JAVA_SRCS(dirname filenames...) # internal -macro BUNDLE_JAVA_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_BUNDLE_JAVA_SRCS_VALUE $_BUNDLE_DELIM_JAVA $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) - BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_BUNDLE_RES_SRCS_VALUE= -### @usage: BUNDLE_RES_SRCS(dirname filenames...) # internal -macro BUNDLE_RES_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_BUNDLE_RES_SRCS_VALUE $_BUNDLE_DELIM_RES $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) - BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_BUNDLE_ASSETS_SRCS_VALUE= -### @usage: BUNDLE_ASSETS_SRCS(dirname filenames...) # internal -macro BUNDLE_ASSETS_SRCS(PREFIX, ABSOLUTE[], FILES...) { - SET_APPEND(_BUNDLE_ASSETS_SRCS_VALUE $_BUNDLE_DELIM_ASSETS $PREFIX ${pre=$PREFIX/:FILES} ${ABSOLUTE}) - BUNDLE_EXTRA_INPUTS(${pre=$PREFIX/:FILES} ${ABSOLUTE}) -} - -_BUNDLE_SRCS_VALUE=$_BUNDLE_AIDL_SRCS_VALUE $_BUNDLE_ASSETS_SRCS_VALUE $_BUNDLE_JAVA_SRCS_VALUE $_BUNDLE_RES_SRCS_VALUE - -macro _COMPILE_ASRC_IMPL(EXTRA_INPUTS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output $TARGET ${kv;hide:"p AC"} $kv;hide:"pc light-blue"} ${kv;hide:"show_out"} -} - -_COMPILE_ASRC=$_COMPILE_ASRC_IMPL($_ASRC_EXTRA_INPUTS_VALUE) - -COMPILE_ASRC_MF=$_COMPILE_ASRC && $GENERATE_MF - -### @usage: ASRC_LIBRARY() # internal -module ASRC_LIBRARY: _BASE_UNIT { - .CMD=COMPILE_ASRC_MF - .PEERDIR_POLICY=as_include - .FINAL_TARGET=no - PEERDIR_TAGS=JAVA_PROTO JAVA_IDL - MODULE_TYPE=Library - SET(MODULE_SUFFIX .asrc) - SET(DONT_RESOLVE_INCLUDES yes) - SET(NEED_PLATFORM_PEERDIRS no) - - NO_RUNTIME() -} - -macro _MOBILE_LIBRARY_PREREQUISITES_IMPL(OUTPUT, EXTRA_INPUTS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --input $_BUNDLE_SRCS_VALUE --output $OUTPUT ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} -} - -macro _MOBILE_LIBRARY_PREREQUISITES_CMD(OUTPUT, EXTRA_INPUTS...) { - .CMD=${output;hide:OUTPUT} ${input;hide:EXTRA_INPUTS} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} $_MOBILE_LIBRARY_PREREQUISITES_IMPL($OUTPUT $EXTRA_INPUTS) -} - -when ($OS_ANDROID == "yes") { - LINK_MOBILE_LIB=$LINK_LIB && $_MOBILE_LIBRARY_PREREQUISITES_CMD(${BINDIR}/$MODULE_PREFIX$REALPRJNAME$MODULE_SUFFIX.asrc $_BUNDLE_EXTRA_INPUTS_VALUE) -} -otherwise { - LINK_MOBILE_LIB=$LINK_LIB -} - -### @usage: MOBILE_LIBRARY() # internal -module MOBILE_LIBRARY: LIBRARY { - .CMD=LINK_MOBILE_LIB - DISABLE(NEED_ADD_FAKE_SRC) -} - -_JSRC_PROXY_MOBILE_LIBRARY_CMDLINE=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --jsrcs ${ext=.jsrc;tags_in=local:PEERS} --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.asrc:REALPRJNAME} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} - -macro _JSRC_PROXY_MOBILE_LIBRARY_CMD_IMPL(EXTRA_INPUTS...) { - .CMD=$_JSRC_PROXY_MOBILE_LIBRARY_CMDLINE -} - -JSRC_PROXY_MOBILE_LIBRARY_CMD=$LINK_LIB && $_JSRC_PROXY_MOBILE_LIBRARY_CMD_IMPL($_BUNDLE_EXTRA_INPUTS_VALUE) - -### @usage: JSRC_PROXY_MOBILE_LIBRARY() # internal -module JSRC_PROXY_MOBILE_LIBRARY: MOBILE_LIBRARY { - .CMD=JSRC_PROXY_MOBILE_LIBRARY_CMD - .PEERDIR_POLICY=as_build_from - .PROXY=yes - - SET(MODULE_TYPE LIBRARY) - DISABLE(NEED_ADD_FAKE_SRC) - - PEERDIR_TAGS=JAVA_PROTO JAVA_IDL - - SET(BIN_TMP_DIR ${BINDIR}/tmp) - - NO_UTIL() -} - -_MOBILE_DLL_PREREQUISITES_CMDLINE=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/link_asrc.py"} --work $BINDIR --asrcs ${PEERS.arcs} --input $_BUNDLE_SRCS_VALUE ${input;hide:EXTRA_INPUTS} --output ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.asrc:REALPRJNAME} ${kv;hide:"p AC"} ${kv;hide:"pc lite-blue"} ${kv;hide:"show_out"} - -macro _MOBILE_DLL_PREREQUISITES_CMD(EXTRA_INPUTS...) { - .CMD=$_MOBILE_DLL_PREREQUISITES_CMDLINE -} - -when ($OS_ANDROID == "yes") { - LINK_MOBILE_DLL=$LINK_DYN_LIB && $_MOBILE_DLL_PREREQUISITES_CMD($_BUNDLE_EXTRA_INPUTS_VALUE) -} -otherwise { - LINK_MOBILE_DLL=$LINK_DYN_LIB -} - diff --git a/build/conf/project_specific/maps/mapkit.conf b/build/conf/project_specific/maps/mapkit.conf deleted file mode 100644 index c5d2882937..0000000000 --- a/build/conf/project_specific/maps/mapkit.conf +++ /dev/null @@ -1,362 +0,0 @@ -MAPKIT_IDL_INCLUDES= -macro MAPKIT_ADDINCL(Dirs...) { - ADDINCL(${pre=FOR idl :Dirs}) - SET_APPEND(MAPKIT_IDL_INCLUDES $Dirs) -} - -### @usage: MAPS_IDL_ADDINCL(dirnames...) # internal -### -### Warpper for MAPKIT_ADDINCL macro which is used for mobile mapkit build -macro MAPS_IDL_ADDINCL(Dirs...) { - MAPKIT_ADDINCL($Dirs) -} - -### @usage: _MAPKITIDL_PROXY(args...) # internal -### -### Proxy macro for MAPKITIDL which adds PEERDIR to YMAKE resources -macro _MAPKITIDL_PROXY(Args...) { - _PROCESS_MAPS_MOBILE_IDL($Args) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_TEXT_DEPS ${ext=idl:Args}) -} - -MAPS_IDL_FILTER= - -### @usage: MAPS_IDL_SRCS(filenames...) # internal -### -### Warpper for MAPKITIDL macro which is used for mobile mapkit build -macro MAPS_IDL_SRCS(Srcs...) { - _MAPKITIDL_PROXY($Srcs ${MAPS_IDL_FILTER}) -} - -### @usage: MAPS_IDL_GLOBAL_SRCS(filenames...) # internal -### -### Warpper for MAPKITIDL macro which is used for mobile mapkit build -macro MAPS_IDL_GLOBAL_SRCS(Srcs...) { - _MAPKITIDL_PROXY(GLOBAL_OUTPUTS $Srcs ${MAPS_IDL_FILTER}) -} - -### @usage: MAPSMOBI_SRCS(filenames...) # internal -### -### Make all source files listed as GLOBAL or not (depending on the value of -### MAPSMOBI_USE_SRCS_GLOBAL). Be careful since the value of -### MAPSMOBI_USE_SRCS_GLOBAL matters! If the value of this variable is equal to -### GLOBAL then call to MAPSMOBI_SRCS() macro behaves like call to -### GLOBAL_SRCS() macro otherwise the value of MAPSMOBI_USE_SRCS_GLOBAL is -### treated as a file name and a call to MAPSMOBI_SRCS() macro behaves like a -### call to SRCS() macro with additional argument which is the value of -### MAPSMOBI_USE_SRCS_GLOBAL variable -macro MAPSMOBI_SRCS(FILES...) { - ALL_SRCS(${MAPSMOBI_USE_SRCS_GLOBAL} $FILES) -} - -### @usage: EXPORT_MAPKIT_PROTO() # internal deprecated -### -### This macro is a temporary one and should be changed to EXPORT_YMAPS_PROTO -### when transition of mapsmobi to arcadia is finished -macro EXPORT_MAPKIT_PROTO() { - PROTO_NAMESPACE(GLOBAL maps/mapsmobi/external/proto) -} - -BEFORE_PEERS= -AFTER_PEERS= -when ($MAPKIT_WHOLE_ARCHIVE == "yes") { - when($OS_LINUX) { - BEFORE_PEERS += $START_WHOLE_ARCHIVE_VALUE - AFTER_PEERS += $END_WHOLE_ARCHIVE_VALUE - } - elsewhen($OS_DARWIN) { - LDFLAGS+=-Wl,-all_load - } -} - -### @usage: MAPKIT_ENABLE_WHOLE_ARCHIVE() # internal deprecated -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPKIT_ENABLE_WHOLE_ARCHIVE() { - ENABLE(MAPKIT_WHOLE_ARCHIVE) -} - -### @usage: USE_IDL_CPP() -### -### This macro forces to use H_CPP_IDL (implementation library) variant of -### MAPS_IDL_LIBRARY multimodule instead of H_IDL (header only library) variant -### which is used by default -macro USE_IDL_CPP() { - SET(PEERDIR_TAGS __EMPTY__ CPP_PROTO H_CPP_IDL) -} - - -_LINK_JSRC=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/link_jsrc.py"} --input $AUTO_INPUT --output $TARGET ${kv;hide:"p JL"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} -_LINK_JSRC_MF=$_LINK_JSRC && $GENERATE_MF - -### @usage: MAPS_IDL_JSRC_LIBRARY -### -### Create .jsrc output - archive of megred .jsrc inputs -module MAPS_IDL_JSRC_LIBRARY: JSRC_LIBRARY { - .CMD=_LINK_JSRC_MF - .EXTS=.jsrc -} - -### _MAPS_IDL_LIBRARY_EPILOGUE() #internal -### -### This macro executes macros which should be invoked after all user specified macros in the ya.make file -macro _MAPS_IDL_LIBRARY_EPILOGUE() { - _GLOB(MAPKIT_IDL_FRAMEWORK_FILES ${ARCADIA_ROOT}/${MAPKIT_IDL_FRAMEWORK}/*.framework) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS $MAPKIT_IDL_FRAMEWORK_FILES) -} - -### @usage: MAPS_IDL_LIBRARY() -### -### Definition of multimodule that builds various variants of libraries. -### The particular variant is selected based on where PEERDIR to IDL_LIBRARY comes from. -### Now supported 2 variants: C++, Java -### Java version is not really a library but an archive of generated Java sources -multimodule MAPS_IDL_LIBRARY { - module H_IDL: LIBRARY { - .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_GLOBAL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS - .EPILOGUE=_MAPS_IDL_LIBRARY_EPILOGUE - - ENABLE(H_IDL) - ENABLE(CPP_IDL) - SET(PEERDIR_TAGS H_IDL CPP_PROTO __EMPTY__) - SET(MAPS_IDL_FILTER FILTER .h) - - NO_UTIL() - - PROTO_ADDINCL(${MAPKIT_PROTO_ROOT}) - } - - module H_CPP_IDL: LIBRARY { - .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_GLOBAL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS - .DEFAULT_NAME_GENERATOR=DirName - .PEERDIRSELF=H_IDL - .EPILOGUE=_MAPS_IDL_LIBRARY_EPILOGUE - - ENABLE(H_CPP_IDL) - ENABLE(CPP_IDL) - SET(PEERDIR_TAGS H_IDL CPP_PROTO __EMPTY__) - SET(MAPS_IDL_FILTER FILTER .cpp .m .mm) - DISABLE(START_TARGET) - - NO_UTIL() - } - - module JAVA_IDL: MAPS_IDL_JSRC_LIBRARY { - .ALIASES=SRCS=MAPS_IDL_SRCS GLOBAL_SRCS=MAPS_IDL_SRCS ADDINCL=MAPKIT_ADDINCL MAPSMOBI_SRCS=MAPS_IDL_SRCS - .IGNORED=CPP_ADDINCL - .EPILOGUE=_MAPS_IDL_LIBRARY_EPILOGUE - SET(PEERDIR_TAGS JAVA_IDL JAVA_PROTO) - SET(MAPS_IDL_FILTER FILTER .java) - ENABLE(JAVA_IDL) - - PROTO_ADDINCL(${MAPKIT_PROTO_ROOT}) - } -} - -_IDL_TOOL_EXTRA_ARGS= -when ($MAPS_MOBILE_USE_STD_VARIANT == "yes") { - _IDL_TOOL_EXTRA_ARGS+=--use-std-variant -} -when ($MAPS_MOBILE_PUBLIC_API == "yes") { - _IDL_TOOL_EXTRA_ARGS+=--public -} -when ($MAPS_MOBILE_EXPLICIT_SERIALIZATION_ONLY == "yes") { - _IDL_TOOL_EXTRA_ARGS+=--explicit-serialization-only -} - -_IDL_TOOL_CMDLINE=$GENERATE_MF && ${cwd:ARCADIA_ROOT} ${tool:"tools/idl/bin"} --in-proto-root maps/doc/proto --base-proto-package yandex.maps.proto ${pre=--out-base-root :OUT_BASE_ROOT} ${pre=--out-android-root :OUT_ANDROID_ROOT} ${pre=--out-ios-root :OUT_IOS_ROOT} ${pre=-F :FRAMEWORK_DIRS} ${pre=-I :INCLUDES} ${_IDL_TOOL_EXTRA_ARGS} ${hide;input:IN} ${hide;output:OUT} ${hide;output;noauto:OUT_NOAUTO} ${hide;output_include:OUTPUT_INCLUDES} ${IDLS} ${kv;hide:"p ID"} ${kv;hide:"pc white"} ${hide:MAPSMOBI_FAKEID} ${hide;suf=filter_in;join=|:FILTER_IN} ${hide;suf=filter_out;join=|:FILTER_OUT} ${kv;hide:"show_out"} - -### @usage: _RUN_IDL_TOOL(...) # internal -### -### Run idl tool within non-JAVA_IDL submodule. This macro is called from _PROCESS_MAPS_MOBILE_IDL macro. -macro _RUN_IDL_TOOL(OUT_BASE_ROOT="", OUT_ANDROID_ROOT="", OUT_IOS_ROOT="", IN[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INCLUDES[], FRAMEWORK_DIRS[], IDLS[], FILTER_IN[], FILTER_OUT[]) { - .CMD=$_IDL_TOOL_CMDLINE -} - -### @usage: _RUN_IDL_TOOL(...) # internal -### -### Run idl tool within JAVA_IDL submodule. This macro is called from _PROCESS_MAPS_MOBILE_IDL macro. -macro _RUN_IDL_TOOL_JAVA(OUT_BASE_ROOT="", OUT_ANDROID_ROOT="", OUT_IOS_ROOT="", IN[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INCLUDES[], FRAMEWORK_DIRS[], IDLS[], FILTER_IN[], FILTER_OUT[]) { - .CMD=$_IDL_TOOL_CMDLINE && $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --output ${output;suf=$_HASH_HELPER($IDLS).jsrc:"_"} --input $OUT_ANDROID_ROOT --exts .java -} - -### @usage: MAPSMOBI_COLLECT_ASSETS_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_ASSETS_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_AIDL_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_AIDL_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.aidl) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_JAVA_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_JAVA_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.java) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_JNI_LIBS_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_JNI_LIBS_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.so) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_RES_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_RES_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.(xml|png)) - RESTRICT_PATH(maps/mobile maps/automotive MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPSMOBI_COLLECT_TPL_FILES(varname [dir]) # internal -### -### This macro is strictly prohibited to use outside of mapsmobi project -macro MAPSMOBI_COLLECT_TPL_FILES(VAR, DIR="") { - _GLOB($VAR ${suf=/:DIR}**/*.tpl) - RESTRICT_PATH(tools/idl MSG This macro is for use in mapsmobi projects) -} - -### @usage: MAPS_GARDEN_COLLECT_MODULE_TRAITS(varnamei dir) # internal -### -### This macro is strictly prohibited to use outside of maps/garden project -macro MAPS_GARDEN_COLLECT_MODULE_TRAITS(VAR, DIR) { - _GLOB($VAR $DIR/*/module_traits.json) - RESTRICT_PATH(maps/garden/sdk/module_traits/tests/module_traits_bundle MSG This macro is for use in maps/garden project) -} - -# mapsmobi build configuration - -MAPSMOBI_FAKEID=${FAKEID}_r9927169 -MAPSMOBI_BUILD= -YANDEX_EXPORT= -YRT_EXPORT= -MAPSMOBI_CPP_PROTO_PLUGINS= -STATIC_STL= -EXPORT_ALL_SYMBOLS= -when ($MAPSMOBI_BUILD_HOST || $MAPSMOBI_BUILD_TARGET) { - MAPSMOBI_BUILD=yes -} -when ($MAPSMOBI_BUILD) { - CFLAGS+=-DMOBILE_BUILD ${hide:MAPSMOBI_FAKEID} - MAPKIT_BASE_PROTO_PACKAGE=yandex.maps.proto - MAPKIT_PROTO_ROOT=maps/doc/proto - MAPKIT_IDL_FRAMEWORK=maps/mobile/libs/idl_frameworks -} -when ($MAPSMOBI_BUILD_TARGET) { - ALLOCATOR=FAKE - USE_VANILLA_PROTOC=yes - PROTOBUF_LITE=yes - CPP_PROTO_PLUGINS=lite${pre=,:MAPSMOBI_CPP_PROTO_PLUGINS}: - when ($OPENSOURCE != "yes") { - SYSINCL+=build/yandex_specific/sysincl/mapsmobi.yml - } - - CFLAGS+=-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DBOOST_CB_DISABLE_DEBUG -DBOOST_COROUTINES_NO_DEPRECATION_WARNING -DYANDEX_EXPORT=${YANDEX_EXPORT} -DYRT_EXPORT=${YRT_EXPORT} -} -when ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { - JDK_REAL_VERSION=11 - MAPSMOBI_CPP_PROTO_PLUGINS="dllexport_decl=YANDEX_EXPORT" - YANDEX_EXPORT=__attribute__((visibility(\"default\"))) - CFLAGS+=-fvisibility=hidden - - when ($MAPS_MOBILE_EXPORT_CPP_API) { - LDFLAGS+=-lc++_shared - CFLAGS+=-DZLIB_DLL - CFLAGS+=-DPROTOBUF_USE_DLLS -DLIBPROTOBUF_EXPORTS - CFLAGS+=-DPNG_IMPEXP=${YANDEX_EXPORT} - CFLAGS+=-DBOOST_ALL_DYN_LINK - CFLAGS+=-DBOOST_SYMBOL_EXPORT=${YANDEX_EXPORT} - DYNAMIC_BOOST=yes - } - otherwise { - STATIC_STL=yes - YANDEX_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= - LDFLAGS+=-lc++_static -Wl,--exclude-libs,ALL -static-libstdc++ - USE_GLOBAL_CMD=no - } - - when ($EXPORT_ALL_SYMBOLS) { - CFLAGS+=-fvisibility=default - } - - when ($NO_DEBUGINFO != "yes" && $REDUCED_DEBUGINFO) { - CFLAGS+=-g1 - } - - CFLAGS+=-DANDROID -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -Wa,--noexecstack - CFLAGS+=-Qunused-arguments -Wno-unused-function -Wno-pessimizing-move -Wno-missing-field-initializers -Wno-missing-braces -Wno-unused-parameter -Wno-vexing-parse -Wno-sign-compare -Wno-deprecated-declarations - - LDFLAGS+=-lc -lm -llog -Bsymbolic -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--no-undefined - - when ($BT_RELEASE || $BT_RELWITHDEBINFO) { - CFLAGS+=-fomit-frame-pointer -fvisibility-inlines-hidden -ffunction-sections -fdata-sections - LDFLAGS+=-Wl,--gc-sections -Wl,--build-id - } - - when ($ARCH_ARM7) { - CFLAGS+=-mfloat-abi=softfp - #Android clang overaligns some float types which causes NEON programs to fail on old Android versions. So we disable NEON. - #See https://github.com/android/ndk/issues/640 for more information - CFLAGS+=-mfpu=vfpv3-d16 - } - elsewhen ($ARCH_ARM64) { - } - elsewhen ($ARCH_I386) { - CFLAGS+=-fstrict-aliasing -mstackrealign -DBOOST_CONTEXT_TLS_STACK_PROTECTOR - } - elsewhen ($ARCH_X86_64) { - CFLAGS+=-fstrict-aliasing -mstackrealign -march=x86-64 -msse4.2 -mpopcnt -m64 -DBOOST_CONTEXT_TLS_STACK_PROTECTOR - } - otherwise { - PEERDIR+=__unsupported_architecture_for_android__ - } -} -when ($MAPSMOBI_BUILD_TARGET && $OS_DARWIN) { - QT_REQUIRED=yes - LDFLAGS+=-lc++ - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} -when ($MAPSMOBI_BUILD_TARGET && $OS_IOS) { - CFLAGS+=-DIOS -stdlib=libc++ -fvisibility=hidden - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= - when ($MAPS_MOBILE_EXPORT_OBJC_API) { - YRT_EXPORT=__attribute__((visibility(\"default\"))) - } - when(!$MAPS_MOBILE_PUBLIC_API || $OS_IOSSIM) { - CFLAGS+=-DBUILDING_WITH_VULKAN_IOS - BUILDING_WITH_VULKAN_IOS=yes - } -} -when ($MAPSMOBI_BUILD_TARGET && $OS_LINUX) { - when ($NO_GRAPHICS != "yes") { - QT_REQUIRED=yes - OPENGL_REQUIRED=yes - } - OS_SDK=ubuntu-16 - PIC=yes - LDFLAGS+=-lstdc++ -lgcc_s - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} -when ($MAPSMOBI_BUILD_TARGET && $OS_YOCTO) { - QT_REQUIRED=yes - PIC=yes - CFLAGS+=-DBOOST_SYMBOL_EXPORT= - CFLAGS+=-DBOOST_SYMBOL_VISIBLE= -} diff --git a/build/conf/project_specific/maps/sproto.conf b/build/conf/project_specific/maps/sproto.conf deleted file mode 100644 index 1a62563fc1..0000000000 --- a/build/conf/project_specific/maps/sproto.conf +++ /dev/null @@ -1,21 +0,0 @@ -### @usage: EXPORT_YMAPS_PROTO() # maps-specific -### -### Maps-specific .proto handling: IMPORT_YMAPS_PROTO() + maps protobuf namespace. -macro EXPORT_YMAPS_PROTO() { - PROTO_NAMESPACE(GLOBAL maps/doc/proto) -} - -macro _YMAPS_GENERATE_SPROTO_HEADER(File) { - .CMD=${cwd;rootdir;input:File} ${tool:"maps/libs/sproto/sprotoc"} -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --sproto_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE ${input;rootrel:File} ${output;hide;norel;nopath;noext:File.sproto.h} ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .PEERDIR=maps/libs/sproto -} - -### @usage: YMAPS_SPROTO(ProtoFiles...) # maps-specific -### -### Maps-specific .proto handling: generate .sproto.h files using maps/libs/sproto/sprotoc. -macro YMAPS_SPROTO(FILES...) { - SET(PROTO_HEADER_EXTS .pb.h .sproto.h) - foreach (FILE : $FILES) { - [.proto]=$_YMAPS_GENERATE_SPROTO_HEADER($FILE) - } -} diff --git a/build/conf/project_specific/other.conf b/build/conf/project_specific/other.conf deleted file mode 100644 index 602ed5cfa3..0000000000 --- a/build/conf/project_specific/other.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Catboost -BUILD_CATBOOST_SCRIPT=build/scripts/build_catboost.py -### @usage: BUILD_CATBOOST(cbmodel cbname) -### -### Generate catboost model and access code. -### cbmodel - CatBoost model file name (*.cmb). -### cbname - name for a variable (of NCatboostCalcer::TCatboostCalcer type) to be available in CPP code. -### CatBoost specific macro. -macro BUILD_CATBOOST(CbModel, CbName) { - .CMD=$YMAKE_PYTHON ${input:BUILD_CATBOOST_SCRIPT} build_cb_f $ARCADIA_ROOT $ARCH_TOOL ${input:CbModel} $CbName ${output;chksum;pre=cb.:CbName.cpp} ${output;hide;pre=CB_External_;suf=.rodata:CbName} ${output_include;hide:"kernel/catboost/catboost_calcer.h"} ${kv;hide:"p CB"} ${kv;hide:"pc yellow"} -} diff --git a/build/conf/project_specific/uservices.conf b/build/conf/project_specific/uservices.conf deleted file mode 100644 index f64a1973ce..0000000000 --- a/build/conf/project_specific/uservices.conf +++ /dev/null @@ -1,12 +0,0 @@ -macro _MOVE(Src, OUT="", OUT_NOAUTO="", CPP_DEPS[], OUTPUT_INCLUDES[]) { - .CMD=$MOVE_FILE ${input:Src} ${output;norel:OUT} ${output;noauto;norel:OUT_NOAUTO} ${induced_deps=h+cpp;hide:CPP_DEPS} ${output_includes;hide:OUTPUT_INCLUDES} ${kv;hide:"p MV"} ${kv;hide:"pc light-cyan"} -} - -macro USRV_BUILD(FROM="Please specify generated .tar-file as FROM", DEPS_FILE="NO_DEPS", OUT_NOAUTO[], Files...) { - .CMD=${tool:"taxi/uservices/arc-gen/unpack-tar"} --source ${input:FROM} --target ${BINDIR} --suffix .usrv ${Files} ${OUT_NOAUTO} ${output;noauto;hide;suf=.usrv:OUT_NOAUTO} ${output;noauto;hide;suf=.usrv:Files} ${kv;hide:"p USB"} ${kv;hide:"pc light-cyan"} - _PROCESS_USRV_FILES(${DEPS_FILE} ${Files} OUT_NOAUTO ${OUT_NOAUTO}) -} - -macro _PROCESS_USRV_FILES(DepsFile, Files...) { - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${DepsFile}) -} diff --git a/build/conf/project_specific/yql_udf.conf b/build/conf/project_specific/yql_udf.conf deleted file mode 100644 index 91ca0a3362..0000000000 --- a/build/conf/project_specific/yql_udf.conf +++ /dev/null @@ -1,247 +0,0 @@ -when ($SANITIZER_TYPE || $USE_ARCADIA_PYTHON == "no" || $UDF_NO_PROBE == "yes" || $MUSL == "yes" || $TIDY == "yes") { - YQL_UDF_LINK_CMD=$LINK_DYN_LIB - YQL_UDF_LINK_PRG_CMD=$LINK_EXEC_DYN_LIB -} -otherwise { - YQL_UDF_LINK_CMD=$LINK_DYN_LIB && ${tool:"yql/tools/udf_probe"} $TARGET ${kv;hide:"p UD"} - YQL_UDF_LINK_PRG_CMD=$LINK_EXEC_DYN_LIB && ${tool:"yql/tools/udf_probe"} $TARGET ${kv;hide:"p UD"} -} - -### @usage: UDF_BASE(name [EXPORTS symlist_file] [PREFIX prefix]) #internal -### -### The base logic of all UDF extension modules (User-Defined Functions). -### Processing EXPORTS and PREFIX is the same as for DLL. -### -### https://wiki.yandex-team.ru/robot/manual/kiwi/userguide/#polzovatelskiefunkciiudftriggerykwcalc -module UDF_BASE: DLL_UNIT { - when ($MSVC != "yes" && $DARWIN != "yes") { - LDFLAGS+= -Wl,-Bsymbolic - } -} - -UDF_NO_PROBE="no" -### @usage: UDF_NO_PROBE() -### -### Disable UDF import check at build stage -macro UDF_NO_PROBE() { - ENABLE(UDF_NO_PROBE) -} - -### @usage: YQL_UDF_TEST([name]) -### -### The module to test YQL C++ UDF. -### -### Documentation: https://yql.yandex-team.ru/docs/yt/libraries/testing/ -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -module YQL_UDF_TEST: PY3TEST_BIN { - PEERDIR(yql/library/udf_test) - PEERDIR(yt/python/client_lite) - - DEPENDS(yql/tools/astdiff) - DEPENDS(yql/tools/udf_resolver) - DEPENDS(yql/tools/yqlrun) - DATA(arcadia/ydb/library/yql/mount) - DATA(arcadia/yql/cfg/tests) -} - -### @usage: _ADD_YQL_UDF_DEPS() -### -### Add all needed PEERDIRs to a YQL_UDF. -### -### https://yql.yandex-team.ru/docs/yt/udf/cpp/ -macro _ADD_YQL_UDF_DEPS() { - PEERDIR(ydb/library/yql/public/udf) - PEERDIR(ydb/library/yql/public/udf/support) -} - -### @usage: _MAKE_YQL_UDF() -### -### Make module definition an YQL UDF: add all needed dependencies, properties and flags -### -### https://yql.yandex-team.ru/docs/yt/udf/cpp/ -macro _MAKE_YQL_UDF() { - _ADD_YQL_UDF_DEPS() - SET_APPEND(USER_CXXFLAGS -DBUILD_UDF) - # For Windows using declspecs - DEFAULT(YQL_UDF_EXPORT ${ARCADIA_ROOT}/ydb/library/yql/public/udf/udfs_exports.exports) - - when ($WINDOWS == "yes") { - YQL_UDF_EXPORT= - } - - SET(EXPORTS_FILE $YQL_UDF_EXPORT) -} - -### @usage: YQL_UDF_MODULE(name) -### -### The extension module for YQL with C++ UDF (User Defined Function YQL) -### -### https://yql.yandex-team.ru/docs/yt/udf/cpp/ -module YQL_UDF_MODULE: UDF_BASE { - .CMD=YQL_UDF_LINK_CMD - _MAKE_YQL_UDF() - PROVIDES(YqlServicePolicy) -} - -module _YQL_UDF_PROGRAM_BASE: SO_PROGRAM { - .CMD=YQL_UDF_LINK_PRG_CMD - _MAKE_YQL_UDF() -} - -UDF_SHARED_SEM=IGNORED - -### @usage: YQL_UDF(name) -### -### User-defined function for YQL -### -### Multimodule which is YQL_UDF_MODULE when built directly or referred by BUNDLE and DEPENDS macros. -### If used by PEERDIRs it is usual static LIBRARY with default YQL dependencies, allowing code reuse between UDFs. -### -### @see: [YQL_UDF_MODULE()](#module_YQL_UDF_MODULE) -multimodule YQL_UDF { - module YQL_UDF_SHARED: YQL_UDF_MODULE { - .SEM=UDF_SHARED_SEM - NO_CLANG_TIDY() - } - module YQL_UDF_STATIC: _DLL_COMPATIBLE_LIBRARY { - .ALIASES=SRCS=GLOBAL_SRCS - .SEM=CPP_LIBRARY_SEM - .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM - OBJ_SUF=.udfs - _ADD_YQL_UDF_DEPS() - # disable credits generation for static library - SET(CREDITS_FLAGS) - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.static.lib - } - } -} - -### @usage: YQL_ABI_VERSION(major minor release)) -### -### Specifying the supported ABI for YQL_UDF. -### -### @see: [YQL_UDF()](#multimodule_YQL_UDF) -macro YQL_ABI_VERSION(Major, Minor, Patch) { - YQL_ABI_FLAGS=-DUDF_ABI_VERSION_MAJOR=$Major -DUDF_ABI_VERSION_MINOR=$Minor -DUDF_ABI_VERSION_PATCH=$Patch - SET_APPEND(USER_CXXFLAGS $YQL_ABI_FLAGS) -} - -### @usage: YQL_LAST_ABI_VERSION() -### -### Use the last ABI for YQL_UDF -### -macro YQL_LAST_ABI_VERSION() { - YQL_ABI_FLAGS=-DUSE_CURRENT_UDF_ABI_VERSION - SET_APPEND(USER_CXXFLAGS $YQL_ABI_FLAGS) -} - -### @usage: YQL_PYTHON_UDF(name) -### -### Definition of the extension module for YQL with Python 2.x UDF (User Defined Function for YQL). -### Unlike YQL_UDF this is plain DLL module, so PEERDIRs to it are not allowed. -### -### https://yql.yandex-team.ru/docs/yt/udf/python/ -module YQL_PYTHON_UDF: YQL_UDF_MODULE { - .IGNORED=USE_PYTHON2 - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL - - USE_PYTHON2() - _ARCADIA_PYTHON_ADDINCL() - PEERDIR(build/platform/python/ldflags) - PEERDIR(library/python/type_info) - - DEFAULT(YQL_PYTHON_UDF_EXPORT ${ARCADIA_ROOT}/yql/udfs/common/python/python_udf/python_udfs_exports.exports) - - when ($WINDOWS == "yes") { - YQL_PYTHON_UDF_EXPORT= - } - - ### FIXME: XXX the statement below uncoditionally set EXPORTS_FILE (due to incorrect behaviour of old ConfReader - ###when ($USE_ARCADIA_PYTHON == "yes") SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) - SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) -} - -### @usage: YQL_PYTHON_UDF_PROGRAM(name) -### -### Definition of the extension module for YQL with Python 2.x UDF (User Defined Function for YQL). -### Unlike YQL_UDF this is plain DLL module, so PEERDIRs to it are not allowed. -### -### https://yql.yandex-team.ru/docs/yt/udf/python/ -module YQL_PYTHON_UDF_PROGRAM: _YQL_UDF_PROGRAM_BASE { - .IGNORED=USE_PYTHON2 - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL - USE_PYTHON2() - _ARCADIA_PYTHON_ADDINCL() - PEERDIR(build/platform/python/ldflags) - PEERDIR(library/python/type_info) - - DEFAULT(YQL_PYTHON_UDF_EXPORT ${ARCADIA_ROOT}/yql/udfs/common/python/python_udf/python_udfs_exports.exports) - - when ($WINDOWS == "yes") { - YQL_PYTHON_UDF_EXPORT= - } - - ### FIXME: XXX the statement below uncoditionally set EXPORTS_FILE (due to incorrect behaviour of old ConfReader - ###when ($USE_ARCADIA_PYTHON == "yes") SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) - SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) -} - -### @usage: YQL_PYTHON3_UDF(name) -### -### The extension module for YQL with Python 3.x UDF (User Defined Function for YQL). -### Unlike YQL_UDF this is plain DLL module, so PEERDIRs to it are not allowed. -### -### Documentation: https://yql.yandex-team.ru/docs/yt/udf/python/ -module YQL_PYTHON3_UDF: YQL_UDF_MODULE { - .RESTRICTED=PYTHON2_ADDINCL PYTHON3_ADDINCL USE_PYTHON2 USE_PYTHON3 - _ARCADIA_PYTHON3_ADDINCL() - PEERDIR(build/platform/python/ldflags) - PEERDIR(library/python/type_info) - - DEFAULT(YQL_PYTHON_UDF_EXPORT ${ARCADIA_ROOT}/yql/udfs/common/python/python_udf/python_udfs_exports.exports) - - when ($WINDOWS == "yes") { - YQL_PYTHON_UDF_EXPORT= - } - - ### FIXME: XXX the statement below uncoditionally set EXPORTS_FILE (due to incorrect behaviour of old ConfReader - ###when ($USE_ARCADIA_PYTHON == "yes") SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) - SET(EXPORTS_FILE $YQL_PYTHON_UDF_EXPORT) -} - -macro _MAKE_YQL_PYTHON_UDF_TEST() { - PEERDIR(library/python/pytest) - DEPENDS(yql/tools/run_python_udf) - SETUP_PYTEST_BIN(RUNNER_BIN $(BUILD_ROOT)/yql/tools/run_python_udf/run_python_udf) -} - -### @usage: YQL_PYTHON_UDF_TEST(name) -### -### The Python test for Python YQL UDF (Python User Defined Function for YQL). The code should be a proper YQL_PYTHON_UDF. -### -### This module will basically build itself as UDF and run as test using yql/tools/run_python_udf/run_python_udf tool. -### -### Documentation: https://yql.yandex-team.ru/docs/yt/udf/python/ -### -### @example: https://a.yandex-team.ru/arc/trunk/arcadia/yql/udfs/test/simple/ya.make -### -### @see: [YQL_PYTHON_UDF()](#module_YQL_PYTHON_UDF) -module YQL_PYTHON_UDF_TEST: YQL_PYTHON_UDF { - _MAKE_YQL_PYTHON_UDF_TEST() - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -### @usage: YQL_PYTHON3_UDF_TEST(name) -### -### The Python test for Python 3.x YQL UDF (User Defined Function for YQL). The code should be a proper YQL_PYTHON3_UDF. -### -### This module will basically build itself as UDF and run as test using yql/tools/run_python_udf/run_python_udf tool. -### -### Documentation: https://yql.yandex-team.ru/docs/yt/udf/python/ -### -### @see: [YQL_PYTHON3_UDF()](#module_YQL_PYTHON3_UDF) -module YQL_PYTHON3_UDF_TEST: YQL_PYTHON3_UDF { - _MAKE_YQL_PYTHON_UDF_TEST() - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} diff --git a/build/conf/project_specific/yt.conf b/build/conf/project_specific/yt.conf deleted file mode 100644 index 5bd292108f..0000000000 --- a/build/conf/project_specific/yt.conf +++ /dev/null @@ -1,5 +0,0 @@ -macro GENERATE_YT_RECORD(Yaml, OUTPUT_INCLUDES[]) { - .CMD=${tool:"yt/yt/tools/record_codegen"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${output;hide;norel;noext;suf=.record.h:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;hide:"yt/yt/client/table_client/record_codegen_deps.h"} ${kv;hide:"p RC"} - .SEM=find_package Python3 && add_custom_command OUTPUT ${output;norel;noext;suf=.record.cpp:Yaml} ${output;norel;noext;suf=.record.h:Yaml} DEPENDS ${input:Yaml} ${input:"yt/yt/tools/record_codegen/__main__.py"} COMMAND Python3::Interpreter ${input:"yt/yt/tools/record_codegen/__main__.py"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output;hide;norel;noext;suf=.record.h:Yaml} - PEERDIR(yt/yt/client) -} diff --git a/build/conf/rules.conf b/build/conf/rules.conf deleted file mode 100644 index 8fd7167ece..0000000000 --- a/build/conf/rules.conf +++ /dev/null @@ -1,75 +0,0 @@ -when ($OPENSOURCE == "yes") { - PEERDIRS_RULES_PATH= -} -otherwise { - PEERDIRS_RULES_PATH=\ - build/rules/junk.policy \ - build/rules/go/contrib.policy \ - build/rules/go/vendor.policy \ - build/rules/base_layers.policy \ - build/rules/contrib_deprecated.policy \ - build/rules/contrib_java.policy \ - build/rules/contrib_python.policy \ - build/rules/contrib_restricted.policy \ - build/rules/contrib_deps.policy \ - build/rules/library_deps.policy \ - build/rules/library_deprecated.policy \ - build/rules/passport.policy \ - build/rules/yt.policy \ - build/rules/catboost.policy \ - build/rules/maps/maps.policy \ - build/rules/taxi.policy \ - build/rules/yp.policy \ - build/rules/alice.policy \ - build/rules/kikimr.policy \ - build/rules/market.policy \ - build/rules/yadi.policy -} - -CHECK_INTERNAL=yes -INTERNAL_EXCEPTIONS=\ - contrib \ - search/begemot/rules/internal \ - mssngr/router/lib/protos/internal \ - mssngr/router/lib/registry/method/internal \ - cv/imageproc/ocr/api/mobile_c/internal \ - kernel/ugc/security/lib/internal \ - maps/mobile/libs/mapkit/internal - -_BLACKLISTS= -when ($DISABLE_BLACKLIST == "yes" || $OPENSOURCE == "yes") { - _BLACKLISTS= -} -elsewhen ($CUSTOM_BLACKLIST != "") { - _BLACKLISTS=$CUSTOM_BLACKLIST -} -elsewhen ($AUTOCHECK == "yes" || $TEST_BLACKLIST_AUTOCHECK == "yes") { - _BLACKLISTS+=build/rules/autocheck.blacklist -} -otherwise { - _BLACKLISTS+=build/rules/local.blacklist -} - -_ISOLATED_PROJECTS= -when ($DISABLE_ISOLATED_PROJECTS == "yes" || $OPENSOURCE == "yes") { - _ISOLATED_PROJECTS= -} -elsewhen ($CUSTOM_ISOLATED_PROJECTS != "") { - _ISOLATED_PROJECTS=$CUSTOM_ISOLATED_PROJECTS -} -elsewhen ($AUTOCHECK == "yes" || $TEST_ISOLATED_PROJECTS_AUTOCHECK == "yes") { -## The block below is parsed by CI machinery to limit CI checks -## Please contact CI on any modification! Do not alter the block structure! -## - Keep one file per line with first line without file -## - Keep comments text and layout intact -## - Do not move or rename this file without CI team aggreement -## BEGIN AUTOCHECK ISOLATED PROJECTS -- DO NOT EDIT COMMENT AND KEEP THE CODE STRUCTURE! - _ISOLATED_PROJECTS=\ - build/rules/autocheck.isolated_projects \ - build/rules/taxi_backend_py3/taxi_backend_py3.isolated_projects \ - build/rules/taxi_uservices/taxi_uservices.isolated_projects -## END AUTOCHECK ISOLATED PROJECTS -- DO NOT EDIT COMMENT AND KEEP THE CODE STRUCTURE! -} -otherwise { - _ISOLATED_PROJECTS+=build/rules/local.isolated_projects -} diff --git a/build/conf/settings.conf b/build/conf/settings.conf deleted file mode 100644 index 4d731564ea..0000000000 --- a/build/conf/settings.conf +++ /dev/null @@ -1,116 +0,0 @@ -GLOBAL_SRCS_IN_RESULTS=yes -JSON_CACHE_IS_ATTACHED=yes -USE_ADDINCL_WITHOUT_FOR_AS_ADDINCL_FOR_C=yes -LANGS_REQUIRE_BUILD_AND_SRC_ROOTS=c asm cython proto flatc swig ydl nlg -CHECK_GO_INCORRECT_DEPS=yes -REPORT_RECURSE_NO_YAMAKE=yes -USE_PREBUILT_TOOLS=yes -RESOLVE_OUTPUT_INCLUDES_AS_INCLUDES=yes -CHKPEERS_GLOBAL_SRCS=yes - -# NOTE! Only foldable vars should be listed here -_FOLDABLE_VARS=\ - CL_WRAPPER \ - END_WHOLE_ARCHIVE_VALUE \ - JDK_LATEST_VERSION \ - LD_SDK_VERSION \ - LD_STRIP_FLAG \ - LIB_WRAPPER \ - LINK_EXE_FLAGS_DEBUG \ - LINK_EXE_FLAGS_RELEASE \ - LINK_IMPLIB \ - LINK_LIB_FLAGS \ - LINK_STDLIBS \ - LINK_WRAPPER \ - LINK_WRAPPER_DYNLIB \ - ML_WRAPPER \ - START_WHOLE_ARCHIVE_VALUE \ - _CFLAGS_ARCH_I386 \ - _CFLAGS_UCRT_VC_INCLUDES \ - _COMPILER_TIME_TRACE_FLAGS \ - _COMPILER_TIME_TRACE_GRANULARITY \ - _COMPILER_TIME_TRACE_POSTPROCESS \ - _CPP_ARGS \ - _CROSS_SUFFIX \ - _CXX_DEFINES \ - _CXX_FLAGS \ - _CXX_STD \ - _C_ARGS \ - _C_CPP_KV_STYLE \ - _C_FLAGS \ - _C_FOPTIONS \ - _C_SYSTEM_LIBRARIES \ - _DEBUG_INFO_FLAGS \ - _END_GROUP \ - _EXEC_SHARED_FLAG \ - _EXE_FLAGS \ - _FLAGS_COMMON \ - _FLAGS_COMMON_DEBUG \ - _FLAGS_COMMON_IDE_MSVS \ - _FLAGS_COMMON_LIBPATHS \ - _FLAGS_DEBUG_ONLY \ - _FLAGS_DEBUG_ONLY_CLANG_CL \ - _FLAGS_DEBUG_ONLY_DEBUG \ - _FLAGS_DEBUG_RUNTIME \ - _FLAGS_IGNORE \ - _FLAGS_MACHINE \ - _FLAGS_RELEASE_ONLY \ - _FLAGS_RELEASE_ONLY_DEBUG \ - _FLAGS_RELEASE_RUNTIME \ - _LD_ARCHIVER \ - _LD_ARCH_FLAG \ - _LD_AR_PLUGIN \ - _LD_DCE_FLAG_GC_SECTIONS \ - _LD_DCE_FLAG_PRINT_SECTIONS \ - _LD_ENV_STYLE \ - _LD_FLAGS \ - _LD_ICF_FLAG \ - _LD_ICF_FLAG_PRINT_SECTIONS \ - _LD_LIB_GENERATE_MF \ - _LD_LINKER_OUTPUT\ - _LD_LINKER_OUTPUT_FLAG \ - _LD_LINK_FAT_PREFIX \ - _LD_LINK_FAT_SRCS_GLOBALS_NO_WA \ - _LD_LINK_FAT_SRCS_GLOBALS_WA \ - _LD_LINK_FAT_SUFFIX1 \ - _LD_LINK_FAT_SUFFIX2 \ - _LD_LLVM_AR_FORMAT \ - _LD_SRCS_GLOBALS \ - _LD_SYS_LIB \ - _LD_TAIL_LINK_LIB \ - _LD_THREAD_LIBRARY \ - _LD_USE_STDLIB \ - _LINKER_TIME_TRACE_FLAG \ - _LINKER_TIME_TRACE_GRANULARITY \ - _LINK_EXTRA_OUTPUT \ - _MASM_IO \ - _MSVC_ARCH \ - _MSVC_FLAGS \ - _MSVC_HEAD_LINK_LIB \ - _MSVC_SRCS_GLOBALS \ - _MSVC_TAIL_LINK_LIB \ - _MSVC_TC_KIT_LIBS \ - _MSVC_TC_VC_ROOT \ - _OPTIMIZE_RELEASE \ - _SFDL_FLAGS \ - _SHARED_FLAG \ - _SONAME_FLAG \ - _SONAME_OPTION \ - _START_GROUP \ - _STD_CXX \ - -# end of _FOLDABLE_VARS list - -_DUPSRC_IGNORE_LIST_ADS_BSYETI_SAMOGON=\ - $B/ads/bsyeti/samogon/buzzard/config/buzzard_config.py \ - $B/ads/bsyeti/samogon/caesar/config/caesar_config.py \ - $B/ads/bsyeti/samogon/caesar_resharder/config/resharder_config.py \ - $B/ads/bsyeti/samogon/eagle/config/eagle_config.py \ - $B/ads/bsyeti/samogon/eagle/datagram_receiver_config/datagram_receiver_config.py \ - $B/ads/bsyeti/samogon/eagle/lt_search_config/lt_search_config.py \ - $B/ads/bsyeti/samogon/eagle/searchpers_config/searchpers_config.py - -_DUPSRC_IGNORE_LIST=\ - $_DUPSRC_IGNORE_LIST_ADS_BSYETI_SAMOGON - -_FOLDABLE_VARS+=_DUPSRC_IGNORE_LIST_ADS_BSYETI_SAMOGON diff --git a/build/conf/sysincl.conf b/build/conf/sysincl.conf deleted file mode 100644 index 6356dbd36a..0000000000 --- a/build/conf/sysincl.conf +++ /dev/null @@ -1,74 +0,0 @@ -SYSINCL= -SYSINCL+=build/sysincl/macro.yml -SYSINCL+=build/sysincl/libc-to-compat.yml -SYSINCL+=build/sysincl/libc-to-nothing.yml -SYSINCL+=build/sysincl/stl-to-nothing.yml -SYSINCL+=build/sysincl/linux.yml -SYSINCL+=build/sysincl/windows.yml -SYSINCL+=build/sysincl/darwin.yml -SYSINCL+=build/sysincl/intrinsic.yml -SYSINCL+=build/sysincl/nvidia.yml -SYSINCL+=build/sysincl/misc.yml -SYSINCL+=build/sysincl/unsorted.yml - -when ($USE_LOCAL_SWIG == "yes") { - SYSINCL+=build/sysincl/swig-to-nothing.yml -} -otherwise { - SYSINCL+=build/sysincl/swig.yml -} - -when ($USE_SYSTEM_JDK) { - SYSINCL+=build/sysincl/system-jdk.yml -} - -when ($OPENSOURCE == "yes") { - SYSINCL += build/sysincl/opensource.yml -} -otherwise { - SYSINCL+=build/yandex_specific/sysincl/speechkit.yml - SYSINCL+=build/yandex_specific/sysincl/sophos.yml - SYSINCL+=build/yandex_specific/sysincl/misc.yml - SYSINCL+=build/yandex_specific/sysincl/taxi.yml -} - -when ($MUSL == "yes") { - SYSINCL+=build/sysincl/libc-to-musl.yml - SYSINCL+=build/sysincl/linux-musl.yml -} - -when ($OS_WINDOWS == "yes") { - SYSINCL+=build/sysincl/misc-win.yml - when ($OPENSOURCE !="yes") { - SYSINCL+=build/yandex_specific/sysincl/misc-win.yml - } -} - -when ($OS_ANDROID == "yes") { - SYSINCL+=build/sysincl/android.yml -} - -when ($OS_LINUX != "yes") { - SYSINCL+=build/sysincl/linux-headers.yml -} - -when ($OS_LINUX != "yes" || $CATBOOST_OPENSOURCE == "yes") { - SYSINCL+=build/sysincl/ibdrv.yml -} - -when ($WITH_VALGRIND == "yes") { - SYSINCL+=build/sysincl/valgrind.yml -} - -when ($OS_LINUX == "yes" && $OS_SDK == "ubuntu-12") { - SYSINCL+=build/sysincl/linux-ubuntu-12.yml -} - -when ($ARCH_NDS32) { - SYSINCL+=build/sysincl/nds32.yml -} - -when ($ARCH_RISCV32) { - SYSINCL+=build/sysincl/newlib.yml - SYSINCL+=build/sysincl/esp-idf.yml -} diff --git a/build/conf/toolchains/gnu_toolchain.conf b/build/conf/toolchains/gnu_toolchain.conf deleted file mode 100644 index e69de29bb2..0000000000 --- a/build/conf/toolchains/gnu_toolchain.conf +++ /dev/null diff --git a/build/conf/toolchains/msvc_toolchain.conf b/build/conf/toolchains/msvc_toolchain.conf deleted file mode 100644 index 6b4d6b5c45..0000000000 --- a/build/conf/toolchains/msvc_toolchain.conf +++ /dev/null @@ -1,7 +0,0 @@ -# TODO(somov): Заглушка для тех мест, где C_FLAGS_PLATFORM используется -# для любых платформ. Нужно унифицировать с GnuToolchain. -C_FLAGS_PLATFORM= - -when ($_UNDER_WINE == "yes") { - WINE_ENV=${env:"WINEPREFIX_SUFFIX=4.0"} -} diff --git a/build/conf/ts.conf b/build/conf/ts.conf deleted file mode 100644 index 2fa6195c9c..0000000000 --- a/build/conf/ts.conf +++ /dev/null @@ -1,331 +0,0 @@ -NODEJS_ROOT=$NODEJS_RESOURCE_GLOBAL -NODEJS_BIN=$NODEJS_ROOT/node -PNPM_ROOT=$PNPM_RESOURCE_GLOBAL -PNPM_SCRIPT=$PNPM_ROOT/node_modules/pnpm/dist/pnpm.cjs - -NOTS_TOOL=${tool:"devtools/frontend_build_platform/nots/builder"} -NOTS_TOOL_CURDIR=$CURDIR -NOTS_TOOL_BINDIR=$BINDIR -NOTS_TOOL_BASE_ARGS=--build-root $ARCADIA_BUILD_ROOT --bindir $NOTS_TOOL_BINDIR --curdir $NOTS_TOOL_CURDIR --nodejs-bin $NODEJS_BIN -NOTS_TOOL_NODE_MODULES_BUNDLE=$BINDIR/$NODE_MODULES_BUNDLE -# Base path for pluggable modules. -NOTS_PLUGINS_PATH=devtools/frontend_build_platform/nots/toolchain_plugins - -# -# npm contribs -# - -NPM_CONTRIBS_PATH=build/platform/yandex_specific/ts/contribs - -### @usage: NPM_CONTRIBS() # internal -### -### Defines special module that provides contrib tarballs from internal npm registry. -### Should be used only with `NODE_MODULES` macro. -### -### @see [FROM_NPM_LOCKFILES()](#macro_FROM_NPM_LOCKFILES) -### @see [NODE_MODULES()](#macro_NODE_MODULES) -module NPM_CONTRIBS: _BASE_UNIT { - .CMD=TOUCH_UNIT - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=no - .ALLOWED=FROM_NPM_LOCKFILES - .RESTRICTED=PEERDIR - - SET(MODULE_TAG NPM_CONTRIBS) - - MODULE_SUFFIX=.fake - - _BARE_MODULE() -} - -### @usage: FROM_NPM_LOCKFILES(LOCKFILES...) # internal -### -### Defines lockfile list for `NPM_CONTRIBS` module. -### -### @see [NPM_CONTRIBS()](#module_NPM_CONTRIBS) -macro FROM_NPM_LOCKFILES(LOCKFILES...) { - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS $LOCKFILES) - # See implementation in build/plugins/nots.py - _FROM_NPM_LOCKFILES($LOCKFILES) -} - -### @usage: FROM_NPM(NAME VERSION SKY_ID INTEGRITY INTEGRITY_ALGO TARBALL_PATH) -macro FROM_NPM(NAME, VERSION, SKY_ID, INTEGRITY, INTEGRITY_ALGO, TARBALL_PATH) { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_npm.py"} ${input;hide:"build/scripts/fetch_from.py"} ${input;hide:"build/scripts/sky.py"} --name $NAME --version $VERSION --sky-id $SKY_ID --integrity $INTEGRITY --integrity-algorithm $INTEGRITY_ALGO --copy-to ${output:TARBALL_PATH} ${requirements;hide:"network:full"} ${kv;hide:"p NPM"} ${kv;hide:"pc magenta"} -} - -# -# node_modules -# - -NODE_MODULES_BUNDLE=node_modules.tar -NODE_MODULES_BUNDLE_AS_OUTPUT= - -### @usage: NODE_MODULES() -### -### Materializes `node_modules.tar` bundle according to the module's lockfile. -### -### @see [NPM_CONTRIBS()](#module_NPM_CONTRIBS) -macro NODE_MODULES() { - # See implementation in build/plugins/nots.py -} - -macro _NODE_MODULES(IN{input}[], OUT{output}[]) { - PEERDIR($NPM_CONTRIBS_PATH) - SET(NODE_MODULES_BUNDLE_AS_OUTPUT \${output;hide:"workspace_node_modules.tar"}) - - .CMD=${cwd:BINDIR} $NOTS_TOOL create-node-modules $NOTS_TOOL_BASE_ARGS --pnpm-script $PNPM_SCRIPT --contribs $NPM_CONTRIBS_PATH ${input;hide:IN} ${output;hide:OUT} ${kv;hide:"p NOMO"} ${kv;hide:"pc magenta"} -} - -# -# TS library -# - -module _TS_BASE_UNIT: _BASE_UNIT { - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - - DEFAULT(_IGNORE_DUPSRC yes) - - SET(MODULE_TYPE LIBRARY) - SET(MODULE_TAG TS) - SET(PEERDIR_TAGS TS NPM_CONTRIBS) - - PEERDIR(build/platform/nodejs) - PEERDIR(build/external_resources/pnpm) - PEERDIR(build/external_resources/typescript) - PEERDIR(build/external_resources/eslint) - - MODULE_SUFFIX=.fake - - _BARE_MODULE() -} - -TSC_ROOT=$TYPESCRIPT_RESOURCE_GLOBAL/node_modules -TS_CONFIG_PATH=tsconfig.json -TS_COMPILE_TYPINGS= -TS_COMPILE_PLUGINS= -TS_COMPILE=$TOUCH_UNIT \ - && ${cwd:BINDIR} $NOTS_TOOL compile-ts $NOTS_TOOL_BASE_ARGS --tsc-resource $TSC_ROOT \ - --ts-config ${input:TS_CONFIG_PATH} --node-modules-bundle $NOTS_TOOL_NODE_MODULES_BUNDLE \ - --typings $TS_COMPILE_TYPINGS --plugins $TS_COMPILE_PLUGINS $NODE_MODULES_BUNDLE_AS_OUTPUT \ - ${hide:PEERS} ${input;hide:"./package.json"} ${TS_CONFIG_FILES} \ - ${output;hide:"package.json"} ${output;hide:TS_COMPILE_OUTPUT} ${kv;hide:"p TSC"} ${kv;hide:"pc magenta"} - -module _TS_BASE_LIBRARY : _TS_BASE_UNIT { - .CMD=TS_COMPILE - - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${CURDIR}/${TS_CONFIG_PATH} ${CURDIR}/package.json) - SET(TS_CONFIG_DEDUCE_OUT yes) - - _TS_CONFIGURE($TS_CONFIG_PATH) -} - -### @usage: TS_LIBRARY([name]) -### -### The TypeScript/JavaScript library module, compiles TypeScript sources to JavaScript. -### Build results are JavaScript files, typings and source mappings (depending on local tsconfig.json settings). -### -### @see [NODE_MODULES()](#macro_NODE_MODULES) -### @example -### -### TS_LIBRARY() -### SRCS(src/index.ts) -### NODE_MODULES() -### END() -### -module TS_LIBRARY : _TS_BASE_LIBRARY { - .EPILOGUE=_TS_LIBRARY_EPILOGUE -} - -# -# TS bundle -# - -WEBPACK_ROOT=$WEBPACK_RESOURCE_GLOBAL/node_modules -WEBPACK_CONFIG_PATH=webpack.config.js -TS_BUNDLE_WEBPACK=$TOUCH_UNIT \ - && ${cwd:BINDIR} $NOTS_TOOL bundle-webpack $NOTS_TOOL_BASE_ARGS --webpack-resource $WEBPACK_ROOT \ - --webpack-config ${input:WEBPACK_CONFIG_PATH} --ts-config ${input:TS_CONFIG_PATH} \ - --node-modules-bundle $NOTS_TOOL_NODE_MODULES_BUNDLE $NODE_MODULES_BUNDLE_AS_OUTPUT ${hide:PEERS} \ - ${input;hide:"./package.json"} ${TS_CONFIG_FILES} ${output;hide:"bundle.tar"} \ - ${output;hide:"package.json"} ${kv;hide:"p TSWP"} ${kv;hide:"pc magenta"} - -### @usage: TS_BUNDLE([name]) -### -### The Webpack bundle, bundles JavaScript code. -### Build results are bundle.tar, typings and source mappings (depending on local tsconfig.json settings). -### -### @see [NODE_MODULES()](#macro_NODE_MODULES) -### @example -### -### TS_BUNDLE() -### SRCS(src/index.ts) -### NODE_MODULES() -### END() -### -module TS_BUNDLE : _TS_BASE_UNIT { - .CMD=TS_BUNDLE_WEBPACK - - PEERDIR(build/external_resources/webpack) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${CURDIR}/${TS_CONFIG_PATH} ${CURDIR}/package.json) - SET(TS_CONFIG_DEDUCE_OUT no) - SRCS(${CURDIR}/${WEBPACK_CONFIG_PATH}) - - _TS_CONFIGURE($TS_CONFIG_PATH) -} - -# -# TS NextJS -# -_NEXTJS_SRC_FILES= - -macro _NEXTJS_EPILOG() { - _GLOB(_NEXTJS_SRC_FILES ${CURDIR}/src/pages/**/* ${CURDIR}/pages/**/* ${CURDIR}/src/app/**/* ${CURDIR}/app/**/* ${CURDIR}/public/**/*) - SRCS($_NEXTJS_SRC_FILES) -} - -NEXTJS_ROOT=$NEXTJS_RESOURCE_GLOBAL/node_modules -NEXTJS_CONFIG_PATH=next.config.js -TS_NEXTJS_BUILD=$TOUCH_UNIT \ - && ${cwd:BINDIR} $NOTS_TOOL build-nextjs $NOTS_TOOL_BASE_ARGS \ - --nextjs-resource $NEXTJS_ROOT \ - --nextjs-config ${input:NEXTJS_CONFIG_PATH} --ts-config ${input:TS_CONFIG_PATH} \ - --node-modules-bundle $NOTS_TOOL_NODE_MODULES_BUNDLE $NODE_MODULES_BUNDLE_AS_OUTPUT ${hide:PEERS} \ - ${input;hide:"./package.json"} ${TS_CONFIG_FILES} ${output;hide:"bundle.tar"} \ - ${output;hide:"package.json"} ${kv;hide:"p TSNEXT"} ${kv;hide:"pc magenta"} - -### @usage: TS_NEXTJS() -### -### NextJS app, built with `next build`. Requires sources to be under /src folder. -### /pages and /app on the root level ar not supported. -### Build results are bundle.tar. -### -### @see [NODE_MODULES()](#macro_NODE_MODULES) -### @example -### -### TS_NEXTJS() -### NODE_MODULES() -### END() -### -module TS_NEXTJS : _TS_BASE_UNIT { - .CMD=TS_NEXTJS_BUILD - .EPILOGUE=_NEXTJS_EPILOG - - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${CURDIR}/${TS_CONFIG_PATH} ${CURDIR}/package.json) - SET(TS_CONFIG_DEDUCE_OUT no) - - _TS_CONFIGURE($TS_CONFIG_PATH) -} - - -# -# TS library testing -# - -JEST_CONFIG_PATH=jest.config.js -JEST_TEST_EXTENSION=test.(ts|tsx|js|jsx) -JEST_EXTRA_SRCS_MASK=/**/__mocks__/* - -HERMIONE_CONFIG_PATH=.hermione.conf.js -HERMIONE_TEST_EXTENSION=hermione.(ts|js) -HERMIONE_EXTRA_SRCS_MASK= - -TS_TEST_RUNNER=jest -TS_TEST_CONFIG_PATH_VAR= -TS_TEST_EXTENSION= -TS_TEST_EXTRA_SRCS_MASK= - -# tag:test -_TS_TEST_SRCS_VALUE= -_TS_TEST_EXTRA_SRCS_VALUE= -### @usage: TS_TEST_SRCS(DIRS...) -### -### Macro to define directories where the test source files should be located. -### -### - DIRS... - directories. -macro TS_TEST_SRCS(DIRS...) { - _GLOB(_TS_TEST_SRCS_VALUE ${suf=/**/*.$TS_TEST_EXTENSION:DIRS}) - SRCS($_TS_TEST_SRCS_VALUE) - - _GLOB(_TS_TEST_EXTRA_SRCS_VALUE ${suf=$TS_TEST_EXTRA_SRCS_MASK:DIRS}) - SRCS($_TS_TEST_EXTRA_SRCS_VALUE) -} - -# tag:test -_TS_TEST_DATA_VALUE= -_TS_TEST_DATA_DIRS_RENAME_VALUE= -### @usage: TS_TEST_DATA([RENAME] GLOBS...) -### -### Macro to add tests data (i.e. snapshots) used in testing to a bindir from curdir. -### Creates symbolic links to directories of files found by the specified globs. -### -### Parameters: -### - RENAME - adds ability to rename paths for tests data from curdir to bindir. -### For example if your tested module located on "module" path and tests data in "module/tests_data". -### Then you can be able to rename "tests_data" folder to something else - `RENAME tests_data:example`. -### As a result in your bindir will be created folder - "module/example" which is a symbolic link on "module/tests_data" in curdir. -### It is possible to specify multiple renaming rules in the following format "dir1:dir2;dir3/foo:dir4/bar", where "dir1" and "dir3" folders in curdir. -### - GLOBS... - globs to tests data files, symbolic links will be created to their folders. For example - "tests_data/**/*". -macro TS_TEST_DATA(RENAME="", GLOBS...) { - _GLOB(_TS_TEST_DATA_VALUE $GLOBS) - SET(_TS_TEST_DATA_DIRS_RENAME_VALUE $RENAME) -} - -# tag:test -ESLINT_CONFIG_PATH=.eslintrc.js -_TS_LINT_SRCS_VALUE= -### _TS_LIBRARY_EPILOGUE() # internal -### -### This macro executes macros which should be invoked after all user specified macros in the ya.make file -macro _TS_LIBRARY_EPILOGUE() { - _GLOB(_TS_LINT_SRCS_VALUE ${CURDIR}/**/*.(ts|tsx) EXCLUDE **/node_modules/**/*.(ts|tsx)) -} - -macro _TS_TEST_EPILOGUE() { - _TS_TEST_CONFIGURE() -} - -# workspace_node_modules.tar has to be in outputs to become available for test_tool. -# we cannot redeclare node_modules.tar (it's in $NOTS_TOOL_NODE_MODULES_BUNDLE) as output, -# because this path is in outputs of create-node-modules command, and we can't have same path -# as output of several graph nodes. -# we use $MOVE_FILE as the most cheap way to get another path for a file. -TS_TEST_CMD=$TOUCH_UNIT \ - && ${cwd:BINDIR} $MOVE_FILE $NOTS_TOOL_NODE_MODULES_BUNDLE ${output:"workspace_node_modules.tar"} \ - ${kv;hide:"p TSTEST"} ${kv;hide:"pc magenta"} - -# tag:test -### @usage: TS_TEST() -### -### @see [TS_TEST_SRCS()](#macro_TS_TEST_SRCS) -### @see [TS_TEST_DATA()](#macro_TS_TEST_DATA) -module TS_TEST: _TS_BASE_UNIT { - .CMD=TS_TEST_CMD - .EPILOGUE=_TS_TEST_EPILOGUE - - # Disable `SRCS` macro in "parent" module (sources will be added by `TS_TEST_SRCS`). - .ALIASES=SRCS=_NOOP_MACRO - - # Use "parent's" CURDIR/BINDIR since TS_TEST borrows sources from parent module. - SET(TEST_FOR_BINDIR $ARCADIA_BUILD_ROOT/$TS_TEST_FOR_PATH) - SET(TEST_FOR_CURDIR $ARCADIA_ROOT/$TS_TEST_FOR_PATH) - SET(NOTS_TOOL_CURDIR $TEST_FOR_CURDIR) - SET(NOTS_TOOL_NODE_MODULES_BUNDLE $TEST_FOR_BINDIR/$NODE_MODULES_BUNDLE) - - PEERDIR(build/external_resources/$TS_TEST_RUNNER) - - when ($TS_TEST_RUNNER == "jest") { - TS_TEST_CONFIG_PATH_VAR=JEST_CONFIG_PATH - TS_TEST_EXTENSION=$JEST_TEST_EXTENSION - TS_TEST_EXTRA_SRCS_MASK=$JEST_EXTRA_SRCS_MASK - } - when ($TS_TEST_RUNNER == "hermione") { - TS_TEST_CONFIG_PATH_VAR=HERMIONE_CONFIG_PATH - TS_TEST_EXTENSION=$HERMIONE_TEST_EXTENSION - TS_TEST_EXTRA_SRCS_MASK=$HERMIONE_EXTRA_SRCS_MASK - } - - DEPENDS(devtools/frontend_build_platform/nots/recipes/extract_node_modules) - USE_RECIPE(devtools/frontend_build_platform/nots/recipes/extract_node_modules/recipe $TS_TEST_FOR_PATH workspace_node_modules.tar) -} diff --git a/build/plugins/_common.py b/build/plugins/_common.py deleted file mode 100644 index 2f831a94db..0000000000 --- a/build/plugins/_common.py +++ /dev/null @@ -1,201 +0,0 @@ -import sys -import hashlib -import base64 - - -class Result(object): - pass - - -def lazy(func): - result = Result() - - def wrapper(): - try: - return result._result - except AttributeError: - result._result = func() - - return result._result - - return wrapper - - -def pathid(path): - return base64.b32encode(hashlib.md5(path).digest()).lower().strip('=') - - -def listid(l): - return pathid(str(sorted(l))) - - -def unpair(lst): - for x, y in lst: - yield x - yield y - - -def iterpair(lst): - y = None - - for x in lst: - if y: - yield (y, x) - - y = None - else: - y = x - - -def stripext(fname): - return fname[:fname.rfind('.')] - - -def tobuilddir(fname): - if not fname: - return '$B' - if fname.startswith('$S'): - return fname.replace('$S', '$B', 1) - else: - return fname - - -def before(s, ss): - p = s.find(ss) - - if p == -1: - return s - - return s[:p] - - -def sort_by_keywords(keywords, args): - flat = [] - res = {} - - cur_key = None - limit = -1 - for arg in args: - if arg in keywords: - limit = keywords[arg] - if limit == 0: - res[arg] = True - cur_key = None - limit = -1 - else: - cur_key = arg - continue - if limit == 0: - cur_key = None - limit = -1 - if cur_key: - if cur_key in res: - res[cur_key].append(arg) - else: - res[cur_key] = [arg] - limit -= 1 - else: - flat.append(arg) - return (flat, res) - - -def resolve_common_const(path): - if path.startswith('${ARCADIA_ROOT}'): - return path.replace('${ARCADIA_ROOT}', '$S', 1) - if path.startswith('${ARCADIA_BUILD_ROOT}'): - return path.replace('${ARCADIA_BUILD_ROOT}', '$B', 1) - return path - - -def resolve_to_abs_path(path, source_root, build_root): - if path.startswith('$S') and source_root is not None: - return path.replace('$S', source_root, 1) - if path.startswith('$B') and build_root is not None: - return path.replace('$B', build_root, 1) - return path - - -def resolve_to_ymake_path(path): - return resolve_to_abs_path(path, '${ARCADIA_ROOT}', '${ARCADIA_BUILD_ROOT}') - - -def join_intl_paths(*args): - return '/'.join(args) - - -def get(fun, num): - return fun()[num][0] - - -def make_tuples(arg_list): - def tpl(): - for x in arg_list: - yield (x, []) - - return list(tpl()) - - -def resolve_includes(unit, src, paths): - return unit.resolve_include([src] + paths) if paths else [] - - -def rootrel_arc_src(src, unit): - if src.startswith('${ARCADIA_ROOT}/'): - return src[16:] - - if src.startswith('${ARCADIA_BUILD_ROOT}/'): - return src[22:] - - elif src.startswith('${CURDIR}/'): - return unit.path()[3:] + '/' + src[10:] - - else: - resolved = unit.resolve_arc_path(src) - - if resolved.startswith('$S/'): - return resolved[3:] - - return src # leave as is - - -def skip_build_root(x): - if x.startswith('${ARCADIA_BUILD_ROOT}'): - return x[len('${ARCADIA_BUILD_ROOT}'):].lstrip('/') - - return x - - -def get_interpreter_path(): - interpreter_path = [sys.executable] - if 'ymake' in interpreter_path[0]: - interpreter_path.append('--python') - return interpreter_path - - -def filter_out_by_keyword(test_data, keyword): - def _iterate(): - i = 0 - while i < len(test_data): - if test_data[i] == keyword: - i += 2 - else: - yield test_data[i] - i += 1 - - return list(_iterate()) - - -def generate_chunks(lst, chunk_size): - for i in xrange(0, len(lst), chunk_size): - yield lst[i:(i + chunk_size)] - - -def strip_roots(path): - for prefix in ["$B/", "$S/"]: - if path.startswith(prefix): - return path[len(prefix):] - return path - - -def to_yesno(x): - return "yes" if x else "no" diff --git a/build/plugins/_requirements.py b/build/plugins/_requirements.py deleted file mode 100644 index 40c50f8791..0000000000 --- a/build/plugins/_requirements.py +++ /dev/null @@ -1,176 +0,0 @@ -import lib.test_const as consts -import re -import lib._metric_resolvers as mr - -CANON_SB_VAULT_REGEX = re.compile(r"\w+=(value|file):[-\w]+:\w+") -CANON_YAV_REGEX = re.compile(r"\w+=(value|file):sec-[a-z0-9]+:\w+") -VALID_DNS_REQUIREMENTS = ("default", "local", "dns64") -VALID_NETWORK_REQUIREMENTS = ("full", "restricted") - - -def check_cpu(suite_cpu_requirements, test_size, is_kvm=False): - min_cpu_requirements = consts.TestRequirementsConstants.MinCpu - max_cpu_requirements = consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.Cpu) - if isinstance(suite_cpu_requirements, str): - if all( - consts.TestRequirementsConstants.is_all_cpu(req) for req in (max_cpu_requirements, suite_cpu_requirements) - ): - return None - return "Wrong 'cpu' requirements: {}, should be in [{}..{}] for {}-size tests".format( - suite_cpu_requirements, min_cpu_requirements, max_cpu_requirements, test_size - ) - - if not isinstance(suite_cpu_requirements, int): - return "Wrong 'cpu' requirements: {}, should be integer".format(suite_cpu_requirements) - - if ( - suite_cpu_requirements < min_cpu_requirements - or suite_cpu_requirements > consts.TestRequirementsConstants.get_cpu_value(max_cpu_requirements) - ): - return "Wrong 'cpu' requirement: {}, should be in [{}..{}] for {}-size tests".format( - suite_cpu_requirements, min_cpu_requirements, max_cpu_requirements, test_size - ) - - return None - - -# TODO: Remove is_kvm param when there will be guarantees on RAM -def check_ram(suite_ram_requirements, test_size, is_kvm=False): - if not isinstance(suite_ram_requirements, int): - return "Wrong 'ram' requirements: {}, should be integer".format(suite_ram_requirements) - min_ram_requirements = consts.TestRequirementsConstants.MinRam - max_ram_requirements = ( - consts.MAX_RAM_REQUIREMENTS_FOR_KVM - if is_kvm - else consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.Ram) - ) - if suite_ram_requirements < min_ram_requirements or suite_ram_requirements > max_ram_requirements: - err_msg = "Wrong 'ram' requirements: {}, should be in [{}..{}] for {}-size tests".format( - suite_ram_requirements, min_ram_requirements, max_ram_requirements, test_size - ) - if is_kvm: - err_msg += ' with kvm requirements' - return err_msg - return None - - -def check_ram_disk(suite_ram_disk, test_size, is_kvm=False): - min_ram_disk = consts.TestRequirementsConstants.MinRamDisk - max_ram_disk = consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.RamDisk) - if isinstance(suite_ram_disk, str): - if all(consts.TestRequirementsConstants.is_all_ram_disk(req) for req in (max_ram_disk, suite_ram_disk)): - return None - return "Wrong 'ram_disk' requirements: {}, should be in [{}..{}] for {}-size tests".format( - suite_ram_disk, 0, max_ram_disk, test_size - ) - - if not isinstance(suite_ram_disk, int): - return "Wrong 'ram_disk' requirements: {}, should be integer".format(suite_ram_disk) - - if suite_ram_disk < min_ram_disk or suite_ram_disk > consts.TestRequirementsConstants.get_ram_disk_value( - max_ram_disk - ): - return "Wrong 'ram_disk' requirement: {}, should be in [{}..{}] for {}-size tests".format( - suite_ram_disk, min_ram_disk, max_ram_disk, test_size - ) - - return None - - -def validate_sb_vault(name, value): - if not CANON_SB_VAULT_REGEX.match(value): - return "sb_vault value '{}' should follow pattern <ENV_NAME>=<value|file>:<owner>:<vault key>".format(value) - - -def validate_yav_vault(name, value): - if not CANON_YAV_REGEX.match(value): - return "yav value '{}' should follow pattern <ENV_NAME>=<value|file>:<sec-id>:<key>".format(value) - - -def validate_numerical_requirement(name, value): - if mr.resolve_value(value) is None: - return "Cannot convert [[imp]]{}[[rst]] to the proper [[imp]]{}[[rst]] requirement value".format(value, name) - - -def validate_choice_requirement(name, val, valid): - if val not in valid: - return "Unknown [[imp]]{}[[rst]] requirement: [[imp]]{}[[rst]], choose from [[imp]]{}[[rst]]".format( - name, val, ", ".join(valid) - ) - - -def validate_force_sandbox_requirement( - name, value, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, check_func -): - if is_force_sandbox or not in_autocheck or is_fuzzing or is_ytexec_run: - if value == 'all': - return - return validate_numerical_requirement(name, value) - error_msg = validate_numerical_requirement(name, value) - if error_msg: - return error_msg - return check_func(mr.resolve_value(value), test_size, is_kvm) - - -def validate_ram_disk_requirement( - name, value, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, ram -): - error_msg = validate_force_sandbox_requirement( - name, value, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, check_ram_disk - ) - if error_msg: - return error_msg - if is_force_sandbox or not in_autocheck or test_size == consts.TestSize.Large: - return - if int(value) > int(ram): - return "Wrong 'ram_disk' value, 'ram_disk':{} should be no more than 'ram':{}".format(value, ram) - return None - - -# TODO: Remove is_kvm param when there will be guarantees on RAM -def validate_requirement( - req_name, value, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, requirements -): - req_checks = { - 'container': validate_numerical_requirement, - 'cpu': lambda n, v: validate_force_sandbox_requirement( - n, v, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, check_cpu - ), - 'disk_usage': validate_numerical_requirement, - 'dns': lambda n, v: validate_choice_requirement(n, v, VALID_DNS_REQUIREMENTS), - 'kvm': None, - 'network': lambda n, v: validate_choice_requirement(n, v, VALID_NETWORK_REQUIREMENTS), - 'ram': lambda n, v: validate_force_sandbox_requirement( - n, v, test_size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, check_ram - ), - 'ram_disk': lambda n, v: validate_ram_disk_requirement( - n, - v, - test_size, - is_force_sandbox, - in_autocheck, - is_fuzzing, - is_kvm, - is_ytexec_run, - requirements.get( - 'ram', consts.TestSize.get_default_requirements(test_size).get(consts.TestRequirements.Ram) - ), - ), - 'sb': None, - 'sb_vault': validate_sb_vault, - 'yav': validate_yav_vault, - } - - if req_name not in req_checks: - return "Unknown requirement: [[imp]]{}[[rst]], choose from [[imp]]{}[[rst]]".format( - req_name, ", ".join(sorted(req_checks)) - ) - - if req_name in ('container', 'disk') and not is_force_sandbox: - return "Only [[imp]]LARGE[[rst]] tests without [[imp]]ya:force_distbuild[[rst]] tag can have [[imp]]{}[[rst]] requirement".format( - req_name - ) - - check_func = req_checks[req_name] - if check_func: - return check_func(req_name, value) diff --git a/build/plugins/_xsyn_includes.py b/build/plugins/_xsyn_includes.py deleted file mode 100644 index 8d33cea2f0..0000000000 --- a/build/plugins/_xsyn_includes.py +++ /dev/null @@ -1,60 +0,0 @@ -def get_include_callback(): - """ - .. function: get_include_callback returns function that processes each DOM element to get xsyn include from it, and it's aware of directory with all the xsyns. - - :param xsyn_dir directory with xsyns. - """ - def get_include(element): - """ - .. function: get_include returns list of includes from this DOM element. - - :param element DOM element. - """ - res = [] - if element.nodeType == element.ELEMENT_NODE and element.nodeName == "parse:include": - attrs = element.attributes - for i in xrange(attrs.length): - attr = attrs.item(i) - if attr.nodeName == "path": - include_filename = attr.nodeValue - res.append(include_filename) - return res - - return get_include - - -def traverse_xsyn(element, on_element): - """ - .. function: traverse_xsyn traverses element and returns concatenated lists of calling on_element of each element. - - :param element element in DOM. - :param on_element callback on element that returns list of values. - """ - res = on_element(element) - for child in element.childNodes: - child_results = traverse_xsyn(child, on_element) - res += child_results - return res - - -def process_xsyn(filepath, on_element): - """ - .. function: process_xsyn processes xsyn file and return concatenated list of calling on_element on each DOM element. - - :param filepath path to xsyn file - :param on_element callback called on each element in xsyn that returns list of values. - - """ - - # keep a stack of filepathes if on_element calls process_xsyn recursively - with open(filepath) as xsyn_file: - from xml.dom.minidom import parse - tree = parse(xsyn_file) - tree.normalize() - res = traverse_xsyn(tree, on_element) - return res - - -def get_all_includes(filepath): - callback = get_include_callback() - return process_xsyn(filepath, callback) diff --git a/build/plugins/build_mn_files.py b/build/plugins/build_mn_files.py deleted file mode 100644 index 4da76f1852..0000000000 --- a/build/plugins/build_mn_files.py +++ /dev/null @@ -1,29 +0,0 @@ -from os.path import basename, splitext - - -def on_build_mns_files(unit, *args): - files = [] - name = '' - ranking_suffix = '' - check = '' - index = 0 - fml_unused_tool = '' - while index < len(args): - if args[index] == 'NAME': - index += 1 - name = args[index] - elif args[index] == 'RANKING_SUFFIX': - index += 1 - ranking_suffix = args[index] - elif args[index] == 'CHECK': - check = 'CHECK' - fml_unused_tool = unit.get('FML_UNUSED_TOOL') or '$FML_UNUSED_TOOL' - else: - files.append(args[index]) - index += 1 - - for filename in files: - file_basename, _ = splitext(basename(filename)) - asmdataname = "staticMn{0}{1}Ptr".format(ranking_suffix, file_basename) - output_name = 'mn.staticMn{0}{1}Ptr.cpp'.format(ranking_suffix, file_basename) - unit.on_build_mns_file([filename, name, output_name, ranking_suffix, check, fml_unused_tool, asmdataname]) diff --git a/build/plugins/bundle.py b/build/plugins/bundle.py deleted file mode 100644 index 0bec8254ee..0000000000 --- a/build/plugins/bundle.py +++ /dev/null @@ -1,22 +0,0 @@ -import os - - -def onbundle(unit, *args): - """ - @usage BUNDLE(<Dir [NAME Name]>...) - - Brings build artefact from module Dir under optional Name to the current module (e.g. UNION) - If NAME is not specified, the name of the Dir's build artefact will be preserved - It makes little sense to specify BUNDLE on non-final targets and so this may stop working without prior notice. - Bundle on multimodule will select final target among multimodule variants and will fail if there are none or more than one. - """ - i = 0 - while i < len(args): - if i + 2 < len(args) and args[i + 1] == "NAME": - target, name = args[i], args[i + 2] - i += 3 - else: - target, name = args[i], os.path.basename(args[i]) - i += 1 - - unit.on_bundle_target([target, name]) diff --git a/build/plugins/code_generator.py b/build/plugins/code_generator.py deleted file mode 100644 index c1dc792201..0000000000 --- a/build/plugins/code_generator.py +++ /dev/null @@ -1,45 +0,0 @@ -import re -import os - -import ymake - -pattern = re.compile(r"#include\s*[<\"](?P<INDUCED>[^>\"]+)[>\"]|(?:@|{@)\s*(?:import|include|from)\s*[\"'](?P<INCLUDE>[^\"']+)[\"']") - - -class CodeGeneratorTemplateParser(object): - def __init__(self, path, unit): - self._path = path - retargeted = os.path.join(unit.path(), os.path.relpath(path, unit.resolve(unit.path()))) - with open(path, 'rb') as f: - includes, induced = CodeGeneratorTemplateParser.parse_includes(f.readlines()) - self._includes = unit.resolve_include([retargeted] + includes) if includes else [] - self._induced = unit.resolve_include([retargeted] + induced) if induced else [] - - @staticmethod - def parse_includes(lines): - includes = [] - induced = [] - - for line in lines: - for match in pattern.finditer(line): - type = match.lastgroup - if type == 'INCLUDE': - includes.append(match.group(type)) - elif type == 'INDUCED': - induced.append(match.group(type)) - else: - raise Exception("Unexpected match! Perhaps it is a result of an error in pattern.") - return (includes, induced) - - def includes(self): - return self._includes - - def induced_deps(self): - return { - 'h+cpp': self._induced - } - - -def init(): - ymake.addparser('markettemplate', CodeGeneratorTemplateParser) - ymake.addparser('macro', CodeGeneratorTemplateParser) diff --git a/build/plugins/container_layers.py b/build/plugins/container_layers.py deleted file mode 100644 index 500e7dcd88..0000000000 --- a/build/plugins/container_layers.py +++ /dev/null @@ -1,6 +0,0 @@ -from _common import rootrel_arc_src - -def oncheck_allowed_path(unit, *args): - module_path = rootrel_arc_src(unit.path(), unit) - if not (module_path.startswith("junk") or module_path.startswith("base_layers")): - unit.message(["error", "Cannot create container layer in this directory. See https://st.yandex-team.ru/DTCC-1123"]) diff --git a/build/plugins/cp.py b/build/plugins/cp.py deleted file mode 100644 index 5c663a3bdd..0000000000 --- a/build/plugins/cp.py +++ /dev/null @@ -1,30 +0,0 @@ -import os - -from _common import sort_by_keywords - - -def oncopy(unit, *args): - keywords = {'RESULT': 1, 'KEEP_DIR_STRUCT': 0, 'DESTINATION': 1, 'FROM': 1} - - flat_args, spec_args = sort_by_keywords(keywords, args) - - dest_dir = spec_args['DESTINATION'][0] if 'DESTINATION' in spec_args else '' - from_dir = spec_args['FROM'][0] if 'FROM' in spec_args else '' - keep_struct = 'KEEP_DIR_STRUCT' in spec_args - save_in_var = 'RESULT' in spec_args - targets = [] - - for source in flat_args: - rel_path = '' - path_list = source.split(os.sep) - filename = path_list[-1] - if keep_struct: - if path_list[:-1]: - rel_path = os.path.join(*path_list[:-1]) - source_path = os.path.join(from_dir, rel_path, filename) - target_path = os.path.join(dest_dir, rel_path, filename) - if save_in_var: - targets.append(target_path) - unit.oncopy_file([source_path, target_path]) - if save_in_var: - unit.set([spec_args["RESULT"][0], " ".join(targets)]) diff --git a/build/plugins/cpp_style.py b/build/plugins/cpp_style.py deleted file mode 100644 index 3ab78b7320..0000000000 --- a/build/plugins/cpp_style.py +++ /dev/null @@ -1,19 +0,0 @@ -import os - -from _common import sort_by_keywords - - -def on_style(unit, *args): - def it(): - yield 'DONT_PARSE' - - for f in args: - f = f[len('${ARCADIA_ROOT}') + 1:] - - if '/generated/' in f: - continue - - yield f - yield '/cpp_style/files/' + f - - unit.onresource(list(it())) diff --git a/build/plugins/create_init_py.py b/build/plugins/create_init_py.py deleted file mode 100644 index bbe8e8945a..0000000000 --- a/build/plugins/create_init_py.py +++ /dev/null @@ -1,15 +0,0 @@ -import os - -from _common import sort_by_keywords - - -def oncreate_init_py_structure(unit, *args): - if unit.get('DISTBUILD') or unit.get('AUTOCHECK'): - return - target_dir = unit.get('PY_PROTOS_FOR_DIR') - path_list = target_dir.split(os.path.sep)[1:] - inits = [os.path.join("${ARCADIA_BUILD_ROOT}", '__init__.py')] - for i in range(1, len(path_list) + 1): - inits.append(os.path.join("${ARCADIA_BUILD_ROOT}", os.path.join(*path_list[0:i]), '__init__.py')) - unit.ontouch(inits) - diff --git a/build/plugins/credits.py b/build/plugins/credits.py deleted file mode 100644 index 0ce1659326..0000000000 --- a/build/plugins/credits.py +++ /dev/null @@ -1,22 +0,0 @@ -from _common import rootrel_arc_src - - -def oncredits_disclaimer(unit, *args): - if unit.get('WITH_CREDITS'): - unit.message(["warn", "CREDITS WARNING: {}".format(' '.join(args))]) - -def oncheck_contrib_credits(unit, *args): - module_path = rootrel_arc_src(unit.path(), unit) - excepts = set() - if 'EXCEPT' in args: - args = list(args) - except_pos = args.index('EXCEPT') - excepts = set(args[except_pos + 1:]) - args = args[:except_pos] - for arg in args: - if module_path.startswith(arg) and not unit.get('CREDITS_TEXTS_FILE') and not unit.get('NO_CREDITS_TEXTS_FILE'): - for ex in excepts: - if module_path.startswith(ex): - break - else: - unit.message(["error", "License texts not found. See https://st.yandex-team.ru/DTCC-324"]) diff --git a/build/plugins/docs.py b/build/plugins/docs.py deleted file mode 100644 index 29f89e9a8e..0000000000 --- a/build/plugins/docs.py +++ /dev/null @@ -1,46 +0,0 @@ -import json - - -def extract_macro_calls(unit, macro_value_name): - if not unit.get(macro_value_name): - return [] - - return filter(None, unit.get(macro_value_name).replace('$' + macro_value_name, '').split()) - - -def macro_calls_to_dict(unit, calls): - def split_args(arg): - if arg is None: - return None - - kv = filter(None, arg.split('=')) - if len(kv) != 2: - unit.message(['error', 'Invalid variables specification "{}": value expected to be in form %name%=%value% (with no spaces)'.format(arg)]) - return None - - return kv - - return dict(filter(None, map(split_args, calls))) - - -def get_variables(unit): - orig_variables = macro_calls_to_dict(unit, extract_macro_calls(unit, '_DOCS_VARS_VALUE')) - return {k: unit.get(k) or v for k, v in orig_variables.items()} - - -def onprocess_docs(unit, *args): - if unit.enabled('_DOCS_USE_PLANTUML'): - unit.on_docs_yfm_use_plantuml([]) - - if unit.get('_DOCS_DIR_VALUE') == '': - unit.on_yfm_docs_dir([unit.get('_YFM_DOCS_DIR_DEFAULT_VALUE')]) - - variables = get_variables(unit) - if variables: - unit.set(['_DOCS_VARS_FLAG', '--vars {}'.format(json.dumps(json.dumps(variables, sort_keys=True)))]) - - -def onprocess_mkdocs(unit, *args): - variables = get_variables(unit) - if variables: - unit.set(['_DOCS_VARS_FLAG', ' '.join(['--var {}={}'.format(k, v) for k, v in variables.items()])]) diff --git a/build/plugins/files.py b/build/plugins/files.py deleted file mode 100644 index 78a6fe6169..0000000000 --- a/build/plugins/files.py +++ /dev/null @@ -1,5 +0,0 @@ -def onfiles(unit, *args): - args = list(args) - for arg in args: - if not arg.startswith('${ARCADIA_BUILD_ROOT}'): - unit.oncopy_file([arg, arg]) diff --git a/build/plugins/gobuild.py b/build/plugins/gobuild.py deleted file mode 100644 index 8df96ebc55..0000000000 --- a/build/plugins/gobuild.py +++ /dev/null @@ -1,309 +0,0 @@ -import base64 -import itertools -import md5 -import os -from _common import rootrel_arc_src, tobuilddir -import ymake - - -runtime_cgo_path = os.path.join('runtime', 'cgo') -runtime_msan_path = os.path.join('runtime', 'msan') -runtime_race_path = os.path.join('runtime', 'race') -arc_project_prefix = 'a.yandex-team.ru/' -import_runtime_cgo_false = { - 'norace': (runtime_cgo_path, runtime_msan_path, runtime_race_path), - 'race': (runtime_cgo_path, runtime_msan_path), -} -import_syscall_false = { - 'norace': (runtime_cgo_path), - 'race': (runtime_cgo_path, runtime_race_path), -} - - -def get_import_path(unit): - # std_lib_prefix = unit.get('GO_STD_LIB_PREFIX') - # unit.get() doesn't evalutate the value of variable, so the line above doesn't really work - std_lib_prefix = unit.get('GOSTD') + '/' - arc_project_prefix = unit.get('GO_ARCADIA_PROJECT_PREFIX') - vendor_prefix = unit.get('GO_CONTRIB_PROJECT_PREFIX') - - module_path = rootrel_arc_src(unit.path(), unit) - assert len(module_path) > 0 - import_path = module_path.replace('\\', '/') - if import_path.startswith(std_lib_prefix): - import_path = import_path[len(std_lib_prefix):] - elif import_path.startswith(vendor_prefix): - import_path = import_path[len(vendor_prefix):] - else: - import_path = arc_project_prefix + import_path - assert len(import_path) > 0 - return import_path - - -def get_appended_values(unit, key): - value = [] - raw_value = unit.get(key) - if raw_value: - value = filter(lambda x: len(x) > 0, raw_value.split(' ')) - assert len(value) == 0 or value[0] == '$' + key - return value[1:] if len(value) > 0 else value - - -def compare_versions(version1, version2): - def last_index(version): - index = version.find('beta') - return len(version) if index < 0 else index - - v1 = tuple(x.zfill(8) for x in version1[:last_index(version1)].split('.')) - v2 = tuple(x.zfill(8) for x in version2[:last_index(version2)].split('.')) - if v1 == v2: - return 0 - return 1 if v1 < v2 else -1 - - -def need_compiling_runtime(import_path, gostd_version): - return import_path in ('runtime', 'reflect', 'syscall') or \ - import_path.startswith('runtime/internal/') or \ - compare_versions('1.17', gostd_version) >= 0 and import_path == 'internal/bytealg' - - -def go_package_name(unit): - name = unit.get('GO_PACKAGE_VALUE') - if not name: - name = unit.get('GO_TEST_IMPORT_PATH') - if name: - name = os.path.basename(os.path.normpath(name)) - elif unit.get('MODULE_TYPE') == 'PROGRAM': - name = 'main' - else: - name = unit.get('REALPRJNAME') - return name - - -def need_lint(path): - return not path.startswith('$S/vendor/') and not path.startswith('$S/contrib/') - - -def on_go_process_srcs(unit): - """ - _GO_PROCESS_SRCS() macro processes only 'CGO' files. All remaining *.go files - and other input files are currently processed by a link command of the - GO module (GO_LIBRARY, GO_PROGRAM) - """ - - srcs_files = get_appended_values(unit, '_GO_SRCS_VALUE') - - asm_files = [] - c_files = [] - cxx_files = [] - ev_files = [] - fbs_files = [] - go_files = [] - in_files = [] - proto_files = [] - s_files = [] - syso_files = [] - - classifed_files = { - '.c': c_files, - '.cc': cxx_files, - '.cpp': cxx_files, - '.cxx': cxx_files, - '.ev': ev_files, - '.fbs': fbs_files, - '.go': go_files, - '.in': in_files, - '.proto': proto_files, - '.s': asm_files, - '.syso': syso_files, - '.C': cxx_files, - '.S': s_files, - } - - # Classify files specifed in _GO_SRCS() macro by extension and process CGO_EXPORT keyword - # which can preceed C/C++ files only - is_cgo_export = False - for f in srcs_files: - _, ext = os.path.splitext(f) - ext_files = classifed_files.get(ext) - if ext_files is not None: - if is_cgo_export: - is_cgo_export = False - if ext in ('.c', '.cc', '.cpp', '.cxx', '.C'): - unit.oncopy_file_with_context([f, f, 'OUTPUT_INCLUDES', '${BINDIR}/_cgo_export.h']) - f = '${BINDIR}/' + f - else: - ymake.report_configure_error('Unmatched CGO_EXPORT keyword in SRCS() macro') - ext_files.append(f) - elif f == 'CGO_EXPORT': - is_cgo_export = True - else: - # FIXME(snermolaev): We can report an unsupported files for _GO_SRCS here - pass - if is_cgo_export: - ymake.report_configure_error('Unmatched CGO_EXPORT keyword in SRCS() macro') - - for f in go_files: - if f.endswith('_test.go'): - ymake.report_configure_error('file {} must be listed in GO_TEST_SRCS() or GO_XTEST_SRCS() macros'.format(f)) - go_test_files = get_appended_values(unit, '_GO_TEST_SRCS_VALUE') - go_xtest_files = get_appended_values(unit, '_GO_XTEST_SRCS_VALUE') - for f in go_test_files + go_xtest_files: - if not f.endswith('_test.go'): - ymake.report_configure_error('file {} should not be listed in GO_TEST_SRCS() or GO_XTEST_SRCS() macros'.format(f)) - - is_test_module = unit.enabled('GO_TEST_MODULE') - - # Add gofmt style checks - if unit.enabled('_GO_FMT_ADD_CHECK'): - resolved_go_files = [] - go_source_files = [] if is_test_module and unit.get(['GO_TEST_FOR_DIR']) else go_files - for path in itertools.chain(go_source_files, go_test_files, go_xtest_files): - if path.endswith('.go'): - resolved = unit.resolve_arc_path([path]) - if resolved != path and need_lint(resolved): - resolved_go_files.append(resolved) - if resolved_go_files: - basedirs = {} - for f in resolved_go_files: - basedir = os.path.dirname(f) - if basedir not in basedirs: - basedirs[basedir] = [] - basedirs[basedir].append(f) - for basedir in basedirs: - unit.onadd_check(['gofmt'] + basedirs[basedir]) - - # Go coverage instrumentation (NOTE! go_files list is modified here) - if is_test_module and unit.enabled('GO_TEST_COVER'): - cover_info = [] - - for f in go_files: - if f.endswith('_test.go'): - continue - cover_var = 'GoCover' + base64.b32encode(f).rstrip('=') - cover_file = unit.resolve_arc_path(f) - unit.on_go_gen_cover_go([cover_file, cover_var]) - if cover_file.startswith('$S/'): - cover_file = arc_project_prefix + cover_file[3:] - cover_info.append('{}:{}'.format(cover_var, cover_file)) - - # go_files should be empty now since the initial list shouldn't contain - # any non-go or go test file. The value of go_files list will be used later - # to update the value of _GO_SRCS_VALUE - go_files = [] - unit.set(['GO_COVER_INFO_VALUE', ' '.join(cover_info)]) - - # We have cleaned up the list of files from _GO_SRCS_VALUE var and we have to update - # the value since it is used in module command line - unit.set(['_GO_SRCS_VALUE', ' '.join(itertools.chain(go_files, asm_files, syso_files))]) - - unit_path = unit.path() - - # Add go vet check - if unit.enabled('_GO_VET_ADD_CHECK') and need_lint(unit_path): - vet_report_file_name = os.path.join(unit_path, '{}{}'.format(unit.filename(), unit.get('GO_VET_REPORT_EXT'))) - unit.onadd_check(["govet", '$(BUILD_ROOT)/' + tobuilddir(vet_report_file_name)[3:]]) - - for f in ev_files: - ev_proto_file = '{}.proto'.format(f) - unit.oncopy_file_with_context([f, ev_proto_file]) - proto_files.append(ev_proto_file) - - # Process .proto files - for f in proto_files: - unit.on_go_proto_cmd(f) - - # Process .fbs files - for f in fbs_files: - unit.on_go_flatc_cmd([f, go_package_name(unit)]) - - # Process .in files - for f in in_files: - unit.onsrc(f) - - # Generate .symabis for .s files (starting from 1.12 version) - if len(asm_files) > 0: - symabis_flags = [] - gostd_version = unit.get('GOSTD_VERSION') - if compare_versions('1.16', gostd_version) >= 0: - import_path = get_import_path(unit) - symabis_flags.extend(['FLAGS', '-p', import_path]) - if need_compiling_runtime(import_path, gostd_version): - symabis_flags.append('-compiling-runtime') - unit.on_go_compile_symabis(asm_files + symabis_flags) - - # Process cgo files - cgo_files = get_appended_values(unit, '_CGO_SRCS_VALUE') - - cgo_cflags = [] - if len(c_files) + len(cxx_files) + len(s_files) + len(cgo_files) > 0: - if is_test_module: - go_test_for_dir = unit.get('GO_TEST_FOR_DIR') - if go_test_for_dir and go_test_for_dir.startswith('$S/'): - unit.onaddincl(['FOR', 'c', go_test_for_dir[3:]]) - unit.onaddincl(['FOR', 'c', unit.get('MODDIR')]) - cgo_cflags = get_appended_values(unit, 'CGO_CFLAGS_VALUE') - - for f in itertools.chain(c_files, cxx_files, s_files): - unit.onsrc([f] + cgo_cflags) - - if len(cgo_files) > 0: - if not unit.enabled('CGO_ENABLED'): - ymake.report_configure_error('trying to build with CGO (CGO_SRCS is non-empty) when CGO is disabled') - import_path = get_import_path(unit) - if import_path != runtime_cgo_path: - go_std_root = unit.get('GOSTD') - unit.onpeerdir(os.path.join(go_std_root, runtime_cgo_path)) - race_mode = 'race' if unit.enabled('RACE') else 'norace' - import_runtime_cgo = 'false' if import_path in import_runtime_cgo_false[race_mode] else 'true' - import_syscall = 'false' if import_path in import_syscall_false[race_mode] else 'true' - args = [import_path] + cgo_files + ['FLAGS', '-import_runtime_cgo=' + import_runtime_cgo, '-import_syscall=' + import_syscall] - unit.on_go_compile_cgo1(args) - cgo2_cflags = get_appended_values(unit, 'CGO2_CFLAGS_VALUE') - for f in cgo_files: - if f.endswith('.go'): - unit.onsrc([f[:-2] + 'cgo2.c'] + cgo_cflags + cgo2_cflags) - else: - ymake.report_configure_error('file {} should not be listed in CGO_SRCS() macros'.format(f)) - args = [go_package_name(unit)] + cgo_files - if len(c_files) > 0: - args += ['C_FILES'] + c_files - if len(s_files) > 0: - args += ['S_FILES'] + s_files - if len(syso_files) > 0: - args += ['OBJ_FILES'] + syso_files - unit.on_go_compile_cgo2(args) - - -def on_go_resource(unit, *args): - args = list(args) - files = args[::2] - keys = args[1::2] - suffix_md5 = md5.new('@'.join(args)).hexdigest() - resource_go = os.path.join("resource.{}.res.go".format(suffix_md5)) - - unit.onpeerdir(["library/go/core/resource"]) - - if len(files) != len(keys): - ymake.report_configure_error("last file {} is missing resource key".format(files[-1])) - - for i, (key, filename) in enumerate(zip(keys, files)): - if not key: - ymake.report_configure_error("file key must be non empty") - return - - if filename == "-" and "=" not in key: - ymake.report_configure_error("key \"{}\" must contain = sign".format(key)) - return - - # quote key, to avoid automatic substitution of filename by absolute - # path in RUN_PROGRAM - args[2*i+1] = "notafile" + args[2*i+1] - - files = [file for file in files if file != "-"] - unit.onrun_program([ - "library/go/core/resource/cc", - "-package", go_package_name(unit), - "-o", resource_go] + list(args) + [ - "IN"] + files + [ - "OUT", resource_go]) diff --git a/build/plugins/ios_app_settings.py b/build/plugins/ios_app_settings.py deleted file mode 100644 index 60ec0b4b52..0000000000 --- a/build/plugins/ios_app_settings.py +++ /dev/null @@ -1,19 +0,0 @@ -import _common as common -import ymake -import os - -def onios_app_settings(unit, *args): - tail, kv = common.sort_by_keywords( - {'OS_VERSION': 1, 'DEVICES': -1}, - args - ) - if tail: - ymake.report_configure_error('Bad IOS_COMMON_SETTINGS usage - unknown data: ' + str(tail)) - if kv.get('OS_VERSION', []): - unit.onios_app_common_flags(['--minimum-deployment-target', kv.get('OS_VERSION', [])[0]]) - unit.onios_app_assets_flags(['--filter-for-device-os-version', kv.get('OS_VERSION', [])[0]]) - devices_flags = [] - for device in kv.get('DEVICES', []): - devices_flags += ['--target-device', device] - if devices_flags: - unit.onios_app_common_flags(devices_flags) diff --git a/build/plugins/ios_assets.py b/build/plugins/ios_assets.py deleted file mode 100644 index 5f0ccb9467..0000000000 --- a/build/plugins/ios_assets.py +++ /dev/null @@ -1,30 +0,0 @@ -import _common as common -import ymake -import os - - -def onios_assets(unit, *args): - _, kv = common.sort_by_keywords( - {'ROOT': 1, 'CONTENTS': -1, 'FLAGS': -1}, - args - ) - if not kv.get('ROOT', []) and kv.get('CONTENTS', []): - ymake.report_configure_error('Please specify ROOT directory for assets') - origin_root = kv.get('ROOT')[0] - destination_root = os.path.normpath(os.path.join('$BINDIR', os.path.basename(origin_root))) - rel_list = [] - for cont in kv.get('CONTENTS', []): - rel = os.path.relpath(cont, origin_root) - if rel.startswith('..'): - ymake.report_configure_error('{} is not subpath of {}'.format(cont, origin_root)) - rel_list.append(rel) - if not rel_list: - return - results_list = [os.path.join('$B', unit.path()[3:], os.path.basename(origin_root), i) for i in rel_list] - if len(kv.get('CONTENTS', [])) != len(results_list): - ymake.report_configure_error('IOS_ASSETTS content length is not equals results') - for s, d in zip(kv.get('CONTENTS', []), results_list): - unit.oncopy_file([s, d]) - if kv.get('FLAGS', []): - unit.onios_app_assets_flags(kv.get('FLAGS', [])) - unit.on_ios_assets([destination_root] + results_list) diff --git a/build/plugins/java.py b/build/plugins/java.py deleted file mode 100644 index 0846dcada9..0000000000 --- a/build/plugins/java.py +++ /dev/null @@ -1,446 +0,0 @@ -import _common as common -import ymake -import json -import os -import base64 - - -DELIM = '================================' -CONTRIB_JAVA_PREFIX = 'contrib/java/' - - -def split_args(s): # TODO quotes, escapes - return filter(None, s.split()) - - -def extract_macro_calls(unit, macro_value_name, macro_calls_delim): - if not unit.get(macro_value_name): - return [] - - return filter(None, map(split_args, unit.get(macro_value_name).replace('$' + macro_value_name, '').split(macro_calls_delim))) - - -def extract_macro_calls2(unit, macro_value_name): - if not unit.get(macro_value_name): - return [] - - calls = [] - for call_encoded_args in unit.get(macro_value_name).strip().split(): - call_args = json.loads(base64.b64decode(call_encoded_args), encoding='utf-8') - calls.append(call_args) - - return calls - - -def on_run_jbuild_program(unit, *args): - args = list(args) - """ - Custom code generation - @link: https://wiki.yandex-team.ru/yatool/java/#kodogeneracijarunjavaprogram - """ - - flat, kv = common.sort_by_keywords({'IN': -1, 'IN_DIR': -1, 'OUT': -1, 'OUT_DIR': -1, 'CWD': 1, 'CLASSPATH': -1, 'CP_USE_COMMAND_FILE': 1, 'ADD_SRCS_TO_CLASSPATH': 0}, args) - depends = kv.get('CLASSPATH', []) + kv.get('JAR', []) - fake_out = None - if depends: - # XXX: hack to force ymake to build dependencies - fake_out = "fake.out.{}".format(hash(tuple(args))) - unit.on_run_java(['TOOL'] + depends + ["OUT", fake_out]) - - if not kv.get('CP_USE_COMMAND_FILE'): - args += ['CP_USE_COMMAND_FILE', unit.get(['JAVA_PROGRAM_CP_USE_COMMAND_FILE']) or 'yes'] - - if fake_out is not None: - args += ['FAKE_OUT', fake_out] - - prev = unit.get(['RUN_JAVA_PROGRAM_VALUE']) or '' - new_val = (prev + ' ' + base64.b64encode(json.dumps(list(args), encoding='utf-8'))).strip() - unit.set(['RUN_JAVA_PROGRAM_VALUE', new_val]) - - -def ongenerate_script(unit, *args): - """ - heretic@ promised to make tutorial here - Don't forget - Feel free to remind - """ - flat, kv = common.sort_by_keywords( - {'OUT': -1, 'TEMPLATE': -1, 'CUSTOM_PROPERTY': -1}, - args - ) - if len(kv.get('TEMPLATE', [])) > len(kv.get('OUT', [])): - ymake.report_configure_error('To many arguments for TEMPLATE parameter') - prev = unit.get(['GENERATE_SCRIPT_VALUE']) or '' - new_val = (prev + ' ' + base64.b64encode(json.dumps(list(args), encoding='utf-8'))).strip() - unit.set(['GENERATE_SCRIPT_VALUE', new_val]) - - -def onjava_module(unit, *args): - args_delim = unit.get('ARGS_DELIM') - idea_only = True if 'IDEA_ONLY' in args else False - if unit.get('ADD_SRCDIR_TO_TEST_DATA') == "yes": - unit.ondata_files(common.strip_roots(unit.path())) - - if idea_only: - if unit.get('YA_IDE_IDEA') != 'yes': - return - if unit.get('YMAKE_JAVA_MODULES') != 'yes': - return - - data = { - 'BUNDLE_NAME': unit.name(), - 'PATH': unit.path(), - 'IDEA_ONLY': 'yes' if idea_only else 'no', - 'MODULE_TYPE': unit.get('MODULE_TYPE'), - 'MODULE_ARGS': unit.get('MODULE_ARGS'), - 'MANAGED_PEERS': '${MANAGED_PEERS}', - 'MANAGED_PEERS_CLOSURE': '${MANAGED_PEERS_CLOSURE}', - 'NON_NAMAGEABLE_PEERS': '${NON_NAMAGEABLE_PEERS}', - 'TEST_CLASSPATH_MANAGED': '${TEST_CLASSPATH_MANAGED}', - 'EXCLUDE': extract_macro_calls(unit, 'EXCLUDE_VALUE', args_delim), - 'JAVA_SRCS': extract_macro_calls(unit, 'JAVA_SRCS_VALUE', args_delim), - 'JAVAC_FLAGS': extract_macro_calls(unit, 'JAVAC_FLAGS_VALUE', args_delim), - 'ANNOTATION_PROCESSOR': extract_macro_calls(unit, 'ANNOTATION_PROCESSOR_VALUE', args_delim), - 'EXTERNAL_JAR': extract_macro_calls(unit, 'EXTERNAL_JAR_VALUE', args_delim), - 'RUN_JAVA_PROGRAM': extract_macro_calls2(unit, 'RUN_JAVA_PROGRAM_VALUE'), - 'RUN_JAVA_PROGRAM_MANAGED': '${RUN_JAVA_PROGRAM_MANAGED}', - 'MAVEN_GROUP_ID': extract_macro_calls(unit, 'MAVEN_GROUP_ID_VALUE', args_delim), - 'JAR_INCLUDE_FILTER': extract_macro_calls(unit, 'JAR_INCLUDE_FILTER_VALUE', args_delim), - 'JAR_EXCLUDE_FILTER': extract_macro_calls(unit, 'JAR_EXCLUDE_FILTER_VALUE', args_delim), - - # TODO remove when java test dart is in prod - 'UNITTEST_DIR': unit.get('UNITTEST_DIR'), - 'SYSTEM_PROPERTIES': extract_macro_calls(unit, 'SYSTEM_PROPERTIES_VALUE', args_delim), - 'JVM_ARGS': extract_macro_calls(unit, 'JVM_ARGS_VALUE', args_delim), - 'TEST_CWD': extract_macro_calls(unit, 'TEST_CWD_VALUE', args_delim), - 'TEST_FORK_MODE': extract_macro_calls(unit, 'TEST_FORK_MODE', args_delim), - 'SPLIT_FACTOR': extract_macro_calls(unit, 'TEST_SPLIT_FACTOR', args_delim), - 'TIMEOUT': extract_macro_calls(unit, 'TEST_TIMEOUT', args_delim), - 'TAG': extract_macro_calls(unit, 'TEST_TAGS_VALUE', args_delim), - 'SIZE': extract_macro_calls(unit, 'TEST_SIZE_NAME', args_delim), - 'DEPENDS': extract_macro_calls(unit, 'TEST_DEPENDS_VALUE', args_delim), - 'IDEA_EXCLUDE': extract_macro_calls(unit, 'IDEA_EXCLUDE_DIRS_VALUE', args_delim), - 'IDEA_RESOURCE': extract_macro_calls(unit, 'IDEA_RESOURCE_DIRS_VALUE', args_delim), - 'IDEA_MODULE_NAME': extract_macro_calls(unit, 'IDEA_MODULE_NAME_VALUE', args_delim), - 'GENERATE_SCRIPT': extract_macro_calls2(unit, 'GENERATE_SCRIPT_VALUE'), - 'FAKEID': extract_macro_calls(unit, 'FAKEID', args_delim), - 'TEST_DATA': extract_macro_calls(unit, 'TEST_DATA_VALUE', args_delim), - 'JAVA_FORBIDDEN_LIBRARIES': extract_macro_calls(unit, 'JAVA_FORBIDDEN_LIBRARIES_VALUE', args_delim), - 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION') or '_DEFAULT') - } - if unit.get('ENABLE_PREVIEW_VALUE') == 'yes' and (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION')) in ('15', '16', '17', '18', '19'): - data['ENABLE_PREVIEW'] = extract_macro_calls(unit, 'ENABLE_PREVIEW_VALUE', args_delim) - - if unit.get('SAVE_JAVAC_GENERATED_SRCS_DIR') and unit.get('SAVE_JAVAC_GENERATED_SRCS_TAR'): - data['SAVE_JAVAC_GENERATED_SRCS_DIR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_DIR', args_delim) - data['SAVE_JAVAC_GENERATED_SRCS_TAR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_TAR', args_delim) - - if unit.get('JAVA_ADD_DLLS_VALUE') == 'yes': - data['ADD_DLLS_FROM_DEPENDS'] = extract_macro_calls(unit, 'JAVA_ADD_DLLS_VALUE', args_delim) - - if unit.get('ERROR_PRONE_VALUE') == 'yes': - data['ERROR_PRONE'] = extract_macro_calls(unit, 'ERROR_PRONE_VALUE', args_delim) - - if unit.get('WITH_KOTLIN_VALUE') == 'yes': - data['WITH_KOTLIN'] = extract_macro_calls(unit, 'WITH_KOTLIN_VALUE', args_delim) - if unit.get('KOTLIN_JVM_TARGET'): - data['KOTLIN_JVM_TARGET'] = extract_macro_calls(unit, 'KOTLIN_JVM_TARGET', args_delim) - if unit.get('KOTLINC_FLAGS_VALUE'): - data['KOTLINC_FLAGS'] = extract_macro_calls(unit, 'KOTLINC_FLAGS_VALUE', args_delim) - if unit.get('KOTLINC_OPTS_VALUE'): - data['KOTLINC_OPTS'] = extract_macro_calls(unit, 'KOTLINC_OPTS_VALUE', args_delim) - - if unit.get('DIRECT_DEPS_ONLY_VALUE') == 'yes': - data['DIRECT_DEPS_ONLY'] = extract_macro_calls(unit, 'DIRECT_DEPS_ONLY_VALUE', args_delim) - - if unit.get('JAVA_EXTERNAL_DEPENDENCIES_VALUE'): - valid = [] - for dep in sum(extract_macro_calls(unit, 'JAVA_EXTERNAL_DEPENDENCIES_VALUE', args_delim), []): - if os.path.normpath(dep).startswith('..'): - ymake.report_configure_error('{}: {} - relative paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) - elif os.path.isabs(dep): - ymake.report_configure_error('{}: {} absolute paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) - else: - valid.append(dep) - if valid: - data['EXTERNAL_DEPENDENCIES'] = [valid] - - if unit.get('MAKE_UBERJAR_VALUE') == 'yes': - if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': - ymake.report_configure_error('{}: UBERJAR supported only for JAVA_PROGRAM module type'.format(unit.path())) - data['UBERJAR'] = extract_macro_calls(unit, 'MAKE_UBERJAR_VALUE', args_delim) - data['UBERJAR_PREFIX'] = extract_macro_calls(unit, 'UBERJAR_PREFIX_VALUE', args_delim) - data['UBERJAR_HIDE_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_HIDE_EXCLUDE_VALUE', args_delim) - data['UBERJAR_PATH_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_PATH_EXCLUDE_VALUE', args_delim) - data['UBERJAR_MANIFEST_TRANSFORMER_MAIN'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE', args_delim) - data['UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE', args_delim) - data['UBERJAR_APPENDING_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_APPENDING_TRANSFORMER_VALUE', args_delim) - data['UBERJAR_SERVICES_RESOURCE_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE', args_delim) - - if unit.get('WITH_JDK_VALUE') == 'yes': - if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': - ymake.report_configure_error('{}: JDK export supported only for JAVA_PROGRAM module type'.format(unit.path())) - data['WITH_JDK'] = extract_macro_calls(unit, 'WITH_JDK_VALUE', args_delim) - - if not data['EXTERNAL_JAR']: - has_processor = extract_macro_calls(unit, 'GENERATE_VCS_JAVA_INFO_NODEP', args_delim) - # IMPORTANT before switching vcs_info.py to python3 the value was always evaluated to $YMAKE_PYTHON but no - # code in java dart parser extracts its value only checks this key for existance. - data['EMBED_VCS'] = [['yes']] - # FORCE_VCS_INFO_UPDATE is responsible for setting special value of VCS_INFO_DISABLE_CACHE__NO_UID__ - macro_val = extract_macro_calls(unit, 'FORCE_VCS_INFO_UPDATE', args_delim) - macro_str = macro_val[0][0] if macro_val and macro_val[0] and macro_val[0][0] else '' - if macro_str and macro_str == 'yes': - data['VCS_INFO_DISABLE_CACHE__NO_UID__'] = macro_val - - for java_srcs_args in data['JAVA_SRCS']: - external = None - - for i in xrange(len(java_srcs_args)): - arg = java_srcs_args[i] - - if arg == 'EXTERNAL': - if not i + 1 < len(java_srcs_args): - continue # TODO configure error - - ex = java_srcs_args[i + 1] - - if ex in ('EXTERNAL', 'SRCDIR', 'PACKAGE_PREFIX', 'EXCLUDE'): - continue # TODO configure error - - if external is not None: - continue # TODO configure error - - external = ex - - if external: - unit.onpeerdir(external) - - for k, v in data.items(): - if not v: - data.pop(k) - - dart = 'JAVA_DART: ' + base64.b64encode(json.dumps(data)) + '\n' + DELIM + '\n' - - unit.set_property(['JAVA_DART_DATA', dart]) - if not idea_only and unit.get('MODULE_TYPE') in ('JAVA_PROGRAM', 'JAVA_LIBRARY', 'JTEST', 'TESTNG', 'JUNIT5') and not unit.path().startswith('$S/contrib/java'): - unit.on_add_classpath_clash_check() - if unit.get('LINT_LEVEL_VALUE') != "none" and unit.get('_NO_LINT_VALUE') != 'none': - unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')]) - - -def on_add_java_style_checks(unit, *args): - if unit.get('LINT_LEVEL_VALUE') != "none" and unit.get('_NO_LINT_VALUE') != 'none': - unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')] + list(args)) - - -def on_add_kotlin_style_checks(unit, *args): - """ - ktlint can be disabled using NO_LINT() and NO_LINT(ktlint) - """ - if unit.get('WITH_KOTLIN_VALUE') == 'yes': - no_lint_value = unit.get('_NO_LINT_VALUE') - if no_lint_value == '': - unit.onadd_check(['ktlint'] + list(args)) - elif no_lint_value not in ('none', 'none_internal', 'ktlint'): - ymake.report_configure_error('Unsupported value for NO_LINT macro: {}'.format(no_lint_value)) - - - -def on_add_classpath_clash_check(unit, *args): - jdeps_val = (unit.get('CHECK_JAVA_DEPS_VALUE') or '').lower() - if jdeps_val and jdeps_val not in ('yes', 'no', 'strict'): - ymake.report_configure_error('CHECK_JAVA_DEPS: "yes", "no" or "strict" required') - if jdeps_val and jdeps_val != 'no': - unit.onjava_test_deps(jdeps_val) - - -# Ymake java modules related macroses - - -def onexternal_jar(unit, *args): - args = list(args) - flat, kv = common.sort_by_keywords({'SOURCES': 1}, args) - if not flat: - ymake.report_configure_error('EXTERNAL_JAR requires exactly one resource URL of compiled jar library') - res = flat[0] - resid = res[4:] if res.startswith('sbr:') else res - unit.set(['JAR_LIB_RESOURCE', resid]) - unit.set(['JAR_LIB_RESOURCE_URL', res]) - - -def on_check_java_srcdir(unit, *args): - args = list(args) - for arg in args: - if not '$' in arg: - arc_srcdir = os.path.join(unit.get('MODDIR'), arg) - abs_srcdir = unit.resolve(os.path.join("$S/", arc_srcdir)) - if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir): - ymake.report_configure_error( - 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]$S/{}[[rst]]', - missing_dir=arc_srcdir - ) - return - srcdir = unit.resolve_arc_path(arg) - if srcdir and not srcdir.startswith('$S'): - continue - abs_srcdir = unit.resolve(srcdir) if srcdir else unit.resolve(arg) - if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir): - ymake.report_configure_error( - 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]{}[[rst]]', - missing_dir=srcdir - ) - - -def on_fill_jar_copy_resources_cmd(unit, *args): - if len(args) == 4: - varname, srcdir, base_classes_dir, reslist = tuple(args) - package = '' - else: - varname, srcdir, base_classes_dir, package, reslist = tuple(args) - dest_dir = os.path.join(base_classes_dir, *package.split('.')) if package else base_classes_dir - var = unit.get(varname) - var += ' && $FS_TOOLS copy_files {} {} {}'.format(srcdir if srcdir.startswith('"$') else '${CURDIR}/' + srcdir, dest_dir, reslist) - unit.set([varname, var]) - - -def on_fill_jar_gen_srcs(unit, *args): - varname, jar_type, srcdir, base_classes_dir, java_list, kt_list, groovy_list, res_list = tuple(args[0:8]) - resolved_srcdir = unit.resolve_arc_path(srcdir) - if not resolved_srcdir.startswith('$') or resolved_srcdir.startswith('$S'): - return - - exclude_pos = args.index('EXCLUDE') - globs = args[7:exclude_pos] - excludes = args[exclude_pos + 1:] - var = unit.get(varname) - var += ' && ${{cwd:BINDIR}} $YMAKE_PYTHON ${{input:"build/scripts/resolve_java_srcs.py"}} --append -d {} -s {} -k {} -g {} -r {} --include-patterns {}'.format(srcdir, java_list, kt_list, groovy_list, res_list, ' '.join(globs)) - if jar_type == 'SRC_JAR': - var += ' --all-resources' - if len(excludes) > 0: - var += ' --exclude-patterns {}'.format(' '.join(excludes)) - if unit.get('WITH_KOTLIN_VALUE') == 'yes': - var += ' --resolve-kotlin' - unit.set([varname, var]) - - -def on_check_run_java_prog_classpath(unit, *args): - if len(args) != 1: - ymake.report_configure_error('multiple CLASSPATH elements in RUN_JAVA_PROGRAM invocation no more supported. Use JAVA_RUNTIME_PEERDIR on the JAVA_PROGRAM module instead') - - -def extract_words(words, keys): - kv = {} - k = None - - for w in words: - if w in keys: - k = w - else: - if not k in kv: - kv[k] = [] - kv[k].append(w) - - return kv - - -def parse_words(words): - kv = extract_words(words, {'OUT', 'TEMPLATE'}) - if not 'TEMPLATE' in kv: - kv['TEMPLATE'] = ['template.tmpl'] - ws = [] - for item in ('OUT', 'TEMPLATE'): - for i, word in list(enumerate(kv[item])): - if word == 'CUSTOM_PROPERTY': - ws += kv[item][i:] - kv[item] = kv[item][:i] - templates = kv['TEMPLATE'] - outputs = kv['OUT'] - if len(outputs) < len(templates): - ymake.report_configure_error('To many arguments for TEMPLATE parameter') - return - if ws and ws[0] != 'CUSTOM_PROPERTY': - ymake.report_configure_error('''Can't parse {}'''.format(ws)) - custom_props = [] - for item in ws: - if item == 'CUSTOM_PROPERTY': - custom_props.append([]) - else: - custom_props[-1].append(item) - props = [] - for p in custom_props: - if not p: - ymake.report_configure_error('Empty CUSTOM_PROPERTY') - continue - props.append('-B') - if len(p) > 1: - props.append(base64.b64encode("{}={}".format(p[0], ' '.join(p[1:])))) - else: - ymake.report_configure_error('CUSTOM_PROPERTY "{}" value is not specified'.format(p[0])) - for i, o in enumerate(outputs): - yield o, templates[min(i, len(templates) - 1)], props - - -def on_ymake_generate_script(unit, *args): - for out, tmpl, props in parse_words(list(args)): - unit.on_add_gen_java_script([out, tmpl] + list(props)) - - -def on_jdk_version_macro_check(unit, *args): - if len(args) != 1: - unit.message(["error", "Invalid syntax. Single argument required."]) - jdk_version = args[0] - available_versions = ('10', '11', '15', '16', '17', '18', '19',) - if jdk_version not in available_versions: - ymake.report_configure_error("Invalid jdk version: {}. {} are available".format(jdk_version, available_versions)) - if int(jdk_version) >= 19 and unit.get('WITH_JDK_VALUE') != 'yes' and unit.get('MODULE_TAG') == 'JAR_RUNNABLE': - msg = ( - "Missing WITH_JDK() macro for JDK version >= 19" - # temporary link with additional explanation - ". For more info see https://clubs.at.yandex-team.ru/arcadia/28543" - ) - ymake.report_configure_error(msg) - - -def _maven_coords_for_project(unit, project_dir): - parts = project_dir.split('/') - - g = '.'.join(parts[2:-2]) - a = parts[-2] - v = parts[-1] - c = '' - - pom_path = unit.resolve(os.path.join('$S', project_dir, 'pom.xml')) - if os.path.exists(pom_path): - import xml.etree.ElementTree as et - with open(pom_path) as f: - root = et.fromstring(f.read()) - for xpath in ('./{http://maven.apache.org/POM/4.0.0}artifactId', './artifactId'): - artifact = root.find(xpath) - if artifact is not None: - artifact = artifact.text - if a != artifact and a.startswith(artifact): - c = a[len(artifact):].lstrip('-_') - a = artifact - break - - return '{}:{}:{}:{}'.format(g, a, v, c) - - -def on_setup_maven_export_coords_if_need(unit, *args): - if not unit.enabled('MAVEN_EXPORT'): - return - - unit.set(['MAVEN_EXPORT_COORDS_GLOBAL', _maven_coords_for_project(unit, args[0])]) - - -def on_setup_project_coords_if_needed(unit, *args): - if not unit.enabled('EXPORT_GRADLE'): - return - - project_dir = args[0] - if project_dir.startswith(CONTRIB_JAVA_PREFIX): - value = '\\"{}\\"'.format(_maven_coords_for_project(unit, project_dir).rstrip(':')) - else: - value = 'project(\\":{}\\")'.format(project_dir.replace('/', ':')) - unit.set(['_EXPORT_GRADLE_PROJECT_COORDS', value]) diff --git a/build/plugins/large_files.py b/build/plugins/large_files.py deleted file mode 100644 index 33a78d7110..0000000000 --- a/build/plugins/large_files.py +++ /dev/null @@ -1,39 +0,0 @@ -import os -import ymake -from _common import strip_roots - -PLACEHOLDER_EXT = "external" - - -def onlarge_files(unit, *args): - """ - @usage LARGE_FILES([AUTOUPDATED] Files...) - - Use large file ether from working copy or from remote storage via placeholder <File>.external - If <File> is present locally (and not a symlink!) it will be copied to build directory. - Otherwise macro will try to locate <File>.external, parse it retrieve ot during build phase. - """ - args = list(args) - - if args and args[0] == 'AUTOUPDATED': - args = args[1:] - - for arg in args: - if arg == 'AUTOUPDATED': - unit.message(["warn", "Please set AUTOUPDATED argument before other file names"]) - continue - - src = unit.resolve_arc_path(arg) - if src.startswith("$S"): - msg = "Used local large file {}. Don't forget to run 'ya upload --update-external' and commit {}.{}".format(src, src, PLACEHOLDER_EXT) - unit.message(["warn", msg]) - unit.oncopy_file([arg, arg]) - else: - out_file = strip_roots(os.path.join(unit.path(), arg)) - external = "{}.{}".format(arg, PLACEHOLDER_EXT) - from_external_cmd = [external, out_file, 'OUT_NOAUTO', arg] - if os.path.dirname(arg): - from_external_cmd.extend(("RENAME", os.path.basename(arg))) - unit.on_from_external(from_external_cmd) - unit.onadd_check(['check.external', external]) - diff --git a/build/plugins/lib/__init__.py b/build/plugins/lib/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 --- a/build/plugins/lib/__init__.py +++ /dev/null diff --git a/build/plugins/lib/_metric_resolvers.py b/build/plugins/lib/_metric_resolvers.py deleted file mode 100644 index 270eb78345..0000000000 --- a/build/plugins/lib/_metric_resolvers.py +++ /dev/null @@ -1,11 +0,0 @@ -import re - -VALUE_PATTERN = re.compile(r"^\s*(?P<value>\d+)\s*$") - - -def resolve_value(val): - match = VALUE_PATTERN.match(val) - if not match: - return None - val = match.group('value') - return int(val) diff --git a/build/plugins/lib/nots/__init__.py b/build/plugins/lib/nots/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 --- a/build/plugins/lib/nots/__init__.py +++ /dev/null diff --git a/build/plugins/lib/nots/constants.py b/build/plugins/lib/nots/constants.py deleted file mode 100644 index d819e86192..0000000000 --- a/build/plugins/lib/nots/constants.py +++ /dev/null @@ -1,12 +0,0 @@ -from lib.nots.semver import Version - -# it is crucial to keep this array sorted -SUPPORTED_NODE_VERSIONS = [ - Version.from_str("12.18.4"), - Version.from_str("12.22.12"), - Version.from_str("14.21.1"), - Version.from_str("16.18.1"), - Version.from_str("18.12.1") -] - -DEFAULT_NODE_VERSION = SUPPORTED_NODE_VERSIONS[0] diff --git a/build/plugins/lib/nots/package_manager/__init__.py b/build/plugins/lib/nots/package_manager/__init__.py deleted file mode 100644 index 4128980efe..0000000000 --- a/build/plugins/lib/nots/package_manager/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .pnpm import PnpmPackageManager -from .base import PackageJson, constants, utils, bundle_node_modules, extract_node_modules - - -manager = PnpmPackageManager - -__all__ = [ - "PackageJson", - "constants", "utils", - "bundle_node_modules", "extract_node_modules" -] diff --git a/build/plugins/lib/nots/package_manager/base/__init__.py b/build/plugins/lib/nots/package_manager/base/__init__.py deleted file mode 100644 index 8950fd818e..0000000000 --- a/build/plugins/lib/nots/package_manager/base/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from . import constants, utils -from .lockfile import BaseLockfile, LockfilePackageMeta, LockfilePackageMetaInvalidError -from .package_json import PackageJson -from .package_manager import BasePackageManager, PackageManagerError, PackageManagerCommandError -from .node_modules_bundler import bundle_node_modules, extract_node_modules - - -__all__ = [ - "constants", "utils", - "BaseLockfile", "LockfilePackageMeta", "LockfilePackageMetaInvalidError", - "BasePackageManager", "PackageManagerError", "PackageManagerCommandError", - "PackageJson", - "bundle_node_modules", "extract_node_modules", -] diff --git a/build/plugins/lib/nots/package_manager/base/constants.py b/build/plugins/lib/nots/package_manager/base/constants.py deleted file mode 100644 index ecdbe05ebf..0000000000 --- a/build/plugins/lib/nots/package_manager/base/constants.py +++ /dev/null @@ -1,5 +0,0 @@ -PACKAGE_JSON_FILENAME = "package.json" -NODE_MODULES_DIRNAME = "node_modules" -NODE_MODULES_BUNDLE_FILENAME = "node_modules.tar" -NODE_MODULES_WORKSPACE_BUNDLE_FILENAME = "workspace_node_modules.tar" -NPM_REGISTRY_URL = "http://npm.yandex-team.ru" diff --git a/build/plugins/lib/nots/package_manager/base/lockfile.py b/build/plugins/lib/nots/package_manager/base/lockfile.py deleted file mode 100644 index 9b9c0be954..0000000000 --- a/build/plugins/lib/nots/package_manager/base/lockfile.py +++ /dev/null @@ -1,68 +0,0 @@ -import os - -from abc import ABCMeta, abstractmethod -from six import add_metaclass - - -class LockfilePackageMeta(object): - """ - Basic struct representing package meta from lockfile. - """ - __slots__ = ("name", "version", "sky_id", "integrity", "integrity_algorithm", "tarball_path") - - @staticmethod - def from_str(s): - return LockfilePackageMeta(*s.strip().split(" ")) - - def __init__(self, name, version, sky_id, integrity, integrity_algorithm): - self.name = name - self.version = version - self.sky_id = sky_id - self.integrity = integrity - self.integrity_algorithm = integrity_algorithm - self.tarball_path = "{}-{}.tgz".format(name, version) - - def to_str(self): - return " ".join([self.name, self.version, self.sky_id, self.integrity, self.integrity_algorithm]) - - -class LockfilePackageMetaInvalidError(RuntimeError): - pass - - -@add_metaclass(ABCMeta) -class BaseLockfile(object): - @classmethod - def load(cls, path): - """ - :param path: lockfile path - :type path: str - :rtype: BaseLockfile - """ - pj = cls(path) - pj.read() - - return pj - - def __init__(self, path): - if not os.path.isabs(path): - raise TypeError("Absolute path required, given: {}".format(path)) - - self.path = path - self.data = None - - @abstractmethod - def read(self): - pass - - @abstractmethod - def write(self, path=None): - pass - - @abstractmethod - def get_packages_meta(self): - pass - - @abstractmethod - def update_tarball_resolutions(self, fn): - pass diff --git a/build/plugins/lib/nots/package_manager/base/node_modules_bundler.py b/build/plugins/lib/nots/package_manager/base/node_modules_bundler.py deleted file mode 100644 index c835c4d7ca..0000000000 --- a/build/plugins/lib/nots/package_manager/base/node_modules_bundler.py +++ /dev/null @@ -1,66 +0,0 @@ -import os -import tarfile - -from io import BytesIO - -from .utils import build_nm_path - - -PEERS_DIR = ".peers" -PEERS_INDEX = "index" - - -def bundle_node_modules(build_root, peers, node_modules_path, bundle_path): - """ - Creates node_modules bundle. - Bundle contains node_modules directory, peers' node_modules directories, - and index file with the list of added peers (\\n delimited). - :param build_root: arcadia build root - :type build_root: str - :param peers: list of peers (arcadia root related) - :type peers: list of str - :param node_modules_path: node_modules path - :type node_modules_path: str - :param bundle_path: tarball path - :type bundle_path: str - """ - with tarfile.open(bundle_path, "w") as tf: - tf.add(node_modules_path, arcname=".") - - # Peers' node_modules. - added_peers = [] - for p in peers: - peer_nm_path = build_nm_path(os.path.join(build_root, p)) - peer_bundled_nm_path = build_nm_path(os.path.join(PEERS_DIR, p)) - if not os.path.isdir(peer_nm_path): - continue - tf.add(peer_nm_path, arcname=peer_bundled_nm_path) - added_peers.append(p) - - # Peers index. - peers_index = "\n".join(added_peers) - ti = tarfile.TarInfo(name=os.path.join(PEERS_DIR, PEERS_INDEX)) - ti.size = len(peers_index) - tf.addfile(ti, BytesIO(peers_index.encode())) - - -def extract_node_modules(build_root, node_modules_path, bundle_path): - """ - Extracts node_modules bundle. - :param build_root: arcadia build root - :type build_root: str - :param node_modules_path: node_modules path - :type node_modules_path: str - :param bundle_path: tarball path - :type bundle_path: str - """ - with tarfile.open(bundle_path) as tf: - tf.extractall(node_modules_path) - - peers = open(os.path.join(node_modules_path, PEERS_DIR, PEERS_INDEX)).read().split("\n") - for p in peers: - if not p: - continue - bundled_nm_path = build_nm_path(os.path.join(node_modules_path, PEERS_DIR, p)) - nm_path = build_nm_path(os.path.join(build_root, p)) - os.rename(bundled_nm_path, nm_path) diff --git a/build/plugins/lib/nots/package_manager/base/package_json.py b/build/plugins/lib/nots/package_manager/base/package_json.py deleted file mode 100644 index 33c299d258..0000000000 --- a/build/plugins/lib/nots/package_manager/base/package_json.py +++ /dev/null @@ -1,171 +0,0 @@ -import json -import os - -from six import iteritems - -from .utils import build_pj_path - - -class PackageJsonWorkspaceError(RuntimeError): - pass - - -class PackageJson(object): - DEP_KEY = "dependencies" - DEV_DEP_KEY = "devDependencies" - PEER_DEP_KEY = "peerDependencies" - OPT_DEP_KEY = "optionalDependencies" - DEP_KEYS = (DEP_KEY, DEV_DEP_KEY, PEER_DEP_KEY, OPT_DEP_KEY) - - WORKSPACE_SCHEMA = "workspace:" - - @classmethod - def load(cls, path): - """ - :param path: package.json path - :type path: str - :rtype: PackageJson - """ - pj = cls(path) - pj.read() - - return pj - - def __init__(self, path): - if not os.path.isabs(path): - raise TypeError("Absolute path required, given: {}".format(path)) - - self.path = path - self.data = None - - def read(self): - with open(self.path) as f: - self.data = json.load(f) - - def write(self, path=None): - """ - :param path: path to store package.json, defaults to original path - :type path: str - """ - if path is None: - path = self.path - - directory = os.path.dirname(path) - if not os.path.exists(directory): - os.mkdir(directory) - - with open(path, "w") as f: - json.dump(self.data, f, indent=2, ensure_ascii=False) - f.write('\n') # it's better for diff algorithm in arc - - def get_name(self): - return self.data["name"] - - def get_version(self): - return self.data["version"] - - def get_description(self): - return self.data.get("description") - - def get_nodejs_version(self): - return self.data.get("engines", {}).get("node") - - def dependencies_iter(self): - for key in self.DEP_KEYS: - deps = self.data.get(key) - if not deps: - continue - - for name, spec in iteritems(deps): - yield (name, spec) - - def get_workspace_dep_spec_paths(self): - """ - Returns names and paths from specifiers of the defined workspace dependencies. - :rtype: list of (str, str) - """ - spec_paths = [] - schema = self.WORKSPACE_SCHEMA - schema_len = len(schema) - - for name, spec in self.dependencies_iter(): - if not spec.startswith(schema): - continue - - spec_path = spec[schema_len:] - if not (spec_path.startswith(".") or spec_path.startswith("..")): - raise PackageJsonWorkspaceError( - "Expected relative path specifier for workspace dependency, but got '{}' for {} in {}".format( - spec, name, self.path - ) - ) - - spec_paths.append((name, spec_path)) - - return spec_paths - - def get_workspace_dep_paths(self, base_path=None): - """ - Returns paths of the defined workspace dependencies. - :param base_path: base path to resolve relative dep paths - :type base_path: str - :rtype: list of str - """ - if base_path is None: - base_path = os.path.dirname(self.path) - - return [os.path.normpath(os.path.join(base_path, p)) for _, p in self.get_workspace_dep_spec_paths()] - - def get_workspace_deps(self): - """ - :rtype: list of PackageJson - """ - ws_deps = [] - pj_dir = os.path.dirname(self.path) - - for name, rel_path in self.get_workspace_dep_spec_paths(): - dep_path = os.path.normpath(os.path.join(pj_dir, rel_path)) - dep_pj = PackageJson.load(build_pj_path(dep_path)) - - if name != dep_pj.get_name(): - raise PackageJsonWorkspaceError( - "Workspace dependency name mismatch, found '{}' instead of '{}' in {}".format( - name, dep_pj.get_name(), self.path - ) - ) - - ws_deps.append(dep_pj) - - return ws_deps - - def get_workspace_map(self, ignore_self=False): - """ - Returns absolute paths of the workspace dependencies (including transitive) mapped to package.json and depth. - :param ignore_self: whether path of the current module will be excluded - :type ignore_self: bool - :rtype: dict of (PackageJson, int) - """ - ws_deps = {} - # list of (pj, depth) - pj_queue = [(self, 0)] - - while len(pj_queue): - (pj, depth) = pj_queue.pop() - pj_dir = os.path.dirname(pj.path) - if pj_dir in ws_deps: - continue - - if not ignore_self or pj != self: - ws_deps[pj_dir] = (pj, depth) - - for dep_pj in pj.get_workspace_deps(): - pj_queue.append((dep_pj, depth + 1)) - - return ws_deps - - def get_dep_paths_by_names(self): - """ - Returns dict of {dependency_name: dependency_path} - """ - ws_map = self.get_workspace_map() - return {pj.get_name(): path for path, (pj, _) in ws_map.items()} diff --git a/build/plugins/lib/nots/package_manager/base/package_manager.py b/build/plugins/lib/nots/package_manager/base/package_manager.py deleted file mode 100644 index d3da1d3579..0000000000 --- a/build/plugins/lib/nots/package_manager/base/package_manager.py +++ /dev/null @@ -1,141 +0,0 @@ -import os -import sys -import subprocess - -from abc import ABCMeta, abstractmethod -from six import add_metaclass - -from .constants import NPM_REGISTRY_URL -from .package_json import PackageJson -from .utils import build_nm_path, build_pj_path - - -class PackageManagerError(RuntimeError): - pass - - -class PackageManagerCommandError(PackageManagerError): - def __init__(self, cmd, code, stdout, stderr): - self.cmd = cmd - self.code = code - self.stdout = stdout - self.stderr = stderr - - msg = "package manager exited with code {} while running {}:\n{}\n{}".format(code, cmd, stdout, stderr) - super(PackageManagerCommandError, self).__init__(msg) - - -@add_metaclass(ABCMeta) -class BasePackageManager(object): - def __init__(self, build_root, build_path, sources_path, nodejs_bin_path, script_path, contribs_path, module_path=None, sources_root=None): - self.module_path = build_path[len(build_root) + 1:] if module_path is None else module_path - self.build_path = build_path - self.sources_path = sources_path - self.build_root = build_root - self.sources_root = sources_path[:-len(self.module_path) - 1] if sources_root is None else sources_root - self.nodejs_bin_path = nodejs_bin_path - self.script_path = script_path - self.contribs_path = contribs_path - - @classmethod - def load_package_json(cls, path): - """ - :param path: path to package.json - :type path: str - :rtype: PackageJson - """ - return PackageJson.load(path) - - @classmethod - def load_package_json_from_dir(cls, dir_path): - """ - :param dir_path: path to directory with package.json - :type dir_path: str - :rtype: PackageJson - """ - return cls.load_package_json(build_pj_path(dir_path)) - - @classmethod - @abstractmethod - def load_lockfile(cls, path): - pass - - @classmethod - @abstractmethod - def load_lockfile_from_dir(cls, dir_path): - pass - - @abstractmethod - def create_node_modules(self): - pass - - @abstractmethod - def calc_node_modules_inouts(self): - pass - - @abstractmethod - def extract_packages_meta_from_lockfiles(self, lf_paths): - pass - - def get_local_peers_from_package_json(self): - """ - Returns paths of direct workspace dependencies (source root related). - :rtype: list of str - """ - return self.load_package_json_from_dir(self.sources_path).get_workspace_dep_paths(base_path=self.module_path) - - def get_peers_from_package_json(self): - """ - Returns paths of workspace dependencies (source root related). - :rtype: list of str - """ - pj = self.load_package_json_from_dir(self.sources_path) - prefix_len = len(self.sources_root) + 1 - - return [p[prefix_len:] for p in pj.get_workspace_map(ignore_self=True).keys()] - - def _exec_command(self, args, include_defaults=True): - if not self.nodejs_bin_path: - raise PackageManagerError("Unable to execute command: nodejs_bin_path is not configured") - - cmd = [self.nodejs_bin_path, self.script_path] + args + (self._get_default_options() if include_defaults else []) - p = subprocess.Popen( - cmd, - cwd=self.build_path, - stdin=None, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - ) - stdout, stderr = p.communicate() - - if p.returncode != 0: - self._dump_debug_log() - - raise PackageManagerCommandError(cmd, p.returncode, stdout.decode("utf-8"), stderr.decode("utf-8")) - - def _nm_path(self, *parts): - return os.path.join(build_nm_path(self.build_path), *parts) - - def _contrib_tarball_path(self, pkg): - return os.path.join(self.contribs_path, pkg.tarball_path) - - def _contrib_tarball_url(self, pkg): - return "file:" + self._contrib_tarball_path(pkg) - - def _get_default_options(self): - return ["--registry", NPM_REGISTRY_URL] - - def _get_debug_log_path(self): - return None - - def _dump_debug_log(self): - log_path = self._get_debug_log_path() - - if not log_path: - return - - try: - with open(log_path) as f: - sys.stderr.write("Package manager log {}:\n{}\n".format(log_path, f.read())) - except Exception: - sys.stderr.write("Failed to dump package manager log {}.\n".format(log_path)) diff --git a/build/plugins/lib/nots/package_manager/base/tests/package_json.py b/build/plugins/lib/nots/package_manager/base/tests/package_json.py deleted file mode 100644 index 42aab85b26..0000000000 --- a/build/plugins/lib/nots/package_manager/base/tests/package_json.py +++ /dev/null @@ -1,152 +0,0 @@ -import os -import pytest - -from build.plugins.lib.nots.package_manager.base.package_json import PackageJson, PackageJsonWorkspaceError - - -def test_get_workspace_dep_spec_paths_ok(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - "devDependencies": { - "@yandex-int/baz": "workspace:../baz", - }, - } - - ws_dep_spec_paths = pj.get_workspace_dep_spec_paths() - - assert ws_dep_spec_paths == [ - ("@yandex-int/bar", "../bar"), - ("@yandex-int/baz", "../baz"), - ] - - -def test_get_workspace_dep_spec_paths_invalid_path(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:*", - }, - } - - with pytest.raises(PackageJsonWorkspaceError) as e: - pj.get_workspace_dep_spec_paths() - - assert str(e.value) == "Expected relative path specifier for workspace dependency, but got 'workspace:*' for @yandex-int/bar in /packages/foo/package.json" - - -def test_get_workspace_dep_paths_ok(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - "devDependencies": { - "@yandex-int/baz": "workspace:../baz", - }, - } - - ws_dep_paths = pj.get_workspace_dep_paths() - - assert ws_dep_paths == [ - "/packages/bar", - "/packages/baz", - ] - - -def test_get_workspace_dep_paths_with_custom_base_path(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - "devDependencies": { - "@yandex-int/baz": "workspace:../baz", - }, - } - - ws_dep_paths = pj.get_workspace_dep_paths(base_path="custom/dir") - - assert ws_dep_paths == [ - "custom/bar", - "custom/baz", - ] - - -def test_get_workspace_deps_ok(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - "devDependencies": { - "@yandex-int/baz": "workspace:../baz", - }, - } - - def load_mock(cls, path): - p = PackageJson(path) - p.data = { - "name": "@yandex-int/{}".format(os.path.basename(os.path.dirname(path))), - } - return p - PackageJson.load = classmethod(load_mock) - - ws_deps = pj.get_workspace_deps() - - assert len(ws_deps) == 2 - assert ws_deps[0].path == "/packages/bar/package.json" - assert ws_deps[1].path == "/packages/baz/package.json" - - -def test_get_workspace_deps_with_wrong_name(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - } - - def load_mock(cls, path): - p = PackageJson(path) - p.data = { - "name": "@shouldbe/{}".format(os.path.basename(os.path.dirname(path))), - } - return p - PackageJson.load = classmethod(load_mock) - - with pytest.raises(PackageJsonWorkspaceError) as e: - pj.get_workspace_deps() - - assert str(e.value) == "Workspace dependency name mismatch, found '@yandex-int/bar' instead of '@shouldbe/bar' in /packages/foo/package.json" - - -def test_get_workspace_map_ok(): - pj = PackageJson("/packages/foo/package.json") - pj.data = { - "dependencies": { - "@yandex-int/bar": "workspace:../bar", - }, - } - - def load_mock(cls, path): - name = os.path.basename(os.path.dirname(path)) - p = PackageJson(path) - p.data = { - "name": "@yandex-int/{}".format(name), - "dependencies": ({"@yandex-int/qux": "workspace:../qux"} if name == "bar" else {}), - } - return p - PackageJson.load = classmethod(load_mock) - - ws_map = pj.get_workspace_map() - - assert len(ws_map) == 3 - assert ws_map["/packages/foo"][0].path == "/packages/foo/package.json" - assert ws_map["/packages/foo"][1] == 0 - assert ws_map["/packages/bar"][0].path == "/packages/bar/package.json" - assert ws_map["/packages/bar"][1] == 1 - assert ws_map["/packages/qux"][0].path == "/packages/qux/package.json" - assert ws_map["/packages/qux"][1] == 2 diff --git a/build/plugins/lib/nots/package_manager/base/tests/utils.py b/build/plugins/lib/nots/package_manager/base/tests/utils.py deleted file mode 100644 index 4287beec47..0000000000 --- a/build/plugins/lib/nots/package_manager/base/tests/utils.py +++ /dev/null @@ -1,15 +0,0 @@ -from build.plugins.lib.nots.package_manager.base import utils - - -def test_extract_package_name_from_path(): - happy_checklist = [ - ("@yandex-int/foo-bar-baz/some/path/inside/the/package", "@yandex-int/foo-bar-baz"), - ("@yandex-int/foo-bar-buzz", "@yandex-int/foo-bar-buzz"), - ("package-wo-scope", "package-wo-scope"), - ("p", "p"), - ("", ""), - ] - - for item in happy_checklist: - package_name = utils.extract_package_name_from_path(item[0]) - assert package_name == item[1] diff --git a/build/plugins/lib/nots/package_manager/base/tests/ya.make b/build/plugins/lib/nots/package_manager/base/tests/ya.make deleted file mode 100644 index 1bece69c33..0000000000 --- a/build/plugins/lib/nots/package_manager/base/tests/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -PY23_TEST() - -OWNER(g:frontend-build-platform) - -TEST_SRCS( - package_json.py - utils.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager/base -) - -END() diff --git a/build/plugins/lib/nots/package_manager/base/utils.py b/build/plugins/lib/nots/package_manager/base/utils.py deleted file mode 100644 index 017bf4ca41..0000000000 --- a/build/plugins/lib/nots/package_manager/base/utils.py +++ /dev/null @@ -1,29 +0,0 @@ -import os - -from .constants import PACKAGE_JSON_FILENAME, NODE_MODULES_DIRNAME, NODE_MODULES_BUNDLE_FILENAME - - -def s_rooted(p): - return os.path.join("$S", p) - - -def b_rooted(p): - return os.path.join("$B", p) - - -def build_pj_path(p): - return os.path.join(p, PACKAGE_JSON_FILENAME) - - -def build_nm_path(p): - return os.path.join(p, NODE_MODULES_DIRNAME) - - -def build_nm_bundle_path(p): - return os.path.join(p, NODE_MODULES_BUNDLE_FILENAME) - - -def extract_package_name_from_path(p): - # if we have scope prefix then we are using the first two tokens, otherwise - only the first one - parts = p.split("/", 2) - return "/".join(parts[:2]) if p.startswith("@") else parts[0] diff --git a/build/plugins/lib/nots/package_manager/base/ya.make b/build/plugins/lib/nots/package_manager/base/ya.make deleted file mode 100644 index 4b7f22f05a..0000000000 --- a/build/plugins/lib/nots/package_manager/base/ya.make +++ /dev/null @@ -1,23 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py - constants.py - lockfile.py - node_modules_bundler.py - package_json.py - package_manager.py - utils.py -) - -PEERDIR( - contrib/python/six -) - -END() - -RECURSE_FOR_TESTS( - tests -) diff --git a/build/plugins/lib/nots/package_manager/pnpm/__init__.py b/build/plugins/lib/nots/package_manager/pnpm/__init__.py deleted file mode 100644 index b3a3c20c02..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from . import constants -from .lockfile import PnpmLockfile -from .package_manager import PnpmPackageManager -from .workspace import PnpmWorkspace - - -__all__ = [ - "constants", - "PnpmLockfile", - "PnpmPackageManager", - "PnpmWorkspace", -] diff --git a/build/plugins/lib/nots/package_manager/pnpm/constants.py b/build/plugins/lib/nots/package_manager/pnpm/constants.py deleted file mode 100644 index e84a78c55e..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/constants.py +++ /dev/null @@ -1,2 +0,0 @@ -PNPM_WS_FILENAME = "pnpm-workspace.yaml" -PNPM_LOCKFILE_FILENAME = "pnpm-lock.yaml" diff --git a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py b/build/plugins/lib/nots/package_manager/pnpm/lockfile.py deleted file mode 100644 index 19c748e55b..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py +++ /dev/null @@ -1,162 +0,0 @@ -import base64 -import binascii -import yaml -import os - -from six.moves.urllib import parse as urlparse -from six import iteritems - -from ..base import PackageJson, BaseLockfile, LockfilePackageMeta, LockfilePackageMetaInvalidError - - -class PnpmLockfile(BaseLockfile): - IMPORTER_KEYS = PackageJson.DEP_KEYS + ("specifiers",) - - def read(self): - with open(self.path, "r") as f: - self.data = yaml.load(f, Loader=yaml.CSafeLoader) - - def write(self, path=None): - """ - :param path: path to store lockfile, defaults to original path - :type path: str - """ - if path is None: - path = self.path - - with open(path, "w") as f: - yaml.dump(self.data, f, Dumper=yaml.CSafeDumper) - - def get_packages_meta(self): - """ - Extracts packages meta from lockfile. - :rtype: list of LockfilePackageMeta - """ - packages = self.data.get("packages", {}) - - return map(lambda x: _parse_package_meta(*x), iteritems(packages)) - - def update_tarball_resolutions(self, fn): - """ - :param fn: maps `LockfilePackageMeta` instance to new `resolution.tarball` value - :type fn: lambda - """ - packages = self.data.get("packages", {}) - - for key, meta in iteritems(packages): - meta["resolution"]["tarball"] = fn(_parse_package_meta(key, meta)) - packages[key] = meta - - def get_importers(self): - """ - Returns "importers" section from the lockfile or creates similar structure from "dependencies" and "specifiers". - :rtype: dict of dict of dict of str - """ - importers = self.data.get("importers") - if importers is not None: - return importers - - importer = {k: self.data[k] for k in self.IMPORTER_KEYS if k in self.data} - - return ({".": importer} if importer else {}) - - def merge(self, lf): - """ - Merges two lockfiles: - 1. Converts the lockfile to monorepo-like lockfile with "importers" section instead of "dependencies" and "specifiers". - 2. Merges `lf`'s dependencies and specifiers to importers. - 3. Merges `lf`'s packages to the lockfile. - :param lf: lockfile to merge - :type lf: PnpmLockfile - """ - importers = self.get_importers() - build_path = os.path.dirname(self.path) - - for [importer, imports] in iteritems(lf.get_importers()): - importer_path = os.path.normpath(os.path.join(os.path.dirname(lf.path), importer)) - importer_rel_path = os.path.relpath(importer_path, build_path) - importers[importer_rel_path] = imports - - self.data["importers"] = importers - - for k in self.IMPORTER_KEYS: - self.data.pop(k, None) - - packages = self.data.get("packages", {}) - for k, v in iteritems(lf.data.get("packages", {})): - if k not in packages: - packages[k] = v - self.data["packages"] = packages - - -def _parse_package_meta(key, meta): - """ - :param key: uniq package key from lockfile - :type key: string - :param meta: package meta dict from lockfile - :type meta: dict - :rtype: LockfilePackageMetaInvalidError - """ - try: - name, version = _parse_package_key(key) - sky_id = _parse_sky_id_from_tarball_url(meta["resolution"]["tarball"]) - integrity_algorithm, integrity = _parse_package_integrity(meta["resolution"]["integrity"]) - except KeyError as e: - raise TypeError("Invalid package meta for key {}, missing {} key".format(key, e)) - except LockfilePackageMetaInvalidError as e: - raise TypeError("Invalid package meta for key {}, parse error: {}".format(key, e)) - - return LockfilePackageMeta(name, version, sky_id, integrity, integrity_algorithm) - - -def _parse_package_key(key): - """ - Returns tuple of scoped package name and version. - :param key: package key in format "/({scope}/)?{package_name}/{package_version}(_{peer_dependencies})?" - :type key: string - :rtype: (str, str) - """ - try: - tokens = key.split("/")[1:] - version = tokens.pop().split("_", 1)[0] - - if len(tokens) < 1 or len(tokens) > 2: - raise TypeError() - except (IndexError, TypeError): - raise LockfilePackageMetaInvalidError("Invalid package key") - - return ("/".join(tokens), version) - - -def _parse_sky_id_from_tarball_url(tarball_url): - """ - :param tarball_url: tarball url - :type tarball_url: string - :rtype: string - """ - if tarball_url.startswith("file:"): - return "" - - rbtorrent_param = urlparse.parse_qs(urlparse.urlparse(tarball_url).query).get("rbtorrent") - - if rbtorrent_param is None: - raise LockfilePackageMetaInvalidError("Missing rbtorrent param in tarball url {}".format(tarball_url)) - - return "rbtorrent:{}".format(rbtorrent_param[0]) - - -def _parse_package_integrity(integrity): - """ - Returns tuple of algorithm and hash (hex). - :param integrity: package integrity in format "{algo}-{base64_of_hash}" - :type integrity: string - :rtype: (str, str) - """ - algo, hash_b64 = integrity.split("-", 1) - - try: - hash_hex = binascii.hexlify(base64.b64decode(hash_b64)) - except TypeError as e: - raise LockfilePackageMetaInvalidError("Invalid package integrity encoding, integrity: {}, error: {}".format(integrity, e)) - - return (algo, hash_hex) diff --git a/build/plugins/lib/nots/package_manager/pnpm/package_manager.py b/build/plugins/lib/nots/package_manager/pnpm/package_manager.py deleted file mode 100644 index 5d41185336..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/package_manager.py +++ /dev/null @@ -1,215 +0,0 @@ -import os -import yaml - -from six import iteritems - -from ..base import BasePackageManager, PackageManagerError -from ..base.utils import build_pj_path, build_nm_path, build_nm_bundle_path, s_rooted, b_rooted -from ..base.node_modules_bundler import bundle_node_modules -from ..base.constants import NODE_MODULES_BUNDLE_FILENAME -from .lockfile import PnpmLockfile -from .workspace import PnpmWorkspace -from .utils import build_lockfile_path, build_ws_config_path - - -class PnpmPackageManager(BasePackageManager): - _STORE_NM_PATH = os.path.join(".pnpm", "store") - _VSTORE_NM_PATH = os.path.join(".pnpm", "virtual-store") - _STORE_VER = "v3" - - @classmethod - def load_lockfile(cls, path): - """ - :param path: path to lockfile - :type path: str - :rtype: PnpmLockfile - """ - return PnpmLockfile.load(path) - - @classmethod - def load_lockfile_from_dir(cls, dir_path): - """ - :param dir_path: path to directory with lockfile - :type dir_path: str - :rtype: PnpmLockfile - """ - return cls.load_lockfile(build_lockfile_path(dir_path)) - - def create_node_modules(self): - """ - Creates node_modules directory according to the lockfile. - """ - ws = self._prepare_workspace() - self._exec_command( - [ - "install", - "--offline", - "--frozen-lockfile", - "--public-hoist-pattern", - "", - "--store-dir", - self._nm_path(self._STORE_NM_PATH), - "--virtual-store-dir", - self._nm_path(self._VSTORE_NM_PATH), - "--no-verify-store-integrity", - "--package-import-method", - "hardlink", - "--ignore-pnpmfile", - "--ignore-scripts", - "--strict-peer-dependencies", - ] - ) - self._fix_stores_in_modules_yaml() - - bundle_node_modules( - build_root=self.build_root, - node_modules_path=self._nm_path(), - peers=ws.get_paths(base_path=self.module_path, ignore_self=True), - bundle_path=NODE_MODULES_BUNDLE_FILENAME, - ) - - def calc_node_modules_inouts(self): - """ - Returns input and output paths for command that creates `node_modules` bundle. - Inputs: - - source package.json and lockfile, - - built package.jsons of all deps, - - merged lockfiles and workspace configs of direct non-leave deps, - - tarballs. - Outputs: - - merged lockfile, - - generated workspace config, - - created node_modules bundle. - :rtype: (list of str, list of str) - """ - ins = [ - s_rooted(build_pj_path(self.module_path)), - s_rooted(build_lockfile_path(self.module_path)), - ] - outs = [ - b_rooted(build_lockfile_path(self.module_path)), - b_rooted(build_ws_config_path(self.module_path)), - b_rooted(build_nm_bundle_path(self.module_path)), - ] - - # Source lockfiles are used only to get tarballs info. - src_lf_paths = [build_lockfile_path(self.sources_path)] - pj = self.load_package_json_from_dir(self.sources_path) - - for [dep_src_path, (_, depth)] in iteritems(pj.get_workspace_map(ignore_self=True)): - dep_mod_path = dep_src_path[len(self.sources_root) + 1 :] - # pnpm requires all package.jsons. - ins.append(b_rooted(build_pj_path(dep_mod_path))) - - dep_lf_src_path = build_lockfile_path(dep_src_path) - if not os.path.isfile(dep_lf_src_path): - # It is ok for leaves. - continue - src_lf_paths.append(dep_lf_src_path) - - if depth == 1: - ins.append(b_rooted(build_ws_config_path(dep_mod_path))) - ins.append(b_rooted(build_lockfile_path(dep_mod_path))) - - for pkg in self.extract_packages_meta_from_lockfiles(src_lf_paths): - ins.append(b_rooted(self._contrib_tarball_path(pkg))) - - return (ins, outs) - - def extract_packages_meta_from_lockfiles(self, lf_paths): - """ - :type lf_paths: iterable of BaseLockfile - :rtype: iterable of LockfilePackageMeta - """ - tarballs = set() - - for lf_path in lf_paths: - try: - for pkg in self.load_lockfile(lf_path).get_packages_meta(): - if pkg.tarball_path not in tarballs: - tarballs.add(pkg.tarball_path) - yield pkg - except Exception as e: - raise PackageManagerError("Unable to process lockfile {}: {}".format(lf_path, e)) - - def _prepare_workspace(self): - """ - :rtype: PnpmWorkspace - """ - pj = self._build_package_json() - ws = PnpmWorkspace(build_ws_config_path(self.build_path)) - ws.set_from_package_json(pj) - dep_paths = ws.get_paths(ignore_self=True) - self._build_merged_workspace_config(ws, dep_paths) - self._build_merged_lockfile(dep_paths) - - return ws - - def _build_package_json(self): - """ - :rtype: PackageJson - """ - pj = self.load_package_json_from_dir(self.sources_path) - - if not os.path.exists(self.build_path): - os.makedirs(self.build_path, exist_ok=True) - - pj.path = build_pj_path(self.build_path) - pj.write() - - return pj - - def _build_merged_lockfile(self, dep_paths): - """ - :type dep_paths: list of str - :rtype: PnpmLockfile - """ - lf = self.load_lockfile_from_dir(self.sources_path) - # Change to the output path for correct path calcs on merging. - lf.path = build_lockfile_path(self.build_path) - - for dep_path in dep_paths: - lf_path = build_lockfile_path(dep_path) - if os.path.isfile(lf_path): - lf.merge(self.load_lockfile(lf_path)) - - lf.update_tarball_resolutions(lambda p: self._contrib_tarball_url(p)) - lf.write() - - def _build_merged_workspace_config(self, ws, dep_paths): - """ - NOTE: This method mutates `ws`. - :type ws: PnpmWorkspaceConfig - :type dep_paths: list of str - """ - for dep_path in dep_paths: - ws_config_path = build_ws_config_path(dep_path) - if os.path.isfile(ws_config_path): - ws.merge(PnpmWorkspace.load(ws_config_path)) - - ws.write() - - def _fix_stores_in_modules_yaml(self): - """ - Ensures that store paths are the same as would be after installing deps in the source dir. - This is required to reuse `node_modules` after build. - """ - with open(self._nm_path(".modules.yaml"), "r+") as f: - data = yaml.load(f, Loader=yaml.CSafeLoader) - # NOTE: pnpm requires absolute store path here. - data["storeDir"] = os.path.join(build_nm_path(self.sources_path), self._STORE_NM_PATH, self._STORE_VER) - data["virtualStoreDir"] = self._VSTORE_NM_PATH - f.seek(0) - yaml.dump(data, f, Dumper=yaml.CSafeDumper) - f.truncate() - - def _get_default_options(self): - return super(PnpmPackageManager, self)._get_default_options() + [ - "--stream", - "--reporter", - "append-only", - "--no-color", - ] - - def _get_debug_log_path(self): - return self._nm_path(".pnpm-debug.log") diff --git a/build/plugins/lib/nots/package_manager/pnpm/tests/lockfile.py b/build/plugins/lib/nots/package_manager/pnpm/tests/lockfile.py deleted file mode 100644 index 06315a4992..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/tests/lockfile.py +++ /dev/null @@ -1,320 +0,0 @@ -import pytest - -from build.plugins.lib.nots.package_manager.pnpm.lockfile import PnpmLockfile - - -def test_lockfile_get_packages_meta_ok(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/@babel/cli/7.6.2_@babel+core@7.6.2": { - "resolution": { - "integrity": "sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ==", - "tarball": "@babel%2fcli/-/cli-7.6.2.tgz?rbtorrent=cb1849da3e4947e56a8f6bde6a1ec42703ddd187", - }, - }, - }, - } - - packages = list(lf.get_packages_meta()) - pkg = packages[0] - - assert len(packages) == 1 - assert pkg.name == "@babel/cli" - assert pkg.version == "7.6.2" - assert pkg.sky_id == "rbtorrent:cb1849da3e4947e56a8f6bde6a1ec42703ddd187" - assert pkg.integrity == b"24367e4ff6ebf693df4f696600c272a490d34d31ccf5e3c3fc40f5d13463473255744572f89077891961cd8993b796243601efc561a55159cbb5dbfaaee883ad" - assert pkg.integrity_algorithm == "sha512" - - -def test_lockfile_get_packages_empty(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = {} - - assert len(list(lf.get_packages_meta())) == 0 - - -def test_package_meta_invalid_key(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "in/valid": {}, - }, - } - - with pytest.raises(TypeError) as e: - list(lf.get_packages_meta()) - - assert str(e.value) == "Invalid package meta for key in/valid, parse error: Invalid package key" - - -def test_package_meta_missing_resolution(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/valid/1.2.3": {}, - }, - } - - with pytest.raises(TypeError) as e: - list(lf.get_packages_meta()) - - assert str(e.value) == "Invalid package meta for key /valid/1.2.3, missing 'resolution' key" - - -def test_package_meta_missing_tarball(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/valid/1.2.3": { - "resolution": {}, - }, - }, - } - - with pytest.raises(TypeError) as e: - list(lf.get_packages_meta()) - - assert str(e.value) == "Invalid package meta for key /valid/1.2.3, missing 'tarball' key" - - -def test_package_meta_missing_rbtorrent(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/valid/1.2.3": { - "resolution": { - "tarball": "valid-1.2.3.tgz", - }, - }, - }, - } - - with pytest.raises(TypeError) as e: - list(lf.get_packages_meta()) - - assert str(e.value) == "Invalid package meta for key /valid/1.2.3, parse error: Missing rbtorrent param in tarball url valid-1.2.3.tgz" - - -def test_lockfile_meta_file_tarball(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/@babel/cli/7.6.2": { - "resolution": { - "integrity": "sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ==", - "tarball": "file:/some/abs/path.tgz", - }, - }, - }, - } - - packages = list(lf.get_packages_meta()) - pkg = packages[0] - - assert len(packages) == 1 - assert pkg.name == "@babel/cli" - assert pkg.version == "7.6.2" - assert pkg.sky_id == "" - - -def test_lockfile_update_tarball_resolutions_ok(): - lf = PnpmLockfile(path="/pnpm-lock.yaml") - lf.data = { - "packages": { - "/@babel/cli/7.6.2_@babel+core@7.6.2": { - "resolution": { - "integrity": "sha512-JDZ+T/br9pPfT2lmAMJypJDTTTHM9ePD/ED10TRjRzJVdEVy+JB3iRlhzYmTt5YkNgHvxWGlUVnLtdv6ruiDrQ==", - "tarball": "@babel%2fcli/-/cli-7.6.2.tgz?rbtorrent=cb1849da3e4947e56a8f6bde6a1ec42703ddd187", - }, - }, - }, - } - - lf.update_tarball_resolutions(lambda p: p.name) - - assert lf.data["packages"]["/@babel/cli/7.6.2_@babel+core@7.6.2"]["resolution"]["tarball"] == "@babel/cli" - - -def test_lockfile_merge(): - lf1 = PnpmLockfile(path="/foo/pnpm-lock.yaml") - lf1.data = { - "dependencies": { - "a": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - }, - "packages": { - "/a/1.0.0": {}, - }, - } - - lf2 = PnpmLockfile(path="/bar/pnpm-lock.yaml") - lf2.data = { - "dependencies": { - "b": "1.0.0", - }, - "specifiers": { - "b": "1.0.0", - }, - "packages": { - "/b/1.0.0": {}, - }, - } - - lf3 = PnpmLockfile(path="/another/baz/pnpm-lock.yaml") - lf3.data = { - "importers": { - ".": { - "dependencies": { - "@a/qux": "link:../qux", - "a": "1.0.0", - }, - "specifiers": { - "@a/qux": "workspace:../qux", - "a": "1.0.0", - }, - }, - "../qux": { - "dependencies": { - "b": "1.0.1", - }, - "specifiers": { - "b": "1.0.1", - }, - }, - }, - "packages": { - "/a/1.0.0": {}, - "/b/1.0.1": {}, - }, - } - - lf4 = PnpmLockfile(path="/another/quux/pnpm-lock.yaml") - lf4.data = { - "dependencies": { - "@a/bar": "link:../../bar", - }, - "specifiers": { - "@a/bar": "workspace:../../bar", - }, - } - - lf1.merge(lf2) - lf1.merge(lf3) - lf1.merge(lf4) - - assert lf1.data == { - "importers": { - ".": { - "dependencies": { - "a": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - }, - }, - "../bar": { - "dependencies": { - "b": "1.0.0", - }, - "specifiers": { - "b": "1.0.0", - }, - }, - "../another/baz": { - "dependencies": { - "@a/qux": "link:../qux", - "a": "1.0.0", - }, - "specifiers": { - "@a/qux": "workspace:../qux", - "a": "1.0.0", - }, - }, - "../another/qux": { - "dependencies": { - "b": "1.0.1", - }, - "specifiers": { - "b": "1.0.1", - }, - }, - "../another/quux": { - "dependencies": { - "@a/bar": "link:../../bar", - }, - "specifiers": { - "@a/bar": "workspace:../../bar", - }, - }, - }, - "packages": { - "/a/1.0.0": {}, - "/b/1.0.0": {}, - "/b/1.0.1": {}, - }, - } - - -def test_lockfile_merge_dont_overrides_packages(): - lf1 = PnpmLockfile(path="/foo/pnpm-lock.yaml") - lf1.data = { - "dependencies": { - "a": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - }, - "packages": { - "/a/1.0.0": {}, - }, - } - - lf2 = PnpmLockfile(path="/bar/pnpm-lock.yaml") - lf2.data = { - "dependencies": { - "a": "1.0.0", - "b": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - "b": "1.0.0", - }, - "packages": { - "/a/1.0.0": { - "overriden": True, - }, - "/b/1.0.0": {}, - }, - } - - lf1.merge(lf2) - - assert lf1.data == { - "importers": { - ".": { - "dependencies": { - "a": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - }, - }, - "../bar": { - "dependencies": { - "a": "1.0.0", - "b": "1.0.0", - }, - "specifiers": { - "a": "1.0.0", - "b": "1.0.0", - }, - }, - }, - "packages": { - "/a/1.0.0": {}, - "/b/1.0.0": {}, - }, - } diff --git a/build/plugins/lib/nots/package_manager/pnpm/tests/workspace.py b/build/plugins/lib/nots/package_manager/pnpm/tests/workspace.py deleted file mode 100644 index 5d11dd9e5d..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/tests/workspace.py +++ /dev/null @@ -1,68 +0,0 @@ -from build.plugins.lib.nots.package_manager.base import PackageJson -from build.plugins.lib.nots.package_manager.pnpm.workspace import PnpmWorkspace - - -def test_workspace_get_paths(): - ws = PnpmWorkspace(path="/packages/foo/pnpm-workspace.yaml") - ws.packages = set([".", "../bar", "../../another/baz"]) - - assert sorted(ws.get_paths()) == [ - "/another/baz", - "/packages/bar", - "/packages/foo", - ] - - -def test_workspace_get_paths_with_custom_base_path_without_self(): - ws = PnpmWorkspace(path="/packages/foo/pnpm-workspace.yaml") - ws.packages = set([".", "../bar", "../../another/baz"]) - - assert sorted(ws.get_paths(base_path="some/custom/dir", ignore_self=True)) == [ - "some/another/baz", - "some/custom/bar", - ] - - -def test_workspace_set_from_package_json(): - ws = PnpmWorkspace(path="/packages/foo/pnpm-workspace.yaml") - pj = PackageJson(path="/packages/foo/package.json") - pj.data = { - "dependencies": { - "@a/bar": "workspace:../bar", - }, - "devDependencies": { - "@a/baz": "workspace:../../another/baz", - }, - "peerDependencies": { - "@a/qux": "workspace:../../another/qux", - }, - "optionalDependencies": { - "@a/quux": "workspace:../../another/quux", - } - } - - ws.set_from_package_json(pj) - - assert sorted(ws.get_paths()) == [ - "/another/baz", - "/another/quux", - "/another/qux", - "/packages/bar", - "/packages/foo", - ] - - -def test_workspace_merge(): - ws1 = PnpmWorkspace(path="/packages/foo/pnpm-workspace.yaml") - ws1.packages = set([".", "../bar", "../../another/baz"]) - ws2 = PnpmWorkspace(path="/another/baz/pnpm-workspace.yaml") - ws2.packages = set([".", "../qux"]) - - ws1.merge(ws2) - - assert sorted(ws1.get_paths()) == [ - "/another/baz", - "/another/qux", - "/packages/bar", - "/packages/foo", - ] diff --git a/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make b/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make deleted file mode 100644 index 44877dfc1b..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make +++ /dev/null @@ -1,15 +0,0 @@ -PY23_TEST() - -OWNER(g:frontend-build-platform) - -TEST_SRCS( - lockfile.py - workspace.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager/base - build/plugins/lib/nots/package_manager/pnpm -) - -END() diff --git a/build/plugins/lib/nots/package_manager/pnpm/utils.py b/build/plugins/lib/nots/package_manager/pnpm/utils.py deleted file mode 100644 index 1fa4291b9d..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/utils.py +++ /dev/null @@ -1,11 +0,0 @@ -import os - -from .constants import PNPM_LOCKFILE_FILENAME, PNPM_WS_FILENAME - - -def build_lockfile_path(p): - return os.path.join(p, PNPM_LOCKFILE_FILENAME) - - -def build_ws_config_path(p): - return os.path.join(p, PNPM_WS_FILENAME) diff --git a/build/plugins/lib/nots/package_manager/pnpm/workspace.py b/build/plugins/lib/nots/package_manager/pnpm/workspace.py deleted file mode 100644 index 9df0d2de0c..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/workspace.py +++ /dev/null @@ -1,75 +0,0 @@ -import os -import yaml - - -class PnpmWorkspace(object): - @classmethod - def load(cls, path): - ws = cls(path) - ws.read() - - return ws - - def __init__(self, path): - if not os.path.isabs(path): - raise TypeError("Absolute path required, given: {}".format(path)) - - self.path = path - # NOTE: pnpm requires relative workspace paths. - self.packages = set() - - def read(self): - with open(self.path) as f: - self.packages = set(yaml.load(f, Loader=yaml.CSafeLoader).get("packages", [])) - - def write(self, path=None): - if not path: - path = self.path - - with open(path, "w") as f: - data = { - "packages": list(self.packages), - } - yaml.dump(data, f, Dumper=yaml.CSafeDumper) - - def get_paths(self, base_path=None, ignore_self=False): - """ - Returns absolute paths of the workspace packages. - :param base_path: base path to resolve relative dep paths - :type base_path: str - :param ignore_self: whether path of the current module will be excluded (if present) - :type ignore_self: bool - :rtype: list of str - """ - if base_path is None: - base_path = os.path.dirname(self.path) - - return [os.path.normpath(os.path.join(base_path, pkg_path)) - for pkg_path in self.packages if not ignore_self or pkg_path != "."] - - def set_from_package_json(self, package_json): - """ - Sets packages to "workspace" deps from given package.json. - :param package_json: package.json of workspace - :type package_json: PackageJson - """ - if os.path.dirname(package_json.path) != os.path.dirname(self.path): - raise TypeError( - "package.json should be in workspace directory {}, given: {}".format(os.path.dirname(self.path), package_json.path)) - - self.packages = set(path for _, path in package_json.get_workspace_dep_spec_paths()) - # Add relative path to self. - self.packages.add(".") - - def merge(self, ws): - """ - Adds `ws`'s packages to the workspace. - :param ws: workspace to merge - :type ws: PnpmWorkspace - """ - dir_path = os.path.dirname(self.path) - ws_dir_path = os.path.dirname(ws.path) - - for p_rel_path in ws.packages: - p_path = os.path.normpath(os.path.join(ws_dir_path, p_rel_path)) - self.packages.add(os.path.relpath(p_path, dir_path)) diff --git a/build/plugins/lib/nots/package_manager/pnpm/ya.make b/build/plugins/lib/nots/package_manager/pnpm/ya.make deleted file mode 100644 index f57ae4a2ba..0000000000 --- a/build/plugins/lib/nots/package_manager/pnpm/ya.make +++ /dev/null @@ -1,24 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py - constants.py - lockfile.py - package_manager.py - workspace.py - utils.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager/base - contrib/python/PyYAML - contrib/python/six -) - -END() - -RECURSE_FOR_TESTS( - tests -) diff --git a/build/plugins/lib/nots/package_manager/ya.make b/build/plugins/lib/nots/package_manager/ya.make deleted file mode 100644 index 3ac1ea9103..0000000000 --- a/build/plugins/lib/nots/package_manager/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager/base - build/plugins/lib/nots/package_manager/pnpm -) - -END() diff --git a/build/plugins/lib/nots/semver/__init__.py b/build/plugins/lib/nots/semver/__init__.py deleted file mode 100644 index 05dd8e9b5a..0000000000 --- a/build/plugins/lib/nots/semver/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .semver import Version, Operator, VersionRange - -__all__ = [ - "Version", "Operator", "VersionRange", -] diff --git a/build/plugins/lib/nots/semver/semver.py b/build/plugins/lib/nots/semver/semver.py deleted file mode 100644 index d7dcc26c2c..0000000000 --- a/build/plugins/lib/nots/semver/semver.py +++ /dev/null @@ -1,228 +0,0 @@ -import re - - -class Version: - """ - This class is intended to provide utility methods to work with semver ranges. - Right now it is limited to the simplest case: a ">=" operator followed by an exact version with no prerelease or build specification. - Example: ">= 1.2.3" - """ - - @classmethod - def from_str(cls, input): - """ - :param str input: save exact formatted version e.g. 1.2.3 - :rtype: Version - :raises: ValueError - """ - parts = input.strip().split(".", 2) - major = int(parts[0]) - minor = int(parts[1]) - patch = int(parts[2]) - - return cls(major, minor, patch) - - STABLE_VERSION_RE = re.compile(r'^\d+\.\d+\.\d+$') - - @classmethod - def is_stable(cls, v): - """ - Verifies that the version is in a supported format. - - :param v:string with the version - :return: bool - """ - return cls.STABLE_VERSION_RE.match(v) is not None - - @classmethod - def cmp(cls, a, b): - """ - Compare two versions. Should be used with "cmp_to_key" wrapper in sorted(), min(), max()... - - For example: - sorted(["1.2.3", "2.4.2", "1.2.7"], key=cmp_to_key(Version.cmp)) - - :param a:string with version or Version instance - :param b:string with version or Version instance - :return: int - :raises: ValueError - """ - a_version = a if isinstance(a, cls) else cls.from_str(a) - b_version = b if isinstance(b, cls) else cls.from_str(b) - - if a_version > b_version: - return 1 - elif a_version < b_version: - return -1 - else: - return 0 - - __slots__ = ("_values") - - def __init__(self, major, minor, patch): - """ - :param int major - :param int minor - :param int patch - :raises ValueError - """ - version_parts = { - "major": major, - "minor": minor, - "patch": patch, - } - - for name, value in version_parts.items(): - value = int(value) - version_parts[name] = value - if value < 0: - raise ValueError( - "{!r} is negative. A version can only be positive.".format(name) - ) - - self._values = (version_parts["major"], version_parts["minor"], version_parts["patch"]) - - def __str__(self): - return "{}.{}.{}".format(self._values[0], self._values[1], self._values[2]) - - def __repr__(self): - return '<Version({})>'.format(self) - - def __eq__(self, other): - """ - :param Version other - :rtype: bool - """ - return self.as_tuple() == other.as_tuple() - - def __ne__(self, other): - return self.as_tuple() != other.as_tuple() - - def __gt__(self, other): - """ - :param Version other - :rtype: bool - """ - return self.as_tuple() > other.as_tuple() - - def __ge__(self, other): - """ - :param Version other - :rtype: bool - """ - return self.as_tuple() >= other.as_tuple() - - def __lt__(self, other): - """ - :param Version other - :rtype: bool - """ - return self.as_tuple() < other.as_tuple() - - def __le__(self, other): - """ - :param Version other - :rtype: bool - """ - return self.as_tuple() <= other.as_tuple() - - @property - def major(self): - """The major part of the version (read-only).""" - return self._values[0] - - @major.setter - def major(self, value): - raise AttributeError("Attribute 'major' is readonly") - - @property - def minor(self): - """The minor part of the version (read-only).""" - return self._values[1] - - @minor.setter - def minor(self, value): - raise AttributeError("Attribute 'minor' is readonly") - - @property - def patch(self): - """The patch part of the version (read-only).""" - return self._values[2] - - @patch.setter - def patch(self, value): - raise AttributeError("Attribute 'patch' is readonly") - - def as_tuple(self): - """ - :rtype: tuple - """ - return self._values - - -class Operator: - EQ = "=" - GT = ">" - GE = ">=" - LT = "<" - LE = "<=" - - -class VersionRange: - @classmethod - def from_str(cls, input): - """ - :param str input - :rtype: VersionRange - :raises: ValueError - """ - parts = input.strip().split(Operator.GE) # the only supported range operator at the moment - - if len(parts) != 2 or parts[0] != "": - raise ValueError("Unsupported version range: '{}'. Currently we only support ranges formatted like so: '>= 1.2.3'".format(input)) - - version = Version.from_str(parts[1]) - - return cls(Operator.GE, version) - - __slots__ = ("_operator", "_version") - - def __init__(self, operator, version): - """ - :param str operator - :raises: ValueError - """ - if operator != Operator.GE: - raise ValueError("Unsupported range operator '{}'".format(operator)) - - self._operator = operator - self._version = version - - @property - def operator(self): - """The comparison operator to be used (read-only).""" - return self._operator - - @operator.setter - def operator(self, value): - raise AttributeError("Attribute 'operator' is readonly") - - @property - def version(self): - """Version to be used with the operator (read-only).""" - return self._version - - @version.setter - def version(self, value): - raise AttributeError("Attribute 'version' is readonly") - - def is_satisfied_by(self, version): - """ - :param Version version - :rtype: bool - :raises: ValueError - """ - if self._operator != Operator.GE: - raise ValueError("Unsupported operator '{}'".format(self._operator)) - - return version >= self._version diff --git a/build/plugins/lib/nots/semver/tests/test_version.py b/build/plugins/lib/nots/semver/tests/test_version.py deleted file mode 100644 index 0fa49ea15b..0000000000 --- a/build/plugins/lib/nots/semver/tests/test_version.py +++ /dev/null @@ -1,242 +0,0 @@ -from functools import cmp_to_key - -from build.plugins.lib.nots.semver import Version - - -def test_from_str(): - # arrange - version_str = "1.2.3" - - # act - version = Version.from_str(version_str) - - # assert - assert version.major == 1 - assert version.minor == 2 - assert version.patch == 3 - - -def test_from_str_bad_version(): - # arrange - version_str = "best version imaginable" - error = None - - # act - try: - Version.from_str(version_str) - except Exception as exception: - error = exception - - # assert - assert error is not None - - -def test_is_stable_true(): - # arrange - version_str = "1.2.3" - - # act + assert - assert Version.is_stable(version_str) - - -def test_is_stable_false(): - # arrange - version_str = "1.2.3-beta1" - - # act + assert - assert not Version.is_stable(version_str) - - -def test_is_stable_incorrect(): - # arrange - version_str = "v1.2.3" - - # act + assert - assert not Version.is_stable(version_str) - - -def test_cmp_lt(): - # arrange - a = Version.from_str("1.2.3") - b = Version.from_str("1.2.5") - - # act + assert - assert Version.cmp(a, b) == -1 - - -def test_cmp_gt(): - # arrange - a = Version.from_str("1.2.3") - b = Version.from_str("1.2.2") - - # act + assert - assert Version.cmp(a, b) == 1 - - -def test_cmp_eq(): - # arrange - a = Version.from_str("1.2.3") - b = Version.from_str("1.2.3") - - # act + assert - assert Version.cmp(a, b) == 0 - - -def test_cmp_lt_str(): - # arrange - a = "1.2.3" - b = "1.2.5" - - # act + assert - assert Version.cmp(a, b) == -1 - - -def test_cmp_gt_str(): - # arrange - a = "1.2.3" - b = "1.2.2" - - # act + assert - assert Version.cmp(a, b) == 1 - - -def test_cmp_eq_str(): - # arrange - a = "1.2.3" - b = "1.2.3" - - # act + assert - assert Version.cmp(a, b) == 0 - - -def test_cmp_usage_in_sorted_asc(): - # arrange - unsorted = ["1.2.3", "2.4.2", "1.2.7"] - - # act + assert - assert sorted(unsorted, key=cmp_to_key(Version.cmp)) == ["1.2.3", "1.2.7", "2.4.2"] - - -def test_cmp_usage_in_sorted_desc(): - # arrange - unsorted = ["1.2.3", "2.4.2", "1.2.7"] - - # act + assert - assert sorted(unsorted, key=cmp_to_key(Version.cmp), reverse=True) == ["2.4.2", "1.2.7", "1.2.3"] - - -def test_init_negative_numbers(): - # arrange - major = 1 - minor = -2 - patch = 3 - - error = None - - # act - try: - Version(major, minor, patch) - except Exception as exception: - error = exception - - # assert - assert isinstance(error, ValueError) - assert str(error) == "'minor' is negative. A version can only be positive." - - -def test_eq(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a == version_b - - -def test_eq_negative(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("3.2.1") - - # act + assert - assert not version_a == version_b - - -def test_ne(): - # arrange - version_a = Version.from_str("3.2.1") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a != version_b - - -def test_ne_negative(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("1.2.3") - - # act + assert - assert not version_a != version_b - - -def test_gt(): - # arrange - version_a = Version.from_str("3.2.1") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a > version_b - - -def test_ge_equals(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a >= version_b - - -def test_ge_exceeds(): - # arrange - version_a = Version.from_str("3.2.1") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a >= version_b - - -def test_lt(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("3.2.1") - - # act + assert - assert version_a < version_b - - -def test_le_equals(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("1.2.3") - - # act + assert - assert version_a <= version_b - - -def test_le_is_less(): - # arrange - version_a = Version.from_str("1.2.3") - version_b = Version.from_str("3.2.1") - - # act + assert - assert version_a <= version_b - - -def test_to_tuple(): - # arrange - version = Version.from_str("1.2.3") - - # act + assert - assert version.as_tuple() == (1, 2, 3) diff --git a/build/plugins/lib/nots/semver/tests/test_version_range.py b/build/plugins/lib/nots/semver/tests/test_version_range.py deleted file mode 100644 index b2a5e556b5..0000000000 --- a/build/plugins/lib/nots/semver/tests/test_version_range.py +++ /dev/null @@ -1,69 +0,0 @@ -from build.plugins.lib.nots.semver import Version, Operator, VersionRange - - -def test_from_str(): - # arrange - range_str = ">= 1.2.3" - - # act - range = VersionRange.from_str(range_str) - - # assert - assert isinstance(range, VersionRange) - assert range.operator == Operator.GE - - -def test_from_str_no_operator(): - # arrange - range_str = r"¯\_(ツ)_/¯" - error = None - - # act - try: - VersionRange.from_str(range_str) - except Exception as exception: - error = exception - - # assert - assert isinstance(error, ValueError) - assert str(error) == "Unsupported version range: '{}'. Currently we only support ranges formatted like so: '>= 1.2.3'".format(range_str) - - -def test_init(): - # arrange - operator = Operator.GE - version = Version.from_str("1.2.3") - - # act - range = VersionRange(operator, version) - - # assert - assert range.operator == Operator.GE - assert range.version == Version(1, 2, 3) - - -def test_is_satisfied_by_starts_with(): - # arrange - version = Version.from_str("1.2.3") - range = VersionRange.from_str(">= 1.2.3") - - # act + assert - assert range.is_satisfied_by(version) - - -def test_is_satisfied_by_includes(): - # arrange - version = Version.from_str("5.8.2") - range = VersionRange.from_str(">= 1.2.3") - - # act + assert - assert range.is_satisfied_by(version) - - -def test_is_satisfied_by_not_includes(): - # arrange - version = Version.from_str("1.2.2") - range = VersionRange.from_str(">= 1.2.3") - - # act + assert - assert not range.is_satisfied_by(version) diff --git a/build/plugins/lib/nots/semver/tests/ya.make b/build/plugins/lib/nots/semver/tests/ya.make deleted file mode 100644 index b7605505f3..0000000000 --- a/build/plugins/lib/nots/semver/tests/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -PY3TEST() - -OWNER(g:frontend-build-platform) - -PEERDIR( - build/plugins/lib/nots/semver -) - -TEST_SRCS( - test_version_range.py - test_version.py -) - -END() diff --git a/build/plugins/lib/nots/semver/ya.make b/build/plugins/lib/nots/semver/ya.make deleted file mode 100644 index 7d2be228f2..0000000000 --- a/build/plugins/lib/nots/semver/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py - semver.py -) - -END() - -RECURSE_FOR_TESTS( - tests -) diff --git a/build/plugins/lib/nots/typescript/__init__.py b/build/plugins/lib/nots/typescript/__init__.py deleted file mode 100644 index 95f458ac5f..0000000000 --- a/build/plugins/lib/nots/typescript/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .ts_config import TsConfig -from .ts_errors import TsError, TsValidationError - - -__all__ = [ - "TsConfig", - "TsError", - "TsValidationError", -] diff --git a/build/plugins/lib/nots/typescript/tests/ts_config.py b/build/plugins/lib/nots/typescript/tests/ts_config.py deleted file mode 100644 index 4b8fd675b3..0000000000 --- a/build/plugins/lib/nots/typescript/tests/ts_config.py +++ /dev/null @@ -1,86 +0,0 @@ -import pytest - -from build.plugins.lib.nots.typescript import TsConfig, TsValidationError - - -def test_ts_config_validate_valid(): - cfg = TsConfig(path="/tsconfig.json") - cfg.data = { - "compilerOptions": { - "rootDir": "./src", - "outDir": "./build", - }, - } - - cfg.validate() - - -def test_ts_config_validate_empty(): - cfg = TsConfig(path="/tsconfig.json") - - with pytest.raises(TsValidationError) as e: - cfg.validate() - - assert e.value.errors == [ - "'rootDir' option is required", - "'outDir' option is required", - ] - - -def test_ts_config_validate_invalid_common(): - cfg = TsConfig(path="/tsconfig.json") - cfg.data = { - "compilerOptions": { - "preserveSymlinks": True, - "rootDirs": [], - "outFile": "./foo.js", - }, - "references": [], - "files": [], - "include": [], - "exclude": [], - } - - with pytest.raises(TsValidationError) as e: - cfg.validate() - - assert e.value.errors == [ - "'rootDir' option is required", - "'outDir' option is required", - "'outFile' option is not supported", - "'preserveSymlinks' option is not supported due to pnpm limitations", - "'rootDirs' option is not supported, relative imports should have single root", - "'files' option is not supported, use 'include'", - "composite builds are not supported, use peerdirs in ya.make instead of 'references' option", - ] - - -def test_ts_config_validate_invalid_subdirs(): - cfg = TsConfig(path="/foo/tsconfig.json") - cfg.data = { - "compilerOptions": { - "rootDir": "/bar/src", - "outDir": "../bar/build", - }, - } - - with pytest.raises(TsValidationError) as e: - cfg.validate() - - assert e.value.errors == [ - "'outDir' should be a subdirectory of the module", - ] - - -def test_ts_config_compiler_options(): - cfg = TsConfig(path="/tsconfig.json") - - assert cfg.compiler_option("invalid") is None - - cfg.data = { - "compilerOptions": { - "rootDir": "src", - }, - } - - assert cfg.compiler_option("rootDir") == "src" diff --git a/build/plugins/lib/nots/typescript/tests/ya.make b/build/plugins/lib/nots/typescript/tests/ya.make deleted file mode 100644 index 44798138bc..0000000000 --- a/build/plugins/lib/nots/typescript/tests/ya.make +++ /dev/null @@ -1,13 +0,0 @@ -PY23_TEST() - -OWNER(g:frontend-build-platform) - -TEST_SRCS( - ts_config.py -) - -PEERDIR( - build/plugins/lib/nots/typescript -) - -END() diff --git a/build/plugins/lib/nots/typescript/ts_config.py b/build/plugins/lib/nots/typescript/ts_config.py deleted file mode 100644 index e3855b5f08..0000000000 --- a/build/plugins/lib/nots/typescript/ts_config.py +++ /dev/null @@ -1,300 +0,0 @@ -import copy -import os -import json - -from .ts_errors import TsError, TsValidationError - -from ..package_manager.base import utils - -DEFAULT_TS_CONFIG_FILE = "tsconfig.json" - - -def merge_dicts(d1, d2): - """ - Merges two dicts recursively assuming that both have similar structure. - If d1.x.y.z has different type than d2.x.y.z then d2 will override d1 and result value res.x.y.z == d2.x.y.z. - If corresponding values are lists then the result will have a sum of those lists. - """ - if isinstance(d1, dict) and isinstance(d2, dict): - for k in d2: - d1[k] = merge_dicts(d1[k], d2[k]) if k in d1 else d2[k] - else: - if isinstance(d1, list) and isinstance(d2, list): - return d1 + d2 - else: - return d2 - return d1 - - -class TsConfig(object): - @classmethod - def load(cls, path): - """ - :param path: tsconfig.json path - :type path: str - :rtype: TsConfig - """ - tsconfig = cls(path) - tsconfig.read() - - return tsconfig - - def __init__(self, path): - if not os.path.isabs(path): - raise TypeError("Absolute path required, given: {}".format(path)) - - self.path = path - self.data = {} - - def read(self): - try: - with open(self.path) as f: - self.data = json.load(f) - except Exception as e: - raise TsError("Failed to read tsconfig {}: {}".format(self.path, e)) - - def merge(self, rel_path, base_tsconfig): - """ - :param rel_path: relative path to the configuration file we are merging in. - It is required to set the relative paths correctly. - :type rel_path: str - :param base_tsconfig: base TsConfig we are merging with our TsConfig instance - :type base_tsconfig: dict - """ - if not base_tsconfig.data: - return - - def relative_path(p): - return os.path.normpath(os.path.join(rel_path, p)) - - base_config_data = copy.deepcopy(base_tsconfig.data) - - parameter_section_labels = ["compilerOptions", "typeAcquisition", "watchOptions"] - for opt_label in parameter_section_labels: - base_options = base_config_data.get(opt_label) - if not base_options: - continue - - new_options = self.data.get(opt_label) - for key in base_options: - val = base_options[key] - - # lists of paths - if key in ["extends", "outDir", "rootDir", "baseUrl", "include"]: - val = relative_path(val) - - # path string - elif key in ["rootDirs", "excludeDirectories", "excludeFiles"]: - val = map(relative_path, val) - - # dicts having paths as values - elif key in ["paths"]: - new_paths = new_options.get(key) - val = map(relative_path, val) + (new_paths if new_paths else []) - - base_options[key] = val - - if new_options and base_options: - base_options.update(new_options) - self.data[opt_label] = base_options - - base_config_data.update(self.data) - self.data = base_config_data - - def inline_extend(self, dep_paths): - """ - Merges the tsconfig parameters from configuration file referred by "extends" if any. - Relative paths are adjusted, current parameter values are prioritized higer than - those coming from extension file (according to TSC mergin rules). - Returns list of file paths for config files merged into the current configuration - :param dep_paths: dict of dependency names to their paths - :type dep_paths: dict - :rtype: list of str - """ - ext_value = self.data.get("extends") - if not ext_value: - return [] - - if ext_value.startswith("."): - base_config_path = ext_value - - else: - dep_name = utils.extract_package_name_from_path(ext_value) - # the rest part is the ext config path - file_path_start = len(dep_name) + 1 - file_path = ext_value[file_path_start:] - dep_path = dep_paths.get(dep_name) - if dep_path is None: - raise Exception( - "referenceing from {}, data: {}\n: Dependency '{}' not found in dep_paths: {}".format( - self.path, str(self.data), dep_name, dep_paths - ) - ) - base_config_path = os.path.join(dep_path, file_path) - - rel_path = os.path.dirname(base_config_path) - tsconfig_curdir_path = os.path.join(os.path.dirname(self.path), base_config_path) - if os.path.isdir(tsconfig_curdir_path): - base_config_path = os.path.join(base_config_path, DEFAULT_TS_CONFIG_FILE) - - # processing the base file recursively - base_config = TsConfig.load(os.path.join(os.path.dirname(self.path), base_config_path)) - paths = [base_config_path] + base_config.inline_extend(dep_paths) - - self.merge(rel_path, base_config) - del self.data["extends"] - - return paths - - def get_or_create_compiler_options(self): - """ - Returns ref to the "compilerOptions" dict. - :rtype: dict - """ - opts = self.data.get("compilerOptions") - if opts is None: - opts = {} - self.data["compilerOptions"] = opts - - return opts - - def prepend_include(self, value): - """ - Prepends `value` to `include` list - :param value: value to prepend - :type value: str - """ - includeList = self.data.get("include") - self.data["include"] = [value] + includeList - - def compiler_option(self, name, default=None): - """ - :param name: option key - :type name: str - :param default: default value - :type default: mixed - :rtype: mixed - """ - return self.get_or_create_compiler_options().get(name, default) - - def add_to_compiler_option(self, name, add_value): - """ - Merges the existing value with add_value for the option with label=name. - Merge is done recursively if the value is of a dict instance. - :param name: option key - :type name: str - :param value: option value to set - :type value: mixed - """ - default_value = {} if isinstance(add_value, dict) else [] - opts = self.get_or_create_compiler_options() - opts[name] = merge_dicts(opts.get(name, default_value), add_value) - - def inject_plugin(self, plugin): - """ - :param plugin: plugin dict (ts-patch compatible, see https://github.com/nonara/ts-patch) - :type plugin: dict of str - """ - opts = self.get_or_create_compiler_options() - if not opts.get("plugins"): - opts["plugins"] = [] - opts["plugins"].append(plugin) - - def validate(self): - """ - Checks whether the config is compatible with current toolchain. - """ - opts = self.get_or_create_compiler_options() - errors = [] - root_dir = opts.get("rootDir") - out_dir = opts.get("outDir") - config_dir = os.path.dirname(self.path) - - def is_mod_subdir(p): - return not os.path.isabs(p) and os.path.normpath(os.path.join(config_dir, p)).startswith(config_dir) - - if root_dir is None: - errors.append("'rootDir' option is required") - - if out_dir is None: - errors.append("'outDir' option is required") - elif not is_mod_subdir(out_dir): - errors.append("'outDir' should be a subdirectory of the module") - - if opts.get("outFile") is not None: - errors.append("'outFile' option is not supported") - - if opts.get("preserveSymlinks"): - errors.append("'preserveSymlinks' option is not supported due to pnpm limitations") - - if opts.get("rootDirs") is not None: - errors.append("'rootDirs' option is not supported, relative imports should have single root") - - if self.data.get("files") is not None: - errors.append("'files' option is not supported, use 'include'") - - if self.data.get("references") is not None: - errors.append("composite builds are not supported, use peerdirs in ya.make instead of 'references' option") - - if len(errors): - raise TsValidationError(self.path, errors) - - def transform_paths(self, build_path, sources_path, package_rel_path, nodejs_bin_path): - """ - Updates config with correct abs paths. - All source files/dirs will be mapped to `sources_path`, output files/dirs will be mapped to `build_path`. - :param build_path: module's build root - :type build_path: str - :param sources_path: module's source root - :type sources_path: str - :param package_rel_path: module's rel path to package root - :type package_rel_path: str - """ - opts = self.get_or_create_compiler_options() - - def sources_path_rel(x): - return os.path.normpath(os.path.join(sources_path, x)) - - def build_path_rel(x): - return os.path.normpath(os.path.join(build_path, x)) - - root_dir = opts["rootDir"] - out_dir = opts["outDir"] - - opts["rootDir"] = sources_path_rel(root_dir) - opts["outDir"] = build_path_rel(out_dir) - - if opts.get("typeRoots"): - opts["typeRoots"] = list(map(sources_path_rel, opts["typeRoots"])) + list( - map(build_path_rel, opts["typeRoots"]) - ) - - opts["baseUrl"] = os.path.normpath(os.path.join(package_rel_path, "node_modules")) - - include_dir_list = self.data.get("include") - if include_dir_list: - self.data["include"] = list(map(sources_path_rel, include_dir_list)) - - exclude_dir_list = self.data.get("exclude") - if exclude_dir_list: - self.data["exclude"] = list(map(sources_path_rel, exclude_dir_list)) - - if opts.get("sourceMap"): - opts["sourceRoot"] = os.path.relpath(root_dir, out_dir) - - opts["skipLibCheck"] = True - - node_types_path = os.path.join(os.path.dirname(nodejs_bin_path), "node_modules", "@types", "node") - # See: https://st.yandex-team.ru/FBP-47#62b4750775525b18f08205c7 - self.add_to_compiler_option("paths", {"*": ["*", "./@types/*", node_types_path]}) - - def write(self, path=None, indent=None): - """ - :param path: tsconfig path, defaults to original path - :type path: str - """ - if path is None: - path = self.path - - with open(path, "w") as f: - json.dump(self.data, f, indent=indent) diff --git a/build/plugins/lib/nots/typescript/ts_errors.py b/build/plugins/lib/nots/typescript/ts_errors.py deleted file mode 100644 index 105851d9ec..0000000000 --- a/build/plugins/lib/nots/typescript/ts_errors.py +++ /dev/null @@ -1,10 +0,0 @@ -class TsError(RuntimeError): - pass - - -class TsValidationError(TsError): - def __init__(self, path, errors): - self.path = path - self.errors = errors - - super(TsValidationError, self).__init__("Invalid tsconfig {}:\n{}".format(path, "\n".join(errors))) diff --git a/build/plugins/lib/nots/typescript/ya.make b/build/plugins/lib/nots/typescript/ya.make deleted file mode 100644 index 8847f9bbd3..0000000000 --- a/build/plugins/lib/nots/typescript/ya.make +++ /dev/null @@ -1,19 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py - ts_errors.py - ts_config.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager -) - -END() - -RECURSE_FOR_TESTS( - tests -) diff --git a/build/plugins/lib/nots/ya.make b/build/plugins/lib/nots/ya.make deleted file mode 100644 index b24c534033..0000000000 --- a/build/plugins/lib/nots/ya.make +++ /dev/null @@ -1,15 +0,0 @@ -PY23_LIBRARY() - -OWNER(g:frontend-build-platform) - -PY_SRCS( - __init__.py -) - -PEERDIR( - build/plugins/lib/nots/package_manager - build/plugins/lib/nots/semver - build/plugins/lib/nots/typescript -) - -END() diff --git a/build/plugins/lib/test_const/__init__.py b/build/plugins/lib/test_const/__init__.py deleted file mode 100644 index a3229bad25..0000000000 --- a/build/plugins/lib/test_const/__init__.py +++ /dev/null @@ -1,522 +0,0 @@ -# coding: utf-8 -import re - - -RESTART_TEST_INDICATOR = '##restart-test##' -INFRASTRUCTURE_ERROR_INDICATOR = '##infrastructure-error##' - -RESTART_TEST_INDICATORS = [ - RESTART_TEST_INDICATOR, - "network error", -] - -UID_PREFIX_DELIMITER = '-' - -# testing -BIN_DIRECTORY = 'bin' -CANON_DATA_DIR_NAME = "canondata" -CANON_RESULT_FILE_NAME = "result.json" -CANONIZATION_RESULT_FILE_NAME = "canonization_res.json" -COMMON_CONTEXT_FILE_NAME = "common_test.context" -CONSOLE_SNIPPET_LIMIT = 5000 -FAKE_OUTPUT_EXTS = frozenset([".mf", ".fake", ".cpf", ".cpsf"]) -LIST_NODE_LOG_FILE = "test_list.log" -LIST_NODE_RESULT_FILE = "test_list.json" -LIST_RESULT_NODE_LOG_FILE = "list_result.log" -LIST_TRACE_FILE_NAME = "ytest_list.report.trace" -MAX_FILE_SIZE = 1024 * 1024 * 2 # 2 MB -MAX_TEST_RESTART_COUNT = 3 -NO_LISTED_TESTS = "NO_LISTED_TESTS" -REPORT_SNIPPET_LIMIT = 12000 -SANITIZER_ERROR_RC = 100 -SUITE_CONTEXT_FILE_NAME = "test.context" -TEST_LIST_FILE = "test_names_list.json" -TEST_SUBTEST_SEPARATOR = '::' -TESTING_OUT_DIR_NAME = "testing_out_stuff" -TESTING_OUT_RAM_DRIVE_DIR_NAME = "ram_drive_output" -TESTING_OUT_TAR_NAME = TESTING_OUT_DIR_NAME + ".tar.zstd" -TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S.%f" -TRACE_FILE_NAME = "ytest.report.trace" -TRUNCATING_IGNORE_FILE_LIST = {TRACE_FILE_NAME, SUITE_CONTEXT_FILE_NAME, "run_test.log"} -YT_RUN_TEST_DIR_NAME = "yt_run_test" -YT_RUN_TEST_TAR_NAME = "yt_run_test.tar" -COVERAGE_CFLAGS = ["-fprofile-instr-generate", "-fcoverage-mapping", "-DCLANG_COVERAGE"] -COVERAGE_LDFLAGS = ["-fprofile-instr-generate", "-fcoverage-mapping"] - -MANDATORY_ENV_VAR_NAME = 'YA_MANDATORY_ENV_VARS' - -BUILD_FLAGS_ALLOWED_IN_CONTEXT = { - 'AUTOCHECK', - # Required for local test runs - 'TESTS_REQUESTED', - 'USE_ARCADIA_PYTHON', - 'USE_SYSTEM_PYTHON', -} - -STYLE_TEST_TYPES = [ - "classpath.clash", - "clang_tidy", - "eslint", - "flake8.py2", - "flake8.py3", - "gofmt", - "govet", - "java.style", - "ktlint", - "custom_lint", -] - -REGULAR_TEST_TYPES = [ - "benchmark", - "boost_test", - "exectest", - "fuzz", - "g_benchmark", - "go_bench", - "go_test", - "gtest", - "hermione", - "java", - "jest", - "py2test", - "py3test", - "pytest", - "unittest", -] - -TEST_NODE_OUTPUT_RESULTS = [TESTING_OUT_TAR_NAME, YT_RUN_TEST_TAR_NAME] - -# kvm -DEFAULT_RAM_REQUIREMENTS_FOR_KVM = 4 -MAX_RAM_REQUIREMENTS_FOR_KVM = 16 - -# distbuild -DISTBUILD_STATUS_REPORT_ENV_NAME = 'NODE_EXTENDED_STATUS_FILE_PATH' -DEFAULT_TEST_NODE_TIMEOUT = 15 * 60 -TEST_NODE_FINISHING_TIME = 5 * 60 - -# coverage -COVERAGE_FUNCTION_ENTRIES_LIMIT = 2 -COVERAGE_PYTHON_EXTS = (".py", ".pyx", ".pxi", ".pxd") - -COVERAGE_RESOLVED_FILE_NAME_PATTERN = "coverage_resolved.{}.json" -CPP_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("cpp") -GO_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("go") -JAVA_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("java") -NLG_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("nlg") -PYTHON2_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("py2") -PYTHON3_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("py3") -TS_COVERAGE_RESOLVED_FILE_NAME = COVERAGE_RESOLVED_FILE_NAME_PATTERN.format("ts") - -COVERAGE_CLANG_ENV_NAME = 'LLVM_PROFILE_FILE' -COVERAGE_GCOV_ENV_NAME = 'GCOV_PREFIX' -COVERAGE_GO_ENV_NAME = 'GO_COVERAGE_PREFIX' -COVERAGE_PYTHON_ENV_NAME = 'PYTHON_COVERAGE_PREFIX' -COVERAGE_TS_ENV_NAME = 'TS_COVERAGE_PREFIX' -COVERAGE_NLG_ENV_NAME = 'NLG_COVERAGE_FILENAME' -COVERAGE_ENV_VARS = ( - COVERAGE_CLANG_ENV_NAME, - COVERAGE_GCOV_ENV_NAME, - COVERAGE_GO_ENV_NAME, - COVERAGE_NLG_ENV_NAME, - COVERAGE_PYTHON_ENV_NAME, - COVERAGE_TS_ENV_NAME, -) -PYTHON_COVERAGE_PREFIX_FILTER_ENV_NAME = 'PYTHON_COVERAGE_PREFIX_FILTER' -PYTHON_COVERAGE_EXCLUDE_REGEXP_ENV_NAME = 'PYTHON_COVERAGE_EXCLUDE_REGEXP' - -CLANG_COVERAGE_TEST_TYPES = ( - "boost_test", - "coverage_extractor", - "exectest", - "gtest", - # java tests might use shared libraries - "java", - "py2test", - "py3test", - "pytest", - "unittest", -) -COVERAGE_TABLE_CHUNKS = 20 -COVERAGE_TESTS_TIMEOUT_FACTOR = 1.5 -COVERAGE_YT_PROXY = "hahn.yt.yandex.net" -COVERAGE_YT_ROOT_PATH = "//home/codecoverage" -COVERAGE_YT_TABLE_PREFIX = "datatable" - -# fuzzing -CORPUS_DATA_FILE_NAME = 'corpus.json' -CORPUS_DATA_ROOT_DIR = 'fuzzing' -CORPUS_DIR_NAME = 'corpus' -FUZZING_COVERAGE_ARGS = ['--sanitize-coverage=trace-div,trace-gep'] -FUZZING_COMPRESSION_COEF = 1.1 -FUZZING_DEFAULT_TIMEOUT = 3600 -FUZZING_FINISHING_TIME = 600 -FUZZING_TIMEOUT_RE = re.compile(r'(^|\s)-max_total_time=(?P<max_time>\d+)') -GENERATED_CORPUS_DIR_NAME = 'mined_corpus' -MAX_CORPUS_RESOURCES_ALLOWED = 5 - -# hermione -HERMIONE_REPORT_DIR_NAME = "hermione-report" -HERMIONE_REPORT_TAR_NAME = HERMIONE_REPORT_DIR_NAME + ".tar" -HERMIONE_REPORT_INDEX_FILE_NAME = "index.html" -HERMIONE_REPORT_DB_URLS_FILE_NAME = "databaseUrls.json" -HERMIONE_TESTS_READ_FILE_NAME = "tests.json" -HERMIONE_TESTS_READ_STDOUT_FILE_NAME = "read_tests.out" -HERMIONE_TESTS_READ_STDERR_FILE_NAME = "read_tests.err" -HERMIONE_TESTS_RUN_FILE_NAME = "test_results.jsonl" -HERMIONE_TESTS_RUN_STDOUT_FILE_NAME = "run_tests.out" -HERMIONE_TESTS_RUN_STDERR_FILE_NAME = "run_tests.err" - -# yt -YT_OPERATION_ID_SUBSTITUTION = '$OPERATION_ID' -YT_SANDBOX_ROOT_PREFIX = '$(YT_SANDBOX_ROOT)' - -# sandbox -SANDBOX_RUN_TEST_YT_TOKEN_VALUE_NAME = 'YA_MAKE_SANDBOX_RUN_TEST_YT_TOKEN' - -# global resources -ANDROID_AVD_ROOT = 'ANDROID_AVD_RESOURCE_GLOBAL' -ANDROID_SDK_ROOT = 'ANDROID_SDK_RESOURCE_GLOBAL' -COVERAGE_PUSH_TOOL_LOCAL = 'USE_SYSTEM_COVERAGE_PUSH_TOOL' -COVERAGE_PUSH_TOOL_RESOURCE = 'COVERAGE_PUSH_TOOL_RESOURCE_GLOBAL' -COVERAGE_PUSH_TOOL_LB_LOCAL = 'USE_SYSTEM_COVERAGE_PUSH_TOOL_LB' -COVERAGE_PUSH_TOOL_LB_RESOURCE = 'COVERAGE_PUSH_TOOL_LB_RESOURCE_GLOBAL' -FLAKE8_PY2_RESOURCE = 'FLAKE8_PY2_RESOURCE_GLOBAL' -FLAKE8_PY3_RESOURCE = 'FLAKE8_PY3_RESOURCE_GLOBAL' -GO_TOOLS_RESOURCE = 'GO_TOOLS_RESOURCE_GLOBAL' -JSTYLE_RUNNER_LIB = 'JSTYLE_LIB_RESOURCE_GLOBAL' -NODEJS_RESOURCE = 'NODEJS_RESOURCE_GLOBAL' -NYC_RESOURCE = 'NYC_RESOURCE_GLOBAL' -TEST_TOOL3_HOST = 'TEST_TOOL3_HOST_RESOURCE_GLOBAL' -TEST_TOOL3_HOST_LOCAL = 'TEST_TOOL3_HOST_LOCAL' -TEST_TOOL_HOST = 'TEST_TOOL_HOST_RESOURCE_GLOBAL' -TEST_TOOL_HOST_LOCAL = 'TEST_TOOL_HOST_LOCAL' -TEST_TOOL_TARGET = 'TEST_TOOL_TARGET_RESOURCE_GLOBAL' -TEST_TOOL_TARGET_LOCAL = 'TEST_TOOL_TARGET_LOCAL' -XCODE_TOOLS_RESOURCE = 'XCODE_TOOLS_ROOT_RESOURCE_GLOBAL' -WINE_TOOL = 'WINE_TOOL_RESOURCE_GLOBAL' -WINE32_TOOL = 'WINE32_TOOL_RESOURCE_GLOBAL' - - -class Enum(object): - @classmethod - def enumerate(cls): - return [v for k, v in cls.__dict__.items() if not k.startswith("_")] - - -class TestRequirements(Enum): - Container = 'container' - Cpu = 'cpu' - DiskUsage = 'disk_usage' - Dns = 'dns' - Kvm = 'kvm' - Network = 'network' - Ram = 'ram' - RamDisk = 'ram_disk' - SbVault = 'sb_vault' - YavSecret = 'yav' - - -class TestRequirementsConstants(Enum): - All = 'all' - AllCpuValue = 50 - AllRamDiskValue = 50 - MinCpu = 1 - MinRam = 1 - MinRamDisk = 0 - - @classmethod - def is_all_cpu(cls, value): - return value == cls.All - - @classmethod - def get_cpu_value(cls, value): - return cls.AllCpuValue if cls.is_all_cpu(value) else value - - @classmethod - def is_all_ram_disk(cls, value): - return value == cls.All - - @classmethod - def get_ram_disk_value(cls, value): - return cls.AllRamDiskValue if cls.is_all_ram_disk(value) else value - - -class TestSize(Enum): - Small = 'small' - Medium = 'medium' - Large = 'large' - - DefaultTimeouts = { - Small: 60, - Medium: 600, - Large: 3600, - } - - DefaultPriorities = { - Small: -1, - Medium: -2, - Large: -3, - } - - DefaultRequirements = { - Small: { - TestRequirements.Cpu: 1, - TestRequirements.Ram: 8, - # TestRequirements.Ram: 2, - TestRequirements.RamDisk: 0, - }, - Medium: { - TestRequirements.Cpu: 1, - TestRequirements.Ram: 8, - # TestRequirements.Ram: 4, - TestRequirements.RamDisk: 0, - }, - Large: { - TestRequirements.Cpu: 1, - TestRequirements.Ram: 8, - # TestRequirements.Ram: 8, - TestRequirements.RamDisk: 0, - }, - } - - MaxRequirements = { - Small: { - TestRequirements.Cpu: 4, - TestRequirements.Ram: 32, - # TestRequirements.Ram: 4, - TestRequirements.RamDisk: 32, - }, - Medium: { - TestRequirements.Cpu: 4, - # TestRequirements.Cpu: 8, - TestRequirements.Ram: 32, - # TestRequirements.Ram: 16, - TestRequirements.RamDisk: 32, - }, - Large: { - TestRequirements.Cpu: 4, - TestRequirements.Ram: 32, - TestRequirements.RamDisk: 32, - }, - } - - LargeMarker = "TL" - MediumMarker = "TM" - SmallMarker = "TS" - SizeMarkers = (LargeMarker, MediumMarker, SmallMarker) - - SizeShorthandMap = { - Large: LargeMarker, - Medium: MediumMarker, - Small: SmallMarker, - } - - @classmethod - def sizes(cls): - return cls.DefaultTimeouts.keys() - - @classmethod - def get_shorthand(cls, size): - return cls.SizeShorthandMap[size] - - @classmethod - def is_test_shorthand(cls, name): - return name in cls.SizeMarkers - - @classmethod - def get_default_timeout(cls, size): - if size in cls.DefaultTimeouts: - return cls.DefaultTimeouts[size] - raise Exception("Unknown test size '{}'".format(size)) - - @classmethod - def get_default_priorities(cls, size): - if size in cls.DefaultPriorities: - return cls.DefaultPriorities[size] - raise Exception("Unknown test size '{}'".format(size)) - - @classmethod - def get_default_requirements(cls, size): - if size in cls.DefaultRequirements: - return cls.DefaultRequirements[size] - raise Exception("Unknown test size '{}'".format(size)) - - @classmethod - def get_max_requirements(cls, size): - if size in cls.MaxRequirements: - return cls.MaxRequirements[size] - raise Exception("Unknown test size '{}'".format(size)) - - -class TestRunExitCode(Enum): - Skipped = 2 - Failed = 3 - TimeOut = 10 - InfrastructureError = 12 - - -class YaTestTags(Enum): - AlwaysMinimize = "ya:always_minimize" - Dirty = "ya:dirty" - DumpNodeEnvironment = "ya:dump_node_env" - DumpTestEnvironment = "ya:dump_test_env" - ExoticPlatform = "ya:exotic_platform" - External = "ya:external" - Fat = "ya:fat" - ForceDistbuild = "ya:force_distbuild" - ForceSandbox = "ya:force_sandbox" - GoNoSubtestReport = "ya:go_no_subtest_report" - GoTotalReport = "ya:go_total_report" - HugeLogs = "ya:huge_logs" - Manual = "ya:manual" - MapRootUser = "ya:map_root_user" - NoFuse = "ya:nofuse" - NoGracefulShutdown = "ya:no_graceful_shutdown" - Norestart = "ya:norestart" - Noretries = "ya:noretries" - NotAutocheck = "ya:not_autocheck" - Notags = "ya:notags" - PerfTest = "ya:perftest" - Privileged = "ya:privileged" - ReportChunks = "ya:report_chunks" - RunWithAsserts = "ya:relwithdebinfo" - SandboxCoverage = "ya:sandbox_coverage" - SequentialRun = "ya:sequential_run" - TraceOutput = "ya:trace_output" - YtRunner = "ya:yt" - - -class ServiceTags(Enum): - AnyTag = "ya:__any_tag" - - -class Status(object): - GOOD, XFAIL, FAIL, XPASS, MISSING, CRASHED, TIMEOUT = range(1, 8) - SKIPPED = -100 - NOT_LAUNCHED = -200 - CANON_DIFF = -300 - DESELECTED = -400 - INTERNAL = -int(2 ** 31 - 1) # maxint - FLAKY = -50 - # XFAILDIFF is internal status and should be replaced - # with XFAIL or XPASS during verification stage of canon data - XFAILDIFF = -90 - - BY_NAME = { - 'crashed': CRASHED, - 'deselected': DESELECTED, - 'diff': CANON_DIFF, - 'fail': FAIL, - 'flaky': FLAKY, - 'good': GOOD, - 'internal': INTERNAL, - 'missing': MISSING, - 'not_launched': NOT_LAUNCHED, - 'skipped': SKIPPED, - 'timeout': TIMEOUT, - 'xfail': XFAIL, - 'xfaildiff': XFAILDIFF, - 'xpass': XPASS, - } - TO_STR = { - CANON_DIFF: 'diff', - CRASHED: 'crashed', - DESELECTED: 'deselected', - FAIL: 'fail', - FLAKY: 'flaky', - GOOD: 'good', - INTERNAL: 'internal', - MISSING: 'missing', - NOT_LAUNCHED: 'not_launched', - SKIPPED: 'skipped', - TIMEOUT: 'timeout', - XFAIL: 'xfail', - XFAILDIFF: 'xfaildiff', - XPASS: 'xpass', - } - - -class _Colors(object): - - _NAMES = [ - "blue", - "cyan", - "default", - "green", - "grey", - "magenta", - "red", - "white", - "yellow", - ] - _PREFIXES = ["", "light", "dark"] - - def __init__(self): - self._table = {} - for prefix in self._PREFIXES: - for value in self._NAMES: - name = value - if prefix: - name = "{}_{}".format(prefix, value) - value = "{}-{}".format(prefix, value) - self.__add_color(name.upper(), value) - - def __add_color(self, name, value): - self._table[name] = value - self.__setattr__(name, value) - - -Colors = _Colors() - - -class _Highlight(object): - - _MARKERS = { - # special - "RESET": "rst", - "IMPORTANT": "imp", - "UNIMPORTANT": "unimp", - "BAD": "bad", - "WARNING": "warn", - "GOOD": "good", - "PATH": "path", - "ALTERNATIVE1": "alt1", - "ALTERNATIVE2": "alt2", - "ALTERNATIVE3": "alt3", - } - - def __init__(self): - # setting attributes because __getattr__ is much slower - for attr, value in self._MARKERS.items(): - self.__setattr__(attr, value) - - -Highlight = _Highlight() - - -class _StatusColorMap(object): - # There should be no XFAILDIFF, because it's internal status. - # It should be replaced with XFAIL or XPASS during verification of canon data. - - _MAP = { - 'crashed': Highlight.WARNING, - 'deselected': Highlight.UNIMPORTANT, - 'diff': Highlight.BAD, - 'fail': Highlight.BAD, - 'flaky': Highlight.ALTERNATIVE3, - 'good': Highlight.GOOD, - 'internal': Highlight.BAD, - 'missing': Highlight.ALTERNATIVE1, - 'not_launched': Highlight.BAD, - 'skipped': Highlight.UNIMPORTANT, - 'timeout': Highlight.BAD, - 'xfail': Highlight.WARNING, - 'xpass': Highlight.WARNING, - } - - def __getitem__(self, item): - return self._MAP[item] - - -StatusColorMap = _StatusColorMap() diff --git a/build/plugins/lib/test_const/ya.make b/build/plugins/lib/test_const/ya.make deleted file mode 100644 index 60f4867e46..0000000000 --- a/build/plugins/lib/test_const/ya.make +++ /dev/null @@ -1,9 +0,0 @@ -OWNER(g:ymake) - -PY23_LIBRARY() - -PY_SRCS( - __init__.py -) - -END() diff --git a/build/plugins/lib/ya.make b/build/plugins/lib/ya.make deleted file mode 100644 index 7e61d12080..0000000000 --- a/build/plugins/lib/ya.make +++ /dev/null @@ -1,7 +0,0 @@ -OWNER(g:ymake)
-
-PY23_LIBRARY()
- PY_SRCS(
- _metric_resolvers.py
- )
-END()
diff --git a/build/plugins/linker_script.py b/build/plugins/linker_script.py deleted file mode 100644 index bee9777a4e..0000000000 --- a/build/plugins/linker_script.py +++ /dev/null @@ -1,12 +0,0 @@ -def onlinker_script(unit, *args): - """ - @usage: LINKER_SCRIPT(Files...) - - Specify files to be used as a linker script - """ - for arg in args: - if not arg.endswith(".ld") and not arg.endswith(".ld.in"): - unit.message(['error', "Invalid linker script extension: {}".format(arg)]) - return - - unit.onglobal_srcs(list(args)) diff --git a/build/plugins/lj_archive.py b/build/plugins/lj_archive.py deleted file mode 100644 index 1d80bb98f3..0000000000 --- a/build/plugins/lj_archive.py +++ /dev/null @@ -1,44 +0,0 @@ -def onlj_archive(unit, *args): - """ - @usage: LJ_ARCHIVE(NAME Name LuaFiles...) - Precompile .lua files using LuaJIT and archive both sources and results using sources names as keys - """ - def iter_luas(l): - for a in l: - if a.endswith('.lua'): - yield a - - def iter_objs(l): - for a in l: - s = a[:-3] + 'raw' - unit.on_luajit_objdump(['OUT', s, a]) - yield s - - luas = list(iter_luas(args)) - objs = list(iter_objs(luas)) - - unit.onarchive_by_keys(['DONTCOMPRESS', 'NAME', 'LuaScripts.inc', 'KEYS', ':'.join(luas)] + objs) - unit.onarchive_by_keys(['DONTCOMPRESS', 'NAME', 'LuaSources.inc', 'KEYS', ':'.join(luas)] + luas) - -def onlj_21_archive(unit, *args): - """ - @usage: LJ_21_ARCHIVE(NAME Name LuaFiles...) # deprecated - Precompile .lua files using LuaJIT 2.1 and archive both sources and results using sources names as keys - """ - def iter_luas(l): - for a in l: - if a.endswith('.lua'): - yield a - - def iter_objs(l): - for a in l: - s = a[:-3] + 'raw' - unit.on_luajit_21_objdump(['OUT', s, a]) - yield s - - luas = list(iter_luas(args)) - objs = list(iter_objs(luas)) - - unit.onarchive_by_keys(['DONTCOMPRESS', 'NAME', 'LuaScripts.inc', 'KEYS', ':'.join(luas)] + objs) - unit.onarchive_by_keys(['DONTCOMPRESS', 'NAME', 'LuaSources.inc', 'KEYS', ':'.join(luas)] + luas) - diff --git a/build/plugins/llvm_bc.py b/build/plugins/llvm_bc.py deleted file mode 100644 index 7666c21907..0000000000 --- a/build/plugins/llvm_bc.py +++ /dev/null @@ -1,33 +0,0 @@ -import sys - -from _common import rootrel_arc_src, sort_by_keywords, skip_build_root, stripext - - -def onllvm_bc(unit, *args): - free_args, kwds = sort_by_keywords({'SYMBOLS': -1, 'NAME': 1, 'NO_COMPILE': 0}, args) - name = kwds['NAME'][0] - symbols = kwds.get('SYMBOLS') - obj_suf = unit.get('OBJ_SUF') - skip_compile_step = 'NO_COMPILE' in kwds - merged_bc = name + '_merged' + obj_suf + '.bc' - out_bc = name + '_optimized' + obj_suf + '.bc' - bcs = [] - for x in free_args: - rel_path = rootrel_arc_src(x, unit) - bc_path = '${ARCADIA_BUILD_ROOT}/' + skip_build_root(rel_path) + obj_suf + '.bc' - if not skip_compile_step: - if x.endswith('.c'): - llvm_compile = unit.onllvm_compile_c - elif x.endswith('.ll'): - llvm_compile = unit.onllvm_compile_ll - else: - llvm_compile = unit.onllvm_compile_cxx - llvm_compile([rel_path, bc_path]) - bcs.append(bc_path) - unit.onllvm_link([merged_bc] + bcs) - opt_opts = ['-O2', '-globalopt', '-globaldce'] - if symbols: - # XXX: '#' used instead of ',' to overcome ymake tendency to split everything by comma - opt_opts += ['-internalize', '-internalize-public-api-list=' + '#'.join(symbols)] - unit.onllvm_opt([merged_bc, out_bc] + opt_opts) - unit.onresource([out_bc, '/llvm_bc/' + name]) diff --git a/build/plugins/macros_with_error.py b/build/plugins/macros_with_error.py deleted file mode 100644 index e82fb56d2c..0000000000 --- a/build/plugins/macros_with_error.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys - -import _common - -import ymake - - -def onmacros_with_error(unit, *args): - print >> sys.stderr, 'This macros will fail' - raise Exception('Expected fail in MACROS_WITH_ERROR') - - -def onrestrict_path(unit, *args): - if args: - if 'MSG' in args: - pos = args.index('MSG') - paths, msg = args[:pos], args[pos + 1:] - msg = ' '.join(msg) - else: - paths, msg = args, 'forbidden' - if not _common.strip_roots(unit.path()).startswith(paths): - error_msg = "Path '[[imp]]{}[[rst]]' is restricted - [[bad]]{}[[rst]]. Valid path prefixes are: [[unimp]]{}[[rst]]".format(unit.path(), msg, ', '.join(paths)) - ymake.report_configure_error(error_msg) - -def onassert(unit, *args): - val = unit.get(args[0]) - if val and val.lower() == "no": - msg = ' '.join(args[1:]) - ymake.report_configure_error(msg) diff --git a/build/plugins/maps_mobile_idl.py b/build/plugins/maps_mobile_idl.py deleted file mode 100644 index 8f5a1efcfb..0000000000 --- a/build/plugins/maps_mobile_idl.py +++ /dev/null @@ -1,1160 +0,0 @@ -import os -import re -from collections import namedtuple - -from _common import sort_by_keywords - -Framework = namedtuple('Framework', [ - 'cpp_namespace_tokens', - 'java_class_path', - 'objc_framework_name', - 'objc_framework_prefix' - ]) - - -def _get_proto_header_file(proto_file_name): - return proto_file_name.split('.')[0] + '.pb.h' - - -def _get_appended_values(unit, key): - value = [] - raw_value = unit.get(key) - if raw_value: - value = filter(lambda x: len(x) > 0, raw_value.split(' ')) - assert len(value) == 0 or value[0] == '$' + key - return value[1:] if len(value) > 0 else value - - -def _load_framework_file_list(unit): - frameworks = [unit.resolve(unit.resolve_arc_path(os.sep.join(path.split(os.sep)[1:]))) for path in unit.get('MAPKIT_IDL_FRAMEWORK_FILES').split(' ')] - return frameworks - - -def _require_framework_entry(entry, framework): - if entry not in framework: - raise Exception('No {} entry in {} framework'.format(entry, framework)) - - -def _read_framework(unit, framework_file): - file_path = unit.resolve(framework_file) - result = {} - with open(file_path, 'r') as f: - lineId = 0 - for line in f: - lineId += 1 - tokens = line.split('=') - if len(tokens) != 2: - raise Exception('Malformed idl framework file {} line {}'.format(framework_file, lineId)) - result[tokens[0].strip()] = tokens[1].strip() - - _require_framework_entry('CPP_NAMESPACE', result) - _require_framework_entry('JAVA_PACKAGE', result) - _require_framework_entry('OBJC_FRAMEWORK', result) - _require_framework_entry('OBJC_FRAMEWORK_PREFIX', result) - return Framework( - result['CPP_NAMESPACE'].split('.'), - result['JAVA_PACKAGE'], - result['OBJC_FRAMEWORK'], - result['OBJC_FRAMEWORK_PREFIX']) - - -def _read_frameworks(unit): - framework_file_list = _load_framework_file_list(unit) - result = {} - for file_name in framework_file_list: - name = file_name.split(os.sep)[-1].split('.')[0] - result[name] = _read_framework(unit, file_name) - return result - - -def _extract_by_regexp(line, regexp): - re_match = regexp.search(line) - if not re_match: - return None - return re_match.group(1) - - -class RegExp: - OBJC_INFIX = r'\bobjc_infix\s*([^\s]+);' - - IMPORT = r'^import\s+"([^"]+)"' - - WEAK_INTERFACE = r'\bweak_ref\s+interface\b' - SHARED_INTERFACE = r'\bshared_ref\s+interface\b' - STRONG_INTERFACE = r'^\s*interface\b' - NATIVE_LISTENER = r'\bnative\s+listener\b' - STATIC_INTERFACE = r'\bstatic\s+interface\b' - VIEW_DELEGATE = r'\bview_delegate\b' - - CUSTOM_PROTO_HEADER = r'^\s*protoconv\s+"([^"]+)"\s*$' - BASED_ON_PROTO_START = r'\bbased\s+on(\s|$)' - BASED_ON_PROTO = r'\bbased\s+on\s+"([^"]+)"\s*:' - - CUSTOM_CPP_HEADER = r'^\s*cpp\s+"([^"]+)"\s*$' - STRUCT = r'\bstruct\b' - - LITE_STRUCT = r'\blite\s+struct\b' - BRIDGED_STRUCT = r'^(\s*options|\s*serializable|\s*abstract)*\s*struct\s+' - - LAMBDA_LISTENER = r'\blambda\s+listener\b' - LISTENER = r'^\s*listener\s+' - PLATFORM_INTERFACE = r'platform\s+interface' - - VARIANT = r'\bvariant\b' - - OPTIONAL = r'\boptional\b' - INT_64 = r'\bint64\b' - STRING = r'\bstring\b' - POINT = r'\bpoint\b' - BYTES = r'\bbytes\b' - VECTOR = r'\bvector\b' - DICTIONARY = r'\bdictionary\b' - ANY = r'\bany[^_]' - ANY_COLLECTION = r'\bany_collection\b' - ENUM = r'\benum\b' - TIME = r'\b(time_interval|abs_timestamp|rel_timestamp)\b' - BITMAP = r'\bbitmap\b' - VIEW_PROVIDER = r'\bview_provider\b' - IMAGE_PROVIDER = r'\bimage_provider\b' - ANIMATED_IMAGE_PROVIDER = r'\banimated_image_provider\b' - MODEL_PROVIDER = r'\bmodel_provider\b' - ANIMATED_MODEL_PROVIDER = r'\banimated_model_provider\b' - COLOR = r'\bcolor\b' - PLATFORM_VIEW = r'\bplatform_view\b' - ERROR = r'\b(runtime\.)?Error\b' - TYPE_DICTIONARY = r'\btype_dictionary\b' - - SERIALIZABLE = r'\bserializable\b' - - -class OutputType: - BASE_HEADER = 1 - STRUCT_SOURCE = 2 - PROTOCONV_HEADER = 3 - PROTOCONV_SOURCE = 4 - ANDROID_HEADER = 5 - ANDROID_SOURCE = 6 - IOS_HEADER = 7 - IOS_SOURCE = 8 - IOS_PRIVATE_HEADER = 9 - IOS_BINDING_SOURCE = 10 - - -class OutputNameGenerator: - def __init__(self, file_path, frameworks): - path_tokens = file_path.split(os.sep) - framework_name = path_tokens[0] - self._framework = frameworks[framework_name] - self._cpp_namespace_tokens = self._framework.cpp_namespace_tokens + path_tokens[1:-1] - file_name = path_tokens[-1] - self._cpp_name = file_name.split('.')[0] - - name_tokens = self._cpp_name.split('_') - self._objc_name_core = ''.join((self._capitalize(token) for token in name_tokens)) - self._objc_name = self._framework.objc_framework_prefix + self._objc_name_core - - def set_objc_infix(self, objc_infix): - self._objc_name = self._framework.objc_framework_prefix + objc_infix + self._objc_name_core - - def is_header(self, output_type): - return output_type in [ - OutputType.BASE_HEADER, - OutputType.PROTOCONV_HEADER, - OutputType.ANDROID_HEADER, - OutputType.IOS_HEADER, - OutputType.IOS_PRIVATE_HEADER] - - def _cpp_file_name(self, extension, additional_tokens=[]): - path_tokens = self._cpp_namespace_tokens + additional_tokens + [self._cpp_name + extension] - return os.path.join(*path_tokens) - - def _objc_file_name(self, extension, additional_tokens=[]): - path_tokens = [self._framework.objc_framework_name] + additional_tokens + [self._objc_name + extension] - return os.path.join(*path_tokens) - - def _capitalize(self, word): - return word[:1].upper() + word[1:] - - def generate_name(self, output_type): - if output_type is OutputType.BASE_HEADER: - return self._cpp_file_name('.h') - - if output_type is OutputType.STRUCT_SOURCE: - return self._cpp_file_name('.cpp') - - if output_type is OutputType.PROTOCONV_HEADER: - return self._cpp_file_name('.conv.h') - - if output_type is OutputType.PROTOCONV_SOURCE: - return self._cpp_file_name('.conv.cpp') - - if output_type is OutputType.ANDROID_HEADER: - return self._cpp_file_name('_binding.h', ['internal', 'android']) - - if output_type is OutputType.ANDROID_SOURCE: - return self._cpp_file_name('_binding.cpp', ['internal', 'android']) - - if output_type is OutputType.IOS_HEADER: - return self._objc_file_name('.h') - - if output_type is OutputType.IOS_SOURCE: - return self._objc_file_name('.m') - - if output_type is OutputType.IOS_PRIVATE_HEADER: - return self._objc_file_name('_Private.h', ['Internal']) - - if output_type is OutputType.IOS_BINDING_SOURCE: - return self._objc_file_name('_Binding.mm') - - def generate_path(self, output_type): - name = self.generate_name(output_type) - - if self.is_header(output_type): - return os.path.join('include', name) - - return os.path.join('impl', name) - - -class ProcessContext: - def __init__(self, unit, frameworks, file_paths): - self.unit = unit - self.frameworks = frameworks - self.file_paths = file_paths - self.is_ios = unit.enabled("OS_IOS") - self.is_android = unit.enabled("OS_ANDROID") - self.output_name_generator = None - self.add_generated_output_includes = unit.enabled("H_CPP_IDL") - - def runtime_include(self, include_name): - name_tokens = self.frameworks['runtime'].cpp_namespace_tokens + [include_name] - return os.path.join(*name_tokens) - - def runtime_objc_import(self, import_name): - return os.path.join( - self.frameworks['runtime'].objc_framework_name, - self.frameworks['runtime'].objc_framework_prefix + import_name - ) - - -class BaseRule: - def __init__(self, context): - self.context = context - - def start_file(self, file_path): - pass - - def process_line(self, line): - pass - - def get_output_types(self): - return set() - - def get_output_includes(self): - return set() - - -class ObjcInfixRule(BaseRule): - def __init__(self, context): - BaseRule.__init__(self, context) - self._found_infix = False - self._reg_exp = re.compile(RegExp.OBJC_INFIX) - - def start_file(self, file_path): - BaseRule.start_file(self, file_path) - self.context.output_name_generator.set_objc_infix('') - self._found_infix = False - - def process_line(self, line): - BaseRule.process_line(self, line) - if self._found_infix: - return - - infix = _extract_by_regexp(line, self._reg_exp) - if infix: - self._found_infix = True - self.context.output_name_generator.set_objc_infix(infix) - - -class ImportRule(BaseRule): - def __init__(self, context): - BaseRule.__init__(self, context) - self._imports = set() - self._import_reg_exp = re.compile(RegExp.IMPORT) - - def start_file(self, file_path): - self._imports = set() - - def process_line(self, line): - BaseRule.process_line(self, line) - idl_import = _extract_by_regexp(line, self._import_reg_exp) - if idl_import: - self._imports.add(idl_import) - - def get_output_includes(self): - result = set() - for idl_import in self._imports: - if idl_import in self.context.file_paths: - continue - - name_generator = OutputNameGenerator(idl_import, self.context.frameworks) - result.add(name_generator.generate_name(OutputType.BASE_HEADER)) - - return result - - -class DefaultRule(BaseRule): - def __init__(self, context): - BaseRule.__init__(self, context) - - def get_output_types(self): - result = set() - result.add(OutputType.BASE_HEADER) - if self.context.is_ios: - result.add(OutputType.IOS_HEADER) - result.add(OutputType.IOS_SOURCE) - - return result - - def get_output_includes(self): - result = set() - result.add('yandex/maps/export.h') - result.add(self.context.runtime_include('assert.h')) - result.add(self.context.runtime_include('exception.h')) - result.add(self.context.runtime_include('bindings/traits.h')) - - if self.context.is_ios: - result.add(self.context.runtime_include('bindings/platform.h')) - result.add('Foundation/Foundation.h') - result.add(self.context.runtime_include('ios/object.h')) - result.add(self.context.runtime_include('bindings/ios/to_native.h')) - result.add(self.context.runtime_include('bindings/ios/to_platform.h')) - result.add(self.context.runtime_include('ios/exception.h')) - result.add(self.context.runtime_objc_import('Subscription.h')) - result.add(self.context.runtime_objc_import('Export.h')) - - if self.context.is_android: - result.add(self.context.runtime_include('bindings/platform.h')) - result.add(self.context.runtime_include('android/object.h')) - result.add(self.context.runtime_include('bindings/android/to_native.h')) - result.add(self.context.runtime_include('bindings/android/to_platform.h')) - result.add(self.context.runtime_include('exception.h')) - - return result - - -class CheckRule(BaseRule): - def __init__( - self, - context, - output_types=set(), - output_includes=set(), - ios_output_types=set(), - ios_output_includes=set(), - android_output_types=set(), - android_output_includes=set() - ): - BaseRule.__init__(self, context) - self._output_types = output_types - self._output_includes = output_includes - self._ios_output_types = ios_output_types - self._ios_output_includes = ios_output_includes - self._android_output_types = android_output_types - self._android_output_includes = android_output_includes - - def triggered_on_file(self): - pass - - def get_output_types(self): - result = set() - if self.triggered_on_file(): - result.update(self._output_types) - - if self.context.is_ios: - result.update(self._ios_output_types) - - if self.context.is_android: - result.update(self._android_output_types) - - return result - - def get_output_includes(self): - result = set() - if self.triggered_on_file(): - result.update(self._output_includes) - - if self.context.is_ios: - result.update(self._ios_output_includes) - - if self.context.is_android: - result.update(self._android_output_includes) - - return result - - -class OrRule(CheckRule): - def __init__(self, check_rules, *args, **kwargs): - CheckRule.__init__(self, *args, **kwargs) - self._rules = check_rules - - def triggered_on_file(self): - return any((rule.triggered_on_file() for rule in self._rules)) - - -class AndRule(CheckRule): - def __init__(self, check_rules, *args, **kwargs): - CheckRule.__init__(self, *args, **kwargs) - self._rules = check_rules - - def triggered_on_file(self): - return all((rule.triggered_on_file() for rule in self._rules)) - - -class RegExpRule(CheckRule): - def __init__(self, reg_exp_string, *args, **kwargs): - CheckRule.__init__(self, *args, **kwargs) - self._reg_exp = re.compile(reg_exp_string) - self._reg_exp_found_file = False - - def start_file(self, file_path): - CheckRule.start_file(self, file_path) - self._reg_exp_found_file = False - - def process_line(self, line): - CheckRule.process_line(self, line) - if self._reg_exp_found_file: - return - - if self._reg_exp.search(line) is not None: - self._reg_exp_found_file = True - - def triggered_on_file(self): - return self._reg_exp_found_file - - -class ProtoRule(BaseRule): - def __init__(self, context): - BaseRule.__init__(self, context) - self._file_has_non_custom_proto = False - self._currently_custom_proto = False - self._currently_based_on = False - self._running_line = '' - self._custom_proto_headers = set() - self._proto_files = set() - - self._custom_proto_reg_exp = re.compile(RegExp.CUSTOM_PROTO_HEADER) - self._based_on_proto_start_reg_exp = re.compile(RegExp.BASED_ON_PROTO_START) - self._based_on_proto_reg_exp = re.compile(RegExp.BASED_ON_PROTO) - - def start_file(self, file_path): - BaseRule.start_file(self, file_path) - self._currently_custom_proto = False - self._file_has_non_custom_proto = False - self._currently_based_on = False - self._running_line = '' - - def process_line(self, line): - BaseRule.process_line(self, line) - proto_header = _extract_by_regexp(line, self._custom_proto_reg_exp) - if proto_header: - self._custom_proto_headers.add(proto_header) - self._currently_based_on = False - self._running_line = '' - - self._currently_custom_proto = True - return - - if self._based_on_proto_start_reg_exp.search(line) is not None: - self._currently_based_on = True - self._running_line = '' - - if self._currently_based_on: - self._running_line += '\n' + line - proto_file = _extract_by_regexp(self._running_line, self._based_on_proto_reg_exp) - if proto_file: - self._currently_based_on = False - self._running_line = '' - self._proto_files.add(proto_file) - - if self._currently_custom_proto: - self._currently_custom_proto = False - else: - self._file_has_non_custom_proto = True - - def get_output_types(self): - if self._file_has_non_custom_proto: - return {OutputType.PROTOCONV_HEADER, OutputType.PROTOCONV_SOURCE} - return set() - - def get_output_includes(self): - result = set() - result.update(self._custom_proto_headers) - result.update((proto_file.split('.')[0] + '.pb.h' for proto_file in self._proto_files)) - - if self._file_has_non_custom_proto: - result.update({'vector'}) - - return result - - -class StructImplementationRule(BaseRule): - def __init__(self, context): - BaseRule.__init__(self, context) - self._file_has_non_custom_struct = False - self._custom_cpp_headers = set() - self._currently_custom_struct = False - - self._custom_cpp_header_reg_exp = re.compile(RegExp.CUSTOM_CPP_HEADER) - self._struct_reg_exp = re.compile(RegExp.STRUCT) - - def start_file(self, file_path): - BaseRule.start_file(self, file_path) - self._currently_custom_struct = False - self._file_has_non_custom_struct = False - - def process_line(self, line): - BaseRule.process_line(self, line) - - cpp_header = _extract_by_regexp(line, self._custom_cpp_header_reg_exp) - if cpp_header: - self._custom_cpp_headers.add(cpp_header) - self._currently_custom_struct = True - return - - if not self._file_has_non_custom_struct: - if self._struct_reg_exp.search(line) is not None: - if self._currently_custom_struct: - self._currently_custom_struct = False - else: - self._file_has_non_custom_struct = True - - def get_output_types(self): - result = set() - if self._file_has_non_custom_struct: - result.add(OutputType.STRUCT_SOURCE) - if self.context.is_ios: - result.add(OutputType.IOS_BINDING_SOURCE) - - return result - - def get_output_includes(self): - return self._custom_cpp_headers - - -class IdlFileProcessor: - def __init__(self, unit, frameworks, file_paths): - self._context = ProcessContext(unit, frameworks, file_paths) - self._resolved_idl_dir = unit.resolve(unit.resolve_arc_path(unit.path())) - self._outputs = set() - self._output_includes = set() - - self._rules = set() - - self._rules.add(ObjcInfixRule(self._context)) - self._rules.add(DefaultRule(self._context)) - self._rules.add(ImportRule(self._context)) - self._rules.add(ProtoRule(self._context)) - self._rules.add(StructImplementationRule(self._context)) - - view_delegate_rule = self._create_reg_exp_rule( - RegExp.VIEW_DELEGATE, - output_includes={self._context.runtime_include('view/view_delegate.h')} - ) - - weak_interface_rule = self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.WEAK_INTERFACE), - view_delegate_rule, - }, - output_includes={ - 'boost/any.hpp', - 'memory', - self._context.runtime_include('platform_holder.h') - } - ) - - strong_interface_rule = self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.STRONG_INTERFACE), - self._create_reg_exp_rule(RegExp.NATIVE_LISTENER) - } - ) - - non_static_interface_rule = self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.SHARED_INTERFACE), - strong_interface_rule, - weak_interface_rule - }, - ios_output_types={OutputType.IOS_PRIVATE_HEADER} - ) - - # interface rule - self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.STATIC_INTERFACE), - non_static_interface_rule - }, - ios_output_types={OutputType.IOS_BINDING_SOURCE}, - android_output_types={OutputType.ANDROID_SOURCE}, - ios_output_includes={'memory'} - ) - - bridged_struct_rule = self._create_reg_exp_rule( - RegExp.BRIDGED_STRUCT, - output_includes={ - 'memory', - self._context.runtime_include('bindings/platform.h') - }, - android_output_includes={ - self._context.runtime_include('any/android/to_platform.h'), - self._context.runtime_include('bindings/android/internal/new_serialization.h') - } - ) - - struct_rule = self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.LITE_STRUCT), - bridged_struct_rule - }, - ios_output_types={OutputType.IOS_PRIVATE_HEADER}, - android_output_types={OutputType.ANDROID_HEADER, OutputType.ANDROID_SOURCE}, - ios_output_includes={ - self._context.runtime_include('any/ios/to_platform.h'), - self._context.runtime_objc_import('NativeObject.h') - } - ) - - lambda_listener_rule = self._create_reg_exp_rule( - RegExp.LAMBDA_LISTENER, - output_includes={'functional'}, - android_output_includes={ - self._context.runtime_include('verify_and_run.h') - }, - ios_output_includes={ - self._context.runtime_include('verify_and_run.h') - } - ) - - # listener rule - self._create_or_rule( - rules={ - self._create_reg_exp_rule(RegExp.PLATFORM_INTERFACE), - self._create_reg_exp_rule(RegExp.LISTENER), - lambda_listener_rule - }, - ios_output_types={OutputType.IOS_PRIVATE_HEADER, OutputType.IOS_BINDING_SOURCE}, - android_output_types={OutputType.ANDROID_HEADER, OutputType.ANDROID_SOURCE}, - output_includes={'memory'}, - android_output_includes={ - 'string', - self._context.runtime_include('verify_and_run.h') - }, - ios_output_includes={ - self._context.runtime_include('verify_and_run.h') - } - ) - - if self._context.unit.enabled("MAPS_MOBILE_USE_STD_VARIANT"): - variant_header = 'variant' - variant_serialization_header = self.context.runtime_include('serialization/variant.hpp') - else: - variant_header = 'boost/variant.hpp' - variant_serialization_header = 'boost/serialization/variant.hpp' - - variant_rule = self._create_reg_exp_rule( - RegExp.VARIANT, - ios_output_types={OutputType.IOS_PRIVATE_HEADER, OutputType.IOS_BINDING_SOURCE}, - output_includes={variant_header, 'boost/variant/recursive_wrapper.hpp'}, - ios_output_includes={ - self._context.runtime_include('bindings/ios/to_platform_fwd.h'), - self._context.runtime_include('bindings/ios/to_native_fwd.h'), - 'type_traits' - } - ) - - optional_rule = self._create_reg_exp_rule(RegExp.OPTIONAL, output_includes={'optional'}) - # int64 rule - self._create_reg_exp_rule(RegExp.INT_64, output_includes={'cstdint'}) - - string_rule = self._create_reg_exp_rule( - RegExp.STRING, - output_includes={ - 'string', - self._context.runtime_include('bindings/platform.h') - } - ) - - point_rule = self._create_reg_exp_rule( - RegExp.POINT, - output_includes={ - 'Eigen/Geometry', - self._context.runtime_include('bindings/point_traits.h') - }, - android_output_includes={ - self._context.runtime_include('bindings/android/point_to_native.h'), - self._context.runtime_include('bindings/android/point_to_platform.h') - }, - ios_output_includes={ - self._context.runtime_include('bindings/ios/point_to_native.h'), - self._context.runtime_include('bindings/ios/point_to_platform.h'), - 'UIKit/UIKit.h' - } - ) - - bytes_rule = self._create_reg_exp_rule(RegExp.BYTES, output_includes={'cstdint', 'vector'}) - - vector_rule = self._create_reg_exp_rule( - RegExp.VECTOR, - output_includes={ - 'memory', - self._context.runtime_include('bindings/platform.h') - }, - android_output_includes={ - self._context.runtime_include('bindings/android/vector_to_native.h'), - self._context.runtime_include('bindings/android/vector_to_platform.h') - }, - ios_output_includes={ - self._context.runtime_include('bindings/ios/vector_to_native.h'), - self._context.runtime_include('bindings/ios/vector_to_platform.h') - } - ) - - dictionary_rule = self._create_reg_exp_rule( - RegExp.DICTIONARY, - output_includes={ - 'memory', - self._context.runtime_include('bindings/platform.h') - }, - android_output_includes={ - self._context.runtime_include('bindings/android/dictionary_to_native.h'), - self._context.runtime_include('bindings/android/dictionary_to_platform.h') - }, - ios_output_includes={ - self._context.runtime_include('bindings/ios/dictionary_to_native.h'), - self._context.runtime_include('bindings/ios/dictionary_to_platform.h') - } - ) - - # any rule - self._create_reg_exp_rule( - RegExp.ANY, - output_includes={ - 'boost/any.hpp', - self._context.runtime_include('bindings/platform.h') - } - ) - - # any_collection rule - self._create_reg_exp_rule( - RegExp.ANY_COLLECTION, - output_includes={ - self._context.runtime_include('any/collection.h') - }, - android_output_includes={ - self._context.runtime_include('any/android/to_native.h'), - self._context.runtime_include('any/android/to_platform.h') - }, - ios_output_includes={ - self._context.runtime_objc_import('Collection.h'), - self._context.runtime_include('any/ios/to_native.h'), - self._context.runtime_include('any/ios/to_platform.h') - } - ) - - time_rule = self._create_reg_exp_rule( - RegExp.TIME, - output_includes={ - self._context.runtime_include('time.h') - } - ) - - # bitmap rule - self._create_reg_exp_rule( - RegExp.BITMAP, - output_includes={ - self._context.runtime_include('platform_bitmap.h') - }, - ios_output_includes={'UIKit/UIKit.h'} - ) - - # image_provider rule - self._create_reg_exp_rule( - RegExp.IMAGE_PROVIDER, - output_includes={ - self._context.runtime_include('image/image_provider.h') - }, - android_output_includes={ - self._context.runtime_include('image/android/image_provider_binding.h') - }, - ios_output_includes={ - self._context.runtime_include('image/ios/image_provider_binding.h'), - 'UIKit/UIKit.h' - } - ) - - # animated_image_provider rule - self._create_reg_exp_rule( - RegExp.ANIMATED_IMAGE_PROVIDER, - output_includes={ - self._context.runtime_include('image/animated_image_provider.h') - }, - android_output_includes={ - self._context.runtime_include('image/android/animated_image_provider_binding.h') - }, - ios_output_includes={ - self._context.runtime_include('image/ios/animated_image_provider_binding.h'), - self._context.runtime_objc_import('AnimatedImageProvider.h') - } - ) - - if not unit.enabled('MAPS_MOBILE_PUBLIC_API'): - # model_provider rule - self._create_reg_exp_rule( - RegExp.MODEL_PROVIDER, - output_includes={ - self._context.runtime_include('model/model_provider.h') - }, - android_output_includes={ - self._context.runtime_include('model/android/model_provider_binding.h') - }, - ios_output_includes={ - self._context.runtime_include('model/ios/model_provider_binding.h'), - self._context.runtime_objc_import('ModelProvider.h') - } - ) - - # animated_model_provider rule - self._create_reg_exp_rule( - RegExp.ANIMATED_MODEL_PROVIDER, - output_includes={ - self._context.runtime_include('model/animated_model_provider.h') - }, - android_output_includes={ - self._context.runtime_include('model/android/animated_model_provider_binding.h') - }, - ios_output_includes={ - self._context.runtime_include('model/ios/animated_model_provider_binding.h'), - self._context.runtime_objc_import('AnimatedModelProvider.h') - } - ) - - # view_provider rule - self._create_reg_exp_rule( - RegExp.VIEW_PROVIDER, - output_includes={ - self._context.runtime_include('ui_view/view_provider.h') - }, - android_output_includes={ - self._context.runtime_include('ui_view/android/view_provider_binding.h') - }, - ios_output_includes={ - self._context.runtime_include('ui_view/ios/view_provider_binding.h'), - self._context.runtime_objc_import('ViewProvider.h') - } - ) - - # platform_view rule - self._create_reg_exp_rule( - RegExp.PLATFORM_VIEW, - output_includes={ - self._context.runtime_include('view/platform_view.h') - }, - android_output_includes={ - self._context.runtime_include('view/android/to_native.h') - }, - ios_output_includes={ - self._context.runtime_include('view/ios/to_native.h'), - self._context.runtime_objc_import('PlatformView_Fwd.h'), - self._context.runtime_objc_import('PlatformView_Private.h') - } - ) - - # type_dictionary rule - self._create_reg_exp_rule( - RegExp.TYPE_DICTIONARY, - output_includes={ - self._context.runtime_include('bindings/platform.h'), - self._context.runtime_include('bindings/type_dictionary.h') - }, - android_output_includes={ - self._context.runtime_include('bindings/android/type_dictionary_to_native.h'), - self._context.runtime_include('bindings/android/type_dictionary_to_platform.h') - }, - ios_output_includes={ - self._context.runtime_include('bindings/ios/type_dictionary_to_native.h'), - self._context.runtime_include('bindings/ios/type_dictionary_to_platform.h'), - self._context.runtime_objc_import('TypeDictionary.h'), - } - ) - - # color rule - self._create_reg_exp_rule( - RegExp.COLOR, - output_includes={ - self._context.runtime_include('color.h') - }, - ios_output_includes={'UIKit/UIKit.h'} - ) - - # error rule - self._create_reg_exp_rule( - RegExp.ERROR, - android_output_includes={ - self._context.runtime_include('android/make_error.h') - }, - ios_output_includes={ - self._context.runtime_include('ios/make_error.h') - } - ) - - explicit_serialization = self._context.unit.enabled('MAPS_MOBILE_EXPLICIT_SERIALIZATION_ONLY') - if explicit_serialization: - explicit_serialization_rule = self._create_reg_exp_rule(RegExp.SERIALIZABLE) - else: - explicit_serialization_rule = struct_rule - - self._serialization_rule = self._create_or_rule( - rules={ - explicit_serialization_rule, - variant_rule - }, - output_includes={ - 'boost/serialization/nvp.hpp', - self._context.runtime_include('serialization/ptr.h'), - self._context.runtime_include('bindings/internal/archive_generator.h'), - self._context.runtime_include('bindings/internal/archive_reader.h'), - self._context.runtime_include('bindings/internal/archive_writer.h') - } - ) - - # point serialization rule - self._create_serialization_rule( - point_rule, - self._context.runtime_include('serialization/math.h') - ) - - # optional serialization rule - self._create_serialization_rule( - optional_rule, - self._context.runtime_include('serialization/serialization_std.h') - ) - - # bridged struct serialization rule - self._create_serialization_rule( - bridged_struct_rule, - self._context.runtime_include('any/guid_registration.h') - ) - - # time serialization rule - self._create_serialization_rule( - time_rule, - self._context.runtime_include('serialization/chrono.h') - ) - - # string serialization rule - self._create_serialization_rule( - string_rule, - 'boost/serialization/string.hpp' - ) - - # bytes serialization rule - self._create_serialization_rule( - bytes_rule, - 'boost/serialization/vector.hpp' - ) - - # vector serialization rule - self._create_serialization_rule( - vector_rule, - 'boost/serialization/vector.hpp' - ) - - # dictionary serialization rule - self._create_serialization_rule( - dictionary_rule, - 'boost/serialization/map.hpp' - ) - - # variant serialization rule - self._create_serialization_rule( - variant_rule, - variant_serialization_header - ) - - def _create_reg_exp_rule(self, reg_exp_string, *args, **kwargs): - rule = RegExpRule(reg_exp_string, self._context, *args, **kwargs) - self._rules.add(rule) - return rule - - def _create_or_rule(self, rules, *args, **kwargs): - rule = OrRule(rules, self._context, *args, **kwargs) - self._rules.add(rule) - return rule - - def _create_and_rule(self, rules, *args, **kwargs): - rule = AndRule(rules, self._context, *args, **kwargs) - self._rules.add(rule) - return rule - - def _create_serialization_rule(self, additional_rule, serialization_header): - rule = self._create_and_rule( - rules={ - self._serialization_rule, - additional_rule - }, - output_includes={ - serialization_header - } - ) - return rule - - def _split_and_remove_comments(self, input_file): - inside_comment = False - for line in input_file: - current_line = line - - if inside_comment: - closing_index = current_line.find("*/") - if closing_index == -1: - continue - current_line = current_line[closing_index + 2:] - inside_comment = False - - oneline_index = current_line.find("//") - if oneline_index != -1: - current_line = current_line[:oneline_index] - - opening_index = current_line.find("/*") - while opening_index != -1: - closing_index = current_line.find("*/") - if closing_index == -1: - current_line = current_line[:opening_index] - inside_comment = True - else: - current_line = current_line[:opening_index] + current_line[closing_index + 2:] - opening_index = current_line.find("/*") - - yield current_line - - def _should_add_to_output_includes(self, output_type): - return (self._context.add_generated_output_includes and - self._context.output_name_generator.is_header(output_type)) - - def process_files(self): - for file_path in self._context.file_paths: - self._context.output_name_generator = OutputNameGenerator(file_path, self._context.frameworks) - - for rule in self._rules: - rule.start_file(file_path) - - with open(os.path.join(self._resolved_idl_dir, file_path), 'r') as f: - for line in self._split_and_remove_comments(f): - for rule in self._rules: - rule.process_line(line) - - for rule in self._rules: - for output_type in rule.get_output_types(): - self._outputs.add(self._context.output_name_generator.generate_path(output_type)) - - if self._should_add_to_output_includes(output_type): - self._output_includes.add(self._context.output_name_generator.generate_name(output_type)) - - self._output_includes.update(rule.get_output_includes()) - - def get_outputs(self): - return self._outputs - - def get_output_includes(self): - return self._output_includes - - -def process_files(unit, file_paths): - frameworks = _read_frameworks(unit) - - processor = IdlFileProcessor(unit, frameworks, file_paths) - processor.process_files() - outputs = processor.get_outputs() - output_includes = processor.get_output_includes() - - return (outputs, output_includes) - - -def on_process_maps_mobile_idl(unit, *args): - if not unit.enabled('MAPSMOBI_BUILD_TARGET'): - return - - idl_files, kwds = sort_by_keywords({'FILTER': -1, 'FILTER_OUT': -1, 'GLOBAL_OUTPUTS': 0}, args) - - if len(idl_files) == 0: - return - - is_global_outputs = 'GLOBAL_OUTPUTS' in kwds - filter_in = kwds.get('FILTER', []) - filter_out = kwds.get('FILTER_OUT', []) - - is_java_idl = unit.enabled("JAVA_IDL") - - outputs, output_includes = process_files(unit, idl_files) - - if filter_in: - outputs = [o for o in outputs if any([o.endswith(x) for x in filter_in])] - if filter_out: - outputs = [o for o in outputs if not any([o.endswith(x) for x in filter_out])] - - if len(outputs) == 0 and not is_java_idl: - return - - base_out_dir = '${{ARCADIA_BUILD_ROOT}}/{}'.format(unit.path()[3:]) - unit.onaddincl(['GLOBAL', '{}/include'.format(base_out_dir)]) - - include_dirs = _get_appended_values(unit, 'MAPKIT_IDL_INCLUDES') - include_dirs.append(unit.path()[3:]) - - framework_dir = unit.get('MAPKIT_IDL_FRAMEWORK') - - extra_inputs = unit.get('MAPKIT_IDL_EXTRA_INPUTS').split(' ') - - idl_args = [] - idl_args.extend(['OUT_BASE_ROOT', base_out_dir, 'OUT_ANDROID_ROOT', base_out_dir, 'OUT_IOS_ROOT', base_out_dir]) - - if framework_dir: - idl_args.extend(['FRAMEWORK_DIRS', framework_dir]) - - if include_dirs: - idl_args.append('INCLUDES') - idl_args.extend(include_dirs) - - idl_args.append('IN') - idl_args.extend(idl_files) - if extra_inputs: - idl_args.extend(extra_inputs) - - if not is_java_idl: - sorted_outputs = sorted(outputs) - global_outputs = [] - non_global_outputs = [] - if is_global_outputs: - global_outputs = [x for x in sorted_outputs if x.endswith(('.cpp', '.m', '.mm'))] - non_global_outputs = sorted(set(outputs) - set(global_outputs)) - else: - non_global_outputs = sorted_outputs - - if global_outputs: - idl_args.append('OUT_NOAUTO') - idl_args.extend(global_outputs) - unit.onglobal_srcs(global_outputs) - - if non_global_outputs: - idl_args.append('OUT') - idl_args.extend(non_global_outputs) - - idl_args.append('OUTPUT_INCLUDES') - idl_args.extend(sorted(set(output_includes) - set(outputs))) - - idl_args.append('IDLS') - idl_args.extend(idl_files) - - if is_java_idl: - unit.on_run_idl_tool_java(idl_args) - else: - unit.on_run_idl_tool(idl_args) diff --git a/build/plugins/mx_archive.py b/build/plugins/mx_archive.py deleted file mode 100644 index 56b0d4d16e..0000000000 --- a/build/plugins/mx_archive.py +++ /dev/null @@ -1,16 +0,0 @@ -def onmx_formulas(unit, *args): - """ - @usage: MX_FORMULAS(BinFiles...) # deprecated, matrixnet - Create MatrixNet formulas archive - """ - def iter_infos(): - for a in args: - if a.endswith('.bin'): - unit.on_mx_bin_to_info([a]) - yield a[:-3] + 'info' - else: - yield a - - infos = list(iter_infos()) - unit.onarchive_asm(['NAME', 'MxFormulas'] + infos) - unit.on_mx_gen_table(infos) diff --git a/build/plugins/nots.py b/build/plugins/nots.py deleted file mode 100644 index d08e51e786..0000000000 --- a/build/plugins/nots.py +++ /dev/null @@ -1,337 +0,0 @@ -import fnmatch -import os -import ytest - -from _common import to_yesno, rootrel_arc_src - - -def _build_cmd_input_paths(paths, hide=False): - return " ".join(["${{input{}:\"{}\"}}".format(";hide" if hide else "", p) for p in paths]) - - -def _create_pm(unit): - from lib.nots.package_manager import manager - - sources_path = unit.path() - module_path = unit.get("MODDIR") - if unit.get("TS_TEST_FOR"): - sources_path = unit.get("TS_TEST_FOR_DIR") - module_path = unit.get("TS_TEST_FOR_PATH") - - return manager( - sources_path=unit.resolve(sources_path), - build_root="$B", - build_path=unit.path().replace("$S", "$B", 1), - contribs_path=unit.get("NPM_CONTRIBS_PATH"), - nodejs_bin_path=None, - script_path=None, - module_path=module_path, - ) - - -def on_from_npm_lockfiles(unit, *args): - pm = _create_pm(unit) - lf_paths = [] - - for lf_path in args: - abs_lf_path = unit.resolve(unit.resolve_arc_path(lf_path)) - if not abs_lf_path: - raise Exception("lockfile not found: {}".format(lf_path)) - lf_paths.append(abs_lf_path) - - for pkg in pm.extract_packages_meta_from_lockfiles(lf_paths): - unit.onfrom_npm([pkg.name, pkg.version, pkg.sky_id, pkg.integrity, pkg.integrity_algorithm, pkg.tarball_path]) - - -def onnode_modules(unit): - pm = _create_pm(unit) - unit.onpeerdir(pm.get_local_peers_from_package_json()) - ins, outs = pm.calc_node_modules_inouts() - unit.on_node_modules(["IN"] + sorted(ins) + ["OUT"] + sorted(outs)) - - -def on_ts_configure(unit, tsconfig_path): - from lib.nots.package_manager.base import PackageJson - from lib.nots.package_manager.base.utils import build_pj_path - from lib.nots.typescript import TsConfig - - abs_tsconfig_path = unit.resolve(unit.resolve_arc_path(tsconfig_path)) - if not abs_tsconfig_path: - raise Exception("tsconfig not found: {}".format(tsconfig_path)) - - tsconfig = TsConfig.load(abs_tsconfig_path) - cur_dir = unit.get("TS_TEST_FOR_PATH") if unit.get("TS_TEST_FOR") else unit.get("MODDIR") - pj_path = build_pj_path(unit.resolve(unit.resolve_arc_path(cur_dir))) - dep_paths = PackageJson.load(pj_path).get_dep_paths_by_names() - config_files = tsconfig.inline_extend(dep_paths) - - mod_dir = unit.get("MODDIR") - config_files = _resolve_module_files(unit, mod_dir, config_files) - tsconfig.validate() - - unit.set(["TS_CONFIG_FILES", _build_cmd_input_paths(config_files, hide=True)]) - unit.set(["TS_CONFIG_ROOT_DIR", tsconfig.compiler_option("rootDir")]) - unit.set(["TS_CONFIG_OUT_DIR", tsconfig.compiler_option("outDir")]) - unit.set(["TS_CONFIG_SOURCE_MAP", to_yesno(tsconfig.compiler_option("sourceMap"))]) - unit.set(["TS_CONFIG_DECLARATION", to_yesno(tsconfig.compiler_option("declaration"))]) - unit.set(["TS_CONFIG_DECLARATION_MAP", to_yesno(tsconfig.compiler_option("declarationMap"))]) - unit.set(["TS_CONFIG_PRESERVE_JSX", to_yesno(tsconfig.compiler_option("jsx") == "preserve")]) - - _set_nodejs_root(unit) - _setup_eslint(unit) - - -def _is_tests_enabled(unit): - if unit.get("TIDY") == "yes": - return False - - return True - - -def on_ts_test_configure(unit): - if not _is_tests_enabled(unit): - return - - test_runner_handlers = _get_test_runner_handlers() - test_runner = unit.get("TS_TEST_RUNNER") - - if not test_runner: - raise Exception("Test runner is not specified") - - if test_runner not in test_runner_handlers: - raise Exception( - "Test runner: {} is not available, try to use one of these: {}".format( - test_runner, ", ".join(test_runner_handlers.keys()) - ) - ) - - test_files = ytest.get_values_list(unit, "_TS_TEST_SRCS_VALUE") - if not test_files: - raise Exception("No tests found in {}".format(unit.path())) - - config_path = _resolve_config_path(unit, test_runner) - data_dirs = list( - set( - [ - os.path.dirname(rootrel_arc_src(p, unit)) - for p in (ytest.get_values_list(unit, "_TS_TEST_DATA_VALUE") or []) - ] - ) - ) - - test_record = { - # TODO: remove TS-ROOT-DIR, TS-OUT-DIR. fake values are for back-compat with ya and test_tool - "TS-ROOT-DIR": "fake", - "TS-OUT-DIR": "fake", - "TS-TEST-FOR-PATH": unit.get("TS_TEST_FOR_PATH"), - "TS-TEST-DATA-DIRS": ytest.serialize_list(data_dirs), - "TS-TEST-DATA-DIRS-RENAME": unit.get("_TS_TEST_DATA_DIRS_RENAME_VALUE"), - "CONFIG-PATH": config_path, - } - - _set_nodejs_root(unit) - test_files = _resolve_module_files(unit, unit.get("MODDIR"), test_files) - deps = _create_pm(unit).get_peers_from_package_json() - add_ts_test = test_runner_handlers[test_runner] - add_ts_test(unit, test_runner, test_files, deps, test_record) - - -def _resolve_config_path(unit, test_runner): - config_path = unit.get(unit.get("TS_TEST_CONFIG_PATH_VAR")) - abs_config_path = unit.resolve(unit.resolve_arc_path(config_path)) - if not abs_config_path: - raise Exception("{} config not found: {}".format(test_runner, config_path)) - - abs_test_for_path = unit.resolve(unit.resolve_arc_path(unit.get("TS_TEST_FOR_PATH"))) - - return os.path.relpath(abs_config_path, start=abs_test_for_path) - - -def _get_test_runner_handlers(): - return { - "jest": _add_jest_ts_test, - "hermione": _add_hermione_ts_test, - } - - -def _add_jest_ts_test(unit, test_runner, test_files, deps, test_record): - # TODO: remove these 3 lines. NOTS-PLUGINS-PATH is for back-compat with ya and test_tool - nots_plugins_path = os.path.join(unit.get("NOTS_PLUGINS_PATH"), "jest") - deps.append(nots_plugins_path) - test_record["NOTS-PLUGINS-PATH"] = nots_plugins_path - - _add_test(unit, test_runner, test_files, deps, test_record) - - -def _add_hermione_ts_test(unit, test_runner, test_files, deps, test_record): - test_tags = list(set(["ya:fat", "ya:external"] + ytest.get_values_list(unit, "TEST_TAGS_VALUE"))) - test_requirements = list(set(["network:full"] + ytest.get_values_list(unit, "TEST_REQUIREMENTS_VALUE"))) - - if not len(test_record["TS-TEST-DATA-DIRS"]): - _add_default_hermione_test_data(unit, test_record) - - test_record.update( - { - "SIZE": "LARGE", - "TAG": ytest.serialize_list(test_tags), - "REQUIREMENTS": ytest.serialize_list(test_requirements), - } - ) - - _add_test(unit, test_runner, test_files, deps, test_record) - - -def _add_default_hermione_test_data(unit, test_record): - mod_dir = unit.get("MODDIR") - root_dir = test_record["TS-ROOT-DIR"] - out_dir = test_record["TS-OUT-DIR"] - test_for_path = test_record["TS-TEST-FOR-PATH"] - - abs_root_dir = os.path.normpath(os.path.join(unit.resolve(unit.path()), root_dir)) - file_paths = _find_file_paths(abs_root_dir, "**/screens/*/*/*.png") - file_dirs = [os.path.dirname(f) for f in file_paths] - - rename_from, rename_to = [ - os.path.relpath(os.path.normpath(os.path.join(mod_dir, d)), test_for_path) for d in [root_dir, out_dir] - ] - - test_record.update( - { - "TS-TEST-DATA-DIRS": ytest.serialize_list(_resolve_module_files(unit, mod_dir, file_dirs)), - "TS-TEST-DATA-DIRS-RENAME": "{}:{}".format(rename_from, rename_to), - } - ) - - -def _setup_eslint(unit): - if not _is_tests_enabled(unit): - return - - if unit.get("_NO_LINT_VALUE") == "none": - return - - lint_files = ytest.get_values_list(unit, "_TS_LINT_SRCS_VALUE") - if not lint_files: - return - - mod_dir = unit.get("MODDIR") - lint_files = _resolve_module_files(unit, mod_dir, lint_files) - deps = _create_pm(unit).get_peers_from_package_json() - test_record = { - "ESLINT_CONFIG_PATH": unit.get("ESLINT_CONFIG_PATH"), - # TODO: remove ESLINT_CONFIG_NAME after ya + test_tool release - it is for back-compat - # in addion to that remove .eslintrc.js - it will no longer be needed - "ESLINT_CONFIG_NAME": unit.get("ESLINT_CONFIG_PATH"), - } - - _add_test(unit, "eslint", lint_files, deps, test_record, mod_dir) - - -def _resolve_module_files(unit, mod_dir, file_paths): - resolved_files = [] - - for path in file_paths: - resolved = rootrel_arc_src(path, unit) - if resolved.startswith(mod_dir): - resolved = resolved[len(mod_dir) + 1 :] - resolved_files.append(resolved) - - return resolved_files - - -def _find_file_paths(abs_path, pattern): - file_paths = [] - _, ext = os.path.splitext(pattern) - - for root, _, filenames in os.walk(abs_path): - if not any(f.endswith(ext) for f in filenames): - continue - - abs_file_paths = [os.path.join(root, f) for f in filenames] - - for file_path in fnmatch.filter(abs_file_paths, pattern): - file_paths.append(file_path) - - return file_paths - - -def _add_test(unit, test_type, test_files, deps=None, test_record=None, test_cwd=None): - from lib.nots.package_manager import constants - - if deps: - unit.ondepends(deps) - - test_dir = ytest.get_norm_unit_path(unit) - full_test_record = { - "TEST-NAME": test_type.lower(), - "TEST-TIMEOUT": unit.get("TEST_TIMEOUT") or "", - "TEST-ENV": ytest.prepare_env(unit.get("TEST_ENV_VALUE")), - "TESTED-PROJECT-NAME": os.path.splitext(unit.filename())[0], - "TEST-RECIPES": ytest.prepare_recipes(unit.get("TEST_RECIPES_VALUE")), - "SCRIPT-REL-PATH": test_type, - "SOURCE-FOLDER-PATH": test_dir, - "BUILD-FOLDER-PATH": test_dir, - "BINARY-PATH": os.path.join(test_dir, unit.filename()), - "SPLIT-FACTOR": unit.get("TEST_SPLIT_FACTOR") or "", - "FORK-MODE": unit.get("TEST_FORK_MODE") or "", - "SIZE": unit.get("TEST_SIZE_NAME") or "", - "TEST-FILES": ytest.serialize_list(test_files), - "TEST-CWD": test_cwd or "", - "TAG": ytest.serialize_list(ytest.get_values_list(unit, "TEST_TAGS_VALUE")), - "REQUIREMENTS": ytest.serialize_list(ytest.get_values_list(unit, "TEST_REQUIREMENTS_VALUE")), - "NODEJS-ROOT-VAR-NAME": unit.get("NODEJS_ROOT_VAR_NAME"), - "NODE-MODULES-BUNDLE-FILENAME": constants.NODE_MODULES_WORKSPACE_BUNDLE_FILENAME, - "CUSTOM-DEPENDENCIES": " ".join((deps or []) + ytest.get_values_list(unit, 'TEST_DEPENDS_VALUE')), - } - - if test_record: - full_test_record.update(test_record) - - data = ytest.dump_test(unit, full_test_record) - if data: - unit.set_property(["DART_DATA", data]) - - -def _set_nodejs_root(unit): - pm = _create_pm(unit) - - # example: >= 12.18.4 - version_range = pm.load_package_json_from_dir(pm.sources_path).get_nodejs_version() - - # example: Version(12, 18, 4) - node_version = _select_matching_node_version(version_range) - - # example: NODEJS_12_18_4_RESOURCE_GLOBAL - yamake_node_version_var = "NODEJS_{}_RESOURCE_GLOBAL".format(str(node_version).replace(".", "_")) - - unit.set(["NODEJS_ROOT", "${}".format(yamake_node_version_var)]) - unit.set(["NODEJS_ROOT_VAR_NAME", yamake_node_version_var]) - - -def _select_matching_node_version(range_str): - """ - :param str range_str: - :rtype: Version - """ - from lib.nots.constants import SUPPORTED_NODE_VERSIONS, DEFAULT_NODE_VERSION - from lib.nots.semver import VersionRange - - if range_str is None: - return DEFAULT_NODE_VERSION - - try: - range = VersionRange.from_str(range_str) - - # assuming SUPPORTED_NODE_VERSIONS is sorted from the lowest to highest version - # we stop the loop as early as possible and hence return the lowest compatible version - for version in SUPPORTED_NODE_VERSIONS: - if range.is_satisfied_by(version): - return version - - raise ValueError("There is no allowed version to satisfy this range: '{}'".format(range_str)) - except Exception as error: - raise Exception( - "Requested nodejs version range '{}'' could not be satisfied. Please use a range that would include one of the following: {}.\nFor further details please visit the link: {}\nOriginal error: {}".format( - range_str, map(str, SUPPORTED_NODE_VERSIONS), "https://nda.ya.ru/t/ulU4f5Ru5egzHV", str(error) - ) - ) diff --git a/build/plugins/pybuild.py b/build/plugins/pybuild.py deleted file mode 100644 index 803f6d93ab..0000000000 --- a/build/plugins/pybuild.py +++ /dev/null @@ -1,689 +0,0 @@ -import os -import collections -from hashlib import md5 - -import ymake -from _common import stripext, rootrel_arc_src, tobuilddir, listid, resolve_to_ymake_path, generate_chunks, pathid - - -YA_IDE_VENV_VAR = 'YA_IDE_VENV' -PY_NAMESPACE_PREFIX = 'py/namespace' -BUILTIN_PROTO = 'builtin_proto' - - -def is_arc_src(src, unit): - return ( - src.startswith('${ARCADIA_ROOT}/') or - src.startswith('${CURDIR}/') or - unit.resolve_arc_path(src).startswith('$S/') - ) - - -def is_extended_source_search_enabled(path, unit): - if not is_arc_src(path, unit): - return False - if unit.get('NO_EXTENDED_SOURCE_SEARCH') == 'yes': - return False - return True - - -def to_build_root(path, unit): - if is_arc_src(path, unit): - return '${ARCADIA_BUILD_ROOT}/' + rootrel_arc_src(path, unit) - return path - - -def uniq_suffix(path, unit): - upath = unit.path() - if '/' not in path: - return '' - return '.{}'.format(pathid(upath)[:4]) - - -def pb2_arg(suf, path, mod, unit): - return '{path}__int__{suf}={mod}{modsuf}'.format( - path=stripext(to_build_root(path, unit)), - suf=suf, - mod=mod, - modsuf=stripext(suf) - ) - - -def proto_arg(path, mod, unit): - return '{}.proto={}'.format(stripext(to_build_root(path, unit)), mod) - - -def pb_cc_arg(suf, path, unit): - return '{}{suf}'.format(stripext(to_build_root(path, unit)), suf=suf) - - -def ev_cc_arg(path, unit): - return '{}.ev.pb.cc'.format(stripext(to_build_root(path, unit))) - - -def ev_arg(path, mod, unit): - return '{}__int___ev_pb2.py={}_ev_pb2'.format(stripext(to_build_root(path, unit)), mod) - - -def mangle(name): - if '.' not in name: - return name - return ''.join('{}{}'.format(len(s), s) for s in name.split('.')) - - -def parse_pyx_includes(filename, path, source_root, seen=None): - normpath = lambda *x: os.path.normpath(os.path.join(*x)) - - abs_path = normpath(source_root, filename) - seen = seen or set() - if abs_path in seen: - return - seen.add(abs_path) - - if not os.path.exists(abs_path): - # File might be missing, because it might be generated - return - - with open(abs_path, 'rb') as f: - # Don't parse cimports and etc - irrelevant for cython, it's linker work - includes = ymake.parse_cython_includes(f.read()) - - abs_dirname = os.path.dirname(abs_path) - # All includes are relative to the file which include - path_dirname = os.path.dirname(path) - file_dirname = os.path.dirname(filename) - - for incfile in includes: - abs_path = normpath(abs_dirname, incfile) - if os.path.exists(abs_path): - incname, incpath = normpath(file_dirname, incfile), normpath(path_dirname, incfile) - yield (incname, incpath) - # search for includes in the included files - for e in parse_pyx_includes(incname, incpath, source_root, seen): - yield e - else: - # There might be arcadia root or cython relative include. - # Don't treat such file as missing, because there must be PEERDIR on py_library - # which contains it. - for path in [ - source_root, - source_root + "/contrib/tools/cython/Cython/Includes", - ]: - if os.path.exists(normpath(path, incfile)): - break - else: - ymake.report_configure_error("'{}' includes missing file: {} ({})".format(path, incfile, abs_path)) - - -def has_pyx(args): - return any(arg.endswith('.pyx') for arg in args) - - -def get_srcdir(path, unit): - return rootrel_arc_src(path, unit)[:-len(path)].rstrip('/') - - -def add_python_lint_checks(unit, py_ver, files): - def get_resolved_files(): - resolved_files = [] - for path in files: - resolved = unit.resolve_arc_path([path]) - if resolved.startswith('$S'): # path was resolved as source file. - resolved_files.append(resolved) - return resolved_files - - if unit.get('_NO_LINT_VALUE') == "none": - - no_lint_allowed_paths = ( - "contrib/", - "devtools/", - "junk/", - # temporary allowed, TODO: remove - "taxi/uservices/", - "travel/", - "market/report/lite/", # MARKETOUT-38662, deadline: 2021-08-12 - "passport/backend/oauth/", # PASSP-35982 - "testenv/", # CI-3229 - ) - - upath = unit.path()[3:] - - if not upath.startswith(no_lint_allowed_paths): - ymake.report_configure_error("NO_LINT() is allowed only in " + ", ".join(no_lint_allowed_paths)) - - if files and unit.get('_NO_LINT_VALUE') not in ("none", "none_internal"): - resolved_files = get_resolved_files() - if resolved_files: - flake8_cfg = 'build/config/tests/flake8/flake8.conf' - unit.onadd_check(["flake8.py{}".format(py_ver), flake8_cfg] + resolved_files) - - if files and unit.get('STYLE_PYTHON_VALUE') == 'yes' and is_py3(unit): - resolved_files = get_resolved_files() - if resolved_files: - black_cfg = unit.get('STYLE_PYTHON_PYPROJECT_VALUE') or 'devtools/ya/handlers/style/python_style_config.toml' - params = ['black', 'tools/black_linter/black_linter'] - params += ['FILES'] + resolved_files - params += ['CONFIGS', black_cfg] - unit.on_add_linter_check(params) - - -def is_py3(unit): - return unit.get("PYTHON3") == "yes" - - -def on_py_program(unit, *args): - py_program(unit, is_py3(unit)) - - -def py_program(unit, py3): - """ - Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/#modulpyprogramimakrospymain - """ - if py3: - peers = ['library/python/runtime_py3/main'] - if unit.get('PYTHON_SQLITE3') != 'no': - peers.append('contrib/tools/python3/src/Modules/_sqlite') - else: - peers = ['library/python/runtime/main'] - if unit.get('PYTHON_SQLITE3') != 'no': - peers.append('contrib/tools/python/src/Modules/_sqlite') - unit.onpeerdir(peers) - if unit.get('MODULE_TYPE') == 'PROGRAM': # can not check DLL - unit.onadd_check_py_imports() - - -def onpy_srcs(unit, *args): - """ - @usage PY_SRCS({| CYTHONIZE_PY} {| CYTHON_C} { | TOP_LEVEL | NAMESPACE ns} Files...) - - PY_SRCS() - is rule to build extended versions of Python interpreters and containing all application code in its executable file. It can be used to collect only the executables but not shared libraries, and, in particular, not to collect the modules that are imported using import directive. - The main disadvantage is the lack of IDE support; There is also no readline yet. - The application can be collect from any of the sources from which the C library, and with the help of PY_SRCS .py , .pyx,.proto and .swg files. - At the same time extensions for Python on C language generating from .pyx and .swg, will be registered in Python's as built-in modules, and sources on .py are stored as static data: when the interpreter starts, the initialization code will add a custom loader of these modules to sys.meta_path. - You can compile .py files as Cython sources with CYTHONIZE_PY directive (Use carefully, as build can get too slow). However, with it you won't have profiling info by default. To enable it, add "# cython: profile=True" line to the beginning of every cythonized source. - By default .pyx files are collected as C++-extensions. To collect them as C (similar to BUILDWITH_CYTHON_C, but with the ability to specify namespace), you must specify the Directive CYTHON_C. - Building with pyx automatically registers modules, you do not need to call PY_REGISTER for them - __init__.py never required, but if present (and specified in PY_SRCS), it will be imported when you import package modules with __init__.py Oh. - - Example of library declaration with PY_SRCS(): - PY2_LIBRARY(mymodule) - PY_SRCS(a.py sub/dir/b.py e.proto sub/dir/f.proto c.pyx sub/dir/d.pyx g.swg sub/dir/h.swg) - END() - - PY_REGISTER honors Python2 and Python3 differences and adjusts itself to Python version of a current module - Documentation: https://wiki.yandex-team.ru/arcadia/python/pysrcs/#modulipylibrarypy3libraryimakrospysrcs - """ - # Each file arg must either be a path, or "${...}/buildpath=modname", where - # "${...}/buildpath" part will be used as a file source in a future macro, - # and "modname" will be used as a module name. - - upath = unit.path()[3:] - py3 = is_py3(unit) - py_main_only = unit.get('PROCESS_PY_MAIN_ONLY') - with_py = not unit.get('PYBUILD_NO_PY') - with_pyc = not unit.get('PYBUILD_NO_PYC') - in_proto_library = unit.get('PY_PROTO') or unit.get('PY3_PROTO') - venv = unit.get(YA_IDE_VENV_VAR) - need_gazetteer_peerdir = False - trim = 0 - - if not upath.startswith('contrib/tools/python') and not upath.startswith('library/python/runtime') and unit.get('NO_PYTHON_INCLS') != 'yes': - unit.onpeerdir(['contrib/libs/python']) - - unit_needs_main = unit.get('MODULE_TYPE') in ('PROGRAM', 'DLL') - if unit_needs_main: - py_program(unit, py3) - - py_namespace_value = unit.get('PY_NAMESPACE_VALUE') - if py_namespace_value == ".": - ns = "" - else: - ns = (unit.get('PY_NAMESPACE_VALUE') or upath.replace('/', '.')) + '.' - - cython_coverage = unit.get('CYTHON_COVERAGE') == 'yes' - cythonize_py = False - optimize_proto = unit.get('OPTIMIZE_PY_PROTOS_FLAG') == 'yes' - - cython_directives = [] - if cython_coverage: - cython_directives += ['-X', 'linetrace=True'] - - pyxs_c = [] - pyxs_c_h = [] - pyxs_c_api_h = [] - pyxs_cpp = [] - pyxs_cpp_h = [] - pyxs = pyxs_cpp - swigs_c = [] - swigs_cpp = [] - swigs = swigs_cpp - pys = [] - protos = [] - evs = [] - fbss = [] - py_namespaces = {} - - dump_dir = unit.get('PYTHON_BUILD_DUMP_DIR') - dump_output = None - if dump_dir: - import thread - pid = os.getpid() - tid = thread.get_ident() - dump_name = '{}-{}.dump'.format(pid, tid) - dump_output = open(os.path.join(dump_dir, dump_name), 'a') - - args = iter(args) - for arg in args: - # Namespace directives. - if arg == 'TOP_LEVEL': - ns = '' - elif arg == 'NAMESPACE': - ns = next(args) + '.' - # Cython directives. - elif arg == 'CYTHON_C': - pyxs = pyxs_c - elif arg == 'CYTHON_C_H': - pyxs = pyxs_c_h - elif arg == 'CYTHON_C_API_H': - pyxs = pyxs_c_api_h - elif arg == 'CYTHON_CPP': - pyxs = pyxs_cpp - elif arg == 'CYTHON_CPP_H': - pyxs = pyxs_cpp_h - elif arg == 'CYTHON_DIRECTIVE': - cython_directives += ['-X', next(args)] - elif arg == 'CYTHONIZE_PY': - cythonize_py = True - # SWIG. - elif arg == 'SWIG_C': - swigs = swigs_c - elif arg == 'SWIG_CPP': - swigs = swigs_cpp - # Unsupported but legal PROTO_LIBRARY arguments. - elif arg == 'GLOBAL' or not in_proto_library and arg.endswith('.gztproto'): - pass - elif arg == '_MR': - # GLOB support: convert arcadia-root-relative paths to module-relative - # srcs are assumed to start with ${ARCADIA_ROOT} - trim = len(unit.path()) + 14 - # Sources. - else: - main_mod = arg == 'MAIN' - if main_mod: - arg = next(args) - - if '=' in arg: - main_py = False - path, mod = arg.split('=', 1) - else: - if trim: - arg = arg[trim:] - if arg.endswith('.gztproto'): - need_gazetteer_peerdir = True - path = '{}.proto'.format(arg[:-9]) - else: - path = arg - main_py = (path == '__main__.py' or path.endswith('/__main__.py')) - if not py3 and unit_needs_main and main_py: - mod = '__main__' - else: - if arg.startswith('../'): - ymake.report_configure_error('PY_SRCS item starts with "../": {!r}'.format(arg)) - if arg.startswith('/'): - ymake.report_configure_error('PY_SRCS item starts with "/": {!r}'.format(arg)) - continue - mod_name = stripext(arg).replace('/', '.') - if py3 and path.endswith('.py') and is_extended_source_search_enabled(path, unit): - # Dig out real path from the file path. Unit.path is not enough because of SRCDIR and ADDINCL - root_rel_path = rootrel_arc_src(path, unit) - mod_root_path = root_rel_path[:-(len(path) + 1)] - py_namespaces.setdefault(mod_root_path, set()).add(ns if ns else '.') - mod = ns + mod_name - - if main_mod: - py_main(unit, mod + ":main") - elif py3 and unit_needs_main and main_py: - py_main(unit, mod) - - if py_main_only: - continue - - if py3 and mod == '__main__': - ymake.report_configure_error('TOP_LEVEL __main__.py is not allowed in PY3_PROGRAM') - - pathmod = (path, mod) - - if dump_output is not None: - dump_output.write('{path}\t{module}\t{py3}\n'.format(path=rootrel_arc_src(path, unit), module=mod, py3=1 if py3 else 0)) - - if path.endswith('.py'): - if cythonize_py: - pyxs.append(pathmod) - else: - pys.append(pathmod) - elif path.endswith('.pyx'): - pyxs.append(pathmod) - elif path.endswith('.proto'): - protos.append(pathmod) - elif path.endswith('.ev'): - evs.append(pathmod) - elif path.endswith('.swg'): - swigs.append(pathmod) - # Allow pyi files in PY_SRCS for autocomplete in IDE, but skip it during building - elif path.endswith('.pyi'): - pass - elif path.endswith('.fbs'): - fbss.append(pathmod) - else: - ymake.report_configure_error('in PY_SRCS: unrecognized arg {!r}'.format(path)) - - if dump_output is not None: - dump_output.close() - - if pyxs: - py_files2res = set() - cpp_files2res = set() - # Include map stores files which were included in the processing pyx file, - # to be able to find source code of the included file inside generated file - # for currently processing pyx file. - include_map = collections.defaultdict(set) - - if cython_coverage: - def process_pyx(filename, path, out_suffix, with_ext): - # skip generated files - if not is_arc_src(path, unit): - return - # source file - py_files2res.add((filename, path)) - # generated - if with_ext is None: - cpp_files2res.add((os.path.splitext(filename)[0] + out_suffix, os.path.splitext(path)[0] + out_suffix)) - else: - cpp_files2res.add((filename + with_ext + out_suffix, path + with_ext + out_suffix)) - # used includes - for entry in parse_pyx_includes(filename, path, unit.resolve('$S')): - py_files2res.add(entry) - include_arc_rel = entry[0] - include_map[filename].add(include_arc_rel) - else: - def process_pyx(filename, path, out_suffix, with_ext): - pass - - obj_suff = unit.get('OBJ_SUF') - assert obj_suff is not None - for pyxs, cython, out_suffix, with_ext in [ - (pyxs_c, unit.on_buildwith_cython_c_dep, ".c", obj_suff), - (pyxs_c_h, unit.on_buildwith_cython_c_h, ".c", None), - (pyxs_c_api_h, unit.on_buildwith_cython_c_api_h, ".c", None), - (pyxs_cpp, unit.on_buildwith_cython_cpp_dep, ".cpp", obj_suff), - (pyxs_cpp_h, unit.on_buildwith_cython_cpp_h, ".cpp", None), - ]: - for path, mod in pyxs: - filename = rootrel_arc_src(path, unit) - cython_args = [path] - - dep = path - if path.endswith('.py'): - pxd = '/'.join(mod.split('.')) + '.pxd' - if unit.resolve_arc_path(pxd): - dep = pxd - cython_args.append(dep) - - cython_args += [ - '--module-name', mod, - '--init-suffix', mangle(mod), - '--source-root', '${ARCADIA_ROOT}', - # set arcadia root relative __file__ for generated modules - '-X', 'set_initial_path={}'.format(filename), - ] + cython_directives - - cython(cython_args) - py_register(unit, mod, py3) - process_pyx(filename, path, out_suffix, with_ext) - - if cythonize_py: - # Lint checks are not added for cythonized files by default, so we must add it here - # as we are doing for regular pys. - _23 = 3 if py3 else 2 - add_python_lint_checks(unit, _23, [path for path, mod in pyxs if path.endswith(".py")] + unit.get(['_PY_EXTRA_LINT_FILES_VALUE']).split()) - - if py_files2res: - # Compile original and generated sources into target for proper cython coverage calculation - for files2res in (py_files2res, cpp_files2res): - unit.onresource_files([x for name, path in files2res for x in ('DEST', name, path)]) - - if include_map: - data = [] - prefix = 'resfs/cython/include' - for line in sorted('{}/{}={}'.format(prefix, filename, ':'.join(sorted(files))) for filename, files in include_map.iteritems()): - data += ['-', line] - unit.onresource(data) - - for swigs, on_swig_python in [ - (swigs_c, unit.on_swig_python_c), - (swigs_cpp, unit.on_swig_python_cpp), - ]: - for path, mod in swigs: - # Make output prefix basename match swig module name. - prefix = path[:path.rfind('/') + 1] + mod.rsplit('.', 1)[-1] - swg_py = '{}/{}/{}.py'.format('${ARCADIA_BUILD_ROOT}', upath, prefix) - on_swig_python([path, prefix]) - onpy_register(unit, mod + '_swg') - onpy_srcs(unit, swg_py + '=' + mod) - - if pys: - pys_seen = set() - pys_dups = {m for _, m in pys if (m in pys_seen or pys_seen.add(m))} - if pys_dups: - ymake.report_configure_error('Duplicate(s) is found in the PY_SRCS macro: {}'.format(pys_dups)) - - res = [] - - if py3: - mod_list_md5 = md5() - for path, mod in pys: - mod_list_md5.update(mod) - if not (venv and is_extended_source_search_enabled(path, unit)): - dest = 'py/' + mod.replace('.', '/') + '.py' - if with_py: - res += ['DEST', dest, path] - if with_pyc: - root_rel_path = rootrel_arc_src(path, unit) - dst = path + uniq_suffix(path, unit) - unit.on_py3_compile_bytecode([root_rel_path + '-', path, dst]) - res += ['DEST', dest + '.yapyc3', dst + '.yapyc3'] - - if py_namespaces: - # Note: Add md5 to key to prevent key collision if two or more PY_SRCS() used in the same ya.make - ns_res = [] - for path, ns in sorted(py_namespaces.items()): - key = '{}/{}/{}'.format(PY_NAMESPACE_PREFIX, mod_list_md5.hexdigest(), path) - namespaces = ':'.join(sorted(ns)) - ns_res += ['-', '{}="{}"'.format(key, namespaces)] - unit.onresource(ns_res) - - unit.onresource_files(res) - add_python_lint_checks(unit, 3, [path for path, mod in pys] + unit.get(['_PY_EXTRA_LINT_FILES_VALUE']).split()) - else: - for path, mod in pys: - root_rel_path = rootrel_arc_src(path, unit) - if with_py: - key = '/py_modules/' + mod - res += [ - path, key, - '-', 'resfs/src/{}={}'.format(key, root_rel_path), - ] - if with_pyc: - src = unit.resolve_arc_path(path) or path - dst = path + uniq_suffix(path, unit) - unit.on_py_compile_bytecode([root_rel_path + '-', src, dst]) - res += [dst + '.yapyc', '/py_code/' + mod] - - unit.onresource(res) - add_python_lint_checks(unit, 2, [path for path, mod in pys] + unit.get(['_PY_EXTRA_LINT_FILES_VALUE']).split()) - - use_vanilla_protoc = unit.get('USE_VANILLA_PROTOC') == 'yes' - if use_vanilla_protoc: - cpp_runtime_path = 'contrib/libs/protobuf_std' - py_runtime_path = 'contrib/python/protobuf_std' - builtin_proto_path = cpp_runtime_path + '/' + BUILTIN_PROTO - else: - cpp_runtime_path = 'contrib/libs/protobuf' - py_runtime_path = 'contrib/python/protobuf' - builtin_proto_path = cpp_runtime_path + '/' + BUILTIN_PROTO - - if protos: - if not upath.startswith(py_runtime_path) and not upath.startswith(builtin_proto_path): - unit.onpeerdir(py_runtime_path) - - unit.onpeerdir(unit.get("PY_PROTO_DEPS").split()) - - proto_paths = [path for path, mod in protos] - unit.on_generate_py_protos_internal(proto_paths) - unit.onpy_srcs([ - pb2_arg(py_suf, path, mod, unit) - for path, mod in protos - for py_suf in unit.get("PY_PROTO_SUFFIXES").split() - ]) - - if optimize_proto and need_gazetteer_peerdir: - unit.onpeerdir(['kernel/gazetteer/proto']) - - if evs: - unit.onpeerdir([cpp_runtime_path]) - unit.on_generate_py_evs_internal([path for path, mod in evs]) - unit.onpy_srcs([ev_arg(path, mod, unit) for path, mod in evs]) - - if fbss: - unit.onpeerdir(unit.get('_PY_FBS_DEPS').split()) - pysrc_base_name = listid(fbss) - unit.onfbs_to_pysrc([pysrc_base_name] + [path for path, _ in fbss]) - unit.onsrcs(['GLOBAL', '{}.fbs.pysrc'.format(pysrc_base_name)]) - - -def _check_test_srcs(*args): - used = set(args) & {"NAMESPACE", "TOP_LEVEL", "__main__.py"} - if used: - param = list(used)[0] - ymake.report_configure_error('in TEST_SRCS: you cannot use {} here - it would broke testing machinery'.format(param)) - - -def ontest_srcs(unit, *args): - _check_test_srcs(*args) - if unit.get('PY3TEST_BIN' if is_py3(unit) else 'PYTEST_BIN') != 'no': - unit.onpy_srcs(["NAMESPACE", "__tests__"] + list(args)) - - -def onpy_doctests(unit, *args): - """ - @usage PY_DOCTESTS(Packages...) - - Add to the test doctests for specified Python packages - The packages should be part of a test (listed as sources of the test or its PEERDIRs). - """ - if unit.get('PY3TEST_BIN' if is_py3(unit) else 'PYTEST_BIN') != 'no': - unit.onresource(['-', 'PY_DOCTEST_PACKAGES="{}"'.format(' '.join(args))]) - - -def py_register(unit, func, py3): - if py3: - unit.on_py3_register([func]) - else: - unit.on_py_register([func]) - - -def onpy_register(unit, *args): - """ - @usage: PY_REGISTER([package.]module_name) - - Python knows about which built-ins can be imported, due to their registration in the Assembly or at the start of the interpreter. - All modules from the sources listed in PY_SRCS() are registered automatically. - To register the modules from the sources in the SRCS(), you need to use PY_REGISTER(). - - PY_REGISTER(module_name) initializes module globally via call to initmodule_name() - PY_REGISTER(package.module_name) initializes module in the specified package - It renames its init function with CFLAGS(-Dinitmodule_name=init7package11module_name) - or CFLAGS(-DPyInit_module_name=PyInit_7package11module_name) - - Documentation: https://wiki.yandex-team.ru/arcadia/python/pysrcs/#makrospyregister - """ - - py3 = is_py3(unit) - - for name in args: - assert '=' not in name, name - py_register(unit, name, py3) - if '.' in name: - shortname = name.rsplit('.', 1)[1] - if py3: - unit.oncflags(['-DPyInit_{}=PyInit_{}'.format(shortname, mangle(name))]) - else: - unit.oncflags(['-Dinit{}=init{}'.format(shortname, mangle(name))]) - - -def py_main(unit, arg): - if unit.get('IGNORE_PY_MAIN'): - return - unit_needs_main = unit.get('MODULE_TYPE') in ('PROGRAM', 'DLL') - if unit_needs_main: - py_program(unit, is_py3(unit)) - unit.onresource(['-', 'PY_MAIN={}'.format(arg)]) - - -def onpy_main(unit, arg): - """ - @usage: PY_MAIN(package.module[:func]) - - Specifies the module or function from which to start executing a python program - - Documentation: https://wiki.yandex-team.ru/arcadia/python/pysrcs/#modulipyprogrampy3programimakrospymain - """ - - arg = arg.replace('/', '.') - - if ':' not in arg: - arg += ':main' - - py_main(unit, arg) - - -def onpy_constructor(unit, arg): - """ - @usage: PY_CONSTRUCTOR(package.module[:func]) - - Specifies the module or function which will be started before python's main() - init() is expected in the target module if no function is specified - Can be considered as __attribute__((constructor)) for python - """ - if ':' not in arg: - arg = arg + '=init' - else: - arg[arg.index(':')] = '=' - unit.onresource(['-', 'py/constructors/{}'.format(arg)]) - - -def onpy_enums_serialization(unit, *args): - ns = '' - args = iter(args) - for arg in args: - # Namespace directives. - if arg == 'NAMESPACE': - ns = next(args) - else: - unit.on_py_enum_serialization_to_json(arg) - unit.on_py_enum_serialization_to_py(arg) - filename = arg.rsplit('.', 1)[0] + '.py' - if len(ns) != 0: - onpy_srcs(unit, 'NAMESPACE', ns, filename) - else: - onpy_srcs(unit, filename) - - -def oncpp_enums_serialization(unit, *args): - args = iter(args) - for arg in args: - # Namespace directives. - if arg == 'NAMESPACE': - next(args) - else: - unit.ongenerate_enum_serialization_with_header(arg) diff --git a/build/plugins/res.py b/build/plugins/res.py deleted file mode 100644 index c3fecce4dd..0000000000 --- a/build/plugins/res.py +++ /dev/null @@ -1,133 +0,0 @@ -import json -import os -import six -from _common import iterpair, listid, pathid, rootrel_arc_src, tobuilddir, filter_out_by_keyword -import ymake - - -def split(lst, limit): - # paths are specified with replaceable prefix - # real length is unknown at the moment, that why we use root_lenght - # as a rough estimation - root_lenght = 200 - filepath = None - lenght = 0 - bucket = [] - - for item in lst: - if filepath: - lenght += root_lenght + len(filepath) + len(item) - if lenght > limit and bucket: - yield bucket - bucket = [] - lenght = 0 - - bucket.append(filepath) - bucket.append(item) - filepath = None - else: - filepath = item - - if bucket: - yield bucket - - -def remove_prefix(text, prefix): - if text.startswith(prefix): - return text[len(prefix):] - return text - - -def onresource_files(unit, *args): - """ - @usage: RESOURCE_FILES([DONT_PARSE] [PREFIX {prefix}] [STRIP prefix_to_strip] {path}) - - This macro expands into - RESOURCE([DONT_PARSE] {path} resfs/file/{prefix}{path} - - resfs/src/resfs/file/{prefix}{remove_prefix(path, prefix_to_strip)}={rootrel_arc_src(path)} - ) - - resfs/src/{key} stores a source root (or build root) relative path of the - source of the value of the {key} resource. - - resfs/file/{key} stores any value whose source was a file on a filesystem. - resfs/src/resfs/file/{key} must store its path. - - DONT_PARSE disables parsing for source code files (determined by extension) - Please don't abuse: use separate DONT_PARSE macro call only for files subject to parsing - - This form is for use from other plugins: - RESOURCE_FILES([DEST {dest}] {path}) expands into RESOURCE({path} resfs/file/{dest}) - - @see: https://wiki.yandex-team.ru/devtools/commandsandvars/resourcefiles/ - """ - prefix = '' - prefix_to_strip = None - dest = None - res = [] - first = 0 - - if args and not unit.enabled('_GO_MODULE'): - # GO_RESOURCE currently doesn't support DONT_PARSE - res.append('DONT_PARSE') - - if args and args[0] == 'DONT_PARSE': - first = 1 - - args = iter(args[first:]) - for arg in args: - if arg == 'DONT_PARSE': - # ignore explicit specification - continue - if arg == 'PREFIX': - prefix, dest = next(args), None - elif arg == 'DEST': - dest, prefix = next(args), None - elif arg == 'STRIP': - prefix_to_strip = next(args) - else: - path = arg - key = 'resfs/file/' + (dest or (prefix + (path if not prefix_to_strip else remove_prefix(path, prefix_to_strip)))) - src = 'resfs/src/{}={}'.format(key, rootrel_arc_src(path, unit)) - res += ['-', src, path, key] - - if unit.enabled('_GO_MODULE'): - unit.on_go_resource(res) - else: - unit.onresource(res) - -def onall_resource_files(unit, *args): - # This is only validation, actual work is done in ymake.core.conf implementation - for arg in args: - if '*' in arg or '?' in arg: - ymake.report_configure_error('Wildcards in [[imp]]ALL_RESOURCE_FILES[[rst]] are not allowed') - -def on_ya_conf_json(unit, conf_file): - conf_abs_path = unit.resolve('$S/' + conf_file) - if not os.path.exists(conf_abs_path): - ymake.report_configure_error('File "{}" not found'.format(conf_abs_path)) - return - - # conf_file should be passed to the RESOURCE_FILES macro without path. - # To resolve it later by name only we must add it's path to SRCDIR(). - conf_dir = os.path.dirname(conf_file) - if conf_dir: - unit.onsrcdir(conf_dir) - unit.onresource_files(os.path.basename(conf_file)) - - with open(conf_abs_path) as f: - conf = json.load(f) - formulas = set() - for bottle_name, bottle in conf['bottles'].items(): - formula = bottle['formula'] - if isinstance(formula, six.string_types): - if formula.startswith(conf_dir): - abs_path = unit.resolve('$S/' + formula) - if os.path.exists(abs_path): - formulas.add(formula) - else: - ymake.report_configure_error('File "{}" (referenced from bottle "{}" in "{}") is not found'.format(abs_path, bottle_name, conf_abs_path)) - else: - ymake.report_configure_error('File "{}" (referenced from bottle "{}" in "{}") must be located in "{}" file tree'.format(formula, bottle_name, conf_file, conf_dir)) - for formula in formulas: - unit.onresource_files(formula) diff --git a/build/plugins/sandbox_registry.py b/build/plugins/sandbox_registry.py deleted file mode 100644 index dc1be399b3..0000000000 --- a/build/plugins/sandbox_registry.py +++ /dev/null @@ -1,21 +0,0 @@ -import os - -import ymake - - -def onregister_sandbox_import(unit, *args): - args = iter(args) - for path in args: - path = os.path.normpath(path) - source = unit.resolve_arc_path(path) - abs_source = unit.resolve(source) - if not os.path.exists(abs_source): - ymake.report_configure_error('REGISTER_SANDBOX_IMPORT: File or directory {} does not exists'.format(path)) - splited_path = path.split(os.sep) - l, r = 0, len(splited_path) - if splited_path[-1] == "__init__.py": - r -= 1 - if not splited_path[0]: - l += 1 - path = ".".join(splited_path[l:r]) - unit.onresource(["-", "{}.{}={}".format("SANDBOX_TASK_REGISTRY", path, path)]) diff --git a/build/plugins/scarab_cant_clash.py b/build/plugins/scarab_cant_clash.py deleted file mode 100644 index 77dc303183..0000000000 --- a/build/plugins/scarab_cant_clash.py +++ /dev/null @@ -1,66 +0,0 @@ -import _common as common - - -def onacceleo(unit, *args): - if unit.get("YMAKE_JAVA_MODULES") == "yes": - return - flat, kv = common.sort_by_keywords( - {'XSD': -1, 'MTL': -1, 'MTL_ROOT': 1, 'LANG': -1, 'OUT': -1, 'OUT_NOAUTO': -1, 'OUTPUT_INCLUDES': -1, 'DEBUG': 0}, - args - ) - - try: - mtlroot = kv['MTL_ROOT'][0] - except Exception: - mtlroot = unit.path().replace('$S/', '') - - classpath = ['$SCARAB', ] # XXX special word for ya make to replace following paths with real classpath - classpath.append('tools/acceleo') - - depends = [] - if not unit.get('IDE_MSVS_CALL'): - for jar in classpath[1:]: - depends.append(jar) - - classpath = ':'.join(classpath) - - # Generate java cmd - cmd = [ - '-classpath', - classpath, - '-Dfile.encoding=UTF-8', - 'ru.yandex.se.logsng.tool.Cli', - ] - - for xsd in kv.get('XSD', []): - cmd += ['--xsd', xsd] - - for mtl in kv.get('MTL', []): - cmd += ['--mtl', mtl] - - for lang in kv.get('LANG', []): - cmd += ['--lang', lang] - - cmd += ['--output-dir', unit.path().replace('$S/', '${ARCADIA_BUILD_ROOT}/')] - cmd += ['--build-root', '${ARCADIA_BUILD_ROOT}'] - cmd += ['--source-root', '${ARCADIA_ROOT}'] - cmd += ['--mtl-root', mtlroot] - - # Generate RUN_JAVA args - run_java = cmd - - if 'DEBUG' not in kv: - run_java += ['HIDE_OUTPUT'] - - inputs = kv.get('XSD', []) + kv.get('MTL', []) + kv.get('LANG', []) - if inputs: - run_java += ['IN'] + inputs - - for k in 'OUT', 'OUT_NOAUTO', 'OUTPUT_INCLUDES': - if kv.get(k): - run_java += [k] + kv[k] - - if depends: - run_java += ['TOOL'] + depends - - unit.on_run_java(run_java) diff --git a/build/plugins/split_codegen.py b/build/plugins/split_codegen.py deleted file mode 100644 index f1e60bc142..0000000000 --- a/build/plugins/split_codegen.py +++ /dev/null @@ -1,43 +0,0 @@ -from _common import sort_by_keywords - -# This hard-coded many times in CppParts in various codegens -_DEFAULT_CPP_PARTS = 20 -# See TCodegenParams::MethodStream usage in factor codegen -_ADDITIONAL_STREAM_COUNT = 5 - - -def onsplit_codegen(unit, *args): - ''' - @usage: SPLIT_CODEGEN(tool prefix opts... [OUT_NUM num] [OUTPUT_INCLUDES output_includes...]) - - Generator of a certain number of parts of the .cpp file + one header .h file from .in - - Supports keywords: - 1. OUT_NUM <the number of generated Prefix.N.cpp default 25 (N varies from 0 to 24)> - 2. OUTPUT_INCLUDES <path to files that will be included in generalnyj of macro files> - ''' - keywords = {"OUT_NUM": 1} - flat_args, spec_args = sort_by_keywords(keywords, args) - - num_outputs = _DEFAULT_CPP_PARTS + _ADDITIONAL_STREAM_COUNT - if "OUT_NUM" in spec_args: - num_outputs = int(spec_args["OUT_NUM"][0]) - - tool = flat_args[0] - prefix = flat_args[1] - - cmd = [tool, prefix, 'OUT'] - for num in range(num_outputs): - cmd.append('{}.{}.cpp'.format(prefix, num)) - - cpp_parts = int(num_outputs) - _ADDITIONAL_STREAM_COUNT - cpp_parts_args = ['--cpp-parts', str(cpp_parts)] - - if len(flat_args) > 2: - if flat_args[2] != 'OUTPUT_INCLUDES': - cmd.append('OPTS') - cmd += cpp_parts_args + flat_args[2:] - else: - cmd += ['OPTS'] + cpp_parts_args - - unit.on_split_codegen_base(cmd) diff --git a/build/plugins/ssqls.py b/build/plugins/ssqls.py deleted file mode 100644 index 8c3ea86829..0000000000 --- a/build/plugins/ssqls.py +++ /dev/null @@ -1,40 +0,0 @@ -from os.path import splitext - -import ymake -from _common import resolve_includes - - -class SSQLSParser(object): - def __init__(self, path, unit): - s = unit.resolve_arc_path(path) - assert s.startswith('$S/') and s.endswith('.ssqls'), s - h = '$B/' + s[3:-6] + '.h' - - import xml.etree.cElementTree as ET - try: - doc = ET.parse(path) - except ET.ParseError as e: - unit.message(['error', 'malformed XML {}: {}'.format(path, e)]) - doc = ET.Element('DbObject') - xmls, headers = self.parse_doc(doc) - self._includes = resolve_includes(unit, s, xmls) - self._induced = {'cpp': [h], 'h': resolve_includes(unit, h, headers)} - - @staticmethod - def parse_doc(doc): - paths = lambda nodes: filter(None, (e.get('path') for e in nodes)) - includes = doc.findall('include') - ancestors = paths(doc.findall('ancestors/ancestor')) - headers = [e.text.strip('<>""') for e in includes] - headers += [splitext(s)[0] + '.h' for s in ancestors] - return paths(includes) + ancestors, headers - - def includes(self): - return self._includes - - def induced_deps(self): - return self._induced - - -def init(): - ymake.addparser('ssqls', SSQLSParser) diff --git a/build/plugins/suppressions.py b/build/plugins/suppressions.py deleted file mode 100644 index 6f4a1b4f03..0000000000 --- a/build/plugins/suppressions.py +++ /dev/null @@ -1,19 +0,0 @@ -def onsuppressions(unit, *args): - """ - SUPPRESSIONS() - allows to specify files with suppression notation which will be used by - address, leak or thread sanitizer runtime by default. - Use asan.supp filename for address sanitizer, lsan.supp for leak sanitizer - and tsan.supp for thread sanitizer suppressions respectively. - See https://clang.llvm.org/docs/AddressSanitizer.html#suppressing-memory-leaks - for details. - """ - import os - - valid = ("asan.supp", "tsan.supp", "lsan.supp") - - if unit.get("SANITIZER_TYPE") in ("leak", "address", "thread"): - for x in args: - if os.path.basename(x) not in valid: - unit.message(['error', "Invalid suppression filename: {} (any of the following is expected: {})".format(x, valid)]) - return - unit.onsrcs(["GLOBAL"] + list(args)) diff --git a/build/plugins/tests/fake_ymake.py b/build/plugins/tests/fake_ymake.py deleted file mode 100644 index a20d28525a..0000000000 --- a/build/plugins/tests/fake_ymake.py +++ /dev/null @@ -1,2 +0,0 @@ -def addparser(): - pass diff --git a/build/plugins/tests/test_code_generator.py b/build/plugins/tests/test_code_generator.py deleted file mode 100644 index 771babc0c0..0000000000 --- a/build/plugins/tests/test_code_generator.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -from build.plugins.tests import fake_ymake -sys.modules['ymake'] = fake_ymake - -from build.plugins import code_generator - - -def test_include_parser(): - template_file = """ - @ from 'util/namespace.macro' import namespace, change_namespace, close_namespaces - @ import 'market/tools/code_generator/templates/serialization/json.macro' as json - @ import 'market/tools/code_generator/templates/serialization/request_parameters.macro' as rp - #include <sss/abcdefg.h> - #include<fff/asd> - #include "hhh/quququ.h" - """ - - includes, induced = code_generator.CodeGeneratorTemplateParser.parse_includes(template_file.split('\n')) - assert includes == ['util/namespace.macro', 'market/tools/code_generator/templates/serialization/json.macro', 'market/tools/code_generator/templates/serialization/request_parameters.macro'] - assert induced == ['sss/abcdefg.h', 'fff/asd', 'hhh/quququ.h'] diff --git a/build/plugins/tests/test_common.py b/build/plugins/tests/test_common.py deleted file mode 100644 index e1780354f8..0000000000 --- a/build/plugins/tests/test_common.py +++ /dev/null @@ -1,49 +0,0 @@ -import pytest - -import build.plugins._common as pc - - -def test_sort_by_keywords(): - keywords = {'KEY1': 2, 'KEY2': 0, 'KEY3': 1} - args = 'aaaa bbbb KEY2 KEY1 kkk10 kkk11 ccc ddd KEY3 kkk3 eee'.split() - flat, spec = pc.sort_by_keywords(keywords, args) - assert flat == ['aaaa', 'bbbb', 'ccc', 'ddd', 'eee'] - assert spec == {'KEY1': ['kkk10', 'kkk11'], 'KEY2': True, 'KEY3': ['kkk3']} - - keywords = {'KEY1': 0, 'KEY2': 4} - args = 'aaaa KEY2 eee'.split() - flat, spec = pc.sort_by_keywords(keywords, args) - assert flat == ['aaaa'] - assert spec == {'KEY2': ['eee']} - - keywords = {'KEY1': 2, 'KEY2': 2} - args = 'KEY1 k10 KEY2 k20 KEY1 k11 KEY2 k21 KEY1 k13'.split() - flat, spec = pc.sort_by_keywords(keywords, args) - assert flat == [] - assert spec == {'KEY1': ['k10', 'k11', 'k13'], 'KEY2': ['k20', 'k21']} - - -def test_filter_out_by_keyword(): - assert pc.filter_out_by_keyword([], 'A') == [] - assert pc.filter_out_by_keyword(['x'], 'A') == ['x'] - assert pc.filter_out_by_keyword(['x', 'A'], 'A') == ['x'] - assert pc.filter_out_by_keyword(['x', 'A', 'B'], 'A') == ['x'] - assert pc.filter_out_by_keyword(['x', 'A', 'B', 'y'], 'A') == ['x', 'y'] - assert pc.filter_out_by_keyword(['x', 'A', 'A', 'y'], 'A') == ['x', 'y'] - assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A'], 'A') == ['x'] - assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y'], 'A') == ['x', 'y'] - assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y', 'A'], 'A') == ['x', 'y'] - assert pc.filter_out_by_keyword(['x', 'A', 'A', 'A', 'B', 'y', 'A', 'F', 'z'], 'A') == ['x', 'y', 'z'] - - -test_data = [ - [[1, 2, 3], 1, [[1], [2], [3]]], - [[1, 2, 3], 2, [[1, 2], [3]]], - [[1, 2, 3, 4], 2, [[1, 2], [3, 4]]], - [[1], 5, [[1]]], -] - - -@pytest.mark.parametrize('lst, chunk_size, expected', test_data, ids=[str(num + 1) for num in range(len(test_data))]) -def test_generate_chunks(lst, chunk_size, expected): - assert list(pc.generate_chunks(lst, chunk_size)) == expected diff --git a/build/plugins/tests/test_requirements.py b/build/plugins/tests/test_requirements.py deleted file mode 100644 index e571f0c704..0000000000 --- a/build/plugins/tests/test_requirements.py +++ /dev/null @@ -1,67 +0,0 @@ -import pytest - -import build.plugins._requirements as requirements -import build.plugins.lib.test_const as consts - - -class TestRequirements(object): - @pytest.mark.parametrize('test_size', consts.TestSize.sizes()) - def test_cpu(self, test_size): - max_cpu = consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.Cpu) - min_cpu = consts.TestRequirementsConstants.MinCpu - assert requirements.check_cpu(-1, test_size) - assert requirements.check_cpu(min_cpu - 1, test_size) - assert requirements.check_cpu("unknown", test_size) - assert not requirements.check_cpu(1, test_size) - assert not requirements.check_cpu(3, test_size) - assert requirements.check_cpu(1000, test_size) - if max_cpu != consts.TestRequirementsConstants.All: - assert requirements.check_cpu(max_cpu + 1, test_size) - assert requirements.check_cpu(max_cpu + 4, test_size) - assert requirements.check_cpu(consts.TestRequirementsConstants.All, test_size) - else: - assert not requirements.check_cpu(consts.TestRequirementsConstants.All, test_size) - - @pytest.mark.parametrize('test_size', consts.TestSize.sizes()) - def test_ram(self, test_size): - max_ram = consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.Ram) - min_ram = consts.TestRequirementsConstants.MinRam - assert requirements.check_ram(-1, test_size) - assert requirements.check_ram(min_ram - 1, test_size) - assert requirements.check_ram(max_ram + 1, test_size) - assert not requirements.check_ram(1, test_size) - assert not requirements.check_ram(4, test_size) - assert not requirements.check_ram(5, test_size) - assert not requirements.check_ram(32, consts.TestSize.Large) - assert requirements.check_ram(48, consts.TestSize.Large) - - assert not requirements.check_ram(1, test_size, is_kvm=True) - assert not requirements.check_ram(4, test_size, is_kvm=True) - assert not requirements.check_ram(16, test_size, is_kvm=True) - assert requirements.check_ram(32, test_size, is_kvm=True) - - @pytest.mark.parametrize('test_size', consts.TestSize.sizes()) - def test_ram_disk(self, test_size): - max_ram_disk = consts.TestSize.get_max_requirements(test_size).get(consts.TestRequirements.RamDisk) - min_ram_disk = consts.TestRequirementsConstants.MinRamDisk - assert requirements.check_ram_disk(-1, test_size) - assert requirements.check_ram_disk(min_ram_disk - 1, test_size) - assert requirements.check_ram_disk(max_ram_disk + 1, test_size) - assert requirements.check_ram_disk(33, test_size) - assert not requirements.check_ram_disk(32, test_size) - assert not requirements.check_ram_disk(1, test_size) - assert not requirements.check_ram_disk(4, test_size) - assert not requirements.validate_ram_disk_requirement('ram_disk', '0', test_size, False, True, False, False, False, 1) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, False, False, 1) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, True, True, False, False, False, 0) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, False, False, False, False, 0) - if test_size != consts.TestSize.Large: - assert requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, False, False, 0) - assert requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, True, False, False, 0) - assert requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, True, False, 0) - assert requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, False, True, 0) - else: - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, False, False, 0) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, True, False, False, 0) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, True, False, 0) - assert not requirements.validate_ram_disk_requirement('ram_disk', '1', test_size, False, True, False, False, True, 0) diff --git a/build/plugins/tests/test_ssqls.py b/build/plugins/tests/test_ssqls.py deleted file mode 100644 index 08798b1591..0000000000 --- a/build/plugins/tests/test_ssqls.py +++ /dev/null @@ -1,27 +0,0 @@ -import sys -from build.plugins.tests import fake_ymake -sys.modules['ymake'] = fake_ymake - -import xml.etree.cElementTree as ET - -from build.plugins import ssqls - - -example = '''\ -<?xml version="1.0" encoding="utf-8"?> -<DbObject> - <include path="A.ssqls"><a.h></include> - <include>"b.h"</include> - - <ancestors> - <ancestor path="C.ssqls"/> - </ancestors> -</DbObject> -''' - - -def test_include_parser(): - doc = ET.fromstring(example) - xmls, headers = ssqls.SSQLSParser.parse_doc(doc) - assert headers == ['a.h', 'b.h', 'C.h'] - assert xmls == ['A.ssqls', 'C.ssqls'] diff --git a/build/plugins/tests/ya.make b/build/plugins/tests/ya.make deleted file mode 100644 index 0c54899cc9..0000000000 --- a/build/plugins/tests/ya.make +++ /dev/null @@ -1,25 +0,0 @@ -PY2TEST() - -OWNER(g:yatool) - -PEERDIR( - build/plugins -) - -PY_SRCS( - fake_ymake.py -) - -TEST_SRCS( - test_code_generator.py - test_common.py - test_requirements.py - test_ssqls.py -) - -NO_CHECK_IMPORTS( - build.plugins.code_generator - build.plugins.ssqls -) - -END() diff --git a/build/plugins/uservices.py b/build/plugins/uservices.py deleted file mode 100644 index 12eec99a76..0000000000 --- a/build/plugins/uservices.py +++ /dev/null @@ -1,36 +0,0 @@ -import json -import ymake - -def on_process_usrv_files(unit, *args): - mode = None - if args[0] == 'NO_DEPS': - for f in args[1:]: - if f == 'OUT_NOAUTO': - mode = f - continue - if mode is not None: - unit.on_move([f + '.usrv', mode, f]) - elif f.endswith('.cpp'): - unit.on_move([f + '.usrv', 'OUT', f]) - else: - unit.on_move([f + '.usrv', 'OUT_NOAUTO', f]) - return - - deps_file = unit.resolve(unit.resolve_arc_path(args[0])) - try: - all_deps = json.load(open(deps_file, 'r')) - except Exception as e: - ymake.report_configure_error('Malformed dependencies JSON `{}`: {}'.format(args[0], e.__repr__())) - return - mode = 'OUT' - for f in args[1:]: - if f == 'OUT_NOAUTO': - mode = f - continue - try: - deps = all_deps[f] - except KeyError: - ymake.report_configure_error('Dependencies for {} not found in {}'.format(f, args[0])) - unit.on_usrv_mv_with_deps([f]) - return - unit.on_move([f + '.usrv', mode, f, 'CPP_DEPS'] + deps) diff --git a/build/plugins/ya.make b/build/plugins/ya.make deleted file mode 100644 index e9ca97626d..0000000000 --- a/build/plugins/ya.make +++ /dev/null @@ -1,24 +0,0 @@ -OWNER(g:ymake) - -PY2_LIBRARY() - -PY_SRCS( - code_generator.py - ssqls.py - maps_mobile_idl.py - - _common.py - _requirements.py -) - -PEERDIR( - build/plugins/lib - build/plugins/lib/test_const -) - -END() - -RECURSE( - tests - lib/test_const -) diff --git a/build/plugins/yabs_generate_conf.py b/build/plugins/yabs_generate_conf.py deleted file mode 100644 index 49e0982fdb..0000000000 --- a/build/plugins/yabs_generate_conf.py +++ /dev/null @@ -1,61 +0,0 @@ -from _common import sort_by_keywords - - -def get_or_default(kv, name, default): - if name in kv: - return kv[name][0] - return default - - -def onyabs_generate_conf(unit, *args): - flat, kv = sort_by_keywords( - {'MODE': 1, 'SCRIPT': 1, 'SRC': 1, 'TOOL': 1, 'CONF_DIR': 1, 'DEST': 1}, args - ) - src = get_or_default(kv, 'SRC', 'yabs/server/phantom') - mode = get_or_default(kv, 'MODE', 'production') - - script = src + "/" + get_or_default(kv, 'SCRIPT', 'mkconf.py') - conf = src + "/" + get_or_default(kv, 'CONF_DIR', 'conf-tmpl') - tool = src + "/" + get_or_default(kv, 'TOOL', 'yabs_conf') - - for name in flat: - filename = "/".join([conf, name]) - unit.onpython([ - script, - "--cluster-conf-binary", tool, - "--mode", mode, - "--dest-dir", "${BINDIR}", - filename, - "IN", filename, - "OUT_NOAUTO", "${BINDIR}/%s" % name, - "TOOL", tool - ]) - - -def onyabs_generate_phantom_conf_patch(unit, *args): - flat, kv = sort_by_keywords( - {'SRC': 1, 'DST': 1}, args - ) - src = '${ARCADIA_BUILD_ROOT}/' + get_or_default(kv, 'SRC', 'yabs/server/phantom/conf') - dst = '${ARCADIA_BUILD_ROOT}/' + get_or_default(kv, 'DST', 'yabs/server/phantom/conf-test') - for f in flat: - lhs = src + '/' + f - rhs = dst + '/' + f - unit.onpython([ - 'mkdiff.py', - lhs, rhs, - 'IN', lhs, - 'IN', rhs, - 'STDOUT', f + ".patch" - ]) - - -def onyabs_generate_phantom_conf_test_check(unit, *args): - yabs_path = args[0] - for name in args[1:]: - unit.onpython(""" - build/scripts/wrapper.py mkcheckconf.sh ${{ARCADIA_BUILD_ROOT}}/{yabs_path}/phantom/conf-test/yabs-{role}.conf yabs-check-{role}.conf - IN mkcheckconf.sh ${{ARCADIA_BUILD_ROOT}}/{yabs_path}/phantom/conf-test/yabs-{role}.conf - OUT yabs-check-{role}.conf -""".format(yabs_path=yabs_path, role=name).split() # noqa - ) diff --git a/build/plugins/yql_python_udf.py b/build/plugins/yql_python_udf.py deleted file mode 100644 index 72584c3e62..0000000000 --- a/build/plugins/yql_python_udf.py +++ /dev/null @@ -1,55 +0,0 @@ -from _common import sort_by_keywords - - -def get_or_default(kv, name, default): - if name in kv: - return kv[name][0] - return default - - -def onregister_yql_python_udf(unit, *args): - flat, kv = sort_by_keywords({'NAME': 1, 'RESOURCE_NAME': 1, 'ADD_LIBRA_MODULES': 1}, args) - assert len(flat) == 0 - name = get_or_default(kv, 'NAME', 'CustomPython') - resource_name = get_or_default(kv, 'RESOURCE_NAME', name) - add_libra_modules = get_or_default(kv, 'ADD_LIBRA_MODULES', 'no') == 'yes' - - use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') == 'yes' - py3 = unit.get('PYTHON3') == 'yes' - - unit.onyql_abi_version(['2', '14', '0']) - unit.onpeerdir(['yql/udfs/common/python/python_udf']) - unit.onpeerdir(['ydb/library/yql/public/udf']) - - if add_libra_modules: - unit.onpeerdir(['quality/user_sessions/libra_arc/noyql']) - unit.onpeerdir(['yql/udfs/quality/libra/module']) - - if use_arcadia_python: - flavor = 'Arcadia' - unit.onpeerdir([ - 'library/python/runtime', - 'yql/udfs/common/python/main' - ] if not py3 else [ - 'library/python/runtime_py3', - 'yql/udfs/common/python/main_py3' - ]) - else: - flavor = 'System' - - output_includes = [ - 'yql/udfs/common/python/python_udf/python_udf.h', - 'ydb/library/yql/public/udf/udf_registrator.h', - ] - if add_libra_modules: - output_includes.append('yql/udfs/quality/libra/module/module.h') - - path = name + '.yql_python_udf.cpp' - libra_flag = '1' if add_libra_modules else '0' - unit.onpython([ - 'build/scripts/gen_yql_python_udf.py', - flavor, name, resource_name, path, libra_flag, - 'OUT', path, - 'OUTPUT_INCLUDES', - ] + output_includes - ) diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py deleted file mode 100644 index 2505f17373..0000000000 --- a/build/plugins/ytest.py +++ /dev/null @@ -1,1203 +0,0 @@ -import os -import re -import sys -import json -import copy -import base64 -import shlex -import _common -import lib.test_const as consts -import _requirements as reqs -import StringIO -import subprocess -import collections - -import ymake - - -MDS_URI_PREFIX = 'https://storage.yandex-team.ru/get-devtools/' -MDS_SCHEME = 'mds' -CANON_DATA_DIR_NAME = 'canondata' -CANON_OUTPUT_STORAGE = 'canondata_storage' -CANON_RESULT_FILE_NAME = 'result.json' -CANON_MDS_RESOURCE_REGEX = re.compile(re.escape(MDS_URI_PREFIX) + r'(.*?)($|#)') -CANON_SBR_RESOURCE_REGEX = re.compile(r'(sbr:/?/?(\d+))') - -BLOCK_SEPARATOR = '=============================================================' -SPLIT_FACTOR_MAX_VALUE = 1000 -SPLIT_FACTOR_TEST_FILES_MAX_VALUE = 4250 -PARTITION_MODS = ('SEQUENTIAL', 'MODULO') -DEFAULT_TIDY_CONFIG = "build/config/tests/clang_tidy/config.yaml" -DEFAULT_TIDY_CONFIG_MAP_PATH = "build/yandex_specific/config/clang_tidy/tidy_default_map.json" -PROJECT_TIDY_CONFIG_MAP_PATH = "build/yandex_specific/config/clang_tidy/tidy_project_map.json" - - -tidy_config_map = None - -def ontest_data(unit, *args): - ymake.report_configure_error("TEST_DATA is removed in favour of DATA") - - -def prepare_recipes(data): - data = data.replace('"USE_RECIPE_DELIM"', "\n") - data = data.replace("$TEST_RECIPES_VALUE", "") - return base64.b64encode(data or "") - - -def prepare_env(data): - data = data.replace("$TEST_ENV_VALUE", "") - return serialize_list(shlex.split(data)) - - -def is_yt_spec_contain_pool_info(filename): # XXX switch to yson in ymake + perf test for configure - pool_re = re.compile(r"""['"]*pool['"]*\s*?=""") - cypress_root_re = re.compile(r"""['"]*cypress_root['"]*\s*=""") - with open(filename, 'r') as afile: - yt_spec = afile.read() - return pool_re.search(yt_spec) and cypress_root_re.search(yt_spec) - - -def validate_test(unit, kw): - def get_list(key): - return deserialize_list(kw.get(key, "")) - - valid_kw = copy.deepcopy(kw) - errors = [] - warnings = [] - - if valid_kw.get('SCRIPT-REL-PATH') == 'boost.test': - project_path = valid_kw.get('BUILD-FOLDER-PATH', "") - if not project_path.startswith(("contrib", "mail", "maps", "tools/idl", "metrika", "devtools", "mds", "yandex_io", "smart_devices")): - errors.append("BOOSTTEST is not allowed here") - elif valid_kw.get('SCRIPT-REL-PATH') == 'gtest': - project_path = valid_kw.get('BUILD-FOLDER-PATH', "") - if not project_path.startswith(("contrib", "devtools", "mds")): - errors.append("GTEST_UGLY is not allowed here, use GTEST instead") - - size_timeout = collections.OrderedDict(sorted(consts.TestSize.DefaultTimeouts.items(), key=lambda t: t[1])) - - size = valid_kw.get('SIZE', consts.TestSize.Small).lower() - tags = set(get_list("TAG")) - requirements_orig = get_list("REQUIREMENTS") - in_autocheck = consts.YaTestTags.NotAutocheck not in tags and consts.YaTestTags.Manual not in tags - is_fat = consts.YaTestTags.Fat in tags - is_force_sandbox = consts.YaTestTags.ForceDistbuild not in tags and is_fat - is_ytexec_run = consts.YaTestTags.YtRunner in tags - is_fuzzing = valid_kw.get("FUZZING", False) - is_kvm = 'kvm' in requirements_orig - requirements = {} - secret_requirements = ('sb_vault', 'yav') - list_requirements = secret_requirements - for req in requirements_orig: - if req in ('kvm', ): - requirements[req] = str(True) - continue - - if ":" in req: - req_name, req_value = req.split(":", 1) - if req_name in list_requirements: - requirements[req_name] = ",".join(filter(None, [requirements.get(req_name), req_value])) - else: - if req_name in requirements: - if req_value in ["0"]: - warnings.append("Requirement [[imp]]{}[[rst]] is dropped [[imp]]{}[[rst]] -> [[imp]]{}[[rst]]".format(req_name, requirements[req_name], req_value)) - del requirements[req_name] - elif requirements[req_name] != req_value: - warnings.append("Requirement [[imp]]{}[[rst]] is redefined [[imp]]{}[[rst]] -> [[imp]]{}[[rst]]".format(req_name, requirements[req_name], req_value)) - requirements[req_name] = req_value - else: - requirements[req_name] = req_value - else: - errors.append("Invalid requirement syntax [[imp]]{}[[rst]]: expect <requirement>:<value>".format(req)) - - if not errors: - for req_name, req_value in requirements.items(): - error_msg = reqs.validate_requirement(req_name, req_value, size, is_force_sandbox, in_autocheck, is_fuzzing, is_kvm, is_ytexec_run, requirements) - if error_msg: - errors += [error_msg] - - invalid_requirements_for_distbuild = [requirement for requirement in requirements.keys() if requirement not in ('ram', 'ram_disk', 'cpu', 'network')] - sb_tags = [tag for tag in tags if tag.startswith('sb:')] - - if is_fat: - if size != consts.TestSize.Large: - errors.append("Only LARGE test may have ya:fat tag") - - if in_autocheck and not is_force_sandbox: - if invalid_requirements_for_distbuild: - errors.append("'{}' REQUIREMENTS options can be used only for FAT tests without ya:force_distbuild tag. Remove TAG(ya:force_distbuild) or an option.".format(invalid_requirements_for_distbuild)) - if sb_tags: - errors.append("You can set sandbox tags '{}' only for FAT tests without ya:force_distbuild. Remove TAG(ya:force_sandbox) or sandbox tags.".format(sb_tags)) - if consts.YaTestTags.SandboxCoverage in tags: - errors.append("You can set 'ya:sandbox_coverage' tag only for FAT tests without ya:force_distbuild.") - if is_ytexec_run: - errors.append("Running LARGE tests over YT (ya:yt) on Distbuild (ya:force_distbuild) is forbidden. Consider removing TAG(ya:force_distbuild).") - else: - if is_force_sandbox: - errors.append('ya:force_sandbox can be used with LARGE tests only') - if consts.YaTestTags.NoFuse in tags: - errors.append('ya:nofuse can be used with LARGE tests only') - if consts.YaTestTags.Privileged in tags: - errors.append("ya:privileged can be used with LARGE tests only") - if in_autocheck and size == consts.TestSize.Large: - errors.append("LARGE test must have ya:fat tag") - - if consts.YaTestTags.Privileged in tags and 'container' not in requirements: - errors.append("Only tests with 'container' requirement can have 'ya:privileged' tag") - - if size not in size_timeout: - errors.append("Unknown test size: [[imp]]{}[[rst]], choose from [[imp]]{}[[rst]]".format(size.upper(), ", ".join([sz.upper() for sz in size_timeout.keys()]))) - else: - try: - timeout = int(valid_kw.get('TEST-TIMEOUT', size_timeout[size]) or size_timeout[size]) - script_rel_path = valid_kw.get('SCRIPT-REL-PATH') - if timeout < 0: - raise Exception("Timeout must be > 0") - if size_timeout[size] < timeout and in_autocheck and script_rel_path != 'java.style': - suggested_size = None - for s, t in size_timeout.items(): - if timeout <= t: - suggested_size = s - break - - if suggested_size: - suggested_size = ", suggested size: [[imp]]{}[[rst]]".format(suggested_size.upper()) - else: - suggested_size = "" - errors.append("Max allowed timeout for test size [[imp]]{}[[rst]] is [[imp]]{} sec[[rst]]{}".format(size.upper(), size_timeout[size], suggested_size)) - except Exception as e: - errors.append("Error when parsing test timeout: [[bad]]{}[[rst]]".format(e)) - - requirements_list = [] - for req_name, req_value in requirements.iteritems(): - requirements_list.append(req_name + ":" + req_value) - valid_kw['REQUIREMENTS'] = serialize_list(requirements_list) - - # Mark test with ya:external tag if it requests any secret from external storages - # It's not stable and nonreproducible by definition - for x in secret_requirements: - if x in requirements: - tags.add(consts.YaTestTags.External) - - if valid_kw.get("FUZZ-OPTS"): - for option in get_list("FUZZ-OPTS"): - if not option.startswith("-"): - errors.append("Unrecognized fuzzer option '[[imp]]{}[[rst]]'. All fuzzer options should start with '-'".format(option)) - break - eqpos = option.find("=") - if eqpos == -1 or len(option) == eqpos + 1: - errors.append("Unrecognized fuzzer option '[[imp]]{}[[rst]]'. All fuzzer options should obtain value specified after '='".format(option)) - break - if option[eqpos - 1] == " " or option[eqpos + 1] == " ": - errors.append("Spaces are not allowed: '[[imp]]{}[[rst]]'".format(option)) - break - if option[:eqpos] in ("-runs", "-dict", "-jobs", "-workers", "-artifact_prefix", "-print_final_stats"): - errors.append("You can't use '[[imp]]{}[[rst]]' - it will be automatically calculated or configured during run".format(option)) - break - - if valid_kw.get("YT-SPEC"): - if not is_ytexec_run: - errors.append("You can use YT_SPEC macro only tests marked with ya:yt tag") - else: - for filename in get_list("YT-SPEC"): - filename = unit.resolve('$S/' + filename) - if not os.path.exists(filename): - errors.append("File '{}' specified in the YT_SPEC macro doesn't exist".format(filename)) - continue - if not is_yt_spec_contain_pool_info(filename): - tags.add(consts.YaTestTags.External) - tags.add("ya:yt_research_pool") - - if valid_kw.get("USE_ARCADIA_PYTHON") == "yes" and valid_kw.get("SCRIPT-REL-PATH") == "py.test": - errors.append("PYTEST_SCRIPT is deprecated") - - partition = valid_kw.get('TEST_PARTITION', 'SEQUENTIAL') - if partition not in PARTITION_MODS: - raise ValueError('partition mode should be one of {}, detected: {}'.format(PARTITION_MODS, partition)) - - if valid_kw.get('SPLIT-FACTOR'): - if valid_kw.get('FORK-MODE') == 'none': - errors.append('SPLIT_FACTOR must be use with FORK_TESTS() or FORK_SUBTESTS() macro') - - value = 1 - try: - value = int(valid_kw.get('SPLIT-FACTOR')) - if value <= 0: - raise ValueError("must be > 0") - if value > SPLIT_FACTOR_MAX_VALUE: - raise ValueError("the maximum allowed value is {}".format(SPLIT_FACTOR_MAX_VALUE)) - except ValueError as e: - errors.append('Incorrect SPLIT_FACTOR value: {}'.format(e)) - - if valid_kw.get('FORK-TEST-FILES') and size != consts.TestSize.Large: - nfiles = count_entries(valid_kw.get('TEST-FILES')) - if nfiles * value > SPLIT_FACTOR_TEST_FILES_MAX_VALUE: - errors.append('Too much chunks generated:{} (limit: {}). Remove FORK_TEST_FILES() macro or reduce SPLIT_FACTOR({}).'.format( - nfiles * value, SPLIT_FACTOR_TEST_FILES_MAX_VALUE, value)) - - if tags: - valid_kw['TAG'] = serialize_list(tags) - - unit_path = get_norm_unit_path(unit) - if not is_fat and consts.YaTestTags.Noretries in tags and not is_ytexec_run \ - and not unit_path.startswith("devtools/dummy_arcadia/test/noretries"): - errors.append("Only LARGE tests can have 'ya:noretries' tag") - - if errors: - return None, warnings, errors - - return valid_kw, warnings, errors - - -def get_norm_unit_path(unit, extra=None): - path = _common.strip_roots(unit.path()) - if extra: - return '{}/{}'.format(path, extra) - return path - - -def dump_test(unit, kw): - valid_kw, warnings, errors = validate_test(unit, kw) - for w in warnings: - unit.message(['warn', w]) - for e in errors: - ymake.report_configure_error(e) - if valid_kw is None: - return None - string_handler = StringIO.StringIO() - for k, v in valid_kw.iteritems(): - print >>string_handler, k + ': ' + v - print >>string_handler, BLOCK_SEPARATOR - data = string_handler.getvalue() - string_handler.close() - return data - - -def serialize_list(lst): - lst = filter(None, lst) - return '\"' + ';'.join(lst) + '\"' if lst else '' - - -def deserialize_list(val): - return filter(None, val.replace('"', "").split(";")) - - -def count_entries(x): - # see (de)serialize_list - assert x is None or isinstance(x, str), type(x) - if not x: - return 0 - return x.count(";") + 1 - - -def get_values_list(unit, key): - res = map(str.strip, (unit.get(key) or '').replace('$' + key, '').strip().split()) - return [r for r in res if r and r not in ['""', "''"]] - - -def get_norm_paths(unit, key): - # return paths without trailing (back)slash - return [x.rstrip('\\/').replace('${ARCADIA_ROOT}/', '') for x in get_values_list(unit, key)] - - -def get_unit_list_variable(unit, name): - items = unit.get(name) - if items: - items = items.split(' ') - assert items[0] == "${}".format(name), (items, name) - return items[1:] - return [] - - -def implies(a, b): - return bool((not a) or b) - - -def match_coverage_extractor_requirements(unit): - # we shouldn't add test if - return all([ - # tests are not requested - unit.get("TESTS_REQUESTED") == "yes", - # build doesn't imply clang coverage, which supports segment extraction from the binaries - unit.get("CLANG_COVERAGE") == "yes", - # contrib wasn't requested - implies(get_norm_unit_path(unit).startswith("contrib/"), unit.get("ENABLE_CONTRIB_COVERAGE") == "yes"), - ]) - - -def get_tidy_config_map(unit, map_path): - config_map_path = unit.resolve(os.path.join("$S", map_path)) - config_map = {} - try: - with open(config_map_path, 'r') as afile: - config_map = json.load(afile) - except ValueError: - ymake.report_configure_error("{} is invalid json".format(map_path)) - except Exception as e: - ymake.report_configure_error(str(e)) - return config_map - - -def get_default_tidy_config(unit): - unit_path = get_norm_unit_path(unit) - tidy_default_config_map = get_tidy_config_map(unit, DEFAULT_TIDY_CONFIG_MAP_PATH) - for project_prefix, config_path in tidy_default_config_map.items(): - if unit_path.startswith(project_prefix): - return config_path - return DEFAULT_TIDY_CONFIG - - -ordered_tidy_map = None - - -def get_project_tidy_config(unit): - global ordered_tidy_map - if ordered_tidy_map is None: - ordered_tidy_map = list(reversed(sorted(get_tidy_config_map(unit, PROJECT_TIDY_CONFIG_MAP_PATH).items()))) - unit_path = get_norm_unit_path(unit) - - for project_prefix, config_path in ordered_tidy_map: - if unit_path.startswith(project_prefix): - return config_path - else: - return get_default_tidy_config(unit) - - -def get_coverage_filter_regexp(pattern, cache={}): - return cache[pattern] if pattern in cache else cache.setdefault(pattern, re.compile(pattern)) - - -def onset_cpp_coverage_flags(unit): - coverage_target_regexp = unit.get("COVERAGE_TARGET_REGEXP") - cov_re = get_coverage_filter_regexp(coverage_target_regexp) - unit_path = get_norm_unit_path(unit) - paths_to_exclude = ("contrib",) - included_path = not unit_path.startswith(paths_to_exclude) - - if unit.get("CLANG_COVERAGE") != "no" and (included_path and re.match(cov_re, unit_path) is not None): - cflags = unit.get("CFLAGS") - ldflags = unit.get("LDFLAGS") - changed = False - for flag in consts.COVERAGE_CFLAGS: - if flag not in cflags: - cflags = cflags + ' ' + flag - changed = True - if changed: - unit.set(["CFLAGS", cflags]) - changed = False - for flag in consts.COVERAGE_LDFLAGS: - if flag not in ldflags: - ldflags = ldflags + ' ' + flag - changed = True - if changed: - unit.set(["LDFLAGS", ldflags]) - - - -def onadd_ytest(unit, *args): - keywords = {"DEPENDS": -1, "DATA": -1, "TIMEOUT": 1, "FORK_MODE": 1, "SPLIT_FACTOR": 1, - "FORK_SUBTESTS": 0, "FORK_TESTS": 0} - flat_args, spec_args = _common.sort_by_keywords(keywords, args) - if unit.get('ADD_SRCDIR_TO_TEST_DATA') == "yes": - unit.ondata_files(get_norm_unit_path(unit)) - - test_data = sorted(_common.filter_out_by_keyword(spec_args.get('DATA', []) + get_norm_paths(unit, 'TEST_DATA_VALUE'), 'AUTOUPDATED')) - - if flat_args[1] == "fuzz.test": - unit.ondata("arcadia/fuzzing/{}/corpus.json".format(get_norm_unit_path(unit))) - elif flat_args[1] == "go.test": - data, _ = get_canonical_test_resources(unit) - test_data += data - elif flat_args[1] == "coverage.extractor" and not match_coverage_extractor_requirements(unit): - # XXX - # Current ymake implementation doesn't allow to call macro inside the 'when' body - # that's why we add ADD_YTEST(coverage.extractor) to every PROGRAM entry and check requirements later - return - elif flat_args[1] == "clang_tidy" and unit.get("TIDY_ENABLED") != "yes": - # Graph is not prepared - return - elif unit.get("TIDY") == "yes" and unit.get("TIDY_ENABLED") != "yes": - # clang_tidy disabled for module - return - elif flat_args[1] == "no.test": - return - test_size = ''.join(spec_args.get('SIZE', [])) or unit.get('TEST_SIZE_NAME') or '' - test_tags = serialize_list(_get_test_tags(unit, spec_args)) - test_timeout = ''.join(spec_args.get('TIMEOUT', [])) or unit.get('TEST_TIMEOUT') or '' - test_requirements = spec_args.get('REQUIREMENTS', []) + get_values_list(unit, 'TEST_REQUIREMENTS_VALUE') - - if flat_args[1] != "clang_tidy" and unit.get("TIDY_ENABLED") == "yes": - # graph changed for clang_tidy tests - if flat_args[1] in ("unittest.py", "gunittest", "g_benchmark"): - flat_args[1] = "clang_tidy" - test_size = 'SMALL' - test_tags = '' - test_timeout = "60" - test_requirements = [] - unit.set(["TEST_YT_SPEC_VALUE", ""]) - else: - return - - if flat_args[1] == "clang_tidy" and unit.get("TIDY_ENABLED") == "yes": - if unit.get("TIDY_CONFIG"): - default_config_path = unit.get("TIDY_CONFIG") - project_config_path = unit.get("TIDY_CONFIG") - else: - default_config_path = get_default_tidy_config(unit) - project_config_path = get_project_tidy_config(unit) - - unit.set(["DEFAULT_TIDY_CONFIG", default_config_path]) - unit.set(["PROJECT_TIDY_CONFIG", project_config_path]) - - fork_mode = [] - if 'FORK_SUBTESTS' in spec_args: - fork_mode.append('subtests') - if 'FORK_TESTS' in spec_args: - fork_mode.append('tests') - fork_mode = fork_mode or spec_args.get('FORK_MODE', []) or unit.get('TEST_FORK_MODE').split() - fork_mode = ' '.join(fork_mode) if fork_mode else '' - - unit_path = get_norm_unit_path(unit) - - test_record = { - 'TEST-NAME': flat_args[0], - 'SCRIPT-REL-PATH': flat_args[1], - 'TESTED-PROJECT-NAME': unit.name(), - 'TESTED-PROJECT-FILENAME': unit.filename(), - 'SOURCE-FOLDER-PATH': unit_path, - # TODO get rid of BUILD-FOLDER-PATH - 'BUILD-FOLDER-PATH': unit_path, - 'BINARY-PATH': "{}/{}".format(unit_path, unit.filename()), - 'GLOBAL-LIBRARY-PATH': unit.global_filename(), - 'CUSTOM-DEPENDENCIES': ' '.join(spec_args.get('DEPENDS', []) + get_values_list(unit, 'TEST_DEPENDS_VALUE')), - 'TEST-RECIPES': prepare_recipes(unit.get("TEST_RECIPES_VALUE")), - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - # 'TEST-PRESERVE-ENV': 'da', - 'TEST-DATA': serialize_list(test_data), - 'TEST-TIMEOUT': test_timeout, - 'FORK-MODE': fork_mode, - 'SPLIT-FACTOR': ''.join(spec_args.get('SPLIT_FACTOR', [])) or unit.get('TEST_SPLIT_FACTOR') or '', - 'SIZE': test_size, - 'TAG': test_tags, - 'REQUIREMENTS': serialize_list(test_requirements), - 'TEST-CWD': unit.get('TEST_CWD_VALUE') or '', - 'FUZZ-DICTS': serialize_list(spec_args.get('FUZZ_DICTS', []) + get_unit_list_variable(unit, 'FUZZ_DICTS_VALUE')), - 'FUZZ-OPTS': serialize_list(spec_args.get('FUZZ_OPTS', []) + get_unit_list_variable(unit, 'FUZZ_OPTS_VALUE')), - 'YT-SPEC': serialize_list(spec_args.get('YT_SPEC', []) + get_unit_list_variable(unit, 'TEST_YT_SPEC_VALUE')), - 'BLOB': unit.get('TEST_BLOB_DATA') or '', - 'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '', - 'TEST_IOS_DEVICE_TYPE': unit.get('TEST_IOS_DEVICE_TYPE_VALUE') or '', - 'TEST_IOS_RUNTIME_TYPE': unit.get('TEST_IOS_RUNTIME_TYPE_VALUE') or '', - 'ANDROID_APK_TEST_ACTIVITY': unit.get('ANDROID_APK_TEST_ACTIVITY_VALUE') or '', - 'TEST_PARTITION': unit.get("TEST_PARTITION") or 'SEQUENTIAL', - 'GO_BENCH_TIMEOUT': unit.get('GO_BENCH_TIMEOUT') or '', - } - - if flat_args[1] == "go.bench": - if "ya:run_go_benchmark" not in test_record["TAG"]: - return - else: - test_record["TEST-NAME"] += "_bench" - - if flat_args[1] == 'fuzz.test' and unit.get('FUZZING') == 'yes': - test_record['FUZZING'] = '1' - # use all cores if fuzzing requested - test_record['REQUIREMENTS'] = serialize_list(filter(None, deserialize_list(test_record['REQUIREMENTS']) + ["cpu:all", "ram:all"])) - - data = dump_test(unit, test_record) - if data: - unit.set_property(["DART_DATA", data]) - - -def java_srcdirs_to_data(unit, var): - extra_data = [] - for srcdir in (unit.get(var) or '').replace('$' + var, '').split(): - if srcdir == '.': - srcdir = unit.get('MODDIR') - if srcdir.startswith('${ARCADIA_ROOT}/') or srcdir.startswith('$ARCADIA_ROOT/'): - srcdir = srcdir.replace('${ARCADIA_ROOT}/', '$S/') - srcdir = srcdir.replace('$ARCADIA_ROOT/', '$S/') - if srcdir.startswith('${CURDIR}') or srcdir.startswith('$CURDIR'): - srcdir = srcdir.replace('${CURDIR}', os.path.join('$S', unit.get('MODDIR'))) - srcdir = srcdir.replace('$CURDIR', os.path.join('$S', unit.get('MODDIR'))) - srcdir = unit.resolve_arc_path(srcdir) - if not srcdir.startswith('$'): - srcdir = os.path.join('$S', unit.get('MODDIR'), srcdir) - if srcdir.startswith('$S'): - extra_data.append(srcdir.replace('$S', 'arcadia')) - return serialize_list(extra_data) - - -def onadd_check(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - flat_args, spec_args = _common.sort_by_keywords({"DEPENDS": -1, "TIMEOUT": 1, "DATA": -1, "TAG": -1, - "REQUIREMENTS": -1, "FORK_MODE": 1, "SPLIT_FACTOR": 1, - "FORK_SUBTESTS": 0, "FORK_TESTS": 0, "SIZE": 1}, args) - check_type = flat_args[0] - - if check_type in ("check.data", "check.resource") and unit.get('VALIDATE_DATA') == "no": - return - - test_dir = get_norm_unit_path(unit) - - test_timeout = '' - fork_mode = '' - extra_test_data = '' - extra_test_dart_data = {} - ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes' - use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') - uid_ext = '' - script_rel_path = check_type - test_files = flat_args[1:] - - supported_no_lint_values = ('none', 'none_internal', 'ktlint') - no_lint_value = unit.get('_NO_LINT_VALUE') - if no_lint_value and no_lint_value not in supported_no_lint_values: - ymake.report_configure_error('Unsupported value for NO_LINT macro: {}'.format(no_lint_value)) - - if check_type in ["check.data", "check.resource"]: - uid_ext = unit.get("SBR_UID_EXT").split(" ", 1)[-1] # strip variable name - - if check_type in ["flake8.py2", "flake8.py3", "black"]: - fork_mode = unit.get('TEST_FORK_MODE') or '' - elif check_type == "JAVA_STYLE": - if ymake_java_test and not unit.get('ALL_SRCDIRS') or '': - return - if len(flat_args) < 2: - raise Exception("Not enough arguments for JAVA_STYLE check") - check_level = flat_args[1] - allowed_levels = { - 'base': '/yandex_checks.xml', - 'strict': '/yandex_checks_strict.xml', - 'extended': '/yandex_checks_extended.xml', - 'library': '/yandex_checks_library.xml', - } - if check_level not in allowed_levels: - raise Exception("'{}' is not allowed in LINT(), use one of {}".format(check_level, allowed_levels.keys())) - test_files[0] = allowed_levels[check_level] # replace check_level with path to config file - script_rel_path = "java.style" - test_timeout = '240' - fork_mode = unit.get('TEST_FORK_MODE') or '' - if ymake_java_test: - extra_test_data = java_srcdirs_to_data(unit, 'ALL_SRCDIRS') - - # jstyle should use the latest jdk - unit.onpeerdir([unit.get('JDK_LATEST_PEERDIR')]) - extra_test_dart_data['JDK_LATEST_VERSION'] = unit.get('JDK_LATEST_VERSION') - # TODO remove when ya-bin will be released (https://st.yandex-team.ru/DEVTOOLS-9611) - extra_test_dart_data['JDK_RESOURCE'] = 'JDK' + (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION') or '_DEFAULT') - elif check_type == "gofmt": - if test_files: - test_dir = os.path.dirname(test_files[0]).lstrip("$S/") - elif check_type == "check.data": - data_re = re.compile(r"sbr:/?/?(\d+)=?.*") - data = flat_args[1:] - resources = [] - for f in data: - matched = re.match(data_re, f) - if matched: - resources.append(matched.group(1)) - if resources: - test_files = resources - else: - return - - serialized_test_files = serialize_list(test_files) - - test_record = { - 'TEST-NAME': check_type.lower(), - 'TEST-TIMEOUT': test_timeout, - 'SCRIPT-REL-PATH': script_rel_path, - 'TESTED-PROJECT-NAME': os.path.basename(test_dir), - 'SOURCE-FOLDER-PATH': test_dir, - 'CUSTOM-DEPENDENCIES': " ".join(spec_args.get('DEPENDS', [])), - 'TEST-DATA': extra_test_data, - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - 'SBR-UID-EXT': uid_ext, - 'SPLIT-FACTOR': '', - 'TEST_PARTITION': 'SEQUENTIAL', - 'FORK-MODE': fork_mode, - 'FORK-TEST-FILES': '', - 'SIZE': 'SMALL', - 'TAG': '', - 'REQUIREMENTS': " ".join(spec_args.get('REQUIREMENTS', [])), - 'USE_ARCADIA_PYTHON': use_arcadia_python or '', - 'OLD_PYTEST': 'no', - 'PYTHON-PATHS': '', - # TODO remove FILES, see DEVTOOLS-7052 - 'FILES': serialized_test_files, - 'TEST-FILES': serialized_test_files, - 'NO_JBUILD': 'yes' if ymake_java_test else 'no', - } - test_record.update(extra_test_dart_data) - - data = dump_test(unit, test_record) - if data: - unit.set_property(["DART_DATA", data]) - - -def on_register_no_check_imports(unit): - s = unit.get('NO_CHECK_IMPORTS_FOR_VALUE') - if s not in ('', 'None'): - unit.onresource(['-', 'py/no_check_imports/{}="{}"'.format(_common.pathid(s), s)]) - - -def onadd_check_py_imports(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - if unit.get('NO_CHECK_IMPORTS_FOR_VALUE').strip() == "": - return - unit.onpeerdir(['library/python/testing/import_test']) - check_type = "py.imports" - test_dir = get_norm_unit_path(unit) - - use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') - test_files = serialize_list([get_norm_unit_path(unit, unit.filename())]) - test_record = { - 'TEST-NAME': "pyimports", - 'TEST-TIMEOUT': '', - 'SCRIPT-REL-PATH': check_type, - 'TESTED-PROJECT-NAME': os.path.basename(test_dir), - 'SOURCE-FOLDER-PATH': test_dir, - 'CUSTOM-DEPENDENCIES': '', - 'TEST-DATA': '', - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - 'SPLIT-FACTOR': '', - 'TEST_PARTITION': 'SEQUENTIAL', - 'FORK-MODE': '', - 'FORK-TEST-FILES': '', - 'SIZE': 'SMALL', - 'TAG': '', - 'USE_ARCADIA_PYTHON': use_arcadia_python or '', - 'OLD_PYTEST': 'no', - 'PYTHON-PATHS': '', - # TODO remove FILES, see DEVTOOLS-7052 - 'FILES': test_files, - 'TEST-FILES': test_files, - } - if unit.get('NO_CHECK_IMPORTS_FOR_VALUE') != "None": - test_record["NO-CHECK"] = serialize_list(get_values_list(unit, 'NO_CHECK_IMPORTS_FOR_VALUE') or ["*"]) - else: - test_record["NO-CHECK"] = '' - data = dump_test(unit, test_record) - if data: - unit.set_property(["DART_DATA", data]) - - -def onadd_pytest_script(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - unit.set(["PYTEST_BIN", "no"]) - custom_deps = get_values_list(unit, 'TEST_DEPENDS_VALUE') - timeout = filter(None, [unit.get(["TEST_TIMEOUT"])]) - if unit.get('ADD_SRCDIR_TO_TEST_DATA') == "yes": - unit.ondata_files(get_norm_unit_path(unit)) - - if timeout: - timeout = timeout[0] - else: - timeout = '0' - test_type = args[0] - fork_mode = unit.get('TEST_FORK_MODE').split() or '' - split_factor = unit.get('TEST_SPLIT_FACTOR') or '' - test_size = unit.get('TEST_SIZE_NAME') or '' - - test_files = get_values_list(unit, 'TEST_SRCS_VALUE') - tags = _get_test_tags(unit) - requirements = get_values_list(unit, 'TEST_REQUIREMENTS_VALUE') - test_data = get_norm_paths(unit, 'TEST_DATA_VALUE') - data, data_files = get_canonical_test_resources(unit) - test_data += data - python_paths = get_values_list(unit, 'TEST_PYTHON_PATH_VALUE') - binary_path = os.path.join(get_norm_unit_path(unit), unit.filename()) - test_cwd = unit.get('TEST_CWD_VALUE') or '' - _dump_test(unit, test_type, test_files, timeout, get_norm_unit_path(unit), custom_deps, test_data, python_paths, split_factor, fork_mode, test_size, tags, requirements, binary_path, test_cwd=test_cwd, data_files=data_files) - - -def onadd_pytest_bin(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - flat, kws = _common.sort_by_keywords({'RUNNER_BIN': 1}, args) - if flat: - ymake.report_configure_error( - 'Unknown arguments found while processing add_pytest_bin macro: {!r}' - .format(flat) - ) - - runner_bin = kws.get('RUNNER_BIN', [None])[0] - test_type = 'py3test.bin' if (unit.get("PYTHON3") == 'yes') else "pytest.bin" - - add_test_to_dart(unit, test_type, runner_bin=runner_bin) - - -def add_test_to_dart(unit, test_type, binary_path=None, runner_bin=None): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - if unit.get('ADD_SRCDIR_TO_TEST_DATA') == "yes": - unit.ondata_files(get_norm_unit_path(unit)) - custom_deps = get_values_list(unit, 'TEST_DEPENDS_VALUE') - timeout = filter(None, [unit.get(["TEST_TIMEOUT"])]) - if timeout: - timeout = timeout[0] - else: - timeout = '0' - fork_mode = unit.get('TEST_FORK_MODE').split() or '' - split_factor = unit.get('TEST_SPLIT_FACTOR') or '' - test_size = unit.get('TEST_SIZE_NAME') or '' - test_cwd = unit.get('TEST_CWD_VALUE') or '' - - unit_path = unit.path() - test_files = get_values_list(unit, 'TEST_SRCS_VALUE') - tags = _get_test_tags(unit) - requirements = get_values_list(unit, 'TEST_REQUIREMENTS_VALUE') - test_data = get_norm_paths(unit, 'TEST_DATA_VALUE') - data, data_files = get_canonical_test_resources(unit) - test_data += data - python_paths = get_values_list(unit, 'TEST_PYTHON_PATH_VALUE') - yt_spec = get_values_list(unit, 'TEST_YT_SPEC_VALUE') - if not binary_path: - binary_path = os.path.join(unit_path, unit.filename()) - _dump_test(unit, test_type, test_files, timeout, get_norm_unit_path(unit), custom_deps, test_data, python_paths, split_factor, fork_mode, test_size, tags, requirements, binary_path, test_cwd=test_cwd, runner_bin=runner_bin, yt_spec=yt_spec, data_files=data_files) - - -def extract_java_system_properties(unit, args): - if len(args) % 2: - return [], 'Wrong use of SYSTEM_PROPERTIES in {}: odd number of arguments'.format(unit.path()) - - props = [] - for x, y in zip(args[::2], args[1::2]): - if x == 'FILE': - if y.startswith('${BINDIR}') or y.startswith('${ARCADIA_BUILD_ROOT}') or y.startswith('/'): - return [], 'Wrong use of SYSTEM_PROPERTIES in {}: absolute/build file path {}'.format(unit.path(), y) - - y = _common.rootrel_arc_src(y, unit) - if not os.path.exists(unit.resolve('$S/' + y)): - return [], 'Wrong use of SYSTEM_PROPERTIES in {}: can\'t resolve {}'.format(unit.path(), y) - - y = '${ARCADIA_ROOT}/' + y - props.append({'type': 'file', 'path': y}) - else: - props.append({'type': 'inline', 'key': x, 'value': y}) - - return props, None - - -def onjava_test(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - - assert unit.get('MODULE_TYPE') is not None - - if unit.get('MODULE_TYPE') == 'JTEST_FOR': - if not unit.get('UNITTEST_DIR'): - ymake.report_configure_error('skip JTEST_FOR in {}: no args provided'.format(unit.path())) - return - - java_cp_arg_type = unit.get('JAVA_CLASSPATH_CMD_TYPE_VALUE') or 'MANIFEST' - if java_cp_arg_type not in ('MANIFEST', 'COMMAND_FILE', 'LIST'): - ymake.report_configure_error('{}: TEST_JAVA_CLASSPATH_CMD_TYPE({}) are invalid. Choose argument from MANIFEST, COMMAND_FILE or LIST)'.format(unit.path(), java_cp_arg_type)) - return - - unit_path = unit.path() - path = _common.strip_roots(unit_path) - if unit.get('ADD_SRCDIR_TO_TEST_DATA') == "yes": - unit.ondata_files(get_norm_unit_path(unit)) - - test_data = get_norm_paths(unit, 'TEST_DATA_VALUE') - test_data.append('arcadia/build/scripts/run_junit.py') - test_data.append('arcadia/build/scripts/unpacking_jtest_runner.py') - - data, data_files = get_canonical_test_resources(unit) - test_data += data - - props, error_mgs = extract_java_system_properties(unit, get_values_list(unit, 'SYSTEM_PROPERTIES_VALUE')) - if error_mgs: - ymake.report_configure_error(error_mgs) - return - for prop in props: - if prop['type'] == 'file': - test_data.append(prop['path'].replace('${ARCADIA_ROOT}', 'arcadia')) - - props = base64.b64encode(json.dumps(props, encoding='utf-8')) - - test_cwd = unit.get('TEST_CWD_VALUE') or '' # TODO: validate test_cwd value - - if unit.get('MODULE_TYPE') == 'JUNIT5': - script_rel_path = 'junit5.test' - else: - script_rel_path = 'junit.test' - - ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes' - test_record = { - 'SOURCE-FOLDER-PATH': path, - 'TEST-NAME': '-'.join([os.path.basename(os.path.dirname(path)), os.path.basename(path)]), - 'SCRIPT-REL-PATH': script_rel_path, - 'TEST-TIMEOUT': unit.get('TEST_TIMEOUT') or '', - 'TESTED-PROJECT-NAME': path, - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - # 'TEST-PRESERVE-ENV': 'da', - 'TEST-DATA': serialize_list(sorted(_common.filter_out_by_keyword(test_data, 'AUTOUPDATED'))), - 'FORK-MODE': unit.get('TEST_FORK_MODE') or '', - 'SPLIT-FACTOR': unit.get('TEST_SPLIT_FACTOR') or '', - 'CUSTOM-DEPENDENCIES': ' '.join(get_values_list(unit, 'TEST_DEPENDS_VALUE')), - 'TAG': serialize_list(_get_test_tags(unit)), - 'SIZE': unit.get('TEST_SIZE_NAME') or '', - 'REQUIREMENTS': serialize_list(get_values_list(unit, 'TEST_REQUIREMENTS_VALUE')), - 'TEST-RECIPES': prepare_recipes(unit.get("TEST_RECIPES_VALUE")), - - # JTEST/JTEST_FOR only - 'MODULE_TYPE': unit.get('MODULE_TYPE'), - 'UNITTEST_DIR': unit.get('UNITTEST_DIR') or '', - 'JVM_ARGS': serialize_list(get_values_list(unit, 'JVM_ARGS_VALUE')), - 'SYSTEM_PROPERTIES': props, - 'TEST-CWD': test_cwd, - 'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '', - 'JAVA_CLASSPATH_CMD_TYPE': java_cp_arg_type, - 'NO_JBUILD': 'yes' if ymake_java_test else 'no', - 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION') or '_DEFAULT'), - 'JDK_FOR_TESTS': 'JDK' + (unit.get('JDK_VERSION') or unit.get('JDK_REAL_VERSION') or '_DEFAULT') + '_FOR_TESTS', - 'YT-SPEC': serialize_list(get_unit_list_variable(unit, 'TEST_YT_SPEC_VALUE')), - } - test_classpath_origins = unit.get('TEST_CLASSPATH_VALUE') - if test_classpath_origins: - test_record['TEST_CLASSPATH_ORIGINS'] = test_classpath_origins - test_record['TEST_CLASSPATH'] = '${TEST_CLASSPATH_MANAGED}' - elif ymake_java_test: - test_record['TEST_CLASSPATH'] = '${DART_CLASSPATH}' - test_record['TEST_CLASSPATH_DEPS'] = '${DART_CLASSPATH_DEPS}' - if unit.get('UNITTEST_DIR'): - test_record['TEST_JAR'] = '${UNITTEST_MOD}' - else: - test_record['TEST_JAR'] = '{}/{}.jar'.format(unit.get('MODDIR'), unit.get('REALPRJNAME')) - - data = dump_test(unit, test_record) - if data: - unit.set_property(['DART_DATA', data]) - - -def onjava_test_deps(unit, *args): - if unit.get("TIDY") == "yes": - # graph changed for clang_tidy tests - return - - assert unit.get('MODULE_TYPE') is not None - assert len(args) == 1 - mode = args[0] - - path = get_norm_unit_path(unit) - ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes' - - test_record = { - 'SOURCE-FOLDER-PATH': path, - 'TEST-NAME': '-'.join([os.path.basename(os.path.dirname(path)), os.path.basename(path), 'dependencies']).strip('-'), - 'SCRIPT-REL-PATH': 'java.dependency.test', - 'TEST-TIMEOUT': '', - 'TESTED-PROJECT-NAME': path, - 'TEST-DATA': '', - 'TEST_PARTITION': 'SEQUENTIAL', - 'FORK-MODE': '', - 'SPLIT-FACTOR': '', - 'CUSTOM-DEPENDENCIES': ' '.join(get_values_list(unit, 'TEST_DEPENDS_VALUE')), - 'TAG': '', - 'SIZE': 'SMALL', - 'IGNORE_CLASSPATH_CLASH': ' '.join(get_values_list(unit, 'JAVA_IGNORE_CLASSPATH_CLASH_VALUE')), - 'NO_JBUILD': 'yes' if ymake_java_test else 'no', - - # JTEST/JTEST_FOR only - 'MODULE_TYPE': unit.get('MODULE_TYPE'), - 'UNITTEST_DIR': '', - 'SYSTEM_PROPERTIES': '', - 'TEST-CWD': '', - } - if mode == 'strict': - test_record['STRICT_CLASSPATH_CLASH'] = 'yes' - - if ymake_java_test: - test_record['CLASSPATH'] = '$B/{}/{}.jar ${{DART_CLASSPATH}}'.format(unit.get('MODDIR'), unit.get('REALPRJNAME')) - - data = dump_test(unit, test_record) - unit.set_property(['DART_DATA', data]) - - -def _get_test_tags(unit, spec_args=None): - if spec_args is None: - spec_args = {} - tags = spec_args.get('TAG', []) + get_values_list(unit, 'TEST_TAGS_VALUE') - tags = set(tags) - # DEVTOOLS-7571 - if unit.get('SKIP_TEST_VALUE') and consts.YaTestTags.Fat in tags: - tags.add(consts.YaTestTags.NotAutocheck) - - return tags - - -def _dump_test( - unit, - test_type, - test_files, - timeout, - test_dir, - custom_deps, - test_data, - python_paths, - split_factor, - fork_mode, - test_size, - tags, - requirements, - binary_path='', - old_pytest=False, - test_cwd=None, - runner_bin=None, - yt_spec=None, - data_files=None -): - - if test_type == "PY_TEST": - script_rel_path = "py.test" - else: - script_rel_path = test_type - - unit_path = unit.path() - fork_test_files = unit.get('FORK_TEST_FILES_MODE') - fork_mode = ' '.join(fork_mode) if fork_mode else '' - use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') - if test_cwd: - test_cwd = test_cwd.replace("$TEST_CWD_VALUE", "").replace('"MACRO_CALLS_DELIM"', "").strip() - test_name = os.path.basename(binary_path) - test_record = { - 'TEST-NAME': os.path.splitext(test_name)[0], - 'TEST-TIMEOUT': timeout, - 'SCRIPT-REL-PATH': script_rel_path, - 'TESTED-PROJECT-NAME': test_name, - 'SOURCE-FOLDER-PATH': test_dir, - 'CUSTOM-DEPENDENCIES': " ".join(custom_deps), - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - # 'TEST-PRESERVE-ENV': 'da', - 'TEST-DATA': serialize_list(sorted(_common.filter_out_by_keyword(test_data, 'AUTOUPDATED'))), - 'TEST-RECIPES': prepare_recipes(unit.get("TEST_RECIPES_VALUE")), - 'SPLIT-FACTOR': split_factor, - 'TEST_PARTITION': unit.get('TEST_PARTITION') or 'SEQUENTIAL', - 'FORK-MODE': fork_mode, - 'FORK-TEST-FILES': fork_test_files, - 'TEST-FILES': serialize_list(test_files), - 'SIZE': test_size, - 'TAG': serialize_list(tags), - 'REQUIREMENTS': serialize_list(requirements), - 'USE_ARCADIA_PYTHON': use_arcadia_python or '', - 'OLD_PYTEST': 'yes' if old_pytest else 'no', - 'PYTHON-PATHS': serialize_list(python_paths), - 'TEST-CWD': test_cwd or '', - 'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '', - 'BUILD-FOLDER-PATH': _common.strip_roots(unit_path), - 'BLOB': unit.get('TEST_BLOB_DATA') or '', - 'CANONIZE_SUB_PATH': unit.get('CANONIZE_SUB_PATH') or '', - } - if binary_path: - test_record['BINARY-PATH'] = _common.strip_roots(binary_path) - if runner_bin: - test_record['TEST-RUNNER-BIN'] = runner_bin - if yt_spec: - test_record['YT-SPEC'] = serialize_list(yt_spec) - data = dump_test(unit, test_record) - if data: - unit.set_property(["DART_DATA", data]) - - -def onsetup_pytest_bin(unit, *args): - use_arcadia_python = unit.get('USE_ARCADIA_PYTHON') == "yes" - if use_arcadia_python: - unit.onresource(['-', 'PY_MAIN={}'.format("library.python.pytest.main:main")]) # XXX - unit.onadd_pytest_bin(list(args)) - else: - unit.onno_platform() - unit.onadd_pytest_script(["PY_TEST"]) - - -def onrun(unit, *args): - exectest_cmd = unit.get(["EXECTEST_COMMAND_VALUE"]) or '' - exectest_cmd += "\n" + subprocess.list2cmdline(args) - unit.set(["EXECTEST_COMMAND_VALUE", exectest_cmd]) - - -def onsetup_exectest(unit, *args): - command = unit.get(["EXECTEST_COMMAND_VALUE"]) - if command is None: - ymake.report_configure_error("EXECTEST must have at least one RUN macro") - return - command = command.replace("$EXECTEST_COMMAND_VALUE", "") - if "PYTHON_BIN" in command: - unit.ondepends('contrib/tools/python') - unit.set(["TEST_BLOB_DATA", base64.b64encode(command)]) - add_test_to_dart(unit, "exectest", binary_path=os.path.join(unit.path(), unit.filename()).replace(".pkg", "")) - - -def onsetup_run_python(unit): - if unit.get("USE_ARCADIA_PYTHON") == "yes": - unit.ondepends('contrib/tools/python') - - -def get_canonical_test_resources(unit): - unit_path = unit.path() - canon_data_dir = os.path.join(unit.resolve(unit_path), CANON_DATA_DIR_NAME, unit.get('CANONIZE_SUB_PATH') or '') - - try: - _, dirs, files = next(os.walk(canon_data_dir)) - except StopIteration: - # path doesn't exist - return [], [] - - if CANON_RESULT_FILE_NAME in files: - return _get_canonical_data_resources_v2(os.path.join(canon_data_dir, CANON_RESULT_FILE_NAME), unit_path) - return [], [] - - -def _load_canonical_file(filename, unit_path): - try: - with open(filename) as results_file: - return json.load(results_file) - except Exception as e: - print>>sys.stderr, "malformed canonical data in {}: {} ({})".format(unit_path, e, filename) - return {} - - -def _get_resource_from_uri(uri): - m = CANON_MDS_RESOURCE_REGEX.match(uri) - if m: - res_id = m.group(1) - return "{}:{}".format(MDS_SCHEME, res_id) - - m = CANON_SBR_RESOURCE_REGEX.match(uri) - if m: - # There might be conflict between resources, because all resources in sandbox have 'resource.tar.gz' name - # That's why we use notation with '=' to specify specific path for resource - uri = m.group(1) - res_id = m.group(2) - return "{}={}".format(uri, '/'.join([CANON_OUTPUT_STORAGE, res_id])) - - -def _get_external_resources_from_canon_data(data): - # Method should work with both canonization versions: - # result.json: {'uri':X 'checksum':Y} - # result.json: {'testname': {'uri':X 'checksum':Y}} - # result.json: {'testname': [{'uri':X 'checksum':Y}]} - # Also there is a bug - if user returns {'uri': 1} from test - machinery will fail - # That's why we check 'uri' and 'checksum' fields presence - # (it's still a bug - user can return {'uri':X, 'checksum': Y}, we need to unify canonization format) - res = set() - - if isinstance(data, dict): - if 'uri' in data and 'checksum' in data: - resource = _get_resource_from_uri(data['uri']) - if resource: - res.add(resource) - else: - for k, v in data.iteritems(): - res.update(_get_external_resources_from_canon_data(v)) - elif isinstance(data, list): - for e in data: - res.update(_get_external_resources_from_canon_data(e)) - - return res - - -def _get_canonical_data_resources_v2(filename, unit_path): - return (_get_external_resources_from_canon_data(_load_canonical_file(filename, unit_path)), [filename]) - - -def on_add_linter_check(unit, *args): - if unit.get("TIDY") == "yes": - return - source_root_from_prefix = '${ARCADIA_ROOT}/' - source_root_to_prefix = '$S/' - unlimited = -1 - - if unit.get('_NO_LINT_VALUE') in ("none", "none_internal"): - return - - keywords = { - "DEPENDS": unlimited, - "FILES": unlimited, - "CONFIGS": unlimited, - "GLOBAL_RESOURCES": unlimited, - "FILE_PROCESSING_TIME": 1, - "EXTRA_PARAMS": unlimited - } - flat_args, spec_args = _common.sort_by_keywords(keywords, args) - if len(flat_args) != 2: - unit.message(['ERROR', '_ADD_LINTER_CHECK params: expected 2 free parameters']) - return - - configs = [] - for cfg in spec_args.get('CONFIGS', []): - filename = unit.resolve(source_root_to_prefix + cfg) - if not os.path.exists(filename): - unit.message(['ERROR', 'Configuration file {} is not found'.format(filename)]) - return - configs.append(cfg) - deps = [] - - lint_name, linter = flat_args - deps.append(os.path.dirname(linter)) - - test_files = [] - for path in spec_args.get('FILES', []): - if path.startswith(source_root_from_prefix): - test_files.append(path.replace(source_root_from_prefix, source_root_to_prefix, 1)) - elif path.startswith(source_root_to_prefix): - test_files.append(path) - if not test_files: - unit.message(['WARN', 'No files to lint for {}'.format(lint_name)]) - return - for arg in spec_args.get('EXTRA_PARAMS', []): - if '=' not in arg: - unit.message(['WARN', 'Wrong EXTRA_PARAMS value: "{}". Values must have format "name=value".'.format(arg)]) - return - - deps += spec_args.get('DEPENDS', []) - - for dep in deps: - unit.ondepends(dep) - - for resource in spec_args.get('GLOBAL_RESOURCES', []): - unit.onpeerdir(resource) - - test_record = { - 'TEST-NAME': lint_name, - 'SCRIPT-REL-PATH': 'custom_lint', - 'TESTED-PROJECT-NAME': unit.name(), - 'SOURCE-FOLDER-PATH': get_norm_unit_path(unit), - 'CUSTOM-DEPENDENCIES': " ".join(deps), - 'TEST-DATA': '', - 'TEST-ENV': prepare_env(unit.get("TEST_ENV_VALUE")), - 'TEST-TIMEOUT': '', - 'SPLIT-FACTOR': '', - 'TEST_PARTITION': 'SEQUENTIAL', - 'FORK-MODE': '', - 'FORK-TEST-FILES': '', - 'SIZE': 'SMALL', - 'TAG': '', - 'USE_ARCADIA_PYTHON': unit.get('USE_ARCADIA_PYTHON') or '', - 'OLD_PYTEST': 'no', - 'PYTHON-PATHS': '', - # TODO remove FILES, see DEVTOOLS-7052 - 'FILES': serialize_list(test_files), - 'TEST-FILES': serialize_list(test_files), - # Linter specific parameters - # TODO Add configs to DATA. See YMAKE-427 - 'LINT-CONFIGS': serialize_list(configs), - 'LINT-NAME': lint_name, - 'LINT-FILE-PROCESSING-TIME': spec_args.get('FILE_PROCESSING_TIME', [''])[0], - 'LINT-EXTRA-PARAMS': serialize_list(spec_args.get('EXTRA_PARAMS', [])), - 'LINTER': linter, - } - data = dump_test(unit, test_record) - if data: - unit.set_property(["DART_DATA", data]) diff --git a/build/plugins/ytest2.py b/build/plugins/ytest2.py deleted file mode 100644 index 0a34263c35..0000000000 --- a/build/plugins/ytest2.py +++ /dev/null @@ -1,54 +0,0 @@ -import os -import _common - - -def dir_stmts(unit, dir): - unit.onpeerdir(dir) - unit.onsrcdir(os.sep.join([dir, 'tests'])) - - -def pytest_base(unit, args): - related_prj_dir = args[0] - related_prj_name = args[1] - dir_stmts(unit, related_prj_dir) - ytest_base(unit, related_prj_dir, related_prj_name, args[2:]) - unit.set(['ADDITIONAL_PATH', '--test-related-path ${ARCADIA_ROOT}/test']) - - -def ytest_base(unit, related_prj_dir, related_prj_name, args): - keywords = {"DEPENDS": -1, "DATA": -1} - flat_args, spec_args = _common.sort_by_keywords(keywords, args) - unit.set(['TEST-NAME', os.path.basename(flat_args[0])]) - unit.set(['SCRIPT-REL-PATH', flat_args[1]]) - unit.set(['SOURCE-FOLDER-PATH', related_prj_dir]) - unit.set(['BUILD-FOLDER-PATH', os.path.join('$B', related_prj_dir)]) - unit.set(['TESTED-BINARY-PATH', flat_args[0]]) - - custom_deps = ' '.join(spec_args["DEPENDS"]) if "DEPENDS" in spec_args else '' - unit.set(['CUSTOM-DEPENDENCIES', custom_deps]) - data_lst = spec_args.get('DATA', []) + (unit.get(['__test_data']) or '').split(' ') - data_lst.sort() - data = '\"' + ';'.join(data_lst) + '\"' if data_lst else '' - unit.set(['TEST-DATA', data]) - - related_dirs_list = ['{ARCADIA_ROOT}/devtools/${YA_ROOT}', '${ARCADIA_ROOT}/devtools/${YA_ROOT}', '$RELATED_TARGET_SRCDIR'] - related_dirs_value = [] - for rel in related_dirs_list: - related_dirs_value.extend(['--test-related-path', rel]) - unit.set(['RELATED_DIRS', ' '.join(related_dirs_value)]) - unit.set(['TEST_KV', '${{kv;hide:"test_related_dirs {}"}}'.format(' '.join(related_dirs_list))]) - - -def on_unittest(unit, *args): - related_prj_name = args[0] - related_prj_dir = args[1][3:] - unit.set(['TEST_TYPE', '${kv;hide:"test-type unittest"}']) - ytest_base(unit, related_prj_dir, related_prj_name, args) - - -def on_ytest(unit, *args): - pytest_base(unit, args) - - -def on_py_test(unit, *args): - pytest_base(unit, args) diff --git a/build/rules/alice.policy b/build/rules/alice.policy deleted file mode 100644 index 2fd5d9b728..0000000000 --- a/build/rules/alice.policy +++ /dev/null @@ -1,55 +0,0 @@ -ALLOW alice/megamind -> alice/megamind/library -ALLOW junk -> alice/megamind/library -ALLOW alice/apphost/graph_generator -> alice/megamind/library/config/protos -ALLOW alice/apphost/graph_generator -> alice/megamind/library/config/scenario_protos -ALLOW sandbox/projects/megamind -> alice/megamind/library/config/scenario_protos -ALLOW alice/kronstadt/tools/graph_generator -> alice/megamind/library/config/scenario_protos -ALLOW alice/hollywood/library/python/testing/it2 -> alice/megamind/library/python/testing/session_builder - -# DO NOT ADD NEW ALLOW RULES -ALLOW alice/bass -> alice/megamind/library/search/protos -ALLOW alice/bass -> alice/megamind/library/util -ALLOW alice/bass/forms/video/protocol_scenario_helpers -> alice/megamind/library/experiments -ALLOW alice/bass/scenarios/zero_testing -> alice/megamind/library/experiments -ALLOW alice/hollywood/convert_proto -> alice/megamind/library/search/protos -ALLOW alice/hollywood/library/frame -> alice/megamind/library/util -ALLOW alice/hollywood/library/frame_filler/lib -> alice/megamind/library/frame_builder -ALLOW alice/hollywood/library/frame_filler/lib -> alice/megamind/library/scenarios/defs -ALLOW alice/hollywood/library/frame_filler/lib -> alice/megamind/library/scenarios/interface -ALLOW alice/hollywood/library/frame_filler/lib -> alice/megamind/library/scenarios/protocol -ALLOW alice/hollywood/library/frame_filler/lib/ut -> alice/megamind/library/testing -ALLOW alice/hollywood/library/scenarios/food -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/general_conversation/candidates -> alice/megamind/library/experiments -ALLOW alice/hollywood/library/scenarios/goodwin/handlers -> alice/megamind/library/frame_builder -ALLOW alice/hollywood/library/scenarios/goodwin/handlers -> alice/megamind/library/search/protos -ALLOW alice/hollywood/library/scenarios/goodwin/handlers -> alice/megamind/library/testing -ALLOW alice/hollywood/library/scenarios/music -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/music/music_backend_api -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/news/ut -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/news/ut_render -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/notifications -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/search/scenarios -> alice/megamind/library/experiments -ALLOW alice/hollywood/library/scenarios/suggesters/games/ut -> alice/megamind/library/frame_builder -ALLOW alice/hollywood/library/scenarios/suggesters/movie_akinator -> alice/megamind/library/util -ALLOW alice/hollywood/library/scenarios/suggesters/movie_akinator/ammo_generator -> alice/megamind/library/session/protos -ALLOW alice/hollywood/library/scenarios/suggesters/movies/ut -> alice/megamind/library/util -ALLOW alice/library/video_common/ut -> alice/megamind/library/testing -ALLOW alice/library/websearch -> alice/megamind/library/search/protos -ALLOW alice/tools/sessions_tool -> alice/megamind/library/session -ALLOW alice/tools/setrace_snippets -> alice/megamind/library/session -ALLOW alice/tools/print_megamind_session -> alice/megamind/library/session -ALLOW alice/wonderlogs/daily/lib -> alice/megamind/library/context -ALLOW alice/wonderlogs/daily/lib -> alice/megamind/library/handlers/utils -ALLOW alice/wonderlogs/sdk/utils -> alice/megamind/library/response -ALLOW dict/mt/alice/scenarios/lib -> alice/megamind/library/frame_builder -ALLOW dict/mt/alice/scenarios/lib -> alice/megamind/library/util -ALLOW sandbox/projects/megamind/release_megamind_formulas -> alice/megamind/library/classifiers/formulas/protos -ALLOW sandbox/projects/megamind/release_megamind_formulas -> alice/megamind/library/config/protos -ALLOW search/begemot/rules/alice/iot -> alice/megamind/library/scenarios/iot -ALLOW search/begemot/rules/alice/web_music -> alice/megamind/library/search/protos -ALLOW search/begemot/rules/init/build_request/proto -> alice/megamind/library/search/protos -ALLOW search/begemot/rules/src_setup/video -> alice/megamind/library/search/protos -ALLOW web/src_setup/lib/setup/common/request/alice -> alice/megamind/library/search/protos - -DENY .* -> alice/megamind/library -DENY .* -> alice/tools/print_megamind_session diff --git a/build/rules/autocheck.blacklist b/build/rules/autocheck.blacklist deleted file mode 100644 index 731331f45c..0000000000 --- a/build/rules/autocheck.blacklist +++ /dev/null @@ -1,1677 +0,0 @@ -# Autocheck blacklist -# The list of directories excluded from autocheck (with all subdirs) -academy/admission/backend -academy/lyceum/backend -addappter/frontend/partners-front -addappter/frontend/promo-addappter -admins/MirrorYandexRu/config-corba-mirror -admins/MirrorYandexRu/mirror-configs-combine -admins/MirrorYandexRu/mirror-scripts -admins/admins-pylint -admins/ansible-juggler-configs -admins/corba-mongo-backup -admins/cult-admin -admins/elasticsearch-index-cleaner -admins/ffmpeg-tests -admins/generate-awacs-config -admins/git-repo -admins/icecream/agent -admins/icecream/backend -admins/icecream/ice -admins/icecream/node-icecream -admins/media-ipset-ban -admins/mongo-hack-tools -admins/mongodb-consistent-backup -admins/mysql-configurator -admins/mysql-configurator-js -admins/mysql-dbcopier -admins/mysql-grants -admins/pymonmongo -admins/rotate-s3-backups -admins/salt-media/storage -admins/sphinx-monitoring -admins/strm/yandex-strm-adcv2 -admins/strm/yandex-strm-nginx-rtmp -admins/strm/yandex-strm-supres -admins/strm/yandex-strm-tools -admins/switter2grafana -admins/yabs-graphite-sender-config-corba -admins/yandex-conf-repo-media-common -admins/yandex-graphite-checks-nginx-errlog-rate -admins/yandex-graphite-checks-phpfpm -admins/yandex-media-cassandra-repair-tool -admins/yandex-media-check-route -admins/yandex-media-common-cassandra-backup -admins/yandex-media-common-configinterfacesmock -admins/yandex-media-common-hbf-agent -admins/yandex-media-common-hbf-agent-lxctl-plugin -admins/yandex-media-common-hbf-agent-monitoring -admins/yandex-media-common-lxd-bootstrap -admins/yandex-media-common-lxd-cloud-agent -admins/yandex-media-common-lxd-setip -admins/yandex-media-common-redis-slave-watcher -admins/yandex-media-common-selfdns-plugin -admins/yandex-media-common-sslcert-check -admins/yandex-media-dolivka -admins/yandex-media-iptables-c-group -admins/yandex-media-jumbo-check -admins/yandex-media-mongo-dump-restore -admins/yandex-media-mongo-dumper -admins/yandex-media-mongo-slow-queries -admins/yandex-media-mongolag-checks -admins/yandex-media-nginx-errorlog-check -admins/yandex-media-py-log-processor -admins/yandex-media-s3cmd -admins/yandex-media-teamcity-agent -admins/yandex-media-teamcity-monitoring -admins/yandex-nginx-stub-to-solomon -admins/yandex-solomon-phpfpm-stat-daemon -admins/yandex-tv-xscript-watchdog -adv/design/editor -adv/pcode/mobileadssdk/sdk -adv/pcode/mobileadssdk/scripts -adv/pcode/mobileadssdk/tests -adv/pcode/mraid-controller -adv/pcode/safeframe -adv/pcode/web/ad-sdk-js -adv/pcode/web/master-system -adv/pcode/web/pcode -advq/gitlab -answ/answers-frontend -afisha/yaga/py -afisha/datan -alice/alice4business -alice/paskills/webhook-test -antiadblock/aab_detect -antiadblock/admin_panel -antiadblock/blockers/adblock -antiadblock/blockers/adblockplus -antiadblock/blockers/adguard -antiadblock/blockers/ublock -antiadblock/external_docs -billing/apikeys-frontend-admin -billing/apikeys-frontend-user -billing/balance_tests -billing/frontend/cart -billing/frontend/fop -billing/frontend/fop-server -billing/frontend/mdh -billing/frontend/publisher -billing/frontend/qa -billing/frontend/tanker -billing/tools/branch_tools -billing/tools/docker -billing/tools/orchestra -billing/tools/yshanka -bookmate/ebook-similarities -bookmate/java-backend-services -bookmate/sdow -bookmate/activity -bookmate/canvas -bookmate/frontend -bookmate/mobile-reader -bookmate/sre -bookmate/analytics -bookmate/dead-letter-topic -bookmate/gems -bookmate/onix-documentation -bookmate/web-reader -bookmate/android -bookmate/docker-base-images -bookmate/gemstash -bookmate/proto -bookmate/web-reader_next -bookmate/audiobooks_import -bookmate/docs -bookmate/infra -bookmate/publisher -bookmate/backend -bookmate/dummy -bookmate/ios -bookmate/publisher-frontend -browser/frontend/packages -browser/frontend/projects -browser/frontend/unknown -browser/resources/extensions-whitelist -bunker/bunker-queue -bunker/database -bunker/nodejs-db-connector -bunker/www -callab/delta -ci/registry -classifieds/apitests-template -classifieds/auto-av-images-parser -classifieds/auto-canonical-tests -classifieds/auto-redirect-tests -classifieds/auto-tests -classifieds/rerun-tests-teamcity-plugin -classifieds/auto-vin-decoder -classifieds/autoru-app-ssr -classifieds/autoru-build-server -classifieds/autoru-expert-auction-bot -classifieds/autoru-nps-sellers-bot -classifieds/autoru-evaluation-storage -classifieds/autoru-frontend-gdpr -classifieds/autoru-frontend-sitemap -classifieds/autoru-ios-bot -classifieds/autoru-pdd -classifieds/autoru-searchline -classifieds/auto -classifieds/beggar-banker -classifieds/cabinet -classifieds/callcenter-helper -classifieds/callcenter-helper-front -classifieds/extdata-serverless -classifieds/frontend-metro -classifieds/frontend-shiva-hooks -classifieds/general-tests -classifieds/hipe -classifieds/infobip-sms-log -classifieds/infra/homebrew-vertis -classifieds/infra/admin-dockerfiles -classifieds/infra/admin-utils -classifieds/infra/ansible-juggler-configs -classifieds/infra/aptly -classifieds/infra/crt-updater -classifieds/infra/db-consul-discovery -classifieds/infra/goLB -classifieds/infra/h2p -classifieds/infra/packer -classifieds/infra/perelivka-control -classifieds/infra/prometheus-config -classifieds/infra/prometheus-juggler-generator -classifieds/infra/rundeck-overseer -classifieds/infra/shiva -classifieds/infra/shiva-conf -classifieds/infra/ssh -classifieds/infra/vertis-ansible -classifieds/infra/vertis-dismissed-bot -classifieds/infra/vertis-packages -classifieds/infra/ydb-backups -classifieds/infra/yt-exporters -classifieds/infra/zookeeper-ui -classifieds/infra/zoonavigator -classifieds/kafka-push-server -classifieds/mobile -classifieds/mobile-antirobot-ios -classifieds/mobile-autoru-client-android -classifieds/mobile-autoru-client-ios -classifieds/mobile-autoru-flags-ios -classifieds/mobile-autoru-test-discover-ios -classifieds/mobile-autoru-tests-mediator-ios -classifieds/mobile-cocoapods-tools -classifieds/mobile-fastlane-tools -classifieds/mobile-libraries-ios -classifieds/mobile-realty-bot -classifieds/mobile-realty-client-android -classifieds/mobile-realty-client-ios -classifieds/mobile-realty-client-ios-buildscript -classifieds/mobile-ydo-client-android -classifieds/nginx-tests -classifieds/nodejs/luster-billing-keys -classifieds/nodejs/luster-bunker -classifieds/nodejs/luster-graceful-dns -classifieds/nodejs/luster-guard -classifieds/nodejs/luster-log-file -classifieds/nodejs/luster-prometheus -classifieds/nodejs/luster-tvm -classifieds/nodejs/luster-vertislogs -classifieds/nodejs/node-monrun -classifieds/nodejs/nodejs-nodules-blackbox -classifieds/nodejs/nodejs-nodules-cache -classifieds/nodejs/nodejs-nodules-controllers -classifieds/nodejs/nodejs-nodules-filters -classifieds/nodejs/nodejs-nodules-libs -classifieds/nodejs/nodejs-nodules-user -classifieds/nodejs/nodejs-nodules-user-oauth -classifieds/octopus -classifieds/parsing-py -classifieds/parts-admin -classifieds/php -classifieds/php-catalog-cron -classifieds/php-cron -classifieds/pica-pica -classifieds/quiz-whois -classifieds/randomlunchbot -classifieds/randomlunchbot -classifieds/realty-frontend -classifieds/realty/feedloader -classifieds/reviews -classifieds/robot-vertis-jawa -classifieds/s3edr -classifieds/services -classifieds/sitemap-monitor -classifieds/skypper -classifieds/sphinx-configs -classifieds/subscriptions -classifieds/susanin -classifieds/swagger-coverage -classifieds/tests-common -classifieds/verticals-backend -classifieds/vertis-frontend -classifieds/vos2 -classifieds/vos2-realty-tests -classifieds/vs -classifieds/vsdwh/mono -classifieds/vsdwh/tools/stat-bot -classifieds/vtf-tools -classifieds/yandex-vertis-autoru-static -cloud/billing/deploy/packer -cloud/billing/deploy/terraform -cloud/billing/python/billing/bitbucket -cloud/mdb/helm -cloud/mdb/tools/errata-generator -cloud/mdb/tools/monrun-errata -cloud/mdb/vm-image-build -cmnt/frontend/cmnt-front -cmnt/frontend/cmnt-hermione-cron -cmnt/frontend/cmnt-loader -cmnt/frontend/cmnt-monitoring -cmnt/frontend/cmnt-node -cmnt/frontend/cmnt-node-image-uploader -cmnt/frontend/cmnt-office -collab/cloudsearch -collab/docline -collab/docretriever -collab/forms-admin-old -commerce/adv-admin -commerce/adv-cm -commerce/adv-front -commerce/adv-source -commerce/expert-api -commerce/expert-cron -commerce/expert-front -commerce/expert-office -commerce/proctoring-no-cookie -connect -connect-ui-components -contest/archive/icm -contest/backend/flow -contest/devops/ansible -contest/devops/kernel-patches -contest/experiments/cqs/run-progress-aggregator -contest/experiments/kafka/consumer -contest/experiments/kafka/producer -contest/experiments/kafka/streams -contest/legacy/api-schema -contest/legacy/contest-docker-images -contest/legacy/qloud-zk -contest/legacy/yandex_contest_invoker_build_script -contest/legacy/yandex_contest_invoker_config -contest/legacy/yandex_contest_invoker_debian -contest/legacy/yandex_contest_invoker_flowctl_pipectl -crm/apphost/nodejs -crm/cs -crm/csharp -crm/frontend -crm/infra/nuget-server -crm/infra/test_tools -crm/infra/ydeploy -crm/space/frontend_static -crm/space/rules -crm/space/oracle -crowdsourcing/frontend -crowdsourcing/thirium-frontend -data-ui/YaDB -data-ui/abc -data-ui/abt -data-ui/alabama-farmer -data-ui/arcanum -data-ui/async-data-redux -data-ui/backoffice-components -data-ui/billing-cloud-account -data-ui/ch-playground -data-ui/ch-telemetry-monitoring -data-ui/changelog-generator -data-ui/chartkit -data-ui/charts-api-proxy -data-ui/charts-console -data-ui/charts-engine -data-ui/charts-pdf -data-ui/charts-shared -data-ui/charts-ui -data-ui/chat-components -data-ui/chats-api -data-ui/ci -data-ui/cloud-android -data-ui/cloud-app -data-ui/cloud-auth -data-ui/cloud-backoffice -data-ui/cloud-billing -data-ui/cloud-components -data-ui/cloud-console -data-ui/cloud-console-terraform -data-ui/cloud-crm -data-ui/cloud-crm-api -data-ui/cloud-datasphere -data-ui/cloud-deploy -data-ui/cloud-deploy-template -data-ui/cloud-doc-sync -data-ui/cloud-docfarm -data-ui/cloud-docfarm-api -data-ui/cloud-ios -data-ui/cloud-l7 -data-ui/cloud-notify -data-ui/cloud-org -data-ui/cloud-partners -data-ui/cloud-regional-configs -data-ui/cloud-schemas -data-ui/cloud-search-api -data-ui/cloud-status-illustrations -data-ui/cloud-statusboard -data-ui/cloud-support -data-ui/cloud-ui-api -data-ui/cloud-video -data-ui/cloud-www -data-ui/common -data-ui/common-codemod -data-ui/connect-organization-context -data-ui/core -data-ui/core-db -data-ui/core-template -data-ui/covid-board -data-ui/covid-board -data-ui/crawler -data-ui/dashkit -data-ui/datacloud-auth -data-ui/datalens -data-ui/datalens-mailer -data-ui/datalens-redirects -data-ui/date-utils -data-ui/dc-www -data-ui/devops-cli -data-ui/devtools-components -data-ui/doc-api -data-ui/docker-nodejs -data-ui/docs-viewer -data-ui/docs-viewer-external -data-ui/dynamic-forms -data-ui/farm -data-ui/fontawesome -data-ui/forms -data-ui/forms-admin -data-ui/gateway -data-ui/generic-socket -data-ui/helm-deploy -data-ui/highlighter -data-ui/highlighter-utils -data-ui/i18n-sync -data-ui/idm -data-ui/image-generator -data-ui/image-resizer -data-ui/infra-api -data-ui/infra-buzzer -data-ui/infra-components -data-ui/infra-news-popup -data-ui/infra-portal -data-ui/infra-sockets -data-ui/infrastructure -data-ui/internal-backoffice -data-ui/internal-backoffice-api -data-ui/intrasearch -data-ui/intrasearch-components -data-ui/layers -data-ui/logbroker -data-ui/logger -data-ui/mission-control-center -data-ui/mobile-components -data-ui/mobile-core-ios -data-ui/monaco-yql-languages -data-ui/monitoring -data-ui/monlib-nodejs -data-ui/navigation -data-ui/navigation-external -data-ui/node-jose -data-ui/notify -data-ui/notify-bot -data-ui/oko -data-ui/oko2 -data-ui/oko-crawler -data-ui/organization-user-card -data-ui/pdf-generator -data-ui/playwright-utils -data-ui/playwrighter -data-ui/protocol-buffers-parser -data-ui/reconnecting-websocket -data-ui/redux-unity-router -data-ui/redux-unity-router -data-ui/renovate-bot -data-ui/rtmr -data-ui/sandbox -data-ui/sdk -data-ui/server-yfm -data-ui/serverless-images-compressor -data-ui/shared-services-api -data-ui/shared-services-config -data-ui/smoker -data-ui/snapter -data-ui/stat -data-ui/storybook-template -data-ui/support-node-components -data-ui/terraform-deploy -data-ui/tg-yandex-charts-bot -data-ui/tools -data-ui/tracker -data-ui/tracker-android -data-ui/tracker-deploy-bot -data-ui/tracker-ios -data-ui/tracker-tetris -data-ui/transfer-manager -data-ui/tvm-utils -data-ui/ui-core -data-ui/ui-core-layout -data-ui/ui-core-template -data-ui/ui-telegram-api -data-ui/unipika -data-ui/united-storage -data-ui/unity -data-ui/webpack-levels -data-ui/wf-core -data-ui/wiki -data-ui/wiki-yfm-converter -data-ui/yandex-cloud-org-bot -data-ui/ydb-embedded-ui -data-ui/ydb-nodejs-sdk-benchmarks -data-ui/ydb-www -data-ui/yfm-custom-plugins -data-ui/yfm-editor -data-ui/yfm-intranet-plugins -data-ui/yql -data-ui/yqlkit -data-ui/yt-cluster-config -data-ui/yt-docker-script -data-ui/yt-interface -data-ui/yt-interface-helpers -data-ui/yt-javascript-wrapper -data-ui/ytsaurus-www -dataui/yandex-cloud-org-bot -delivery/logistics-analytics -delivery/logistics-platform-analytics -devtools/cache_test_trigger -devtools/experimental/repo/REPO-33/torture -devtools/fei-schedulers -devtools/trendbox -devtools/workcopy-merger -devtools/ya/docs/internal -diehard/legacy/backend -diehard/legacy/frontend -adv/frontend/legacy -disk/workspace/dns-hosting -disk/workspace/workspace-properties -distribution_interface/bem-bl -distribution_interface/bem-history -distribution_interface/bem-mvc -distribution_interface/calendar -distribution_interface/chrome-nano -distribution_interface/enb-bem -distribution_interface/express-bem-render -distribution_interface/frontend -distribution_interface/istanbul -distribution_interface/meccano -distribution_interface/protocol -distribution_interface/slices-new -distribution_interface/stdp -distribution_interface/winston-rsyslog -divkit/public/client/web -divkit/public/json-builder/typescript -drive/frontend/services/ya-drive-admin -drive/frontend/services/yang-templates -drive/pyback -education/english/frontend -education/english/e2e -education/english/landings/main-landing -education/english/landings/tutors-landing -education/english/mobile/ios-app -education/frontend-schools -education/praktikum/services/wirth -education/schoolbook/frontend/packages -education/schoolbook/frontend/services/aa -education/schoolbook/frontend/services/azimov -education/schoolbook/frontend/services/bali -education/schoolbook/frontend/services/k-socket -education/schoolbook/frontend/services/maximova -education/schoolbook/frontend/services/meduza-front -education/schoolbook/frontend/services/plucker -education/schoolbook/frontend/services/priority-prophet -education/schoolbook/frontend/services/sattarova -education/schoolbook/frontend/services/schoolbook-apphost-bunker-source -education/schoolbook/frontend/services/stub -education/schoolbook/frontend/services/von-dyck -education/schoolbook/frontend/services/vorontsov-json -education/schoolbook/packages/accio -education/schoolbook/services/enigma-certs-debug -education/schoolbook/services/gauss -education/schoolbook/services/kelvin-ci-tool -education/schoolbook/services/mmo -education/services/file-archiver -education/services/get-time -fintech/infra/ci -fintech/invest-frontend/icons -fintech/invest-frontend/nginx-static -fintech/invest-frontend/porto-layers -fintech/invest-frontend/www -fintech/qa/bank-risk-api-tests -fintech/qa/ci -fintech/qa/services -fintech/qa/openapi-generator-requests -fintech/qa/pos-api-tests -fintech/qa/split-risk-api-tests -fintech/qa/wallet-api-tests -for-media/download-regions-linguistics -for-media/specprojects -for-media/terminal -for-media/terminal-compare -frontend -games/frontend/services -games/frontend/packages -games/frontend/catalog -games/qa_tests -geoadv/analytics/geoproduct -geoadv/duty-recipes -geoadv/frontend -geoproduct/woronkey -haas/b/frontend -haas/bot/app -haas/bot/vintage-sdc -haas/bot/vintage/adm -haas/bot/vintage/adu -haas/bot/vintage/api -haas/bot/vintage/bcc -haas/bot/vintage/bot -haas/bot/vintage/dc -haas/bot/vintage/docker -haas/bot/vintage/eti -haas/bot/vintage/hd -haas/bot/vintage/hwr -haas/bot/vintage/ofr -haas/bot/vintage/rsg -haas/bot/vintage/sat -haas/bot/vintage/scm -haas/bot/vintage/sip -haas/cfe -haas/eine/eine-firmware -haas/eine/eine-openwrt -haas/eine/eine-web -haas/emergency -haas/goscert/python-ipmiproxy -haas/goscert/python-ipmiselparser -haas/goscert/yandex-haas-ipmiproxy-doc -haas/hwr/backend -haas/hwr/frontend -haas/infra/docker-base-image -haas/inventory/backend -haas/inventory/frontend -haas/libs/js/angui -haas/libs/php/avatars-client -haas/libs/php/http-searcher -haas/libs/php/library-datetime -haas/libs/php/qloud-monolog-bundle -haas/libs/php/security-bundle -haas/libs/php/staff-api-client -haas/libs/php/tvm-client -haas/libs/python/http-searcher -haas/map/backend -haas/map/frontend -haas/m3/eng-configs -haas/terminal-dc/backend -haas/terminal-dc/frontend -haas/trash/bot/cpe -haas/trash/bot/crm -haas/trash/bot/debian-packages -haas/trash/bot/dyn -haas/trash/bot/fbi -haas/trash/bot/mac -haas/trash/bot/map -haas/trash/bot/ocl -haas/trash/bot/old-hwr-data-migrator -haas/trash/bot/printers -haas/trash/bot/rsp -haas/trash/bot/saltstages -haas/trash/bot/skeleton-bundle -haas/trash/bot/tel -haas/trash/bot/umka -haas/trash/bot/www -haas/trash/bot/zmb -haas/trash/catalog -haas/trash/dca-teamcity-settings -haas/trash/libs/php/qloud-monolog-bundle -haas/trash/libs/php/staff-bundle -haas/trash/ramzan -haas/user-scripts/ci-tools -haas/user-scripts/cmis-dc-growth -haas/user-scripts/factories-sync -haas/user-scripts/idash -haas/user-scripts/rack-constructor -haas/user-scripts/release-tool -haas/user-scripts/umka2yt -haas/user-scripts/users -haas/user-scripts/yt-checks -haas/vendor/php/php-src -health/backend/monitorings -health/backend/synapse -health/backend/telemed-services -health/frontend/frontends -health/frontend/telemed-frontend -hrtech/frontend -hrtech/mobile -hypercube/hardware/YHub10_STM32firmware -hypercube/hardware/YhubModbusBootloader -hypercube/museum -intranet/ad_system -intranet/bugbounty -intranet/cab -intranet/crt/www -intranet/digiarch -intranet/easymeeting_api -intranet/feedback -intranet/hr-tech-duty-robot -intranet/legacy/emission -intranet/legacy/witchery -intranet/legal-st-bot -intranet/lms -intranet/login-linker -intranet/mentor -intranet/moebius -intranet/ok -intranet/ok_flow/proposal -intranet/procu -intranet/review -intranet/staff -intranet/staff-api -intranet/staff-competentum -intranet/staff-datamart -intranet/staff-dataswamp -intranet/staff-dwh -intranet/staff-nginx -intranet/staff-reader -intranet/tasha -intranet/tools-trendbox -intranet/uhura -intranet/viewer -investors/esg/frontend -investors/ir/frontend -investors/ir/nginx -investors/ir/templates -junk -kikimr/deployment -kinopoisk/analytics -kinopoisk/frontend -kinopoisk/mobile -kinopoisk/php/backend/source -kinopoisk/php/mobile-api/source -kinopoisk/php/mysql-migrations/source -kinopoisk/php/touch-api/source -kinopoisk/sre/cfcalc -kinopoisk/sre/config-monrun-media-recalc -kinopoisk/sre/kinopoisk-cm-s3-admin-front -kinopoisk/sre/kinopoisk-jobs-info -kinopoisk/sre/kinopoisk-logcollector-monitoring -kinopoisk/sre/kinopoisk-manual-migrations-mgmt -kinopoisk/sre/kpmail -kinopoisk/sre/mysql-replica-switcher -kinopoisk/sre/udp2sentry -kinopoisk/sre/yandex-kinopoisk-angel-loggiver-script -kinopoisk/sre/yandex-kinopoisk-antiadblock-loggiver-script -kinopoisk/sre/yandex-kinopoisk-http-auth-check -kinopoisk/sre/yandex-kinopoisk-pkg-versions-env-check -kinopoisk/sre/yandex-media-common-youtube-dl-updater -kinopoisk/sre/yandex-media-kp-refill-hack -kinopoisk/sre/yandex-media-monrun-pt-kill-check -kinopoisk/sre/yasm-mdb-pg-alerts -library/python/cia_stuff -library/python/django_ids -logbroker/juggler/ansible-juggler -lpc -mail/dkim-export -mail/fetches -mail/java/furita -mail/maillists -mail/qa/mail-ui-tests -maps/b2bgeo/analytics/analytics -maps/b2bgeo/analytics/pygeoplot -maps/b2bgeo/analytics/ymaps-proto -maps/b2bgeo/frontend -maps/front -market/adr -market/erp_axapta/libs/ADHelper -market/erp_axapta/libs/AX-XDoc-WebAPI -market/erp_axapta/libs/AXCheckIncomingED -market/erp_axapta/libs/AXHandlers -market/erp_axapta/libs/AXInteropServices -market/erp_axapta/libs/AuthenticatedEncryption -market/erp_axapta/libs/CheckouterService -market/erp_axapta/libs/ConsoleSitePinger -market/erp_axapta/libs/DynamicObjectSerializer -market/erp_axapta/libs/ERP-Axapta-IDM-Backend -market/erp_axapta/libs/InventXDocDlvPrintDocsService -market/erp_axapta/libs/InventoryServices -market/erp_axapta/libs/JsonHelper -market/erp_axapta/libs/MBOSSKUDataImporter -market/erp_axapta/libs/MailReader -market/erp_axapta/libs/OEBSWebAPI -market/erp_axapta/libs/REST.Client.Base -market/erp_axapta/libs/Retail-SDK-CU9 -market/erp_axapta/libs/STAX.Client -market/erp_axapta/libs/SecretVault -market/erp_axapta/libs/SimpleS3Wrapper -market/erp_axapta/libs/Staff.ClientAPI -market/erp_axapta/libs/StaffClient.AX -market/erp_axapta/libs/StarTrek.ClientAPI -market/erp_axapta/libs/TVMToolClient -market/erp_axapta/libs/TaskServices -market/erp_axapta/libs/TelegramBotClientApi -market/erp_axapta/libs/VetisServiceAx -market/erp_axapta/libs/YAVClient -market/erp_axapta/libs/YaSignClient -market/erp_axapta/libs/solomon-pusher -market/erp_axapta/libs/solomon_helper -market/erp_axapta/libs/tvmdaemonproxy -market/front/apps -market/front/libs/Buffer.js -market/front/libs/EventEmitter -market/front/libs/List -market/front/libs/Response -market/front/libs/b2b-components -market/front/libs/b2b-core -market/front/libs/cache -market/front/libs/client-timers -market/front/libs/cms-flow-grabber -market/front/libs/codestyle -market/front/libs/compatible-type-checker -market/front/libs/contractor -market/front/libs/data-grabber -market/front/libs/declarations -market/front/libs/devtools-decoder -market/front/libs/diffector -market/front/libs/documentary -market/front/libs/elements -market/front/libs/envy -market/front/libs/eslint-plugin-market -market/front/libs/evloop-stats -market/front/libs/export-static/export-static -market/front/libs/fingerprintjs -market/front/libs/flow2schema -market/front/libs/gauge-metrika -market/front/libs/gauge/gauge -market/front/libs/gemini -market/front/libs/gemini-core -market/front/libs/gemini-extended-actions -market/front/libs/generator-market -market/front/libs/geobase-fallback -market/front/libs/geobase-native-driver -market/front/libs/ginny -market/front/libs/ginny-helpers -market/front/libs/greed -market/front/libs/hermione-allure-reporter -market/front/libs/hermione-broken-tests -market/front/libs/hermione-chai -market/front/libs/hermione-fair-stat-reporter -market/front/libs/hermione-file-writer -market/front/libs/hermione-json-reporter -market/front/libs/hermione-page-object -market/front/libs/hermione-suite-manager -market/front/libs/hermione-url-rewriter-plugin -market/front/libs/jest-allure-image-snapshot -market/front/libs/jest-allure-report -market/front/libs/jest-puppeteer-react -market/front/libs/json-schema-diff-validator -market/front/libs/logger -market/front/libs/luster-ext-env -market/front/libs/luster-messaging -market/front/libs/luster-rebundle -market/front/libs/luster-tmp-log-file -market/front/libs/luster-tvm-mon -market/front/libs/luster-var-log -market/front/libs/market-money-helpers -market/front/libs/market-partner-cli -market/front/libs/market-static-pages -market/front/libs/marketcorp -market/front/libs/marketfront-duty-plans -market/front/libs/monitoring-express -market/front/libs/partner-codestyle -market/front/libs/partner-release-checker -market/front/libs/planning-helper -market/front/libs/provision -market/front/libs/region-async -market/front/libs/resource-sugar -market/front/libs/route-converter -market/front/libs/rum -market/front/libs/seo -market/front/libs/sp-vendor-cfg -market/front/libs/swagger-diff-checker -market/front/libs/tasktimeline -market/front/libs/testament -market/front/libs/testpalm-cli -market/front/libs/toloka-personal-recommendations -market/front/libs/toloka_projects -market/front/libs/trace-log-builder -market/front/libs/ts-migrate-partnernode -market/front/libs/ts2schema -market/front/libs/tsconfig -market/front/libs/tsum-helper-chrome-extention -market/front/libs/tvm-ticket -market/front/libs/tvm-ticket-getter -market/front/libs/validator -market/front/libs/webdriver-io-commands -market/front/libs/wrath -market/front/misc/microformats -market/front/misc/partner-cookbook -market/front/misc/vendors-api-spec/vendors-api-spec -market/front/monomarket -market/front/schedulers -market/front/tools/codestats-builders -market/front/tools/marketanalyticsbot -market/front/tools/order-edit-items -market/front/tools/order-feedback-loader -market/global/front -market/infra/infra-dockers -market/infra/market-clickhouse-formula -market/infra/market-teamcity -market/ir/lib/ir-pattern-extractor -market/ir/lib/market-robot-utils -market/ir/lib/robot-kdepot -market/ir/lib/robot-storage -market/ir/lib/sita-http-client -market/ir/lib/title-maker -market/ir/lib/zoofeeder -market/ir/market-robot -market/ir/models-clusterizer -market/logistics/fullfillment-frontend/wms-front -market/market-tpl/sc-app -market/mbo/archive/market-markup-worker -market/mbo/archive/strict-web -market/mbo/market-proto-ui -market/mbo/scripts/nanny-ssh -market/sovetnik/backend -market/sovetnik/bump -market/sovetnik/domain-uglify -market/sovetnik/domains -market/sovetnik/e2e -market/sovetnik/internal-postcss-all-important -market/sovetnik/internal-postcss-scopify -market/sovetnik/landings -market/sovetnik/luster-log-pid -market/sovetnik/luster-log-stat -market/sovetnik/luster-log-winston -market/sovetnik/minifier -market/sovetnik/mobile-app -market/sovetnik/mobile-settings -market/sovetnik/postcss-all-important -market/sovetnik/postcss-scopify -market/sovetnik/redir -market/sovetnik/released -market/sovetnik/scripts -market/sovetnik/settings -market/sovetnik/static -market/sovetnik/win-installer -market/sovetnik/tasks-on-selectors -marketing/autopoet -marketing/blogs/api -marketing/blogs/api-docs -marketing/blogs/cron -marketing/blogs/enb-tanker -marketing/blogs/frontend -marketing/blogs/old-nginx -marketing/blogs/r2d2 -marketing/blogs/redirects -marketing/blogs/takeout -marketing/blogs/wysiwyg -marketing/events/events-admin-v2 -marketing/events/events-api -marketing/events/events-front -marketing/export/bar -marketing/export/for -marketing/export/serp-doodles -marketing/internet -marketing/iseg -marketing/last -marketing/patterns/api -marketing/patterns/dbcleaner -marketing/patterns/dbsynchro -marketing/patterns/frontend -marketing/patterns/importer -marketing/patterns/indexer -marketing/patterns/query2vec -marketing/promo-alice-quiz-2017 -marketing/promo-catboost-2017 -marketing/promo-cubes-2018 -marketing/promo-image-generator-2019 -marketing/promo-yandex42-2019 -marketing/quiz-backend-ml-2019 -marketing/redirector -marketing/referats -marketing/research-admin -marketing/research-api -marketing/research-cron -marketing/research-front -marketing/tech-microservices -marketing/techdev -marketing/time -marketing/time-data-generator -marketing/typograf -marketing/yrgb -mds/admin/misc/gen-monitoring-panel -mds/admin/packages/config-elliptics-node -mds/admin/packages/config-mds-mastermind -mds/admin/packages/config-monrun-elliptics-check -mds/admin/packages/config-storage-admins-public-keys -mds/admin/packages/hbf-agent-mds-config -mds/admin/packages/porto-mds-config -mds/admin/packages/vazgen-config -mds/admin/packages/yandex-elliptics-cache-scripts -mds/admin/packages/yandex-elliptics-storage-setup -mds/admin/packages/yandex-storage-mds-autoadmin -mds/admin/packages/yandex-storage-sa-scripts -mds/admin/packages/yandex-storage-shelf-hw-watcher-conf -mds/admin/packages/yandex-storage-yasm-elliptics-stat -mds/admin/packages/yandex-storage-yasm-mastermind-stat -mds/admin/packages/yandex-storage-yasm-system-stat -mds/admin/packages/yandex-storage-yc-conf -mds/admin/scripts -mds/admin/storage-juggler-config -mds/admin/tools/telegram_bot -mds/avatars/resizer -mds/avatars/resizer-conf -mds/cocaine/isolate-daemon -mds/cocaine/ubic-service-cocaine-runtime -mds/rbtorrent -mds/walle_cms/yandex-storage-walle-conf -metrika/analytics -metrika/frontend -milab/frontend/autoru-quiz -milab/frontend/back-to-life -milab/frontend/balaboba -milab/frontend/barchartrace-fork -milab/frontend/beautiful-public-transport-routes -milab/frontend/beauty -milab/frontend/best-queries -milab/frontend/business -milab/frontend/cities-quiz -milab/frontend/countries-quiz -milab/frontend/covid-fakes -milab/frontend/fastdeploy -milab/frontend/food -milab/frontend/friends -milab/frontend/gan-calculator -milab/frontend/ganart -milab/frontend/gfk-dashboard -milab/frontend/it-jobs -milab/frontend/landmarks -milab/frontend/life-in-isolation -milab/frontend/local-words -milab/frontend/moscow-districts -milab/frontend/old-words -milab/frontend/oscar-2019 -milab/frontend/podcasts-2021-chart -milab/frontend/podcasts-2021-scatterplot -milab/frontend/podomam -milab/frontend/runet-quiz -milab/frontend/services -milab/frontend/significant-news -milab/frontend/simface-children -milab/frontend/toponyms -milab/frontend/transparency -milab/frontend/whatsthemovie -milab/frontend/winteriscoming -milab/frontend/yac-simface -milab/frontend/yandex-ai -milab/frontend/year-themes-2019 -milab/frontend/year-themes-2020 -milab/projects/best_queries -milab/projects/yac_simface -mobile -mole -music/analytics/evgen -music/frontend/infra/aconcagua -music/frontend/infra/summit -music/musicqa -nirvana/frontend -noc/heatmap/dashboards -noc/iptel/packages -noc/linux-commit-api -noc/mondata/check -noc/mondata/discovery -noc/mondata/temp -noc/office/dhcprelya -noc/office/nd6-watcher -noc/packages/mondata/utils -noc/packages/telegraf-noc-conf -noc/traffic/dns/junk/cc-core -noc/traffic/dns/junk/cdn-cfg -noc/traffic/dns/junk/d2 -noc/traffic/dns/junk/dns-api -noc/traffic/dns/junk/dns-client -noc/traffic/dns/junk/dns2-api -noc/traffic/dns/junk/dns2-server -noc/traffic/dns/junk/e2 -noc/traffic/dns/junk/hx -noc/traffic/dns/junk/j2 -noc/traffic/dns/junk/l2 -noc/traffic/dns/junk/lxs -noc/traffic/dns/junk/m3 -noc/traffic/dns/junk/pandora-dns -noc/traffic/dns/junk/solomon-client -noc/traffic/junk/dnsmanager/backend -noc/traffic/junk/dnsmanager/frontend -noc/traffic/junk/heat-map -noc/traffic/l3lb/anc-server -noc/traffic/l3lb/check-tun -noc/traffic/l3lb/ipvs-sync -noc/traffic/l3lb/kmod-i40e -noc/traffic/l3lb/setup-init -noc/traffic/l3lb/snmp-lvs-module -ofd/ansible-ofd -ofd/lk -ofd/lk-old -ofd/promo -ofd/promo-old -ott/analytics/yql/git -ott/backend/config -partner/frontend/creator -partner/frontend/form -partner/frontend/krush -partner/frontend/yharnam -partner/infra/partner_ansible -partner/infra/yandex-partner-clickhouse-conf -partner/infra/yandex-partner-rsync -partner/perl/Partner-DB -partner/perl/Partner-PR -partner/perl/Yandex-Tanker -partner/perl/Yandex-Wiki -partner/perl/creator -partner/perl/page_id_generator -partner/perl/partner.yandex-team.ru -partner/perl/partner2-juggler-api -partner/perl/partner2-juggler-checks-dev -passport/backend/passport_stress_fake_services -passport/frontend/autofill -passport/frontend/core -passport/frontend/id -passport/infra/legacy/kannel -passport/infra/legacy/passport-ufo-cassandra -pay/pay-frontend -payplatform/spirit/check-renderer -payplatform/spirit/darkspirit -payplatform/spirit/system-tests -payplatform/spirit/whitespirit -player/infra -player/ios-player -player/is-yandex-player-supported -player/mocks -player/opaque-types -player/run-videoplayer-regress -player/web-player -plus/appsmith -plus/frontend/payment-widget -plus/frontend/plus -plus/frontend/plusui -plus/frontend/plus-i18n -portal/archive/achievement-api -portal/archive/admin-wfront-dev -portal/archive/apphost-xs -portal/archive/arch -portal/archive/backend-tests -portal/archive/betas -portal/archive/block-admin -portal/archive/clck-admin -portal/archive/cleanvars-python -portal/archive/counters-monitoring -portal/archive/covers -portal/archive/covers-static -portal/archive/debs -portal/archive/devrtc -portal/archive/divcard -portal/archive/divts -portal/archive/ether-demo -portal/archive/ether-monitoring-config -portal/archive/export-pusher -portal/archive/exports-tests -portal/archive/exports-tests2 -portal/archive/firefox-www -portal/archive/gitrelease -portal/archive/hbf -portal/archive/home-hooks -portal/archive/imgcss-admin -portal/archive/java-calendar-api -portal/archive/java-my-cookie-parser -portal/archive/java-tanker -portal/archive/java-tanker-utils -portal/archive/java-tests -portal/archive/java-tests-common -portal/archive/java-tests-common-steps -portal/archive/java-tools -portal/archive/java-utils -portal/archive/javascript-v8 -portal/archive/junit-monitorings-rule -portal/archive/links-tests -portal/archive/logos-static -portal/archive/logos-static2 -portal/archive/mainmorda-tests -portal/archive/matrixnet-traffic-forecast -portal/archive/matrixnet-traffic-forecast2 -portal/archive/mongodb-admin -portal/archive/morda-exports -portal/archive/mp-lib -portal/archive/mtune-www -portal/archive/mysql-meta -portal/archive/old-touch -portal/archive/olymptorches-2016 -portal/archive/operatv -portal/archive/personal-jams -portal/archive/portal-libs -portal/archive/portal-users -portal/archive/portal-wi -portal/archive/postcards -portal/archive/postcards2 -portal/archive/python-utils -portal/archive/rapido-lang -portal/archive/release-ui -portal/archive/robot-retsuko -portal/archive/screenshooter -portal/archive/searchapi-tests -portal/archive/smoothie -portal/archive/spec -portal/archive/specialprojects -portal/archive/startrek-stat -portal/archive/static-lighttpd -portal/archive/static-mng -portal/archive/static-nginx -portal/archive/static-rc -portal/archive/static-rsync -portal/archive/station -portal/archive/stories -portal/archive/stories-utils -portal/archive/tools-python -portal/archive/tune-admin -portal/archive/tune-tests -portal/archive/turkey-tests -portal/archive/vh-validation -portal/archive/wdgt-www -portal/archive/weather-tests -portal/archive/web-tests -portal/archive/widgets-www -portal/archive/widgetsapi -portal/archive/wp7widgets -portal/archive/wsearch-admin -portal/archive/xscript-admin -portal/archive/yandex-uatraits-updater -portal/demo -portal/documents -portal/export-puller -portal/frontend -portal/soft-mobile -portal/geohelper -portal/infra-scripts -portal/mock-plugin -portal/morda-xs -portal/nginx -portal/powerdns -portal/rss-widget-db -portal/serverlog-plugin -portal/static-main -portal/static-uploader -portal/syslog -portal/tap-formatter-html -portal/tune -portal/wboxdb -portal/wboxdb-admin -portal/wimg -portal/www-curl -portal/xiva -pr/company/components -pr/company/emailer -pr/company/frontend -pr/company/nginx -pr/contacts/api -pr/contacts/dockerfiles -pr/contacts/frontend -practicum/frontend/services/wirth -practicum/frontend/services/wirth-admin -practicum/issues-parser -practicum/mattermost/mattermost-server -practicum/mattermost/mattermost-webapp -practicum/messenger_tools -practicum/packages/csslint -practicum/packages/eslint -practicum/packages/figa -practicum/packages/mathlive -practicum/packages/praktikum-aiohttp-utils -practicum/packages/praktikum-front-configs -practicum/packages/pranker -practicum/packages/revisor -practicum/packages/sigma-e2e -practicum/packages/skills-components -practicum/services/aiopierce -practicum/services/bourbon -practicum/services/docs -practicum/services/epicbox-http -practicum/services/feynman -practicum/services/flutter_practicum_app -practicum/services/glossaryck -practicum/services/gosset -practicum/services/jrunner -practicum/services/monetochka -practicum/services/monetochka-front -practicum/services/payments -practicum/services/pdfgen -practicum/services/pierce -practicum/services/practicum-pumpkin -practicum/services/praktikum-monitoring -practicum/services/praktikum-pixels -practicum/services/school-hooks -practicum/services/serverhub -practicum/services/serverhub-agent -practicum/services/sigma -practicum/services/sigma-admin -practicum/services/sigma-aioback -practicum/services/store-data-analyst -practicum/services/weather-data-analyst -practicum/services/wirth -practicum/services/wirth-admin -practicum/services/wrspracticum -pythia/apps/frontend -pythia/apps/frontend-constructor -pythia/apps/frontend-survey -pythia/apps/lbch -pythia/apps/migrator/alerts -pythia/apps/push-client -pythia/libs/db_wrapper -pythia/libs/frontend -pythia/libs/js_utils -quality/ab_testing/scripts/adminka/frontend/calculations_front -quality/functionality/parsepl/ui -react-bem-components -sdg/battery-charger/balancer -sdg/mobile/ios-taxi-app -search-interfaces/ads-extension -search-interfaces/collections -search-interfaces/depot -search-interfaces/fiji-deverrors-bot -search-interfaces/goods -search-interfaces/images2 -search-interfaces/images_smart -search-interfaces/mmui-png-cache -search-interfaces/mmui-png-stub -search-interfaces/mmui-png-utils -search-interfaces/oceania -search-interfaces/office-tetris -search-interfaces/pic-bot -search-interfaces/png-stub-stream -search-interfaces/search-iframe -search-interfaces/serp-browser-ext -search-interfaces/turbo-services/turbo-css-validator -search-interfaces/turbo-services/turbocss -search-interfaces/turbo-services/turboext/ci -search-interfaces/turbo-services/turboext/components -search-interfaces/turbo-services/turboext/css -search-interfaces/turbo-services/turboext/ugc -search-interfaces/video-ads -search-interfaces/video-top -search-interfaces/yandex-apps-api -search/metrics/backend -serp/hermione -smart_devices/tv/platforms -smbsales -sprav/legacy/callcenter -statbox/jam/actions/mstat/market_analyst_yt_actions -statbox/jam/actions/mstat/market_analyst_yt_sox -strm/admins/ffmpeg-tests -strm/admins/golovan-panel -strm/admins/ubic-simple-daemon-with-check -strm/admins/yandex-media-common-group-checker -strm/admins/yandex-strm-adcv2 -strm/admins/yandex-strm-h264bitstream -strm/admins/yandex-strm-nnmetr-ubic -strm/admins/yandex-strm-norm-tools -strm/admins/yandex-strm-supres -strm/admins/yandex-strm-tools -strm/channel-data-collector -strm/salt-configs -strm/salt-configs/github -strm/strm-trns-manager -supdev/Care -supdev/H2S -supdev/cross_sales -supdev/generators -supdev/tier35 -supdev/transfer -surfwax/frontend -taxi/analytics -taxi/analytics/product_analytics -taxi/atlas -taxi/backend -taxi/backend-cpp -taxi/backend-go -taxi/callcenter-frontend -taxi/cargo -taxi/cargo/cargo-flame -taxi/cargo/ldtools -taxi/cargo/newflow-test -taxi/clickhouse-cpp -taxi/deps-py3 -taxi/dmp -taxi/dmp/b2b-analytics -taxi/dmp/business_models -taxi/dmp/curly_adminka -taxi/dmp/dwh -taxi/dmp/dwh-migrations -taxi/dmp/external/pgjdbc -taxi/dmp/external/pytest-parallel -taxi/dmp/external/sphinx_doccenter -taxi/dmp/gp-core -taxi/dmp/gpdb/gpdb-cgroup -taxi/dmp/gpdb/gpdb-oss -taxi/dmp/gpdb/gpdb-postgis -taxi/dmp/gpdb/gpdb6-libhyperic-sigar-java-dev -taxi/dmp/grimy -taxi/dmp/logging-conf -taxi/dmp/mention-bot -taxi/dmp/settings -taxi/dmp/spark/pyspark-stubs -taxi/dmp/spark/spark -taxi/dmp/spark/spark-over-yt -taxi/dmp/ssas-http -taxi/docker-integration-tests -taxi/docs -taxi/eats -taxi/eda/infrastructure_admin_scripts -taxi/efficiency -taxi/efficiencytest -taxi/efficiencytest/crm_tests -taxi/fleet-web -taxi/frontend -taxi/frontend/packages/amber-blocks -taxi/frontend/packages/b_-loader -taxi/frontend/packages/react-ymaps -taxi/frontend/packages/tariff-editor-vscode-templates -taxi/frontend/packages/taxi-frontend-logger-stream -taxi/frontend/packages/taxi-localization -taxi/frontend/packages/taxi-typings -taxi/frontend/packages/yandex-taxi-front-build-env -taxi/frontend/services/ui-constructor -taxi/garage-admin-front -taxi/garage-drivers-front -taxi/garage-parks-front -taxi/github/Espresso-sample -taxi/github/abu -taxi/github/api-proxy-config -taxi/github/backend-utils -taxi/github/backend-wiki -taxi/github/braintree-card-validator -taxi/github/cargo-outsource -taxi/github/cmpd -taxi/github/deps-py2 -taxi/github/dev.go.yandex -taxi/github/docker-backend -taxi/github/docker-baseimages -taxi/github/e2e-playwright -taxi/github/external/aws-sdk -taxi/github/external/mongo-cxx-driver-legacy -taxi/github/fleet-autotests -taxi/github/frontend-mail -taxi/github/frontend-monorepo -taxi/github/frontend-tools -taxi/github/helpnearby_misc -taxi/github/ikars/taxi-client -taxi/github/infra-ansible-external -taxi/github/infra-cfg-logfeller -taxi/github/infra-packages -taxi/github/infra-salt -taxi/github/infra-salt-pillar -taxi/github/infra-secrets-templates -taxi/github/infra-tests-ui -taxi/github/js-integration-api -taxi/github/lavka-analytics -taxi/github/lavka-cswitch-bot -taxi/github/loveka-robotics/libraries/common/math -taxi/github/loveka-robotics/libraries/stm32/stm32pp -taxi/github/matrixnet-dev -taxi/github/pahtest -taxi/github/psql-orm -taxi/github/pymlaas -taxi/github/react-google-maps -taxi/github/react-yandex-maps -taxi/github/reposition-tools -taxi/github/rfc -taxi/github/rida/php -taxi/github/rnis-demo -taxi/github/sboyarintsev/quality_control_nirvana -taxi/github/surge-analytics -taxi/github/taxi-atlas-backend-router -taxi/github/taxi-audit -taxi/github/taxi-client_analytics -taxi/github/taxi-devops-data -taxi/github/taxi_freeswitch -taxi/github/taximeter/android-calc-utils -taxi/github/taximeter/android-price-calc -taxi/github/taximeter/pro-swagger-codegen -taxi/github/taximeter/yandex-taximeter-dotnet -taxi/github/taximeter/yandex-taximeter-dotnet-sdk -taxi/github/taximeter/yandex-taximeter-tvmtool -taxi/github/upport/suptech_lib -taxi/github/upport/yql-query -taxi/github/wfm-tests-ui -taxi/github/yt-local -taxi/goab -taxi/infra/infra-cfg-yasm -taxi/infra/strongbox-conf-testing -taxi/infra/tools -taxi/infranaim -taxi/infranaim/hiring_billing_yql_scripts -taxi/infranaim/infranaim -taxi/infranaim/infranaim-docker-base -taxi/juggler -taxi/lavka/birds -taxi/lavka/b2b/docker -taxi/lavka/b2b/finance -taxi/lavka/b2b/logistic -taxi/lavka/client-analytics/events-spec -taxi/lavka/external_b2b -taxi/lavka/frontend -taxi/lavka/infra -taxi/lavka/js-toolbox -taxi/lavka/platform/hire -taxi/lavka/platform/lavkach -taxi/lavka/platform/matcher/etl -taxi/lavka/platform/matcher/matching-server -taxi/lavka/platform/packages/aeroolib -taxi/lavka/platform/packages/currency2text -taxi/lavka/platform/packages/dbtpl -taxi/lavka/platform/packages/easytap -taxi/lavka/platform/packages/easytaphttp -taxi/lavka/platform/packages/lagg -taxi/lavka/platform/packages/mouse -taxi/lavka/platform/packages/pgupgrade -taxi/lavka/platform/packages/ymlcfg -taxi/lavka/platform/polka -taxi/lavka/platform/pricing-rules -taxi/lavka/platform/wms-front -taxi/lavka/public_clouds -taxi/mobile -taxi/mobile_qa_test_app -taxi/outsource -taxi/pmo -taxi/protocol-proxy -taxi/rate-limiter-agent2 -taxi/signalq -taxi/superweb -taxi/superweb-qa -taxi/suptech_robots -taxi/tariff-editor -taxi/taxi-crm -taxi/yacrm -testpalm -testpers/Honey-Logs-LogHandler -testpers/Honey-Logs-RestarterBack -testpers/Honey-Logs-RestarterFront -testpers/balance_script -testpers/bugs-priority -testpers/disk-backend -testpers/disk-calls-zbp -testpers/disk-web -testpers/feature-matcher-generator -testpers/missed-testcases-markup -testpers/missed-tracker-fields -testpers/personal-service-test-report -testpers/qa-quality-metrics -testpers/stand-adder -testpers/test-account-unblocker -testpers/test-case-matrix -testpers/testcases-count-by-filter -testpers/types-of-testing -testpers/zbp-bugs-counter -toolbox/tunneler -tracker/legacy/gradle-tanker-plugin -travel/frontend -travel/orders/admin -trust/admin -trust/balance-payments -trust/balance-utils -trust/billing-autotesting-venv -trust/billing-ci -trust/billing-ci-env -trust/billing-orchestra -trust/dynamic-cfg-cli -trust/frontend/legacy/mautilus -trust/frontend/legacy/trust-frontend-disk -trust/frontend/legacy/trust-frontend-invest -trust/frontend/legacy/trust-frontend-kinopoisk-plus--smarttv -trust/frontend/legacy/trust-frontend-medicine -trust/frontend/legacy/yb-express-graphite -trust/frontend/legacy/yb-frontend -trust/frontend/legacy/yb-trust-web-form -trust/frontend/trust-frontend -trust/frontend/trust-web-sdk -trust/lib/unified-agent-client-python -trust/lib/yb-processing-holder -trust/lib/yb-python-blackbox -trust/lib/yb-python-ycorba -trust/lib/yb-python-yutil -trust/lib/yb-python-zsi -trust/paysys-callback-router -trust/qyp-tc-agents -trust/simplebrother -trust/simplebrother-elastic -trust/simplebrother-mongo -trust/trust -trust/trust-ci -trust/trust-tests -tv/sre/yandex-tv-xscript-watchdog -velocity/error-booster/error-booster-api -velocity/error-booster/error-booster-app -velocity/error-booster/error-booster-monitoring-config -velocity/error-booster/error-booster-monitoring-config -velocity/error-booster/error-booster-queue -velocity/error-booster/error-counter -velocity/error-booster/error-counter -velocity/error-booster/packages/st-client -velocity/error-booster/presentations -velocity/error-booster/utils -weather/frontend/ci -weather/frontend/front -weather/frontend/white-front -weather/frontend/white-spa -weather/frontend/nginx -weather/frontend/deprecated-render -weather/frontend/render -weather/frontend/tools -ya-profi/backend/cron -ya-profi/backend/legacy -yabs/stat/saltstages -yandex360/frontend -yandex360/yandex-winx -yawe -ydo/frontend -zen/frontend -practicum/services/revisor -billing/frontend/vhost -pay/console-frontend -classifieds/nodejs/nodejs-deb -vh-selfservice -ui/react-static-version -ui/npm-serp -sendr/sendr -infra/ui/yasm-browser-agent -sendr/sendr-mailer -sendr/sendr-lists -sendr/events -billing/balance/mail_templates -sendr/sendr-frontend -infra/ui/deploy -direct/infra/dt-ansible-pull -direct/infra/ansible-playbooks -divkit/public/client/android -taxi/eda/eats-automation/obsolete/autotests_metrics -hrtech/mba/option -direct/infra/dt-ansible-pull-mirror -testpers/qa-field-autofiller -taxi/eda/eats-automation/obsolete/autotests_script -taxi/eats/frontend/eats-ui-kit -classifieds/capa -admins/yandex-media-common-disk-util-check -taxi/eda/eats-automation/obsolete/autotests_web -nirvana/nirvana-job-processor -edadeal/backend/python/higgs -taxi/eda/backend_common-bundle_secrets -hrtech/mba/extern-fss -hrtech/mba/foreigncalc -travel/avia/avia-partners -security/impulse/frontend -market/checkout/market-carter-ammo -yabs/telephony/ui -hrtech/mba/offer-gen -crowdsourcing/crowd-test-services/frontend/services/kolhoz -mba/oebs -mail/setter -infra/ui/qyp -data-ui/documentation-tools -strm/plgo/nginx -addappter/client -addappter/web-addappter -addappter/clids-provider -taxi/eda/eats-automation/obsolete/autotests_utils -taxi/eda/eats-automation/obsolete/autotests_services -taxi/eda/eats-automation/obsolete/autotest_qaapi -taxi/eda/eats-automation/obsolete/autotests_web_front -taxi/eda/backend_platform -hrtech/mba/formula -hrtech/mba/forecast -taxi/eda/backend_go-module_h3 -hrtech/mba/loan -infra/ui/netmon -taxi/outsource/projects/campus/python3 -taxi/eda/spec-api -classifieds/infra/gojay -taxi/eda/eats-automation/junk/test_arcadia_migration -classifieds/mockritsa-ui -mba/qa/billing-conf -mba/qa/schema-main -mba/qa/regress-config -mba/qa/oebsweb -mba/qa/scheduler -mba/qa/scheduler-tasks -mba/qa/installScriptsJar -mba/qa/oebs-internal -mba/qa/equipment -mba/qa/configurator-data -mba/qa/mockintosh -mba/qa/archive -mba/qa/webtools-udb -mba/qa/scripts -mba/qa/marathon-docker -flutter -classifieds/mag -extsearch/video/robot/rt_thdb -extsearch/video/robot/rt_transcoder/sig_fetcher -extsearch/video/robot/rt_transcoder/sig_reduce -yweb/news/dupsd/processors -yweb/news/rt_robot/articles_driver -yweb/news/rt_robot/common -yweb/news/rt_robot/processors -zen/external/bigrt -zen/bifrost/zen_resharder -mba/admin/oracle_sql/post_reload_sqls/ -classifieds/infra/terraform -robot/smelter/frontend -mba/oebs -mba/infra/testing diff --git a/build/rules/autocheck.isolated_projects b/build/rules/autocheck.isolated_projects deleted file mode 100644 index babf3869e3..0000000000 --- a/build/rules/autocheck.isolated_projects +++ /dev/null @@ -1,95 +0,0 @@ -# Autocheck isolated projects -# The list of top level directories which MUST not be used in other projects - -alice/alice_db/docs -alice/div-renderer -alice/divkt_renderer -alice/matrix/docs -alice/personal_cards -alice/ydb_orm/docs -arcanum/image-render -arcanum/server -browser/backend -browser/infra/services/buildwatcher -cdn/docs -ci/internal -classifieds/design-docs -classifieds/docs -classifieds/infra -classifieds/realty -cloud/billing/deploy -cloud/billing/python/billing -cloud/mdb/backstage -cloud/mdb/bootstrap -cloud/mdb/cli -cloud/mdb/datacloud/docker -cloud/mdb/dbaas_worker -cloud/mdb/e2e-tests -cloud/mdb/jenkins-jobs -cloud/mdb/jenkins-pkgs -cloud/mdb/juggler-config -cloud/mdb/mdb-cli -cloud/mdb/mdb-maintenance -cloud/mdb/mdb-reaper -cloud/mdb/mdb-vpc -cloud/mdb/solomon-charts -devtools/distbuild/sre -devtools/gitlab/roles -devtools/intellij -devtools/mobile/merge-queue -devtools/observability/pm-api -devtools/observability/new_logging -devtools/snowden -direct/docs -direct/solo -education/schoolbook/services -intranet/trip -maps/config/apiteka -maps/config/balancer -maps/config/ecstatic -maps/config/quotateka -maps/config/ratelimiter -market/fps -market/mbi/mbi/partner-api -market/sre/conf/salt/data -mba/yamon/internal -mba/common/internal -mba/qa/billing-conf -mba/qa/schema-main -mba/qa/regress-config -mba/qa/oebsweb -mba/qa/scheduler -mba/qa/scheduler-tasks -mba/qa/installScriptsJar -mba/qa/oebs-internal -mba/qa/equipment -mba/qa/configurator-data -mba/qa/mockintosh -mba/qa/archive -mba/qa/webtools-udb -mba/qa/scripts -mba/qa/marathon-docker -nirvana/dc/docs -nirvana/docs -nirvana/processors/starlark_processor/cmd/starlark_processor -nirvana/reactor/docs -nirvana/utils -nirvana/vh3/cli -nirvana/vh3/docs -docs/nirvana-onboarding -payplatform/spirit -plus/city -quasar/backend -quasar/quasmodrom -quasar/infra/tasklets -observability/tracing -velocity/error-booster -samsaravteam/chat-bots -serp/renderer/templates-manual-releases -serp/renderer/templates-releases -crowdsourcing/bbrules-root -mba/admin/oracle_sql/post_reload_sqls/ -haas/m3/eng-configs -mba/oebs -mba/infra/testing -mba/fin/isolated_projects diff --git a/build/rules/base_layers.policy b/build/rules/base_layers.policy deleted file mode 100644 index b4817bb8bd..0000000000 --- a/build/rules/base_layers.policy +++ /dev/null @@ -1,6 +0,0 @@ -ALLOW .* -> base_layers - -# This will allow reusing libraries needed for build in the future -# ALLOW base_layers -> build - -DENY base_layers -> .* diff --git a/build/rules/catboost.policy b/build/rules/catboost.policy deleted file mode 100644 index b86c93f325..0000000000 --- a/build/rules/catboost.policy +++ /dev/null @@ -1,5 +0,0 @@ -ALLOW catboost -> catboost - -DENY .* -> catboost/private - -DENY .* -> catboost/yandex_specific/private diff --git a/build/rules/contrib_deprecated.policy b/build/rules/contrib_deprecated.policy deleted file mode 100644 index 0653a48c9b..0000000000 --- a/build/rules/contrib_deprecated.policy +++ /dev/null @@ -1,76 +0,0 @@ -# == Rules for contrib/deprecated section == -# -# NOTE: rules should be ordered from specific to generic (first matching rule is used) -# See rule syntax docs: https://wiki.yandex-team.ru/devrules/overall/peerdirprohibition/ - -ALLOW library/cpp/tf/mkldnn -> contrib/deprecated/onednn - -ALLOW mds/libs/blackhole -> contrib/deprecated/libcds -ALLOW mds -> contrib/deprecated/folly -ALLOW mds -> contrib/deprecated/wangle - -# Use newer version from contrib/libs/mongo-cxx-driver instead -ALLOW mds/mastermind/ -> contrib/deprecated/mongo-cxx-driver - -# libpqtypes is not being developed since 2016 and is known to have bugs. -# Consider using libpqxx / maps/libs/sql_chemistry instread. -ALLOW mds/libs/postgres -> contrib/deprecated/libpqtypes -ALLOW mds/libs/s3 -> contrib/deprecated/libpqtypes - -# Use library/cpp/json (a rapidjson proxy) instead -ALLOW alice/cuttlefish/library/client_proto_converter -> contrib/deprecated/jsoncpp -ALLOW mail/ -> contrib/deprecated/jsoncpp -ALLOW quasar/backend/ -> contrib/deprecated/jsoncpp -ALLOW smart_devices/ -> contrib/deprecated/jsoncpp -ALLOW speechkit/ -> contrib/deprecated/jsoncpp -ALLOW yandex_io/ -> contrib/deprecated/jsoncpp - -# mimepp is not being developed since 2012 and requires paid license -ALLOW mail/so/ -> contrib/deprecated/mimepp -ALLOW mail/so/spamstop/ -> contrib/deprecated/udns - -# TODO(thegeorg@): remove this specifying better policies -ALLOW .* -> contrib/deprecated/python - -ALLOW metrika/core/programs/mobile-redirect -> contrib/deprecated/libctpp - -# argon2 is not maintained since 20190702 and can not be build for ARMv8. -# consider using library/cpp/digest/argonish instead -# -# Remove this exception after KIKIMR-13008 -ALLOW kikimr/library/login -> contrib/deprecated/argon2 - -# Though galloc is unmaintained version of tcmalloc, -# it can not be universally replaced with the latter. -ALLOW library/cpp/malloc/galloc -> contrib/deprecated/galloc - -# Old version of V8 may process client code differently and -# has a different project stucture, awaiting manual transition by users. -ALLOW fintech/risk -> contrib/deprecated/v8 -ALLOW tools/jsv8 -> contrib/deprecated/v8 -ALLOW travel/rasp/library/python/hemi -> contrib/deprecated/v8 -ALLOW yweb/robot/indexer -> contrib/deprecated/v8 - -# clickhouse_data_streams_compat is a lib with some outdated/removed interfaces/classes from CH. -# Is should be deleted when all code in arcadia migrates to new CH interfaces/classes. -ALLOW yt/chyt/server -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/libs/sqxxl -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/libs/cloud -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/libs/traficsource -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/libs/logbroker-persqueue-import -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/programs/mobile-logs-api-export-server/tests/functional/yt-uploader -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/programs/visits4d-leader/bin -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW metrika/core/libs/metrikatraficsource -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW yql/udfs/common/clickhouse -> contrib/deprecated/clickhouse_data_streams_compat -ALLOW kikimr/kikhouse_new/lib -> contrib/deprecated/clickhouse_data_streams_compat - -ALLOW metrika/core/libs -> contrib/deprecated/mysqlxx -ALLOW metrika/core/programs -> contrib/deprecated/mysqlxx - -# Default policies: -# -# Do not restrict contrib -# All peerdirs to contrib/deprecated from outside are prohibited -# -ALLOW contrib -> contrib/deprecated -DENY .* -> contrib/deprecated diff --git a/build/rules/contrib_deps.policy b/build/rules/contrib_deps.policy deleted file mode 100644 index 0e1f2c023f..0000000000 --- a/build/rules/contrib_deps.policy +++ /dev/null @@ -1,93 +0,0 @@ -ALLOW contrib/clickhouse -> library/cpp/consistent_hashing -ALLOW contrib/clickhouse -> library/cpp/containers/absl_flat_hash -ALLOW contrib -> contrib -ALLOW contrib -> build -ALLOW contrib -> library/python/resource -ALLOW contrib -> library/cpp/testing/unittest_main -ALLOW contrib -> library/cpp/testing/unittest -ALLOW contrib -> library/cpp/getopt -ALLOW contrib -> library/cpp/resource -ALLOW contrib -> library/cpp/charset -ALLOW contrib -> library/cpp/svnversion -ALLOW contrib -> certs -ALLOW contrib/libs/.*/ut -> library -ALLOW contrib/restricted/ImageMagickMDS/ut -> library -ALLOW contrib/java/.*/ut -> devtools/jtest -ALLOW contrib/java/.*/ut -> devtools/junit-runner -ALLOW contrib/java/.*/ut -> devtools/junit5-runner -ALLOW contrib/python -> library/python/resource -ALLOW contrib/tools/cython/Cython -> library/python/resource -ALLOW contrib/libs/python -> library/python/symbols/module -ALLOW contrib/libs/python -> library/python/symbols/uuid -ALLOW contrib/libs/python -> library/python/symbols/python -ALLOW contrib/libs/python -> library/python/symbols/libc -ALLOW contrib/libs/python -> library/python/runtime -ALLOW contrib/libs/python -> library/python/runtime_py3 -ALLOW contrib/tools/python3/pycc -> library/python/runtime_py3 -ALLOW contrib/python/.*/(_?)test(s?) -> library/python/testing/yatest_common -ALLOW contrib/python/.*/(_?)test(s?) -> library/python/import_test -ALLOW contrib/python/click -> library/python/symbols/python -ALLOW contrib/java/ru/yandex/market -> (market)|(maps/doc/proto/yandex/maps/proto) -ALLOW contrib/libs/tf -> library/python/testing/gtest -ALLOW contrib/libs/tf/tests/test_vars_to_const/cpp_check_inference -> maps/libs/common -ALLOW contrib/libs/tf/tests/test_vars_to_const/cpp_check_inference -> yandex/maps/common -ALLOW contrib/restricted/libtorrent -> maps/libs/fastbone -ALLOW contrib/python/transfer_manager_client -> transfer_manager/client -ALLOW contrib/(deprecated/)?python/django -> library/python/django -ALLOW contrib/(deprecated/)?python/django -> library/python/gunicorn -ALLOW contrib/python/python-magic -> library/python/symbols/libmagic -ALLOW contrib/python/typecode -> library/python/symbols/libmagic -ALLOW contrib/tools/jdk/test -> devtools/ya/yalibrary/tools -ALLOW contrib/libs/clang12/tools/extra/clang-tidy/tool -> library/cpp/clang_tidy -ALLOW contrib/libs/clang14/tools/extra/clang-tidy/tool -> library/cpp/clang_tidy -ALLOW contrib/libs/inja -> library/cpp/scheme -ALLOW contrib/libs/geos/capi/ctypes -> library/python/ctypes -ALLOW contrib/libs/leveldb -> library/cpp/deprecated/mapped_file -ALLOW contrib/libs/leveldb -> library/cpp/logger -ALLOW contrib/libs/leveldb -> library/cpp/digest/crc32c -ALLOW contrib/libs/lua -> library/cpp/archive -ALLOW contrib/libs/phonedetect/src -> library/cpp/digest/md5 -ALLOW contrib/python/certifi -> library/python/certifi -ALLOW contrib/python/horovod/horovod/common/syms -> library/python/symbols/registry -ALLOW contrib/python/opensfm -> library/cpp/vl_feat -ALLOW contrib/python/Wand/ImageMagick -> library/python/symbols/registry -ALLOW contrib/nginx/modules/nginx-rtmp-module -> library/cpp/json -ALLOW contrib/python/gino -> library/python/pyscopg2 -ALLOW contrib/python/psycopg2/py2/tests -> mail/devpack -ALLOW contrib/python/psycopg2/py3/tests -> mail/devpack -ALLOW contrib/python/asn1crypto -> library/python/symbols/crypto -ALLOW contrib/deprecated/python/win-unicode-console -> library/python/symbols/win_unicode_console -ALLOW contrib/python/pycryptodome -> library/python/symbols/registry -ALLOW contrib/python/coverage -> library/python/testing/coverage_utils -ALLOW contrib/python/dill -> library/python/symbols/dill - -ALLOW contrib/tests/python -> library/python/fs - -ALLOW contrib/tests/subversion -> vcs/svn/run -ALLOW contrib/tests/subversion -> vcs/svn/test - -ALLOW contrib/tests/subvertpy -> devtools/ya/exts -ALLOW contrib/tests/subvertpy -> devtools/ya/yalibrary/svn/testing -ALLOW contrib/tests/subvertpy -> library/python/windows -ALLOW contrib/tests/subvertpy -> vcs/svn/wc/client - -ALLOW contrib/tools/unbound -> infra/libs -ALLOW contrib/tools/unbound -> library/cpp/proto_config - -ALLOW contrib/deprecated/python/marshmallow-mongoengine/tests -> library/python/pytest-mongodb -ALLOW contrib/python/marshmallow-mongoengine/tests -> library/python/pytest-mongodb - -# contrib tests is written by us, hence everything is allowed -ALLOW contrib/tests -> .* - -# re2_st is a modified version of re2 library generated in cmake during ClickHouse build. -# library/cpp/re2_st is a pseudo-library which mimic re2_st interface via original re2 library. -# It should not be used outside of ClickHouse build. -ALLOW contrib/clickhouse -> library/cpp/re2_st -DENY .* -> library/cpp/re2_st -# clickhouse_h3_compat is another pseudo-library for ClickHouse, which is used to map -# it's master version unstable H3 API to our stable H3 v3.x. -ALLOW contrib/clickhouse -> library/cpp/clickhouse_h3_compat -DENY .* -> library/cpp/clickhouse_h3_compat - -DENY contrib -> .* diff --git a/build/rules/contrib_java.policy b/build/rules/contrib_java.policy deleted file mode 100644 index bfffebf254..0000000000 --- a/build/rules/contrib_java.policy +++ /dev/null @@ -1,9 +0,0 @@ -ALLOW metrika/java/api -> contrib/java/patched/com/android/tools/r8 -ALLOW metrika/java/api -> contrib/java/patched/com/ryantenney/metrics/metrics-spring -ALLOW direct -> contrib/java/patched/io/leangen/graphql/spqr -ALLOW direct -> contrib/java/patched/com/github/shyiko/mysql-binlog-connector-java -ALLOW contrib/java/patched/com/android/tools/r8 -> contrib/java/patched/com/android/tools/r8 -ALLOW contrib/java/patched/com/ryantenney/metrics/metrics-spring -> contrib/java/patched/com/ryantenney/metrics/metrics-spring -ALLOW contrib/java/patched/io/leangen/graphql/spqr -> contrib/java/patched/io/leangen/graphql/spqr -ALLOW contrib/java/patched/com/github/shyiko/mysql-binlog-connector-java -> contrib/java/patched/com/github/shyiko/mysql-binlog-connector-java -DENY .* -> contrib/java/patched diff --git a/build/rules/contrib_python.policy b/build/rules/contrib_python.policy deleted file mode 100644 index b30209e91d..0000000000 --- a/build/rules/contrib_python.policy +++ /dev/null @@ -1,673 +0,0 @@ -# django-1.11 deprecation -ALLOW contrib/python/.*/tests? -> contrib/python/django/django-1.11 -ALLOW contrib/deprecated/python/.*/tests? -> contrib/python/django/django-1.11 -ALLOW devtools/dummy_arcadia/django_settings -> contrib/python/django/django-1.11 -ALLOW devtools/signer/signer -> contrib/python/django/django-1.11 -ALLOW douber/backend -> contrib/python/django/django-1.11 -ALLOW infra/cauth/server/common -> contrib/python/django/django-1.11 -ALLOW intranet/audit/src -> contrib/python/django/django-1.11 -ALLOW intranet/crt/tests -> contrib/python/django/django-1.11 -ALLOW intranet/crt -> contrib/python/django/django-1.11 -ALLOW intranet/dogma/dogma -> contrib/python/django/django-1.11 -ALLOW intranet/magiclinks/src -> contrib/python/django/django-1.11 -ALLOW intranet/pypi/src -> contrib/python/django/django-1.11 -ALLOW intranet/qooker/src -> contrib/python/django/django-1.11 -ALLOW intranet/sync_tools/tests -> contrib/python/django/django-1.11 -ALLOW library/python/django-idm-api/tests/django_1 -> contrib/python/django/django-1.11 -ALLOW library/python/django_russian -> contrib/python/django/django-1.11 -ALLOW library/python/python-django-yauth/tests -> contrib/python/django/django-1.11 -ALLOW mssngr/botplatform/src/bots/common/fanout -> contrib/python/django/django-1.11 -ALLOW mssngr/botplatform/src/bots/common -> contrib/python/django/django-1.11 -ALLOW passport/backend/contrib/django_contrib_comments -> contrib/python/django/django-1.11 -ALLOW passport/infra/daemons/grantushka -> contrib/python/django/django-1.11 -ALLOW plus/gift/pdfgen -> contrib/python/django/django-1.11 -ALLOW plus/utils/tests -> contrib/python/django/django-1.11 -ALLOW quality/antifraud/viewers/antifraud_viewer/lib -> contrib/python/django/django-1.11 -ALLOW quality/functionality/chats/common/bots -> contrib/python/django/django-1.11 -ALLOW quality/functionality/chats/feedback/src/feedback -> contrib/python/django/django-1.11 -ALLOW quality/functionality/chats/ycm/src/ycm -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/libs/storage -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/libs/wutils -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/rich_snippets/migrations -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/storage/migrations -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/storage -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/turbo/migrations -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/turbo -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/ya_user/migrations -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/apps/ya_user -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server/core -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/server -> contrib/python/django/django-1.11 -ALLOW quality/functionality/parsepl/testing/server -> contrib/python/django/django-1.11 -ALLOW smarttv/alice/tv_proxy/bin -> contrib/python/django/django-1.11 -ALLOW smarttv/alice/tv_proxy/proxy -> contrib/python/django/django-1.11 -ALLOW smarttv/alice/tv_proxy/tests -> contrib/python/django/django-1.11 -ALLOW smarttv/alice/tv_proxy -> contrib/python/django/django-1.11 -ALLOW statbox/marketing_office/.* -> contrib/python/django/django-1.11 -ALLOW travel/avia/.* -> contrib/python/django/django-1.11 -ALLOW travel/rasp/admin -> contrib/python/django/django-1.11 -ALLOW travel/rasp/library/python/common -> contrib/python/django/django-1.11 -ALLOW travel/rasp/library/python/sitemap -> contrib/python/django/django-1.11 -ALLOW travel/library/python/entrypoint -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/advisor -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/common/tests -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/demo -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/launcher -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/lockscreen -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/project -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/setup_wizard -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/tests/recipe.inc -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/weather -> contrib/python/django/django-1.11 -ALLOW yaphone/advisor/widget -> contrib/python/django/django-1.11 -ALLOW yaphone/dialer/dialer/tests -> contrib/python/django/django-1.11 -ALLOW yaphone/dialer/dialer -> contrib/python/django/django-1.11 -ALLOW yaphone/dialer/project/bin -> contrib/python/django/django-1.11 -ALLOW yaphone/dialer/project -> contrib/python/django/django-1.11 -ALLOW yaphone/utils/geo -> contrib/python/django/django-1.11 -DENY .* -> contrib/python/django/django-1.11 - -ALLOW maps -> maps/contrib -DENY .* -> maps/contrib - -ALLOW contrib/deprecated/python/ruamel.ordereddict/tests -> contrib/deprecated/python/ruamel.ordereddict -ALLOW contrib/python/ruamel.yaml -> contrib/deprecated/python/ruamel.ordereddict -DENY .* -> contrib/deprecated/python/ruamel.ordereddict - -ALLOW sandbox/projects/CompareYmakeDump -> contrib/deprecated/python/diff2html -ALLOW sandbox/projects/antirobot/DiffResources -> contrib/deprecated/python/diff2html -ALLOW yql/udfs/common/python/python_arc -> contrib/deprecated/python/diff2html -DENY .* -> contrib/deprecated/python/diff2html - -# Sophos SDK and engine are distributed under proprietary license hence -# usage restriction -ALLOW yweb/antimalware/ -> contrib/libs/sophos -DENY .* -> contrib/libs/sophos - -# contrib/python/backports should not be used in new projects because we want -# to start new projects on Py3 -ALLOW contrib/deprecated/python/backports.tempfile -> contrib/deprecated/python/backports.weakref -DENY .* -> contrib/deprecated/python/backports.weakref - -ALLOW contrib/python/ -> contrib/python/thrift -ALLOW search/mon/wabbajack/libs/generated/iss3 -> contrib/python/thrift -ALLOW search/mon/wabbajack/libs/modlib/api_wrappers/casher -> contrib/python/thrift -DENY .* -> contrib/python/thrift - -ALLOW antiadblock/libs/tornado_redis -> contrib/python/toredis -ALLOW yabs/amazon/cache_proxy -> contrib/python/toredis -ALLOW yql/udfs/common/python/python_arc -> contrib/python/toredis -DENY .* -> contrib/python/toredis - -# contrib/deprecated/python/MySQL-python dosen't support Python 3, use mysqlclient-python -# or pymysql instead of this. -ALLOW adfox/amacs/tests/functional/libs/builders -> contrib/deprecated/python/MySQL-python -ALLOW adfox/amacs/tests/functional/libs/config -> contrib/deprecated/python/MySQL-python -ALLOW adfox/amacs/tests/functional/libs/db -> contrib/deprecated/python/MySQL-python -ALLOW adfox/amacs/tests/functional/libs/marshaller -> contrib/deprecated/python/MySQL-python -ALLOW adfox/amacs/tests/functional/libs/models -> contrib/deprecated/python/MySQL-python -ALLOW adfox/amacs/tests/functional/utils -> contrib/deprecated/python/MySQL-python -ALLOW adfox/rtd/reports -> contrib/deprecated/python/MySQL-python -ALLOW adfox/samogon/servants/monitoring/uniques_monitoring -> contrib/deprecated/python/MySQL-python -ALLOW ads/bsyeti/bb_viewer/viewer -> contrib/deprecated/python/MySQL-python -ALLOW ads/libs/py_core -> contrib/deprecated/python/MySQL-python -ALLOW ads/ml_monitoring/alerts/lib -> contrib/deprecated/python/MySQL-python -ALLOW ads/ml_monitoring/lib/mysql -> contrib/deprecated/python/MySQL-python -ALLOW april/badb -> contrib/deprecated/python/MySQL-python -ALLOW contrib/deprecated/python/MySQL-python/test -> contrib/deprecated/python/MySQL-python -ALLOW contrib/deprecated/python/MySQL-python -> contrib/deprecated/python/MySQL-python -ALLOW dict/ontodb/tools/fields_diff/lib -> contrib/deprecated/python/MySQL-python -ALLOW maps/streetview/backoffice/lib -> contrib/deprecated/python/MySQL-python -ALLOW market/sre/tools/cs_mysql_monitoring/mysql_monitoring -> contrib/deprecated/python/MySQL-python -ALLOW metrika/core/monitoring/mobile-logs-api-export-generator-check -> contrib/deprecated/python/MySQL-python -ALLOW passport/backend/social -> contrib/deprecated/python/MySQL-python -ALLOW passport/infra/daemons/yasmsapi/db -> contrib/deprecated/python/MySQL-python -ALLOW testenv/core -> contrib/deprecated/python/MySQL-python -ALLOW testenv/recipes/ut -> contrib/deprecated/python/MySQL-python -# avia task to migrate from MySQL-python https://st.yandex-team.ru/RASPTICKETS-18201 -ALLOW travel/avia/.* -> contrib/deprecated/python/MySQL-python -ALLOW travel/library/recipe_utils -> contrib/deprecated/python/MySQL-python -ALLOW travel/rasp/admin -> contrib/deprecated/python/MySQL-python -ALLOW travel/rasp/library/common -> contrib/deprecated/python/MySQL-python -ALLOW travel/rasp/library/python/common -> contrib/deprecated/python/MySQL-python -ALLOW travel/rasp/library/common_recipe -> contrib/deprecated/python/MySQL-python -ALLOW travel/rasp/mysql_dumper/lib -> contrib/deprecated/python/MySQL-python -ALLOW trust/emulator/servant -> contrib/deprecated/python/MySQL-python -ALLOW yabs/qa/yabs_b2b_tank/qabs/b2b -> contrib/deprecated/python/MySQL-python -ALLOW yabs/server/test/tools/lua_test_generator -> contrib/deprecated/python/MySQL-python -ALLOW yabs/server/tools/debug_cookie_mysql -> contrib/deprecated/python/MySQL-python -ALLOW yweb/antimalware/visual_html_parser/yandex-search-antivirus-common -> contrib/deprecated/python/MySQL-python -ALLOW yweb/news/news_back/api/scripts/migrate_scripts_common -> contrib/deprecated/python/MySQL-python -ALLOW yweb/news/support/viewer -> contrib/deprecated/python/MySQL-python -DENY .* -> contrib/deprecated/python/MySQL-python - -ALLOW contrib/deprecated/python/mipp/tests -> contrib/deprecated/python/mipp -ALLOW contrib/deprecated/python/mpop -> contrib/deprecated/python/mipp -ALLOW contrib/deprecated/python/mpop/mpop/tests -> contrib/deprecated/python/mpop -ALLOW weather/workers/common/clean_satellite/utils -> contrib/deprecated/python/mpop -ALLOW yql/udfs/common/python/python_arc -> contrib/deprecated/python/mipp -DENY .* -> contrib/deprecated/python/mipp -DENY .* -> contrib/deprecated/python/mpop - -DENY .* -> contrib/python/pdbpp - -ALLOW contrib/python/pdbpp -> contrib/python/fancycompleter -DENY .* -> contrib/python/fancycompleter - -ALLOW infra/procman -> contrib/python/skynet_pyro4 -ALLOW skynet -> contrib/python/skynet_pyro4 -DENY .* -> contrib/python/skynet_pyro4 - -ALLOW contrib/deprecated/python/cyordereddict -> contrib/deprecated/python/cyordereddict -ALLOW contrib/deprecated/python/cyordereddict/cyordereddict/tests -> contrib/deprecated/python/cyordereddict -ALLOW infra/awacs/vendor/awacs -> contrib/deprecated/python/cyordereddict -ALLOW juggler/juggler_client/jclient -> contrib/deprecated/python/cyordereddict -ALLOW juggler/juggler_client -> contrib/deprecated/python/cyordereddict -ALLOW juggler/libjuggler -> contrib/deprecated/python/cyordereddict -ALLOW juggler/netmon/agent/agent -> contrib/deprecated/python/cyordereddict -ALLOW mail/python/huge_py2 -> contrib/deprecated/python/cyordereddict -ALLOW sprav/protos/model -> contrib/deprecated/python/cyordereddict -ALLOW yql/udfs/common/python/python_arc -> contrib/deprecated/python/cyordereddict -DENY .* -> contrib/deprecated/python/cyordereddict - -ALLOW contrib/deprecated/python/xmpppy -> contrib/deprecated/python/xmpppy -ALLOW ads/libs/py_notifier -> contrib/deprecated/python/xmpppy -ALLOW yql/udfs/common/python/python_arc -> contrib/deprecated/python/xmpppy -DENY .* -> contrib/deprecated/python/xmpppy - -ALLOW contrib/python/fancycompleter -> contrib/python/pyrepl -DENY .* -> contrib/python/pyrepl - -# because match with contrib/python/pycrypto -ALLOW .* -> contrib/python/pycryptodome -# pycrypto deprecated -ALLOW intranet/domenator/src -> contrib/python/pycrypto -ALLOW intranet/yandex_directory/src -> contrib/python/pycrypto -ALLOW addappter/backend -> contrib/python/pycrypto -ALLOW adfox -> contrib/python/pycrypto -ALLOW alice/vins/api -> contrib/python/pycrypto -ALLOW antiadblock/cryprox/cryprox -> contrib/python/pycrypto -ALLOW balancer/test/functional/aab_cookie_verify -> contrib/python/pycrypto -ALLOW billing/balance_utils -> contrib/python/pycrypto -ALLOW billing/balance_utils/tests -> contrib/python/pycrypto -ALLOW billing/snout/yb_snout_api -> contrib/python/pycrypto -ALLOW crypta -> contrib/python/pycrypto -ALLOW devtools/experimental/addappter/addappter -> contrib/python/pycrypto -ALLOW direct/infra/direct-utils/direct-apps-juggler/share/direct-apps-juggler/sandbox/common -> contrib/python/pycrypto -ALLOW infra/cqudp -> contrib/python/pycrypto -ALLOW infra/portoshell -> contrib/python/pycrypto -ALLOW mds/pymds -> contrib/python/pycrypto -ALLOW mds/s3/s3_mds_proxy -> contrib/python/pycrypto -ALLOW metrika/core -> contrib/python/pycrypto -ALLOW mlp/mail -> contrib/python/pycrypto -ALLOW mssngr/router/tools/export_legacy_messages -> contrib/python/pycrypto -ALLOW passport/infra/daemons/blackbox/ut/totp_manual/tests -> contrib/python/pycrypto -ALLOW quality/functionality/turbo/merger/ut/medium -> contrib/python/pycrypto -ALLOW samogon -> contrib/python/pycrypto -ALLOW sandbox/common -> contrib/python/pycrypto -ALLOW sandbox/virtualenv -> contrib/python/pycrypto -ALLOW sandbox/yasandbox -> contrib/python/pycrypto -ALLOW skynet/library -> contrib/python/pycrypto -ALLOW travel/hotels/tools/searcher_client -> contrib/python/pycrypto -ALLOW travel/buses/connectors -> contrib/python/pycrypto -ALLOW trust/emulator -> contrib/python/pycrypto -ALLOW trust/processing_holder -> contrib/python/pycrypto -ALLOW trust/tests/tests_trust_bindings -> contrib/python/pycrypto -ALLOW yabs/server/tools/banner_user_choice -> contrib/python/pycrypto -ALLOW yabs/server/test -> contrib/python/pycrypto -ALLOW ydo/database/active_record -> contrib/python/pycrypto -ALLOW yweb/antispam/cid -> contrib/python/pycrypto -ALLOW mail/payments/payments -> contrib/python/pycrypto -DENY .* -> contrib/python/pycrypto - -ALLOW contrib/python/Geohash/tests -> contrib/python/Geohash -ALLOW yql/udfs/common/python/python_arc -> contrib/python/Geohash -DENY .* -> contrib/python/Geohash - -# because library will not work without external dependencies - IBM MQ -# See https://st.yandex-team.ru/CONTRIB-1854 and pymqi README for details -ALLOW travel/avia -> contrib/python/pymqi -DENY .* -> contrib/python/pymqi - -# https://st.yandex-team.ru/CONTRIB-1839 -ALLOW datalens/backend/app/dls -> contrib/python/quart -DENY .* -> contrib/python/quart - -# https://st.yandex-team.ru/CONTRIB-2012 -ALLOW maps/geomarketing -> contrib/python/facebook-business -ALLOW sandbox/projects/maps/geomarketing -> contrib/python/facebook-business -ALLOW jupytercloud/arcadia_kernel/default -> contrib/python/facebook-business -ALLOW jupytercloud/arcadia_kernel/default_yql -> contrib/python/facebook-business -ALLOW geoproduct/amocrm/fb_leads -> contrib/python/facebook-business -ALLOW statbox/statkey -> contrib/python/facebook-business -ALLOW quality/ab_testing/cofe/bin/lib/files/py3/cofe_kernel_yql -> contrib/python/facebook-business -DENY .* -> contrib/python/facebook-business - -# https://st.yandex-team.ru/CONTRIB-1954 -ALLOW contrib/python/glom -> contrib/python/face$ -DENY .* -> contrib/python/face$ - -# https://st.yandex-team.ru/CONTRIB-1918 -ALLOW contrib/python/webstruct -> contrib/python/webstruct -ALLOW yweb/antimalware/direct/fraud_html_detector -> contrib/python/webstruct -DENY .* -> contrib/python/webstruct - -ALLOW contrib/tools/unbound -> contrib/tools/unbound -DENY .* -> contrib/tools/unbound - -# https://st.yandex-team.ru/CONTRIB-2042 -ALLOW addappter/backend/addappter_backoffice -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW addappter/backend/addappter/monitoring/juggler -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW addappter/backend/addappter -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW addappter/backend/migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW addappter/libs/fixtures/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/libs/builders -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/libs/config -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/libs/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/libs/marshaller -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/libs/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/amacs/tests/functional/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/infra/amacs_config/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/infra/amacs_config/migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/pdb3/discovery -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW adfox/rtd/reports -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/emily/viewer/backend/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW logos/viewy/yagraph/Backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/ml_monitoring/api/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/quality/phf/phf_direct_loader/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/watchman/timeline/api/bin/timeline_db_manager -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/watchman/timeline/api/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ads/watchman/timeline/api/migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antiadblock/configs_api/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antiadblock/postgres_local/tests_recipe -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antiadblock/postgres_local -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/forms -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/library -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/management/commands -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/management -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/middlewares -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/models/block -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/models/history -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb/cbb/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/forms -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/library -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/management/commands -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/management -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/middlewares -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/models/block -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/models/history -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW antirobot/cbb_django/cbb/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/agency_rewards/agency_rewards -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/balance/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/balance_utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/balance -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/dcsaap/backend/celery_app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/dcs/dcs -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/dcs/tools/devserver -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/dwh/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/nirvana_reports/tools/simple_email_report/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/snout/yb_snout_api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/snout/yb_snout_proxy -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW billing/yb_reports_monitorings/yb_reports_monitorings -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW browser/infra/services/swarm_cache/backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW cloud/support/dutybot -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW cloud/support/mdb-support-bot -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW contrib/python/databases -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW contrib/python/graphene-sqlalchemy/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW contrib/python/luigi -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW contrib/python/sqltap -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW crypta/adhoc/smarts/backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW crypta/graph/toloka/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW crypta/graph/v1/python -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW crypta/web/dating/back -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW devtools/experimental/agency_rewards/agency_rewards -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW dict/misspell/fixlist_manager -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW dict/mt/eval/eval_viewer/lib/dao/pg -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW dict/mt/make/modules/corpus/alchemy -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW dict/ontodb/tools/ontodbfixes/migration/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW drive/analytics/pybase/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW education/media_platform/services/api/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW education/yaschool/services/sections/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW extsearch/images/robot/rtrobot/panel -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW extsearch/video/robot/youtube_grabber/ugc/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW geoproduct/geocrm_search/data_import -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW geoproduct/geocrm_search/engine -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW geoproduct/geocrm_search/import_app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW geoproduct/geocrm_search/orm -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW haas/oebs_sync/apply_item_changes_daemon -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW haas/oebs_sync/daemon_lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW haas/oebs_sync/get_item_changes_daemon -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW health/articles/articles_pipeline/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW health/yamd/health_backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW health/yamd/health_import -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW health/yamd/libs/data_layer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW health/yamd/pills_postgresql_db/data_layer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW infra/cores/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/watcher/alembic -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/watcher/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/domenator/migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/trip/alembic -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/trip/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/vconf/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/wiki/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/wiki/src.template -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW intranet/yandex_directory/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW keyboard/analytics/toloka/daemon/backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/callmeback/callmeback/stages/api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/callmeback/callmeback/stages/db_stats -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/callmeback/callmeback/stages/worker -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/contrib/asyncpgsa -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/contrib/python/aiopg/aiopg/sa -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/python/huge_py3 -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/python/theatre/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/qmgr/to_review/components/io/storage/save/py_prototype -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/qmgr/to_review/components/io/storage/schema/py_prototype/tests/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/qmgr/to_review/components/io/storage/schema/py_prototype -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/qmgr/to_review/components/io/storage/schema/tools/qdb -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mail/so/daemons/knn_bot -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/adv_store/v2 -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/adv_store -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/billing_proxy -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/common/pg_engine/pytest -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/common/pgswim/pytest -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/farmacy/store/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/geosmb/booking_yang -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/geosmb/doorman/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/geosmb/promoter/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/geosmb/scenarist -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/manul -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/points/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/stat_controller/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/statistics/dashboard/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps_adv/warden/server -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/mvrp_solver/backend/async_backend/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/tools/find_max_number_of_concurrent_tasks -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/tools/segment_distances_computation -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/sql/scripts/copy_eta_url_to_tracking_token -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/sql/scripts/copy_order_sharing -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/sql/scripts/copy_predefined_sequence -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/sql/scripts/link_sms_to_tracking_tokens -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/sql/scripts/tracking_token_copy_created_at_to_time -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/tools/courier_positions -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend/tools/db_tool -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/b2bgeo/ya_courier/backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/factory/fastcgi/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/factory/pylibs/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/photos/backoffice/tasks/pylibs/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/photos/pylibs/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/renderer/stylerepo/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/streetview/backoffice/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/streetview/ugc/pylibs/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/mapspro/libs/python/pymod -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/stat/arm_dump_to_yt -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/stat/dump_feedback_to_yt -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/stat/dump_to_yt/social -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/stat/fbapi_feedback -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW maps/wikimap/stat/nmaps_news_subscribers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/front/hansel -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/idx/marketindexer/marketindexer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/mobile/beru/performance-diagnostic/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/pylibrary/database -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/pylibrary/mindexerlib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/seo/tools/postgres_local -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/services/cema/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/services/colba/dispatcher -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/services/colba/master -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/services/colba/minion -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/services/mcm/mcm -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW market/sre/tools/logkeeper/logkeeper -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW mds/mastermind/minion/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/admin/brb/server/lib/controllers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/admin/brb/server/lib/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/admin/brb/server/lib/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/admin/maas/lib/core/common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/admin/python/cms/agent/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW metrika/core/programs/mobile_yt_to_yc_export -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/admin/lib/controllers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/admin/lib/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/controllers/admin -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/controllers/user -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/controllers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/announce -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/billing -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/cashbox/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/cashbox -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/company/client/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/company/client -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/company/partner -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/company -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/contract/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/contract -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/fiscal_drive/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/fiscal_drive -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/grant -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/reg_info/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/reg_info -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/retail_point -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/user/dao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/user -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib/runtime_pulling -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/manage/backend_data/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/manage/backend_data -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/manage/contract_updater -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/manage/demo_data -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/manage/regular_tasks -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_functional/libconftest -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/libconftest -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_admin -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_billing -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_cashbox -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_company -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_contract/test_contract_cycle -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_contract -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_fiscal_drive_model -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_fiscal_drive -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_grant -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_reg_info -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_runtime_pulling/test_performance -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_runtime_pulling/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_runtime_pulling -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_integration/test_postgres/test_utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/api/tests/test_unit/test_contract_updater -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/common/postgres_recipe -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/common/sqlalchemy -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/manage -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/sender/channels -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/sender/event_types -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/sender/notifications -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/sender/notification_types -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/server/blueprints/monitoring -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/tests/test_unit/libconftest -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/tests/test_unit/test_sender/test_channels -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/tests/test_unit/test_sender/test_event_types -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW ofd/notifier/tests/test_unit/test_sender/test_notification_types -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/db/faker -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/dbmanager -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/db/read_api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/serializers/domain -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/serializers/domain/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core/serializers/eav/query -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/core -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/library/errors -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/social/api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/social/common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/social/proxy2 -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/social/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/qa/test_user_service/tus_api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests/commands -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests/common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests_highload/access -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests_highload/secrets -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests/views/secrets -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api/tests/views -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/backend/vault/api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW passport/infra/daemons/yasmsapi/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/ab_testing/scripts/ems -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/ab_testing/tools/postgres_local/tests_recipe -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/ab_testing/tools/postgres_local -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/antifraud/xurma/tools/xurma_viewer/backend/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/functionality/turbo/forms/app/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/functionality/turbo/forms/job/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/functionality/turbo/json_api/app/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/functionality/turbo/json_api/job/lib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/db/orm -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/manufacturing/jangles/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/manufacturing/jangles/blueprints -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/manufacturing/jangles/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/manufacturing/jangles -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quasar/quasmodrom/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW release_machine/release_machine/alembic -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW release_machine/release_machine/src/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW rt-research/monitoring/atoms/config -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/geo/tools/ranking -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/horadric/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/martylib -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/iconostasis_validator/libs -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rtc/plotva/lib/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rtc/plotva/lib/http -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rviewer/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rviewer/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rviewer/modules -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/rviewer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/uchenki/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW search/mon/wabbajack/libs/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW sprav/scripts/assay/sampling -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW testenv/core/common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW testenv/core -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/flight_extras -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/price_index -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/admin/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/alembic/migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/alembic -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/data_importer/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/data_importer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/diff_builder/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/diff_builder -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/lib/python/db_locks -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/lib/python/db_models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/tasks/monitoring/db/bin -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/tasks/monitoring/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/shared_flights/tasks/monitoring -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/subscriptions/app/alembic/bin -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/subscriptions/app/api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/subscriptions/app/model -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/subscriptions/app/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/avia/yeah -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/admin/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/db/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/morda_backend/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/morda_backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/scripts/automatcher -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/scripts/endpoints_stats -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/scripts/sales_monitor -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/bus/settings -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/wizards/proxy_api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW travel/rasp/wizards/train_wizard_api -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW trust/directory -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW trust/directory.jinja -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW trust/emulator -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW trust/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW trust/utils.jinja -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW vcs/misc/db/check_pgaas -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW vcs/misc/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/admin/migrations/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/db/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/jupyter_kernel -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/libs/utils/db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/meteo/flow/scheduler -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/settings -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/common/clean_satellite -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/common/formula_fallback -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/common/send_cao_emails -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/exports/yt/grid/facts -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/exports/yt/s3 -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/base -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/cao -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/dwd -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/ecmwf -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/gfs_uv -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/imports/satellites -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW weather/workers/wrf/utils -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yabs/indoor/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/localization_admin/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/common -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/core -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/health -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/prebuilt -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/store -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/subscription -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yaphone/newpdater/src/updates -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yql/library/python/yql/sqlalchemy/examples -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yql/udfs/common/python/python3.incl -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yql/udfs/common/python/python_arc.incl -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/antimalware/visual_html_parser/yandex-search-vdb-report/src -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/news/common/python/clickhouse -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/news/support/viewer -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/news/themes_viewer/app -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/rca/server/storage -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/webdaemons/expcookier/tests -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers/admin/admin -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers/answers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers/database_migrations -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_acceptance -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_antispam_check -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_banner -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_grading_collector -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_turbo -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_unloading_serp -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_update_passport -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/answers_update_turbo -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/daily_promoblock_push -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/make_ammos -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/populate_db -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_banner -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_corrector -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_deleter -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_factors_uploader -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_frequency_uploader -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_rank_updater -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_tag_updater -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/questions_uploader -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/the_question_migrator -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/the_question_unloading_serp -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/triggers_evoker -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/upload_tag_teasers -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yweb/yasap/answers_nirvana/weekly_org_push -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW zootopia/analytics/drive/binary/drive -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW zootopia/analytics/drive/source/drive/backend -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW zootopia/analytics/drive/source/drive/core -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW zootopia/analytics/drive/source/drive/models -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW zootopia/hub/geosupply/geosupply -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW jupytercloud/arcadia_kernel/default -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW jupytercloud/arcadia_kernel/default_yql -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/ab_testing/cofe/bin/lib/files/py2/cofe_kernel_yql -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW quality/ab_testing/cofe/bin/lib/files/py3/cofe_kernel_yql -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yql/udfs/common/python/python3 -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW yql/udfs/common/python/python_arc -> contrib/python/sqlalchemy/sqlalchemy-1.2 -ALLOW sandbox/projects/adfox/get_currency_rates -> contrib/python/sqlalchemy/sqlalchemy-1.2 -DENY .* -> contrib/python/sqlalchemy/sqlalchemy-1.2 - -# As agreed in https://st.yandex-team.ru/CONTRIB-2183 -# (use contrib/python/marshmallow-dataclass instead) -ALLOW education/ -> contrib/python/dataclasses-json -DENY .* -> contrib/python/dataclasses-json - -# https://st.yandex-team.ru/CONTRIB-2222 -ALLOW browser/infra/.* -> contrib/python/hurry.filesize -DENY .* -> contrib/python/hurry.filesize - -# https://st.yandex-team.ru/CONTRIB-2338 -ALLOW noc/.* -> contrib/python/asyncssh -ALLOW jupytercloud/backend/.* -> contrib/python/asyncssh -ALLOW intranet/trip -> contrib/python/asyncssh -DENY .* -> contrib/python/asyncssh - -# https://st.yandex-team.ru/CONTRIB-2913 -ALLOW logos/.* -> contrib/python/pysftp -DENY .* -> contrib/python/pysftp diff --git a/build/rules/contrib_restricted.policy b/build/rules/contrib_restricted.policy deleted file mode 100644 index 87c4eaa021..0000000000 --- a/build/rules/contrib_restricted.policy +++ /dev/null @@ -1,207 +0,0 @@ -# == Rules for contrib/restricted section == -# -# NOTE: rules should be ordered from specific to generic (first matching rule is used) -# See rule syntax docs: https://wiki.yandex-team.ru/devrules/overall/peerdirprohibition/ - -# scale_ipp filter for ffmpeg use Intel IPP hence it is nonfree -ALLOW strm/cv/ffmpeg_adcv/toshik_filters -> contrib/restricted/ffmpeg-3-scale-ipp - -# libzvbi is GPL -ALLOW strm/cv/ffmpeg_adcv/libavcodec -> contrib/restricted/libzvbi - -# CityHash-1.0.2 is a specific version hardwired into ClickHouse public interface -ALLOW library/cpp/clickhouse -> contrib/restricted/cityhash-1.0.2 -ALLOW ydb/library/arrow_clickhouse -> contrib/restricted/cityhash-1.0.2 -ALLOW saas/library/hash_to_block_mode -> contrib/restricted/cityhash-1.0.2 - -# same rules for restricted set of sources in YQL -ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/cityhash-1.0.2 -ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/boost -ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/dragonbox -ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/fast_float - -# For HBase client: CONTRIB-1790 -ALLOW passport/infra -> contrib/restricted/thrift - -# keyutils is LGPL: CONTRIB-2236 -ALLOW passport/infra -> contrib/restricted/keyutils - -# For Apache Arrow: CONTRIB-1662 -ALLOW mds -> contrib/restricted/uriparser - -# For patched imagemagick CONTRIB-1902 -ALLOW mds -> contrib/restricted/ImageMagickMDS - -# https://st.yandex-team.ru/CONTRIB-2020 -ALLOW weather -> contrib/restricted/range-v3 - -# https://st.yandex-team.ru/CONTRIB-2492 -ALLOW weather -> contrib/restricted/aviso-fes - -# gridpp is LGPL: CONTRIB-2707 -ALLOW weather -> contrib/restricted/gridpp - -# ALSA library is LGPL -ALLOW yandex_io -> contrib/restricted/alsa-lib -ALLOW smart_devices -> contrib/restricted/alsa-lib - -# Avahi is LGPL -ALLOW yandex_io -> contrib/restricted/avahi - -# GLib is LGPL -ALLOW maps/libs/img -> contrib/restricted/glib -ALLOW maps/renderer/libs/svgrenderer -> contrib/restricted/glib -ALLOW maps/renderer/libs/font -> contrib/restricted/fribidi -ALLOW market/cataloger -> contrib/restricted/glib -ALLOW market/idx/feeds/feedparser -> contrib/restricted/glib -ALLOW metrika/core/libs/statdaemons -> contrib/restricted/glib -ALLOW metrika/core/libs/strconvert -> contrib/restricted/glib -ALLOW yandex_io -> contrib/restricted/glib - -# GStreamer is LGPL -ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gstreamer -ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-base -ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-good -ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-ugly -ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-rtsp-server -ALLOW yandex_io -> contrib/restricted/gstreamer -ALLOW yandex_io -> contrib/restricted/gst-plugins-base -ALLOW yandex_io -> contrib/restricted/gst-plugins-good -ALLOW yandex_io -> contrib/restricted/gst-plugins-bad -ALLOW yandex_io -> contrib/restricted/patched/gst-libav - -# mpg123 is LGPL -ALLOW extsearch/audio/kernel/recoglib -> contrib/restricted/mpg123 - -# OpenAL Soft is LGPL -ALLOW yandex_io -> contrib/restricted/openal-soft -ALLOW speechkit -> contrib/restricted/openal-soft - -# rubberband is a GPL audio stretching library -ALLOW dict/mt/video -> contrib/restricted/rubberband - -# Allowed subset of abseil is exported via library/ -ALLOW library/cpp/containers/absl_flat_hash -> contrib/restricted/abseil-cpp/absl/container -ALLOW library/cpp/containers/absl_tstring_flat_hash -> contrib/restricted/abseil-cpp-tstring/y_absl/container - -# spdlog is just yet another best logging engine -# The best logging engine, however, is to be designed in CPPCOM-20 -ALLOW quasar/backend/src/base -> contrib/restricted/spdlog -ALLOW crypta/lib/native/log -> contrib/restricted/spdlog -ALLOW yandex_io -> contrib/restricted/spdlog -ALLOW smart_devices/tools/launcher2 -> contrib/restricted/spdlog -ALLOW smart_devices/tools/updater -> contrib/restricted/spdlog -ALLOW market/robotics -> contrib/restricted/spdlog -ALLOW taxi/uservices/userver/core -> contrib/restricted/spdlog - -# cmph is a limited-use library -ALLOW ads/yacontext -> contrib/restricted/cmph - -# http-parser is a low-level parser for http bytestream. -# Consider using high-level alternatives. -ALLOW mds -> contrib/restricted/http-parser -ALLOW taxi/uservices -> contrib/restricted/http-parser -ALLOW yt/yt/core/http -> contrib/restricted/http-parser -ALLOW yweb/robot/fetcher/fetcher/user/http -> contrib/restricted/http-parser - -# Prefer using skynet for data distribution -ALLOW maps/infra/ecstatic -> contrib/restricted/libtorrent - -# Consider using util / library/cpp/digest versions instead of a raw murmurhash functions. -# -# strm/common/go/pkg/murmur3 is a CGO binding to murmurhash, thus dependency is allowed -ALLOW strm/common/go/pkg/murmur3 -> contrib/restricted/murmurhash - -# exiv2 is GPL-licensed. Only small subset of our libraries can use it. -ALLOW extsearch/images/chunks/exiftags -> contrib/restricted/exiv2 -ALLOW maps/wikimap/mapspro/services/mrc/libs/common -> contrib/restricted/exiv2 -ALLOW yweb/disk/ocraas -> contrib/restricted/exiv2 - -# Only allow boost in yandex projects listed below -ALLOW adfox -> contrib/restricted/boost -ALLOW ads -> contrib/restricted/boost -ALLOW advq -> contrib/restricted/boost -ALLOW alice/nlu -> contrib/restricted/boost -ALLOW alice/vins_contrib/crfsuitex -> contrib/restricted/boost -ALLOW devtools -> contrib/restricted/boost -ALLOW extsearch/geo/poi_service/tools/storage_reader -> contrib/restricted/boost -ALLOW infra/contrib/pdns -> contrib/restricted/boost -ALLOW juggler/pongerd -> contrib/restricted/boost -ALLOW lbs/locator -> contrib/restricted/boost -ALLOW library/cpp/testing/boost_test$ -> contrib/restricted/boost/test -ALLOW library/cpp/testing/boost_test_main$ -> contrib/restricted/boost/test -ALLOW library/cpp/testing/gtest_boost_extensions -> contrib/restricted/boost -ALLOW logbroker/pipe-parser -> contrib/restricted/boost -ALLOW mail -> contrib/restricted/boost -ALLOW maps -> contrib/restricted/boost -ALLOW market/idx/feeds/feedparser -> contrib/restricted/boost -ALLOW market/idx/stats/src -> contrib/restricted/boost -ALLOW mds -> contrib/restricted/boost -ALLOW metrika -> contrib/restricted/boost -ALLOW netsys/tiles-vcdiff/gen-tiles -> contrib/restricted/boost -ALLOW orgvisits/dwellplaces -> contrib/restricted/boost -ALLOW orgvisits/heuristics -> contrib/restricted/boost -ALLOW orgvisits/library/soc -> contrib/restricted/boost -ALLOW quasar/backend -> contrib/restricted/boost -ALLOW regulargeo/research -> contrib/restricted/boost -ALLOW rem/python/geobase30 -> contrib/restricted/boost -ALLOW drive/contrib/cpp/telemetry -> contrib/restricted/boost -ALLOW smart_devices -> contrib/restricted/boost -ALLOW statbox/libstatbox -> contrib/restricted/boost -ALLOW taxi -> contrib/restricted/boost -ALLOW tools/idl -> contrib/restricted/boost -ALLOW voicetech/tools -> contrib/restricted/boost -ALLOW weather/archive/grid_api/lib -> contrib/restricted/boost -ALLOW yabs/telephony -> contrib/restricted/boost -ALLOW yandex_io -> contrib/restricted/boost -ALLOW yweb/robot/js -> contrib/restricted/boost -ALLOW market/access/server/env -> contrib/restricted/boost -ALLOW sdg/sdc -> contrib/restricted/boost -ALLOW search/meta/scatter/ant -> contrib/restricted/boost -ALLOW search/meta/scatter/ut -> contrib/restricted/boost -ALLOW extsearch/video/robot/rt_transcoder/util -> contrib/restricted/boost -ALLOW market/robotics -> contrib/restricted/boost - -# use GTEST target in ya.make instead of PEERDIRing contrib/restricted/googletest -# and include <library/cpp/testing/gtest.h> instead of <gtest/gtest.h> (<gmock/gmock.h>) -ALLOW contrib -> contrib/restricted/googletest -ALLOW library/cpp/testing/gmock_in_unittest -> contrib/restricted/googletest -ALLOW library/cpp/testing/gtest -> contrib/restricted/googletest -ALLOW library/cpp/testing/gtest_boost_extensions -> contrib/restricted/googletest -ALLOW library/cpp/testing/gtest_extensions -> contrib/restricted/googletest -ALLOW library/cpp/testing/gtest_main -> contrib/restricted/googletest -ALLOW library/cpp/testing/gtest_protobuf -> contrib/restricted/googletest -ALLOW library/python/testing/gtest/test/gtest -> contrib/restricted/googletest -# TODO remove this lines after they will switch to library/cpp/testing/gtest -ALLOW mail -> contrib/restricted/googletest -ALLOW maps/mobile/libs -> contrib/restricted/googletest -ALLOW maps/mobile/bundle -> contrib/restricted/googletest -ALLOW mds -> contrib/restricted/googletest -ALLOW market/robotics -> contrib/restricted/googletest -# A mere proxy to allow using gmock in libraries without being bound to specific test framework -# See IGNIETFERRO-1827 for details. -ALLOW library/cpp/testing/gmock -> contrib/restricted/googletest/googlemock - -# allow usage of MIT part -ALLOW .* -> contrib/restricted/librseq/headeronly - -# we use nfs-ganesha for Network File Store gateway -ALLOW cloud/filestore/gateway/nfs -> contrib/restricted/nfs_ganesha - -ALLOW yandex_io -> contrib/restricted/patched/hostap_client - -ALLOW smart_devices -> contrib/restricted/tgcalls - -ALLOW kikimr/serverless_proxy/ut -> contrib/restricted/nlohmann_json -ALLOW ydb/core/http_proxy -> contrib/restricted/nlohmann_json - -# https://st.yandex-team.ru/SCS-415367#636a2e696d7dae3ce5fc2699 -ALLOW yandex_io -> contrib/restricted/pjsip - -# Default policies: -# -# Do not restrict contrib -# All peerdirs to contrib/restricted from outside are prohibited -# -ALLOW contrib -> contrib/restricted -DENY .* -> contrib/restricted diff --git a/build/rules/flake8/README.md b/build/rules/flake8/README.md deleted file mode 100644 index 6de0fb9efb..0000000000 --- a/build/rules/flake8/README.md +++ /dev/null @@ -1,30 +0,0 @@ -#Flake8 migrations - -Don't edit migrations.yaml! - -Style tests are checked every night, and if there are no more errors of the specified type for the specified prefix, then it is automatically excluded from the migration file. - -##migrations.yaml -Format: -``` -migrations: - plugin-1: - ignore: - - B102 - - S103 - - F401 - prefixes: - - devtools/ya - - ads - - quality - ignore-F123: - ignore: - - F123 - prefixes: - - devtools/ya - - devtools/d -``` -If arcadia-relative filepath startswith prefix from prefixes, then: - -1. ignore values will be added to flake8.conf ignore section - diff --git a/build/rules/flake8/migrations.yaml b/build/rules/flake8/migrations.yaml deleted file mode 100644 index c3aa51f27f..0000000000 --- a/build/rules/flake8/migrations.yaml +++ /dev/null @@ -1,12673 +0,0 @@ -migrations: - E121: - ignore: - - E121 - prefixes: - - infra/skybone-coord/src/daemon - E122: - ignore: - - E122 - prefixes: - - addappter/backend/addappter/pg_models/statistics - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/mob_mediation - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/v2 - - adfox/amacs/tests/functional/tests_amacs/identification - - adfox/amacs/tests/functional/tests_amacs/yabs - - ads/autobudget/ml_pipeline/lib - - ads/emily/storage/models/tsars/models - - ads/libs/py_ml_factors/matrixnet - - ads/pytorch/lib/pool/py_formatter - - ads/quality/embedding/tools/mx_crosscheck - - ads/quality/embedding/tsar_tensor/BSFACTOR-44/preprocess - - ads/quality/max_positions - - ads/quality/tlm/pylib - - ads/tools/zc - - advq/generation/common - - advq/generation/common/generators/hitlog_from_chhit_generator - - advq/generation/common23 - - afisha/infra/projects/gh_monitorings - - alice/analytics/wer - - alice/hollywood/library/python/testing/it2/tests - - alice/hollywood/library/scenarios/messenger_call/it2 - - alice/quality/metrics/lib/thresholds - - alice/vins/core/vins_core/test - - analytics/collections/plotter_collections/plots - - antirobot/captcha/captcha_test_service/bin - - antirobot/daemon/arcadia_test/util - - apphost/daemons/horizon/src/common/services/reducers - - apphost/python/client/tests/functional - - apphost/tools/app_host_launcher/setup - - april/multik/stand/worker/infuse - - autobudget/bidder/lib - - balancer/test/functional/response_headers - - billing/dwh/src/dwh/core - - billing/dwh/src/dwh/core/migrations - - billing/dwh/src/dwh/grocery/dcs/export - - cloud/ai/speechkit/stt/bin/experiments/libri_speech_mer_pipeline/fetch_texts - - cloud/blockstore/tests/loadtest/local-emergency - - cloud/blockstore/tests/loadtest/local-metrics - - cloud/blockstore/tools/ops/update_limits/tests - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_buckets_usage - - cloud/support/tools/qcalc/app/quota/services - - cloud/support/tools/quotactl-l2/quota/services - - cloud/support/tools/websaint/app/saint - - crypta/buchhalter/services/main/lib/common/stats - - crypta/ltp/viewer/services/build_index/lib - - cv/imageproc/ocr/tools/database_extraction/nirvana/imgaug/src/external - - cv/imageproc/ocr/tools/nirvana/api_compare - - datalens/backend/app/bi_api/tests/db/data_api/result - - devtools/migration/sandbox - - devtools/signer/signer/stats - - devtools/ya/build/build_opts - - devtools/ya/handlers/style/tests/acceptance - - devtools/ya/ide - - devtools/ya/test/ios - - dict/bert/make/lib - - dict/bert/make/lib/tasks - - dict/mt/analytics/dashboards/datasets/ocr_translate_speed - - dict/mt/make/db/content - - dict/mt/make/pipeline/nmt - - dict/mt/mtdict/make/translation_dictionary/modules/filters/dict_filt - - dict/mt/mtdict/make/translation_dictionary/modules/lib - - direct/solo/registered/alert/infra/mdb/mysql - - direct/solo/registered/alert/transport_queues - - direct/solo/registered/cluster - - disk/tasklets/startrek/impl - - distribution_interface/backend/backend/basic_stats - - distribution_interface/backend/backend/product/models - - distribution_interface/backend/backend/users - - distribution_interface/backend/backend/util - - distribution_interface/backend/tests - - distribution_interface/backend/tests/test_platform - - dj/torch/tools/runner/py_formatter - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib/CashbackReportLib - - education/schoolbook/analytics/ml/lib/ut - - education/services/checking_system/marker_checker/it/api/v1 - - education/services/checking_system/marker_checker/it/api/v1/check_data - - entity/ontodb/tasks/fast_death_pipeline - - extsearch/images/money/scripts - - extsearch/images/robot/index/shardpreparer/it/pack - - extsearch/images/robot/mrdb/mkurldb/it/pack - - extsearch/video/quality/nirvana/hitman_operations/utils/concat_json_to_array - - extsearch/video/robot/sbr_metric/sbr_tool - - games/admin/background_modules/tests - - games/admin/background_modules/tests-medium - - geoproduct/advert_ranking/traffic_prediction/predictor - - infra/box_dns_controller/monitoring/alerts - - infra/dist/dmover/lib - - infra/kernel/tools/coroner - - infra/netmon/utils/check_hosts_in_switch - - infra/rtc/iolimit_ticketer - - infra/rtc/nodeinfo/lib/tests - - infra/shawshank/tests - - infra/skybone-coord/src/daemon - - infra/skyboned/src - - infra/yp/monitoring/tmp_account_monitoring - - infra/yp_dns_api/monitoring/alerts - - intranet/plan/src/plan/oebs - - intranet/plan/src/plan/services/api - - intranet/plan/src/plan/suspicion/api - - intranet/plan/tests/unit/duty/api - - intranet/watcher/tests/api - - inventori/pylibs/tasks/etl - - ipreg/python/ipreg-office2region - - kinopoisk/tasklets/DeployWithChangeWeight/impl - - library/python/monitoring/solo/helpers/yt - - load/projects/tank_finder/tests - - load/projects/tankapi_server/tankapi - - load/projects/tankapi_server/tankapi/tests - - locdoc/tg_bots/commdesign_bot/handlers - - logos/projects/ads/tasks/ads_map_and_join_simulator_log_raw - - logos/projects/ads/tasks/ads_post_join_simulator_log - - logos/projects/ads/tasks/distribution_monitoring_bk_installs_stat_task - - logos/projects/money_dwh/tasks/pages/v1 - - logos/projects/statkey_py3/tasks/cubes/domains/metrika/utils - - logos/projects/statkey_py3/tasks/marketplace_clusterdomain_parsed - - mail/transfer/ora2pg/app/tests - - mail/transfer/ora2pg/clone_user/test - - mail/transfer/ora2pg/tools/test - - mail/transfer/tests/integration/steps - - mail/transfer/tests/integration_corp/steps - - maps/analytics/datasets/routes/mobile-maps - - maps/analytics/legacy/nile/statadhoc-10453-geosearch-type-source-geography-report - - maps/analytics/legacy/nile/statadhoc-13040-ctr-blocks-report - - maps/analytics/legacy/nile/statadhoc-13066-events-experiments-report - - maps/analyzer/sandbox/masstransit/export_eda_courier_deviceid/lib - - maps/b2bgeo/tools/domain_check/bin - - maps/b2bgeo/ya_courier/analytics_backend/test_lib/data - - maps/goods/autotests/src/data_types - - maps/masstransit/libs/realtime_signals_monitoring/py/tests - - maps/masstransit/ydbfree/services/predictor/tools/uploader/tests/integration - - maps/mobile/server/proxy/config/mrc/tests - - maps/photos/backoffice/tools/toloka/toloka_pipeline - - maps/poi/notification/tests - - maps/sprav/pedestrians/generate_feeds/statistics/lib - - maps/statistics/external/export_accidents - - maps/statistics/hypgen/masstransit_hypothesis/libs/draw_on_map - - maps/wikimap/feedback/pushes/barriers/join_users_with_barriers/lib - - maps/wikimap/mapspro/services/tasks_realtime/src/release_metrics/bin - - maps/wikimap/stat/assessment/tasks_dataset/udf - - maps/wikimap/stat/kpi/absolute_objects_counts_stat/lib - - maps/wikimap/stat/libs/tracker/tests - - market/assortment/ecom_log/lib/matching - - market/checkout/utils - - market/dynamic_pricing/pricing/deadstock_sales/sale_prices - - market/dynamic_pricing/pricing/dynamic_pricing/price_calculator - - market/forecast/demand_baseline_train/lib/task - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/forecast/interface/lib - - market/forecast/interface_sbx/lib - - market/forecast/torch_demand/lib/tasks - - market/global/landing/lib - - market/mstat/marketbi/bitotg/lib - - market/pylibrary/lite - - market/pylibrary/mindexerlib - - market/quoter/tests - - market/replenishment/algorithms/lib/data_preparation/regional_assortment - - market/replenishment/algorithms/lib/data_preparation/simulation_cube - - market/replenishment/algorithms/lib/forecast - - market/replenishment/algorithms/lib23/data_preparation - - market/replenishment/algorithms/lib23/data_preparation/transits - - market/replenishment/algorithms/safety_tool_lib/tasks - - market/search/services_for_goods/mt - - market/seo/offer_base - - market/solo_monitorings/marketpromo/registry/alerts/loyalty - - market/sre/services/disabledc/lib - - market/tools/develop/dashboards/generate_juggler_checks - - ml/tensorflow/models/userbert/tests/pretrain - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/models - - ml/tensorflow/tfnn/src/tfnn/train - - ml/zeliboba/experiments/2020_03_17_finetune_lm_12 - - ml/zeliboba/experiments/2021_03_19_stages_boltalka_lm10 - - ml/zeliboba/experiments/2021_04_06_stages_boltalka_lm10_ctrl - - ml/zeliboba/experiments/_example6_finetune_lm10 - - ml/zeliboba/experiments/_example7_finetune_lm10_on_task - - ml/zeliboba/libs/predict - - mlp/overdraft/utils/vh3/graph/build_validate_target - - modadvert/oneshot/MODDEV-3489 - - modadvert/tools/robot_modadvert/lib - - mssngr/router/tests/lib - - mssngr/router/tools/downtime_yql - - music/analytics/jam-sox/music_lib/financial_reports/financial_reports/related_formats/universal - - noc/comocutor-contrib/comocutor_contrib - - ofd/api/tests/functional/test_suggest - - ofd/runtime/new/tests/unit - - quality/functionality/scripts/psuh/PushStatsLib/PushStatsLib - - quality/functionality/scripts/surplusplus/mt_squeeze - - quality/functionality/turbo/forms/job/lib/services - - quality/neural_net/bert/bert - - quality/neural_net/bert/bert/row_processors/finetune - - quality/neural_net/bert/tests/finetuning - - quality/nirvana_tools/conveyor_operations/bert/common - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/apply_bert_to_table - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_exp_serp_items - - quality/nirvana_tools/conveyor_operations/stove/opt_viewer - - quality/relev_tools/choice_screen/vh_operations - - quality/relev_tools/dsat/fstr - - quality/relev_tools/org_sintez_pool/nirvana_blocks/test - - quality/user_sessions/rt/deploy/deploy_units - - quasar/infra/tasklets/compare_lunapark_shootings/impl - - repo/pciexpress/celery/common - - robot/metrics/social_sbr/prepare_to_limbo - - robot/quality/smelter/backend_django/backend_django - - robot/smelter/backend/settings - - saas/tools/devops/check_backup - - saas/tools/devops/lib23 - - saas/tools/ssm - - sandbox/projects/MarketQC/daily_cutoff_notifier - - sandbox/projects/NewsExpCheckerTasks/NewsExpChecker - - sandbox/projects/SaasGardenGraphConvert - - sandbox/projects/SuspiciousCommits/tests - - sandbox/projects/adfox/test_predictor/AdfoxPredictorGetResponses - - sandbox/projects/app_host/BuildAppHostBundle - - sandbox/projects/avia/news_feed - - sandbox/projects/devops/DevOpsAlert - - sandbox/projects/eda/updater_startrek_priority - - sandbox/projects/images/balancer/ImagesBuildThumbBalancerConfig - - sandbox/projects/market/mqm/MerchYtComparatorMonitoring - - sandbox/projects/market/partner_services/MarketPartnerItemServiceUpdateJob - - sandbox/projects/megamind/release_megamind_formulas - - sandbox/projects/music/MusicDiffTest/lib - - sandbox/projects/security/ReportFuzzing/ReportBuildAndFuzz - - sandbox/projects/security/gideon/gideon-analytics/deploy-acl-parser-task - - sandbox/projects/trust/tasks/StartTrustPerfTesting - - sandbox/projects/websearch/SearchIntegrationTests3 - - sandbox/projects/websearch/SearchIntegrationTestsWithRetries - - sandbox/projects/websearch/common/DeployFastData - - sandbox/projects/yabs/SysConstLifetime/const_proto - - sandbox/projects/yabs/SysConstLifetime/sys_const - - sandbox/projects/yabs/auto_supbs_2/lib/order_processor_lib/tests - - sandbox/projects/yabs/chargeback - - sandbox/projects/yabs/cpm_multiplier/merge - - sandbox/projects/yabs/double_click/lib - - sandbox/projects/yabs/qa/hamster/nanny - - sandbox/projects/yabs/qa/tasks/YtOneshot/base_tasks - - sandbox/projects/yabs/sbyt/adfox_fill_major_owners - - sandbox/taskbox/model - - sdg/labeling/common - - search/geo/tools/basket_gathering/beauty_synth - - search/geo/tools/basket_gathering_2020/mine_baskets - - search/geo/tools/basket_gathering_2021/mine_baskets - - search/hamster/auto_incidents_creator/get_reqid - - search/metrics/nirvana_macro/workflow - - search/mon/curators_helper - - search/mon/marty_tool_check/marty_icon_meta_aggr - - search/mon/uchenki/lib - - search/mon/uchenki/lib/jobs - - search/mon/warden/src/workers - - search/priemka/yappy/src/model/model_service/workers - - search/scraper_over_yt/scripts/smart_duty - - smarttv/droideka/tests - - sport/new_backend/data_processing/olympic/tests - - statbox/nile/tests/cluster - - statbox/statkey/agency_rewards/bunker/2021-europe-m - - statbox/statkey/reactor/cooked_logs/visit_cooked_log/build - - statbox/statkey/reactor/cubes/superapp/timespent/prepare/v3 - - statbox/statkey/reactor/monitorings/action - - statbox/statkey/reactor/monitorings/superapp/timespent - - statbox/statkey/reactor/tools/anomaly_detector/tests/unit/fixtures - - taxi/antifraud/approver/mover - - taxi/robowarehouse/lib/concepts/tests/unit/device_messages - - taxi/tasklets/clownductor/create_dev_branch/impl - - taxi/tasklets/clownductor/lib - - toloka/analytics/libs/python/lama/ut - - travel/avia/avia_api/avia/v1/sovetnik - - travel/avia/avia_api/avia/v1/views - - travel/avia/stat_admin/data - - travel/hotels/hotels_administrator/tools/manual_connection_tool - - travel/rasp/export/tests/v3/core - - voicetech/spotter/selection_for_annotation/lib - - voicetech/vqe/experiments/nn_postfilter/train_utils/train/lib - - weather/ml/nirvana_operations/download_single_domain/lib - - weather/workers/exports/ydb - - weather/workers/exports/yt/prepare_data - - weather/workers/exports/yt/prepare_data/providers - - weather/workers/exports/yt/prepare_data/providers/tests - - web/app_host/tools/upper_template_generator/src/adonly - - web/src_setup/tests/server_test/test_suites/SHARED - - web/src_setup/tests/server_test/test_suites/WEB - - yabs/autobudget/tools/daily_limits_calculator - - yabs/indoor/samogon/plugin - - yabs/qa/oneshots/gshovkoplyas/BSSERVER-21792/update_blocksettings_replica - - yabs/qa/oneshots/gshovkoplyas/BSSERVER-21792/update_blocksettings_replica2 - - yabs/qa/oneshots/gshovkoplyas/BSSERVER-21792/update_blocksettings_replica2_fixed - - yabs/qa/oneshots/inna-kudelkina/BSDEV-87908 - - yabs/qa/oneshots/inna-kudelkina/BSDEV-88019/add_jsonoption - - yabs/qa/oneshots/inna-kudelkina/BSDEV-88019/add_test_jsonoption - - yabs/qa/oneshots/naignatov/DSP-111 - - yabs/qa/oneshots/naignatov/DSP-114 - - yabs/qa/oneshots/naignatov/DSP-25 - - yabs/qa/oneshots/naignatov/DSP-89 - - yabs/qa/oneshots/naignatov/DSP-96 - - yabs/qa/oneshots/naignatov/DSP-99/inapp-dsp - - yabs/qa/oneshots/nicememe/BSSERVER-20121/add-json-options - - yabs/qa/oneshots/serval/BSRELEASE-240499 - - yabs/qa/oneshots/serval/BSSERVER-18352 - - yabs/qa/oneshots/serval/BSSERVER-21877 - - yabs/qa/oneshots/yury-zh/NANPU-852/test-add-oneshot - - yabs/qa/oneshots/yury-zh/keywords/BSSERVER-14489 - - yabs/server/cs/test/cs_import/broad_phrase_norm - - yabs/server/cs/test/cs_import/caesar_autobudget_strategy - - yabs/server/test/ft/BSDEV-76469 - - yabs/server/test/ft/BSDEV-79101 - - yabs/server/test/ft/BSDEV-85352 - - yabs/server/test/ft/BSDEV-86239 - - yabs/server/test/ft/BSEFFECTIVE-427 - - yabs/server/test/ft/BSSERVER-11693 - - yabs/server/test/ft/BSSERVER-14121 - - yabs/server/test/ft/BSSERVER-14909 - - yabs/server/test/ft/BSSERVER-15483 - - yabs/server/test/ft/BSSERVER-15755 - - yabs/server/test/ft/BSSERVER-15830 - - yabs/server/test/ft/BSSERVER-1649 - - yabs/server/test/ft/BSSERVER-17885 - - yabs/server/test/ft/BSSERVER-17985 - - yabs/server/test/ft/BSSERVER-18047 - - yabs/server/test/ft/BSSERVER-19352 - - yabs/server/test/ft/BSSERVER-19448 - - yabs/server/test/ft/BSSERVER-20124 - - yabs/server/test/ft/BSSERVER-20512 - - yabs/server/test/ft/BSSERVER-20542 - - yabs/server/test/ft/BSSERVER-21248 - - yabs/server/test/ft/BSSERVER-21283 - - yabs/server/test/ft/BSSERVER-21794 - - yabs/server/test/ft/BSSERVER-2189 - - yabs/server/test/ft/BSSERVER-22115/test_disable_sub_designs - - yabs/server/test/ft/BSSERVER-2214 - - yabs/server/test/ft/BSSERVER-22647 - - yabs/server/test/ft/BSSERVER-2306 - - yabs/server/test/ft/BSSERVER-23162 - - yabs/server/test/ft/BSSERVER-23219 - - yabs/server/test/ft/BSSERVER-23252 - - yabs/server/test/ft/BSSERVER-3143 - - yabs/server/test/ft/BSSERVER-708 - - yabs/server/test/ft/BSSERVER-8275 - - yabs/server/test/ft/BSSERVER-9277 - - yabs/server/test/ft/NANPU-963 - - yabs/server/test/ft/supply_chain - - yabs/server/test/qabs_bsserver_pytest/bs_objects - - yabs/server/tools/print_lm_atoms/test - - yabs/stat/direct_monitoring/libs/checks - - yabs/stat/infra/clickhouse/copy_table - - yabs/stat/infra/clickhouse/lib - - yabs/stat/infra/clickhouse/repair_experiment_stat - - yabs/stat/infra/clickhouse/repair_master_report_pi - - yabs/stat/solo/sensors - - yabs/stat/yabs-yt-audit/coordinator - - yabs/vh/cms-pgaas/cms_common/ugc_models - - yabs/vh/cms-pgaas/utils/pq_writer - - yabs/vh/cms/ugc/api/admin/tests - - yabs/vh/cms/ugc/api/external/tests - - ydo/analytics/squeezes/service_baobab_v2 - - yql/tests/dq/ydb - - yt/admin/luigi/src/luigi/commands/service - - yt/admin/luigi/src/luigi/commands/yt - - yt/admin/snapshot_processing/lib - - yt/admin/snapshot_processing/validate_operation_snapshots - - yt/admin/snapshot_processing/validate_tablet_cell_snapshots - - yt/cron/clear_transfer_manager_tasks - - yt/cron/set_racks/tests - - yt/cron/yp_ipv4_manager - - yt/microservices/access_log_viewer/lib - - yweb/antispam/clean_web/tools/async_pipeline/read_graph - - yweb/antispam/mascot/scripts/code_generators/cpp/parser_reset - - yweb/antispam/mascot/scripts/code_generators/proto/common_database - - yweb/antispam/mascot/scripts/code_generators/proto/exports - - yweb/news/common/python/site_attributes/ut - - yweb/news/runtime_scripts/runner - - yweb/robot/limbo/imports - - yweb/sitelinks/scripts/sitelinks - - yweb/verticals/cost_plus/feeds_validation/online_check - - yweb/video/transcoder/cm/transcoder/cmpy/yg_all_channels_monitor - - yweb/yasap/answers/answers/utils - - zen/mstand/squeeze_zen/session_yt - - zen/mstand/squeeze_zen/utils - - zen/yweb/video/faas/lib/taskctx - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/second_step_interior - - zootopia/analytics/ml/uplift_modeling/experiments_processor/lib - E126: - ignore: - - E126 - prefixes: - - extsearch/audio/generative/ableton_api_client/contrib/aiolo - - infra/skybone-coord/src - - infra/skybone-coord/src/daemon - - infra/deploy_notifications_controller/lib - E127: - ignore: - - E127 - prefixes: - - maps/statistics/validator/task - - addappter/backend/addappter_backoffice/views/tools - - addappter/backend/addappter_partners_api/components - - addappter/libs/fixtures - - adfox/amacs/tests/functional/conftest/bsserver - - adfox/amacs/tests/functional/libs/marshaller - - adfox/amacs/tests/functional/tests_amacs/bugs/large - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/adfox2adfox - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/mob_mediation - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/monetization_type_slot_limits - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/native - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/utils - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/v2 - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/v2/smooth - - adfox/amacs/tests/functional/tests_amacs/effective_id - - adfox/amacs/tests/functional/tests_amacs/identification - - adfox/amacs/tests/functional/tests_amacs/limits/utils - - adfox/amacs/tests/functional/tests_amacs/match_id - - adfox/amacs/tests/functional/tests_amacs/pgpl - - adfox/amacs/tests/functional/tests_amacs/session_json - - adfox/amacs/tests/functional/tests_amacs/sessions - - adfox/amacs/tests/functional/tests_amacs/targeting/browser - - adfox/amacs/tests/functional/tests_amacs/targeting/frequency - - adfox/amacs/tests/functional/tests_amacs/targeting/udp - - adfox/amacs/tests/functional/tests_amacs/targeting/udp_in_puids - - adfox/amacs/tests/functional/tests_amacs/template - - adfox/amacs/tests/functional/tests_amacs/ya_rtb - - adfox/amacs/tests/functional/tests_amacs/yabs - - adfox/amacs/tests/functional/tests_amacs/yabs/utils - - adfox/amacs/tests/functional/utils - - adfox/amacs/tests/functional/utils/xpd - - adfox/broker_notify/tests/functional/utils - - adfox/qa/shm/atlas_to_database/bin - - adfox/xpd/tests/functional/tests/iscrypta_service - - adfox/xpd/tests/functional/tests/socdem_service - - ads/factor_check/matrixnet/lib - - ads/factor_check/tools/missed_logs - - ads/fast_rank/metrics - - ads/libs/py_autobudget - - ads/libs/py_calc_tools/py-modules - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreduce_yt - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_ml_factors/mt/baseline_model - - ads/libs/py_prgmg - - ads/ml_monitoring/api/lib - - ads/quality/adv_machine/cm_robot/cmpy/config - - ads/quality/adv_machine/scripts/cluster_master - - ads/quality/adv_machine/scripts/preprocess_autotargetting_pool - - ads/quality/adv_machine/scripts/stage_runner_visualizer/lib/node_renderer - - ads/quality/apc/prgmgv3/test_yt_pool - - ads/quality/apc/prgmgv3/workflow_constructor/lib - - ads/quality/apc_check_py - - ads/quality/bid_correction/lib - - ads/quality/experiments/bq_clusters - - ads/quality/ltp/libs/build_pool - - ads/quality/ltp/libs/featurist/query_runner - - ads/quality/ltp/pytorch/online_learning/experiments/howuz/pool - - ads/quality/max_positions - - ads/quality/search_lm_conv/lib - - ads/quality/simulate_auction_py/lib/optimize - - ads/quality/simulate_auction_py/lib/simulator_wrapper - - ads/quality/simulate_auction_py/lib/trafaret_monitoring/yql - - ads/quality/simulate_auction_py/lib/utils - - ads/quality/simulate_auction_py/scripts/estimate - - ads/sandbox_scripts/factors_stats/lib/processors - - ads/watchman/contrib/apispec-patched/apispec - - ads/watchman/contrib/apispec-patched/apispec/ext/marshmallow - - ads/watchman/experiments/lib - - ads/watchman/timeline/api/bin/timeline_db_manager - - ads/watchman/timeline/api/tests/integration_tests - - advq/generation/common/generators/phits_index_uploader - - advq/generation/common/queries - - advq/generation/common/util - - advq/generation/common23/util - - advq/tools/b2b - - alice/acceptance/modules/check_analytics_info/lib - - alice/analytics/operations/dialog/sessions - - alice/analytics/operations/timespent/timespent_precompute - - alice/analytics/utils/nirvana - - alice/analytics/wer - - alice/analytics/wer/lib - - alice/apphost/library - - alice/boltalka/generative/training/data/nn/bart - - alice/hollywood/library/python/testing/stubber - - alice/hollywood/library/scenarios/how_to_spell/it2 - - alice/megamind/mit/library/generator - - alice/megamind/mit/library/graphs_util - - alice/megamind/mit/library/stubber - - alice/uniproxy/library/backends_common - - alice/vins/apps/personal_assistant/personal_assistant - - alice/vins/core/vins_core/nlu - - alice/vins/core/vins_core/test - - alice/vins_contrib/yandex-normalizer-general-0.1.1/normalizer_general/general - - analytics/ecosystem/business_indicators/goals - - antiadblock/cryprox/cryprox/common - - antiadblock/cryprox/cryprox/config - - antiadblock/monrelay/samogon/plugin - - antirobot/cbb/cbb_django/cbb/library - - antirobot/cbb/cbb_django/cbb/models/block - - antirobot/cbb/cbb_django/cbb/models/history - - antirobot/daemon/arcadia_test/util - - apphost/api/service/tests - - apphost/tools/app_host_launcher/setup - - april/web/bas/bm/tests/templatetags - - april/web/bas/ca - - april/web/bas/cpa/forms - - april/web/bas/qa - - april/web/bas/qa/serializers - - autobudget/bidder/lib - - balancer/test/functional/srcrwr - - balancer/test/hpack - - balancer/test/hpack/data - - balancer/test/util/dnsfake - - billing/apikeys/apikeys/butils_port - - billing/apikeys/apikeys/mapper - - billing/apikeys/apikeys/startrek_wrapper - - billing/apikeys/apikeys/tarifficator - - billing/apikeys/tests - - billing/apikeys/tests/startrek_wrapper - - billing/apikeys/tests/tarifficator - - billing/dwh/src/dwh/grocery - - billing/dwh/src/dwh/grocery/dcs/export - - billing/dwh/src/dwh/grocery/dcs/export/common - - billing/dwh/src/dwh/grocery/dcs/export/contracts/balance_common - - billing/log_tariffication/py/tests/integration/core_tariff - - billing/log_tariffication/py/tests/integration/partner_tariff - - captcha/metrics/leftover_images - - catboost/yandex_specific/tools/pool_storage_ops/lib - - cloud/analytics/scripts/sb_timeout_analyze - - cloud/blockstore/public/sdk/python/client/ut - - cloud/iam/resource_reaper_tools/autodelete - - cloud/iam/ydb_tools/backup/lib - - cloud/iam/ydb_tools/reindex - - cloud/iam/ydb_tools/set_default - - cloud/iam/ydb_tools/ydb_copy - - cloud/marketplace/api/yc_marketplace/private_api - - cloud/marketplace/api/yc_marketplace/public_api/manage - - cloud/marketplace/functests/tests - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/update_chunks_counters - - cloud/mdb/pg/pgproxy/s3db/scripts/util - - cloud/support/metrics/metrics_collector - - cloud/support/metrics/metrics_collector/objects - - cloud/support/tools/quotactl-l2/quota/utils - - cloud/support/tools/websaint/app/saint - - cmnt/tools/regression/request_classes - - cmnt/tools/request_generator - - comdep_analytics/client_clustering/lib - - comdep_analytics/comdep_recsys/etl_core/utils - - comdep_analytics/revenue_forecasting/lib - - crm/infra/pymonitor - - crypta/audience/lib/tasks/audience - - crypta/audience/lib/tasks/lookalike - - crypta/dmp/adobe/bin/parse_raw_bindings/bin/test - - crypta/lib/python/bt/workflow/test - - crypta/lib/python/yt/schema_utils - - crypta/lookalike/lib/python/utils/test - - crypta/lookalike/services/calc_metrika_counter_audiences/bin/test - - crypta/web/dating/back - - cv/cbir_search/face_ban/check_faces - - cv/cbir_search/intent_classifier/parse_intent_factors - - cv/cbir_search/izi_travel - - cv/cbir_search/onto_ext_data/create_pictures_state - - cv/cbir_search/onto_ext_data/create_selebrity_state - - cv/cbir_search/tools/market/reuse_market_assessments - - cv/cbir_search/tools/similar_pool/grep_factors_from_middle - - cv/cbir_search/tools/similar_pool/prepare_queries_for_assessment - - cv/cbir_search/tools/similar_pool/scrape_serp_from_middle - - cv/cbir_search/yt_classifier/metrics - - cv/imageproc/ocr/tools/database_extraction/nirvana/convert_synth_text_to_labeling - - cv/imageproc/ocr/tools/database_extraction/nirvana/docx_generation/draw_binary - - cv/imageproc/ocr/tools/database_extraction/nirvana/get_images_urls - - cv/imageproc/ocr/tools/database_extraction/nirvana/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/database_extraction/nirvana/imgaug - - cv/imageproc/ocr/tools/database_extraction/nirvana/remove_md5_dup - - cv/imageproc/ocr/tools/database_extraction/nirvana/synth_to_ocr_labelling - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/extract_pdf_boxes - - cv/imageproc/ocr/tools/ocr_api_log_processing/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/statistic/auto_tests/ocr_test_lib/api_wrapper - - cv/imageproc/ocr/tools/statistic/ocr_intent_statistic - - cv/imageproc/ocr/tools/toloka_labeling/common - - cv/imageproc/ocr/tools/toloka_labeling/studier/add_screenshot_info - - cv/verticals/auto_ru/reconstruct_360/visualize - - datacloud/batch/lib - - datacloud/dev_utils/validators - - datacloud/features/cluster/tests/yt_tests - - datacloud/ml_utils/kmeans/lib - - devtools/codenav/pyndexer - - devtools/local_cache/toolscache/tests/medium - - devtools/project-insights/analytics/arc_size - - devtools/subbotnik - - devtools/ya/build - - devtools/ya/build/genconf - - devtools/ya/ide - - devtools/ya/jbuild/gen/actions - - devtools/ya/tools/ycmerge/tests - - devtools/ya/yalibrary/ggaas/builders - - dict/moria/nirvana/context/find_hypot_in_query - - dict/mt/analytics/dashboards/human_eval/sbs/vh - - dict/mt/analytics/make/modules/highlight_diff/lib - - dict/mt/analytics/programs/ocr/translate_ocr - - dict/mt/analytics/sentence_breaking/toloka_binary/lib - - dict/mt/eval/eval_viewer/lib/spec/mt - - dict/mt/g2p/asr/ytviewer - - dict/mt/make/modules/corpus_generation/aligner/tests - - dict/mt/make/processes/gen_pta_gender_markup/lib/tests - - dict/mt/scripts/new_polishing/bin/parse_dictionaries - - direct/infra/mysql_manager/libs - - direct/infra/mysql_manager/zkguard - - direct/libs/python/direct-log - - direct/scripts-tests - - direct/solo/registered/alert/infra/logshatter - - direct/solo/registered/alert/infra/mdb/mysql - - disk/admin/conductor-sync/conductor_sync/core - - disk/admin/utils/du_spec_cp - - disk/notifier/sandbox - - distribution_interface/backend/backend/kraken - - distribution_interface/backend/backend/users - - dj/nirvana/nirvana_make - - dj/nirvana/operations/dj/dssm/profile_to_dssm - - dj/nirvana/operations/dj/train/build_pool_time_interval - - dj/nirvana/operations/dj/train/make_neighborhood_model_dataset - - dj/nirvana/operations/ml/bert4rec/tf_train - - dj/nirvana/operations/ml/lstm/tf_train - - dj/nirvana/operations/yql - - dj/nirvana/operations/yql/yql - - dj/services/alisa_skills/server/tests - - dj/services/ydo/python_config - - dj/tools/quality_stand/operations/als/unpack_config - - dj/tools/resource_loaders/resource_yt_loader - - education/schoolbook/services/studies/it/test_endpoints/test_study - - education/schoolbook/services/studies/it/test_endpoints/test_study_content - - education/services/checking_system/marker_checker/it/api/v1 - - education/services/checking_system/marker_checker/lib/markers - - entity/ontodb/tasks/import_persons_to_saas/lib - - entity/recommender/nirvana/operations/abt_experiments_launcher - - entity/recommender/nirvana/operations/build_tops_profiles/lib - - extsearch/audio/deepdive/tools/apply_sandbox_toloka - - extsearch/audio/yamrec/radio_listener/lib - - extsearch/collections/tools/logs_queries_processor - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/images/devops/redirect-calls - - extsearch/images/razladki/yt_razladki - - extsearch/images/related_queries/tools/metrics_api - - extsearch/images/robot/commercial/pytools/commercial_utils/state_tools - - extsearch/images/robot/index/link_selector/serp_links_downloader - - extsearch/images/robot/mrdb/bigthumbs - - extsearch/images/robot/rtcvdup/merger_tools/groups_merger - - extsearch/images/robot/rtcvdup/viewer - - extsearch/images/robot/rtrobot/panel - - extsearch/images/robot/tools/callisto_helper - - extsearch/unisearch/category_tree/bin - - extsearch/unisearch/medicine/data_processing/data_classes - - extsearch/video/functionality/fastdelivery/find_ontoids_films - - extsearch/video/quality/suggest/common - - extsearch/video/robot/cm/crawl/cmpy/authors - - extsearch/video/robot/cm/vicont/cmpy/basesigs - - extsearch/video/robot/hostsdb/tool/config/add_rules - - extsearch/video/robot/rt_transcoder/dhdaas - - extsearch/video/robot/youtube_grabber/ugc/yt_monitor - - extsearch/video/vh/lb2cms - - extsearch/younglings/education/tests - - games/admin/background_modules - - games/admin/bin/filter_games - - geoproduct/amocrm/processes/bin/balancers/quality_task - - geoproduct/amocrm/quality_control/sla_checker - - glycine/api - - infra/auth_controller/it/scripts/roles_behaviour_tests - - infra/callisto/agent/v2 - - infra/callisto/controllers/shard - - infra/callisto/controllers/user/jupiter - - infra/callisto/controllers/utils - - infra/clusterstate/services/alpha - - infra/deploy/dri/lib - - infra/deploy/dri/logbroker - - infra/deploy_notifications_controller/lib - - infra/diskmanager/lib - - infra/environments/builder - - infra/gosky/src/gosky - - infra/kernel/test/misc - - infra/kernel/test/misc/kern - - infra/kernel/tools/menu/lib - - infra/nanny/nanny_sox_audit/src/nanny_sox_audit - - infra/qemu/lib/qemutool/qemutool/guest - - infra/qyp/vmctl/src - - infra/rtc/certman - - infra/rtc/iolimit_ticketer - - infra/skyboned/go/test - - infra/yasm/gateway/lib/handlers - - infra/yasm/yasmapi - - infra/yp_quota_distributor/db_operations - - infra/yt/lib/yt_ssh_swarm/cypress_synchronizer - - intranet/plan/tests/unit/duty - - inventori/etl - - inventori/pylibs/solomon - - ipreg/geogenerator/bin/RIR/RIPE - - ipreg/geogenerator/bin/reliability_around - - ipreg/python/ipreg-parse-noc - - k50/infra/services/solo_fe/registry/alert - - kernel/ugc/aggregation/python/ut - - keyboard/analytics/toloka/daemon/tests - - kikimr/ci/tests/ratelimiter - - kikimr/tools/benchmarks/slo_workloads/python/utils - - kikimr/tools/monitoring/tests - - kikimr/yf/tests/ydb - - lbs/base_building/build_clusters_gsm - - lbs/viewer - - library/python/monitoring/solo/helpers/yt - - library/python/ssh_client - - load/projects/firestarter/src - - load/projects/firestarter/tests - - load/projects/tankapi_cmd/src - - load/projects/tasklets/shooting/py_impl - - locdoc/doc_tools/yoda/friends/okapi - - logbroker/scripts/checks - - logbroker/tools/manual/entity_responsibles - - logbroker/tools/manual/topic_quotas_migration - - logbroker/unified_agent/tools/ua_recipe - - logfeller/python/logfeller/infra/release/nirvactor/connectors - - logfeller/python/logfeller/infra/tornado_requests - - logfeller/python/logfeller/infra/yt/commands - - logfeller/python/logfeller/infra/yt/tests/yt_tests - - logfeller/python/logfeller/infra/yt/util - - logos/libs/precommit_validators - - logos/projects/ads/tasks/ads_map_and_join_simulator_log_raw - - mail/borador/src - - mail/library/python/json_value/tests - - mail/python/theatre/stages/db_stats/roles - - mail/sheltie/tests/unit/python - - mail/tools/dbaas/bin/migrate_shards - - mail/tools/infra - - maps/adv/analytics/regular/campaign_cube - - maps/adv/analytics/regular/campaigns_info_tier1 - - maps/adv/analytics/regular/churn_of_clients_and_money - - maps/adv/analytics/regular/event_money_for_dwh - - maps/adv/analytics/regular/geodisplay_clients_flatten - - maps/adv/analytics/regular/heatmaps_capacity - - maps/adv/analytics/regular/impressions_accept_stats - - maps/adv/analytics/regular/income_forecast - - maps/adv/analytics/regular/lost_money_by_day - - maps/adv/analytics/regular/lost_profit_by_campaigns - - maps/adv/analytics/regular/prolongation_of_clients - - maps/analytics/datasets/routes/mobile-maps - - maps/automotive/tools/key_resetter/bin - - maps/automotive/tools/statistics_auto/bin/build_tracks - - maps/automotive/tools/statistics_auto/pylib/calc_hu_offline - - maps/b2bgeo/mvrp_solver/backend/tools/failed_tasks/task - - maps/b2bgeo/test_lib - - maps/garden/libs/coverage - - maps/garden/libs/geocoder/export - - maps/garden/libs/geocoder/indexer - - maps/garden/libs/search_data_validation/modules_lib - - maps/garden/modules/indoor_radiomap/lib - - maps/garden/modules/offline_search_cache_validator/lib - - maps/garden/sandbox/yt_stats_collector/lib - - maps/garden/sdk/core - - maps/geoq/experiments/check_poi_rendering - - maps/geoq/hypotheses/entrance/lib - - maps/goods/tools/avatars_cleaner/bin - - maps/infra/ecstatic/tool/ut - - maps/masstransit/tools/gtfs_utils/converter/lib - - maps/masstransit/tools/gtfs_utils/converter/tests - - maps/masstransit/tools/upload_rasp_yt_tables/lib - - maps/mobile/server/proxy/shared/maps_mobile_handles_generator/bin - - maps/mobile/tools/licenses_printer - - maps/photos/backoffice/tools/toloka/toloka_pipeline - - maps/poi/notification/lib - - maps/poi/streetview_poi/toloka_tool/bin - - maps/pylibs/dataset_collector - - maps/pylibs/dataset_collector/tests - - maps/pylibs/fixtures - - maps/realty/jams_generator/lib - - maps/renderer/tilesgen/tools/lib - - maps/search/geocoder/segmenter/grammar/converter/lib - - maps/search/libs/transliteration/tests - - maps/statistics/external/traffic_lights/lib - - maps/statistics/hypgen/masstransit_hypothesis/calc_route_change_hypothesis - - maps/tools/package_releaser/lib - - maps/wikimap/feedback/pushes/entrances/prepare_entrances/tests - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki/tasks - - maps/wikimap/mapspro/libs/python/tests/revision - - maps/wikimap/mapspro/services/tasks/fastcgi/lib - - maps/wikimap/stat/kpi/valuable_edits/report/tests - - market/access/puller/beam - - market/assortment/ecom_log/lib/extract_source - - market/dynamic_pricing/pricing/dynamic_pricing/prepare_stats - - market/forecast/ff_gross_forecast/tasks - - market/greenlinks/lib - - market/guru-models-dumper/suggests_storage/tests - - market/guru-models-dumper/tests - - market/library/shiny/external/s3/beam - - market/mobile/beru/performance-diagnostic/lib/blueprints - - market/opsmode/delivery_report_parser/src/transforming - - market/pinger-report/lib - - market/pylibrary/database/tests - - market/pylibrary/hammer/tests - - market/sre/conf/config-monitoring-market/bin/check_hbf - - market/sre/services/mindexer-clt-api/mindexer_clt_api - - market/sre/tools/capacityV2/mcapacity_tool/lib/yt - - market/tools/code_generator - - market/tools/outdated_report_experiments - - mds/s3/tasklets/teamcity/impl - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/nirvana/dataset_description_lib - - ml/tensorflow/tfnn/src/tfnn/layers - - ml/tensorflow/tfnn/src/tfnn/ops/sliced_argmax - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/inference - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/models - - ml/tensorflow/tfnn/tests/seq2seq - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats_for_text_models - - mlp/overdraft/utils/build_target - - modadvert/bigmod/scripts/lib - - modadvert/bigmod/tools/alert_manager - - modadvert/libs/lyncher/factor_providers/yt_lookup_filter - - modadvert/nirvana/save_clusterized/libs - - mssngr/router/tests/lib - - music/analytics/jam-sox/music_lib/financial_reports/financial_reports/jobs/authors/glue_streams_to_claims - - music/tools/download-info - - noc/comocutor-contrib/utils - - noc/pahom/src/spotter/utils - - ofd/runtime/new/lib - - orgvisits/export/unite_methods - - orgvisits/heuristics/wifi/data/clusters_simple - - orgvisits/user/orgvisits_interests - - orgvisits/user/orgvisits_interests/common - - ott/drm/jobs/sup2manifest/src/manifest - - passport/backend/core/test/test_utils/tests - - passport/backend/library/isort - - passport/backend/vault/api/tests/commands - - passport/backend/vault/api/tests/common - - passport/backend/vault/api/tests/views - - payplatform/findep/ICO - - plus/analytics/targeting/collect_transactions - - plus/utils/mediabilling - - products/metrics/search_empty_serps - - quality/ab_testing/scripts/ems/library/ab_calculations/stat_fetcher - - quality/ab_testing/scripts/excomer2/lib - - quality/antifraud/scripts/prod/ugc_monitoring - - quality/functionality/chats/feedback/src/feedback/core/formatters/api - - quality/functionality/chats/feedback/src/feedback/core/models - - quality/functionality/chats/floyd/src/floyd/core/celery_tasks - - quality/functionality/chats/floyd/src/tests/api/plain/views - - quality/functionality/entity_search/factqueries/online_aliases/classifiers/fetch_factors - - quality/functionality/facts/highlighting/bert/row_processors/highlighter - - quality/functionality/facts/tools/crits_monitoring - - quality/functionality/facts/tools/promo_facts_updater - - quality/functionality/parsepl/nirvana/parse_microdata/tests/converters - - quality/functionality/parsepl/nirvana/parse_microdata/tests/generator - - quality/functionality/scripts/psuh/HomeWorkLib/third_party/geopy/geopy/geocoders - - quality/functionality/scripts/surplusplus/mt_squeeze - - quality/functionality/scripts/yt_combine_chunks - - quality/functionality/turbo/autoparser/new_autoparser/model/lib - - quality/functionality/turbo/autoparser/new_autoparser/model/tests - - quality/functionality/turbo/forms/app/tests - - quality/functionality/turbo/merger/ut/medium - - quality/functionality/turbo/saas_pull_process/tests - - quality/functionality/turbo/special_snippets/lib - - quality/logs/baobab/api/python/baobab/common - - quality/logs/baobab/examples/python/libra - - quality/neural_net/bert/bert - - quality/neural_net/bert/bert/export_split_bert - - quality/neural_net/bert/bert/models - - quality/neural_net/bert/bert/models/base_bert - - quality/neural_net/bert/bert/models/split - - quality/neural_net/bert/bert/pytorch - - quality/neural_net/bert/bert/pytorch/deepspeed/pretraining - - quality/neural_net/bert/bert/pytorch/pruning - - quality/neural_net/bert/bert/row_processors/finetune - - quality/neural_net/bert/bert/row_processors/mlm - - quality/neural_net/bert/bert/utils/distributed - - quality/neural_net/bert/bert/utils/hooks - - quality/neural_net/bert/tools/autobert/autobert_2/library/utils - - quality/neural_net/bert/tools/autobert/builders - - quality/neural_net/bert/tools/convert_lm_to_tfnn - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/prepare_ab_input/external_tests - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/process_ab_result - - quality/nirvana_tools/conveyor_operations/bert/list_bert_models - - quality/nirvana_tools/conveyor_operations/findurl/loss_stat_builder/external_tests - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/lib - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_mlm_json - - quality/nirvana_tools/conveyor_operations/online_stove/plot_metrics - - quality/nirvana_tools/conveyor_operations/stove/run_simple_opt - - quality/nirvana_tools/nirvana_operation/updater - - quality/relev_tools/dsat/find_words_with_absent_forms - - quality/tools/multi_eval_tools/perun_multitarget_eval - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/user_sessions/libra/tests - - quality/user_sessions/libra3/tests - - quality/user_sessions/market/custom_statistics/cust/abtypes/orders - - quality/user_sessions/py_amon/images_cbir_common - - quality/vanadium/vancache - - quasar/infra/tasklets/clean_s3/impl - - quasar/infra/tasklets/deploy_rtmr_minidump_query/impl - - quasar/infra/tasklets/export_emails_for_onboarding/impl - - quasar/infra/tasklets/make_quasmodrom_groups/impl - - quasar/manifest_scripts/manifestlib - - quasar/manifest_scripts/migrate_tool - - regulargeo/orgvisits/saas_upload_check - - regulargeo/v2/clustering/lib - - robot/lemur/ci_yt/ytlib - - robot/lemur/scripts/common - - robot/metrics/social_sbr/get_langs - - robot/metrics/social_sbr/prepare_to_limbo - - robot/metrics/social_sbr/tools - - robot/rthub/test/turbo/medium/turbo_test_lib - - robot/salmon_agent/core - - robot/samovar/tools/deployer - - rt-research/bannerland/resource_generation/update_dyn_trashfilter/lib - - rt-research/monitoring/atoms/calculate_atoms - - rt-research/monitoring/solomon/alerts/configs - - rtmapreduce/config/user_tasks - - saas/library/python/shardmap - - saas/library/python/yasm - - saas/tools/abcd/api/blueprints - - saas/tools/detach_to_yt - - saas/tools/devops/ssm_quota_sync - - saas/tools/refresh_mon/utils - - saas/tools/user_if/ssm-front/backend - - saas/tools/user_if/ssm-front/backend/forms - - sandbox/projects/Afisha/deploy/common/AfishaPreRelease - - sandbox/projects/Afisha/infra/AfishaStPinger - - sandbox/projects/Afisha/infra/AfishaStPinger/helpers - - sandbox/projects/BuildConveyorDashboard - - sandbox/projects/BuildConveyorDashboardBusinessLogic - - sandbox/projects/BuildConveyorDashboardCacher - - sandbox/projects/BuildConveyorDashboardFront - - sandbox/projects/BuildConveyorDashboardFrontProxy - - sandbox/projects/BuildConveyorDashboardMk2 - - sandbox/projects/BuildConveyorDashboardMk2Test - - sandbox/projects/BuildExpMRServer - - sandbox/projects/BuildExperimentsAdminkaEnv - - sandbox/projects/BuildImproxyBundle - - sandbox/projects/BuildKiwiTriggers - - sandbox/projects/BuildLemur - - sandbox/projects/BuildLibOpenssl - - sandbox/projects/BuildRTLine - - sandbox/projects/BuildRtyServer - - sandbox/projects/BuildRtyserverUtils - - sandbox/projects/BuildSepelib - - sandbox/projects/BuildSportPushApi - - sandbox/projects/BuildSwitchAdminka - - sandbox/projects/BuildUkrop - - sandbox/projects/BuildUkropExt - - sandbox/projects/BuildUzor - - sandbox/projects/BuildYobject - - sandbox/projects/BuildZookeeper - - sandbox/projects/CalcSimilarOrgs - - sandbox/projects/CalcSimilarOrgsHypotheses - - sandbox/projects/CocaineLayersExportToRegistry - - sandbox/projects/CompareEventlogStats - - sandbox/projects/CompareYmakeDump - - sandbox/projects/EntitySearch/EntitySearchApphostShooter - - sandbox/projects/EntitySearch/EntitySearchTrunkTest - - sandbox/projects/ExportGencfgToCauth - - sandbox/projects/ExtractPantherGuts - - sandbox/projects/GenerateLinearModelShardingBase - - sandbox/projects/GenerateUsersQueries - - sandbox/projects/GetImagesRatedUrls - - sandbox/projects/IexBuildBins - - sandbox/projects/ImproxyGenerateRequests - - sandbox/projects/MediaLib - - sandbox/projects/MediaLib/ydl - - sandbox/projects/Molly/MollyReqMiner/utils - - sandbox/projects/RunPythonScript - - sandbox/projects/TestFrontMetricsLogs/modules - - sandbox/projects/TestRTYServerUnit - - sandbox/projects/TestReportUnitCoverage - - sandbox/projects/TestThumbDaemon - - sandbox/projects/UpdateConfigGeneratorDb - - sandbox/projects/VideoBuildUnbanRaw - - sandbox/projects/VideoBuildVegasConfig - - sandbox/projects/WizardRuntimeBuild/ya_make - - sandbox/projects/WmsSupport/Eva_monitoring - - sandbox/projects/adfox/hourly_update_counters - - sandbox/projects/adv_machine/common - - sandbox/projects/alice_evo/common/nirvana - - sandbox/projects/avia/send_metrics_from_metrics_to_yt - - sandbox/projects/clickhouse/util - - sandbox/projects/devops/DynBalancerStats - - sandbox/projects/geosearch/AcceptanceGeobasesearchDatabase - - sandbox/projects/geosearch/AddrsBaseDatabaseYtBuild - - sandbox/projects/geosearch/AddrsMapkitCompareTest - - sandbox/projects/geosearch/AddrsRatingsTest - - sandbox/projects/geosearch/BuildAddrsBaseAdditionalResources - - sandbox/projects/geosearch/BuildAddrsWebIndexann - - sandbox/projects/geosuggest/BuildGeosuggestToponymsData - - sandbox/projects/goods/MakeGoodsShardmapGencfg - - sandbox/projects/hollywood/UpdateHollywoodReleaseTickets - - sandbox/projects/images/ImagesBuildCommercialDataDeployBundle - - sandbox/projects/images/ImagesBuildFastIndexDeployBundle_v2 - - sandbox/projects/images/ImagesBuildMainImtubDeployBundle_v2 - - sandbox/projects/images/ImagesBuildMainIndexDeployBundle_v2 - - sandbox/projects/images/ImagesBuildMetaDeployBundle_v2 - - sandbox/projects/images/ImagesBuildUltraIndexDeployBundle - - sandbox/projects/images/ImagesLoadBasesearchDatabase - - sandbox/projects/images/ImagesPriemkaRtRobot - - sandbox/projects/images/ImagesRatedUrls/GetImagesRatedUrlsNirvanaBased - - sandbox/projects/images/ImagesReleaseReportDataRuntimeBundle - - sandbox/projects/images/basesearch/ImagesTestBasesearchRandom - - sandbox/projects/images/resources/task - - sandbox/projects/images/rim/ImagesBuildMainRimDeployBundle - - sandbox/projects/iss/build_qemu_image_iss_local - - sandbox/projects/iss/import_yp_microservices - - sandbox/projects/market/WHSupport/CheckEvaMonitoring - - sandbox/projects/market/WHSupport/CheckOdPdMonitoring - - sandbox/projects/market/WHSupport/EvaExecutor - - sandbox/projects/market/offline_experience/OfflineUxSupportDutyNotificator - - sandbox/projects/market/wms/WmsBuild - - sandbox/projects/market/wms/WmsBuildDeb - - sandbox/projects/media/admins/MediaQuotasMonitoring - - sandbox/projects/media/admins/jugglerreport - - sandbox/projects/mediabilling/deploy/PlusTestBranch - - sandbox/projects/mobileads/assessors_testing - - sandbox/projects/mssngr/rtc/RtcCreateStFeedbackTask - - sandbox/projects/music/deployment/MusicRestoreMdb - - sandbox/projects/quasar/datasync_uploader/lib - - sandbox/projects/release_machine_tasks/NeedToBackport - - sandbox/projects/taxi/BuildLogisticDispatcher - - sandbox/projects/tsar/upload_tsar_pytorch_to_yt - - sandbox/projects/tycoon/TycoonAdverts - - sandbox/projects/vh/frontend/count_diff - - sandbox/projects/video/priemka/VideoPriemkaBasesearchBinary - - sandbox/projects/video/priemka/VideoRobotPriemka - - sandbox/projects/video/priemka/VideoRobotPriemkaSimple - - sandbox/projects/vins/MegamindPerfTest - - sandbox/projects/wmc/CheckTankerUrls - - sandbox/projects/yabs/CommitHeaven/lib - - sandbox/projects/yabs/SysConstLifetime/const_proto - - sandbox/projects/yabs/SysConstLifetime/sys_const - - sandbox/projects/yabs/auto_supbs_2/lib/matching_funnel_issue_processor - - sandbox/projects/yabs/monitoring/tasks/ABExperimentValidateConfigInfo - - sandbox/projects/yabs/panther/import_linear_model_dump - - sandbox/projects/yabs/qa/tasks/BuildCustomAmmo - - sandbox/projects/yabs/sbyt/table_cleaner - - sandbox/projects/yabs/url_monitoring/input_generator - - sandbox/projects/yane/BuildAndLearn - - sandbox/projects/yane/CalcQuality - - sandbox/projects/yane/TestLight - - sandbox/projects/yane/TestTask - - sandbox/projects/yasm/common - - sandbox/projects/yt/bundle_tasks - - sandbox/projects/yt/common/tasks/YtBuildDefaultUserLayer - - search/geo/tools/basket_gathering_2021/mine_baskets - - search/geo/tools/basket_gathering_2022 - - search/geo/tools/collections/lib - - search/geo/tools/launch_database_build - - search/geo/tools/light_geo_dbd/lib - - search/geo/tools/make_metrics_config - - search/geo/tools/metrics_tools/make_metrics_config - - search/geo/tools/rubric_sbs/orgs_enrichment - - search/geo/tools/task_manager/generators/encyclopedia - - search/geo/tools/task_manager/generators/encyclopedia_2x - - search/metrics/monitoring/core - - search/mon/bot/bot - - search/mon/bot/bot/api - - search/mon/bot/bot/modules - - search/mon/workplace/src/libs/catalog - - search/morty/src/rviewer/clients - - search/pumpkin/yalite_service/libyalite/actions - - search/pumpkin/yalite_service/libyalite/core - - search/scraper/parser_platform/parsers - - search/scraper/parser_platform/parsers/yandex_market/web_search/element_parsers - - search/scraper_over_yt/nirvana/scripts/formatter - - search/scraper_over_yt/package/plugin/configs - - search/tools/woland - - search/tools/woland/lib - - serp/genisync/bin - - smarttv/droideka/tests - - solomon/agent/tests - - sprav/java/editor/scripts - - sprav/mining/botanik_miner - - sprav/tools/short_names_generator/generator - - sprav/tools/short_names_generator/lib - - sprav/tycoon/scripts/aggregate_downtime_for_day - - statbox/nile/nile/drivers/yql/qb2 - - statbox/statkey/reactor/cubes/agency_rewards/product_money_extended_by_acts/v1 - - taxi/antifraud/approver/utils - - taxi/robowarehouse/lib/concepts/registrars_auth - - taxi/robowarehouse/lib/concepts/tests/functional/celery - - taxi/tools/dorblu/dorblu_configs_uploader/lib - - tools/mstand/session_squeezer - - travel/avia/library/python/avia_data/migrations - - travel/avia/library/python/common/models - - travel/avia/library/python/geosearch/views - - travel/avia/library/python/route_search/by_number - - travel/avia/library/python/route_search/tests - - travel/avia/ticket_daemon/ticket_daemon/partners - - travel/avia/ticket_daemon_api/jsonrpc/lib/ydb - - travel/buses/connectors/tests/yabus/common/library - - travel/hotels/devops/sandbox_planner - - travel/hotels/tools/permaroom_builder/builder - - travel/rasp/api_public/api_public/v3/core - - travel/rasp/content/rzdParser - - travel/rasp/export/tests/old_versions/views - - travel/rasp/library/python/geosearch/views - - travel/rasp/library/python/route_search/by_number - - travel/rasp/library/python/route_search/tests - - travel/rasp/library/python/ydb - - travel/rasp/suggests_tasks/tests/generate - - travel/rasp/train_api/train_partners/base/train_details - - vcs/arcanum - - vcs/changeset - - vcs/inv - - vcs/task_service - - vh/recommender/nirvana/operations/resources/get_yt_resource - - voicetech/asr/cloud_engine/vh/bin/vision_train_pipeline - - voicetech/common/voicetable/bin/daily_append - - voicetech/common/voicetable/bin/rotation - - voicetech/common/voicetable/checks/bin/general_voicetable_check - - voicetech/common/voicetable/lib - - voicetech/spotter/difftools/lib - - voicetech/spotter/junk/command_spotter_tools/filterout_ali - - voicetech/spotter/selection_for_annotation/lib - - voicetech/spotter/train/witchcraft/mercury - - voicetech/tools/nirvana/voicetable/backup_meta - - voicetech/tools/nirvana/voicetable/backup_voicetable - - voicetech/vqe/tools/emb_benchmark/package - - weather/archive/bots/nowcastbot - - weather/libs/utils/imgproc - - weather/libs/utils/yt - - weather/ml/formulas/common/filter_rows_by_climate_zone - - weather/ml/nirvana_operations/add_features_from_yt_npz/lib - - weather/workers/exports/yt/s3 - - weather/workers/imports/resorts - - weather/workers/maps/polygon_maps - - web/daemons/begemot/scripts/nanny_tidiness - - web/daemons/begemot/scripts/nanny_tidiness/tests - - yabs/analytics/anomaly_analyzer/src - - yabs/analytics/ml_monitor/fit_catboost - - yabs/analytics/new_traffic_generation/src - - yabs/analytics/traffic_generation/z_2_barnavig_click_counter - - yabs/capture_rate/geo/logic - - yabs/indoor/py_libs/async_tasks - - yabs/interface/yabs-log-service-monitor - - yabs/nanpu/tests/qabs_nanpu_pytest - - yabs/qa/b2b_utils/bsserver_b2b/engine/bs_utils - - yabs/qa/oneshots/inna-kudelkina/BSDEV-86633/test_update_pagedsp - - yabs/qa/oneshots/inna-kudelkina/BSDEV-87032/test_update_pagedsp - - yabs/qa/oneshots/inna-kudelkina/BSDEV-87575/test_update_pagedsp - - yabs/qa/oneshots/mirage/BSSERVER-17717 - - yabs/qa/oneshots/naignatov/BSDEV-81439 - - yabs/qa/oneshots/serge-sobolev/BSSERVER-15417 - - yabs/qa/oneshots/serge-sobolev/BSSERVER-15417-fix/delete - - yabs/qa/preprod-gatekeeper/lib - - yabs/qa/yabs_b2b_tank/qabs/b2b - - yabs/samogon/balancernetdaemon - - yabs/sb-bins/banana_link_validator/check_links - - yabs/sb-bins/zen_notification - - yabs/sbyt/devutils/yt_compare/compareytlib - - yabs/server/cs/importers/brands_info/pylib - - yabs/server/cs/pylibs/retry - - yabs/server/cs/pylibs/settings/test - - yabs/server/infra/grafana/lib - - yabs/server/infra/lib - - yabs/server/test/ft/BSDEV-62813 - - yabs/server/test/ft/BSDEV-77281 - - yabs/server/test/ft/BSDEV-77691 - - yabs/server/test/ft/BSSERVER-10994 - - yabs/server/test/ft/BSSERVER-11192 - - yabs/server/test/ft/BSSERVER-11994 - - yabs/server/test/ft/BSSERVER-12495 - - yabs/server/test/ft/BSSERVER-13562 - - yabs/server/test/ft/BSSERVER-15417 - - yabs/server/test/ft/BSSERVER-15477 - - yabs/server/test/ft/BSSERVER-16319 - - yabs/server/test/ft/BSSERVER-17702 - - yabs/server/test/ft/BSSERVER-18972 - - yabs/server/test/ft/BSSERVER-20512 - - yabs/server/test/ft/BSSERVER-20717 - - yabs/server/test/ft/BSSERVER-2189 - - yabs/server/test/ft/BSSERVER-2977 - - yabs/server/test/ft/BSSERVER-3108 - - yabs/server/test/ft/BSSERVER-3143 - - yabs/server/test/ft/BSSERVER-3734 - - yabs/server/test/ft/BSSERVER-5039 - - yabs/server/test/ft/BSSERVER-5360 - - yabs/server/test/ft/BSSERVER-9277 - - yabs/server/test/ft/BSSERVER-9499 - - yabs/server/test/ft/BSSERVER-9782 - - yabs/server/test/ft/BSSERVER-9961 - - yabs/server/test/ft/DSP-85 - - yabs/server/test/ft/RMP-3301 - - yabs/server/test/ft/ads_adfox/aiming - - yabs/server/test/ft/ads_adfox/metadsp_request - - yabs/server/test/ft/ads_adfox/monitoring - - yabs/server/test/ft/ads_adfox/request_context - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/tools/simulate_timeouts/aggregate - - yabs/stat/url_monitoring2/lib - - yabs/stat/yabs-yt-audit/YT - - yabs/utils/yabs_duty_scheduler/lib - - yabs/vh/cms-pgaas/cms_common/models/content_group - - yabs/vh/cms-pgaas/cms_common/ugc_models - - yabs/vh/cms-pgaas/dao/biz - - yabs/vh/cms-pgaas/ontoid_importer/biz - - yabs/vh/cms-pgaas/resource_importer - - yabs/vh/cms-pgaas/self_service_api/graphql_api/schema/search_vod - - yabs/vh/cms-pgaas/test/ut/faas/faas_checker - - yabs/vh/cms-pgaas/ugc_api_common/graphql_api/schema/video - - yabs/vh/cms-pgaas/ugc_internal_api/base/permissions - - yabs/vh/cms-pgaas/ugc_live_api/lib/api/blueprints - - yabs/vh/cms-pgaas/video_manager/biz - - yabs/vh/frontend/tools/utils - - yaphone/advisor/launcher/views - - yaphone/localization_admin/src/models - - yql/library/test_framework - - yt/admin/luigi/src/luigi/commands/service - - yt/admin/luigi/src/luigi/commands/snapshot - - yt/admin/snapshot_processing/dump_master_snapshot - - yt/admin/snapshot_processing/validate_master_snapshot - - yt/meta_scheduler/tests - - yt/odin-checks/bin/cloud_cpu - - yt/odin-checks/bin/wrapper_files_count - - yt/python/yt/test_helpers - - yt/python/yt/wrapper - - yt/python/yt/yson/tests - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib/algorithms - - yweb/antiporno/cp_conv/scheduler/bin - - yweb/antiporno/duty/fixlist_ops - - yweb/antiporno/hitrobot_porness/pipeline/bin - - yweb/antiporno/illegal_video - - yweb/antiporno/messenger_refs/bin - - yweb/antiporno/nav/lib - - yweb/antiporno/nirvana/operations/self_updateable - - yweb/antiporno/queries_active_learning/apply_pl/src - - yweb/antiporno/queries_active_learning/run_graph/src - - yweb/antiporno/queries_manual_markup/lib - - yweb/antiporno/query_analyzer/ipq_process - - yweb/antiporno/referer_checker/scheduler - - yweb/antiporno/scandal_requests/request_postprocessor/src - - yweb/antiporno/text_classif/lib/text_processing - - yweb/antiporno/ticket_specific/cleanweb_1593 - - yweb/antiporno/toloka/toloka_manager/utils/lib - - yweb/antispam/clean_web/lib/module - - yweb/antispam/clean_web/metrics/create_main_data/src - - yweb/antispam/clean_web/metrics/lib - - yweb/antispam/clean_web/metrics/quality/make_sample/src - - yweb/antispam/scripts/procus/send_filterbanned_count_quick_antispam_formula_stat - - yweb/antispam/searchskk/libs/features/schema/tables - - yweb/antispam/webspam/antiseo/mr_links/countrefs - - yweb/blender/extfactors/tests - - yweb/blender/find_similar_queries/processes_manager - - yweb/blender/queries_classification - - yweb/blender/queries_classification/automatic_learning - - yweb/contentgen/articles_classifier - - yweb/freshness/scripts/sport_pushes - - yweb/news/runtime_scripts/runner - - yweb/peoplesearch/aurora_exchange/tests/scripts_tests - - yweb/robot/limbo/libs - - yweb/robot/metrics/pmusca/graph/generate_graph - - yweb/robot/metrics/pmusca/lib - - yweb/robot/ukrop/nirvana_tools/prepare_mrpool - - yweb/sitelinks/astrolabe/build_bna/candidates/filter_by_region - - yweb/sitelinks/astrolabe/build_bna/naming - - yweb/sitelinks/editor - - yweb/sitelinks/scripts/sitelinks - - yweb/video/transcoder/cm/transcoder/cmpy/ocr - - yweb/video/vparsrobot/v2/tools/yt_runner - - yweb/webscripts/video/metarobot/parsepage/python - - yweb/yasap/answers/answers/celery/periodic - - yweb/yasap/answers/answers_common - - yweb/yasap/pdb/tools/push_notifications - - yweb/yasap/znatoki/znatoki_ctl/lib/commands - - yweb/younglings/tasks/YOUNGLINGS-2310/calculate_request_factors - - yweb/younglings/tasks/YOUNGLINGS-595 - - yweb/younglings/tasks/YOUNGLINGS-758 - - zen/yweb/video/transcoder/signatures/vparsrobot/v2/tools/yt_runner - - zootopia/analytics/drive/source/drive/operations/support/registrations/reg_quality - - zootopia/analytics/ml/uplift_modeling/experiments_processor - - zootopia/analytics/ml/util/cb - - zootopia/analytics/ml/util/logs_context_manager/lib - E128: - ignore: - - E128 - prefixes: - - infra/deploy_notifications_controller/lib - E131: - ignore: - - E131 - prefixes: - - adfox/amacs/tests/functional/tests_amacs/antifraud - - adfox/amacs/tests/functional/tests_amacs/banner_view - - adfox/amacs/tests/functional/tests_amacs/hb_startup - - adfox/amacs/tests/functional/tests_amacs/place_experiment/test_place_experiment - - adfox/amacs/tests/functional/tests_amacs/targeting/udp_in_puids - - adfox/amacs/tests/functional/tests_amacs/yabs - - adfox/broker_notify/tests/functional/test_queue - - ads/libs/py_autobudget/ft/test_attribution_mapper/test_non_spiral_type - - ads/libs/py_autobudget/ft/test_attribution_mapper/test_spiral_type - - ads/libs/py_bid_correction - - ads/quality/autotargeting/debug/order_analysis - - ads/quality/bid_correction/lib - - ads/quality/bid_correction/lm/pconv - - ads/quality/dislikes/mr - - ads/quality/embedding/tools/mx_crosscheck - - ads/quality/ltp/libs/featurist/builders - - ads/quality/max_positions - - ads/quality/tlm/pylib - - ads/tools/ml_spiral - - afisha/infra/libs/mdb - - alice/analytics/operations/priemka/alice_parser/lib - - alice/analytics/operations/timespent/timespent - - antiadblock/tasks/bypass_uids_stat - - antiadblock/tasks/support_money_loss - - apphost/daemons/horizon/src/common/services - - apphost/daemons/horizon/src/server/services - - apphost/daemons/horizon/tests/import - - apphost/daemons/horizon/tests/light/monitoring/generators - - april/multik/stand/import_banners/test - - autobudget/bidder/lib - - balancer/test/functional/icookie - - billing/log_tariffication/py/tests/integration/core_acts - - billing/log_tariffication/py/tests/integration/core_tariff - - billing/log_tariffication/py/tests/integration/partner_tariff - - billing/log_tariffication/py/tests/integration/partner_tariff_dsp - - catboost/pytest - - catboost/pytest/lib - - cloud/support/tools/quotactl-l2/quota - - cloud/support/tools/websaint/app/saint - - cv/imageproc/ocr/tools/database_extraction/nirvana/imgaug/src/external - - datalens/backend/app/bi_api/tests/db/main - - datalens/backend/app/bi_external_api/bi_external_api - - datalens/backend/app/bi_external_api/bi_external_api/workbook_ops/wb_mod_steps - - datalens/backend/app/bi_external_api/tests - - datalens/backend/app/bi_external_api/tests/unit - - datalens/backend/app/bi_testing_db_provision/bi_testing_db_provision/dao - - datalens/backend/lib/bi_core/bi_core/components - - datalens/backend/lib/bi_core/bi_core/maintenance/crawlers - - datalens/backend/lib/bi_core/bi_core/testing - - datalens/backend/lib/bi_core/tests/db - - devtools/signer/signer/api/v3/serializers - - devtools/signer/signer/publishers - - devtools/signer/signer/signers/mac - - devtools/signer/signer/stats - - devtools/subbotnik - - devtools/ya/core/yarg - - devtools/ya/ide - - devtools/ya/yalibrary/shelf/unshelve - - dict/mt/analytics/sentence_breaking/toloka_binary/lib - - dict/mt/make/db/content - - direct/solo/registered/alert/integrations - - direct/solo/registered/alert/jobs - - direct/solo/registered/alert/transport_queues - - direct/solo/registered/channel - - direct/solo/registered/cluster - - distribution_interface/backend/backend/audi - - distribution_interface/backend/backend/populate - - distribution_interface/backend/backend/statistics - - distribution_interface/backend/backend/users - - distribution_interface/backend/tests/test_platform - - dj/services/goods/config/basesearch/config - - dj/services/mediapers/music/config - - dj/services/ydo/python_config - - drive/analytics/binary/gibdd - - drive/analytics/binary/thiefs - - edadeal/analytics/scripts/MarketingMetrics/MarketingMetricsLib/MarketingMetricsLib - - education/schoolbook/product/workflows/email_cert_processor_workflow - - education/schoolbook/services/solver/src/app/lib/ydb - - education/schoolbook/services/solver/src/migrator/core - - education/schoolbook/services/solver/src/migrator/versions - - education/schoolbook/services/studies/src/app/endpoints/study - - education/schoolbook/services/studies/src/app/endpoints/study_content - - education/services/checking_system/marker_checker/lib/markers/columncalc/generators - - education/services/checking_system/marker_checker/lib/markers/ut - - education/services/enigma/app/settings - - entity/analytics/tools/ner2/eval/lib - - entity/ontodb/tasks/fast_death_pipeline - - entity/recommender/nirvana/operations/abt_experiments_launcher - - entity/recommender/python_config - - extsearch/audio/generative/ableton_api_client/contrib/aiolo - - extsearch/audio/generative/ableton11_client/contrib/AbletonOSC/pythonosc - - extsearch/video/robot/youtube_grabber/ugc/lib - - extsearch/video/vh/tape/lib/ut - - fintech/bnpl/backend/recipe - - games/admin/libs/adsense - - games/admin/libs/clones_finder - - geoproduct/advert_ranking/traffic_prediction/predictor - - geoproduct/aml/user_scripts/yt_replicator - - geotargeting/common/crypta_ids_matching/lib - - infra/callisto/controllers/utils - - infra/reconf_juggler/tools/jdump - - infra/rtc/iolimit_ticketer - - infra/rtc_sla_tentacles/backend/lib/api/handlers - - infra/rtc_sla_tentacles/backend/lib/harvesters/monitoring - - intranet/plan/src/plan/duty - - intranet/plan/src/plan/maintenance - - intranet/plan/src/plan/oebs - - intranet/plan/src/plan/resources - - intranet/plan/src/plan/services/api - - intranet/plan/src/plan/unistat - - intranet/plan/tests/unit/resources - - intranet/watcher/src/watcher/tasks - - intranet/watcher/tests/unit/tasks - - inventori/pylibs/utils - - k50/infra/services/solo_k50/registry/graph - - keyboard/swipe/tools/visualization - - kikimr/ci/libraries/tasks - - kikimr/library/ci/teamcity_core/core - - load/projects/tasklets/shooting/py_impl - - logbroker/tools/manual/get_data_from_logs/common - - logfeller/python/logfeller/infra/release/nirvactor - - logfeller/python/logfeller/infra/release/nirvactor/ut_small - - logos/projects/ads/tasks/ads_currency_rates - - logos/projects/ads/tasks/quorum_machine_proto/lib - - logos/projects/ads/tasks/quorum_machine_proto/lib/selectors - - logos/projects/statkey_py3/tasks/metrika_coverage - - mail/ohio/ohio/storage/mappers - - mail/transfer/ora2pg - - maps/analytics/metrics/routes - - maps/automotive/tools/statistics_auto/pylib/import_metrics - - maps/doc/proto/yandex/maps/proto/bizdir/sps/tests - - maps/garden/libs/geocoder/indexer - - maps/garden/libs/road_graph_over_osm_builder - - maps/garden/libs/search_data_validation/common/test_utils - - maps/garden/libs/search_data_validation/geocoder_validator/lib - - maps/garden/modules/matrix_router_data_validator/lib - - maps/garden/modules/matrix_router_over_osm_data_build/lib - - maps/garden/modules/matrix_router_over_osm_data_validator/lib - - maps/garden/modules/mtr_mpro_export_src/lib - - maps/poi/statistics/altay/lib/ut - - maps/poi/streetview_poi/sign_hypotheses/lib/ut - - maps/poi/unshown_popular_orgs/lib - - maps/statistics/hypgen/closed_roads_bot - - maps/tools/naviguide/tools/simulate/bin - - maps/wikimap/feedback/pushes/barriers/prepare_barriers/lib - - maps/wikimap/feedback/pushes/filter_pushes/bin - - maps/wikimap/jams_arm2/dev/miror/import_db - - maps/wikimap/mapspro/services/tasks/fastcgi/lib - - maps/wikimap/stat/kpi/valuable_edits/report/lib - - market/dynamic_pricing/parsing/full_url_list/update_full_url_list - - market/dynamic_pricing/tools/offline_modeling - - market/forecast/demand_baseline_train/lib/task - - market/forecast/demand_ml_forecast_validation/lib - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/forecast/demand_ml_forecast_validation/lib_v2/models - - market/forecast/demand_ml_forecast_validation/lib_v2/tasks - - market/forecast/elasticity_common/data - - market/forecast/torch_demand/lib/models - - market/forecast/torch_demand/lib/tasks - - market/mstat/cubes-web/lib/blueprints - - market/pinger-report/lib - - market/replenishment/algorithms/legacy/library - - market/replenishment/algorithms/lib/data_preparation - - market/replenishment/algorithms/lib/data_preparation/integrity_checker - - market/replenishment/algorithms/lib/data_preparation/regional_assortment - - market/replenishment/algorithms/lib/data_preparation/simulation_cube - - market/replenishment/algorithms/lib/forecast - - market/replenishment/algorithms/lib/task - - market/replenishment/algorithms/lib23/data_preparation - - market/replenishment/algorithms/lib23/data_preparation/transits - - market/replenishment/algorithms/safety_tool_lib/tasks - - market/replenishment/algorithms/tests/integrity_checker - - market/sre/tools/rtc/nanny/tests/integration-tests - - market/yamarec/log-parsers/tests - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/tensorflow/models/userbert/userbert/modeling/embeddings - - ml/tensorflow/tfnn/src/tfnn/layers - - ml/tensorflow/tfnn/tests - - ml/zeliboba/spark_beyond/tools/convert_qa_results_to_sb_graph - - ml/zeliboba/spark_beyond/tools/convert_qa_results_to_sb_graph/tests - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/inbound - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/outbound - - mssngr/router/tests/chat_mirror_test/lib - - mssngr/router/tests/pylib - - mssngr/router/tools/downtime_yql - - music/analytics/jam-sox/music_lib/financial_reports/financial_reports/related_formats/universal - - noc/hbf-server/tests - - noc/matilda_clickhouse_proxy/tests - - noc/traffic/monitoring/solo - - oebs/bi/essbase_loader - - orgvisits/ugc_features/features_calculation - - paysys/sre/tools/monitorings/configs/balance_app/base - - quality/ab_testing/scripts/ems/ems/metrics/tasks - - quality/ab_testing/scripts/gmv_analytics/order_surplus - - quality/functionality/facts/ml_experiments/bert/0084_info_uber_distill_50 - - quality/functionality/facts/ml_experiments/bert/0085_info_uber_distill_50_balanced - - quality/functionality/rtx/smartcam/math_solver/converter - - quality/functionality/rtx/smartcam/math_solver/converter/tests - - quality/functionality/snippets/featured_snippet/parse_lists_pro - - quality/functionality/turbo/forms/app/tests - - quality/functionality/turbo/forms/job/lib/services - - quality/mstand_metrics/online_production/market/v1/util - - quality/mstand_metrics/online_production/market/v2 - - quality/neural_net/bert/tools/valhalla/pretraining - - quality/nirvana_tools/conveyor_operations/online_stove/get_experiment_data_from_yt/external_tests - - quality/nirvana_tools/conveyor_operations/online_stove/update_arms/external_tests - - quality/relev_tools/ftmoon/table_archive/tests - - repo/pciexpress/db - - robot/quality/crawl_quality_metrics/push_to_solomon_main_metric - - robot/quality/segmentator - - rtmapreduce/config/user_tasks - - saas/library/python/lunapark - - sandbox/projects/avia/send_visits_to_solomon - - sandbox/projects/images/daemons/ImagesCompareRimpatchdaemonResponses - - sandbox/projects/market/mobile/FuckupAlertsNotifier - - sandbox/projects/mssngr/runtime/MssngrRouterLoadTest - - sandbox/projects/nmaps/ugc_assignments/AddressAndSettlementsAssignments - - sandbox/projects/nmaps/ugc_assignments/BarriersPushes - - sandbox/projects/nmaps/ugc_assignments/EntrancesPushes - - sandbox/projects/nmaps/ugc_assignments/common - - sandbox/projects/release_machine/components/configs - - sandbox/projects/release_machine/components/configs/smart_devices - - sandbox/projects/security/ReportFuzzing/startrek - - sandbox/projects/tplatform/count_tier_0_services - - sandbox/projects/vr/jenkins_client - - sandbox/projects/websearch/SearchIntegrationTestsWithRetries - - sandbox/projects/websearch/SearchIntegrationTestsWithRetriesCI - - sandbox/projects/wind/jenkins_client - - sandbox/projects/yabs/auto_supbs_2/lib/matching_funnel_issue_processor - - sandbox/projects/yabs/auto_supbs_2/lib/order_processor_lib - - sandbox/projects/yabs/partner_share/tasks/base_startrek_push_status - - sandbox/projects/yabs/partner_share/tasks/filter_server - - sandbox/projects/yabs/partner_share/tasks/queue - - sandbox/projects/yabs/qa/tasks/CreateYabsMysqlLxcImage - - sandbox/projects/yt/layers_tasks/YtBuildSpravLayerTask - - search/mon/bot/bot/modules - - search/mon/bot/bot/modules/protocols - - search/mon/curators_helper - - search/mon/uchenki/lib/jobs - - search/mon/warden/src/services/reducers - - search/mon/warden/src/workers - - search/priemka/yappy/src/yappy_lib - - search/priemka/yappy/tests/test_model - - search/priemka/yappy/tests/test_model/test_lineage - - smarttv/droideka/tests - - statbox/nile/nile/drivers/common - - statbox/nile/nile/graph - - statbox/nile/tests/cluster - - taxi/antifraud/adhoc/safety_dispatch/graph/dispatch/py_scripts - - taxi/antifraud/xaron/mover/lib/tests - - testenv/core/engine/metatests - - travel/avia/avia_api/avia/api - - travel/avia/avia_api/avia/lib - - travel/avia/avia_api/avia/v1/afl_search - - travel/avia/avia_api/avia/v1/schemas - - travel/avia/avia_api/avia/v1/views - - travel/avia/avia_statistics/alternative_routes_prices_updater/lib - - travel/avia/avia_statistics/flights_updater/lib - - travel/avia/avia_statistics/median_prices_updater/lib - - travel/avia/avia_statistics/min_prices_by_airline_updater/lib - - travel/avia/avia_statistics/popular_months_by_route_updater/lib - - travel/avia/avia_statistics/return_ticket_prices_updater/lib - - travel/avia/avia_statistics/route_crosslinks_updater/lib - - travel/avia/avia_statistics/route_infos_updater/lib - - travel/avia/avia_statistics/routes_updater/lib - - travel/avia/avia_statistics/top_airlines_updater/lib - - travel/avia/avia_statistics/updaters/city_to/city_route_crosslinks_updater/lib - - travel/avia/avia_statistics/updaters/city_to/month_and_year_prices_by_city_to_updater/lib - - travel/avia/avia_statistics/updaters/city_to/nearest_cities_updater/lib - - travel/avia/library/python/ticket_daemon/ydb/banned_variants - - travel/avia/shared_flights/tasks/amadeus_parser/tests - - travel/avia/stat_admin/lib - - travel/avia/ticket_daemon_api/jsonrpc/lib/ydb - - travel/avia/ticket_daemon_processing/pretty_fares/models_utils - - travel/rasp/train_api/tariffs/train/segment_builder - - vh/recommender/nirvana/build_workflow/zen_categs/zen_categs_builder - - voicetech/common/voicetable/bin/toloka2voicetable - - voicetech/spotter/junk/the_modelbox/lib - - voicetech/spotter/online_metrics/lib - - voicetech/tts/training/png_bert/ynmt - - weather/libs/utils/db - - weather/workers/common/clean_satellite - - weather/workers/common/outer_execution - - weather/workers/imports/geobase - - yabs/qa/oneshots/inna-kudelkina/BSDEV-88366/set_exp_group_pages - - yabs/qa/oneshots/naignatov/BSSERVER-16112 - - yabs/qa/tools/paint_cli_report - - yabs/sbyt/testing/scenarios/bigstart/table - - yabs/sbyt/ytstatcollector/direct/tests/content_targetings - - yabs/server/cs/importers/yt_dump/pylib - - yabs/server/cs/pylibs/settings - - yabs/server/cs/test/cs_import/caesar_page - - yabs/server/test/ft/BSDEV-81309 - - yabs/server/test/ft/BSDEV-82197 - - yabs/server/test/ft/BSSERVER-14461 - - yabs/server/test/ft/BSSERVER-14489 - - yabs/server/test/ft/BSSERVER-14904 - - yabs/server/test/ft/BSSERVER-1971 - - yabs/server/test/ft/BSSERVER-3685 - - yabs/server/test/qabs_bsserver_pytest - - yabs/stat/direct_monitoring/libs/checks - - yabs/stat/dropstat2/pylibs/common - - yabs/vh/cms-pgaas/stream_ad_lib/biz - - yabs/vh/cms-pgaas/ugc_api/graphql_api/schema/video - - yabs/vh/cms-pgaas/ugc_live_api/lib/api/blueprints - - ydb/tests/functional/sqs/merge_split_common_table - - ydb/tests/library/sqs - - ydo/analytics/user_session_extraction_tools/worker_stats_accumulator/lib - - yql/tests/cli - - yt/cron/yt_scheduler_monitor/tests - - yt/microservices/access_log_viewer/preprocessing/lib - - yt/python/yt/wrapper - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib/algorithms - - yweb/antimalware/libs/yttools/py - - yweb/antiporno/suggest/aggregate_toloka/src - - yweb/antispam/clean_web/backends/fast_only - - yweb/antispam/clean_web/backends/offline_only - - yweb/antispam/clean_web/backends/offline_only/lib - - yweb/antispam/clean_web/clients/answers - - yweb/antispam/clean_web/clients/collections - - yweb/antispam/clean_web/clients/kinopoisk - - yweb/antispam/clean_web/clients/map_talks - - yweb/antispam/clean_web/clients/market - - yweb/antispam/clean_web/clients/passport - - yweb/antispam/clean_web/clients/tutor - - yweb/antispam/clean_web/clients/tycoon - - yweb/antispam/clean_web/clients/tycoon/lib - - yweb/antispam/clean_web/clients/ugc - - yweb/antispam/clean_web/clients/ugc/lib - - yweb/antispam/clean_web/clients/uslugi - - yweb/antispam/clean_web/clients/videohosting - - yweb/antispam/clean_web/external_services/hitrobot - - yweb/antispam/clean_web/lib - - yweb/antispam/clean_web/lib/module - - yweb/antispam/clean_web/lib/rpc - - yweb/antispam/clean_web/lib/tests/medium/module - - yweb/antispam/clean_web/lib/tests/small - - yweb/antispam/clean_web/lib3/backends - - yweb/antispam/clean_web/messenger/common - - yweb/antispam/clean_web/messenger/lb_reader - - yweb/antispam/clean_web/messenger/lib - - yweb/antispam/clean_web/messenger/lib/module - - yweb/antispam/clean_web/router - - yweb/antispam/clean_web/toloka - - yweb/antispam/scripts/script_lib/test - - yweb/news/news_back/api/common/controller - - yweb/news/news_back/tools/resender_to_annotated/bin - - yweb/video/faas/vh_wrappers/package - - yweb/yasap/answers/answers/utils/the_question - - yweb/yasap/answers/telegram_bot/telegram_bot/lib - - yweb/yasap/answers/tests/test_resources - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/repositories - - yweb/yasap/pdb/tools/push_notifications - - zen/yweb/video/faas/vh_wrappers/package - - zootopia/analytics/drive/source/drive/operations/toloka - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/duplicates_step - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/second_step_exterior - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/second_step_interior - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/select_best_step - - zootopia/analytics/drive/source/drive/operations/toloka/car_damages/backend/selection_step - - zootopia/analytics/ml/uplift_modeling/experiments_processor/lib - E201: - ignore: - - E201 - prefixes: - - infra/deploy_notifications_controller/lib - E202: - ignore: - - E202 - prefixes: - - infra/deploy_notifications_controller/lib - E221: - ignore: - - E221 - prefixes: - - infra/deploy_notifications_controller/lib - E222: - ignore: - - E222 - prefixes: - - infra/deploy_notifications_controller/lib - E225: - ignore: - - E225 - prefixes: - - k50/infra/services/solo_fe/registry/dashboard - - adfox/amacs/tests/functional/tests_amacs/antiscrew - - adfox/amacs/tests/functional/tests_amacs/banner_view - - adfox/amacs/tests/functional/tests_amacs/hb_startup - - adfox/amacs/tests/functional/tests_amacs/session_json - - adfox/amacs/tests/functional/tests_amacs/yabs - - adfox/amacs/tests/functional/tests_amacs/yt - - ads/fast_rank/metrics - - ads/libs/py_autobudget - - ads/ml_engine/learn/result/local_extended_fstr/ut - - ads/pytorch/lib/online_learning/production/processors/deploy_v2_processor - - ads/quality/adv_machine/scripts/cluster_master - - ads/quality/adv_machine/scripts/yp_tools - - ads/quality/apc/prgmgv3/spy/browser_visit_log - - ads/quality/autotargeting/markup/edit_honeypots/blocks - - ads/quality/bid_correction/lm/pconv - - ads/quality/ltp/libs/featurist/ut - - ads/sandbox_scripts/join_yabar/lib - - adv/pcode/zfp/juggler_emulator/lib - - adv/tools/yt/create_table - - advq/grep/fastmatcher/ut/ast - - alice/analytics/ue2e_baskets/collect_basket_graph/src - - alice/analytics/utils/marty/run_nirvana_instance - - alice/hollywood/library/scenarios/tr_navi/handcrafted/it - - alice/nlu/data/ru/test/binary_classifiers/common - - alice/nlu/tools/binary_classifier - - alice/tests/library/scenario - - alice/tests/library/surface/directives - - alice/tools/qloud_format/lib/ut - - alice/uniproxy/library/backends_tts/ut - - alice/uniproxy/tools/perf_tester - - alice/vins_contrib/crfsuitex - - antiadblock/argus/bin - - antiadblock/zfp/juggler_emulator/lib - - antirobot/cbb/cbb_django/cbb/management/commands - - antirobot/cbb/cbb_django/cbb/views - - antirobot/scripts/send_mail - - apphost/conf/tests/src_setup - - apphost/daemons/horizon/tests/daytower - - apphost/lib/data_validation/src/validators - - apphost/tools/app_host_launcher/setup - - autobudget/bidder/lib - - balancer/test/functional/cookie_policy - - balancer/test/functional/icookie - - balancer/test/functional/response_headers - - balancer/test/util/predef/handler/server - - billing/dwh/src/dwh/grocery - - billing/dwh/src/dwh/grocery/dcs/export - - billing/log_tariffication/py/tests/integration/partner_tariff - - build - - cloud/iam/ydb_tools/reindex - - cloud/iam/ydb_tools/set_default - - cloud/iam/ydb_tools/ydb_copy - - cloud/support/tools/quotactl-l2 - - cmnt/tools/regression/lib - - comdep_analytics/comdep_recsys/etl/logic/geo/stats - - comdep_analytics/comdep_recsys/etl/logic/signals/geo - - comdep_analytics/comdep_recsys/etl/logic/web/stats - - comdep_analytics/comdep_recsys/etl_core/utils - - crypta/ml/spine - - crypta/siberia/bin/custom_audience/lib/python/clustering - - crypta/siberia/bin/custom_audience/lib/python/clustering/test/utils - - crypta/web/redirect/src/lib/test - - cv/cbir_search/smart_camera/scenarios/poetry/make_data - - cv/cbir_search/tools/similar_pool/grep_factors_from_middle - - cv/imageproc/ocr/tools/database_extraction/nirvana/gt_charbb_matching - - cv/imageproc/ocr/tools/nirvana/realtime_sbs/generate_acceptance - - cv/imageproc/ocr/tools/toloka_labeling/common - - cv/short2long/training/yt_load_highlights - - devtools/autocheck/partition_metod/uids_by_root_target - - devtools/project-insights/analytics/aggr_main_steps - - devtools/project-insights/analytics/aggr_pr_files - - devtools/project-insights/analytics/aggregate - - devtools/signer/signer/signers/mac - - devtools/ya/build/tests/build_graph_cache_autocheck - - devtools/ya/handlers/dump - - devtools/ya/handlers/java - - devtools/ya/ide - - devtools/ya/jbuild/gen/makelist_parser2 - - devtools/ya/package - - dict/bert/make/lib/models - - dict/bert/make/lib/tasks - - dict/mt/make/db/content/common - - dict/mt/make/modules/corpus - - dict/mt/make/pipeline/nmt/tests_fast - - direct/infra/unsorted/awacs-api-example - - direct/solo/registered/alert/infra/mdb/mysql - - direct/solo/registered/alert/infra/mysql_binlog_age - - direct/solo/registered/alert/integrations - - direct/solo/registered/alert/java_apps - - direct/solo/registered/alert/jobs - - direct/solo/registered/alert/transport_queues - - direct/solo/registered/dashboard - - direct/solo/registered/graph - - direct/solo/registered/juggler - - direct/solo/registered/sensors - - direct/solo/registered/service - - direct/solo/registered/shard - - disk/admin/monitors/telemost_broadcast_restarts - - distribution_interface/backend/backend/ready_reports - - dj/lib/viewer/server - - drive/tools/cores_remover - - education/english/services/aula/app/utils - - education/english/services/rest/app/common - - education/lib/nirvana/graphs - - education/media_platform/services/api/app/schemas - - education/schoolbook/services/solver/it/fixtures - - entity/recommender/vh/profiles/content_id_to_ontoid - - extsearch/audio/deepdive/tools/admin_duty - - extsearch/audio/tools/vh_tools - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/images/devops/release_machine_metrics/library - - extsearch/images/money/scripts/robot/commercial_data - - extsearch/images/money/scripts/robot/market - - extsearch/images/ontosearch/robot/tools/serps_downloader - - extsearch/images/robot/commercial/externaldata/externaldata_script - - extsearch/images/robot/commercial/moneydata/moneydata_script - - extsearch/images/robot/tools/branches_metrics - - extsearch/unisearch/category_tree/bin - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsSeries - - extsearch/video/robot/cm/vicont/cmpy/config - - extsearch/video/robot/previews/hitman/lost_preview_status - - extsearch/video/robot/sbr_metric/sbr_tool - - extsearch/video/robot/tools/s3_uploader - - extsearch/video/robot/youtube_grabber/content_grabber - - games/admin/background_modules - - games/admin/libs/auto_checks - - games/admin/libs/azure - - games/admin/libs/celery - - games/admin/libs/clones_finder - - games/admin/libs/samsara - - geoproduct/advert_ranking/traffic_prediction/nirvana - - geoproduct/bonuses - - geoproduct/bonuses_calculation/from_wiki_to_yt - - infra/callisto/controllers/user/jupiter - - infra/callisto/controllers/user/jupiter/chunks - - infra/dostavlyator/lib/debug - - infra/deploy_notifications_controller/lib - - infra/ebpf-agent/tests - - infra/kernel/test/misc - - infra/kernel/tools/kvm_kernel/builder/lib - - infra/qemu/lib/qemutool/qemutool/guest - - infra/qemu/vmexec - - infra/rtc/jyggalag - - infra/rtc/nodeinfo/lib/sox - - infra/rtc/nodeinfo/lib/tests - - infra/service_controller/monitoring/alerts - - infra/skyboned/go/test - - infra/yp_dns_api/monitoring/alerts - - infra/yp_service_discovery/monitoring/solomon/src - - infra/yp_yandex_dns_export/monitoring/alerts - - infra/yt/jobs/hpl_nccl_test - - infra/yt/jobs/hpl_test - - infra/yt/lib/yt_ssh_swarm/example_job - - infra/yt/lib/yt_ssh_swarm/hpl_tools - - intranet/plan/src/plan/duty/api - - intranet/plan/src/plan/duty/schedulers - - intranet/plan/src/plan/oebs - - intranet/plan/src/plan/resources - - intranet/plan/src/plan/unistat - - intranet/plan/tests/unit/maintenance - - intranet/plan/tests/unit/resources - - intranet/watcher/src/watcher/crud - - intranet/watcher/src/watcher/logic - - intranet/watcher/src/watcher/tasks - - intranet/watcher/tests/api - - intranet/watcher/tests/unit/tasks - - intranet/wiki/src/wiki/api_frontend/serializers/grids/change_grid - - ipreg/geogenerator/bin/RIR/RIPE - - ipreg/python - - k50/infra/services/solo_fe/registry/graph - - k50/infra/services/solo_fe/registry/project - - k50/infra/services/solo_fe/registry/yasm - - keyboard/analytics/metrics/lib/user_settings - - keyboard/analytics/metrics/lib/verticals - - kikimr/ci/tasklets/update_hostgroup/impl - - kikimr/tools/smoke/modules/legacy/logbroker_front - - library/python/monlib/examples/push_to_agent - - load/projects/tankapi_cmd/src - - locdoc/tg_bots/commdesign_bot/handlers - - logbroker/public/client/lib - - logbroker/tools/manual/collect_capacity/analyze_capacity_2020 - - logbroker/tools/manual/collect_capacity/base_2020 - - logbroker/tools/manual/collect_capacity/capacity_2020_2021 - - logbroker/tools/manual/collect_capacity/common - - logbroker/tools/manual/collect_capacity/set_capacity_pre - - logbroker/tools/manual/get_data_from_logs/account_issues - - logbroker/tools/manual/get_data_from_logs/common - - logos/projects/ads/tasks/joined_profile_pytorch_log - - logos/projects/ads/tasks/offer_retargeting_sohil_learn - - logos/projects/ads/tasks/tsar_pytorch_rsya_7d/lib - - logos/projects/ads/tasks/tsar_pytorch_rsya_bc/lib - - logos/tools/gen/task_creator - - mail/monitoring/common - - mail/ohio/ohio/api/handlers - - mail/transfer/ora2pg - - mail/transfer/ora2pg/tests - - mail/transfer/tests/integration_corp/steps - - maps/analytics/legacy/nile/statadhoc-10079-bebr-audience-report - - maps/analytics/lib/geotools/dates - - maps/automotive/libs/large_tests/fake_env - - maps/b2bgeo/libs/py_gozora - - maps/b2bgeo/mvrp_solver/backend/async_backend/tests_lib - - maps/b2bgeo/mvrp_solver/backend/integration_tests/bin - - maps/bicycle/tools/matrix_compare/bin - - maps/bizdir/sps/signal_processor/tests - - maps/garden/sdk/resources/scanners - - maps/garden/sdk/resources/scanners/tests - - maps/garden/tools/stat_updater/lib - - maps/geoq/experiments/check_poi_rendering - - maps/masstransit/tools/compare_routers/lib - - maps/masstransit/tools/s3cleanup/lib - - maps/photos/backoffice/tools/toloka/toloka_pipeline - - maps/poi/streetview_poi/markup_vis/pipelines - - maps/statistics/external/traffic_lights/geometry_lib - - maps/statistics/external/traffic_lights/lib - - maps/statistics/hypgen/masstransit_hypothesis/libs/draw_on_map - - maps/statistics/validator/task - - maps/tools/navi-stat-vis/bin - - maps/tools/navimatcher_quality/lib - - maps/tools/track_selection/toloka/split_tasks - - maps/wikimap/feedback/pushes/addresses/make_pushes/lib - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/car_mask - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/matcher/pylibs - - maps/wikimap/mapspro/services/mrc/eye/experiments/speed_limits/make_speed_limits - - maps/wikimap/mapspro/services/mrc/eye/tool/evaluate_faster_rcnn_keras - - maps/wikimap/mapspro/services/tasks_realtime/src/user_edits_metrics/monitoring/lib - - market/access/server/beam - - market/access/server/mt - - market/amore/output/lbdumper_amore/yatf/utils - - market/assortment/ecom_log/lib/file_keeper - - market/click_n_collect/tools/yt_tables_deployer/library - - market/dynamic_pricing/parsing/tools/exception_list/bin - - market/dynamic_pricing/pricing/common/data_preparation - - market/dynamic_pricing/pricing/manual_pricing - - market/dynamic_pricing/tools/offline_modeling - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/infra/java-application/mj/v1/generate-project-tool/python-script - - market/mstat/cubes-web/lib - - market/pinger-report/lib - - market/pylibrary/s3/yatf/utils - - market/replenishment/algorithms/lib23/data_preparation - - market/replenishment/algorithms/lib23/data_preparation/transits - - market/report/runtime_cloud/report_config - - market/search/services_for_goods/mt/env - - mds/admin/packages/mds-logbackup/lifecycle-rule - - mds/s3/tasklets/conductor/impl - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/nirvana/fml_dc/analyze_formula/ut - - ml/nirvana/fml_dc/get_formula_component - - ml/nirvana/fml_dc/get_formula_component/ut - - ml/nirvana/fml_dc/upload_pool/ut - - ml/nirvana/nope/helpers - - ml/tensorflow/models/userbert/vh3/operations/train_lm - - ml/tensorflow/tfnn/src/tfnn - - ml/tensorflow/tfnn/src/tfnn/layers - - ml/tensorflow/tfnn/src/tfnn/ops/sliced_argmax - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/tools - - ml/tensorflow/tfnn/src/tfnn/tools - - ml/tensorflow/tfnn/src/tfnn/train - - ml/zeliboba/experiments/2021_03_19_stages_boltalka_lm10 - - ml/zeliboba/experiments/2021_04_06_stages_boltalka_lm10_ctrl - - ml/zeliboba/vh3/light - - modadvert/libs/laas/workers/features_from_href - - modadvert/libs/laas/workers/features_from_text - - modadvert/libs/supermoderation/formats - - mssngr/botplatform/src/bots/core/testutils - - music/analytics/jam-sox/music_lib/financial_reports/ott_reports/ott_formats/mg_rhs - - noc/ci/conductor_ticket_create/src - - noc/racktables/netmap - - oebs/bi/ariba/bin - - oebs/bi/ariba/container_bin - - oebs/bi/ariba/lib - - oebs/bi/essbase_loader - - oebs/bi/lib/cdc - - oebs/bi/lib/lb - - oebs/lib/bi_utils/bi_utils/utils - - offline_data/call_center/nirvana/send_sms - - passport/backend/logbroker_client/challenge_pushes/tests - - quality/ab_testing/scripts/ems/ems/metrics/controllers - - quality/antifraud/scripts/dev/fury_local - - quality/antifraud/scripts/dev/pxhf - - quality/antifraud/xurma/tools/prebilling_stat_copier/lib - - quality/functionality/chats/floyd/src/tests/api/plain/views - - quality/functionality/chats/floyd/src/tests/core/ws_handles - - quality/functionality/chats/platform/scenarios/b2b_personal_support - - quality/functionality/entity_search/factqueries/tools/acceptance/generate_report - - quality/functionality/entity_search/factqueries/tools/days_before - - quality/functionality/facts/ml_experiments/bert/0057_base_bert_distill_predict - - quality/functionality/facts/ml_experiments/bert/0065_multi_bert_distill_predict - - quality/functionality/facts/ml_experiments/bert/0078_large_info_bert_predict_10 - - quality/functionality/facts/ml_experiments/bert/0079_large_info_bert_predict_50 - - quality/functionality/snippets/featured_snippet/parse_lists_pro/pylib/test - - quality/functionality/turbo/forms/job/lib - - quality/functionality/turbo/merger/ut/medium - - quality/functionality/turbo/rss/parser_job/tests/medium - - quality/logs/baobab/api/python_arc/ut - - quality/logs/baobab/api/python_arc/ut3 - - quality/market/build_target/mappers - - quality/neural_net/bert/bert/pytorch/data - - quality/neural_net/bert/bert/pytorch/pruning - - quality/neural_net/bert/bert/pytorch/turing - - quality/neural_net/bert/bert/row_processors/mlm - - quality/neural_net/bert/tests/basic - - quality/neural_net/bert/tools/autobert/builders/subgraph_builders - - quality/nirvana_tools/graphs/rated/ussr_base - - quality/personalization/big_rt/backup/lib - - quality/relev_tools/brak/tickets_parsing - - quality/relev_tools/ftmoon/table_archive/tests - - quality/relev_tools/org_sintez_pool/nirvana_blocks/test - - quality/relev_tools/org_sintez_pool/preparat_make_lib/yt_local - - quality/user_sessions/createlib/qb3/tests/create - - quality/user_sessions/money_rt/packages/rt_money_config_generators/generators/event_streamer - - quality/user_sessions/rt/dashboards/solomon - - quality/user_sessions/rt/deploy - - quality/user_sessions/rt/packages/us-rt-config-generators - - repo/pciexpress/celery/common - - robot/jupiter/library/python/quality_acceptance - - robot/kwyt/tools/kwytql - - robot/mercury/test/comparsion_callisto_test - - robot/metrics/social_sbr/channels_sbr - - robot/metrics/social_sbr/get_userdata_sample - - robot/metrics/social_sbr/social_report - - robot/metrics/social_sbr/tools - - robot/metrics/spylog_sbr/stat_report - - robot/quality/host_limit/nirvana/predict_data - - robot/quality/insignificant_cgi_detector/commit_message - - robot/quality/insignificant_cgi_detector/get_cgis_for_ban - - robot/quality/insignificant_cgi_detector/get_state - - robot/quality/insignificant_cgi_detector/get_top_cgis_urls - - robot/quality/insignificant_cgi_detector/get_urls_sample_for_toloka_check - - robot/quality/insignificant_cgi_detector/save_simhash_check_result - - robot/quality/insignificant_cgi_detector/save_toloka_check_results - - robot/quality/insignificant_cgi_detector/toloka_stat - - robot/quality/insignificant_cgi_detector/unpack_toloka_results - - robot/quality/insignificant_cgi_detector/update_rfl - - robot/quality/mobile/nirvana/generate_mobile_hosts - - robot/quality/mobile/tools/canonizer - - robot/quality/nirvana/refererrank/calc_scores_map - - robot/quality/nirvana/refererrank/create_dataset - - robot/quality/nirvana/refererrank/drop_large_keys - - robot/quality/nirvana/refererrank/join_addtime - - robot/quality/nirvana/refererrank/join_userdata_to_referers - - robot/quality/nirvana/refererrank/merge_all_crawl_attempts - - robot/quality/nirvana/refererrank/merge_all_factors_tables - - robot/quality/nirvana/refererrank/merge_all_referers_export - - robot/quality/nirvana/refererrank/premetric_map - - robot/quality/nirvana/refererrank/prepare_for_crawl_attempt_reduce - - robot/quality/nirvana/refererrank/prepare_for_factors_reduce - - robot/quality/nirvana/refererrank/prepare_for_userdata_reduce - - robot/quality/nirvana/refererrank/rename_url_key - - robot/quality/nirvana/refererrank/unique_referers - - robot/quality/nirvana/refererrank/unique_urls - - robot/quality/segmentator - - robot/quality/segmentator_predict - - robot/quality/sendlink_conveyour/tools/column_histo - - robot/quality/sendlink_conveyour/tools/outliers_reduction - - robot/smelter/quality/nirvana/sbr_google/make_querries - - robot/smelter/quality/nirvana/sbr_google/parse_serps - - rt-research/bannerland/cache_avatars/lib - - rtmapreduce/config/gencfg - - rtmapreduce/config/user_tasks - - rtmapreduce/tools/metering/abcd/lib - - rtmapreduce/tools/release_tracker - - saas/tools/devops/lib23 - - sandbox/projects/CollectSpiStat/main - - sandbox/projects/ads/blrt_inference - - sandbox/projects/avia/send_visits_to_solomon - - sandbox/projects/avia/shared_flights/data_importer - - sandbox/projects/avia/shared_flights/flying_time - - sandbox/projects/devops/HardwareGencfgGroups - - sandbox/projects/devops/UpdateGoals - - sandbox/projects/di/build/precommit_checks - - sandbox/projects/finsrv/FinsrvPythonPrecommitCheck - - sandbox/projects/geosearch/AddrsBaseDatabaseYtBuild - - sandbox/projects/geosearch/UpdateMenuConfigs - - sandbox/projects/goods/MakeGoodsShardmapGencfg - - sandbox/projects/images/ImagesReleaseReportDataRuntimeBundle - - sandbox/projects/images/rim/ImagesBuildRimThumbsShootingPlan - - sandbox/projects/impulse/BuildCodeQLQueries - - sandbox/projects/iot/ui/ReleaseBugging - - sandbox/projects/iot/ui/Tables/Testpalm - - sandbox/projects/irt/bmgen/NormAndWordcountDicts - - sandbox/projects/market/WHSupport/EvaExecutor - - sandbox/projects/market/WHSupport/TablesMonitoring - - sandbox/projects/market/common/UpdateResourceAttributes - - sandbox/projects/market/mqm/ImportErrorsFromStartrek - - sandbox/projects/market/offline_experience/OfflineUxSupportDutyNotificator - - sandbox/projects/news/PublishNewsArchiveV2 - - sandbox/projects/news/RunNewsArchiveClusteringV2 - - sandbox/projects/nmaps/ugc_assignments/PrepareUgcPushes - - sandbox/projects/partner/tasks/screenshooter_deploy - - sandbox/projects/quasar/check_release_status/lib - - sandbox/projects/quasar/check_release_status/lib/validate - - sandbox/projects/quasar/image_builds/saturn - - sandbox/projects/quasar/image_builds/yandexstation2/image - - sandbox/projects/quasar/kolhoz/kolhoz_smartspeaker_regression - - sandbox/projects/release_machine/components/configs - - sandbox/projects/release_machine/components/configs/begemot_advq - - sandbox/projects/release_machine/components/configs/begemots - - sandbox/projects/release_machine/components/configs/begemots/testing_config - - sandbox/projects/release_machine/components/configs/geo - - sandbox/projects/release_machine/components/configs/smart_devices - - sandbox/projects/security/gideon/gideon-analytics/dom0-rtc-prod-hosts-parser-task - - sandbox/projects/suggest/dicts/BaseDictionary - - sandbox/projects/telephony/TelephonyNodeTestRunner - - sandbox/projects/user_sessions_rt/releaser - - sandbox/projects/websearch/SearchIntegrationTestsFlaky - - sandbox/projects/websearch/SearchIntegrationTestsWithRetries - - sandbox/projects/websearch/acceptance - - sandbox/projects/websearch/begemot/common/fast_build - - sandbox/projects/yabs/YabsPingUnresolvedProblems - - sandbox/projects/yabs/mobile_ads_sdk/sut/adapters/standalone - - sandbox/projects/yabs/nanpu/sut - - sandbox/projects/yabs/partner_share/lib/integratest - - sandbox/projects/yabs/partner_share/tasks/apply_changes - - sandbox/projects/yabs/partner_share/visualizer - - sandbox/projects/yabs/qa/hamster - - sandbox/projects/yabs/qa/tasks/YabsServerRealRunCSImport - - sandbox/projects/yabs/run_cached - - sandbox/projects/yabs/run_cached_temp - - sandbox/projects/yadrive/YaDrivePumpkinUpdater - - sdg/simulator/ytsim/nirvana/get_alternative_branch - - search/daemons/models_proxy/tests/generator - - search/geo/tools/serp_tools/eda_organic_generator - - search/geo/tools/task_manager/generators/hot_water - - search/geo/tools/task_manager/generators/popular_streets/zeliboba_parser - - search/geo/tools/task_manager/generators/trust_features - - search/geo/tools/task_manager/generators/ugc_aspects - - search/integration_tests/util - - search/mon/curators_helper - - search/mon/uchenki/lib/utils - - search/mon/wabbajack/bin/configurator - - search/mon/warden/src/workers - - search/morty/src/services - - smarttv/droideka - - sport/new_backend/data_processing/olympic/tests - - sprav/tycoon/nirvana/lib/tycoon_api - - statbox/qb2/qb2_extensions/resources - - statbox/statkey/agency_rewards/tools/kwyt_parse_tool - - statbox/statkey/oklo/public/declarators - - statbox/statkey/reactor/actions/readiness - - statbox/statkey/reactor/monitorings/cmp_with_artmon/data_imports/v1 - - sup/stat/rtx_squeeze/push_win_sqz/lib/ut - - taxi/antifraud/adhoc/TAXISECTEAM-8096/parser - - taxi/antifraud/adhoc/safety_dispatch/graph - - taxi/antifraud/eats_fake_rates - - taxi/antifraud/eats_rest_scoring/add_components_to_rest_graph - - taxi/antifraud/eats_rest_scoring/blacklist_neighbours_id - - taxi/antifraud/eats_rest_scoring/send_rests_for_checking - - taxi/antifraud/eats_scoring/util - - taxi/antifraud/purga/score/go/metric - - taxi/antifraud/teleports/reposition - - toloka/analytics/nirvana/operations/aggregation_operations/tests - - tools/releaser/src/lib - - tracker/scripts/jira_to_tracker - - travel/avia/avia_api/avia/lib - - travel/avia/shared_flights/tasks/amadeus_parser/tests - - travel/avia/shared_flights/tasks/schedules_dumper - - travel/avia/stat_admin/data - - travel/avia/stat_admin/data/models - - travel/avia/stat_admin/lib - - travel/avia/stat_admin/scripts - - travel/avia/stat_admin/scripts/cohorts_v2 - - travel/avia/stat_admin/scripts/cohorts_v3 - - travel/hotels/tools/text_builder/data_miner/data_miner - - travel/rasp/api_public/tests/v3/station - - travel/rasp/content/rzdParser - - travel/rasp/infra/tools - - velocity/pulse/shooter - - voicetech/asr/cloud_engine/server/tts/client/py/cli - - voicetech/spotter/embedded/tests - - voicetech/spotter/embedded/tests/neo - - voicetech/spotter/score/yt_lib - - voicetech/spotter/train/witchcraft/wizard/tests - - voicetech/tts/training - - voicetech/tts/training/waveglow - - voicetech/vqe/experiments/dalas - - weather/archive/bots/nowcastbot - - weather/ml/superfact/utils/superfact_results_flatten - - weather/workers/common/clean_satellite - - weather/workers/exports/ydb - - weather/workers/imports/owm - - web/daemons/begemot/scripts/begemot_separation - - yabs/analytics/libs/py - - yabs/analytics/lifeorder_lib - - yabs/indoor/mocks_generator/lib - - yabs/infra/monitorings/yabs_monitorings/deployment_mon - - yabs/models_services/rsya_l3_candidate/inference/tools/requests_generator/lib - - yabs/qa/oneshots/keywords - - yabs/qa/oneshots/sergtaim/BSSERVER-14259/AddKeywordToYT-Via-Simple-IudYtOneshot - - yabs/qa/oneshots/sergtaim/OneshotDev/oneshots/keywords - - yabs/qa/oneshots/sergtaim/OneshotDev/yt_oneshot - - yabs/qa/yt_oneshot - - yabs/sb-bins/zen_notification - - yabs/server/cs/importers/yt_dump/pylib - - yabs/server/test/ft/BSDEV-69385 - - yabs/server/test/ft/BSDEV-85219 - - yabs/server/test/ft/BSDEV-85352 - - yabs/server/test/ft/BSSERVER-16347 - - yabs/server/test/ft/BSSERVER-18008 - - yabs/server/test/ft/BSSERVER-18463 - - yabs/server/test/ft/BSSERVER-18561 - - yabs/server/test/ft/BSSERVER-18615 - - yabs/server/test/ft/BSSERVER-19137 - - yabs/server/test/ft/BSSERVER-19352 - - yabs/server/test/ft/BSSERVER-19448 - - yabs/server/test/ft/BSSERVER-20427 - - yabs/server/test/ft/BSSERVER-21337 - - yabs/server/test/ft/BSSERVER-21779 - - yabs/server/test/ft/BSSERVER-2189 - - yabs/server/test/ft/BSSERVER-22473 - - yabs/server/test/ft/BSSERVER-22647 - - yabs/server/test/ft/BSSERVER-22790 - - yabs/server/test/ft/BSSERVER-23219 - - yabs/server/test/ft/BSSERVER-23371 - - yabs/server/test/ft/BSSERVER-5744 - - yabs/server/test/ft/BSSERVER-5826 - - yabs/server/test/ft/DOOH-1088 - - yabs/server/test/ft/ads_adfox/metadsp_request - - yabs/server/test/qabs_bsserver_pytest/bs_objects - - yabs/solo_yabscs/registry/alert - - yabs/solo_yabscs/registry/alert/baseage - - yabs/stat/dropstat2/pylibs/common - - yabs/stat/dropstat2/pylibs/prepare - - yabs/stat/solo/juggler - - yabs/vh/cms-pgaas/lb/max_unix_time_tool - - yabs/vh/cms-pgaas/ugc_admin_api/lib/api - - yabs/vh/cms-pgaas/ugc_api_common/graphql_api/schema/user - - yabs/vh/cms-pgaas/ugc_live_api/lib/api/blueprints - - ydb/tests/library/sqs - - yp/scripts/pod_history - - yt/cron/cluster_instance_utilities/cmd/locate_obsolete_roles - - yt/cron/cluster_instance_utilities/cmd/locate_permanent_banned_nodes - - yt/cron/node_user_tag_installer/tests - - yt/cron/set_racks/internal - - yt/yt/scripts/add_table_replica - - yweb/antiporno/nirvana/operations/for_suggest/suggestreq_tickets - - yweb/antiporno/nirvana/operations/ncmec - - yweb/antispam/cid/library - - yweb/antispam/cid/phones_base - - yweb/antispam/cid/phones_base/verdict_classifiers - - yweb/antispam/clean_web/clients/answers - - yweb/antispam/clean_web/clients/answers/lib - - yweb/antispam/clean_web/lib/module - - yweb/antispam/searchskk/libs/features/schema/join - - yweb/antispam/searchskk/libs/features/schema/names - - yweb/antispam/searchskk/libs/features/schema/tables - - yweb/antispam/ytgr/legal_loader/library - - yweb/blender/extfactors/tests - - yweb/blender/scripts/make_wizard_ab_metrics - - yweb/blender/special_snippets/metrics/card_by_card/process_cbc_tsv_query_results - - yweb/news/news_back/api/celery/tasks/belarus_bans_parsing - - yweb/news/nirvana/operations/ActionsFromUserSessions - - yweb/news/nirvana/operations/offline_metrics - - yweb/news/ratings/pagerank - - yweb/news/recommender/lib/ut_py - - yweb/news/themes_viewer/app/models - - yweb/rca/server/libs - - yweb/robot/limbo/imports - - yweb/sitelinks/scripts/sitelinks - - yweb/verticals/scripts/datalens_bugs_monitoring - - yweb/verticals/scripts/unisearch/make_surplus_metrics - - yweb/video/faas/graphs/ad - - yweb/video/faas/graphs/audio - - yweb/video/faas/graphs/browser - - yweb/video/faas/graphs/bsvideo - - yweb/video/faas/graphs/catchup-vod - - yweb/video/faas/graphs/music - - yweb/video/faas/graphs/music-videoshots - - yweb/video/faas/graphs/regular - - yweb/video/faas/graphs/regular-parallel - - yweb/video/faas/graphs/ugc-drm - - yweb/video/faas/lib/convert/recipes - - yweb/video/faas/lib/music - - yweb/video/faas/lib/yt - - yweb/webscripts/video/metarobot/parsepage/python - - yweb/yasap/answers/answers/models - - yweb/yasap/answers/tests/test_resources - - zen/yweb/video/faas/graphs/ad - - zen/yweb/video/faas/graphs/audio - - zen/yweb/video/faas/graphs/browser - - zen/yweb/video/faas/graphs/bsvideo - - zen/yweb/video/faas/graphs/catchup-vod - - zen/yweb/video/faas/graphs/games - - zen/yweb/video/faas/graphs/music - - zen/yweb/video/faas/graphs/music-videoshots - - zen/yweb/video/faas/graphs/regular - - zen/yweb/video/faas/graphs/regular-parallel - - zen/yweb/video/faas/graphs/ugc-drm - - zen/yweb/video/faas/lib/convert/recipes - - zen/yweb/video/faas/lib/music - - zen/yweb/video/faas/lib/outputs - - zootopia/analytics/ml/features/geo_features/idle_duration_features - E227: - ignore: - - E227 - prefixes: - - infra/skybone-coord/src - - infra/skybone-coord/src/daemon - E231: - ignore: - - E231 - prefixes: - - infra/deploy_notifications_controller/lib - - infra/skybone-coord/src - - passport/backend/tools/phone_joiner - - lib - E251: - ignore: - - E251 - prefixes: - - comdep_analytics/comdep_recsys/etl_core/etl/clickhouse - E261: - ignore: - - E261 - prefixes: - - infra/deploy_notifications_controller/lib - E262: - ignore: - - E262 - prefixes: - - dict/mt/make/db - E265: - ignore: - - E265 - prefixes: - - infra/skybone-coord/src/daemon - E266: - ignore: - - E266 - prefixes: - - infra/deploy_notifications_controller/lib - E275: - ignore: - - E275 - prefixes: - - yabs/server/test/ft/BSSERVER-22596 - - quasar/manufacturing/utils/tests/pcba_id_parsing - - robot/melter/configs/sharding/generator - - wmconsole/version3/processors/analytics/consumption_yt/table_stats - - wmconsole/version3/processors/analytics/consumption_yt/tickets - - ads/autobudget/ml_pipeline/scripts/metric_eval_to_solomon - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/quality/adv_machine/scripts/priemka_dump_utils/lib/prepare_responses - - alice/gamma/skills/echo_python - - alice/gamma/skills/guess_animal_game/game - - alice/tests/library/uniclient - - alice/uniproxy/library/backends_asr/ut - - alice/uniproxy/library/backends_tts - - alice/uniproxy/library/backends_tts/ut - - alice/uniproxy/library/experiments/ut - - alice/uniproxy/library/extlog/ut - - alice/uniproxy/library/processors - - alice/uniproxy/library/processors/ut - - alice/uniproxy/library/unimemcached/ut - - alice/uniproxy/library/unisystem/ut - - alice/uniproxy/library/vins - - alice/uniproxy/library/vins/ut - - analytics/ecosystem/business_indicators/incidents - - antiadblock/tasks/popup_blocked_domains/extractor - - apphost/conf/tests/src_setup - - apphost/test/legacy/lib - - apphost/test/server/functional/tests/dump_heap_profile - - apphost/test/server/functional/tests/no_output_deps_fetched - - autocheck/tests/check_config_content - - billing/apikeys/apikeys/butils_port - - billing/apikeys/apikeys/cacher - - billing/apikeys/apikeys/mapper - - billing/dwh/src/dwh/grocery - - billing/dwh/src/dwh/grocery/dcs/export - - captcha/tools/ocr_blacklist_filter - - catboost/yandex_specific/python-package/ut_no_windows/medium - - cloud/blockstore/public/sdk/python/client/ut - - cloud/blockstore/tests/notify - - cloud/blockstore/tests/python/lib - - cloud/blockstore/tools/cms/config - - cloud/blockstore/tools/ops/update_limits - - cmnt/tools/regression - - comdep_analytics/comdep_recsys/etl_core/etl/yt - - crypta/lib/python/yt/dyntables/ut - - crypta/lib/python/yt/local_tests - - cv/cbir_search/smart_camera/scenarios/poetry/make_data - - cv/cbir_search/yt_classifier/features_tools - - cv/cbir_search/yt_classifier/image_tools - - cv/cbir_search/yt_classifier/metrics - - cv/imageproc/ocr/tools/statistic/auto_tests/ocr_test_lib - - cv/imageproc/ocr/tools/statistic/auto_tests/ocr_test_lib/api_wrapper - - cv/imageproc/ocr/tools/toloka_labeling/common - - cv/verticals/auto_ru/tools/select_view - - datacloud/batch/lib - - datacloud/dev_utils/ydb/lib/deploy/usage_example - - datacloud/features/dssm - - devtools/autocheck/partition_metod/stat_collector - - devtools/contrib/license_analyzer - - devtools/distbuild/sre/simple_build_simulator - - devtools/distbuild/sre/simple_build_simulator/model - - devtools/project-insights/analytics/abc_members - - devtools/ya/build/reports - - devtools/ya/yalibrary/yandex/sandbox - - dict/misspell/make/modules/train_rankers/preprocessing/bin/autocc_tools - - dict/mt/g2p/libs - - dict/mt/g2p/wiktionary/train_asr - - dict/mt/make/modules/filter/tests - - dj/lib/deprecated_config_compiler/builtins - - dj/lib/viewer/server - - dj/services/chz/nirvana/tools/sources_modifier/sources/ut - - education/schoolbook/services/solver/it/fixtures - - entity/analytics/tools/ner2/wiki_enrich_with_ontoids/bin - - extsearch/audio/deepdive/graphs/apply_predictions - - extsearch/audio/deepdive/graphs/redactions - - extsearch/audio/deepdive/graphs/retoloka - - extsearch/audio/tools/vh_tools - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/images/robot/mrdb/rimdb/utils/common - - extsearch/images/robot/mrdb/rimdb/utils/rim_prices_coverage - - extsearch/video/robot/docbase/crm2factors - - extsearch/video/robot/rt_transcoder/hls2dash/repack - - extsearch/wizards/fastres2/tools/logs_search/mailing - - extsearch/wizards/fastres2/tools/logs_search/searching - - extsearch/wizards/fastres2/tools/mongo_cleanup - - games/admin/background_modules - - geoproduct/aml/assessors/results_export/tests - - geoproduct/aml/toloka/monitorings - - geotargeting/library/python/geoplotting - - infra/capacity_planning/utils/resources/all_resources - - infra/dostavlyator/lib/proto_utils/tests - - infra/deploy_notifications_controller/lib - - infra/environments/builder - - infra/kernel/tools/kvm_kernel/builder/lib - - infra/libs/monitoring_lib/docs_builder/basic - - infra/libs/monitoring_lib/project - - infra/netmon/build_topology/lib - - infra/qemu/vmexec - - infra/rtc/jyggalag - - infra/yp/monitoring/tmp_account_monitoring - - infra/yp_dns/tools/diff_nameservers - - intranet/plan/src/plan/api/idm - - ipreg/geogenerator/bin/reliability_around/escapee-detector - - irt/common/cnormalizer/ut - - keyboard/analytics/toloka/scripts/clean_toloka - - keyboard/dict/prepare_dict - - kikimr/ci/tasklets/update_hostgroup/impl - - kikimr/ci/tests/sqs - - kinopoisk/tasklets/DeployWithChangeWeight/impl - - library/python/reactor/client/reactor_client/helper - - library/python/testing/fake_ya_package/test - - library/python/ylock/ylock/backends - - load/projects/yandex-tank/yandextank/plugins/Solomon/tests - - logbroker/tools/auto/mirror_repair/lib - - logfeller/python/logfeller/util/solomon/ut - - logfeller/python/logfeller/util/time_util/ut - - mail/docker_tests/tests_common - - mail/library/python/json_value/tests - - maps/automotive/libs/large_tests/lib - - maps/automotive/remote_access/autotests/tests - - maps/automotive/remote_access/autotests/tests/lib - - maps/b2bgeo/tools/log_to_json - - maps/garden/tools/stat_updater/tests/test_yt_table_description - - maps/geoq/hypotheses/lib - - maps/geoq/hypotheses/lib/tests - - maps/jams/levels/ut - - maps/mobile/server/init/tools/ammo_generator - - maps/photos/backoffice/tools/automoderator/make_model - - maps/poi/streetview_poi/sign_hypotheses - - maps/routing/zero_speed_banner/build_model_pool - - maps/statistics/external/export_accidents - - maps/statistics/external/traffic_lights/lib - - maps/statistics/external/traffic_lights/lib_workdays - - maps/statistics/hypgen/masstransit_hypothesis/libs/draw_on_map - - maps/tools/naviguide/tools/optimize_config/bin - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki - - maps/wikimap/stat/tasks_payment/tasks_logging/outsource/lib - - market/bootcamp/deep_dive_2021/trmigor/converter/test - - market/dynamic_pricing/pricing/deadstock_sales/almost_deadstock - - market/library/shiny/server/beam - - market/pylibrary/compress_dist/tests - - market/pylibrary/lite - - market/report/runtime_cloud/report_config - - market/sre/services/tablo-idm-licenser/lib - - market/svn-data/free_dsbs_shops - - mediapers/feature_machine/nirvana/script_runner - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/inference - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/models - - ml/tensorflow/tfnn/tests - - ml/tensorflow/tfnn/tests/distributed - - ml/tensorflow/tfnn/tests/tools - - ml/zeliboba/nirvana/operations/inference - - modadvert/libs/brands/ut - - modadvert/libs/py3 - - modadvert/resources/supermoderation/conf/ut - - mssngr/router/tools/close_location - - mssngr/router/tools/contacts/create_table - - nirvana/valhalla_util/tests/yt - - noc/hbf-server/tests - - noc/matilda/python/matilda-netdb - - noc/traffic/monitoring/bird/lib/tests - - noc/traffic/monitoring/fwhostmacro/bin - - noc/traffic/monitoring/wireguard/lib/tests - - passport/backend/core/compare - - passport/backend/core/models/phones - - privacy_office/qhide/main_script - - privacy_office/qhide/utilities/duty_helper - - quality/functionality/chats/feedback/src/feedback/common - - quality/functionality/facts/aspect_facts/build_fact - - quality/functionality/facts/aspect_facts/clustering - - quality/functionality/facts/metrics/calculate_uniform_facts_metric - - quality/functionality/goods/backend/sku_matching/backup_cleaner - - quality/functionality/turbo/merger/ut/medium - - quality/functionality/turbo/merger/ut/medium/auto_ads - - quality/market/metrics/search_empty_serps - - quality/neural_net/bert/bert/utils/distributed - - quality/neural_net/bert/tests/basic - - quality/relev_tools/brak/tickets_parsing - - quasar/metrics/pylibs/func_test - - quasar/metrics/tests/functional/flash_top - - release_machine/release_machine/src/services - - rt-research/broadmatching/scripts/pylib/bmyt - - saas/library/python/logbroker/cluster_api - - saas/tools/ssm/modules - - sandbox/projects/clickhouse/ClickhouseTimerTrigger - - sandbox/projects/goods/BuildGoodsIndex - - sandbox/projects/media/admins/ClickHouseDropDetachedParts - - sandbox/projects/media/admins/MediaCheckDeployRelease - - sandbox/projects/media/admins/MediaItsWeightManagement - - sandbox/projects/news/GenNewsGoalsReport - - sandbox/projects/release_machine/tasks/ReleaseMachineFunctionalTest - - search/base_search/tools/explain_l1 - - search/integration_tests/util - - search/mon/curators_helper - - search/priemka/yappy/src/model/model_service/workers - - search/scraper_over_yt/daemons/signals_mover - - search/scraper_over_yt/scripts - - search/tools/devops/l7heavy - - search/tools/woland/lib - - search/tools/woland/tests - - skynet/api/gencfg - - sprav/mining/facebook/extractor/add_test_case - - statbox/qb2/qb2_extensions/resources - - statbox/statkey/agency_rewards/marketplace_clusterdomain/clusterificator - - statbox/statkey/jam/jobs/hypercubes/user_history/desktop/source/dayuse/v2 - - statbox/statkey/jam/jobs/hypercubes/user_history/mobile/v5 - - statbox/statkey/reactor/tools/anomaly_detector/api - - statbox/utils/opinfo - - strm/strm_trns_manager/lib/pult - - taxi/antifraud/approver/role_remover - - toloka/analytics/libs/python/heidrun/conf/ut - - toloka/analytics/libs/python/heidrun/process/ut - - toloka/analytics/libs/python/lama - - toloka/analytics/libs/python/lama/ut - - toloka/analytics/programs/hitman_cpu_usage - - voicetech/infra/uniproxy/tests/session - - voicetech/spotter/perf_test - - voicetech/tts/training/tacotron - - voicetech/tts/training/text_processing/symbols/ar - - voicetech/tts/training/waveglow - - yabs/analytics/anomaly_analyzer/src - - yabs/qa/oneshots/aleosi/BSSERVER-21818/change-hit_models-ext_stat-logging-to-yabs_hit_models_heavy_nanny - - yabs/qa/oneshots/bruh/YABSMODELS-171 - - yabs/qa/oneshots/lelby/BSSERVER-16303 - - yabs/qa/oneshots/sklevleev/BSSERVER-14972 - - yabs/sbyt/ytstatcollector/rtbadaptive/tests/test_rtb_price_weight - - yabs/server/cs/pylibs/base_gen_schedule - - yabs/server/cs/test/lib - - yabs/server/libs/py_db_shards - - yabs/server/libs/py_markdown_strings - - yabs/server/test/ft/BSDEV-62813 - - yabs/server/test/ft/BSDEV-73064 - - yabs/server/test/ft/BSDEV-84471 - - yabs/server/test/ft/BSDEV-85352 - - yabs/server/test/ft/BSDEV-88372 - - yabs/server/test/ft/BSSERVER-10003 - - yabs/server/test/ft/BSSERVER-104 - - yabs/server/test/ft/BSSERVER-10993 - - yabs/server/test/ft/BSSERVER-12402 - - yabs/server/test/ft/BSSERVER-13533 - - yabs/server/test/ft/BSSERVER-16749 - - yabs/server/test/ft/BSSERVER-17351 - - yabs/server/test/ft/BSSERVER-17688 - - yabs/server/test/ft/BSSERVER-17838 - - yabs/server/test/ft/BSSERVER-18463 - - yabs/server/test/ft/BSSERVER-18640 - - yabs/server/test/ft/BSSERVER-19137 - - yabs/server/test/ft/BSSERVER-19953 - - yabs/server/test/ft/BSSERVER-20224 - - yabs/server/test/ft/BSSERVER-2063 - - yabs/server/test/ft/BSSERVER-2124 - - yabs/server/test/ft/BSSERVER-21534 - - yabs/server/test/ft/BSSERVER-22055 - - yabs/server/test/ft/BSSERVER-22170 - - yabs/server/test/ft/BSSERVER-22647 - - yabs/server/test/ft/BSSERVER-22668 - - yabs/server/test/ft/BSSERVER-2293 - - yabs/server/test/ft/BSSERVER-23252 - - yabs/server/test/ft/BSSERVER-23353 - - yabs/server/test/ft/BSSERVER-23412 - - yabs/server/test/ft/BSSERVER-23760 - - yabs/server/test/ft/BSSERVER-3050 - - yabs/server/test/ft/BSSERVER-3298 - - yabs/server/test/ft/BSSERVER-3418 - - yabs/server/test/ft/BSSERVER-4190 - - yabs/server/test/ft/BSSERVER-5085 - - yabs/server/test/ft/BSSERVER-5414 - - yabs/server/test/ft/BSSERVER-5462 - - yabs/server/test/ft/BSSERVER-5766 - - yabs/server/test/ft/BSSERVER-7703 - - yabs/server/test/ft/DOOH-1070 - - yabs/server/test/ft/YABSMODELS-2 - - yabs/server/test/ft/YABSMODELS-85 - - yabs/server/test/qabs_bsserver_pytest/bs_objects - - yabs/server/tools/gen_yql_proto_descriptor/test - - yabs/utils/yabs_duty_scheduler/lib - - ydb/tests/functional/sqs/common - - ydb/tests/library/sqs - - yp/scripts/account_estimation - - yql/tests/custom - - yt/cron/duty - - yt/cron/node_user_tag_installer - - yweb/antiporno/reasks_reduction/metrics - - yweb/antiporno/toloka/toloka_manager/utils/lib - - yweb/antispam/clean_web/backends/fast_only - - yweb/antispam/clean_web/text_cache/lib/module - - yweb/antispam/tmu/deploy_rules - - yweb/antispam/ytgr/legal_loader/library - - yweb/blender/knn_features/converter - - yweb/blender/pers_factors/lib/common - - yweb/news/api_tests - - yweb/news/api_tests/tops_export - - yweb/news/common/python/site_attributes/ut - - yweb/news/tools/news_processing/filter_zora_pages - - yweb/verticals/cost_plus/automation/update_hosts_on_wiki - - yweb/verticals/cost_plus/automation/update_partner_for_finished_ab_exp - - yweb/verticals/cost_plus/automation/update_partners_for_finished_dr_exps - - yweb/verticals/cost_plus/automation/update_z2_landings - - yweb/verticals/ugc/automation/sessions/merge_old_pushes_tables - - yweb/webdaemons/ocrdaemon/tests_rotate - - yweb/yasap/answers/admin/admin - - yweb/yasap/answers/admin/admin/resources - - yweb/yasap/answers/admin/admin/utils - - yweb/yasap/answers/answers - - yweb/yasap/answers/answers/resources - - yweb/yasap/pdb/tools/push_notifications - - yweb/yasap/znatoki/thequestion/lib - E302: - ignore: - - E302 - prefixes: - - infra/deploy_notifications_controller/lib - - infra/skybone-coord/src - - infra/skybone-coord/src/daemon - E303: - ignore: - - E303 - prefixes: - - infra/deploy_notifications_controller/lib - - infra/skybone-coord/src - E305: - ignore: - - E305 - prefixes: - - contrib/nginx/tests - - contrib/python/clang/example/parse - - addappter/backend/migrations - - adfox/amacs/tests/functional/libs/config - - adfox/amacs/tests/functional/tests_amacs/yabs - - adfox/amacs/tests/functional/utils - - adfox/pdb3/pdb_import - - adfox/qa/shm/atlas_to_database/bin - - ads/autobudget/ml_pipeline/scripts/validate_pool_cd_file/lib - - ads/daily_duty/scripts/compare_shard_model_sizes - - ads/emily/mvp/backend_agnostik/example - - ads/factor_check/tools/missed_logs - - ads/libs/py_autobudget/ft/test_metric_eval_metric - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreduce_yt - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_ml_factors/ut - - ads/libs/py_pibf_storage/ut - - ads/libs/py_proto_mappers/ut - - ads/ml_engine/learn/result/convert_rmodel_to_model_coeffs/ut - - ads/ml_engine/learn/result/flow_plot_usage/ut - - ads/ml_engine/learn/result/flow_process_usage_data - - ads/ml_engine/learn/result/join_feature_map - - ads/ml_engine/preprocess/extract_query - - ads/ml_monitoring/alerts/ut - - ads/ml_monitoring/api/lib/modules/extensions - - ads/ml_monitoring/api/lib/modules/learn - - ads/mr_tools/record_formats/ut_py3 - - ads/nirvana - - ads/nirvana/difacto/dmlc_launcher/tracker - - ads/nirvana/mappers/arbitrary_mapper - - ads/nirvana/mappers/cut - - ads/nirvana/mappers/factor_enumerator - - ads/nirvana/mappers/factor_enumerator/ut - - ads/nirvana/mappers/grep - - ads/nirvana/mappers/item_filter - - ads/nirvana/mappers/mapjoin - - ads/nirvana/mappers/mapper - - ads/nirvana/mappers/matrixnet - - ads/nirvana/mappers/matrixnet_pool_formatter - - ads/nirvana/mappers/multiword_recommender - - ads/nirvana/mappers/query_language_recognizer - - ads/nirvana/mappers/vw - - ads/nirvana/mappers/vw/ut - - ads/nirvana/mappers/vw_formatter - - ads/nirvana/mappers/vw_formatter/ut - - ads/nirvana/mappers/vw_vivisection - - ads/nirvana/mappers/w2v_recommender - - ads/nirvana/mr_operations/calc_dcg_score - - ads/nirvana/mr_operations/mr_select_popular_banners - - ads/nirvana/tools/processtree - - ads/nirvana/wormhole/dmlc_launcher - - ads/quality/adv_machine/scripts/download_shards - - ads/quality/adv_machine/scripts/patch_resource - - ads/quality/adv_machine/scripts/preprocess_autotargetting_pool - - ads/quality/adv_machine/scripts/save_base_version - - ads/quality/adv_machine/scripts/shard_map_from_sandbox - - ads/quality/dssm/eval/search/20161215 - - ads/quality/dssm/eval/search/20170113 - - ads/quality/dssm/eval/search/20180107 - - ads/quality/dssm/rsya/spynet/nirvana/join_banner_fields - - ads/quality/experiments/ang_api_util/ut - - ads/quality/phf/phf_direct_loader/lib/campaign_generation - - ads/quality/phf/phf_direct_loader/lib/extensions - - ads/quality/phf/phf_direct_loader/lib/modules/templates - - ads/quality/phf/phf_direct_loader/lib/modules/templates/controllers - - ads/quality/phf/phf_direct_loader/lib/modules/templates/models - - ads/quality/search_lm_conv/tools/daily_generate_features - - ads/quality/simulate_auction_py/config - - ads/quality/simulate_auction_py/lib/nirvana - - ads/quality/simulate_auction_py/scripts/bid_correction_log - - ads/quality/simulate_auction_py/scripts/simulate/parameters/max_flow_proto - - ads/quality/simulate_auction_py/scripts/simulate/parameters/max_flow_proto_united - - ads/sandbox_scripts/hitcost_thresholds_optimization - - ads/sandbox_scripts/upload_geoinfo2logbroker - - ads/sandbox_scripts/yt_linker - - ads/targeting/yabs-python-collections/py-modules - - ads/tools/detect_bad_days - - ads/tools/mranalyze - - ads/tools/yt_dynamic_table_ops - - ads/tools/yt_operations_analyzer - - ads/watchman/contrib/apispec-patched/apispec - - ads/watchman/contrib/apispec-patched/apispec/ext - - ads/watchman/contrib/apispec-patched/apispec/ext/marshmallow - - ads/watchman/contrib/webargs-patched/webargs - - ads/watchman/experiments/lib - - ads/watchman/timeline/api/tests/integration_tests - - ads/watchman/timeline/api/tests/ut/tickets - - ads/yacontext/tasks/CONTEXT-0917_organic_conversions/dssm_apply - - ads/yacontext/tasks/CONTEXT-0917_organic_conversions/prepare_profiles - - ads/yacontext/tasks/CONTEXT-0917_organic_conversions/prepare_profiles_with_snippet - - ads/yacontext/tasks/CONTEXT-1004_dssm_html_tags/wf_results - - alice/analytics/wer/g2p - - alice/boltalka/emoji/lib - - alice/boltalka/tools/suggest_topics - - alice/hollywood/library/python/hollywood_recipe - - alice/hollywood/library/python/testing/integration - - alice/hollywood/library/scenarios/market/how_much/it - - alice/hollywood/library/scenarios/market/orders_status/it - - alice/nlu/tools/binary_classifier - - alice/nlu/tools/tagger/apply - - alice/nlu/tools/tagger/train - - alice/nlu/tools/tagger/update_resources - - alice/tests/library/directives - - alice/tools/launch - - alice/uniproxy/bin/send-digest - - alice/uniproxy/library/resolvers/ut - - alice/uniproxy/tools/clear_mds - - alice/uniproxy/tools/nirvana_cleaner - - alice/uniproxy/tools/nirvana_cleaner_from_sandbox - - alice/vins/tools/nlu/ner - - analytics/galamaj/yql - - analytics/geo/maps/common - - analytics/geo/navi/reporter/bin - - analytics/geo/navi/utils/nirvana/imap/attachments - - analytics/geo/navi/utils/nirvana/megafon_report_proc - - analytics/geo/navi/utils/nirvana/xlsx_to_tsv - - antiadblock/tasks/argus_test_run - - antirobot/scripts/log_viewer - - antirobot/scripts/metrics/get_factors_fraction - - apphost/conf/tickets_integration - - apphost/test/legacy/lib - - apphost/test/legacy/lib/apphost/tests - - apphost/test/legacy/service_test/lib - - apphost/tools/ping_grpc_source/bin - - apphost/tools/proto_converter - - april/mediaplan/mediaplan/forecaster - - arcanum/cron/merged-pr-view-refresh - - autobudget/alerting/alerts - - autobudget/bidder/caesar_validator - - balancer/production/x/activate_gs_certs - - balancer/production/x/extract_backends_and_patterns - - balancer/test/util/settings - - balancer/test/util/stdlib - - billing/apikeys/apikeys/butils_port - - billing/dcs/dcs - - billing/dcs/dcs/compare - - billing/dcs/dcs/compare/deprecated - - billing/dcs/dcs/compare/partner_completions - - billing/dcs/dcs/utils/sql - - billing/dwh/src/dwh/grocery/dcs/export - - billing/dwh/src/dwh/grocery/targets/db_targets - - billing/log_tariffication/py/tests/integration/core_acts - - billing/monthclosing/operations/monograph_builder/lib - - captcha/metrics/daily_markup_result_stats - - captcha/metrics/input_with_answers_stats - - captcha/metrics/ocr_toloka_diff - - captcha/metrics/result_stats - - captcha/tools/kikimr_uploader - - captcha/tools/make_fallback_archive - - captcha/tools/make_sharded_session_table - - catboost/tools/limited_precision_numpy_diff - - catboost/yandex_specific/github_issues/1855 - - catboost/yandex_specific/model_ops/test - - catboost/yandex_specific/tools/performance_evaluation/bin - - cloud/billing/go/pkg/hashring/gentest/hashring - - cloud/blockstore/tools/analytics/billing-metrics - - cloud/blockstore/tools/analytics/tablets-for-prune - - cloud/bootstrap/api/src/backend/core - - cloud/extservicesintegration/auth - - cloud/extservicesintegration/billing/client - - cloud/kms/client/python/example - - cloud/mdb/pg/pgproxy/s3db/scripts/s3_closer - - cmnt/tools/regression - - cmnt/tools/request_generator - - comdep_analytics/comdep_recsys/competitors/vectors - - comdep_analytics/comdep_recsys/etl/logic/dashboards/categories - - comdep_analytics/comdep_recsys/etl/logic/dicts - - comdep_analytics/comdep_recsys/etl/logic/signals/contents - - comdep_analytics/comdep_recsys/etl/logic/signals/mediaplans - - crm/infra/pymonitor - - crypta/lib/python/swagger - - crypta/profile/runners/vectors_update/bin - - cv/cbir_search/face_ban/check_faces - - cv/cbir_search/face_ban/tables_tools - - cv/cbir_search/intent_classifier/make_queries - - cv/cbir_search/intent_classifier/parse_intent_factors - - cv/cbir_search/onto_ext_data/create_pictures_state - - cv/cbir_search/platform_index/tools/create_pfc_gta - - cv/cbir_search/tools/market/grep_cached_commercial_data - - cv/cbir_search/tools/similar_pool/adding_assessment - - cv/cbir_search/tools/similar_pool/create_dev_table - - cv/cbir_search/tools/similar_pool/export_assessment - - cv/cbir_search/tools/similar_pool/grep_factors_from_middle - - cv/cbir_search/tools/similar_pool/grep_query_features - - cv/cbir_search/tools/similar_pool/parse_soy_serps_for_assessments - - cv/cbir_search/tools/similar_pool/pool_comparator - - cv/cbir_search/tools/similar_pool/prepare_queries_for_assessment - - cv/cbir_search/tools/toloka/check_solutions - - cv/cbir_search/yt_classifier/features_tools - - cv/cbir_search/yt_classifier/image_tools - - cv/cbir_search/yt_classifier/metrics - - cv/cbir_search/yt_classifier/patch_dataset - - cv/imageproc/ocr/tools/database_extraction/nirvana/download_images - - cv/imageproc/ocr/tools/database_extraction/nirvana/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/database_extraction/nirvana/gt_charbb_matching - - cv/imageproc/ocr/tools/database_extraction/nirvana/imgaug/src - - cv/imageproc/ocr/tools/database_extraction/nirvana/remove_mask - - cv/imageproc/ocr/tools/database_extraction/nirvana/remove_md5_dup - - cv/imageproc/ocr/tools/nirvana/confidence_factors/matching_to_features_tsv - - cv/imageproc/ocr/tools/nirvana/confidence_factors/pack_rows_as_pickles - - cv/imageproc/ocr/tools/nirvana/confidence_factors/recognition_gt_matching - - cv/imageproc/ocr/tools/nirvana/docscanner_datasets/doc3d_synthetic - - cv/imageproc/ocr/tools/nirvana/docscanner_datasets/filter_bw_gt_by_ocr - - cv/imageproc/ocr/tools/nirvana/docscanner_datasets/preprocess_make_crops - - cv/imageproc/ocr/tools/nirvana/filter_texts - - cv/imageproc/ocr/tools/nirvana/valhalla_scoring - - cv/imageproc/ocr/tools/ocr_api_log_processing/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/ocr_api_log_processing/merge2_ocr_api_logs_yt - - cv/imageproc/ocr/tools/statistic/text_classifier_statistic - - cv/imgclassifiers/framework/data_processing - - cv/imgclassifiers/framework/nirvana/data_tools/prepare_demo - - cv/imgclassifiers/framework/nirvana/sweeper/make_sweeper_config/create_param_config - - cv/imgclassifiers/framework/visualization - - cv/semidup2/tools/far_pairs_for_precision - - cv/semidups/fastmatcher/fastmatchermr/it/pack - - cv/verticals/auto_ru/tools/select_view - - datacloud/audience/app/pipeline - - datacloud/dev_utils/solomon - - datalens/backend/app/bi_api/tests/unit - - datalens/backend/lib/bi_formula_ref/bi_formula_ref/scripts - - devtools/arcanum_groups_syncer - - devtools/autocheck/stat - - devtools/codenav/kytheprotobufgen - - devtools/experimental/ylog/ylog - - devtools/search-env - - devtools/ya/package - - devtools/ya/yalibrary/vcs/vcsversion - - devtools/ya/yalibrary/ya_helper/ya_utils - - dict/bert/make/lib/models - - dict/bert/make/lib/tasks - - dict/misspell/fixlist_manager/util - - dict/misspell/spellchecker/offline/build - - dict/moria/nirvana/context/begemot_thesaurus_rule - - dict/moria/nirvana/quality/production_coverage - - dict/mt/analytics/dashboards/active_users/backup_crypta_table - - dict/mt/analytics/dashboards/active_users/push_web/bin - - dict/mt/analytics/dashboards/datasets/tools/compress - - dict/mt/g2p/train/profiles - - dict/mt/make/tools/build_unigram_blacklist - - dict/mt/make/tools/jamo_tool - - dict/mt/make/tools/yt_shuffle - - dict/mt/mtdict/make/long_examples/tools/ferryman - - dict/mt/mtdict/make/release/tools/prepare - - dict/mt/scripts/new_polishing/bin/parse_examples - - dict/mt/scripts/testsets/crowdsource/globalvoices/filter_and_send - - dict/mt/scripts/testsets/crowdsource/globalvoices/find_parallel_pages/extract_langs_links - - dict/mt/scripts/testsets/crowdsource/globalvoices/find_parallel_pages/extract_news_links - - dict/mt/scripts/testsets/crowdsource/monitoring - - dict/mt/scripts/testsets/crowdsource/put_tasks - - dict/mt/tools/aligner_word/tests - - dict/tools/find_synonym - - dict/tools/ner/build_notifier - - direct/infra/dt-dump-b2yt-data - - direct/infra/oneshot/ppchouse_copy - - direct/libs/python/direct-log/lib - - direct/solo/registered/alert/integrations - - direct/solo/registered/alert/jobs - - direct/solo/registered/alert/transport_queues - - direct/solo/registered/channel - - direct/solo/registered/cluster - - direct/solo/registered/graph - - direct/solo/registered/shard - - disk/admin/conductor-sync/tools/sync_deploy_instances - - disk/admin/monitors/download_stat_limit - - distribution_interface/backend/backend/audi - - district/scripts/create_profile_dyn_tables - - dj/research/gcnn/gcnn_encoder - - dj/services/alisa_skills/server/tests - - dj/services/alisa_skills/tools/bass_to_dialogs_image_uploader - - dj/services/mediapers/recommender_test/config_generator - - dj/tools/quality_stand/operations/als/unpack_config - - dj/torch/tools/runner - - dj/unity/projects/spy_log_actions/run - - dj/unity/projects/watch_log_actions/run - - douber/apphost_service/ut - - edadeal/analytics/scripts/Funnels/FunnelsLib/FunnelsLib - - education/schoolbook/analytics/ml/nirvana_ops/repetition - - education/schoolbook/services/hubble/src - - entity/ontodb/tasks/solomon_emitter/bin - - entity/quality/helix - - ether/top/check_docs - - extsearch/audio/deepdive/graphs/check_input_streams - - extsearch/audio/deepdive/graphs/check_specific_input_stream - - extsearch/audio/deepdive/graphs/releases - - extsearch/audio/deepdive/tools/apply_sandbox_toloka - - extsearch/audio/deepdive/tools/dump_parameters - - extsearch/audio/ott-recognition/nirvana/clean_graphs - - extsearch/audio/ott-recognition/nirvana/get_running_parameters_hitman_op - - extsearch/audio/ott-recognition/nirvana/get_running_parameters_op - - extsearch/audio/tools/vh_tools - - extsearch/collections/tools/logs_queries_processor - - extsearch/collections/tools/nirvana/collections_indexer/app - - extsearch/collections/tools/nirvana/collections_indexer/saas/index - - extsearch/geo/conveyors/gdpr/grep_prepared - - extsearch/geo/conveyors/gdpr/personal_suggest_formatter - - extsearch/geo/conveyors/gdpr/prepare_takeout_data - - extsearch/geo/meta/tests/behavioral/bin_standalone - - extsearch/geo/tools/fast_features/update_afisha_bin - - extsearch/geo/tools/similar_orgs/read_user_session - - extsearch/goods/indexer/nirvana/log_index_progress - - extsearch/goods/indexer/shard_builder - - extsearch/goods/tools/generate_backends_for_betas - - extsearch/images/functionality/henhouse/samsung_market_api_checker - - extsearch/images/kernel/cbir/market/host_id/tools - - extsearch/images/library/clustyr/src - - extsearch/images/money/scripts - - extsearch/images/robot/index/cbir_indexer/it/pack - - extsearch/images/robot/index/indexbuilder/it/pack - - extsearch/images/robot/index/it/pack - - extsearch/images/robot/index/metadoc/it/pack - - extsearch/images/robot/index/planner/it/pack - - extsearch/images/robot/index/selectionrank/it/pack - - extsearch/images/robot/index/shardpreparer/it/pack - - extsearch/images/robot/index/statistics/hostfactors - - extsearch/images/robot/index/traceroute/it/pack - - extsearch/images/robot/index/usertrie/it - - extsearch/images/robot/mrdb/hostdb/mkhostdb/it/pack - - extsearch/images/robot/mrdb/id2url/it/pack - - extsearch/images/robot/mrdb/mkcrcdb/it/pack - - extsearch/images/robot/mrdb/streams/it/pack - - extsearch/images/robot/mrdb/ytcloud/yqlrunner - - extsearch/images/robot/rtcvdup/it/pack - - extsearch/images/robot/rtcvdup/tools/yp - - extsearch/images/robot/scripts/cm/mrindex - - extsearch/images/robot/tools/download_resource - - extsearch/images/robot/userdata/anndata/it/pack - - extsearch/images/robot/userdata/click_sim/it/pack - - extsearch/images/robot/userdata/fastanndata/it/pack - - extsearch/images/robot/userdata/userfactors2/it/pack - - extsearch/images/tools/morda_popular_queries/bin - - extsearch/images/tools/new_runtime/create_model - - extsearch/images/tools/nirvana/sr_formula/check_formula - - extsearch/unisearch/category_tree/lib - - extsearch/unisearch/education/check_saas_diff - - extsearch/unisearch/education/get_factor_list_from_saas - - extsearch/unisearch/education/prepare_ranking_pool_from_existing_data - - extsearch/video/contstorage/pymerge - - extsearch/video/functionality/fastdelivery/BlogersTop/bloger_sec_step - - extsearch/video/functionality/fastdelivery/BlogersTop/bloger_thd_step - - extsearch/video/functionality/fastdelivery/BlogersTop/blogers - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsFilms - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsSeries - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/Uniquer - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/Uniquer_films - - extsearch/video/functionality/fastdelivery/VH_Franshise/VH_Franshize - - extsearch/video/functionality/fastdelivery/VH_Franshise/VH_Franshize_Uniquer - - extsearch/video/functionality/fastdelivery/find_ontoids_films - - extsearch/video/functionality/fastdelivery/top_avod - - extsearch/video/functionality/fastdelivery/top_tvt - - extsearch/video/functionality/pushes/stream_lives/send_lives - - extsearch/video/python/yql - - extsearch/video/quality/nirvana/extract_s2t - - extsearch/video/quality/nirvana/get_vnorm_from_serp - - extsearch/video/robot/crawling/player_testing/services/queue_worker - - extsearch/video/robot/rt_transcoder/dhdaas - - extsearch/video/robot/rt_transcoder/hls2dash - - extsearch/video/robot/sbr_metric/sbr_tool - - extsearch/video/robot/selrank/logparser/config/writer - - extsearch/video/robot/youtube_grabber/ugc/frontend - - extsearch/video/sepe/metrics_new - - extsearch/video/sepe/run_sandbox_task - - extsearch/video/sepe/ydl - - extsearch/video/transcoder/per_title/vmaf - - extsearch/video/ugc/sqs_moderation/clients/db_client - - extsearch/video/vh/tools/yt/dyn2stat - - extsearch/video/vh/vhs_lib - - extsearch/wizards/fastres2/fastres2pycl - - extsearch/wizards/fastres2/tools/bad_wizards_control - - extsearch/wizards/tools/upload - - geobase/builder/ut/ipreg_checker - - geoproduct/aml/libs/aml_run_python/tests - - geoproduct/amocrm/update_companies_info/mapper - - infra/awacs/vendor/kazoo/kazoo - - infra/awacs/vendor/kazoo/kazoo/protocol - - infra/box_dns_controller/monitoring/alerts - - infra/callisto/agent/v2 - - infra/callisto/controllers/shard - - infra/callisto/controllers/user/img - - infra/callisto/controllers/utils - - infra/clusterstate/libraries/cms - - infra/deploy/dri/logbroker/throttling_stages_getter - - infra/deploy/tools/yd_migrate/bin/migrate - - infra/deploy/tools/yd_migrate/bin/nanny_coverage - - infra/deploy/tools/yd_migrate/bin/qloud_coverage - - infra/diskmanager/lib - - infra/dist/dmover/tests - - infra/ebpf-agent/tests/lib - - infra/kernel/test/misc/kern - - infra/kernel/tools/menu/lib - - infra/netmon/utils/agent - - infra/netmon/utils/check_hosts_in_switch - - infra/psiagent2/src/utils - - infra/rtc/iolimit_ticketer - - infra/rtc/sbin/hostman_status - - infra/service_controller/monitoring/alerts - - infra/service_controller_shard_master/monitoring/alerts - - infra/skybone-coord/tools/simple-client - - infra/skyboned/utils/resource_info - - infra/yp_dns/tools/diff_nameservers - - infra/yp_dns_api/tools/diff_clusters - - infra/yp_dns_api/tools/fix_zone_labels - - infra/yp_service_discovery/tools/yp_sd_resolver - - intranet/dispenser/utils/resource-mapping-tool - - ipreg/python/ipreg-parse-noc - - k50/infra/services/solo_fe/registry/alert - - k50/infra/services/solo_fe/registry/yasm - - k50/tools/greenbot/api_clients - - kernel/ethos/test/reg_tree - - keyboard/analytics/collect_logs - - keyboard/analytics/metrics/lib - - keyboard/analytics/toloka/nirvana/prepare_corpora - - keyboard/analytics/toloka/nirvana/swipe - - keyboard/analytics/toloka/nirvana/typing - - keyboard/analytics/toloka/scripts/clean_toloka - - keyboard/dict/lm_prune - - keyboard/dict/synthetic_ngrams/synthetic_ngrams_builder - - kikimr/juggler/bundles/kikhouse_bundle - - kikimr/library/ci/teamcity_core/core - - kikimr/tools/pq_backup - - kikimr/tools/sqs/healthcare - - kikimr/yf/scripts - - kinopoisk/backend/yamake/ott-oo-promocode-refresh - - laas/viewers/toloka - - lbs/base_building/build_clusters_gsm - - lbs/base_building/build_clusters_wifi - - lbs/base_building/prepare_yandex_mobile_bssid_bans - - lbs/metrics/push_completeness_metrics_to_statface - - lbs/metrics/push_quality_metrics_to_statface - - lbs/research_tools/local_build_clusters_gsm - - lbs/research_tools/local_build_clusters_wifi - - library/go/yandex/uatraits/test_generator - - library/python/awssdk-extensions/example - - library/python/django/example/django_rest_api/polls - - library/python/hnsw/hnsw - - library/recipes/docker_compose_healthcheck - - library/recipes/kafka/lib - - load/projects/tank_finder - - locdoc/tg_bots/commdesign_bot - - logbroker/config-manager/watchdog - - logbroker/tools/auto/mirror_repair/lib - - logbroker/tools/auto/mirror_repair/ut - - logbroker/tools/laginfo - - logbroker/tools/lb_model_workload/utils/topic_generation - - logbroker/tools/manual/collect_capacity/analyze_capacity_2020 - - logbroker/tools/manual/collect_capacity/capacity_2020_2021 - - logbroker/tools/manual/collect_capacity/collect_2019_2020 - - logbroker/tools/manual/collect_capacity/collect_pre - - logbroker/tools/manual/collect_capacity/set_capacity_pre - - logbroker/tools/manual/create_logbroker_account - - logbroker/tools/manual/get_data_from_logs - - logbroker/tools/manual/get_data_from_logs/retention_time - - logbroker/tools/manual/get_problems_from_juggler - - logbroker/tools/manual/python_gzip_writer - - logbroker/tools/manual/st_ticket_viewer - - logbroker/tools/manual/test_read_unzip_compress_brotli - - logbroker/tools/solomon/dashboard_manager - - logfeller/python/logfeller/analytics/account_snapshot - - logfeller/python/logfeller/util/logging - - logos/projects/ads/tasks/learn_search_premium_profile - - logos/projects/ads/tasks/tsar_pytorch_rmp_7d - - logos/projects/ads_cuda/tasks/userbert_vecs_crypta_join - - mail/bots/dev_bot/daemon - - mail/contrib/ccs-caldavtester/src - - mail/contrib/ccs-pycalendar/pycalendar - - mail/contrib/ccs-pycalendar/pycalendar/icalendar - - mail/contrib/ccs-pycalendar/pycalendar/vcard - - mail/ghost/calculators/mail/cfg - - mail/ohio/ohio/api/routes - - mail/ozo/generate_ya_make - - mail/pypg/pypg - - mail/pypg/pypg/test - - mail/so/spamstop/tools/frodooborona_fcgi/nginx_balanced - - mail/tools/ews_call/ews_call - - mail/tools/ews_call/jsonlog2soap - - mail/tools/sql_execute_per_shard/bin/exec - - mail/transfer/ora2pg/tools/test - - mail/transfer/tests/integration_corp - - maps/adv/analytics/scripts/post_view - - maps/analytics/legacy/nirvana/utils/imap/attachments - - maps/analytics/legacy/nirvana/utils/megafon_report_proc - - maps/analytics/legacy/nirvana/utils/xlsx_to_tsv - - maps/analyzer/libs/data/lib - - maps/analyzer/libs/data/tests/pytest - - maps/analyzer/tools/run_with_input - - maps/automotive/drive_metrics - - maps/automotive/parking/tools/qa/estimate_parking/scripts - - maps/automotive/qa/metrics/technician_statistics/work_progress/lib - - maps/automotive/remote_access/server/load_test - - maps/automotive/tools/statistics_auto/pylib/import_metrics - - maps/b2bgeo/analytics/tvm_authorization_script - - maps/b2bgeo/tools/release_notes - - maps/bizdir/sps/yang - - maps/goods/tools/config_generator - - maps/goods/tools/duplicates_deleter - - maps/goods/tools/tycoon_importer - - maps/libs/config/py/tests - - maps/libs/deprecated/coordtrans_pymod/test - - maps/libs/geolib/py - - maps/masstransit/statistics/router/tools/router_times/bin - - maps/masstransit/tools/gtfs_utils/libgtfs/lib - - maps/masstransit/tools/jinja_parser - - maps/mobile/server/tools/cache_deprecator - - maps/mobile/tools/darwin-packager - - maps/mobile/tools/licenses_printer - - maps/opensfm/road_signs/interpolate_tracks - - maps/opensfm/road_signs/select_close_predictions - - maps/photos/backoffice/tasks/tools/create_db - - maps/photos/backoffice/tools/automoderator/make_model - - maps/photos/tools/create_db - - maps/pylibs/blackbox/lib - - maps/renderer/tilesgen/tools/lib - - maps/search/integration_tests/offline_business - - maps/search/metrics/pipeline/points/limit_points_number - - maps/statistics/external/traffic_lights/lib - - maps/statistics/hypgen/talks_spamers_dashboard - - maps/streetview/sfm/tools/quality/download_datasets - - maps/streetview/ugc/pylibs/db - - maps/streetview/ugc/tools/create_db - - maps/wikimap/mapspro/libs/python/cpplogger - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki/tasks - - maps/wikimap/mapspro/libs/python/tests - - maps/wikimap/mapspro/libs/python/validator - - maps/wikimap/mapspro/services/autocart/tools/auto_toloker/to_tfrecord - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/clusterize_matches - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/clusters_quality_test - - maps/wikimap/mapspro/services/mrc/tools/hypothesis_view - - maps/wikimap/mapspro/services/mrc/tools/opensfm_experiment/view - - maps/wikimap/mapspro/tools/standcontrol - - maps/wikimap/stat/fbapi_feedback - - market/access/server/mt - - market/amore/output/lbdumper_amore/tests/yatf - - market/analytics/market_search/ranking_formula/get_best_assessor_formula_threshold - - market/assortment/ecom_log - - market/billing/infra/mb-sql/bin - - market/checkout/utils - - market/forecast/demand_baseline_train/lib - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/infra/itreg/softreg - - market/library/shiny/external/s3/beam - - market/pylibrary/common - - market/pylibrary/lenval_stream/tests - - market/pylibrary/shopsdat/tests - - market/pylibrary/shopsutil - - market/replenishment/algorithms/legacy/definitions - - market/replenishment/algorithms/lib23 - - market/replenishment/algorithms/lib23/source - - market/replenishment/algorithms/safety_tool_lib - - market/report/runtime_cloud/solomon_agent/tests - - market/search/services_for_goods/mt - - market/solo_monitorings/marketpromo/clickphite - - market/sre/services/tablo-idm-licenser/lib - - market/sre/tools/demo/demo - - market/sre/tools/etcd/prometheus_graphite_bridge/prometheus_graphite_bridge - - market/sre/tools/mount-service-log - - market/svn-data/raise_fee_data - - market/tools/code_generator - - market/yamarec/tools/config_updater - - mds/mastermind/mastermind-cache/tests/http_tests/drooz_like_server - - mds/s3/tests/lib - - ml/tensorflow/tfnn/src/tfnn/ops - - ml/tensorflow/tfnn/src/tfnn/tools - - ml/tensorflow/ytensorflow/tests/layers - - ml/tensorflow/ytensorflow/tests/quantization - - mlp/mail/aspam/experiments/MLP_253 - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats_for_text_models - - mlp/mail/smartcompose/dev/MLP-34 - - mlp/mail/smartcompose/monitoring/flogs - - mlp/mail/smartcompose/monitoring/users - - mlp/overdraft/utils/filter_cd - - mlp/overdraft/utils/st_loop - - mlp/overdraft/utils/tests - - mlp/utils/reactor_tools/update_artifact_if_new_value - - modadvert/libs/laas/params - - modadvert/libs/utils/ytutils - - modadvert/oneshot/MODADVERT-859 - - modadvert/oneshot/SUPERMODRELEASE-55/table_manager - - mssngr/router/tools/contacts/create_table - - mssngr/router/tools/movedb_tools/ydb_create_table - - music/tools/card_gen - - nginx/module_gen - - noc/hbf-server - - noc/soft_pingers/check_dump - - noc/traffic/monitoring/solo - - oebs/bi/essbase_loader - - ofd/admin/lib/blueprints - - orgvisits/model_dwellplaces/training/split_dataset - - orgvisits/tools/yt_join - - orgvisits/ugc_features/features_calculation - - orgvisits/viewers/prepare_dwellplaces - - orgvisits/yaz/tools/download_ydb_table - - passport/backend/ch_stat_loader/ch_stat_loader - - passport/backend/dbscripts/persistent_tracks_cleaner - - passport/backend/social/common - - passport/backend/social/common/test - - passport/backend/social/configs/social_configs - - passport/backend/social/proxylib/repo - - passport/backend/vault/api/test - - payplatform/scrooge/scrooge/scrooge - - payplatform/tools/draw_fcm_graph - - paysys/sre/balance_notifier/bunker - - plus/landing_backend/landing - - quality/ab_testing/scripts/adminka/adminka/src/rollout/metadata - - quality/ab_testing/scripts/excomer - - quality/ab_testing/scripts/kati - - quality/ab_testing/scripts/kati/lib - - quality/ab_testing/scripts/monitoring - - quality/ab_testing/scripts/shellabt - - quality/ab_testing/sessions_analysis/sessions_viewer/session_viewer_rpc/tests - - quality/antifraud/scripts/dev/pxhf - - quality/antifraud/scripts/prod/dump_viewers_data_runner - - quality/antifraud/scripts/prod/sync_staff_pools - - quality/antifraud/scripts/prod/traffic_chains - - quality/antifraud/xurma/tools/configure_monitorings - - quality/antifraud/xurma/tools/dump_restore - - quality/factors/lingboost/allex/tests - - quality/functionality/chats/platform/base/scenarios - - quality/functionality/content_plugins/main_content_searcher/job - - quality/functionality/content_plugins/main_content_searcher/report - - quality/functionality/entity_search/factqueries/china/mine_sessions - - quality/functionality/entity_search/factqueries/tools/get_facts_by_queries/get_fact_texts_sample - - quality/functionality/facts/aspect_facts/remove_duplicates - - quality/functionality/garage/py_garage - - quality/functionality/goods/sr/build - - quality/functionality/ideal_snippets/gen_snips/scripts/prepare_sbs_results - - quality/functionality/ideal_snippets/nirvana_toloka/sbs_scripts - - quality/functionality/parsepl/ecom/universal_search/monitorings/fields_count_metric - - quality/functionality/parsepl/ecom/universal_search/nirvana/calc_markup_f1_score - - quality/functionality/parsepl/ecom/universal_search/nirvana/find_optimal_threshold - - quality/functionality/parsepl/libs/vh_util/common - - quality/functionality/parsepl/nirvana/convert_to_trie/src - - quality/functionality/parsepl/nirvana/not_launched_survey - - quality/functionality/parsepl/nirvana/parse_turbo_breadcrumbs/lib - - quality/functionality/parsepl/nirvana/yt_gc/src - - quality/functionality/parsepl/server/apps/turbo/tests - - quality/functionality/parsepl/toloka/html_downloader - - quality/functionality/sbs_tools/monitoring - - quality/functionality/scripts/nirvana/jobs/casper - - quality/functionality/scripts/nirvana/jobs/casper/helpers/bundle - - quality/functionality/scripts/nirvana/jobs/casper/helpers/mdsmerge - - quality/functionality/scripts/nirvana/jobs/casper/helpers/options - - quality/functionality/scripts/nirvana/jobs/casper/helpers/ytreader - - quality/functionality/scripts/psuh/HWPushLib/HWPushLib - - quality/functionality/scripts/psuh/HomeWorkLib/third_party/geopy/geopy - - quality/functionality/scripts/yt_find_old_tables - - quality/functionality/snippets/image_snippet/database/prepare_recommendations_table/job - - quality/functionality/snippets/instagram_gallery - - quality/functionality/snippets/top_hosts/libs/ordering - - quality/functionality/turbo/analytics/ecommerce/lib/page_classifier - - quality/functionality/turbo/autoparser/delete_old_flags - - quality/functionality/turbo/autoparser/new_autoparser/model/apply_catboost/bin - - quality/functionality/turbo/autoparser/new_autoparser/model/create_catboost_pool/bin - - quality/functionality/turbo/autoparser/new_autoparser/model_fitter/bin - - quality/functionality/turbo/beru_sideblock_uploader - - quality/functionality/turbo/ecommerce/offer_base/process_exports/tests/medium - - quality/functionality/turbo/ecommerce/offer_base/tap_feed_list - - quality/functionality/turbo/ml_ads/prepare_daily_logs - - quality/functionality/turbo/rss/api_lb_reader/job - - quality/functionality/turbo/rss/parser_job/tests/small - - quality/functionality/turbo/rthub/export_bans - - quality/functionality/turbo/tools/rthub_dev/download_feed - - quality/functionality/turbo/tools/rthub_dev/prepare_autoparser - - quality/functionality/turbo/tools/top_hosts_with_turbo/make_clickhouse_yql - - quality/functionality/turbo/tools/zbtw - - quality/functionality/unstructured/juggler_client/bin - - quality/logs/baobab/api/python/baobab/common - - quality/logs/baobab/examples/python/events_parser_basics - - quality/logs/baobab/examples/python/libra - - quality/logs/baobab/examples/python/libra_baobab_skip_subtree_iterator - - quality/logs/baobab/examples/python/libra_web_all_trees_including_serp_and_overlays - - quality/logs/baobab/examples/python/libra_web_overlays - - quality/logs/baobab/examples/python/wizard_names_vs_old_path - - quality/neural_net/bert/bert/utils/distributed - - quality/nirvana_tools/conveyor_operations/asgen/get_asgen_config - - quality/nirvana_tools/conveyor_operations/asgen/get_asgen_gigaminer_config - - quality/nirvana_tools/conveyor_operations/asgen/get_batch_sizes - - quality/nirvana_tools/conveyor_operations/asgen/get_general_config - - quality/nirvana_tools/conveyor_operations/asgen/get_gigaminer_config - - quality/nirvana_tools/conveyor_operations/asgen/get_initializing_urls_config - - quality/nirvana_tools/conveyor_operations/asgen/get_scraper_config - - quality/nirvana_tools/conveyor_operations/asgen/join_gigaminer_and_scraper - - quality/nirvana_tools/conveyor_operations/asgen/join_gigaminer_result_and_config - - quality/nirvana_tools/conveyor_operations/asgen/merge_json_arrays - - quality/nirvana_tools/conveyor_operations/asgen/parse_scraper_result - - quality/nirvana_tools/conveyor_operations/asgen/prepare_queries_for_scraper - - quality/nirvana_tools/conveyor_operations/asgen/process_daily_batch - - quality/nirvana_tools/conveyor_operations/asgen/run_gigaminer_task - - quality/nirvana_tools/conveyor_operations/asgen/weekly_graph_generator - - quality/nirvana_tools/conveyor_operations/bert/get_bert_vocab - - quality/nirvana_tools/conveyor_operations/calc_click_pool_stat - - quality/nirvana_tools/conveyor_operations/concatenate_tables - - quality/nirvana_tools/conveyor_operations/enrich_original_query_id_url_with_watto - - quality/nirvana_tools/conveyor_operations/findurl/parse_google - - quality/nirvana_tools/conveyor_operations/generate_rich_description_for_sum - - quality/nirvana_tools/conveyor_operations/lib - - quality/nirvana_tools/conveyor_operations/lookup_for_watto_cache_yt - - quality/nirvana_tools/conveyor_operations/merge_gemini_lookups - - quality/nirvana_tools/conveyor_operations/meta_formula/append_formula_factors - - quality/nirvana_tools/conveyor_operations/meta_formula/apply_remove_formula_factors - - quality/nirvana_tools/conveyor_operations/meta_formula/assign_name_chunk_size - - quality/nirvana_tools/conveyor_operations/meta_formula/join_targets - - quality/nirvana_tools/conveyor_operations/meta_formula/make_formula_factors_bundle - - quality/nirvana_tools/conveyor_operations/meta_formula/make_metapool - - quality/nirvana_tools/conveyor_operations/meta_formula/remove_unnecessary_slices - - quality/nirvana_tools/conveyor_operations/meta_formula/resolve_ignore_factors - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/append_level_to_bundle - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/apply_and_remove_formula_factors - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/apply_bert_to_table - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/check_metrics_diff - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/make_bundle_chunked_formula_item - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/make_bundle_from_level - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/make_bundle_level - - quality/nirvana_tools/conveyor_operations/mobile_adaptivness_via_mr_gemini - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/custom_query_group - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/get_predefined_sets - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_exp_serp_items - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_formulas_list - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_mlm_json - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/make_simple_serp_items - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/mlm_dump_for_priemka - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/parse_launch_result - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/simple_formula_handler - - quality/nirvana_tools/conveyor_operations/parse_web_dump/add_canonized_urls - - quality/nirvana_tools/conveyor_operations/parse_web_dump/add_misprints - - quality/nirvana_tools/conveyor_operations/parse_web_dump/convert_to_prs_columns - - quality/nirvana_tools/conveyor_operations/parse_web_dump/country_filter - - quality/nirvana_tools/conveyor_operations/parse_web_dump/extend_query_data - - quality/nirvana_tools/conveyor_operations/parse_web_dump/extract_dbd_scores - - quality/nirvana_tools/conveyor_operations/parse_web_dump/join_dump_and_prs - - quality/nirvana_tools/conveyor_operations/parse_web_dump/load_tag_to_space - - quality/nirvana_tools/conveyor_operations/parse_web_dump/make_aggregation - - quality/nirvana_tools/conveyor_operations/parse_web_dump/make_kernel_table - - quality/nirvana_tools/conveyor_operations/parse_web_dump/make_rq - - quality/nirvana_tools/conveyor_operations/parse_web_dump/make_rq_flatten_table - - quality/nirvana_tools/conveyor_operations/parse_web_dump/merge_aggregated_dumps - - quality/nirvana_tools/conveyor_operations/parse_web_dump/structure_extend_raw_data - - quality/nirvana_tools/conveyor_operations/parse_web_dump/structure_raw_data - - quality/nirvana_tools/conveyor_operations/plot_learning_curve - - quality/nirvana_tools/conveyor_operations/reactor_tools/reactor_formula_commit - - quality/nirvana_tools/conveyor_operations/redis_api - - quality/nirvana_tools/conveyor_operations/rename_columns_and_add_region - - quality/nirvana_tools/conveyor_operations/run_yql/run_yql_dirs_input_dir_output - - quality/nirvana_tools/conveyor_operations/run_yql/run_yql_table_to_table - - quality/nirvana_tools/conveyor_operations/run_yql/run_yql_tables_input_dir_output - - quality/nirvana_tools/conveyor_operations/stove/calc_z_score - - quality/nirvana_tools/conveyor_operations/stove/calculate_learning_curve - - quality/nirvana_tools/conveyor_operations/stove/opt_viewer - - quality/nirvana_tools/conveyor_operations/stove/run_simple_opt - - quality/nirvana_tools/conveyor_operations/stove/upload_formula_to_fml - - quality/nirvana_tools/conveyor_operations/stove_tools/make_formulas_grid_opt_bundle - - quality/nirvana_tools/conveyor_operations/stove_tools/make_formulas_multigrid_opt_bundle - - quality/nirvana_tools/conveyor_operations/stove_tools/make_formulas_opt_bundle - - quality/nirvana_tools/conveyor_operations/stove_tools/prepare_bundle_experiment - - quality/nirvana_tools/conveyor_operations/stove_tools/prepare_stove_data - - quality/nirvana_tools/conveyor_operations/stove_tools/run_bundle_experiment - - quality/nirvana_tools/conveyor_operations/watto_for_mobile_yt - - quality/nirvana_tools/conveyor_operations/yt_pool_to_watto - - quality/nirvana_tools/conveyor_operations/yt_proto_pool_remap_boost/standalone_demo - - quality/nirvana_tools/conveyor_operations/yt_tools/yt_append - - quality/nirvana_tools/sinsig/get_svd_features - - quality/pers/ml/atom/distribution/conveyor/cleanup_helper - - quality/pers/ml/atom/distribution/conveyor/fml_learner/lib - - quality/pers/ml/atom/distribution/conveyor/fml_learner/lib/tests - - quality/pers/py/common/utils - - quality/pers/rerank_service/tools/uatraits-updater - - quality/personalization/batch/user_history/tests - - quality/personalization/big_rt/backup/lib - - quality/query_expansions/proc/serp_similarity/test - - quality/relev_tools/brak/check_problem_on_serp - - quality/relev_tools/brak/create_annotations - - quality/relev_tools/brak/lib/ut - - quality/relev_tools/brak/lib/util - - quality/relev_tools/brak/tickets_parsing - - quality/relev_tools/brak/update_brak_basket - - quality/relev_tools/brak/update_query_status - - quality/relev_tools/choice_screen/create_stove - - quality/relev_tools/choice_screen/formula_graph - - quality/relev_tools/conveyor_dashboard/distributed/fmldb_proxy - - quality/relev_tools/conveyor_dashboard/distributed/front_proxy_monolith - - quality/relev_tools/dsat/find_words_with_absent_forms - - quality/relev_tools/dsat/fstr - - quality/relev_tools/fetch_last_release_pool - - quality/relev_tools/ftmoon/prepare_blocks/tests_with_input_transform - - quality/relev_tools/lost_urls_monitoring/generate_graph - - quality/relev_tools/lost_urls_monitoring/parse_lost_urls - - quality/relev_tools/lost_urls_monitoring/prepare_solomon_request - - quality/relev_tools/matr_ace/tests/gradient_tests - - quality/relev_tools/matr_ace/tests/sintetic_tests - - quality/relev_tools/matrixnet/python_tests - - quality/relev_tools/mx_ops_nirvana_ops/mx_ops_calc - - quality/relev_tools/onotole3/nirvana/integration_test - - quality/relev_tools/onotole3/nirvana/run_script - - quality/relev_tools/onotole3/tests - - quality/relev_tools/org_sintez_pool/preparat_make_lib/yt_local - - quality/relev_tools/perun/nirvana/perun_runner/ut - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/compare_normalizations - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/deploy_snapshot - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/get_tables_from_jupiter_state - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/make_snapshot - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/mini_tests - - quality/relev_tools/url_canonize/nirvana_pool_snapshot/run_yt_url_canonizer - - quality/relev_tools/vpcg/contrib/convert_output - - quality/relev_tools/vpcg/contrib/get_clicks_from_clicks_shows - - quality/relev_tools/xfactor-yt/contrib/onotole_filter - - quality/tools/multi_eval_tools/get_pool_urls_and_queries - - quality/tools/multi_eval_tools/onotole_multitarget_eval - - quality/tools/multi_eval_tools/perun_multitarget_eval - - quality/tools/multi_eval_tools/quality_control - - quality/trailer/suggest/prototypes/instant/queries_stat - - quality/trailer/suggest/prototypes/instant/scraper_queries - - quality/trailer/suggest/services/maps/conveyors/doc_features/join_to_stat_table - - quality/trailer/suggest/services/maps/conveyors/lst_metric - - quality/trailer/suggest/services/maps/conveyors/new_country/build_pt_data - - quality/trailer/suggest/services/maps/scripts-sandbox/geo/converter - - quality/trailer/suggest/services/maps/scripts-sandbox/org/make_ready - - quality/trailer/suggest/services/maps/scripts-sandbox/org/parse_index - - quality/trailer/suggest/services/maps/tools/personalization/ydisk_import/load_ydisk_table - - quality/trailer/suggest/services/maps/tools/qloss/gunship - - quality/trailer/suggest/services/maps/tools/qloss/make_qloss_pool_from_geocube - - quality/trailer/suggest/services/maps/tools/qloss/request_magnifier - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/tsnet/tsnet2_nirvana_ops/apply_tsnet2 - - quality/tsnet/tsnet2_nirvana_ops/train_tsnet2 - - quality/user_search/scripts - - quality/user_sessions/createlib/qb3/parser/skiff_proto_consistency_test - - quality/user_sessions/market/collector/tests/belt - - quality/user_sessions/market/yuid_testids - - quality/user_sessions/market/yuid_testids_blue - - quality/user_sessions/money_rt/dashboards/solomon - - quality/user_sessions/money_rt/yt_sync/lib/tool_for_old_hit_profiles - - quality/user_sessions/py_amon/examples/parser_web - - quality/user_sessions/rt/deploy - - quality/userdata/nest - - quality/userdata/scripts - - quality/userdata/scripts/state_validation - - quasar/infra/tasklets/add_tv_devices_to_db/impl - - quasar/infra/tools/join_micro - - quasar/manufacturing/elenchus/midi/midi_jigs - - quasar/metrics/pylibs/common - - regulargeo/homework/v2/scripts/convert_id_to_unified_id - - regulargeo/research/tasks/LAAS-385.GetParentOrgs - - regulargeo/research/tasks/LAAS-515.Convert-MRTable-to-YTPath - - robot/blrt/tools/viewer - - robot/fast_ban/metrics/accuracy_metric - - robot/fast_ban/tools/clean_archive - - robot/jupiter/scripts - - robot/jupiter/tools/selectionrank/test - - robot/kwyt/scripts/create_robots_txt - - robot/kwyt/tools/ydb_upload_table - - robot/lemur/tools/classification_acceptance - - robot/lemur/tools/fit_distribution - - robot/library/yuppie/tests - - robot/metrics/rotor_missed_words_metric/bin/gemini_canonize - - robot/metrics/spylog_sbr/stat_report_cbr - - robot/metrics/translated_search/join_statuses - - robot/quality/insignificant_cgi_detector/get_state - - robot/quality/insignificant_cgi_detector/get_top_cgis_urls - - robot/quality/mercury/tools/create_docsize_pool - - robot/quality/mercury/tools/create_mercury_pool - - robot/quality/mobile/nirvana/generate_mobile_hosts - - robot/quality/nirvana/refererrank/premetric_map - - robot/quality/nirvana/refererrank/rename_url_key - - robot/quality/samovar_conveyour/tools/factors_histo - - robot/quality/samovar_conveyour/tools/get_samples - - robot/quality/segmentator_predict - - robot/quality/smelter/backend_django/channels - - robot/research/eval_nirvana_graph - - robot/research/generate_folds - - robot/research/test - - robot/salmon_agent/utils - - robot/samovar/tools/compliance_tool - - robot/samovar/tools/crawl_by_request - - robot/selectionrank/sr_rules_comparator_util/plot_on_positives - - robot/selectionrank/sr_rules_comparator_util/yt_rule_distribution - - robot/smelter/quality/nirvana/sbr_google/make_querries - - robot/zora/tools/nat64_translator - - robot/zora/tools/pdfetch_psychokiller - - robot/zora/tools/requester - - robot/zora/tools/rotor_psychokiller - - rt-research/bannerland/cache_avatars/bin - - rt-research/bannerland/cache_avatars/lib - - rt-research/bannerland/dyn_sources/generate_dse_banners/generate_filtered_links/bin - - rt-research/bannerland/monitoring/top_clients_monitor/bin - - rt-research/bannerland/resource_generation/update_dyn_trashfilter/bin - - rt-research/bannerland/tools/archive_worker_set_done - - rtmapreduce/config/user_tasks - - rtmapreduce/tests/recipes/rtmr_processing_recipe - - saas/tools/devops/local_wc - - saas/tools/devops/local_wc/get_sandbox_file - - saas/tools/update_upstreams - - sandbox/client - - sandbox/projects/BuildBegemotExecutable - - sandbox/projects/NewsAutoreleasableTask - - sandbox/projects/VideoTestDynamicModelsArchive - - sandbox/projects/antifraud/tasks/AntifraudBuildDebianPackages - - sandbox/projects/antirobot/BuildAntirobotDaemon - - sandbox/projects/antirobot/MergeJsonConfigFiles - - sandbox/projects/devtools/Test - - sandbox/projects/geosearch/CompareGeometasearchesParallel - - sandbox/projects/geosuggest/GeoSuggestBuildSearchGroups - - sandbox/projects/images/ImagesCacheDiff - - sandbox/projects/images/metasearch/task - - sandbox/projects/megamind/build_alice_begemot_realtime_package - - sandbox/projects/news/BuildNewsAppHostNewsStaticDataServiceConfigBundle - - sandbox/projects/news/BuildNewsAppHostYdbdServiceConfigBundle - - sandbox/projects/oko/crawl_repositories - - sandbox/projects/partner/utils - - sandbox/projects/quasar/lxc_image_builds/base - - sandbox/projects/sortdc/BuildSortDCPackage - - sandbox/projects/statkey/money_map/monitorings/moneymap_monitorings - - sandbox/projects/video/VideoReleaseCategInfoStorage - - sandbox/projects/video/VideoReleaseDjMiddleConfig - - sandbox/projects/video/VideoReleaseDjMiddleModels - - sandbox/projects/video/VideoReleaseSuperTags - - sandbox/projects/video/quality/recommender/VideoRecommenderGetMiddlesearchResponses - - sandbox/projects/websearch/begemot/common - - sandbox/projects/yabs/monitoring/tasks/JsonpTrafficMonitor - - sandbox/projects/yabs/partner_share/integratest - - sandbox/projects/yabs/partner_share/lib/local_tests - - sandbox/projects/yabs/partner_share/visualizer - - sandbox/projects/zen_experiments/launch_zen_experiment_tests - - sandbox/projects/zora/RestartRotorNewService - - sandbox/projects/zora/RestartRotorService - - sandbox/projects/zora/RestartRthubService - - sandbox/serviceq - - sdg/labeling/common - - search/begemot/rules/images/cbir_validate/dict_creator - - search/begemot/tools/its - - search/daemons/models_proxy/tests/generator - - search/garden/runtime_tests/util - - search/geo/tools/emulator - - search/geo/tools/importer - - search/geo/tools/metrics_tools/testid_to_params - - search/geo/tools/nirvana/hotel_boost - - search/geo/tools/output_selector2/load_factors - - search/geo/tools/production/headquarters - - search/geo/tools/production/print_base_shards - - search/geo/tools/task_manager/generators/popular_streets/zeliboba_parser - - search/geo/tools/transport_wizard/prepare_rearrange_data - - search/integration_tests/util - - search/itditp/static_models_archive/data - - search/itditp/static_models_archive/prepare_archive - - search/mon/dredd2/dredd_judge - - search/mon/stater/src/tasks/clone_sync_to_yt - - search/mon/stater/src/tasks/marty_kbf_stats - - search/mon/tasklets/goal_creator/src - - search/mon/wabbajack/libs/utils - - search/morty/src/rviewer/telegram - - search/scraper/parser_platform/parsers - - search/scraper_over_yt/awacs_soyproxy - - search/scraper_over_yt/daemons/animals/animals_requester - - search/scraper_over_yt/daemons/notifier_bot - - search/scraper_over_yt/daemons/signals_mover - - search/scraper_over_yt/nirvana/scripts/market_formatter - - search/scraper_over_yt/scripts - - search/scraper_over_yt/scripts/zombie_monitors - - search/tools/devops/l7heavy - - search/tools/idx_ops/comparer/nirvana/convert_joined_stats - - search/tools/sepe/apphost_pie - - search/tools/serp_tester - - search/tools/serp_tester_test - - search/tools/woland/lib - - search/wizard/data/wizard/conf - - search/wizard/data/wizard/conf/service_configs - - skynet/api/cms - - smart_devices/crash_analytics/tools/s3_minidump_stackwalk/engine/ut/recipe - - smarttv/droideka/proxy - - solomon/agent/tests - - solomon/services/fetcher/yasm - - sport/backend/sport/projects/basketball - - sport/backend/sport/projects/football - - sport/backend/sport/projects/formula1 - - sport/backend/sport/projects/hockey - - sport/backend/sport/projects/time_judge - - sport/backend/sport/projects/volleyball - - sprav/altay/tools/load_cc_israel - - sprav/altay/tools/ugc_bugreports - - sprav/feature_vault_v2/features/phones - - sprav/mining/botanik_miner - - sprav/mining/bs/scripts/postprocess - - sprav/mining/facebook/extractor/add_test_case - - sprav/mining/facebook/extractor/test_online - - sprav/mining/facebook/split_table_by_size - - sprav/scripts/yql_statistic - - sprav/tools/short_names_generator/generator - - sprav/tools/yt_node_stat/tools/check_description - - sprav/tycoon/nirvana/mail/no_reviews - - sprav/tycoon/nirvana/pushes/check_freshness_permalinks - - statbox/nile/nile/contrib - - statbox/nile/nile/processing - - statbox/nile/nile/utils - - statbox/qb2/qb2_extensions/api/v1/resources - - statbox/qb2_core/qb2/utils/datetime - - statbox/statkey/jam/actions/pinger - - statbox/statkey/reactor/cubes/banners/v1/main - - suburban-trains/unsubscribe-tf-users - - sup/nirvana/bell_screenshoter - - sup/slow_queries - - taxi/antifraud/adhoc/TAXISECTEAM-4419/make_preparations - - taxi/antifraud/adhoc/TAXISECTEAM-4419/process_clusters - - taxi/antifraud/approver/role_remover - - taxi/antifraud/carousel/make_preparations - - taxi/antifraud/carousel/process_clusters - - taxi/antifraud/geo_markup/bin - - taxi/antifraud/personal_data/script - - taxi/antifraud/purga/metric/send - - taxi/antifraud/purga/score/go/exceptions - - taxi/antifraud/purga/score/go/verification - - taxi/antifraud/purga/score/startrek/getupdates - - taxi/antifraud/purga/score/startrek/setresults - - taxi/antifraud/teleports/reposition - - taxi/antifraud/tools/ytclean - - taxi/eda/eda_analytics/search_dashboard - - taxi/tools/dorblu/dorblu_configs_uploader/bin - - taxi/tools/dorblu/dorblu_configs_uploader/lib - - testenv/core/engine/tasks/streams - - toloka/analytics/libs/python/lama - - tools/curl_to_ab - - transfer_manager/scripts/get_resource_usage - - travel/avia/analytics/route_extractor - - travel/avia/avia_api/avia/lib - - travel/avia/library/python/avia_data/models - - travel/avia/library/python/common/models - - travel/avia/library/python/tester - - travel/avia/revise/partners - - travel/avia/shared_flights/data_importer/app - - travel/avia/shared_flights/lib/python/date_utils - - travel/avia/stat_admin/data/admin - - travel/avia/stat_admin/lib - - travel/avia/stat_admin/scripts - - travel/avia/stat_admin/scripts/cohorts_v2 - - travel/avia/stat_admin/scripts/cohorts_v3 - - travel/avia/stat_admin/scripts/maintenance - - travel/avia/stat_admin/utils - - travel/avia/ticket_daemon/ticket_daemon/partners - - travel/hotels/devops/bus_tool - - travel/rasp/library/python/hemi/tests - - travel/rasp/library/python/stationschedule/tester - - vcs/bitbucket/android_builds_statistics/flask/bin - - vh/recommender/tools/extract_s2t - - voicetech/infra/lingwarefactory/create-next-version - - voicetech/infra/lingwarefactory/tarfile-common-prefix - - voicetech/infra/log_parsers/ttsproxy - - voicetech/infra/qa/uniproxy-clear-private-data/tools/requests_to_yt - - voicetech/spotter/online_metrics/lib - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1239_apply_graph_generation - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1239_calc_metrics - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1260_test_add_features - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1280_longterm_test_generation - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1283_start_pool_collection - - weather/ml/quality/stand/utils_for_2018q4_2019q1_test_pools/valhalla_artifact_creation/METEO_1297_train_formula - - weather/utils/noaa_archive - - weather/utils/py23 - - weather/utils/water_masks/water_expansion - - weather/utils/water_masks/water_mask_maker - - weather/workers/imports/copernicus/ut - - web/daemons/begemot/scripts/automatic_degrade_levels/automatic_degrade_levels/constraints - - web/daemons/begemot/scripts/ydl - - web/src_setup/tests/server_test/lib - - wmconsole/version3/processors/seocheck/tickets - - wmconsole/version3/processors/seocheck/tickets/model/train - - wmconsole/version3/processors/tools/cms-detect/detector/detector - - wmconsole/version3/processors/tools/cms-detect/pools/pools - - wmconsole/version3/viewers - - yabs/analytics/hitman_notification - - yabs/analytics/new_traffic_generation/bin/metrika_mobile_parser - - yabs/analytics/traffic_generation/z_9_2_total_clicks - - yabs/analytics/yt_cleaner - - yabs/avp/sandbox-data - - yabs/indoor/samogon/test - - yabs/infra/monitorings/yabs_monitorings/deployment_mon - - yabs/js_tracer/tools/stress - - yabs/nanpu/samogon/plugin - - yabs/nanpu/samogon/test - - yabs/nanpu/tools/nanpu_graph_shaman_king - - yabs/nanpu/tools/shaman_king - - yabs/qa/b2b_utils/bsserver_b2b - - yabs/qa/b2b_utils/bsserver_b2b/engine/bs_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/run - - yabs/qa/b2b_utils/bsserver_b2b/engine/sandbox-utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/validate_scripts - - yabs/qa/b2b_utils/bsserver_b2b/markup - - yabs/qa/dbdownload - - yabs/qa/oneshots/inna-kudelkina/BSDEV-87414/yt_test_prod - - yabs/qa/oneshots/inna-kudelkina/BSSERVER-22457/insert_ssp_keyword_mapping - - yabs/qa/oneshots/inna-kudelkina/BSSERVER-22457/revert_ssp_keyword_mapping - - yabs/qa/oneshots/revert_partner_share/local_test - - yabs/qa/oneshots/update_partner_share/local_test - - yabs/qa/server_shooter - - yabs/qa/yabs_b2b_tank/qabs/b2b - - yabs/qa/yabs_b2b_tank/qabs/newreport - - yabs/samogon/balancernetdaemon - - yabs/sb-bins/post_startreck_comment - - yabs/sbyt/devutils/oldtopickiller - - yabs/server/config/b2b/archive - - yabs/server/cs/test/tools/make_test_data - - yabs/server/cs/tools/pyx_decomposer/importer_deps - - yabs/server/cs/tools/trace_y2j - - yabs/server/infra/mon_cpu_usage_by_proc/helpers - - yabs/server/infra/tools/cs_servants_manager - - yabs/server/libs/internal_ver/depgrapher/lib - - yabs/server/libs/py_db_shards - - yabs/server/test/ft/BSDEV-70956 - - yabs/server/test/ft/BSDEV-71906 - - yabs/server/test/ft/BSSERVER-11192 - - yabs/server/test/ft/BSSERVER-20512 - - yabs/server/test/ft/BSSERVER-23252 - - yabs/server/test/ft/BSSERVER-3381 - - yabs/server/test/ft/BSSERVER-4068 - - yabs/server/test/ft/BSSERVER-4764 - - yabs/server/test/ft/ads_adfox/metadsp_request - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/tools/critical_path/render - - yabs/server/tools/filter_reason_disable - - yabs/server/tools/prepare_serp_request - - yabs/server/tools/simulate_timeouts/example - - yabs/solo_yabscs/registry/alert - - yabs/solo_yabscs/registry/sensor - - yabs/stat/bigrt/helpers/conf_generator - - yabs/stat/dropstat2/pylibs/common - - yabs/stat/infra/clickhouse/scripts - - yabs/stat/infra/clickhouse/verify_sharding - - yabs/stat/solo/alerts - - yabs/stat/solo/sensors - - yabs/stat/url_monitoring2/plugin - - yabs/vh/cms-pgaas/cms_common/ugc_models - - yabs/vh/cms-pgaas/conference_api - - yabs/vh/cms-pgaas/general_video_importer - - yabs/vh/cms-pgaas/special_project_calendar - - yabs/vh/cms-pgaas/sqs_read_youtube_grabber - - yabs/vh/cms-pgaas/sqs_to_yt_portions - - yabs/vh/cms-pgaas/test/it/ugc_live_api/lib - - yabs/vh/cms-pgaas/youtube_video_importer - - yabs/vh/cms/ugc/not_sql/clickhouse_models - - yabs/vh/frontend/load_test/test_data_generator - - yabs/vh/frontend/test/ft/VH-8923 - - yabs/vh/frontend/tools/antiadblock_cookie_loader - - yabs/vh/frontend/tools/base_generator - - yabs/vh/frontend/tools/channels_disabler - - yabs/vh/frontend/tools/frontend_configurator - - yabs/vh/frontend/tools/index_governer - - yabs/vh/yt-utils/nirvana_utils/ugc_sender_moderation - - yabs/vh/yt-utils/ya-news/ya_news_export_check - - yaphone/localization_admin/src - - yaphone/localization_admin/src/views/index - - ydb/tests/library/sqs - - ydo/analytics/squeezes/service_baobab_v2 - - yp/scripts/add_read_acl_for_accounts - - yql/tools/schema_stats - - yql/tools/udf_autocomplete/system/tools/compare_pkg_json_and_yaml - - ysite/parser/tools/parse/tests/parse_mp3 - - ysite/yandex/pers/feat/scripts - - yt/admin/shiva2/bin/cli - - yt/admin/shiva2/src/services/cli/commands - - yt/admin/shiva2/src/services/spawner - - yt/admin/shiva2/src/services/worker - - yt/admin/ytdyncfgen/src/parsers - - yt/cron/clear_tmp/clear_tmp - - yt/cron/clear_tmp/move_tmp_nodes - - yt/cron/clear_transfer_manager_tasks - - yt/cron/cluster_instance_utilities/cmd/locate_permanent_banned_nodes - - yt/cron/map_users_to_pools - - yt/cron/merge/perform_merge/lib - - yt/cron/prune_empty_nodes - - yt/cron/push_resource_usage_info - - yt/cron/set_opaque - - yt/cron/yp_secrets - - yt/microservices/access_log_viewer/lib - - yt/microservices/resource_usage/json_api/bin - - yt/microservices/resource_usage/local_run - - yt/odin-checks/bin/bundle_balancer_alerts - - yt/odin-checks/bin/cloud_cpu - - yt/odin-checks/bin/codicil_operations - - yt/odin-checks/bin/controller_agent_alerts - - yt/odin-checks/bin/controller_agent_count - - yt/odin-checks/bin/controller_agent_operation_memory_consumption - - yt/odin-checks/bin/controller_agent_uptime - - yt/odin-checks/bin/dynamic_table_commands - - yt/odin-checks/bin/dynamic_table_replication - - yt/odin-checks/bin/lost_vital_chunks - - yt/odin-checks/bin/map_result - - yt/odin-checks/bin/map_result_cloud - - yt/odin-checks/bin/master - - yt/odin-checks/bin/master_chunk_management - - yt/odin-checks/bin/medium_balancer_alerts - - yt/odin-checks/bin/operations_archive_tablet_store_preload - - yt/odin-checks/bin/operations_count - - yt/odin-checks/bin/operations_snapshots - - yt/odin-checks/bin/planned_maintenance - - yt/odin-checks/bin/proxy - - yt/odin-checks/bin/register_watcher - - yt/odin-checks/bin/register_watcher_cloud - - yt/odin-checks/bin/scheduler - - yt/odin-checks/bin/scheduler_alerts - - yt/odin-checks/bin/scheduler_alerts_jobs_archivation - - yt/odin-checks/bin/scheduler_alerts_update_fair_share - - yt/odin-checks/bin/scheduler_alerts_update_fair_share_gpu - - yt/odin-checks/bin/scheduler_alerts_update_fair_share_physical - - yt/odin-checks/bin/snapshot_validation - - yt/odin-checks/bin/sort_result_cloud - - yt/odin-checks/bin/spare_tablet_nodes - - yt/odin-checks/bin/suspicious_jobs - - yt/odin-checks/bin/suspicious_jobs_cloud - - yt/odin-checks/bin/sys_clusters_sync - - yt/odin-checks/bin/tablet_cell_gossip - - yt/odin-checks/bin/tablet_cells - - yt/odin-checks/bin/unaware_nodes - - yt/odin-checks/bin/wrapper_files_count - - yt/odin-checks/bin/yp_garbage_collector - - yt/odin-checks/bin/yp_schedule_pod - - yt/python/yt - - yt/python/yt/cli - - yt/python/yt/environment - - yt/python/yt/wrapper - - yt/python/yt/wrapper/benchmarks/map - - yt/python/yt/yson - - yt/scripts/validate_master_snapshot - - yt/scripts/validate_operation_snapshots - - yt/scripts/validate_tablet_cell_snapshots - - yt/yt/scripts/find_stuck_missing_part_chunks_cause - - yt/yt/scripts/suspend_resume_tablet_cells - - yweb/antiporno/nirvana/operations/clear_nodes - - yweb/antiporno/nirvana/operations/image_fuzzy_hash - - yweb/antiporno/obf_detection/porn_queries - - yweb/antiporno/query_analyzer/ipq_process - - yweb/antiporno/scandal_requests/request_postprocessor/test/medium_tests - - yweb/antiporno/scandal_requests/scandal_requests_extractor/src/reducers - - yweb/antiporno/scandal_requests/scandal_requests_extractor/test/medium_tests - - yweb/antiporno/scandal_requests/scandal_requests_extractor_dc/test/medium_tests - - yweb/antiporno/top_porn_hosts_bno/test/medium_tests - - yweb/antispam/clean_web/metrics/tests - - yweb/antispam/laas/upload_regcoords_to_logbroker - - yweb/antispam/mascot/features/features_for_ranks - - yweb/antispam/mascot/scripts/proxima_kernel - - yweb/antispam/mascot/scripts/proxima_kernel/corr - - yweb/antispam/phishing/spy_host_fraud/common - - yweb/antispam/phishing/spy_host_fraud/merger - - yweb/antispam/python/utils/test/flag_attrs_py2 - - yweb/antispam/python/utils/test/flag_attrs_py3 - - yweb/antispam/python/ytlib - - yweb/antispam/python/ytlib/test/app/plus - - yweb/antispam/ruijerd/create_user - - yweb/antispam/tmu/tools/ruldbg - - yweb/antispam/tools/cleanup/lib - - yweb/antispam/tools/yt/common - - yweb/antispam/webspam/export/tries/deploy - - yweb/antispam/webspam/ns_base - - yweb/antispam/webspam/seo_rivals - - yweb/antispam/ytgr/library - - yweb/blender/find_similar_queries/processes_manager - - yweb/blender/newsletter/random_surplus - - yweb/blender/queries_classification - - yweb/blender/queries_classification/automatic_learning - - yweb/blender/scripts/blender_viewer/conveyor_experiments/abt_admin_experiment_client - - yweb/blender/scripts/click_int_formula/tests/positional_mixed_pool - - yweb/blender/scripts/make_wizard_ab_metrics - - yweb/blender/scripts/nirvana/jobs/train_sbs_model/build_fml_info_from_sbs_results - - yweb/blender/scripts/nirvana/workflows/handle_secrets - - yweb/blender/scripts/nirvana/workflows/periodic_train - - yweb/blender/scripts/softmax_formula/create_xtd_without_upper - - yweb/blender/scripts/softmax_formula/get_bundle - - yweb/blender/scripts/softmax_formula/get_upper_features_names - - yweb/blender/scripts/softmax_formula/make_model_meta - - yweb/blender/special_snippets/metrics/card_by_card/process_cbc_tsv_query_results - - yweb/blender/tools/calculate_classifier_metrics - - yweb/blender/universal_metrics_calculation_tool/baskets_creation - - yweb/contentgen/articles_classifier - - yweb/dups/dmetric_nanny/bin - - yweb/freshness/coronavirus/upload_data_to_rtmr - - yweb/freshness/scripts/trends - - yweb/freshness/sitepos/dumb_version/cgi-bin - - yweb/news/nirvana/operations/gen_title_misspells - - yweb/news/nirvana/operations/offline_metrics - - yweb/news/nirvana/operations/select_rows - - yweb/news/rtmr/dupsd/viewer - - yweb/news/tools/gen_summary_tables - - yweb/news/tools/gen_test_background - - yweb/robot/metrics/dups_in_crawled/dups_metric_to_stat - - yweb/robot/metrics/mobile_coverage_metrics/jupiter_coverage/coverage_to_stat - - yweb/robot/metrics/mobile_coverage_metrics/jupiter_mobile_coverage_2_0/coverage_to_stat - - yweb/robot/metrics/mobile_coverage_metrics/mobile_urls_in_logs/mobile_urls_to_stat - - yweb/robot/metrics/pmusca/graph/bin/rotor_run - - yweb/robot/metrics/pmusca/graph/bin/set_target_for_turbo_pages - - yweb/robot/metrics/pmusca/graph/generate_graph - - yweb/robot/ukrop/nirvana_tools/prepare_mrpool - - yweb/scripts/datascripts/common - - yweb/scripts/datascripts/map_reduce - - yweb/scripts/datascripts/runnerLib - - yweb/sitelinks/astrolabe/build_bna/candidates - - yweb/sitelinks/editor - - yweb/sitelinks/scripts/sitelinks - - yweb/verticals/cost_plus/automation/update_partners_for_new_exps - - yweb/verticals/product_dashboard/format_for_solomon - - yweb/verticals/scripts/ab_metrics_exporter - - yweb/verticals/scripts/unisearch/make_surplus_metrics - - yweb/webdaemons/expcookier/tests - - yweb/webscripts/video/comparefactors/viewer - - yweb/webscripts/video/juggler - - yweb/webscripts/video/metarobot/parsepage/python - - yweb/webscripts/video/thumbnails/yttasks - - yweb/yasap/answers_quality/plagiarism/auto_detector - - yweb/yasap/answers_quality/plagiarism/join_scraper_results - - yweb/yasap/pdb/backend/offline_views/history_calculator - - yweb/yasap/pdb/collections_ferryman - - yweb/yasap/pdb/nirvana/copy_opts - - yweb/yasap/pdb/quality/profile/nirvana/timestamp_add - - yweb/yasap/pdb/quality/profile/nirvana/yt_path_exists - - yweb/yasap/pdb/quality/tools/thefeed_cgi_helper - - yweb/younglings/common/database/ydb_tools/copy_directory - - yweb/younglings/common/database/ydb_tools/copy_table - - yweb/younglings/common/database/ydb_tools/make_directory - - yweb/younglings/common/database/ydb_tools/remove_table - - yweb/younglings/education/command_processor/bindings/python/example - - yweb/younglings/education/command_processor/tests/common/bin/fill_database - - yweb/younglings/education/regular/content_count_to_statface - - yweb/younglings/education/regular/get_identical_documents_count - - yweb/younglings/education/regular/modified_problems_stats - - yweb/younglings/education/regular/wizard_serp_data/main_wizard - - yweb/younglings/tasks/YOUNGLINGS-2005 - - yweb/younglings/tasks/YOUNGLINGS-2185 - - yweb/younglings/tasks/YOUNGLINGS-2225 - - yweb/younglings/tasks/YOUNGLINGS-2277 - - yweb/younglings/tasks/YOUNGLINGS-2310 - - yweb/younglings/tasks/YOUNGLINGS-2411/get_docs_shows - - yweb/younglings/tasks/YOUNGLINGS-2411/merge_queries_referat - - yweb/younglings/tasks/YOUNGLINGS-2428/get_clicks_histogram - - yweb/younglings/tasks/YOUNGLINGS-2784 - - yweb/younglings/tasks/YOUNGLINGS-516 - - yweb/younglings/tasks/YOUNGLINGS-626 - - zen/mstand/squeeze_zen/utils - - zootopia/analytics/ml/experiments/experiment_control_split - - zootopia/analytics/ml/experiments/experiment_control_split/find_best_split_example - - zootopia/analytics/ml/features/user_features/geo_region - - zootopia/analytics/ml/features/user_features/user_attributes - - zootopia/analytics/ml/features/user_features/user_orders - - zootopia/analytics/ml/features/user_geo_features - - zootopia/analytics/ml/signalq/markup/grouped - E306: - ignore: - - E306 - prefixes: - - infra/deploy_notifications_controller/lib - E402: - ignore: - - E402 - prefixes: - - addappter/backend/migrations - - adfox/broker_notify/tests/functional/utils - - ads/bsyeti/bb_viewer/viewer - - bigrt/cli - - ads/libs/py_autobudget/ft/test_cold_start - - ads/libs/py_autobudget/ft/test_metric_eval_metric - - ads/libs/py_logger - - ads/libs/py_lmcompute/ft - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib_distributive - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib_emulator - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabutils - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_pibf_storage/ut - - ads/ml_engine/lib - - ads/ml_monitoring/api/lib/modules/production - - ads/mr_tools/record_formats/ut_py2 - - ads/mr_tools/record_formats/ut_py3 - - ads/mr_tools/slotrecord/ut_py2 - - ads/mr_tools/slotrecord/ut_py3 - - ads/nirvana/automl/lib/batch_processor/ut - - ads/nirvana/difacto/dmlc_launcher/nirvana_state - - ads/quality/adv_machine/scripts/preprocess_autotargetting_pool - - ads/quality/ltp/libs/featurist/mt/common - - ads/quality/ltp/pytorch/online_learning/build_hourly_logs - - ads/quality/phf/phf_direct_loader/bin/db_helper - - ads/quality/phf/phf_direct_loader/lib/extensions - - ads/sandbox_scripts/zc_regular - - ads/tensor_transport/validator/describe_tsar_model - - ads/tools/mranalyze - - ads/tools/mx_feature_remapper - - advq/generation/common/linguistics - - advq/generation/common23/util - - alice/analytics/operations/priemka/alice_parser/lib - - alice/analytics/operations/priemka/alice_parser/visualize - - alice/boltalka/generative/tfnn/telegram_bot - - alice/boltalka/tools/dssm_preprocessing/preprocessing - - alice/uniproxy/library/backends_asr/ut - - alice/uniproxy/library/resolvers/ut - - alice/uniproxy/library/unisystem/ut - - alice/uniproxy/library/vins/ut - - alice/uniproxy/library/web_handlers/ut - - alice/uniproxy/library/ydbs - - alice/uniproxy/tools/clear_mds - - alice/vins/apps/crm_bot/crm_bot - - alice/vins_contrib/yandex-normalizer-general-0.1.1/normalizer_general/general - - apphost/tools/nanny_tools/sync_resources - - april/arf/scheduler/scheduler - - april/mediaplan/mediaplan - - april/motivation/motivation - - april/web/bas - - april/web/bas/collector - - billing/apikeys/console - - billing/dcs/dcs/temporary/butils - - billing/dcs/dcs/temporary/butils/mputils - - billing/dwh/src/dwh/settings - - build/plugins/tests - - catboost/yandex_specific/tools/performance_evaluation/lib - - cloud/analytics/nirvana/vh/utils/reactor - - cloud/extservicesintegration/pq/reader - - cloud/extservicesintegration/pq/writer - - cloud/gauthling/gauthling_daemon_tornado/lib - - cloud/mdb/pg/pgproxy/s3db/scripts/s3_closer - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/check_chunks_counters - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/chunk_splitter - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/copy_delete_queue - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/merge_chunks - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/purge_objects - - cloud/mdb/pg/pgproxy/s3db/scripts/s3db/update_chunks_counters - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/check_chunks_bounds - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/chunk_creator - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/chunk_mover - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/chunk_purger - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/fill_buckets_size - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/finish_prepared_xacts - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/smart_mover - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_bucket_stat - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_buckets_size - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_buckets_usage - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_chunks_counters - - cloud/mdb/pg/pgproxy/s3db/scripts/s3meta/update_shard_stat - - cloud/netinfra/vlantoggler/app - - cloud/support/tools/qcalc - - cloud/support/tools/qcalc/app - - cloud/support/tools/websaint - - cloud/support/tools/websaint/app - - comdep_analytics/exceller_py2/exceller - - crypta/graph/v1/python/utils - - crypta/lib/python/swagger - - cv/imageproc/ocr/tools/database_extraction/nirvana/docx_generation/crop_images - - cv/imageproc/ocr/tools/database_extraction/nirvana/docx_generation/random_crop - - cv/imageproc/ocr/tools/database_extraction/nirvana/docx_generation/upload_publaynet_dataset - - cv/imageproc/ocr/tools/nirvana/docscanner_datasets/filter_bw_gt_by_ocr - - cv/imageproc/ocr/tools/nirvana/docscanner_datasets/preprocess_make_crops - - cv/imageproc/ocr/tools/nirvana/image_processing/filter_small_images - - cv/imageproc/ocr/tools/nirvana/recaptcha/generate_captcha_images - - cv/imgclassifiers/danet/examples/encoder_decoder_with_attention - - cv/imgclassifiers/danet/examples/rnn_text_classification - - cv/imgclassifiers/danet/examples/skip_thought - - cv/imgclassifiers/danet/examples/training_on_images_without_data_to_binary - - cv/imgclassifiers/danet/perf_tests/binary_perf - - cv/imgclassifiers/framework/images_collection - - cv/imgclassifiers/framework/nirvana/config_modifier - - cv/imgclassifiers/framework/nirvana/nirvana_dl/ut - - cv/imgclassifiers/framework/visualization - - datacloud/dev_utils/validators - - datacloud/features/cluster - - datacloud/features/dssm - - datacloud/features/dssm/sample_app - - datacloud/ml_utils/kmeans/app - - datalens/backend/app/dls/yadls/dj/dls - - datalens/backend/lib/clickhouse-sqlalchemy/tests - - datalens/backend/lib/sqlalchemy_statface_api/tests - - devtools/contrib/ci_check_analyzer/handlers/yt_simple_stat_post - - devtools/signer/signer - - devtools/ya/bigbin - - devtools/ya/yalibrary/pr - - devtools/ya/yalibrary/shelf/unshelve - - devtools/ya/yalibrary/store/yt_store - - devtools/yanotifybot/client/python - - dict/bert/make/lib/models - - dict/moria/nirvana/quality/production_coverage/plot_coverage - - dict/mt/analytics/dashboards/active_users/backup_crypta_table - - dict/mt/analytics/dashboards/active_users/crypt - - dict/mt/analytics/dashboards/active_users/grep_predata/core - - dict/mt/analytics/dashboards/active_users/push_web/core - - dict/mt/analytics/dashboards/active_users/source - - dict/mt/analytics/dashboards/active_users/summary - - dict/mt/analytics/dashboards/stub_fmls - - dict/mt/analytics/dashboards/wizard_coverage/calc_push_metrics - - dict/mt/analytics/dashboards/wizard_coverage/grep_week - - dict/mt/analytics/programs/ocr/push_metrics - - dict/mt/make/libs/adhoc_metrics/tests - - dict/mt/make/tools/adhoc_metrics - - dict/mt/make/tools/generate_corpora - - dict/mt/video/lib/streaming_server - - dict/mt/video/servers/bio - - disk/admin/monitors/app_metrica_load_speed - - disk/admin/monitors/telemost_broadcast_restarts - - disk/admin/statistics/admin_access/z_console - - disk/admin/utils/awacs_balancer_maker - - dj/nirvana/nirvana_make - - dj/nirvana/operations/data/sandbox/sandbox_sky_upload - - dj/nirvana/operations/yql/yql - - dj/nirvana/tools/nirvana_yt_clear - - education/english/services/rest/app/settings - - education/lib/events_processor/example - - education/schoolbook/analytics/ml/nirvana_ops/simple_stat_to_json - - education/schoolbook/analytics/ml/simple_stat_to_json/lib - - education/schoolbook/services/solver/it/fixtures - - education/services/checking_system/marker_checker/lib/utils - - education/services/ext_lms_connector/it - - entity/analytics/tools/ner2/toloka_combine/lib - - entity/ontodb/util/test/py2 - - entity/ontodb/util/test/py3 - - extsearch/geo/recommender/tools/quality_metric/convert_tradoff_4_plot - - extsearch/geo/recommender/tools/quality_metric/prepare_plot - - extsearch/images/robot/mrdb/tags/it - - extsearch/video/sepe/release_sandbox_task - - extsearch/video/ugc/sqs_moderation/clients/moderation - - extsearch/video/ugc/sqs_moderation/http2sqs - - geoproduct/amocrm/link_calls/src - - geoproduct/geocrm_search/config/lib - - geosuggest/conveyors/learn_pool/lst_weights/lib - - health/articles/articles_pipeline/actions - - health/articles/articles_pipeline/tests/models - - health/yamd/health_backend/graphql_api - - htf/predictions/export_to_ydb - - hw_watcher/hww_front_py - - infra/callisto/agent - - infra/callisto/configs_distributor - - infra/callisto/deploy/deployer/python - - infra/callisto/deploy/tracker/app - - infra/callisto/ipython - - infra/callisto/runner - - infra/callisto/tools/bot - - infra/clusterstate/services/alpha - - infra/clusterstate/services/hostinfo - - infra/clusterstate/services/psi - - infra/clusterstate/services/psi/web - - infra/deploy_export_stats/bin - - infra/dist/dmover/tests - - infra/gencfg-gui - - infra/gosky/src/gosky - - infra/heartbeat/src - - infra/nanny/service_repo_client/bin - - infra/nanny/workload/minidump - - infra/nanny/workload/render_template - - infra/netconfig/lib - - infra/psiagent2/lite - - infra/psiagent2/src - - infra/wall-e/database/monitor - - infra/walle/server/walle - - infra/watchdog/src/app - - infra/yp_drcp/bin - - intranet/compositor/src - - intranet/compositor_processors/src - - intranet/dogma/dogma - - intranet/dogma/dogma/wsgi - - intranet/watcher/src/watcher/api/schemas - - intranet/wiki/src/wiki/intranet/models - - intranet/wiki/src/wiki/notifications - - intranet/wiki/src/wiki/utils/tracker/issue_processors - - inventori/pylibs/yt_yql_test - - jupytercloud/backend/lib/db/alembic - - jupytercloud/tools/lib - - kikimr/production/checks/lib - - kikimr/tools/acl_upgrade - - library/cpp/pybind/example/ut - - library/python/bstr - - library/python/nirvana_api - - library/python/nirvana_api/tests/manual - - library/python/ssh_sign - - load/projects/netort/netort/data_manager/clients/tests - - logbroker/juggler/helper - - logbroker/public/client/lib - - logbroker/tools/ansible/plugins/inventory - - logbroker/tools/ansible/plugins/modules - - logfeller/python/logfeller/infra/release/yt - - logfeller/python/logfeller/util/logging - - logfeller/python/logfeller/util/time_util/ut - - logos/libs/md/watcher/lib - - mail/devpack/lib/components - - mail/ghost/bin - - mail/so/spamstop/plotnik - - mail/so/spamstop/tools/frodooborona_fcgi/nginx_balanced - - mail/transfer/ora2pg - - mail/transfer/ora2pg/tests - - mail/transfer/ora2pg/tools - - mail/ymod_queuedb/tests/integration - - maps/streetview/backoffice/tools/yt_image_uploader - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/car_mask - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/matcher/match - - maps/wikimap/mapspro/services/mrc/eye/tool/evaluate_faster_rcnn_keras - - market/analytics/market_search/ranking_formula/get_best_assessor_formula_threshold - - market/assortment/ecom_log/lib/extract_source - - market/dynamic_pricing_parsing/regional_actual_prices/bin - - market/forecast/demand_ml_forecast_validation/lib - - market/forecast/interface_sbx/lib - - market/forecast/interface_sbx/lib/blueprints - - market/front/tools/solomon-generator - - market/guru-models-dumper/monitoring/bin - - market/idx/datacamp/routines/bin - - market/library/shiny/external/yt/beam - - market/mobile/beru/performance-diagnostic/lib - - market/pylibrary/http_api_client - - market/pylibrary/mindexerlib - - market/replenishment/algorithms/bin/backtest - - market/sre/services/logkeeper_web/web/blueprints - - market/sre/tools/capacity/lib - - market/sre/tools/capacity/lib/DAU - - market/sre/tools/capacity/lib/Indexer - - market/sre/tools/capacity/lib/Service - - market/sre/tools/logkeeper/core - - market/sre/tools/logkeeper/logkeeper - - market/sre/tools/rtc/backup_nanny/backup_nanny - - market/svn-data/raise_fee_data - - market/yamarec/performance/nirvana/actions/crypta - - mds/mastermind/background/bin - - mds/mastermind/drooz/src/cocaine-app - - mds/mastermind/gateway/bin - - mds/mastermind/job_processor/bin - - mds/mastermind/monolith/bin - - mds/mastermind/state_builder/bin - - mediapers/nirvana_operations/taiga/build_dataset - - mediapers/nirvana_operations/taiga/convert_model - - mediapers/nirvana_operations/taiga/eval_yt - - mediapers/nirvana_operations/taiga/fit_yt - - mediapers/nirvana_operations/taiga/read_model_from_yt - - ml/tensorflow/models/general_feature_extractor/tests - - ml/tensorflow/models/general_feature_extractor/tools - - ml/tensorflow/models/userbert/tests/infer - - ml/tensorflow/models/userbert/tests/pretrain - - ml/tensorflow/models/userbert/tests/train - - ml/tensorflow/tfnn/src/tfnn/contrib - - ml/tensorflow/tfnn/src/tfnn/ops - - ml/tensorflow/tfnn/src/tfnn/tools/translate_tokenized - - ml/zeliboba/api - - mlp/mail/ind/nirvana_operations/pool_builder - - mlp/mail/ind/nirvana_operations/yt_recommender - - modadvert/programs/manual_killer/libs - - modadvert/test_utils_py3/yt_fixtures - - mssngr/botfarm/src - - mssngr/botfarm/src/logger - - nirvana/valhalla/misc/arcadia/tests/compile/tests - - noc/comocutor-contrib/utils - - orgvisits/model_dwellplaces/features/run/cpp/tests - - passport/backend/oauth/api/tests/base - - passport/backend/oauth/core/tests/base - - passport/backend/oauth/sql/bin - - passport/backend/oauth/tvm_api/tests/base - - passport/backend/py_adm/gunicorn - - passport/backend/py_adm/tests/base - - passport/backend/social/api/dev - - passport/backend/social/broker/dev - - passport/backend/social/proxy2/dev - - passport/backend/vault/api - - payplatform/scrooge/scrooge/utils - - quality/ab_testing/scripts/kati - - quality/functionality/chats/feedback/src/feedback/core/settings - - quality/functionality/chats/feedback/src/feedback/user_id - - quality/functionality/chats/feedback/src/feedback/user_token - - quality/functionality/chats/floyd/src/floyd/core/dispatchers - - quality/functionality/chats/floyd/src/floyd/matcher/bin - - quality/functionality/content_plugins/tools/autoparser_state_checker/tests - - quality/functionality/parsepl/libs/zora - - quality/functionality/parsepl/server/apps/storage/models - - quality/functionality/snippets/image_snippet/check_thumbs/lib/nirvana - - quality/logs/baobab/api/python/baobab/ut - - quality/logs/baobab/api/python_arc/tests - - quality/logs/baobab/api/python_arc/ut - - quality/logs/baobab/api/python_arc/ut3 - - quality/neural_net/bert/bert/build_vocab - - quality/neural_net/bert/bert/commands_runner - - quality/neural_net/bert/bert/models/electra - - quality/neural_net/bert/bert/pytorch - - quality/neural_net/bert/bert/pytorch/deepspeed/pretraining - - quality/neural_net/bert/bert/pytorch/pruning - - quality/neural_net/bert/bert/scripts - - quality/neural_net/bert/tests - - quality/neural_net/bert/tests/albert - - quality/neural_net/bert/tests/basic - - quality/neural_net/bert/tests/finetuning - - quality/neural_net/bert/tests/language_model - - quality/neural_net/bert/tests/legacy - - quality/neural_net/bert/tests/pretraining - - quality/neural_net/bert/tests/pretraining_finetuning - - quality/neural_net/bert/tests/split_bert - - quality/neural_net/bert/tools/valhalla - - quality/nirvana_tools/conveyor_operations/bert/view_bert_models - - quality/nirvana_tools/conveyor_operations/eval_feature/eval_options - - quality/nirvana_tools/conveyor_operations/formula_fstr - - quality/nirvana_tools/conveyor_operations/stove/run_simple_opt - - quality/nirvana_tools/conveyor_operations/train_dssm/eval/plot - - quality/nirvana_tools/conveyor_operations/train_localization_classifier/score - - quality/nirvana_tools/nirvana_operation/tests - - quality/query_expansions/proc/covfefe/makefile_update - - quality/relev_tools/conveyor_dashboard/distributed/front_proxy_monolith - - quality/relev_tools/dsat/fstr - - quality/relev_tools/matrixnet_nirvana_ops/matrixnet_meta_cube - - quality/relev_tools/matrixnet_nirvana_ops/train_matrixnet_on_cpu - - quality/relev_tools/mx_ops_nirvana_ops/mx_ops_calc - - quality/relev_tools/signal-based-eval/nirvana_operations/prepare_bin_pool - - quality/relev_tools/signal-based-eval/nirvana_operations/run_sbfs - - quality/sweeper/smac_adaptive_design - - quality/sweeper/smac_feature_importances - - quality/trailer/suggest/services/maps/scripts-sandbox/org/parse_companies2 - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/tsnet/tsnet2_nirvana_ops/apply_tsnet2 - - quality/tsnet/tsnet2_nirvana_ops/train_tsnet2 - - quality/user_search/scripts - - quality/user_sessions/libra/tests - - quality/user_sessions/libra3/tests - - quality/user_sessions/py_amon/video - - quality/userdata/scripts - - quasar/infra/tasklets/make_ammo_backend/impl - - quasar/infra/tasklets/nanny_backend_release/impl - - quasar/manifest_scripts/migrate_tool - - quasar/manifest_scripts/sync_tool - - release_machine/rm_tool/tools/request_roles - - repo/pciexpress/celery - - repo/pciexpress/hands - - robot/kwyt/tools/ydb_upload_table - - robot/lemur/tools/classification_acceptance - - robot/library/yuppie/modules - - robot/quality/samovar_conveyour/tools/host_diversity_metric - - robot/quality/samovar_conveyour/tools/host_inner_acceptance - - robot/quality/smelter/backend_django/channels/utils - - robot/research/classification_eval - - robot/selectionrank/sr_rules_comparator_util/plot_on_positives - - robot/selectionrank/sr_rules_comparator_util/yt_draw - - rt-research/broadmatching/mr/monitoring/external_candidates - - saas/tools/devops/lib23 - - saas/tools/devops/local_wc - - sandbox/bin - - sandbox/client - - sandbox/devbox - - sandbox/projects - - sandbox/projects/BuildYobject - - sandbox/projects/YabsDutyScheduler - - sandbox/projects/yabs/duty_calendar - - sandbox/sandboxsdk - - sandbox/taskbox/dispatcher - - sandbox/yasandbox/database/mapping - - sandbox/yasandbox/manager - - sandbox/yasandbox/proxy - - sdg/internal_auth/admin/lib - - sdg/robot_bl/robots_intersections/lib - - search/mon/admins/ci/bin - - search/mon/bot/tests - - search/mon/wabbajack/libs/client/parsers - - search/morty/src/canti - - search/morty/src/rviewer/db - - search/morty/src/services - - search/plutonium/admin/lib/tests - - search/pumpkin/yalite_service/app - - search/pumpkin/yalite_service/libyalite/actions - - search/pumpkin/yalite_service/libyalite/common - - search/pumpkin/yalite_service/libyalite/core - - search/pumpkin/yalite_service/libyalite/services - - search/scraper_over_yt/daemons/animals/animals_requester - - search/scraper_over_yt/daemons/notifier_bot - - search/tools/setrace/src/setrace/lib - - skynet/api/cms - - solomon/tools/watchdog - - sprav/misc/python/compare_formulas - - statbox/statkey/jam/actions/monitorings/readiness - - statbox/statkey/jam/actions/statkey-906 - - statbox/statkey/jam/libs - - statbox/statkey/reactor/cubes/datacatalog/prepare_staff_dicts/v1 - - tasklet/v1/runtime/utils - - taxi/antifraud/purga/score/startrek/getupdates - - taxi/antifraud/purga/score/startrek/setresults - - taxi/antifraud/tools/ytclean - - testenv/core/common - - testenv/core/common/extpy - - testenv/core/dowser - - toloka/analytics/research/auto_helper/nirvana_scripts/text_classification/tests - - tools/mstand/sbs - - tools/mstand/session_yt - - tools/python-netconfig-static/test - - travel/avia/avia_api - - travel/avia/avia_api/tests - - travel/avia/library/python/avia_data - - travel/avia/revise/bin/api - - travel/avia/revise/bin/celery - - travel/avia/revise/bin/local_extractor - - travel/avia/stat_admin/scripts - - travel/avia/stat_admin/scripts/cohorts - - travel/avia/stat_admin/scripts/cohorts_v2 - - travel/avia/stat_admin/scripts/cohorts_v3 - - travel/avia/stat_admin/scripts/maintenance - - travel/hotels/devops/sandbox_planner - - travel/hotels/partner_mocks - - travel/hotels/tools/api_req_replicator - - travel/rasp/api_public/api_public/old_versions/core - - travel/rasp/api_public/api_public/old_versions/core/views - - travel/rasp/api_public/api_public/v3/core - - travel/rasp/api_public/api_public/v3/search - - travel/rasp/api_public/api_public/v3/thread - - travel/rasp/api_public/api_public/v3/views - - travel/rasp/api_public/tests/old_versions - - travel/rasp/api_public/tests/old_versions/v1 - - travel/rasp/api_public/tests/v3 - - travel/rasp/api_public/tests/v3/core - - travel/rasp/api_public/tests/v3/search - - travel/rasp/api_public/tests/v3/thread - - travel/rasp/blablacar/blablacar - - travel/rasp/blablacar/blablacar/clients - - travel/rasp/blablacar/blablacar/clients/blablacar_v3 - - travel/rasp/blablacar/blablacar/tests - - travel/rasp/blablacar/blablacar/tests/clients/blablacar_v3 - - travel/rasp/blablacar/blablacar/tests/clients/edem_rf - - travel/rasp/info_center - - travel/rasp/library/python/route_search - - travel/rasp/library/python/route_search/by_number - - travel/rasp/library/python/route_search/tests - - travel/rasp/library/python/route_search/tests/transfers - - travel/rasp/library/python/stationschedule - - travel/rasp/library/python/stationschedule/tests - - travel/rasp/tasks - - travel/rasp/train_api - - travel/rasp/wizards/wizard_lib/utils - - vh/telegram/http2sqs - - voicetech/asr/pipeline/vh - - voicetech/bio/scripts/score/draw_roc_curve - - voicetech/tts/training/pauser - - voicetech/vqe/experiments/nn_postfilter/train_utils/pytorch_train/transforms/numpy - - voicetech/vqe/pylibs/opt - - weather/ml/experiments/neural_nowcasting/neural_nowcasting - - weather/ml/experiments/neural_nowcasting/tests_large - - weather/ml/experiments/neural_nowcasting/tests_medium - - weather/ml/experiments/neural_nowcasting/tests_small - - weather/ml/nirvana_operations/check_pool - - weather/ml/quality/stand/misc/functions/check_status_of_graphs_pack - - weather/ml/quality/stand/misc/functions/eval_pack_of_graphs - - weather/ml/quality/stand/misc/nirvana_rpc_functions/upload_catboost_formula_to_yt - - weather/ml/quality/stand/misc/wqs_level1_input_jsons - - yabs/analytics/researches/dobromayk/scripts - - yabs/capture_rate/geo/logic - - yabs/chat_bot/bot - - yabs/indoor/py_libs/async_tasks - - yabs/nanpu/tools/nanpu_graph_shaman_king - - yabs/nanpu/tools/shaman_king - - yabs/qa/b2b_utils/bsserver_b2b/engine/bs_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/mongo_utils - - yabs/server/test/qabs_bsserver_pytest/tests - - yabs/stat/rtstat/tools/merger - - yabs/vh/cms-pgaas/cms_common/api/blueprints/ovs_blueprint - - yabs/vh/cms-pgaas/cms_common/api/blueprints/partner_ovs_blueprint - - yabs/vh/cms-pgaas/cms_common/biz - - yabs/vh/cms-pgaas/cms_common/services/core - - yabs/vh/cms-pgaas/renamer/biz - - yabs/vh/cms-pgaas/self_service_api - - yabs/vh/cms-pgaas/stream_ad_api - - yabs/vh/cms-pgaas/ugc_api/graphql_api/schema/channel - - yabs/vh/cms-pgaas/utils/services/core - - yabs/vh/cms-pgaas/yandex_tv_uploader/biz - - yabs/vh/cms-pgaas/yatv_lib/biz - - yabs/vh/cms-pgaas/yatv_lib/models - - yabs/vh/frontend/tools/compare_devprod - - yabs/web-bins/export-stat/pcode_experiments/dill - - yaphone/localization_admin/src - - ydo/libs/apphost_source/test - - ydo/tools/dispatch/dispatch_tester/lib - - ydo/tools/monitoring/hitman_monitorings/lib - - yql/library/cloud - - yt/cron/prune_empty_nodes - - yt/hermes/hermes/repositories - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib - - ytech/ecom_tools/amazon/scripts/amzn_sandbox_testing - - yweb/antiporno/nirvana/libs/nirvana_user_status/py/test - - yweb/antiporno/scandal_requests/scandal_requests_extractor_dc/src - - yweb/antispam/cid/library - - yweb/antispam/cid/library/normalizer/tests - - yweb/antispam/mascot/export - - yweb/antispam/mascot/scripts/proxima_kernel - - yweb/antispam/mascot/scripts/tcinet - - yweb/antispam/phishing/mask_transfer/viewer - - yweb/antispam/webspam/export/images/features - - yweb/antispam/webspam/ns_base - - yweb/antispam/webspam/ns_base/test - - yweb/rca/server - - yweb/scripts/datascripts/common - - yweb/scripts/datascripts/runnerLib - - yweb/sitelinks/astrolabe/build_bna/candidates - - yweb/sitelinks/editor - - yweb/sitelinks/scripts/sitelinks - - yweb/webdaemons/clickdaemon/tools/update_wizard_alerts/libs - - yweb/webdaemons/clickdaemon/tools/update_wizard_alerts/main - - yweb/yasap/answers/answers/utils - - yweb/yasap/answers/tests - - yweb/yasap/answers_nirvana/answers_update_passport - - yweb/yasap/answers_nirvana/daily_promoblock_push - - yweb/yasap/answers_nirvana/votes_aggregator - - yweb/yasap/answers_nirvana/weekly_org_push - - zen/external/bigrt/cli - - zen/mstand/squeeze_zen/session_yt - - zen/quality/user_sessions/libra3/tests - - zootopia/hub/geosupply/geosupply/config - - zootopia/hub/planex/promo_backend/daemons - E722: - ignore: - - E722 - prefixes: - - contrib/python/botocore/py3/tests - - contrib/python/botocore/py2/tests - - contrib/python/mongolock - - addappter/backend/addappter_cli/components/statistics_common/value_getters - - addappter/backend/addappter_cli/components/statistics_report/value_getters - - adfox/amacs/tests/functional/libs/builders - - adfox/amacs/tests/functional/tests_amacs/antiadblock - - adfox/amacs/tests/functional/tests_amacs/bulk - - adfox/amacs/tests/functional/tests_amacs/clickhouse - - adfox/amacs/tests/functional/utils - - adfox/amacs/tests/functional/utils/db - - adfox/amacs/tests/functional/utils/db/marshaller - - adfox/amacs/tests/functional/utils/tools - - adfox/infra/amacs_config/lib - - adfox/infra/monitoring/agent - - adfox/qa/shm/comparator/lib - - adfox/qa/shm/creator/bullets_builder - - adfox/qa/utils/lua_client - - adfox/qa/utils/redis - - adfox/valhalla/scripts/run_unload_client_logs - - adfox/xpd/tests/functional/tests/bigb_service - - admins/combaine/configs/generator - - ads/autobudget/metrics/equivalency_monitoring - - ads/bsyeti/caesar/tests/ft_grut_docker - - ads/bsyeti/caesar/tests/lib/b2b - - ads/bsyeti/caesar/tests/new_b2b - - ads/bsyeti/libs/py_testlib - - ads/bsyeti/samogon/balancer/plugin - - ads/bsyeti/samogon/bigb_oracle/plugin - - ads/bsyeti/samogon/eagle/plugin - - ads/bsyeti/samogon/flamegraph/plugin - - ads/bsyeti/samogon/vulture/plugin - - ads/bsyeti/servants/validator - - ads/bsyeti/servants/validator/lib - - ads/bsyeti/tests/buzzard/b2b/buzzard_test_updater - - ads/bsyeti/tools/alter_replicated_schema - - ads/bsyeti/tools/bb_harvester - - ads/bsyeti/tools/log_viewer - - ads/bsyeti/tools/resources_fallback - - ads/factor_check/nirvana/operations/feature_calcer - - ads/factor_check/sandbox_scripts/pool - - ads/libs/py_autobudget - - ads/libs/py_bid_correction - - ads/libs/py_binary_base/ut/src - - ads/libs/py_ecommerce - - ads/libs/py_ecommerce/ut - - ads/libs/py_mapreduce/ut - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib_distributive - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib_emulator - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabutils - - ads/libs/py_ml_factors/factor - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_ml_factors/ut/user_profile - - ads/libs/py_ml_utils - - ads/libs/py_sandbox_cache - - ads/libs/py_sysutils/yabs-python-sysutils/py-modules - - ads/libs/py_vw_lib - - ads/libs/py_yt2logbroker - - ads/libs/tape - - ads/ml_engine/learn/result/flow_generate_extended_fstr - - ads/ml_engine/learn/result/flow_plot_learn_curve - - ads/ml_engine/learn/result/flow_process_usage_data/lib - - ads/ml_engine/learn/result/local_extended_fstr/lib - - ads/ml_engine/lib - - ads/ml_engine/token - - ads/ml_monitoring/api/lib - - ads/nirvana - - ads/nirvana/automl/lib/batch_processor - - ads/nirvana/automl/lib/batch_processor/ut - - ads/nirvana/automl/lib/bc - - ads/nirvana/automl/lib/metric_eval - - ads/nirvana/automl/lib/ml_engine - - ads/nirvana/automl/pipelines/mlmarines - - ads/nirvana/difacto/dmlc_launcher - - ads/nirvana/difacto/dmlc_launcher/lib - - ads/nirvana/difacto/dmlc_launcher/nirvana_state - - ads/nirvana/graph_killer - - ads/nirvana/graph_retrier/lib - - ads/nirvana/mr_operations/fix_broken_factors/lib - - ads/nirvana/online_learning/move_dmlc_dumps/lib - - ads/nirvana/online_learning/run_flowkeeper/online_flowkeeper/pipeline - - ads/nirvana/sequential_learning - - ads/nirvana/tools/apc_check - - ads/nirvana/vw/single_host_master_slave - - ads/nirvana/vw/vw_launcher - - ads/nirvana/wormhole/dmlc_launcher - - ads/pytorch/lib/online_learning/production/processors/tsar_processor - - ads/pytorch/lib/online_learning/production/train_ctl/lib - - ads/quality/adv_machine/scripts/ban_search_order_ids/lib/reader - - ads/quality/adv_machine/scripts/devops_tools/lib - - ads/quality/adv_machine/scripts/fast_index_tools/lib - - ads/quality/adv_machine/scripts/patch_resource - - ads/quality/adv_machine/scripts/preprocess_autotargetting_pool - - ads/quality/adv_machine/scripts/run_cm - - ads/quality/apc/gmg/make_lm_pool/lib - - ads/quality/bid_correction/lib - - ads/quality/bid_correction/v2/monitoring - - ads/quality/bid_correction/workflow_constructor/test_tasks/lib - - ads/quality/embedding/tools/schema_inferer - - ads/quality/experiments/ang_banner_relevance/bsmr_scripts - - ads/quality/ltp/action_tasks/parsed_bigb_profile - - ads/quality/phf/phf_direct_loader/lib/campaign_generation - - ads/quality/phf/phf_direct_loader/lib/extensions - - ads/quality/phf/phf_direct_loader/lib/modules/templates/controllers - - ads/quality/phf/phf_direct_loader/tests/ut - - ads/quality/simulate_auction_py/lib/banner_resources - - ads/quality/simulate_auction_py/lib/nirvana - - ads/quality/simulate_auction_py/lib/utils - - ads/quality/simulate_auction_py/scripts/simulate/parameters/inside_organics_2 - - ads/quality/simulate_auction_py/scripts/simulate/parameters/inside_organics_3 - - ads/quality/tlm/pylib - - ads/sandbox_scripts/clean_mapreduce/lib - - ads/targeting/ml-downloader/download_ml_models - - ads/tools/detect_bad_days - - ads/tools/find_chunks - - ads/tools/graphite_send - - ads/tools/hitcost_utils/optimizer/lib - - ads/tools/hitcost_utils/simulator - - ads/tools/mranalyze - - ads/tools/portorun - - ads/tools/yt_operations_analyzer - - ads/tools/yt_quota_analyzer - - ads/watchman/timeline/api/tests/ut/tickets - - ads/yacontext/lib/gstatsd - - ads/yacontext/lib/http - - ads/yacontext/lib/http/tests - - ads/yacontext/lib/logbroker - - ads/yacontext/lib/logbroker/tests/manual - - ads/yacontext/lib/service - - adv/pcode/tasks/generate_perf_ammo - - adv/pcode/zfp/utils - - advq/generation/common/generators/phits_generator/phits_types - - advq/generation/common/util - - advq/generation/common23/util - - advq/pokazometer/generation/pylib - - advq/tools/b2b - - afisha/common/recipes/mongodb4 - - afisha/infra/projects/gh_monitorings/app/models - - alice/analytics/operations/core_spu - - alice/analytics/operations/dialog/pulsar - - alice/analytics/operations/priemka/alice_parser/lib - - alice/analytics/operations/priemka/alice_parser/visualize - - alice/analytics/operations/timespent - - alice/analytics/utils/nirvana - - alice/analytics/utils/tv - - alice/boltalka/generative/tfnn/telegram_bot - - alice/boltalka/woz_data_collection_bot/src - - alice/gamma/sdk/python/gamma_sdk - - alice/hollywood/fixture - - alice/hollywood/library/python/testing/dump_collector - - alice/hollywood/library/python/testing/it_grpc - - alice/hollywood/library/python/testing/stubber - - alice/kronstadt/fixture - - alice/megamind/tests/library - - alice/nlu/libs/binary_classifier/train/collect_begemot_responses - - alice/nlu/tools/binary_classifier - - alice/nlu/tools/test_begemot_parsing - - alice/tests/evo_parser/lib - - alice/tools/rivals_e2e/cmd_runner - - alice/tools/telegram/alice_battle_angel_bot - - alice/uniproxy/library/activation_storage - - alice/uniproxy/library/auth - - alice/uniproxy/library/backends_asr - - alice/uniproxy/library/backends_common - - alice/uniproxy/library/backends_common/ut - - alice/uniproxy/library/backends_tts - - alice/uniproxy/library/common_handlers - - alice/uniproxy/library/delivery - - alice/uniproxy/library/messenger - - alice/uniproxy/library/notificator - - alice/uniproxy/library/processors - - alice/uniproxy/library/resolvers - - alice/uniproxy/library/settings - - alice/uniproxy/library/testing - - alice/uniproxy/library/uaas - - alice/uniproxy/library/unimemcached - - alice/uniproxy/library/unisystem - - alice/uniproxy/library/utils - - alice/uniproxy/library/vins - - alice/uniproxy/library/web_handlers - - alice/uniproxy/tools/balancer_top - - alice/uniproxy/tools/clear_mds - - alice/uniproxy/tools/perf_tester - - alice/uniproxy/tools/wsproxy_admin - - analytics/collections/plotter_collections/plots - - analytics/geo/maps/common - - analytics/plotter_lib - - antiadblock/adblock_rule_sonar/sonar/lib/utils - - antiadblock/cryprox/cryprox/service - - antiadblock/libs/adb_selenium_lib/browsers - - antiadblock/postgres_local - - antiadblock/postgres_local/recipe - - antiadblock/tasks/money_by_service_id/bin - - antiadblock/tasks/money_by_service_id/lib - - antiadblock/tasks/performance_shoots_log_analyzer - - antirobot/captcha/fingerprint/server - - antirobot/captcha/greed_example/server - - antirobot/cbb/cbb_django/cbb/forms - - antirobot/cbb/cbb_django/cbb/library - - antirobot/cbb/cbb_django/cbb/views - - antirobot/daemon/arcadia_test/util - - antirobot/scripts/antirobot_eventlog - - antirobot/scripts/gencfg - - antirobot/scripts/utils - - antirobot/tools/cbb_api_mock - - apphost/api/service/tests - - apphost/api/service/tests/util - - apphost/daemons/horizon/src/agent - - apphost/daemons/horizon/src/common - - apphost/daemons/horizon/src/server/notifications - - apphost/daemons/horizon/src/server/services/yp_integration - - apphost/lib/python/split/charts - - apphost/lib/python/split/generator - - apphost/lib/python/split/utils - - apphost/test/legacy/lib - - apphost/test/legacy/lib/apphost/tests - - apphost/test/legacy/service_test/lib/flushing_python_servant - - apphost/test/server/functional/lib - - apphost/tools/app_host_launcher/client/http - - apphost/tools/app_host_launcher/setup - - apphost/tools/load_testing/cli/apphost_sandbox_tasks_cli - - apphost/tools/mock_framework/tests/generator - - apphost/tools/mock_framework/tests/generator/lib - - apphost/tools/setup_logs/lib - - april/badb/badb/db/mysql - - april/basback/basback/lib - - april/basback/basback/lib/april_report_assembler - - april/basback/basback/process - - april/basback/basback/process/ca/custom_category_report - - april/basback/basback/process/collector/audit_preset - - april/basback/basback/process/qa/interest_report - - april/basback/basback/process/qa/interest_report/v2 - - april/basback/basback/util - - april/common/libca - - april/etl/client_analytics/full_ca - - april/etl/interest/prepare_interest_cache - - april/etl/spark - - april/lib/py/exceller/exceller/formatting - - april/pp/pp - - april/tools/atop_monitoring - - april/web/bas/api - - april/web/bas/bm/management/commands - - april/web/bas/bm/utils - - april/web/bas/ca - - april/web/bas/ca/forms - - april/web/bas/ca/templatetags - - april/web/bas/ca/utils - - april/web/bas/common - - april/web/bas/cpa - - april/web/bas/cpa/templatetags - - april/web/bas/cpa/utils - - april/web/bas/oauth/management/commands - - april/web/bas/qa - - april/web/bas/qa/serializers - - april/web/bas/rt - - april/xlsx/xlsx_builder - - april/yta/yta - - aurora/aurora/config - - aurora/aurora/core - - aurora/aurora/core/env - - aurora/aurora/core/meta - - aurora/aurora/core/toloka - - aurora/aurora/metaworker - - aurora/aurora/worker/executors - - aurora/scripts/external_checks/2gis - - aurora/tests/proxy - - aurora/xpath/applier - - autobudget/bidder/lib - - autobudget/ci/jobs/generate_change_log - - balancer/test/functional/active_balancer2/without_pinger - - balancer/test/functional/admin/admin - - balancer/test/functional/admin/graceful_shutdown - - balancer/test/functional/children_manager - - balancer/test/functional/srcrwr - - balancer/test/hpack/data - - balancer/test/mock/mock_sd - - balancer/test/util/backend - - balancer/test/util/dnsfake - - balancer/test/util/process - - billing/apikeys/apikeys - - billing/apikeys/apikeys/butils_port/application - - billing/datalens/utils - - billing/dcs/dcs/temporary/balance - - billing/dcs/dcs/temporary/butils/application - - billing/dcs/dcs/temporary/reports_utils - - billing/dwh/src/dwh/core - - billing/dwh/src/dwh/grocery/dcs/export - - billing/dwh/src/dwh/grocery/task - - billing/dwh/src/dwh/grocery/tools - - billing/dwh/src/dwh/grocery/tools/mncloselib - - billing/hot/calculators/taxi/calculator/core - - billing/library/python/calculator/services - - billing/tools/telebot/telebot/bots - - billing/tools/telebot/yshanka - - bindings/python/easyparser/tests - - browser/backend/ci/tasklets/run_teamcity_build/impl - - ci/tasklet/registry/common/monitoring/juggler_watch/impl - - cloud/billing/ci/tasklets/teamcity/impl - - cloud/blockstore/public/sdk/python/client - - cloud/blockstore/sandbox/tasks/NbsAnalyzeUsedGroup - - cloud/blockstore/sandbox/tasks/NbsTeamcityTest - - cloud/blockstore/tests/client - - cloud/blockstore/tests/notify - - cloud/blockstore/tests/python/lib - - cloud/blockstore/tests/recipes/notify-mock - - cloud/blockstore/tools/analytics/overcommit-factor - - cloud/gauthling/gauthling_daemon_tornado/lib - - cloud/iam/planning_tool/library - - cloud/infra/packages/monitoring/lib - - cloud/mdb/gpsync - - cloud/mdb/images/dataproc21/bootstrap - - cloud/mdb/salt/salt/components/redis/common/conf/redisctl/utils - - cloud/mdb/sandbox/tasklets/teamcity/impl - - cloud/support/tools/qcalc/app - - cloud/tools/update-ssh-keys - - cmnt/tools/request_generator - - cmnt/tools/yql - - comdep_analytics/comdep_recsys/etl_core/utils - - comdep_analytics/exceller_py2/exceller/formatting - - comdep_analytics/sharepoint_yt_sync/lib - - crypta/audience/test/fat - - crypta/graph/archivator/lib - - crypta/graph/data_import/autoru_log/tests - - crypta/graph/data_import/metrika_user_params/tests - - crypta/graph/data_import/stream/lib/tasks - - crypta/graph/export/tests - - crypta/graph/lib/graph_connectivity - - crypta/graph/matching/publish/lib - - crypta/graph/soupy_indevice/bin - - crypta/graph/staff/lib - - crypta/graph/v1/python/infra - - crypta/graph/v1/python/infra/radius - - crypta/graph/v1/python/utils - - crypta/graph/v1/python/v2/soup - - crypta/graph/v1/tests/libs - - crypta/graph/v1/tests/testdata - - crypta/lab/rule_estimator/services/worker/lib - - crypta/lib/python/bt/workflow - - crypta/lib/python/bt/workflow/test - - crypta/lib/python/swagger - - crypta/lib/python/worker_utils - - crypta/lib/python/yt/http_mapper - - crypta/profile/lib/bb_helpers - - crypta/profile/runners/matching/lib - - crypta/profile/runners/segments/lib/coded_segments - - crypta/web/dating/back - - crypta/why_this_ad/services/tg_bot/lib - - cv/cbir_search/intent_classifier/make_queries - - cv/cbir_search/intent_classifier/parse_intent_factors - - cv/cbir_search/smart_camera/scenarios/poetry/make_data - - cv/cbir_search/tools/similar_pool/adding_assessment - - cv/cbir_search/tools/similar_pool/grep_factors_from_middle - - cv/cbir_search/tools/similar_pool/grep_query_features - - cv/cbir_search/tools/similar_pool/scrape_serp_from_middle - - cv/cbir_search/yt_classifier/image_tools - - cv/imageproc/ocr/tools/database_extraction/nirvana/download_images - - cv/imageproc/ocr/tools/database_extraction/nirvana/get_images_urls/common - - cv/imageproc/ocr/tools/database_extraction/nirvana/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/database_extraction/nirvana/remove_mask - - cv/imageproc/ocr/tools/nirvana/api_compare - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/extract_pdf_boxes - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/g_blocks - - cv/imageproc/ocr/tools/nirvana/confidence_factors/format_utils - - cv/imageproc/ocr/tools/nirvana/ocr_results_visualize - - cv/imageproc/ocr/tools/nirvana/recaptcha/generate_captcha_images_yt - - cv/imageproc/ocr/tools/ocr_api_log_processing/daily_ocr_stat - - cv/imageproc/ocr/tools/ocr_api_log_processing/grep_ocr_api_logs_yt - - cv/imageproc/ocr/tools/statistic/auto_tests/test_scripts/plates_statistic - - cv/imageproc/ocr/tools/statistic/detailed_blocks_statistic - - cv/imageproc/ocr/tools/statistic/rectify_evaluation/cbir_daemon_wrapper - - cv/imageproc/ocr/tools/statistic/rectify_evaluation/yt_runner - - cv/imageproc/ocr/tools/toloka_labeling/common - - cv/imageproc/ocr/tools/toloka_labeling/get_labeling - - cv/imageproc/ocr/tools/toloka_labeling/labeling - - cv/imageproc/ocr/tools/toloka_labeling/labeling_assessors - - cv/imageproc/ocr/tools/toloka_labeling/labeling_captcha - - cv/imageproc/ocr/tools/toloka_labeling/paint_good - - cv/imageproc/ocr/tools/toloka_labeling/split_lines - - cv/imgclassifiers/danet/tests/stream_features_eval_rt - - cv/imgclassifiers/framework/data_processing - - cv/imgclassifiers/framework/images_collection - - cv/imgclassifiers/framework/nirvana/data_tools/strm_download - - cv/imgclassifiers/framework/nirvana/sweeper/sweeper - - datacloud/score_api/storage/cookie_sync/app - - dataforge/src/params - - datalens/backend/lib/bi_app_tools/bi_app_tools/ylog - - datalens/backend/lib/bi_task_processor/bi_task_processor - - datalens/backend/tools/materialization/mat_ch_cluster_population - - devtools/autocheck/partition_metod/partition_generator - - devtools/codenav/pyndexer - - devtools/codenav/python - - devtools/distbuild/deploy/fallback_data/lib - - devtools/experimental/ylog/ylog - - devtools/local_cache/toolscache/tests/small - - devtools/migration/sandbox - - devtools/snowden/back - - devtools/snowden/flusher/lib - - devtools/subbotnik - - devtools/ya/app - - devtools/ya/build/gen_plan - - devtools/ya/build/ymake2 - - devtools/ya/handlers/dump - - devtools/ya/handlers/pr - - devtools/ya/handlers/project/lib - - devtools/ya/ide - - devtools/ya/test/tests/arc_canonization - - devtools/ya/test/tests/canon_diff - - devtools/ya/yalibrary/debug_store/processor - - devtools/ya/yalibrary/debug_store/store - - devtools/ya/yalibrary/evlog - - devtools/ya/yalibrary/ggaas/bare_repository - - devtools/ya/yalibrary/ggaas/worker - - devtools/ya/yalibrary/pr - - devtools/ya/yalibrary/resource_autoupdater - - devtools/ya/yalibrary/runner - - devtools/ya/yalibrary/runner/tasks - - devtools/ya/yalibrary/streaming_client - - dict/misspell/make/modules/train_rankers/preprocessing/bin/spelld_features - - dict/misspell/spellchecker/offline/build - - dict/moria/nirvana/context/find_hypot_in_query - - dict/moria/nirvana/rules/lemmatize_hypots - - dict/mt/analytics/metrics/quality/mt/stupids/lib - - dict/mt/analytics/mr_metrics/lib/util - - dict/mt/analytics/sentence_breaking/translate_human_eval_comparison - - dict/mt/analytics/squeeze_mt_user_sessions/lib - - dict/mt/eval/eval_viewer/lib/dao/pg - - dict/mt/eval/eval_viewer/lib/util/rich_traceback - - dict/mt/eval/eval_viewer/lib/util/rpc - - dict/mt/eval/eval_viewer/tools/misspell/http_server/test - - dict/mt/eval/eval_viewer/tools/mt/http_server/test - - dict/mt/eval/lib/testsets - - dict/mt/eval/monitoring/run_monitoring - - dict/mt/g2p/toloka - - dict/mt/make/libs/translate_mtd - - dict/mt/make/processes/gen_monitoring_graphs/update_status - - dict/mt/make/processes/gen_monitoring_graphs/update_status/reports - - dict/mt/make/processes/gen_sync_testsets_graph/sync_testsets_to_yt - - dict/mt/make/services/experiment_service/server - - dict/mt/make/services/experiment_service/server/db - - dict/mt/make/tools/mt_release - - dict/mt/make/tools/opus_merge - - dict/mt/mtdict/make/definitions/modules/extracts/count_similarity - - dict/mt/mtdict/make/definitions/modules/extracts/cut_definitions - - dict/mt/mtdict/make/definitions/modules/images/avatars - - dict/mt/mtdict/make/release/tools/prepare - - dict/mt/mtdict/make/translation_dictionary/pipeline - - dict/mt/mtdict/scripts/complaints - - dict/mt/tools/mobile/build_offline_libs - - dict/mt/user_sessions/tests - - dict/tools/find_synonym - - direct/backend/recipe/mysql - - direct/infra/direct_zkcli - - direct/infra/draftsman_solomon/draftsman - - direct/infra/observatorium/app/views - - direct/infra/observatorium/lib/tools - - disk/admin/monitors/download_stat_limit - - disk/admin/monitors/mpfs_handles - - disk/admin/monitors/nginx_errors - - disk/admin/monitors/telemost_broadcast_restarts - - disk/admin/robot_switcher - - disk/admin/utils - - disk/videostreaming/src/main/python/invalidate_cache - - distribution_interface/backend/backend/autogen - - distribution_interface/backend/backend/basic_stats - - distribution_interface/backend/backend/intermediate_models - - distribution_interface/backend/backend/kraken - - distribution_interface/backend/backend/kraken/handlers - - distribution_interface/backend/backend/long_downloads - - distribution_interface/backend/backend/util/clients - - distribution_interface/backend/tests/utils - - district/logbroker_consumers/consumers/feed_writer/uploaders - - dj/lib/processing/yt/impl/ut/run_test - - dj/lib/shard2/yt_prepare/ut/run_test - - dj/lib/viewer/server - - dj/nirvana/tools/nirvana_yt_clear - - dj/services/alisa_skills/server/tests - - dj/tools/firing/compare - - dj/tools/viewer/custom/market - - dj/tools/viewer/custom/video - - dj/torch/tools/runner - - dj/unity/lib/processing_config_test - - drive/devops/cli - - drive/devops/cli/secrets - - edadeal/analytics/scripts/Funnels/FunnelsLib/FunnelsLib - - education/english/services/aula/app/wordbank - - education/infra/ci/tasklets/enigma_operation/impl - - education/infra/ci/tasklets/send_notification/impl - - education/lib/nirvana/operations/transfer_uploader/lib - - education/lib/tasklet - - education/schoolbook/lib/pydantic_factories/utils - - education/tools/service_config/lib - - education/yaschool/services/sections/app/handlers - - education/yaschool/services/sections/app/utils - - entity/ontodb/tasks/extdata_import/wikidata/lib - - entity/ontodb/tasks/extdata_import/yandex_market/lib - - entity/ontodb/tasks/fast_death_pipeline - - entity/ontodb/tasks/fast_death_pipeline/end_date_parser - - entity/ontodb/tasks/import_persons/lib - - entity/ontodb/tasks/import_wikipedia_incremental/lib - - entity/ontodb/tasks/merged_ids_update/lib - - entity/quality - - entity/quality/helix - - entity/recommender/lib/python/common - - entity/recommender/nirvana/operations/build_static_profiles/lib - - entity/recommender/nirvana/operations/make_pool_series - - entity/recommender/nirvana/operations/yam/yam_positions - - entity/recommender/tools/data_freshness_for_solomon - - entity/ugc/nirvana/ugcdb/sprav_ratings/lib - - entity/ugc/nirvana/ugcdb/uploader/lib/ut - - entity/ugc/quality/user_top - - entity/ugc/robot/tools/orgvisits_loader/lib - - entity/ugc/robot/tools/reviews_to_saas/lib - - entity/ugc/robot/tools/ugcdb_to_updates - - entity/ugc/robot/tools/user_activity_processor/lib - - entity/ugc/robot/tools/user_sbs_processor/lib/questions - - entity/ugc/robot/tools/user_sbs_processor/lib/sbs - - entity/ugc/robot/util - - entity/ugc/tools/bell/replay_requests - - entity/ugc/tools/nirvana/ugcdb1_process/backup - - entity/ugc/tools/viewer_server/lib/app - - entity/ugc/tools/viewer_server/lib/core - - entity/ugc/tools/viewer_server/lib/modules - - ether/push/subscribe/send_sup - - ether/top/news - - ether/top/specevent/meta - - extsearch/audio/deepdive/graphs/check_input_streams - - extsearch/audio/yamrec/query_browser - - extsearch/audio/yamrec/radio_listener/lib - - extsearch/collections/tools/logs_queries_processor - - extsearch/geo/aspects/yql_udf_py - - extsearch/geo/base/geobasesearch/tests/business/business_as_blackbox - - extsearch/geo/base/geobasesearch/tests/business/test_cases - - extsearch/geo/base/geobasesearch/tests/collections - - extsearch/geo/conveyors/annotations/metro_extractor/get_metro_to_ll - - extsearch/geo/conveyors/annotations/split_into_words - - extsearch/geo/conveyors/gdpr/personal_suggest_formatter - - extsearch/geo/conveyors/gdpr/prepare_takeout_data - - extsearch/geo/conveyors/gdpr/uploader - - extsearch/geo/indexer/business_indexer_yt/tests/build_index - - extsearch/geo/kernel/pymod/blackbox/blackbox - - extsearch/geo/meta/tests/response - - extsearch/geo/tools/create_ignore_string/lib - - extsearch/geo/tools/inner_orgs/calc_inner_orgs - - extsearch/geo/tools/serp_qloss - - extsearch/geo/tools/stopwords_mining - - extsearch/goods/indexer/shard_builder - - extsearch/goods/tools/endpointer - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/goods/tools/runtime_cloud/report_ctl/util - - extsearch/images/functionality/report_data/bin - - extsearch/images/library/testlib - - extsearch/images/money/scripts/robot/util - - extsearch/images/money/tools/commercial_serps_downloader - - extsearch/images/money/tools/download_market_from_awaps - - extsearch/images/related_queries/tools/configure_glueing - - extsearch/images/robot/index/index_download/lib - - extsearch/images/robot/index/index_download/lib/ut/tests - - extsearch/images/robot/mrdb/rimdb/utils/rim_taas_time - - extsearch/images/robot/rtrobot/panel - - extsearch/images/robot/tools/download_resource - - extsearch/images/robot/tools/indexrotate - - extsearch/images/saas/saas_acceptance/basesearch/deployment - - extsearch/images/tools/capacity/tank_executor - - extsearch/images/tools/morda_popular_queries/bin/modes/add - - extsearch/images/tools/morda_popular_queries/bin/modes/transfer_to_avatars - - extsearch/images/tools/morda_popular_queries/bin/modes/upload - - extsearch/images/tools/nirvana/download_serps - - extsearch/images/tools/nirvana/duck - - extsearch/images/tools/offline_diff/fast_shooter - - extsearch/images/tools/offline_diff/united_testing/src/utils - - extsearch/images/tools/sepe - - extsearch/images/tools/sepe/lib - - extsearch/images/tools/sepe/r24h/dashboard - - extsearch/images/tools/yt_infra/yt_operation_tool - - extsearch/unisearch/education/check_saas_diff - - extsearch/unisearch/education/feed_mapreduce - - extsearch/unisearch/education/get_dynamic_factors_from_saas - - extsearch/unisearch/education/start_offline_for_ab - - extsearch/unisearch/medicine/data_processing/before_dedublicate - - extsearch/unisearch/medicine/data_processing/parse_clinics_soy_result - - extsearch/unisearch/medicine/data_processing/parse_secondary_urls_results - - extsearch/unisearch/medicine/data_processing/ugc_rating - - extsearch/unisearch/medicine/geo_processing/voluntary_insurance - - extsearch/unisearch/medicine/prepare_merge_guess - - extsearch/unisearch/tools/feed_checker - - extsearch/uslugi_div_cards/generate_region_workers - - extsearch/video/contstorage/pymerge - - extsearch/video/contstorage/tests - - extsearch/video/functionality/entitysearch/movies_data_parser/reason_to_believe - - extsearch/video/functionality/fastdelivery/BlogersTop/blogers - - extsearch/video/functionality/pushes/stream_lives/send_lives - - extsearch/video/functionality/upf/afisha_feed - - extsearch/video/functionality/upf/common - - extsearch/video/functionality/upf/feed_parser - - extsearch/video/functionality/upf/feed_tests - - extsearch/video/python/yql - - extsearch/video/quality/classifiers/danet_image_processor/test - - extsearch/video/quality/recommender/tools/dj_profile_viewer - - extsearch/video/quality/recommender/tools/zen_load - - extsearch/video/quality/series/base/builder/wrappers - - extsearch/video/quality/suggest/parse_film_logs - - extsearch/video/robot/cm/deletes/cmpy/series - - extsearch/video/robot/cm/library/ut - - extsearch/video/robot/cm/transcoder/cmpy/full_vh_vh - - extsearch/video/robot/crawling/live_broadcasts/coverage - - extsearch/video/robot/crawling/merge_contents/tests - - extsearch/video/robot/crawling/player_testing/core/artifacts - - extsearch/video/robot/crawling/player_testing/core/browser - - extsearch/video/robot/crawling/player_testing/core/display - - extsearch/video/robot/crawling/player_testing/core/log_aggregator - - extsearch/video/robot/crawling/player_testing/core/models - - extsearch/video/robot/crawling/player_testing/core/sqs - - extsearch/video/robot/crawling/player_testing/core/util - - extsearch/video/robot/crawling/player_testing/services/live_capture - - extsearch/video/robot/crawling/player_testing/services/live_proxy - - extsearch/video/robot/crawling/player_testing/services/yt_writer - - extsearch/video/robot/frames/merge - - extsearch/video/robot/metarobot/vh_planner/uploader - - extsearch/video/robot/rt_transcoder/dhdaas - - extsearch/video/robot/sbr_metric/sbr_tool - - extsearch/video/robot/scripts/prepare_url_pairs_for_toloka - - extsearch/video/robot/tools/zora_wrap - - extsearch/video/robot/youtube_grabber/content_grabber - - extsearch/video/robot/youtube_grabber/meta_grabber/lib - - extsearch/video/ugc/sqs_moderation/clients/client_manager - - extsearch/video/ugc/sqs_moderation/http2sqs - - extsearch/video/ugc/sqs_moderation/mod2 - - extsearch/video/vh/lb2cms - - extsearch/video/vh/tape/lib - - extsearch/wizards/fastres2/tools/data_delivery/rtmr/delivery/common - - extsearch/wizards/fastres2/tools/data_delivery/rtmr/delivery/default - - extsearch/wizards/fastres2/viewer/controllers - - extsearch/younglings/education/tests - - games/admin/background_modules - - games/admin/bin/fix_tool - - games/admin/libs/tasklets/teamcity/impl - - games/push_messages - - games/qa/qa_tests - - geoproduct/advert_ranking/traffic_prediction/reducers - - geoproduct/aml/assessors/results_export/lib - - geoproduct/aml/image_and_text_relevance/lib - - geoproduct/amocrm/companies_deduplication - - geoproduct/amocrm/diff_tool/lib - - geoproduct/amocrm/import/agencies - - geoproduct/amocrm/link_calls/src - - geoproduct/amocrm/task_manager/task_giver - - geoproduct/amocrm/update_companies_info/mapper - - geoproduct/amocrm/update_companies_info/updater - - geoproduct/amocrm/utils - - geoproduct/bonuses_approval/project/manage - - geoproduct/conferences/project/manage - - geoproduct/external_cc/batch_shipment - - geoproduct/external_cc/batch_shipment/tasks - - geoproduct/external_cc/project/manage - - geoproduct/external_cc/settings - - geoproduct/external_cc/util - - geosuggest/conveyors/learn_pool - - geosuggest/tools/international_quality/geo_shooting/lib - - geosuggest/tools/international_quality/prepare_google_basket - - geosuggest/tools/international_quality/vh3/similarweb_basket_prepare - - glycine/domain/yt - - grut/python/object_api/local - - haas/cmis/hwr_allocation/allocation_methods - - haas/cmis/hwr_preorders - - haas/misc/aurora-parking-bot - - health/turbo_articles/turbo_to_yt/lib/process_articles - - health/yamd/health_backend/apphost/handlers - - htf/metrics - - infra/auth_controller/it/scripts/roles_behaviour_tests - - infra/awacs/vendor/httpbin/httpbin - - infra/awacs/vendor/kazoo/kazoo - - infra/callisto/controllers/shard - - infra/callisto/controllers/user/img - - infra/capacity_planning/utils/resources/credits - - infra/capacity_planning/utils/resources/walle_project - - infra/clusterstate/libraries/waitinfo - - infra/clusterstate/services/alpha - - infra/clusterstate/services/resolver - - infra/clusterstate/tools/cleanup_groups - - infra/deploy/tools/yd_migrate/lib - - infra/diskmanager/lib - - infra/dist/dmover/lib - - infra/dostavlyator/lib/activator - - infra/dostavlyator/lib/fetcher - - infra/dostavlyator/lib/misc - - infra/dostavlyator/lib/upravlyator - - infra/ebpf-agent/tests - - infra/environments/builder - - infra/gosky/src/gosky - - infra/heartbeat/src - - infra/heartbeat/src/rpc - - infra/heartbeat/src/utils - - infra/kernel/test/misc - - infra/kernel/test/misc/kern - - infra/kernel/tools/menu/lib - - infra/logger - - infra/logger/tests - - infra/nanny/hq_get_instances/lib - - infra/netconfig/checks - - infra/netconfig/lib - - infra/netconfig/utils/pinger/lib - - infra/netmon/agent/agent - - infra/oops-agent/src/lib - - infra/oops-agent/src/lib/agent - - infra/oops-agent/src/lib/modules - - infra/psiagent2/src/utils - - infra/qemu/lib/qemutool/qemutool/guest - - infra/qemu/vmexec - - infra/qyp/account_manager/src/lib - - infra/qyp/qdm/src/mds/client - - infra/qyp/qdm/src/rpc - - infra/qyp/qdm/src/server - - infra/qyp/qdm/src/server/evoq - - infra/release_controller/src - - infra/rtc/iolimit_ticketer - - infra/rtc/juggler/bundle/checks/portod_tasks - - infra/rtc/jyggalag/clients - - infra/rtc_sla_tentacles/backend/lib/debug - - infra/shawshank/lib - - infra/skyboned/src - - infra/skybone-coord/src - - infra/skylib/debug_server - - infra/swatlib/gevent - - infra/swatlib/stacksampler - - infra/swatlib/storage/zk - - infra/unbound/python/unbound - - infra/wall-e/database/s3_mds - - infra/walle/database/clients - - infra/walle/server/contrib/sepelib/flask-test - - infra/walle/server/contrib/sepelib/mongo-test - - infra/watchdog/src/app - - infra/watchdog/src/lib - - infra/yasm/sre/testit - - infra/yp_dns/monitoring/tools/yp_dns_monitoring - - infra/yp_dns_api/tests - - infra/yp_dns_api/tools/create_zones - - infra/yp_quota_distributor/db_operations - - infra/yp_quota_distributor/lib - - intranet/d/backend/service/recipe - - intranet/webauth/tests - - intranet/wiki/recipes/mongo - - inventori/pylibs/solomon - - inventori/pylibs/utils - - juggler/jctl/bin - - jupytercloud/contrib/jupyterhub-traefik-proxy/jupyterhub_traefik_proxy - - k50/tools/greenbot - - keyboard/analytics/metrics/lib - - keyboard/analytics/metrics/lib/verticals - - keyboard/analytics/toloka/nirvana/blocks - - keyboard/analytics/toloka/scripts/clean_toloka - - keyboard/dict/fuzzing - - keyboard/dict/misspell/lib - - keyboard/dict/prepare_dict - - keyboard/dict/synthetic_ngrams/make - - keyboard/dict/train_tap_model_ranker - - kikimr/ci/tasklets/teamcity/impl - - kikimr/tools/deploy_plugins - - kikimr/tools/duty_bot - - kikimr/tools/pq_backup - - kikimr/tools/sqs/client_emulator/bin - - kikimr/tools/sqs/performance/sqs_load - - kikimr/tools/storage_perf_reporter - - kikimr/yf/tests/yf_local - - kinopoisk/tasklets/DeployWithChangeWeight/impl - - lbs/viewer - - library/python/cqueue - - library/python/errorboosterclient/tests - - library/python/json/test - - library/python/nirvana_api - - library/python/runtime - - library/python/runtime_py3 - - library/python/ssh_client - - library/python/testing/pyremock/lib/matchers - - library/python/testing/yatest_common/yatest/common - - library/python/zipatch - - library/recipes/clickhouse/recipe - - library/recipes/zookeeper/lib - - load/projects/tankapi_server/tankapi - - load/projects/tasklets/assessment/py_impl - - locdoc/doc_tools/yoda/util - - locdoc/nirvana/lib/python - - logbroker/juggler/push_client/checks - - logbroker/public/client/lib - - logbroker/tools/ansible/plugins/inventory - - logbroker/tools/auto/mirror_repair/lib - - logbroker/tools/laginfo - - logbroker/tools/lb_model_workload/utils/lbmwctl - - logbroker/tools/manual/collect_capacity/analyze_capacity_2020 - - logbroker/tools/manual/collect_capacity/capacity_2020_2021 - - logbroker/tools/manual/collect_capacity/collect_2019_2020 - - logbroker/tools/manual/collect_capacity/collect_pre - - logbroker/tools/manual/entity_responsibles - - logbroker/tools/manual/fix_solomon_objects - - logbroker/tools/manual/get_problems_from_juggler - - logbroker/tools/manual/get_problems_from_solomon - - logbroker/tools/solomon/dashboard_manager/lib - - logbroker/unified_agent/tests/integration/lib/python - - logfeller/python/logfeller/infra/message_pool/yt_tests - - logfeller/python/logfeller/infra/yt/util - - logfeller/python/logfeller/util/solomon/ut - - logos/projects/ads/tasks/tsar_pytorch_rsya_bc/lib - - logos/projects/money_dwh/tasks/bs_chevent_cooked_log/builder - - logos/projects/statkey_py3/tasks/cubes/domains/metrika/utils - - mail/borador/devpack/components - - mail/borador/status_hook - - mail/borador/tests - - mail/bots/dev_bot/lib - - mail/collectors/tests-system/src/helpers - - mail/contrib/ccs-caldavtester/src - - mail/contrib/ccs-caldavtester/verifiers - - mail/contrib/ccs-pycalendar/pycalendar - - mail/contrib/ccs-pycalendar/pycalendar/icalendar - - mail/docker_tests/tests_common/pytest_bdd - - mail/ipblocker/worker - - mail/monitoring/common - - mail/oracle_mids_mapping/lib - - mail/oracle_mids_mapping/tests - - mail/pypg/pypg - - mail/python/pymail - - mail/python/pymail/web_tools - - mail/python/theatre/app/log_helpers - - mail/python/theatre/logging - - mail/so/spamstop/nirvana/models_offline_test - - mail/so/spamstop/nirvana/sandbox_upload - - mail/so/spamstop/plotnik - - mail/tools/dbaas/helpers - - maps/analytics/legacy/nile/statadhoc-13066-events-experiments-report - - maps/analytics/lib/geotools/travel_times - - maps/analytics/tools/yt/chunk-compressor - - maps/analyzer/pylibs/test_tools - - maps/analyzer/sandbox/signals_reports/lib - - maps/analyzer/services/jams_analyzer/tools/jams_uploader/bin/uploader - - maps/automotive/libs/large_tests/lib - - maps/automotive/radio_service/bin/canontests - - maps/automotive/remote_access/autotests/tests/data_types - - maps/automotive/remote_access/autotests/tests/lib - - maps/automotive/tools/key_resetter/pylib - - maps/automotive/tools/statistics_auto/pylib/tagger/common - - maps/automotive/updater/bin/canontests - - maps/b2bgeo/test_lib - - maps/b2bgeo/tools/release_notes - - maps/bizdir/sps/tools/fake_sprav - - maps/carparks/tools/route_lost_viewer/bin - - maps/factory/dem_correction/roads_segmentation/train - - maps/factory/signals_update_mgr/bin - - maps/garden/common_tests/test_utils - - maps/garden/libs/common_graph_deploy - - maps/garden/modules/renderer_publication_validator/lib - - maps/garden/modules/transit_tester/lib - - maps/garden/sandbox/osm_downloader/task - - maps/garden/sdk/core - - maps/garden/sdk/module_rpc - - maps/garden/sdk/module_rpc/tests - - maps/garden/sdk/resources - - maps/garden/tools/module_version_sync/bin - - maps/geoq/hypotheses/flats/lib - - maps/goods/tools/tycoon_importer - - maps/infra/ecstatic/sandbox/backupper/backup/task - - maps/infra/ecstatic/sandbox/backupper/restore/task - - maps/infra/ecstatic/tool/ecstatic_api - - maps/infra/environment_linker/lib - - maps/infra/monitoring/st_monitor/lib - - maps/infra/sedem/lib/deprecated_fancy_tree - - maps/masstransit/ydbfree/services/predictor/tools/uploader/bin - - maps/mobile/server/attestation/revoked_certs/task - - maps/poi/personalized_poi/builder/extractor - - maps/poi/personalized_poi/builder/lib - - maps/pylibs/blackbox/lib - - maps/pylibs/coverage5/tests - - maps/pylibs/infrastructure_api/hq - - maps/pylibs/nginx_testlib - - maps/pylibs/recipes/mongo - - maps/pylibs/utils/tests - - maps/renderer/tilesgen/tools/lib - - maps/search/geocoder/python/lib - - maps/search/libs/integration_testlib - - maps/search/scripts/transit/extract_queries/lib - - maps/search/transit/basesearch/tests/blackbox - - maps/tools/navi-stat-vis/bin - - maps/tools/package_releaser/lib - - maps/tools/slb_monitor/cache - - maps/tools/slb_monitor/lib - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki - - maps/wikimap/mapspro/services/designstand - - maps/wikimap/mapspro/services/mrc/drive/firmware_updater/client/nanopi_neo4 - - maps/wikimap/mapspro/services/mrc/drive/firmware_updater/client/signalq2 - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/pylibs - - maps/wikimap/mapspro/services/tasks/fastcgi/modules/badge - - maps/wikimap/stat/arm_dump_to_yt - - maps/wikimap/stat/libs/geobase_regions - - maps/wikimap/stat/tasks_payment/tasks_logging/libs/geometry - - market/assortment/ecom_log/lib/filters - - market/dynamic_pricing/pricing/common/checks/solomon_sender - - market/dynamic_pricing/tools/blue_prices_collector - - market/dynamic_pricing/tools/delivery_checker/lib - - market/dynamic_pricing/tools/kvi_evaluation - - market/forecast/demand_baseline_train/lib - - market/forecast/demand_baseline_train/lib/task - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/forecast/forecast_utils/utils - - market/guru-models-dumper/generator - - market/guruindexer/guruindexer - - market/idx/datacamp/dev/generate_offers - - market/idx/datacamp/dev/push_update_tasks - - market/idx/datacamp/dev/repush_all_update_tasks - - market/idx/datacamp/routines/lib - - market/idx/datacamp/routines/lib/blueprints - - market/idx/datacamp/routines/lib/tasks - - market/idx/datacamp/yatf - - market/idx/datacamp/yatf/matchers - - market/infra/itreg/softreg - - market/library/shiny/external/rps_limiter/beam - - market/library/shiny/server/gen/lib - - market/mbi/mbi-dwh/mbi-dwh-copy-script - - market/monetize/stapler/examples/bicycle/lib/task - - market/monetize/stapler/infra/kwargs_parser - - market/monetize/stapler/infra/tasklets/create_release_ticket/impl - - market/mstat/cubes-web/lib - - market/opsmode/delivery_report_parser/src/transforming - - market/pinger-report/lib - - market/promocoordinator/tickets - - market/pylibrary/async_tasks_scheduler/lib - - market/pylibrary/dyt - - market/pylibrary/graphite - - market/pylibrary/hammer - - market/pylibrary/lite - - market/pylibrary/mi_util - - market/pylibrary/mindexerlib - - market/pylibrary/putil - - market/pylibrary/putil/tests - - market/pylibrary/report_api - - market/pylibrary/s3/s3 - - market/pylibrary/thread_pool - - market/pylibrary/ytdumper - - market/replenishment/algorithms/legacy/library - - market/replenishment/algorithms/lib/data_preparation/bottleneck - - market/replenishment/algorithms/lib/data_preparation/regional_assortment - - market/replenishment/algorithms/lib/data_preparation/simulation_cube - - market/replenishment/algorithms/lib23/data_preparation - - market/replenishment/algorithms/lib23/source - - market/report/runtime_cloud/report_config - - market/report/runtime_cloud/report_ctl/util - - market/robotics/ci/ymbot_ext_repo_mirroring/libs - - market/seo/tools/postgres_local - - market/seo/tools/postgres_local/recipe - - market/shade/lite - - market/sre/contrib/python/conductor-client/conductor_client - - market/sre/services/balancer_api/lib - - market/sre/services/logkeeper_web/web/blueprints - - market/sre/tools/capacityV2/mcapacity_tool/lib/clients - - market/sre/tools/googlebot_cache_stats - - market/sre/tools/logkeeper/logkeeper - - market/sre/tools/rtc/calculate_hdd_usage - - market/sre/tools/rtc/calculate_resource_usage - - market/sre/tools/rtc/quotactl - - market/svn-data/test/python - - market/tools/develop/dashboards/sky_dists_juggler_check - - market/tools/hroom/lib/asyncio_bot - - market/tools/outdated_report_experiments - - market/yamarec/metarouter/yamarec_metarouter - - mds/walle_cms/cms/lib - - mds/walle_cms/cms/lib/foreign/python_conductor - - media-billing/recipes/mongodb - - mediapers/vh3/operations/impl - - milab/lib/fastdeploy2 - - milab/lib/i2tclient/python - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/libs/ml_data_reader/tests/helper - - ml/nirvana/dataset_description_lib - - ml/nirvana/fml_dc/analyze_formula/ut - - ml/nirvana/fml_dc/get_formula_component/ut - - ml/nirvana/fml_dc/upload_pool/ut - - ml/nirvana/text_processing - - ml/pulsar/server/pulsar_app - - ml/tensorflow/models/userbert/tests - - ml/tensorflow/tfnn/src/tfnn/contrib - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq - - ml/tensorflow/tfnn/tests/helper - - ml/tensorflow/ytensorflow/ytensorflow/inference - - ml/tensorflow/ytreader/ytreader - - ml/zeliboba/api - - mlp/overdraft/utils/build_pool - - mlp/overdraft/utils/solomka - - modadvert/bigmod/scripts/lib - - modadvert/bigmod/tools/satellite/libs - - modadvert/libs/connectors - - modadvert/libs/http - - modadvert/libs/sm_api/processors/get_custom - - modadvert/libs/utils/common - - modadvert/nirvana/parse_json_lines/libs - - modadvert/oneshot/BIGMOD-146 - - modadvert/oneshot/BIGMOD-313 - - modadvert/oneshot/BIGMOD-342 - - modadvert/oneshot/BIGMOD-345 - - modadvert/oneshot/BIGMOD-357 - - modadvert/programs/catalogia_flags_diff/libs - - modadvert/programs/direct_proxy/libs - - modadvert/programs/direct_proxy/libs/handlers - - modadvert/programs/directninja/service/lib - - modadvert/programs/monika/libs - - modadvert/programs/multik/libs - - modadvert/programs/saas_indexer/libs - - modadvert/programs/toloka_autobudget - - modadvert/resources/manual - - mssngr/botfarm/src - - mssngr/botfarm/src/bot - - mssngr/botfarm/src/qubot - - mssngr/botplatform/src/bots/api - - mssngr/botplatform/src/bots/common - - mssngr/botplatform/src/bots/common/fanout - - mssngr/botplatform/src/bots/common/formatters - - mssngr/botplatform/src/bots/core/formatters - - mssngr/botplatform/src/bots/core/models - - mssngr/botplatform/src/bots/local_bots - - mssngr/botplatform/src/bots/logger - - mssngr/botplatform/src/bots/meta_api - - mssngr/botplatform/src/bots/pusher - - mssngr/botplatform/src/bots/service_api - - mssngr/botplatform/src/bots/team_api - - mssngr/botplatform/src/pgaas_pool - - mssngr/geobot/lib - - mssngr/geobot/telegram - - mssngr/router/tests/lib - - mssngr/router/tools/close_location - - mssngr/router/tools/connect/migrate_organization - - mssngr/tasks/achievery - - music/tools/download-info - - music/tools/download-info-strm-sign - - music/tools/lyrics-info - - news/services/ydb_backoffice_data_uploader - - nginx/module_gen - - nirvana/dc/examples - - noc/bmp_monitor/utils - - noc/matilda/python/matilda-server-monitor - - noc/packages/mondata_server/monitoring/zabbix/server_scripts - - noc/pahom/src - - noc/rtapi - - noc/snmpd-plug - - noc/soft_pingers/bomj - - noc/soft_pingers/check_dump - - noc/traffic/monitoring/bird/bin - - noc/traffic/monitoring/wireguard/bin - - oebs/bi/ariba/lib - - ofd/common/monitoring - - ofd/runtime/new/bin/ofd-monitoring-agent - - ofd/runtime/new/lib - - ofd/runtime/new/lib/api - - ofd/runtime/new/lib/storage - - ofd/runtime/new/lib/yandex - - ofd/tasks/tasks - - orgvisits/heuristics/wifi/matching/lib - - orgvisits/library/python/misc - - ott/drm/columbia/src/cmfv - - ott/tv/webeka/proxy/api - - passport/backend/core/builders/bbro_api - - passport/backend/core/db/faker - - passport/backend/core/dynamic_config - - passport/backend/core/historydb - - passport/backend/core/tracks - - passport/backend/core/validators - - passport/backend/dbscripts/split_phonenumber_alias - - passport/backend/oauth/tvm_api/tvm_api/db - - passport/backend/social/api/views/v2 - - passport/backend/social/broker/handlers - - passport/backend/social/broker/tests/handlers - - passport/backend/social/common - - passport/backend/social/proxy2 - - passport/backend/vault/api/commands - - passport/backend/vault/api/deb/logbroker_client/bin/push_client_running - - passport/backend/vault/cli/yav/vault_client_cli/commands - - passport/backend/vault/cli/yav_deploy/vault_client_deploy - - passport/infra/tasklets/teamcity/impl - - payplatform/scrooge/scrooge/api - - payplatform/spirit/match_receipts/lib - - paysys/sre/apps/mongo_idm/mongo_idm - - plus/analytics/tools/bb_user_info - - plus/cobra/magnit - - plus/cobra/magnit/management/commands - - portal/avocado/tasklets/run_teamcity_build/impl - - portal/avocado/tasklets/send_telegram_message/impl - - portal/tools/morda-release/server - - pythia/lib/utils/error_collector - - quality/ab_testing/scripts/adminka/adminka/src/rollout/metadata/tests - - quality/ab_testing/scripts/ems/ems - - quality/ab_testing/scripts/ems/ems/metrics/tasks - - quality/ab_testing/scripts/excomer - - quality/ab_testing/scripts/excomer2/lib - - quality/ab_testing/scripts/gmv_analytics/order_surplus - - quality/ab_testing/scripts/kati - - quality/ab_testing/scripts/kati/lib - - quality/ab_testing/scripts/nirvana/tools/ab_adminka - - quality/ab_testing/scripts/shellabt - - quality/ab_testing/sessions_analysis/sessions_viewer/session_viewer_rpc/tests - - quality/ab_testing/tools/mongo_local - - quality/ab_testing/tools/postgres_local - - quality/ab_testing/tools/postgres_local/recipe - - quality/ab_testing/zc/calc_efh_squeeze/ut - - quality/antifraud/analytics/xurma/prepare_features - - quality/antifraud/scripts/prod/prepare_features - - quality/antifraud/scripts/prod/prepare_features_single_table - - quality/antifraud/scripts/prod/sync_staff_pools - - quality/antifraud/xurma/test/bs - - quality/antifraud/xurma/tools/deploy_archive/lib - - quality/antifraud/xurma/tools/fury_ctl/lib - - quality/antifraud/xurma/tools/py_lib - - quality/burnish/libs/saas_kv_upload - - quality/commercial/market/awaps_download - - quality/factordev/alice/arabic_alice/web_music/tools/get_yandex_metainfo_yt - - quality/factordev/alice/arabic_alice/web_music/tools/youtube_music_completeness/parse_google_basket - - quality/factordev/utils/brain_driller - - quality/functionality/chats/feedback/src/feedback/dialogs/cron_jobs - - quality/functionality/chats/floyd/src/floyd/core/models - - quality/functionality/chats/floyd/src/floyd/matcher/bin - - quality/functionality/chats/floyd/src/tests/common - - quality/functionality/chats/lb_delivery - - quality/functionality/chats/platform/tests/scenarios - - quality/functionality/chats/serp_upload/lib - - quality/functionality/entity_search/factqueries/classifier/snippet_facts_lib - - quality/functionality/entity_search/factqueries/consistency_check - - quality/functionality/entity_search/factqueries/tools/download_features - - quality/functionality/entity_search/factqueries/tools/end2end_metrics/calculate_fact_snippet_thresholds - - quality/functionality/entity_search/factqueries/tools/end2end_metrics/prepare_uniproxy_for_fs - - quality/functionality/entity_search/factqueries/tools/object_facts/analytics/get_ontofieldnames - - quality/functionality/entity_search/factqueries/tools/queryminer_for_alice - - quality/functionality/facts/aspect_facts/build_fact - - quality/functionality/facts/common/fetch_sf2_lib - - quality/functionality/facts/data_extraction/synt_pools_alice/gen_squeeze - - quality/functionality/facts/highlighting/bert/models - - quality/functionality/facts/multilanguage_facts/tools/fetch_answers - - quality/functionality/facts/multilanguage_facts/tools/fetch_factors - - quality/functionality/facts/nirvana/operations/fetch_result_from_wiki - - quality/functionality/facts/tools/crits_monitoring - - quality/functionality/facts/tools/fetch_facts_mr - - quality/functionality/facts/tools/screenshots/extract_fact_data - - quality/functionality/facts/tools/screenshots/extract_fact_sources - - quality/functionality/parsepl/ecom/parse_offers/py/get_reviews_from_robot_export - - quality/functionality/parsepl/ecom/universal_search/nirvana/get_data_from_robot - - quality/functionality/parsepl/ecom/universal_search/nirvana/local_start_parser - - quality/functionality/parsepl/ecom/universal_search/nirvana/start_parser - - quality/functionality/parsepl/libs/parsers/xpath_parser - - quality/functionality/parsepl/libs/startrek - - quality/functionality/parsepl/nirvana/build_market_parsers/src - - quality/functionality/parsepl/nirvana/parse_microdata/yql/converters/breadcrumbs - - quality/functionality/parsepl/scripts/convert_market - - quality/functionality/parsepl/server/apps/turbo/tests/build_fixture - - quality/functionality/parsepl/toloka/html_downloader - - quality/functionality/rtx/rbo/scripts/load_rbo_from_drive - - quality/functionality/rtx/scripts/games_stats - - quality/functionality/rtx/server/plugin - - quality/functionality/scripts/nirvana/jobs/casper - - quality/functionality/scripts/psuh/HomeWorkLib/HomeWorkLib - - quality/functionality/scripts/psuh/HomeWorkMetricsLib/External/autolog_names/autolog_names - - quality/functionality/scripts/psuh/HomeWorkMetricsLib/HomeWorkMetricsLib - - quality/functionality/scripts/surplusplus/mt_squeeze - - quality/functionality/snippets/ecom_web/ecom_offers/bin - - quality/functionality/snippets/ecom_web/lib - - quality/functionality/snippets/featured_snippet/gather_web_factors - - quality/functionality/snippets/featured_snippet/regular_assessment/discover_new_queries - - quality/functionality/snippets/featured_snippet/toloka/calc_uzhas_metrics_by_topic_bags - - quality/functionality/snippets/featured_snippet/toloka/recalc_uzhas - - quality/functionality/snippets/image_snippet/check_experiment/tests/test_report_builder_operation - - quality/functionality/snippets/instagram_gallery - - quality/functionality/snippets/media_turbo_bna - - quality/functionality/snippets/rps_processor - - quality/functionality/snippets/top_hosts/plugins - - quality/functionality/turbo/analytics/ecommerce/lib/page_classifier - - quality/functionality/turbo/analytics/ecommerce/lib/utils - - quality/functionality/turbo/analytics/ecommerce/search_visit_miner - - quality/functionality/turbo/auto_morda/cmnt_state_builder/bin - - quality/functionality/turbo/auto_morda/likes_state_builder/bin - - quality/functionality/turbo/autoparser/new_autoparser/model/apply_catboost/lib - - quality/functionality/turbo/beru_sideblock_uploader - - quality/functionality/turbo/forms/job/lib - - quality/functionality/turbo/rss/common/python/backoffice/lib - - quality/functionality/turbo/runtime/turbo_urls_sampler/lib - - quality/functionality/turbo/saas_pull_process/lib - - quality/functionality/turbo/tools/rediff - - quality/functionality/turbo/yml_process/lib/operations - - quality/functionality/unstructured/qdsaas_uploader/lib - - quality/logs/baobab/api/python/baobab/common - - quality/logs/mousetrack_lib/python - - quality/mstand_metrics/online_production/market/v1/util - - quality/mstand_metrics/online_production/market/v2 - - quality/neural_net/bert/bert - - quality/neural_net/bert/bert/freeze - - quality/neural_net/bert/bert/models - - quality/neural_net/bert/bert/pytorch/pruning - - quality/neural_net/bert/bert/readers/queue - - quality/neural_net/bert/bert/sandbox_data_holder - - quality/neural_net/bert/bert/tokenization - - quality/neural_net/bert/bert/utils - - quality/neural_net/bert/bert/utils/fs - - quality/neural_net/bert/bert/utils/hooks - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/prepare_ab_input - - quality/nirvana_tools/conveyor_operations/asgen/lib - - quality/nirvana_tools/conveyor_operations/bert/get_bert_vocab - - quality/nirvana_tools/conveyor_operations/bert/view_bert_models - - quality/nirvana_tools/conveyor_operations/eval_feature/aggregate_evals - - quality/nirvana_tools/conveyor_operations/formula_viewer - - quality/nirvana_tools/conveyor_operations/monitorings/dataset_update_monitoring - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/lib - - quality/nirvana_tools/conveyor_operations/pool_tools/lib - - quality/nirvana_tools/conveyor_operations/stove/opt_viewer - - quality/nirvana_tools/conveyor_operations/stove/run_simple_opt - - quality/nirvana_tools/conveyor_operations/train_dssm/api/api - - quality/nirvana_tools/conveyor_operations/train_dssm/api/create_workflow - - quality/nirvana_tools/conveyor_operations/train_dssm/mr_operations/yt_join/tests - - quality/nirvana_tools/conveyor_operations/train_dssm/scripts - - quality/nirvana_tools/conveyor_operations/yt_pool_to_watto - - quality/personalization/saas_uploader - - quality/query_expansions/proc/qfuf_collector/test - - quality/query_expansions/proc/xfdtshow_collector/test - - quality/relev_tools/autozak - - quality/relev_tools/conveyor_dashboard/commons - - quality/relev_tools/conveyor_dashboard/distributed/front_proxy_monolith - - quality/relev_tools/lboost_ops/nirvana/meta - - quality/relev_tools/matrixnet_nirvana_ops/matrixnet_meta_cube - - quality/relev_tools/matrixnet_nirvana_ops/train_matrixnet_on_cpu - - quality/relev_tools/mx_ops_nirvana_ops/mx_ops_calc - - quality/relev_tools/signal-based-eval/nirvana_operations/prepare_bin_pool - - quality/relev_tools/signal-based-eval/nirvana_operations/run_sbfs - - quality/sweeper/smac_adaptive_design - - quality/trailer/suggest/infix_for_toloka - - quality/trailer/suggest/services/maps/conveyors/input_sequences/join_geocube_data - - quality/trailer/suggest/services/maps/conveyors/new_country/prepare_beast_pt - - quality/trailer/suggest/services/maps/conveyors/pool/make_pointwise_pool - - quality/trailer/suggest/services/maps/conveyors/pool/stratification - - quality/trailer/suggest/services/maps/conveyors/yql_param_generator - - quality/trailer/suggest/services/maps/scripts-sandbox/org/geoid_tree - - quality/trailer/suggest/services/maps/scripts-sandbox/prepare_data/test - - quality/trailer/suggest/services/maps/tools/qloss/gunship - - quality/trailer/suggest/services/maps/tools/qloss/make_qloss_pool - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/tsnet/tsnet2_nirvana_ops/apply_tsnet2 - - quality/tsnet/tsnet2_nirvana_ops/train_tsnet2 - - quality/user_sessions/rt/py_lib/deploy - - quality/user_sessions/tools/send_to_kvsaas - - quality/userdata/cmpy/library - - quality/userdata/cmpy/library/userfeat - - quality/userdata/scripts - - quality/userdata/test/common - - quality/webfresh/learn/word_surplus/triepack/tests - - quality/yaqlib/yaqutils - - quasar/infra/tasklets/make_quasmodrom_groups/impl - - quasar/infra/tasklets/yt_quasmodrom_maintenance/impl - - quasar/manifest_scripts/manifestlib - - quasar/manufacturing/aml_tool/libs - - quasar/manufacturing/elenchus/midi - - quasar/manufacturing/flash_points/libs - - quasar/manufacturing/utils - - quasar/manufacturing/utils/devices - - razladki/monq/monq - - regulargeo/clustering - - regulargeo/research/yt_geo_filter_log_by_polygons - - regulargeo/tools - - regulargeo/v2/clustering/lib - - regulargeo/v2/tools - - release_machine/iceflame/src/lib/runner/tests - - release_machine/release_machine/src/model - - release_machine/release_machine/src/notification - - release_machine/release_machine/src/proto_dispatcher - - release_machine/release_machine/src/services - - release_machine/release_machine/src/utils/cores - - release_machine/release_machine/src/utils/event_builder - - release_machine/tasklets/commit_tasklet_version/impl - - release_machine/tasklets/create_arc_tag/impl - - repo/pciexpress/legs - - repo/pciexpress/lib - - repo/pciexpress/platform - - robot/blrt/tools/viewer - - robot/cmpy/library - - robot/favicon/python - - robot/jupiter/cmpy/library - - robot/jupiter/cmpy/selectionrank_comparator - - robot/jupiter/cmpy/shard_deploy - - robot/jupiter/library/python/jupiter_viewers - - robot/jupiter/library/python/quality_acceptance - - robot/jupiter/tools/prepare_delivery_test_data - - robot/jupiter/viewers/galileo - - robot/jupiter/viewers/juno - - robot/lemur/monitoring/salmon_agent/counters - - robot/lemur/scripts/common - - robot/library/python/testenv - - robot/library/yuppie/modules - - robot/metrics/fresh_sbr/mk_fresh_serp - - robot/metrics/social_sbr/fetch_tiktok - - robot/mirror/cmpy/compare - - robot/mirror/cmpy/exports - - robot/mirror/cmpy/hyps - - robot/mirror/cmpy/merge - - robot/quality/mercury/tools/parse_speed_sbr_metrics - - robot/quality/robotrank/mk_learn_pool/lib - - robot/salmon_agent/utils - - robot/samovar/monitoring/salmon_agent/counters - - robot/selectionrank/sr_compare_jupiter_validates - - robot/selectionrank/sr_conduct_rules_experiment/modes - - robot/smelter/tools/offline_report_generation - - robot/tools/solomon_agent/utils - - rt-research/bannerland/archive_worker_py3 - - rt-research/bannerland/lib - - rt-research/bannerland/lib/client/utils - - rt-research/broadmatching/scripts/pylib/yt_mappers - - rt-research/broadmatching/scripts/yt/dyn-sources/generate_dse_banners - - rt-research/common/pylib/sandbox - - rtmapreduce/config/gencfg - - rtmapreduce/tests/integrational - - rtmapreduce/tools/metering/abcd/lib - - rtmapreduce/tools/metering/billing/lib - - rtmapreduce/tools/release_tracker/providers/ig - - rtmapreduce/tools/release_tracker/providers/k8s - - saas/library/python/abc - - saas/library/python/ferryman - - saas/tools/devops/deploy_release - - saas/tools/devops/duty/duty_stat - - saas/tools/devops/duty/find_old_releases - - saas/tools/devops/endpointer - - saas/tools/devops/get_standalone_indexer - - saas/tools/devops/lib - - saas/tools/devops/lib2 - - saas/tools/devops/lib23 - - saas/tools/devops/saas_disaster_alerts/disaster_alerts/modules - - saas/tools/ssm - - saas/tools/user_if/ssm-front/backend - - sandbox/bin - - sandbox/client - - sandbox/client/commands - - sandbox/deploy - - sandbox/devbox - - sandbox/executor/preexecutor - - sandbox/projects/Afisha/deploy/common/AfishaPreRelease - - sandbox/projects/BuildAtomDaemon - - sandbox/projects/BuildNewsLCookieKeys - - sandbox/projects/BuildNewsReportCore - - sandbox/projects/BuildRTLine - - sandbox/projects/BuildRtyServer - - sandbox/projects/BuildYobject - - sandbox/projects/CheckFreshDocuments - - sandbox/projects/CollectSpiStat/main - - sandbox/projects/CompareNewsdResponses - - sandbox/projects/ConvertVideo - - sandbox/projects/EntitySearchBraveNewWorld - - sandbox/projects/GetFusionMiddlesearchResponses - - sandbox/projects/GetGeoMetasearchResponses - - sandbox/projects/GetImagesMrIndexConfig - - sandbox/projects/GetRefreshIndexForTest - - sandbox/projects/IexBuildPackages - - sandbox/projects/IexUtil - - sandbox/projects/ImproxyTestPerformance - - sandbox/projects/MarketModelWizard/Conveyor - - sandbox/projects/MarketModelWizard/OfferConveyor - - sandbox/projects/MarketQC/dbs_time_alarm - - sandbox/projects/MarketQC/delivery_random_assignee/expert_checks_assignee - - sandbox/projects/ReleaseAntirobotFormulas - - sandbox/projects/ReleasePersonalBundle - - sandbox/projects/RelevFmlUnused - - sandbox/projects/RunNewsLoadtest - - sandbox/projects/RunNirvanaBasedIntegrationTest - - sandbox/projects/SOC/YtProxyLogAnalysis - - sandbox/projects/SaasAlertsManage - - sandbox/projects/SerpCollector - - sandbox/projects/Sovetnik/Filter/YandexuidFactors - - sandbox/projects/TeamcityRunner - - sandbox/projects/TestFrontMetricsLogs/modules - - sandbox/projects/TestPeoplesearchTool - - sandbox/projects/TestRTYServerDolbiloM - - sandbox/projects/TestRTYServerTask - - sandbox/projects/TestRTYServerUnit - - sandbox/projects/TmpRunABTMetricsDev - - sandbox/projects/ToolsCaasConfigure - - sandbox/projects/ToolsCaasConfigure/caas - - sandbox/projects/ToolsCaasGencfg - - sandbox/projects/TopMusician - - sandbox/projects/UpdateConfigGeneratorDb - - sandbox/projects/UpdateTestenvNewsdResources - - sandbox/projects/UrlsByShowCounters/executable/lib - - sandbox/projects/WizardRuntimeBuild - - sandbox/projects/YabsDebuilder - - sandbox/projects/YabsDebuilderDev - - sandbox/projects/YabsDelaySbytStatGraphiteSender - - sandbox/projects/YabsReportForSsp - - sandbox/projects/adfox/yt2ch_transfuser - - sandbox/projects/ads/adv_machine_tsar_dumps_collector - - sandbox/projects/ads/nirvana_regular_process/lib - - sandbox/projects/alice_evo/AliceEvoIntegrationTestsWrapper - - sandbox/projects/alice_evo/BegemotMegamindEvoContext - - sandbox/projects/app_host/AppHostLoadTest - - sandbox/projects/autocheck/AutocheckBuildParent2 - - sandbox/projects/autocheck/lib/profile - - sandbox/projects/avia/import_marker/kiwi - - sandbox/projects/avia/import_marker/pobeda - - sandbox/projects/avia/import_marker/sindbad - - sandbox/projects/avia/lib - - sandbox/projects/bi_mstr/BiMstrUpdateDockerFromGit - - sandbox/projects/bitbucket/GBGAdaptor - - sandbox/projects/broadmatching/convert_external_candidates - - sandbox/projects/clickhouse/BaseOnCommitTask - - sandbox/projects/clickhouse/ClickhouseKeeperJepsen - - sandbox/projects/clickhouse/ClickhousePullRequestTrigger - - sandbox/projects/clickhouse/util - - sandbox/projects/close_tickets/close_after_release - - sandbox/projects/cmnt/DbBackup - - sandbox/projects/cmnt/DbCleanup - - sandbox/projects/crypta/common - - sandbox/projects/crypta/ya_make_yt - - sandbox/projects/devtools/YaTestParent2 - - sandbox/projects/direct/BuildPortoLayer2 - - sandbox/projects/fastbuild/execute - - sandbox/projects/findurl/CompareRequestsFindurl - - sandbox/projects/fresh/update_tv_fast_data - - sandbox/projects/gencfg/BackgroundGencfgGuiTasks - - sandbox/projects/geosearch/SendToFerryman - - sandbox/projects/geosuggest/GeoSuggestAcceptance - - sandbox/projects/geosuggest/common - - sandbox/projects/goods/MakeGoodsShardmap - - sandbox/projects/goods/MakeGoodsShardmapGencfg - - sandbox/projects/images/ImagesInspectCbirIntegrity - - sandbox/projects/images/ImagesLoadBasesearchDatabase - - sandbox/projects/images/ImagesSampleCbirPlan - - sandbox/projects/images/bans/ImagesTestMiddlesearchBan - - sandbox/projects/impulse/SastWorkflow - - sandbox/projects/infra/yp_service_discovery/YpServiceDiscoveryDiffTest - - sandbox/projects/iot/ui/ReleaseBugging - - sandbox/projects/iss/import_yp_microservices - - sandbox/projects/jupiter/CompareIntegrationTestOutput - - sandbox/projects/keyboard/package_size_diff - - sandbox/projects/kinopoisk/PingdomSynchronization - - sandbox/projects/kwyt/Duty - - sandbox/projects/market/asylum/MarketAsylum - - sandbox/projects/market/mqm/StartrekIssueYtComparatorMonitoring - - sandbox/projects/market/recom/cms/Monitoring - - sandbox/projects/market/saas - - sandbox/projects/media/admins/common - - sandbox/projects/media/kp-front-nginx/config-validation - - sandbox/projects/mssngr/backup/BackupMssngrYdbToYt - - sandbox/projects/mssngr/runtime/MssngrRouterLoadTest - - sandbox/projects/music/MusicBuildFftools - - sandbox/projects/music/MusicDutyCallsReporter/py3_source - - sandbox/projects/music/deployment/MusicExportTestOld - - sandbox/projects/music/deployment/helpers - - sandbox/projects/news/CompareNewsAnnotatorResponses - - sandbox/projects/news/DownloadAdvWidgetClientsTable - - sandbox/projects/news/DownloadNewsThemesTagsToComponents - - sandbox/projects/news/ProcessArchiveAdvwidgetTurboJsons - - sandbox/projects/news/RunNewsComplexLoadtests - - sandbox/projects/news/RunNewsLoadtest/base - - sandbox/projects/news/runtime_tests/CompareNewsApphostServiceResponses - - sandbox/projects/partner/tasks/misc - - sandbox/projects/pcode/qa/response_differ - - sandbox/projects/pcode/qa/tasks/JanpuDiffTask - - sandbox/projects/prs_ops/RunPrsOps - - sandbox/projects/quasar/bug_reports_tickets/setrace_client - - sandbox/projects/refresh/stand/RunRefreshInstance - - sandbox/projects/release_machine/tasks/ReleaseMachineAutobranchCreator - - sandbox/projects/release_machine/tasks/ReleaseMachineCrawler - - sandbox/projects/release_machine/tasks/ReleaseMachineGarbageCollector - - sandbox/projects/release_machine/tasks/ReleaseMachineStatCrawler - - sandbox/projects/release_machine/tasks/RenderReleaseGraph/lib - - sandbox/projects/rpslimiter/DumpRpsLimiterProductionConfigsIntoArc - - sandbox/projects/runtime_models/BuildBegemotModelsPackageBase - - sandbox/projects/scraper_over_yt/ScraperOverYtMakeTestBatch - - sandbox/projects/sdc/SDC_CHECK_ACCESS - - sandbox/projects/sdc/TestRunInPorto - - sandbox/projects/security/gideon/gideon-analytics/deploy-acl-parser-task - - sandbox/projects/security/gideon/gideon-analytics/idm-acl-mdb-to-yt-transfer-task - - sandbox/projects/src_setup/UpdateSrcSetupTestData - - sandbox/projects/suggest/dicts/AnswersUsers - - sandbox/projects/surfwax/task_manager/linux - - sandbox/projects/taxi/BuildLogisticDispatcher - - sandbox/projects/trendbox_ci/beta/managers - - sandbox/projects/trust/tasks/DynamicRpsLimiter - - sandbox/projects/vh/frontend/vh_frontend_profile_runner - - sandbox/projects/vh/frontend/vh_generate_bases - - sandbox/projects/vh/statistics/VhStat - - sandbox/projects/video/priemka/VideoRobotPriemkaSimple - - sandbox/projects/vins/MegamindComparePerformance - - sandbox/projects/vins/MegamindGetResponses - - sandbox/projects/websearch/CalcEventlogStats - - sandbox/projects/websearch/begemot/common - - sandbox/projects/websearch/begemot/common/fast_build - - sandbox/projects/yabs/AnomalyAuditReport/lib - - sandbox/projects/yabs/SysConstLifetime/lib - - sandbox/projects/yabs/YabsServerSSPPagesAutomoderation - - sandbox/projects/yabs/avp/YabsMakeTnsLog - - sandbox/projects/yabs/awaps/YabsAwapsAntifraudExportPage - - sandbox/projects/yabs/awaps/YabsAwapsAntifraudExportSubnet - - sandbox/projects/yabs/awaps/YabsAwapsCassandraAdjust - - sandbox/projects/yabs/base_differ - - sandbox/projects/yabs/bases/YabsServerMakeBinBases - - sandbox/projects/yabs/nanpu/tasks/BaseGen - - sandbox/projects/yabs/nanpu/tasks/DiffTask - - sandbox/projects/yabs/other/MakeYtRequestSendResult - - sandbox/projects/yabs/partner_share/lib - - sandbox/projects/yabs/partner_share/lib/integratest - - sandbox/projects/yabs/partner_share/tasks/apply_changes - - sandbox/projects/yabs/prebilling_tests/executer - - sandbox/projects/yabs/qa/errorbooster - - sandbox/projects/yabs/qa/sut - - sandbox/projects/yabs/qa/sut/bases_provider - - sandbox/projects/yabs/qa/tasks/YabsAutoResolveDiffs - - sandbox/projects/yabs/release/binary_search - - sandbox/projects/yabs/sandbox_task_tracing/impl - - sandbox/projects/yabs/ssp/base_fill_whitelist/YabsServerFillWhiteList - - sandbox/projects/yabs/ssp/google/YabsServerFillBlackListNew - - sandbox/projects/yabs/ssr/tasks/BsSsrCmpTask - - sandbox/projects/yabs/static_rank/YabsApcTableForDistribution - - sandbox/projects/yane/TestLight - - sandbox/projects/yasm/YasmSignalsStatTask - - sandbox/projects/zen_experiments/launch_zen_experiment_tests - - sandbox/proxy - - sandbox/proxy/mules - - sandbox/proxy/tests - - sandbox/sandboxsdk - - sandbox/services/base - - sandbox/services/modules - - sandbox/serviceq - - sandbox/taskbox/dispatcher - - sandbox/taskbox/worker - - sandbox/tasklet/sidecars/resource_manager/handlers - - sandbox/tasklet/sidecars/resource_manager/tests - - sandbox/yasandbox/database/upgrade - - sandbox/yasandbox/proxy - - sdg/internal_auth/admin/lib/health/services - - sdg/internal_auth/admin/lib/idm/services - - sdg/internal_auth/admin/lib/social/views - - sdg/internal_auth/admin/lib/transfer/services - - sdg/internal_auth/admin/lib/users/middlewares - - sdg/internal_auth/admin/tests/integration/utils/redis - - sdg/internal_auth/sidecar/lib/health/services - - sdg/internal_auth/sidecar/lib/users/jobs - - sdg/internal_auth/sidecar/tests/utils/redis - - sdg/internal_auth/sidecar/tests/utils/waiters - - sdg/labeling/toloka/client - - sdg/robot_bl/narrow_locations/tests/unit - - sdg/sdc/core/infra/mds - - sdg/simulator/offline_tracer/tests - - search/base_search/daemons/remote_storage/tests - - search/beholder/src/common - - search/beholder/src/worker - - search/beholder/src/worker/nodes - - search/daemons/models_proxy/tests - - search/daemons/models_proxy/tests/generator - - search/garden/runtime_tests/util/backend - - search/geo/tools/addrsnippet - - search/geo/tools/addrsnippet/lib - - search/geo/tools/basket_gathering/basket_mining - - search/geo/tools/basket_gathering/basket_sampling - - search/geo/tools/basket_gathering/misspel_sampling - - search/geo/tools/basket_gathering_2020/mine_baskets - - search/geo/tools/basket_gathering_2021/mine_baskets - - search/geo/tools/dump_objects_answers - - search/geo/tools/emulator - - search/geo/tools/personal_pois/extractor - - search/geo/tools/personal_pois/lib - - search/geo/tools/production/headquarters - - search/geo/tools/serp_tools/eda_organic_generator - - search/geo/tools/task_manager/generators/common - - search/geo/tools/task_manager/system - - search/geo/tools/toponym_snippets/best_companies - - search/geo/tools/yt/read/lib - - search/hamster/auto_incidents_creator/get_reqid - - search/integration_tests/util - - search/its_executor/src - - search/metadoc/tools/request_saas - - search/mon/bot/bot - - search/mon/bot/bot/modules - - search/mon/bot/botd - - search/mon/bot/kbf - - search/mon/curators_helper - - search/mon/dredd2/dredd_notifier - - search/mon/fm_monitor - - search/mon/stater/src/tasklets/clone_warden_data_to_yt/src - - search/mon/stater/src/tasklets/marty_proto_stats/src - - search/mon/stater/src/tasks/clone_warden_data_to_yt - - search/mon/stater/src/tasks/marty_proto_stats - - search/mon/uchenki/lib - - search/mon/uchenki/lib/jobs - - search/mon/uchenki/lib/utils - - search/mon/wabbajack/bin/wbjk_cli - - search/mon/warden/src/services/reducers/report - - search/morty/src/model/supplier - - search/morty/tests/test_generator - - search/plutonium/deploy/replicactl/test - - search/priemka/rpslimiter/tests/quota - - search/priemka/tools/fast_shooter - - search/priemka/tools/united_testing/src/utils - - search/priemka/yappy/src/yappy_lib - - search/resonance/launcher - - search/rpslimiter/storage/src/model - - search/rpslimiter/storage/src/model/compiler/balancer_compiler - - search/scraper/parser_platform/parsers - - search/scraper/parser_platform/parsers/bing - - search/scraper/parser_platform/parsers/google_image - - search/scraper/parser_platform/parsers/tiktok - - search/scraper_over_yt/awacs_soyproxy - - search/scraper_over_yt/daemons/animals/animals_requester - - search/scraper_over_yt/daemons/notifier_bot - - search/scraper_over_yt/daemons/signals_mover - - search/scraper_over_yt/scripts - - search/scraper_over_yt/scripts/smart_duty - - search/stoker/tests - - search/tools/fast_data_deployment/callback - - search/tools/fast_data_deployment/lib - - search/tools/middle/prefetch_cache/lib - - search/tools/sepe/apphost_pie - - search/tools/setrace/src/setrace/lib - - search/tools/setrace/src/setrace/models - - search/tools/setrace/src/setrace/models/unified_agent - - search/tools/setrace/src/setrace/web/controllers/api - - search/tools/setrace/tools/evlogdump_for_ua/lib - - search/tools/sitepos/lib - - search/tools/woland - - search/tools/woland/lib - - search/wizard/data/wizard/conf - - search/wizard/entitysearch/tools/es_hook_notifier/lib - - search/wizard/entitysearch/tools/shooter_for_zeliboba - - search/zephyr/client - - serp/lenour/tasklets/lenour_set_snapshot_state/impl - - serp/lenour/test - - skynet/api/copier - - skynet/api/cqueue - - skynet/api/logger - - skynet/api/srvmngr - - skynet/packages/tests - - skynet/tools - - smarttv/droideka/proxy - - smarttv/droideka/proxy/api - - solomon/services/fetcher/yasm - - solomon/tools/telegram-listener/bin - - specsearches/lyrics/scripts/changes - - specsearches/lyrics/scripts/robot - - sport/backend/sport/projects/martial_arts - - sprav/altay/tools/load_cc_israel - - sprav/altay/tools/mapmaker_assessment/tool - - sprav/java/editor/scripts - - sprav/mining/botanik_miner - - sprav/mining/bs/scripts/postprocess - - sprav/mining/bs/tools/country_detector - - sprav/mining/bs/tools/extract_social_data - - sprav/misc/python/mining - - sprav/tycoon/nirvana/pushes/check_freshness_permalinks - - statbox/business_dwh/oklo/jobs/costs/staff_data - - statbox/business_dwh/oklo/jobs/costs/telemarketing/get_monthly_costs - - statbox/nile/nile/drivers/yql - - statbox/nile/tests/cluster - - statbox/qb2_core/qb2/utils - - statbox/statinfra/repo_tests - - statbox/statkey/jam/libs - - statbox/statkey/reactor/key_reports/CTR_blocks_SERP_baobab - - statbox/statkey/reactor/library/staff_client - - statbox/statkey/reactor/tools/columnist - - strm/pult/backend/lib - - strm/pult/backend/lib/cache - - strm/pult/backend/lib/pollers - - strm/pult/backend/lib/trns_hosts - - strm/strm_trns_manager/lib/utils - - strm/tools/bad-streams-generator/suites - - sup/slow_queries - - sup/tools/mongo_isolation - - talents/recommender/viewer - - taxi/antifraud/christopher/proactive_chats - - taxi/antifraud/geo_markup/lib - - taxi/antifraud/purga/score/go/block - - taxi/antifraud/purga/score/go/notify - - taxi/antifraud/purga/score/go/verification - - taxi/antifraud/purga/util - - taxi/antifraud/tools/ytclean - - taxi/eda/eda_analytics/eda_cofe_dynamic_dict_generator - - taxi/eda/eda_analytics/utility - - taxi/graph/packages/mds-downloader - - taxi/graph/packages/taxijamsd - - taxi/robowarehouse/lib/api/dependencies - - taxi/tools/dorblu/dorblu_configs_uploader/lib - - testenv/core/engine - - testenv/core/engine/cleanup - - testenv/core/engine/resources - - tools/mkdocs_builder/mkdocs_yandex/mkdocs_yandex - - tools/mkdocs_builder/mkdocs_yandex/mkdocs_yandex/ext - - tools/mstand/adminka - - tools/mstand/criterias - - tools/mstand/experiment_pool - - tools/mstand/mstand_utils - - tools/mstand/postprocessing - - tools/mstand/reports - - tools/mstand/sample_metrics/online - - tools/mstand/serp - - tools/mstand/session_metric - - tools/mstand/session_metric/tests/yt/default - - tools/mstand/session_squeezer - - tools/mstand/user_plugins - - tools/python-netconfig-static/bin/generate_hosts - - tools/python-netconfig-static/src - - tools/python-netconfig-static/src/interfaces - - tools/python-netconfig-static/src/interfaces/utils - - tools/ygetparam/ygetparam_modules/etcd - - transfer_manager/python/recipe/lib - - travel/avia/analytics/route_extractor - - travel/avia/api_gateway/application - - travel/avia/api_gateway/application/fetcher/flight_landing - - travel/avia/api_gateway/application/fetcher/is_possible_trip - - travel/avia/api_gateway/application/fetcher/personal_search - - travel/avia/api_gateway/lib - - travel/avia/api_gateway/lib/landings - - travel/avia/avia_api/ant - - travel/avia/avia_api/avia/middleware - - travel/avia/avia_api/avia/v1/email_dispenser/commands - - travel/avia/avia_api/avia/v1/email_dispenser/helpers - - travel/avia/avia_api/avia/v1/model - - travel/avia/library/python/avatars - - travel/avia/library/python/common/contrib - - travel/avia/library/python/common/models - - travel/avia/library/python/common/precache/gunicorn - - travel/avia/library/python/common/utils - - travel/avia/library/python/common/xgettext - - travel/avia/library/python/lib_yt - - travel/avia/library/python/references - - travel/avia/library/python/route_search - - travel/avia/price_index/bin/indexer - - travel/avia/price_index/lib/db - - travel/avia/shared_flights/data_importer - - travel/avia/shared_flights/data_importer/app - - travel/avia/shared_flights/lib/python/db_locks - - travel/avia/shared_flights/lib/python/db_models - - travel/avia/shared_flights/tasks/amadeus_parser - - travel/avia/shared_flights/tasks/monitoring/db/bin - - travel/avia/shared_flights/tasks/schedules_dumper - - travel/avia/stat_admin/scripts - - travel/avia/stat_admin/scripts/cohorts_v3 - - travel/avia/stat_admin/utils - - travel/avia/subscriptions/app/tests - - travel/avia/ticket_daemon/ticket_daemon/partners - - travel/avia/travelers/application/handlers - - travel/hotels/devops/bus_tool - - travel/hotels/devops/sandbox_planner - - travel/hotels/feeders/lib - - travel/hotels/lib/python3/tvm - - travel/hotels/stats/redir_stats - - travel/hotels/tools/api_req_replicator - - travel/hotels/tools/feeds_report - - travel/library/python/cloud_logger/cloud_logger - - travel/library/python/logbroker - - travel/library/recipes/library - - travel/rasp/bus/api/connectors/fields - - travel/rasp/bus/db - - travel/rasp/library/python/mapping - - travel/rasp/library/python/route_search/transfers - - travel/rasp/rasp_scripts/scripts - - travel/rasp/tasks/min_prices - - vcs/bitbucket/log_parser - - vcs/convert/misc - - vcs/convert/sync - - vcs/github/ext_api - - vcs/github/gh_common - - vcs/svn/s3_backuper - - vh/recommender/tools/get_lowerbound_date_for_timestamp - - voicetech/asr/cloud_engine/server/stt/client/nirvana/recognize - - voicetech/asr/experiments/VOICE-6210-compute-correlation - - voicetech/asr/experiments/VOICE_6289_contacts_recognition/alice_recorder_skill/extract_staff_usernames - - voicetech/asr/experiments/VOICE_7038_test_pcm_perf/python_data_patcher - - voicetech/asr/server/stress/lib - - voicetech/asr/tools/charts/merge_under_lock - - voicetech/asr/tools/concatenate_spotter_and_request_audio - - voicetech/asr/tools/extract_request_params_from_vt - - voicetech/asr/tools/models_cli/lib - - voicetech/asr/tools/nirvana_sync - - voicetech/asr/tools/parse_cli_output/bin - - voicetech/asr/tools/regular_metrics_run/upload_logs_to_yt - - voicetech/asr/tools/regular_metrics_run/upload_metrics_to_yt - - voicetech/asr/tools/robin/bin - - voicetech/asr/tools/robin/lib - - voicetech/asr/tools/youtube_scraper - - voicetech/asr/tools_cloud/asr_telephony/toloka_proxy/app - - voicetech/asr/tools_cloud/char_ngram/dataset/build_from_text - - voicetech/asr/tools_cloud/char_ngram/dataset/build_from_yt - - voicetech/asr/tools_cloud/datasphere/common - - voicetech/asr/tools_cloud/datasphere/lzy/datasphere_python - - voicetech/asr/tools_cloud/experiments/scripts/spellcheck/normalize_on_yt - - voicetech/asr/tools_cloud/utils/plot_metrics - - voicetech/asr/zen/lib/text_processing - - voicetech/asr/zen/tools/vad/yt - - voicetech/common/bin/compare_txt_with_precision - - voicetech/common/lib - - voicetech/common/lib/nirvana_gpu_lib - - voicetech/common/voicetable/lib - - voicetech/infra/net_stat - - voicetech/infra/speechbase_web - - voicetech/infra/uniproxy/tests/ftest - - voicetech/infra/uniproxy/tests/session - - voicetech/infra/uniproxy/tests/stress - - voicetech/spotter/junk/command_spotter_tools/filterout_ali - - voicetech/spotter/junk/the_modelbox/lib - - voicetech/spotter/online_metrics/lib - - voicetech/spotter/run/lib - - voicetech/spotter/selection_for_annotation/lib - - voicetech/spotter/tools/yt_save_space - - voicetech/tools/ffmpeg_over_yt/lib - - voicetech/tools/nirvana/deprecate_data - - voicetech/tools/yt_disk_quota_monitor/bin - - voicetech/tools/yt_temp_nirvana_tables_remover/bin - - voicetech/tts/pipeline - - voicetech/vqe/pylibs - - voicetech/vqe/pylibs/utils - - voicetech/vqe/tools/emb_benchmark/dash - - voicetech/vqe/tools/logs_loader - - voicetech/vqe/tools/yt_downloader - - weather/libs/utils/yt - - weather/ml/nirvana_operations/fix_geoindex_with_input_clean/nirvana_operation - - weather/ml/quality/stand/misc/external/utils - - weather/ml/quality/stand/utils/misc_helpers - - weather/workers/apply/fc_packer/utils - - weather/workers/common/clean_satellite - - weather/workers/common/clean_satellite/utils - - weather/workers/common/formula_fallback - - weather/workers/common/merge_statbox_tables - - weather/workers/common/send_fifa_emails - - weather/workers/exports/yt/prepare_data - - weather/workers/exports/yt/prepare_data/util - - weather/workers/imports/ecmwf - - weather/workers/imports/resorts - - web/daemons/begemot/scripts/bstr_fresh_deploy/pusher - - web/daemons/begemot/scripts/modify_info_attrs2 - - wmconsole/version3/viewers - - yabs/ab/libs/py_models - - yabs/analytics/anomaly_analyzer/src - - yabs/analytics/hitman_notification - - yabs/analytics/libs/py - - yabs/analytics/lifeorder_lib - - yabs/analytics/new_traffic_generation/src - - yabs/analytics/traffic_generation/z_5_2_search_app_metrika - - yabs/analytics/traffic_generation/z_5_appmetr_counter - - yabs/autobudget/ml/monitor_cold_start - - yabs/autobudget/ml/monitor_yt - - yabs/autobudget/pylibs/audit - - yabs/autobudget/pylibs/solomon - - yabs/autobudget/test/autobudget_yt_task - - yabs/basic_packages/yabs-scriptcontrol/py-modules - - yabs/bscount/tests/common - - yabs/indoor/py_libs/tasks_scheduler - - yabs/infra/monitorings/scripts/create_scheduler - - yabs/infra/monitorings/scripts/update_wiki - - yabs/infra/monitorings/yabs_monitorings/adfox/utils - - yabs/infra/monitorings/yabs_monitorings/deployment_mon - - yabs/infra/monitorings/yabs_monitorings/frontend_nanny_status - - yabs/infra/monitorings/yabs_monitorings/meta_info - - yabs/nanpu/samogon/plugin - - yabs/nanpu/tests/qabs_nanpu_pytest - - yabs/qa/b2b_utils/bsserver_b2b/engine/bs_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/mongo_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/rank_report - - yabs/qa/b2b_utils/bsserver_b2b/engine/run - - yabs/qa/b2b_utils/bsserver_b2b/engine/sandbox-utils - - yabs/qa/dbdownload - - yabs/qa/oneshots/update_partner_share - - yabs/qa/tools/cleanup_yt_resources - - yabs/qa/yabs_b2b_tank/qabs/b2b - - yabs/qa/yabs_b2b_tank/qabs/newreport - - yabs/qa/yt_oneshot - - yabs/samogon/balancernetdaemon - - yabs/samogon/zookeeper - - yabs/sb-bins/post_startreck_comment - - yabs/sbyt/devutils/add_table_replica - - yabs/server/cs/importers/autobudget_order_experiment_week_stat/pylib - - yabs/server/cs/importers/banner_brand/pylib - - yabs/server/cs/pylibs/base_gen - - yabs/server/cs/pylibs/janitor - - yabs/server/cs/pylibs/servant_app - - yabs/server/cs/tools/watto_factors - - yabs/server/infra/bstr/config - - yabs/server/infra/juggler-bundles/cloud/bin/yabs_unified_agent_status - - yabs/server/infra/transport - - yabs/server/test/ft/BSSERVER-2063 - - yabs/server/test/ft/DOOH-1070 - - yabs/server/test/ft/ads_adfox/request_context - - yabs/server/test/pylibs/simulator - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/test/qabs_bsserver_pytest/bs_objects - - yabs/server/test/qabs_bsserver_pytest/db - - yabs/server/tools/config/cloud - - yabs/server/tools/filter_reason_disable - - yabs/utils/broadmatch-overdraft/task - - yabs/utils/yabs-big-brother-client-ng - - yabs/utils/yabs_duty_scheduler/lib - - yabs/vh/cms-pgaas/cms_common/api/blueprints/ovs_blueprint - - yabs/vh/cms-pgaas/cms_common/api/blueprints/partner_ovs_blueprint - - yabs/vh/cms-pgaas/cms_common/biz - - yabs/vh/cms-pgaas/cms_common_ch - - yabs/vh/cms-pgaas/external_api_v1 - - yabs/vh/cms-pgaas/feed_miner/feed_uploader/biz - - yabs/vh/cms-pgaas/feed_miner/models/fields - - yabs/vh/cms-pgaas/feed_miner/utils - - yabs/vh/cms-pgaas/import/ava_uploader - - yabs/vh/cms-pgaas/lb/lb2index/lib - - yabs/vh/cms-pgaas/libs/image_tool - - yabs/vh/cms-pgaas/metrics/strm_thumb_metrics/biz - - yabs/vh/cms-pgaas/metrics/thumb_quality_metrics/biz - - yabs/vh/cms-pgaas/statistics_api/graphql_api/schema/base - - yabs/vh/cms-pgaas/thumbnail_uploader_lib/biz - - yabs/vh/cms-pgaas/ugc_admin_api/lib - - yabs/vh/cms-pgaas/ugc_api_common/base - - yabs/vh/cms-pgaas/ugc_api_common/graphql_api/schema/video - - yabs/vh/cms-pgaas/ugc_api_common/middlewares - - yabs/vh/cms-pgaas/ugc_internal_idm_api/api/blueprints - - yabs/vh/cms-pgaas/ugc_live_api/lib - - yabs/vh/cms-pgaas/utils/auth/tvm - - yabs/vh/cms-pgaas/zen_external_api - - yabs/vh/frontend/tools/monitoring - - yabs/vh/frontend/tools/resource_update_time_checker - - yabs/vh/frontend/tools/utils - - yabs/vh/shared/utils - - yabs/web-bins/export-stat/pcode_experiments/dill - - yandex_io/pylibs/quasmodrom_client - - yaphone/advisor/advisor/models - - yaphone/advisor/common - - yaphone/localization_admin/src - - yaphone/localization_admin/src/models - - yaphone/localization_admin/src/views - - yaphone/localization_admin/src/views/base_model - - yaphone/localization_admin/src/views/common - - yaphone/localization_admin/src/views/localization - - ydb/tests/functional/sqs/common - - ydb/tests/library/sqs - - ydo/analytics/nirvana/ban_unban_worker - - ydo/analytics/squeezes/service_baobab_v2 - - ydo/async_api/bin/worker/lib - - ydo/async_api/lib/client - - ydo/async_api/lib/logbroker_consumer - - ydo/async_api/tasks/backend - - ydo/async_api/tasks/handlers - - ydo/database/active_record - - ydo/database/lib - - ydo/database/sending_center/lib - - ydo/database/sending_center/lib/sending_strategies - - ydo/database/tests - - ydo/database/tests/common - - ydo/database/util - - ydo/devops/daemons/reloader - - ydo/devops/monitorings/golovan_menu - - ydo/devops/nanny_tools/check_diff - - ydo/libs/apphost_source - - ydo/libs/apphost_source/test - - ydo/libs/direct - - ydo/libs/dispatch/api - - ydo/libs/email_sender - - ydo/libs/errorbooster - - ydo/libs/extract_backend_request_source - - ydo/libs/indexer/attributes - - ydo/libs/indexer/handler - - ydo/libs/indexer/util - - ydo/libs/its/lib - - ydo/libs/partner_flow/partner_caller - - ydo/libs/phones - - ydo/libs/pool_worker - - ydo/libs/rt_antifraud - - ydo/libs/saas_lb_client - - ydo/libs/simple_geobase - - ydo/libs/tests_lib - - ydo/modules/workers_personal_cabinet/lib - - ydo/server/apphost_source/lib - - ydo/server/apphost_source/lib/endpoints - - ydo/server/apphost_source/tests - - ydo/server/extract_backend_request_source/lib - - ydo/server/extract_backend_request_source/tests/lib - - ydo/server/image_uploader/lib - - ydo/tools/call_center/update_samsara_with_handled_reviews - - ydo/tools/custom_services_processing/preprocess - - ydo/tools/db/batch_upsert/lib - - ydo/tools/db/db_enrichment/resolve_addresses - - ydo/tools/db/db_enrichment/resolve_urls - - ydo/tools/db/patch_service_cards - - ydo/tools/direct/client_errors_calcer - - ydo/tools/dispatch/ammo_requests_from_logs - - ydo/tools/dispatch/cache_shooter/lib - - ydo/tools/dispatch/shooter/lib - - ydo/tools/docdoc/build_workers - - ydo/tools/messenger/sms_notify/lib - - ydo/tools/monitoring/hitman_monitorings/lib - - ydo/tools/order_clarifier/config_builder/lib - - ydo/tools/partner_flow/aggregate_partner_prices/lib - - ydo/tools/recommender/request_recommender_graph/lib - - ydo/tools/rubricator/add_synonyms - - ydo/tools/rubricator/calc_rubric_embeddings - - ydo/tools/rubricator/edit_rubricator/replace_rubricator - - ydo/tools/rubricator/edit_rubricator/replace_rubricator/lib - - ydo/tools/rubricator/upgrade_service_cards - - ydo/tools/search/one_worker_wizard/lib - - ydo/tools/snippet_feed/lib - - ydo/tools/spontaneous/address_to_list/lib - - ydo/tools/spontaneous/fill_area_geoids - - ydo/tools/spontaneous/fix_remoderation - - ydo/tools/spontaneous/lib - - ydo/tools/spontaneous/upload_profiru_db - - ydo/tools/suggest/gen_suggest_problems_dicts - - ydo/tools/ugc/publish_call_center_reviews - - ydo/tools/util/yt_table_to_rtmr - - ydo/tools/workers_quality/passport_additional_check/common/lib - - yp/idm_role_provider/src - - yp/scheduler_simulator/convert_gencfg_to_yp - - yp/scheduler_simulator/lib/experiments - - yp/scripts/stress_load_master - - yql/library/cloud - - yql/library/test_framework - - yt/admin/hwinfo/src/hwinfo - - yt/admin/shiva2/src/task/impl/chaos_monkey/disruptions - - yt/admin/snapshot_processing/helpers - - yt/admin/snapshot_processing/validate_master_snapshot - - yt/admin/ytdyncfgen/src/parsers - - yt/cron/duty - - yt/cron/local_clear_logs - - yt/cron/map_users_to_pools - - yt/microservices/access_log_viewer/lib - - yt/microservices/access_log_viewer/lib/daemons - - yt/microservices/resource_usage/json_api/lib - - yt/odin-checks/scripts/run_standalone_check - - yt/python/yt - - yt/python/yt/environment - - yt/python/yt/local - - yt/python/yt/local/tests - - yt/python/yt/wrapper - - yt/python/yt/yson - - yt/skynet/test - - yt/yt/python/yt_yson_bindings - - yt/yt/scripts/add_table_replica - - yt/yt/scripts/analyze_solomon_shard - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib/algorithms - - ytech/ecom_tools/amazon/scripts/direct_zora_loader - - yweb/antiporno/hitrobot_porness/parse_images/bin - - yweb/antiporno/hitrobot_porness/prepare_pool/bin - - yweb/antiporno/nirvana/operations/disk_cp/download_images - - yweb/antiporno/nirvana/operations/self_updateable - - yweb/antiporno/query_analyzer/feature_reducer - - yweb/antiporno/reasks_reduction/metrics - - yweb/antispam/achievements/gos_tls - - yweb/antispam/adblock/lib - - yweb/antispam/adblock/tools/ab2cd - - yweb/antispam/antiinfrarecount/jupiter_state - - yweb/antispam/antiinfrarecount/yql_query_generator/script - - yweb/antispam/cid/backend/server - - yweb/antispam/cid/feedback - - yweb/antispam/cid/library - - yweb/antispam/cid/library/normalizer - - yweb/antispam/cid/monitoring - - yweb/antispam/cid/phones_base/verdict_classifiers - - yweb/antispam/cid/rivals - - yweb/antispam/cid/snezhana - - yweb/antispam/clean_web/text_cache/lib - - yweb/antispam/clean_web/tools/benchmark_bert - - yweb/antispam/clean_web/tools/benchmark_media_checker - - yweb/antispam/clusterization/full_footprint - - yweb/antispam/cm_tools/helpers - - yweb/antispam/mascot/app_market_features/parse_app_store - - yweb/antispam/mascot/library - - yweb/antispam/mascot/scripts/tcinet - - yweb/antispam/mascot/scripts/yt_daml - - yweb/antispam/mascot/sources - - yweb/antispam/monitoring/scripts - - yweb/antispam/phishing/mask_transfer/server - - yweb/antispam/phishing/spy_host_fraud/common - - yweb/antispam/python/pybase - - yweb/antispam/scripts/mr_merge_inbox - - yweb/antispam/scripts/reassess - - yweb/antispam/scripts/script_lib - - yweb/antispam/seo_coverage/viewer - - yweb/antispam/tmu/document_processor/http/client - - yweb/antispam/tmu/document_processor/yt - - yweb/antispam/tmu/kwdeploy - - yweb/antispam/tmu/yt_deduce - - yweb/antispam/tools/document_downloader - - yweb/antispam/tools/merge_yt_tables - - yweb/antispam/tools/sync_to_sandbox - - yweb/antispam/tools/yt - - yweb/antispam/tools/yt/common - - yweb/antispam/tools/yt_url2smth/lib - - yweb/antispam/viewers/ownerstops/monitorings - - yweb/antispam/webspam/export/exporter - - yweb/antispam/webspam/export/images/features - - yweb/antispam/webspam/export/tries/achievements_priemka - - yweb/antispam/webspam/export/tries/tools/upper_tries - - yweb/antispam/webspam/seo4yandex/fetch_google_search_console - - yweb/antispam/ytgr/legal_loader/library - - yweb/antispam/ytgr/tool - - yweb/blender/data_delivery/rtmr_uploader - - yweb/blender/pers_factors/dssm_counters_emitter/yql_udf - - yweb/blender/queries_classification/score_serps - - yweb/blender/scripts/factor_stats - - yweb/blender/scripts/nirvana/jobs/train_sbs_model/prepare_pool - - yweb/blender/scripts/offline_randomization/tests/sample_queries - - yweb/blender/scripts/rearrange_stat - - yweb/blender/scripts/uno_ideal_estimate/serpset_utils - - yweb/blender/stocks/zen_docs/prepare_tables - - yweb/dups/dmetric_nanny/bin - - yweb/freshness/coronavirus/upload_data_to_rtmr - - yweb/freshness/scripts/bno - - yweb/freshness/scripts/news_wizard/metrics/pictures - - yweb/freshness/scripts/news_wizard/newsmakers_factor/news_wizard_shows_rate - - yweb/freshness/scripts/sport_pushes - - yweb/freshness/scripts/sport_wizard - - yweb/freshness/scripts/trends - - yweb/freshness/scripts/trends/hotbot - - yweb/freshness/scripts/trends/lib - - yweb/freshness/scripts/trends/trendbot_tg - - yweb/freshness/scripts/trends/trendbot_tg/tg_handler - - yweb/freshness/scripts/tv_broadcast - - yweb/freshness/sitepos/dumb_version/cgi-bin - - yweb/news/driver/test - - yweb/news/driver/test/data/update_configs_iteration_time - - yweb/news/infra_push/quotes - - yweb/news/media/common - - yweb/news/media/vh_callbacks - - yweb/news/media/vh_ugc_sender - - yweb/news/news_back/api/admin/controller - - yweb/news/nirvana/operations/ActionsFromUserSessions - - yweb/news/nirvana/operations/offline_metrics - - yweb/news/runtime_scripts/comments_reader - - yweb/news/runtime_scripts/comments_reader/lib - - yweb/news/runtime_scripts/runner - - yweb/news/scripts/advwidget/yt_run_archive - - yweb/news/scripts/agency_rating - - yweb/news/scripts/lib/python/ynews - - yweb/news/search/pyuploader - - yweb/news/storage/media-refresher - - yweb/news/support/viewer - - yweb/news/tests/monitoring - - yweb/news/tests/utils - - yweb/news/tools/alert_bot - - yweb/news/tools/nv_sandbox_upload - - yweb/news/tools/storage_completeness/meta - - yweb/news/tools/storage_completeness/meta_vs_docinfo - - yweb/rca/server/scripts/process_api_batch - - yweb/robot/limbo - - yweb/robot/limbo/libs - - yweb/robot/metrics/pmusca/lib - - yweb/scripts/datascripts/common - - yweb/scripts/datascripts/runnerLib - - yweb/sitelinks/astrolabe/build_bna/candidates/filter_by_region - - yweb/sitelinks/astrolabe/build_bna/candidates/navigations/build_bna - - yweb/sitelinks/astrolabe/build_bna/naming - - yweb/sitelinks/editor - - yweb/sitelinks/scripts/sitelinks - - yweb/tellurium/tools/store_history_to_yt - - yweb/verticals/cost_plus/metrika/update_state - - yweb/verticals/scripts/blender/fstr_extractor - - yweb/verticals/scripts/build_programming_landings - - yweb/verticals/scripts/mushroom_surplus - - yweb/verticals/scripts/sport_zen_updater/add_parsed_zen_urls - - yweb/verticals/unisearch_relevance_markup_conveyor/train_and_test_model - - yweb/video/faas/lib/drm/mk2 - - yweb/video/transcoder/cm/transcoder/cmpy/full_vh_vh - - yweb/video/transcoder/tools/per_title/presets/nsga/evaluate/utils - - yweb/webdaemons/clickdaemon/tools/clickdaemon_coder/frontend - - yweb/webscripts/video/comparefactors/viewer - - yweb/webscripts/video/metarobot/parsepage/python - - yweb/yasap/answers/admin/admin/resources - - yweb/yasap/answers/answers/api - - yweb/yasap/answers/answers/celery/periodic - - yweb/yasap/answers/answers/utils - - yweb/yasap/answers/telegram_bot/telegram_bot/lib - - yweb/yasap/pdb/indexation/formatter/json - - yweb/younglings/common/database/schema - - yweb/younglings/common/database/ydb_tools/fit_tables_to_schema - - yweb/younglings/common/database/ydb_tools/lib - - yweb/younglings/education/regular/serp_problems_miner - - yweb/younglings/education/tools/yp_instances_http_requester - - yweb/younglings/tasks/YOUNGLINGS-2005 - - yweb/younglings/tasks/YOUNGLINGS-2185 - - yweb/younglings/tasks/YOUNGLINGS-2277 - - yweb/younglings/tasks/YOUNGLINGS-2784 - - yweb/younglings/tasks/YOUNGLINGS-516 - - yweb/younglings/tasks/YOUNGLINGS-626 - - zen/mstand/squeeze_zen/session_squeezer - - zen/mstand/squeeze_zen/utils - - zen/mstand/squeeze_zen/yt_utils - - zen/yweb/video/faas/lib/drm/mk2 - - zootopia/analytics/drive/source/drive/api/v0 - - zootopia/analytics/drive/source/drive/operations/fraud/gibdd - - zootopia/analytics/drive/source/drive/operations/fueling - - zootopia/analytics/drive/source/drive/thief/providers - - zootopia/analytics/ml/aggressive_driving/scorer/lib - - zootopia/analytics/ml/features/user_features/user_attributes - - zootopia/hub/geosupply/parsing - - zootopia/hub/geosupply/parsing/sections/parsing - - zootopia/hub/point_views - E731: - ignore: - - E731 - prefixes: - - yabs/server/cs/pylibs/base_gen - - yabs/server/cs/pylibs/janitor - - yabs/server/test/ft/BSSERVER-16053 - - yabs/server/test/ft/BSSERVER-18475 - - yabs/server/test/ft/BSSERVER-20665 - - yabs/server/test/ft/BSSERVER-2167 - - yabs/server/test/ft/BSSERVER-3842 - - yabs/server/test/ft/BSSERVER-3983 - - yabs/server/test/ft/BSSERVER-4379 - - yabs/server/test/ft/ads_adfox/metadsp_request - - yabs/server/test/ft/ads_adfox/request_context - - yabs/server/test/pylibs/qxl - - yabs/server/test/pylibs/simulator - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/test/qabs_bsserver_pytest/db - - yabs/server/test/tools/lua_test_generator/lib - - yabs/server/tools/simulate_timeouts/aggregate - - yabs/stat/infra/clickhouse/copy_table - - yabs/stat/rtstat/tools/yt_sync/ut - - yabs/vh/cms-pgaas/black_window_applier/biz - - yabs/vh/cms-pgaas/cms_common/orm - - yabs/vh/cms-pgaas/dao/biz - - yabs/web-bins/id_generator/tests - - yaphone/localization_admin/src/views/common - - ydb/tests/functional/tenants - - ydb/tests/library/sqs - - ydo/async_api/tasks/handlers - - ydo/async_api/tests/handlers - - ydo/database/active_record - - ydo/database/lib - - ydo/database/sending_center/test/small - - ydo/database/tests - - ydo/libs/read_kikimr_dump/read_as_namedtuple - - ydo/server/apphost_source/lib - - ydo/tools/orders_prediction/lib - - ydo/tools/proxy_phones/tests/test_solomon_monitoring - - ydo/tools/search_index/gen_saas_docs - - ydo/tools/spontaneous/migration_template - - yp/scheduler_simulator/convert_gencfg_to_yp - - yp/scheduler_simulator/lib/play_history - - yp/scripts/add_slot_requests - - yql/tools/mongos3 - - yql/tools/qplayer - - yt/admin/luigi/src/luigi/commands/yt - - yt/cron/clear_tmp/move_tmp_nodes/tests - - yt/cron/yp_antiaffinity_healer - - yt/cron/yp_heavy_scheduler_strategy - - yt/cron/yp_node_filter_healer - - yt/cron/yp_scheduler_monitor/bin - - yt/python/yt - - yt/python/yt/cli - - yt/python/yt/environment - - yt/python/yt/test_helpers - - yt/python/yt/wrapper - - yt/yt/tools/dynamic_tables/tablet_workload_balancer/lib - - yweb/antimalware/mitb/mitb_monitor/lib - - yweb/antiporno/suggest/calc_metrics/src - - yweb/antiporno/text_classif/lib/text_processing - - yweb/antispam/achievements/turbo_achievement - - yweb/antispam/cid/feedback - - yweb/antispam/cid/library - - yweb/antispam/clean_web/lib - - yweb/antispam/mascot/library/test - - yweb/antispam/scripts/script_lib/test - - yweb/antispam/tmu/deploy_rules - - yweb/antispam/viewers/trafgraph - - yweb/antispam/webspam/antiseo/mr_links/countrefs - - yweb/antispam/ytgr/tool - - yweb/blender/find_similar_queries/processes_manager - - yweb/blender/pers_factors/dssm_history_aggregator - - yweb/blender/queries_classification - - yweb/blender/scripts/nirvana/workflows/handle_secrets - - yweb/contentgen/articles_classifier - - yweb/dups/dmetric3/bin - - yweb/dups/dmetric_nanny/bin - - yweb/rca/server/app - - yweb/yasap/answers/answers/models - - yweb/yasap/answers/answers_common - - yweb/yasap/znatoki/znatoki_ctl/lib/commands - - zen/external/bigrt/cli/lib - - zen/yweb/video/faas/lib/tests/files_package - - zen/yweb/video/faas/vh_wrappers - - zootopia/analytics/drive/source/drive/operations/support/registrations/reg_quality/utils - - zootopia/analytics/drive/source/drive/operations/users - - addappter/backend/addappter/reports/data_sources - - addappter/backend/addappter/reports/report_fields - - adfox/amacs/tests/functional/tests_amacs/effective_id - - adfox/amacs/tests/functional/tests_amacs/limits/test_event_frequency - - adfox/amacs/tests/functional/tests_amacs/robots - - adfox/amacs/tests/functional/tests_amacs/ya_rtb - - adfox/amacs/tests/functional/tests_amacs/yabs - - adfox/amacs/tests/functional/utils - - bigrt/cli/lib - - ads/bsyeti/tools/draw_collectors_graph - - ads/bsyeti/w2v_recommender - - ads/clemmer/python/tests/small - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_ml_factors/matrixnet - - ads/nirvana/online_learning/online_dump_txt_prepare/lib/ut - - ads/quality/adv_machine/cm_robot/cmpy/banner_info - - ads/quality/adv_machine/scripts/ban_search_order_ids/lib/data - - ads/quality/adv_machine/scripts/save_base_version - - ads/quality/adv_machine/scripts/stage_runner_visualizer/lib/node_renderer - - ads/quality/bid_correction/v2/monitoring - - ads/quality/bid_correction/wrapper - - ads/quality/experiments/ang_api_util - - ads/quality/ltp/action_tasks/parsed_bigb_profile - - ads/quality/ltp/libs/featurist/model/queries - - ads/quality/ltp/libs/featurist/ut - - ads/quality/max_positions/optimize_auction_design_block - - ads/quality/simulate_auction_py/config - - ads/sandbox_scripts/monitoring_direct_urls/lib - - ads/targeting/make_lm_sharding_base/lib - - ads/tools/yt_merge_chunks/lib - - ads/watchman/contrib/apispec-patched/apispec - - ads/watchman/contrib/apispec-patched/apispec/ext/marshmallow - - ads/watchman/contrib/flask-restplus-patched/flask_restplus_patched - - advq/generation/common/db/tests - - advq/grep/pylib - - alice/analytics/operations/timespent - - alice/analytics/utils/nirvana - - alice/boltalka/generative/training/data/nn/filtered_twitter - - alice/boltalka/generative/training/data/nn/util/experimental - - alice/boltalka/woz_data_collection_bot/tests - - alice/quality/metrics/tools/metrics_calculator - - alice/uniproxy/library/processors/ut - - alice/vins/api/vins_api/speechkit/resources - - alice/vins/apps/personal_assistant/personal_assistant - - alice/vins/core/vins_core/nlg - - antiadblock/tasks/morda_aab_cookies - - antirobot/scripts/genits - - antirobot/scripts/metrics/cpu_usage_aggregate - - antirobot/scripts/utils - - apphost/daemons/horizon/src/agent/transport - - apphost/test/legacy/lib - - apphost/tools/pva/lib - - april/basback/basback/util - - aurora/aurora/config - - autobudget/bidder/lib - - balancer/test/functional/active_balancer2/common - - balancer/test/functional/active_balancer2/with_pinger - - balancer/test/functional/instance - - balancer/test/mock/mocked_balancer - - balancer/test/util/dnsfake - - billing/dcs/dcs - - billing/dcs/dcs/compare - - billing/dcs/dcs/compare/common/taxi - - billing/dcs/dcs/compare/deprecated - - billing/dcs/dcs/compare/partner_completions - - billing/dcs/dcs/utils - - billing/dcs/dcs/utils/sql - - billing/dcs/tests/unit - - billing/dwh/src/dwh/grocery/tools/mncloselib - - billing/hot/calculators/taxi/calculator/core - - billing/hot/calculators/taxi/calculator/core/entities - - billing/library/python/calculator/services - - billing/library/python/lbclient/tests - - billing/library/python/logmeta_utils - - billing/log_tariffication/py/tests/integration/partner_tariff - - billing/monthclosing/operations/wait_event_artifact/lib - - billing/monthclosing/operations/wait_json_artifact/lib - - billing/nirvana_reports/tools/simple_email_report/lib - - billing/tools/telebot/telebot - - build/plugins - - captcha/generation/image_generator - - captcha/tools/ocr_blacklist_filter - - cloud/ai/speechkit/stt/bin/data_scripts/tags/add_missing_client_tags - - cloud/blockstore/public/sdk/python/client/ut - - cloud/mdb/dataproc-infra-tests/tests/helpers - - cloud/support/tools/quotactl-l2 - - comdep_analytics/comdep_recsys/etl/logic/crm - - crypta/audience/lib/tasks/audience - - crypta/graph/lib/graph_connectivity - - crypta/lab/lib - - crypta/lib/python/bt/workflow/test - - cv/cbir_search/platform_index/tools/create_pfc_gta - - cv/imageproc/ocr/tools/nirvana/confidence_factors/recognition_gt_matching - - cv/imageproc/ocr/tools/toloka_labeling/split_lines - - cv/imgclassifiers/framework/nirvana/config_tools/lib/ut - - datacloud/geo/app/olap - - datalens/backend/app/bi_api/tests/unit/pivot - - datalens/backend/app/dls/yadls - - datalens/backend/lib/bi_core/bi_core - - datalens/backend/lib/bi_core/bi_core/connectors/bitrix_gds - - datalens/backend/lib/bi_core/tests/db - - datalens/backend/lib/bi_sqlalchemy_promql/bi_sqlalchemy_promql - - datalens/backend/lib/bi_sqlalchemy_yq/bi_sqlalchemy_yq - - devtools/autocheck/helpers/node_search - - devtools/autocheck/stat - - devtools/codenav/python - - devtools/dummy_arcadia/run_program/runio - - devtools/ldcref - - devtools/qafw/qyp - - devtools/qafw/rtc_deploy/cli - - devtools/ya/build - - devtools/ya/build/build_plan - - devtools/ya/build/tests/dist_build - - devtools/ya/core/yarg - - devtools/ya/exts - - devtools/ya/handlers/gen_config - - devtools/ya/handlers/project/lib - - devtools/ya/ide - - devtools/ya/jbuild/maven - - devtools/ya/package - - devtools/ya/test/facility - - devtools/ya/test/programs/test_tool/run_clang_tidy - - devtools/ya/test/programs/test_tool/run_fuzz - - devtools/ya/test/tests/lib - - devtools/ya/test/tests/lib/common - - devtools/ya/test/tests/misc - - devtools/ya/test/util - - devtools/ya/yalibrary/checkout - - devtools/ya/yalibrary/loggers/file_log - - devtools/ya/yalibrary/graph - - devtools/ya/yalibrary/runner - - devtools/ya/yalibrary/status_view - - devtools/ya/yalibrary/yandex/sandbox - - dict/moria/nirvana/quality/production_coverage/plot_coverage - - dict/mt/analytics/dashboards/datasets/ocr_translate_speed - - dict/mt/analytics/dashboards/datasets/tools/compress/tests - - dict/mt/analytics/dashboards/stub_fmls - - dict/mt/eval/eval_viewer/lib/dao/pg - - dict/mt/eval/eval_viewer/lib/flask_apps - - dict/mt/eval/eval_viewer/lib/util/rpc - - dict/mt/eval/lib/metrics/segmentation - - dict/mt/make/libs/report - - dict/mt/make/modules/voc - - dict/mt/pt_build/tools/yql_build - - dict/mt/scripts/human_eval/he_mv_aggregation - - dict/mt/tools/log_converter/rem_tool - - dict/tools/find_synonym - - dj/nirvana/nirvana_make - - dj/nirvana/operations/dj/train/build_pool_time_interval - - dj/nirvana/operations/yql/yql - - dj/nirvana/tools/nirvar - - dj/research/userbert/old/userbert_market/prepare - - dj/research/userbert/old/userbert_market/prepare_rerank - - dj/services/market/configs_generator/recommender/programs/discovery - - dj/services/market/configs_generator/recommender/programs/fmcg - - dj/tools/viewer/custom/goods - - edadeal/analytics/scripts/RetailerReachByRegion/RetailerReachByRegionLib/RetailerReachByRegionLib - - edadeal/analytics/scripts/UserActivity/UserActivityLib/UserActivityLib - - education/services/enigma/app/controllers/celery/ut - - entity/analytics/tools/ner2/eval/lib - - entity/ontodb/robot/tools/release_main_delta/lib/ut - - entity/ontodb/robot/util - - entity/recommender/nirvana/operations/build_static_profiles/lib - - entity/ugc/quality/reviews_ranking/ml/lib - - entity/ugc/quality/reviews_ranking/ml/lib/trueskill - - entity/ugc/quality/reviews_ranking/ml/lib/ut - - entity/ugc/robot/tools/orgvisits_loader/lib - - entity/ugc/robot/tools/user_activity_processor/lib - - extsearch/audio/tools/vh_tools/tests - - extsearch/geo/conveyors/annotations/events_miner/date_tool - - extsearch/geo/recommender/tools/quality_metric/convert_tradoff_4_plot - - extsearch/geo/recommender/tools/quality_metric/prepare_plot - - extsearch/geo/tools/collect_deep_vs_noclick - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/images/money/scripts/robot/util - - extsearch/images/related_queries/tools/configure_glueing - - extsearch/images/robot/rt/daemons/selection_rank_calc - - extsearch/images/robot/rtrobot/tools/selection_rank_calc/select_threshold - - extsearch/images/robot/tools/branches_metrics - - extsearch/video/quality/recommender/tools/dj_profile_viewer - - extsearch/video/quality/recommender/tools/prepare_promo_tag - - extsearch/video/robot/cm/vicont/cmpy/podcasts - - extsearch/video/robot/cm/vicont/cmpy/speech2text - - extsearch/video/robot/cm/vicont/cmpy/urlinfo - - extsearch/video/robot/docbase/crm2factors - - extsearch/video/robot/pylib - - extsearch/video/robot/rt_transcoder/dhdaas - - extsearch/wizards/fastres2/tools/bad_wizards_control - - extsearch/wizards/fastres2/viewer/controllers - - fintech/bnpl/backend/bb_tests/testsuite/client - - games/admin/libs/configs - - health/articles/articles_pipeline/actions - - infra/awacs/vendor/blinovmatcher/blinovmatcher - - infra/awacs/vendor/blinovmatcher/tests - - infra/callisto/controllers/shard - - infra/callisto/deploy/deployer/python - - infra/cauth/server/master/importers/staff - - infra/clusterstate/services/alpha - - infra/deploy_queue_controller/lib - - infra/gencfg-gui - - infra/gosky/src/gosky - - infra/heartbeat/src - - infra/heartbeat/src/daemon - - infra/logger/tests - - infra/netmon/agent/agent - - infra/netmon/agent/tests - - infra/netmon/build_topology/lib - - infra/netmon/tests - - infra/netmon/utils/check_hosts_in_switch - - infra/qyp/account_manager/src - - infra/rtc/sbin/show_kernel_distribution - - infra/rtc/walle_validator/tests - - infra/skybone-coord/src/daemon - - infra/swatlib - - infra/swatlib/gevent - - infra/walle/server/contrib/object-validator - - infra/yp_dns/tools/diff_nameservers - - infra/yp_drp/lib - - infra/ytexclusiveservice - - intranet/compositor/src/api - - intranet/plan/src/plan/services/views - - intranet/plan/src/plan/services/views/catalog - - intranet/watcher/tests/unit/tasks - - intranet/wiki/src/wiki/actions/classes - - intranet/wiki/src/wiki/actions/classes/form_elements - - intranet/wiki/src/wiki/grids/management/commands - - intranet/wiki/src/wiki/grids/utils - - intranet/wiki/src/wiki/intranet - - intranet/wiki/src/wiki/pages/access - - intranet/wiki/tools/wikiclient - - inventori/pylibs/tasks/timeseries - - keyboard/android/native/codegen - - keyboard/dict/fuzzing - - keyboard/dict/lm_diff - - keyboard/dict/synthetic_ngrams/make - - keyboard/suggest/nnlm/python/nnlm - - kikimr/ci/libraries/utils - - kikimr/ci/tests/client/pq - - kikimr/tools/check_yc_access - - kikimr/tools/duty_bot - - lbs/research/LBS380_use_multiple_gsm/markup_using_exp_algo - - lbs/research/LBS448_anonymize_signals/scramble_signals_table - - lbs/tools/generate_ammo_from_api_logs - - lbs/viewer - - library/python/fs/test - - library/python/resource - - library/python/retry/tests - - library/python/testing/yatest_common/yatest/common - - logfeller/python/logfeller/infra/config - - logos/libs/docy - - logos/projects/ads/tasks/ads_eshow_group_corrector_orderid_stats - - logos/projects/ads/tasks/ltp_ecom - - logos/projects/ads/tasks/ltp_watch - - mail/freezing_tests/active_users_aggregation - - mail/python/pymail - - mail/template_master/load_testing/scripts - - mail/transfer/ora2pg - - maps/analytics/lib/reports - - maps/analyzer/sandbox/common - - maps/analyzer/services/jams_analyzer/tools/jams_uploader/tests/integration - - maps/automotive/radio/tools/prepare_data_from_csv - - maps/automotive/radio/tools/pylib - - maps/automotive/remote_access/autotests/tests - - maps/b2bgeo/mvrp_solver/backend/monitoring/uptime/pylibs - - maps/b2bgeo/ya_courier/analytics_backend/lib/reports/plan_fact - - maps/bizdir/sps/workstation/api - - maps/bizdir/sps/yang - - maps/bizdir/sps/yang/tests - - maps/garden/libs/matrix_router_data_builder - - maps/garden/modules/carparks_activation/tests - - maps/garden/modules/transit_tester/tests - - maps/goods/autotests/src - - maps/goods/autotests/src/data_types - - maps/goods/scripts/funduk_routines/moderator/test - - maps/goods/scripts/funduk_routines/photo_uploader/test - - maps/masstransit/tools/compare_routers/lib - - maps/masstransit/tools/upload_rasp_yt_tables/lib - - maps/poi/basemap/poi_checker/lib - - maps/poi/notification/tests - - maps/poi/unshown_popular_orgs/tests - - maps/pylibs/blackbox/lib - - maps/renderer/tilesgen/tools/lib - - maps/statistics/external/traffic_lights/geometry_lib - - maps/tools/monitoring/startrek_tool/bin - - maps/wikimap/mapspro/services/maintenance/pgmigrate_helper - - maps/wikimap/mapspro/tools/pgmigrate_helper/lib - - maps/wikimap/stat/auto_generated_hypotheses/lib - - maps/wikimap/stat/sprav_pedestrian/ut - - maps_adv/common/shared_mock/tests - - market/access/server/mt - - market/access/server/mt/env - - market/dynamic_pricing/parsing/full_url_list/update_full_url_list - - market/dynamic_pricing/pricing/common/canonic_test/tables_diff - - market/dynamic_pricing/pricing/library/rthub - - market/forecast/demand_ml_forecast/lib/data_preparation/ssml - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/guru-models-dumper/py_test - - market/guru-models-dumper/suggests_storage - - market/guru-models-dumper/test - - market/replenishment/algorithms/lib/simulation - - market/report/runtime_cloud/report_config - - market/sre/tools/capacity/preorder/v2020/preorder_lib/core/types - - market/sre/tools/rtc/nanny - - market/sre/tools/rtc/nanny/models/attributes - - market/tools/stupid_predict - - market/yamarec/performance/nirvana/actions/past_checkout - - market/yamarec/performance/nirvana/segment_computer - - mds/mastermind/resizer/tests/analyze_utils - - ml/libs/ml_data_reader/src/ml_data_reader - - ml/nirvana/python_deep_learning - - ml/row_processors/row_processors/blocks - - ml/tensorflow/models/userbert/tests/data/local - - ml/tensorflow/models/userbert/tests/data/utlib - - ml/tensorflow/tfnn/src/tfnn - - ml/tensorflow/tfnn/src/tfnn/ops - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/inference - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/tools/interlingua - - ml/tensorflow/tfnn/src/tfnn/tools/score_tokenized - - ml/tensorflow/tfnn/src/tfnn/train - - ml/tensorflow/tfnn/tests/seq2seq - - ml/tensorflow/ytensorflow/tests/train/hooks - - ml/tensorflow/ytensorflow/ytensorflow/inference - - ml/tensorflow/ytensorflow/ytensorflow/layers/rnn/cudnn - - ml/zeliboba/nirvana/operations/inference - - modadvert/bigmod/tools/satellite/it - - modadvert/libs/antispam/threat_mapping/ut - - modadvert/libs/sm_api/processors/get_custom - - modadvert/libs/supermoderation - - modadvert/libs/utils/state - - modadvert/nirvana/valhalla/operations - - modadvert/programs/clean_data - - modadvert/programs/documents_api/libs - - modadvert/test_utils/yt_fixtures - - mssngr/geobot/kikimr_client - - music/tools/card_gen - - nirvana/vh3/src/vh3/util/typecheck - - noc/comocutor-contrib/comocutor_contrib - - noc/hbf-server/tests - - noc/packages/mondata_server/cmd/linkator3 - - noc/soft_pingers/bomj - - orgvisits/heuristics/wifi/matching/features - - orgvisits/tools/table_checker - - passport/backend/adm_api/tests/common - - passport/backend/core/cookies/utils/werkzeug_ports - - passport/backend/core/types - - passport/backend/social/api/tests - - passport/backend/social/common - - passport/backend/social/proxylib/repo - - passport/backend/tools/apple_private_keys - - passport/backend/utils - - quality/ab_testing/scripts/excomer2/tests - - quality/ab_testing/scripts/kati - - quality/ab_testing/scripts/shellabt - - quality/antifraud/analytics/sessionsviewer_period - - quality/antifraud/xurma/tools/dump_restore/lib - - quality/functionality/chats/platform/base - - quality/functionality/facts/ml_experiments/lib - - quality/functionality/facts/nirvana/operations/remove_train_queries_from_eval_pool - - quality/functionality/ideal_snippets/nirvana_toloka/landing_page_scrolls/app_scrolls/tests - - quality/functionality/scripts/psuh/PushStatsLib/PushStatsLib - - quality/functionality/shinyserp/ecom_research/nirvana/operations/contents_constructor/lib - - quality/functionality/shinyserp/ecom_research/nirvana/operations/wizard_builder/lib - - quality/functionality/snippets/media_turbo_bna - - quality/functionality/turbo/ecommerce/offer_base/process_exports/tests/medium - - quality/functionality/turbo/runtime/turbo_urls_sampler/bin - - quality/logs/baobab/api/python_arc/ut - - quality/logs/baobab/api/python_arc/ut3 - - quality/market/metrics/search_metric_threshold - - quality/neural_net/bert/bert/pytorch - - quality/neural_net/bert/bert/pytorch/pruning - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/process_ab_result - - quality/nirvana_tools/conveyor_operations/asgen/config - - quality/nirvana_tools/conveyor_operations/parse_web_dump/lib - - quality/nirvana_tools/conveyor_operations/stove/run_simple_opt - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/user_sessions/market/collector_lib - - quality/ytlib/tools/testops - - quasar/infra/tasklets/logfeller_usage_to_solomon/impl - - quasar/manifest_scripts/manifestlib - - quasar/manufacturing/utils - - razladki/monq/monq - - regulargeo/v2/clustering/ut - - release_machine/vcs_indexer/tests/python_tests - - robot/blrt/tools/difftool/lib - - robot/blrt/tools/viewer - - robot/favicon/python - - robot/jupiter/library/python/dump_shards - - robot/jupiter/library/python/jupiter_util - - robot/jupiter/library/python/sample - - robot/jupiter/scripts - - robot/jupiter/tools/compare_index/lib - - robot/kwyt/scripts/sampling_data - - robot/lemur/scripts/common - - robot/mercury/cmpy/cluster_switcher - - robot/salmon_agent/utils - - robot/selectionrank/sr_conduct_rules_experiment/graphs - - robot/smelter/backend/analytics/utils - - robot/tools/solomon_agent/utils - - robot/zora/tools/pdfetch_external_files_generator - - rt-research/broadmatching/scripts/pylib/bm - - sandbox/bin/tests - - sandbox/projects/AutocheckEmulation - - sandbox/projects/AutocheckStatistics - - sandbox/projects/BuildGolemDeb - - sandbox/projects/EntitySearchShooter - - sandbox/projects/MultiMediaRTMRMonitor - - sandbox/projects/Statbox/StatboxLibraCook - - sandbox/projects/UrlsByShowCounters/executable/lib - - sandbox/projects/antirobot/DiffResources - - sandbox/projects/avia/generate_directions_for_toloka - - sandbox/projects/avia/get_amadeus_report - - sandbox/projects/devops/UpdateGoals - - sandbox/projects/jupyter_cloud/salt/lib - - sandbox/projects/market/recom/cms/Monitoring - - sandbox/projects/quasar/check_release_status/lib/validate - - sandbox/projects/statkey/money_map/monitorings/moneymap_monitorings - - sandbox/projects/taxi_crm_masshire/import_recruiters - - sandbox/projects/vh/frontend/dolbilka_plan_creator - - sandbox/projects/websearch/begemot/common/fast_build - - sandbox/projects/yabs/SysConstLifetime/const_proto - - sandbox/projects/yabs/SysConstLifetime/sys_const - - sandbox/projects/yabs/auto_supbs_2/lib/order_processor_lib - - sandbox/projects/yabs/base_differ - - sandbox/projects/yabs/qa/utils - - sandbox/projects/yabs/release/performance - - sandbox/projects/yabs/sandbox_task_tracing/impl/test - - sandbox/projects/yabs/sandbox_task_tracing/test - - sandbox/projects/yane/CalcQuality - - sandbox/projects/yane/TestTask - - sandbox/serviceq/tests/server - - sandbox/serviceq/tests/server/utils - - sandbox/yasandbox/manager - - sandbox/yasandbox/proxy - - sdg/robot_bl/narrow_locations/tests/unit - - search/begemot/tools/its - - search/daemons/models_proxy/tests/lib - - search/geo/tools/basket_gathering/basket_mining - - search/geo/tools/basket_gathering/misspel_sampling - - search/geo/tools/collections/lib - - search/geo/tools/fuel_snippet/lib - - search/geo/tools/personal_pois/lib - - search/geo/tools/task_manager/generators/building_info/tools/gasification/mosreg_api_downloader - - search/geo/tools/task_manager/generators/providers_data/common - - search/integration_tests/util - - search/mon/bot/bot/modules - - search/mon/bot/bot/modules/protocols - - search/mon/bot/bot/modules/telegram - - search/mon/curators_helper - - search/mon/uchenki/app/controllers/api - - search/mon/uchenki/lib/clients - - search/mon/uchenki/lib/utils - - search/mon/warden/src/services - - search/morty/src/common/clients - - search/morty/src/rviewer/clients - - search/rpslimiter/rpslimiter_agent/lib - - search/scraper/parser_platform/parsers - - search/tools/setrace/src/setrace/models - - search/tools/setrace/src/setrace/models/tracer_over_yt - - search/tools/setrace/src/setrace/models/unified_agent - - search/wizard/entitysearch/tools/straighten_table - - skynet/api/srvmngr - - smarttv/droideka/tests - - smm/tools/get_label_stats - - solomon/tools/yapackage - - sport/backend/sport/projects/common - - sport/backend/sport/projects/football - - sport/backend/sport/sport - - sport/backend/sport/translations - - sprav/mining/botanik_miner - - sprav/mining/bs/scripts/postprocess - - sprav/mining/facebook/translate - - sprav/mining/quarantine/feature_grep - - sprav/misc/python/mining - - statbox/nile/nile/drivers/yql - - statbox/nile/nile/processing - - statbox/nile/tests/cluster - - statbox/qb2_core/qb2/compiler - - statbox/qb2_core/qb2/graph - - statbox/qb2_core/qb2/utils - - statbox/qb2_core/qb2/utils/datetime - - statbox/qb2_core/tests/common - - statbox/statkey/reactor/charity_direct_report/aggregate_data - - statbox/statkey/reactor/cubes/datacatalog/prepare_processes/v2 - - strm/pult/common/python/lib - - taxi/antifraud/device_data/lib - - taxi/robowarehouse/lib/api/tests/functional/routes/v1/admin - - taxi/robowarehouse/lib/concepts/tests/functional/orders - - tools/mstand/nirvana_api - - tools/trie_ops/tests - - tracker/scripts/jira_to_tracker - - travel/avia/api_gateway/application/fetcher/route_landing - - travel/avia/library/python/django_namedtuples - - travel/avia/library/python/route_search/by_number - - travel/avia/library/python/tester - - travel/avia/library/python/ticket_daemon/memo - - travel/avia/subscriptions/app/tests - - travel/rasp/api_public/api_public/v3/tariffs - - travel/rasp/library/python/route_search/by_number - - travel/rasp/train_api/train_partners/base/train_details - - vcs/changeset - - voicetech/asr/experiments/VOICE-6097-mt-g2p/create_simple_decoding_dict - - voicetech/asr/tools/asr_analyzer/lib - - voicetech/asr/tools/intents_decompose - - voicetech/asr/tools/parse_cli_output/bin - - voicetech/bio/pybio - - voicetech/bio/pybio/tests/train - - voicetech/bio/pybio/tests/train/data - - voicetech/bio/pybio/tests/train/tf_patched_models - - voicetech/bio/pybio/train - - voicetech/bio/pybio/train/cnnpool - - voicetech/bio/pybio/train/data/common - - voicetech/bio/scripts/train/train - - voicetech/diarization/lib/markup - - voicetech/spotter/online_metrics/lib - - voicetech/spotter/train/witchcraft/recipe - - voicetech/spotter/train/witchcraft/wizard - - voicetech/tts/training/waveglow - - voicetech/tts/vh/tts_metric - - weather/ml/nirvana_operations/download_tools - - weather/workers/apply/yt/apply/tests - - weather/workers/exports/ydb - - weather/workers/imports/copernicus - - weather/workers/imports/netatmo - - weather/workers/imports/owm - - web/daemons/begemot/scripts/begemot_separation - - web/daemons/begemot/test/test_daemon - - yabs/infra/monitorings/yabs_monitorings/baseage_graphite - - yabs/nanpu/tests/qabs_nanpu_pytest - - yabs/poormansprofiler/fetch/lib - - yabs/qa/oneshots/common - - yabs/qa/server_shooter - - yabs/qa/yabs_b2b_tank/qabs/b2b - - yabs/qa/yabs_b2b_tank/qabs/newreport - E741: - ignore: - - E741 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - billing/log_tariffication/py/tests/integration/partner_acts - - billing/log_tariffication/py/tests/integration/partner_dsp_acts - - billing/log_tariffication/py/tests/integration/partner_tariff - - crypta/lab/tools/share_audience_exports - - datalens/backend/app/bi_materializer/bi_materializer - - devtools/distbuild/ctl - - devtools/tools_build - - devtools/ya/build/stat - - dj/services/toloka/features/lib/projects - - education/yaschool/services/sections/app/models - - extsearch/geo/tools/similarweb_basket_prepare - - geosuggest/tools/international_quality/vh3/similarweb_basket_prepare - - logbroker/tools/cluster_migration/get_max_retention - - logos/projects/statkey_py3/tasks/cubes/clicks_attribution/v2 - - maps/analyzer/pylibs/models - - maps/analyzer/pylibs/schema - - maps/analyzer/sandbox/ab_tables_daily/bin - - maps/analyzer/toolkit/lib - - maps/analyzer/tools/qyp_quota - - maps/geoq/hypotheses/flats/lib - - maps/tools/matcher_quality/scripts/compare - - market/quality/antispam/markup - - modadvert/libs/hitman - - plus/mobile/infra/common/files - - quality/user_sessions/money_rt/registry/helpers - - quasar/manifest_scripts/sync_tool - - sandbox/projects/devtools/YaTestParent2 - - sandbox/projects/release_machine/components/configs/fintech - - sandbox/projects/release_machine/components/configs/irt - - sandbox/projects/statinfra/statinfra_task - - sandbox/projects/statinfra/statinfra_task_beta - - statbox/qb2_core/qb2/compiler - - taxi/supportai/telephony_integration - - yabs/qa/oneshots/denkitaev/BSSERVER-20575/remove_exp_group_labels - - yt/cron/merge/perform_merge/lib - - yweb/antiporno/nirvana/operations/self_updateable - - yweb/dups/dmetric3/bin - - yweb/video/faas/lib/abr - - yweb/video/faas/lib/drm - - yweb/yasap/answers/admin/admin/resources - - zen/yweb/video/faas/lib/drm - - addappter/backend/addappter_cli/commands/bonus - - adfox/amacs/tests/functional/libs/builders - - adfox/amacs/tests/functional/libs/models - - adfox/amacs/tests/functional/tests_amacs/targeting/browser - - adfox/amacs/tests/functional/tests_amacs/targeting/puid - - adfox/amacs/tests/functional/tests_amacs/targeting/user_tracking - - adfox/amacs/tests/functional/tests_amacs/ya_rtb - - adfox/amacs/tests/functional/utils - - adfox/amacs/tests/functional/utils/tools - - adfox/infra/monitoring/agent - - adfox/xpd/tests/functional/tests/tpd - - ads/bsyeti/bb_viewer/viewer - - bigrt/lib/events/codegen - - ads/bsyeti/libs/argument_tree - - ads/bsyeti/tests/eagle/ft/lib - - ads/bsyeti/tests/test_lib/eagle_compare_old - - ads/emily/mvp/ml_engine_inspired_by_shoutpva/iter_01/lib/models/nirvana_vw - - ads/libs/py_autobudget - - ads/libs/py_build_stat/mapreduce - - ads/libs/py_hourstat - - ads/libs/py_lemmer/python-clemmer2/py_modules - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabutils - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_monitoring - - ads/libs/py_sysutils/yabs-python-sysutils/py-modules - - ads/libs/py_vw_lib - - ads/libs/py_yttools - - ads/libs/yql - - ads/ml_engine/learn/result/flow_process_usage_data/lib - - ads/ml_engine/lib - - ads/nirvana - - ads/nirvana/difacto/online_loss_processor - - ads/nirvana/difacto/task_schema_converter - - ads/nirvana/ml_report/lib - - ads/nirvana/online_learning/contextlib_utils - - ads/nirvana/online_learning/graph_launcher/test_pt - - ads/nirvana/vw/vw_launcher/test - - ads/pytorch/lib/online_learning/production/factor_stats - - ads/quality/autotargeting/bloss - - ads/quality/bid_correction/lib - - ads/quality/bm_scoring/pipeline/manage_pools - - ads/quality/dssm/lib - - ads/quality/ltp/libs/build_pool - - ads/quality/mobile_apps/make_pool - - ads/quality/simulate_auction_py/lib/internal_ads - - ads/quality/tlm/pylib - - ads/sandbox_scripts/bmcategory_queryage_coeffs/lib - - ads/sandbox_scripts/enrich_goals/lib - - ads/sandbox_scripts/join_yabar - - ads/sandbox_scripts/join_yabar/lib - - ads/sandbox_scripts/zc_regular - - ads/targeting/yabs-python-collections/py-modules - - ads/tools/mranalyze - - ads/watchman/experiments/lib - - ads/watchman/experiments/lib/mr_collections - - ads/watchman/experiments/lib/plotting - - alice/uniproxy/library/backends_common - - alice/uniproxy/library/experiments/ut - - alice/uniproxy/library/extlog/ut - - alice/uniproxy/library/utils - - alice/uniproxy/tools/balancer_top - - alice/uniproxy/tools/perf_results_parser - - alice/vins/api/vins_api/webim/tests - - alice/vins/core/vins_core/nlu/neural/metric_learning - - alice/vins/core/vins_core/nlu/sample_processors - - alice/vins/core/vins_core/utils - - analytics/plotter_lib - - antiadblock/cryprox/cryprox/common - - antiadblock/tasks/detect_verification - - antirobot/captcha/captcha_test_service/bin - - apphost/daemons/horizon/src/server/services/checker/reducers - - apphost/lib/python/split/charts - - april/badb/badb/structure/interest - - april/basback/basback/process/ca/custom_category_report - - april/common/libca - - april/etl/spark - - april/python-clickhouse/clickhouse - - april/web/bas/bas - - april/web/bas/bm - - april/web/bas/bm/management/commands - - april/web/bas/bm/utils - - april/web/bas/collector - - april/web/bas/qa - - april/web/bas/qa/utils/segment_rules - - autobudget/alerting/alerts - - autobudget/bidder/lib - - autobudget/bidder/lib/ut - - autobudget/bidder/testlib - - balancer/daemons/solomon - - balancer/production/tickets_deploy - - balancer/test/configs/lib/locations_test - - balancer/test/functional/openssl - - balancer/test/util/dnsfake - - billing/apikeys/apikeys - - billing/apikeys/apikeys/butils_port - - billing/dwh/src/dwh/grocery/dcs/export - - billing/hot/calculators/taxi/calculator/core - - billing/library/python/calculator/services - - billing/userapikeys/userapikeys - - build - - build/plugins - - catboost/yandex_specific/python-package/ut_no_windows/medium - - cloud/blockstore/tools/analytics/top-disks - - cloud/blockstore/tools/cms/lib - - cloud/kms/client/python - - cloud/mdb/salt/salt/_states - - cloud/mdb/salt/salt/components/mysql/conf - - cloud/mdb/salt/salt/components/pushclient/parsers - - collab/core/src - - crypta/graph/staff/lib - - crypta/graph/v1/python/utils - - crypta/lib/python/bt/workflow/test - - crypta/lib/python/lb_pusher/test - - crypta/lib/python/yt/processed_tracker/test - - cv/cbir_search/intent_classifier/parse_intent_factors - - cv/cbir_search/smart_camera/scenarios/poetry/make_data - - cv/cbir_search/yt_classifier/metrics - - cv/imageproc/ocr/tools/nirvana/captcha_renderer - - cv/imageproc/ocr/tools/nirvana/ocr_results_visualize - - cv/imageproc/ocr/tools/nirvana/realtime_sbs/build_task - - cv/imageproc/ocr/tools/nirvana/seglinks_detector/parse_synth - - cv/imageproc/ocr/tools/statistic/auto_tests/ocr_test_lib/api_wrapper - - cv/imgclassifiers/framework/data_processing - - cv/imgclassifiers/framework/nirvana/config_tools/add_config_head - - cv/imgclassifiers/framework/nirvana/data_tools/features_to_images - - cv/imgclassifiers/framework/nirvana/sbs_tools/build_layouts - - cv/imgclassifiers/framework/nirvana/sbs_tools/build_task - - cv/imgclassifiers/framework/visualization - - cv/imgclassifiers/tf_applicator/tests/diff_tool - - datacloud/data_schema - - datalens/backend/app/bi_external_api/bi_external_api/domain/external - - datalens/backend/app/bi_external_api/bi_external_api/domain/internal/dashboards - - datalens/backend/lib/bi_app_tools/bi_app_tools/ylog - - datalens/backend/lib/bi_core/tests/db/us_manager - - datalens/backend/tools/materialization/mat_ch_cluster_population - - devtools/autocheck/stat - - devtools/codenav/kytheprotobufgen - - devtools/contrib/import_tensorflow - - devtools/contrib/license_analyzer - - devtools/experimental/ylog/ylog - - devtools/import_contrib - - devtools/local_cache/toolscache/tests/medium - - devtools/local_cache/toolscache/tests/recreate - - devtools/qafw/selenium/grid_usage/calc_trend - - devtools/qafw/selenium/grid_usage/calc_usage - - devtools/qafw/selenium/lib - - devtools/qafw/selenium/time_distribution/bin - - devtools/ya/build/genconf - - devtools/ya/build/reports - - devtools/ya/build/tests/ymake_heater - - devtools/ya/core/yarg - - devtools/ya/entry - - devtools/ya/handlers/addremove - - devtools/ya/handlers/check - - devtools/ya/handlers/dump - - devtools/ya/handlers/style - - devtools/ya/jbuild/gen/actions - - devtools/ya/jbuild/maven - - devtools/ya/test/canon/tests - - devtools/ya/test/dependency - - devtools/ya/test/programs/test_tool/results_accumulator - - devtools/ya/test/programs/test_tool/results_merger - - devtools/ya/test/programs/test_tool/tests/min_glibc_version - - devtools/ya/test/tests/port_manager/ut - - devtools/ya/yalibrary/graph - - devtools/ya/yalibrary/makelists/tests - - devtools/ya/yalibrary/runner/tasks - - devtools/ya/yalibrary/status_view - - devtools/ya/yalibrary/vcs/vcsversion - - devtools/ya/yalibrary/yandex/staff - - dict/bert/make/tools/gena_tokenizer - - dict/libs/map/tools/mkmap/test - - dict/misspell/scripts/daily-popular-words/test - - dict/misspell/spellchecker/sre/spellchecker_stat - - dict/moria/nirvana/context/find_hypot_in_query - - dict/mt/analytics/make/modules/examples_quality/coverage/get_chunks - - dict/mt/analytics/programs/ocr/match_ocr_gt - - dict/mt/g2p/asr/decode_logits - - dict/mt/g2p/convert - - dict/mt/g2p/eval/tests - - dict/mt/make/db/content - - dict/mt/make/modules/filter/tests - - dict/mt/make/modules/util/tests - - dict/mt/make/modules/voc/tests_yql - - dict/mt/make/processes/gen_monitoring_graphs/update_status - - dict/mt/make/processes/gen_monitoring_graphs/update_status/reports - - dict/mt/make/processes/gen_monitoring_graphs/update_status/views - - dict/mt/make/tools/update_testsets - - dict/mt/mtdict/make/definitions/modules/extracts/get_extract_api - - dict/mt/mtdict/make/dictionary_polishing/polish - - dict/mt/mtdict/make/long_examples/tools/corpus_to_json - - dict/mt/mtdict/make/long_examples/utils - - dict/mt/mtdict/make/release/tools/prepare - - dict/mt/mtdict/make/translation_dictionary/modules/filters/filt_by_fixlist - - dict/mt/mtdict/make/translation_dictionary/modules/get_back_translations - - dict/mt/mtdict/make/translation_dictionary/modules/leave_best_entries - - dict/mt/mtdict/make/translation_dictionary/modules/lib - - dict/mt/mtdict/make/translation_dictionary/modules/write_dist - - dict/mt/oilrig/docs/tools/url_based/run_yql_query - - dict/mt/scripts/new_polishing/vh - - dict/mt/tools/align_words_with_translation_dictionary - - dict/mt/tools/rake_filter_yt/test - - dict/mt/tools/tensorboard_logs_to_wiki_table/json_to_wiki_table - - disk/admin/monitors/common - - disk/admin/monitors/duty_calls - - disk/tasklets/startrek/impl - - distribution_interface/backend/backend/artifacts - - distribution_interface/backend/backend/statistics - - distribution_interface/backend/backend/util - - distribution_interface/rtc_tools/unistat - - dj/services/alisa_skills/server/tests - - edadeal/analytics/scripts/SearchQueriesMetrics/SearchQueriesMetrics - - education/services/enigma/app/controllers/notify - - education/services/enigma/app/controllers/stands - - entity/quality/helix - - entity/quality/helix/acceptance/checks/accept - - entity/ugc/nirvana/digest/lib/py - - entity/ugc/robot/tools/reviews_to_saas/lib - - extsearch/audio/deepdive/tools/merge_tables/lib - - extsearch/audio/generative/py/common - - extsearch/audio/generative/py/uploader - - extsearch/audio/tools/yp_tools - - extsearch/goods/tools/runtime_cloud/report_config - - extsearch/images/ontosearch/robot/tools/update_db - - extsearch/images/robot/scripts/cm/semidup2 - - extsearch/images/tools/nirvana/collections_feed_toloka - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsFilms - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsSeries - - extsearch/video/robot/rt_transcoder/hls2dash/repack - - extsearch/video/vh/tape - - fintech/ci/utils/ya-infra-sync - - games/admin/background_modules - - games/admin/bin/fix_tool - - geobase/sql/patch/LIB-257.uk.dispute.lings/ling-viewer - - geosuggest/conveyors/top_rubrics/top_rubrics_config - - haas/cmis/capacity_limits_sync - - haas/cmis/eng_limits_sync - - health/turbo_articles/turbo_to_yt/lib/process_articles/sitelinks - - infra/awacs/vendor/blinovmatcher/tests - - infra/callisto/agent/utils - - infra/callisto/shardtool - - infra/clusterstate/libraries/resolver - - infra/clusterstate/services/alpha - - infra/clusterstate/services/hostinfo - - infra/clusterstate/services/psi - - infra/dctl/src/lib - - infra/dist/dmover/tests - - infra/kernel/test/misc/kern - - infra/logger - - infra/nanny/nanny_sox_audit/src/nanny_sox_audit - - infra/netconfig/bin/yandex-netconfig-tool - - infra/netconfig/lib - - infra/netmon/agent/agent - - infra/netmon/build_topology/lib - - infra/oops-agent/src/lib/modules - - infra/psiagent2/lite - - infra/psiagent2/src - - infra/qemu/lib/qemutool/qemutool/guest - - infra/qemu/vmexec - - infra/qyp/vmagent/src - - infra/reconf/util/handled/tests - - infra/reconf_juggler - - infra/rtc/juggler/bundle/checks/walle_hotfix - - infra/rtc/nodeinfo/lib/modules - - infra/rtc/packages/yandex-hbf-agent-monitoring/monitoring - - infra/shawshank/tests - - infra/swatlib - - infra/swatlib/rpc - - infra/walle/server/contrib/sepelib/yandex - - infra/ya_salt/cmd - - infra/ya_salt/lib - - infra/ya_salt/lib/output - - infra/ya_salt/lib/subprocutil - - infra/ya_salt/lib/tests - - infra/yasm/yasmapi - - infra/yasm/zoom/python/tests - - infra/yt/jobs/hpl_nccl_test - - infra/yt/lib/yt_ssh_swarm/hpl_tools - - intranet/plan/django-filter/django_filters - - intranet/plan/src/plan/staff - - keyboard/analytics/toloka/daemon/eval_taps - - keyboard/analytics/toloka/nirvana/blocks - - keyboard/android/libaml - - kikimr/tools/monitoring/tests - - kikimr/tools/sqs/performance/sqs_load - - kikimr/tools/storage_perf_reporter - - library/python/archive - - library/python/bstr - - library/python/cpp_test - - library/python/cqueue - - library/python/filelock/ut/lib - - library/python/python-blackboxer/blackboxer - - library/python/runtime_py3/test - - library/python/testing/yatest_common/yatest/common - - library/python/ylock/tests - - load/projects/tankapi_server/tankapi - - logbroker/tools/manual/dynconfig_tool - - logbroker/tools/manual/python_gzip_writer - - logbroker/tools/manual/test_read_unzip_compress_brotli - - logbroker/unified_agent/client/python/examples/ua_grpc_client - - logfeller/python/logfeller/infra/config - - logfeller/python/logfeller/util/misc - - logos/libs/clients/solomon - - logos/libs/md/parser - - logos/libs/viewy - - logos/libs/viewy/ut - - logos/projects/ads/tasks/bmcategory_queryage_coeffs - - logos/projects/ads/tasks/joined_profile_pytorch_log - - logos/projects/ads/tasks/tsar_pytorch_l1 - - logos/projects/ads/tasks/tsar_pytorch_log - - logos/projects/ads/tasks/yabar_torch_tensor - - logos/tools/mkdocs/plugin - - logos/tools/mkdocs/plugin/bin - - logos/tools/mkdocs/plugin/lib - - logos/tools/reactor_manager - - mail/contrib/ccs-caldavtester/verifiers - - mail/docker_tests/tests_common/pytest_bdd - - mail/docker_tests/tests_common/steps - - mail/pypg/pypg - - mail/tools/dbaas/bin/migrate_shards - - mail/transfer/ora2pg - - mail/transfer/ora2pg/tests - - mail/transfer/ora2pg/tools - - mapreduce/yt/unwrapper/ut - - maps/analytics/legacy/nile/statadhoc-13066-events-experiments-report - - maps/analyzer/pylibs/cachely/tests - - maps/analyzer/pylibs/test_tools - - maps/analyzer/pylibs/test_tools/tests - - maps/analyzer/sandbox/jams_level_prediction/prepare_history_storage/lib - - maps/analyzer/sandbox/masstransit/train_model/lib - - maps/analyzer/services/jams_external/pylib/tie_graph - - maps/analyzer/tools/mark_charts/bin - - maps/automotive/parking/tools/qa/stat_parking_detector - - maps/b2bgeo/libs/py_flask_utils - - maps/b2bgeo/mvrp_solver/backend/integration_tests/bin - - maps/b2bgeo/tools/vrp_load_testing - - maps/bizdir/sps/tools/rubrics_loader/lib/tests - - maps/garden/libs/search_data_validation/common/criteria - - maps/garden/modules/carparks/lib - - maps/geoq/hypotheses/lib - - maps/jams/tools/tie-xml-jams/tests/tie_upload_test - - maps/masstransit/statistics/info/gt_based_metrics/pylibs/matcher/lib - - maps/photos/backoffice/tools/make_reports - - maps/poi/personalized_poi/builder/lib - - maps/poi/statistics/impressions/renderer/merge_zooms - - maps/pylibs/blackbox/lib - - maps/pylibs/rtree/lib - - maps/pylibs/rtree/tests - - maps/pylibs/yt/lib - - maps/search/geocoder/segmenter/grammar/converter/lib - - maps/search/geocoder/segmenter/grammar/converter/tests - - maps/search/transit/basesearch/tests/blackbox - - maps/statistics/external/traffic_lights/geometry_lib - - maps/tools/matcher_quality/lib - - maps/tools/naviguide/tools/optimize_config/lib - - maps/tools/navimatcher_quality/lib - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki/tasks - - maps/wikimap/mapspro/libs/python/tests/export - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/matcher/pylibs - - market/analytics/market_search/ranking_formula/get_best_assessor_formula_threshold - - market/forecast/elasticity_common/data - - market/library/shiny/external/rps_limiter/scripts/generate_configs_for_rpslimiter_ui - - market/promocoordinator/tickets - - market/pylibrary/ytdumper/tests - - market/replenishment/algorithms/lib/common - - market/report/runtime_cloud/report_config - - market/robotics/ci/ymbot_ext_repo_mirroring/libs - - market/sre/library/python/graphite-client/graphite_client - - market/sre/tools/dpreparer/lib/sections - - market/sre/tools/hyperion-tools/yandex-market-hyp2yt/lib - - market/sre/tools/logradaptor/logradaptor - - market/sre/tools/logradaptor/tests - - market/sre/tools/sb-market-debuilder/sb_market_debuilder - - market/tools/async_publish_cli/lib - - mds/admin/library/python/sa_scripts - - mds/elliptics/bin/dnet_config_generator - - mds/mastermind/resizer/tests/analyze_utils - - ml/benchmark/lib/interface/helpers - - ml/dssm/dssm/swig/python/ut - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/libs/ml_data_reader/src/ml_data_reader/task/seq2seq - - ml/libs/ml_data_reader/src/ml_data_reader/tools - - ml/tensorflow/tfnn/src/tfnn/contrib - - ml/tensorflow/tfnn/src/tfnn/task/cls/tools - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/inference - - ml/tensorflow/tfnn/src/tfnn/task/seq2seq/tools - - ml/tensorflow/tfnn/tests - - ml/tensorflow/tfnn/tests/seq2seq - - ml/tensorflow/tfnn/tests/tools - - ml/zeliboba/spark_beyond/tools/convert_qa_results_to_sb_graph/tests - - mlp/overdraft/utils/solomka - - modadvert/test_utils_py3/compare - - mssngr/botfarm/src/logger - - mssngr/botplatform/src/bots/logger - - mssngr/router/tests/lib - - mssngr/router/tools/close_location - - mssngr/tools/tests - - noc/comocutor-contrib/comocutor_contrib - - noc/groppy/groppy - - noc/hbf-server/contrib/py-radix/radix - - noc/matilda/python/matilda-netdb - - noc/packages/mondata_server/cmd/linkator3 - - noc/packages/mondata_server/mondata/lib - - noc/packages/mondata_server/monitoring/zabbix/server_scripts - - noc/rtapi - - noc/snmpd-plug - - ofd/api/manage/backend_data - - opensource/sync/bin/pr_ch/tasklet - - passport/backend/logbroker_client/mail_unsubscriptions/tests - - passport/backend/utils - - passport/backend/vault/api/errors - - passport/backend/vault/api/utils - - passport/backend/vault/cli/yav_deploy/vault_client_deploy - - payplatform/nirvana/send_juggler_raw_events - - payplatform/spirit/match_receipts/lib/datatables - - quality/antifraud/analytics/Mami/Mami - - quality/antifraud/analytics/sessionsviewer_period - - quality/antifraud/xurma/tools/prebilling_stat_copier/lib - - quality/functionality/chats/feedback/src/feedback/core/models - - quality/functionality/chats/feedback/src/feedback/dialogs/cron_jobs/yt - - quality/functionality/dialogs/url_transcriptions/scripts/check_domains - - quality/functionality/entity_search/factqueries/scripts/factchecklib - - quality/functionality/parsepl/scripts/convert_market - - quality/functionality/scripts/psuh/PushStatsLib/PushStatsLib - - quality/functionality/snippets/image_snippet/check_experiment/lib - - quality/functionality/snippets/image_snippet/check_thumbs/lib/nirvana - - quality/functionality/snippets/image_snippet/database/apply_clf_catboost/tests - - quality/functionality/snippets/image_snippet/database/prepare_trie/tests - - quality/functionality/snippets/specsnippet_antiwizard - - quality/functionality/turbo/autoparser/new_autoparser/model/lib - - quality/functionality/turbo/rss/common/python/yt_replicate/lib - - quality/logs/mousetrack_lib/python/tests - - quality/mstand_metrics/online_production/surplus_search/dev - - quality/mstand_metrics/online_production/surplus_search/v9 - - quality/mstand_metrics/online_production/surplus_search/v9_1 - - quality/mstand_metrics/users/z8n-f/v8 - - quality/neural_net/bert/bert/build_vocab - - quality/neural_net/bert/bert/models/split - - quality/neural_net/bert/bert/pytorch/nvidia - - quality/neural_net/bert/bert/pytorch/utils - - quality/neural_net/bert/bert/row_processors/finetune - - quality/neural_net/bert/bert/utils/hooks - - quality/neural_net/bert/tools/autobert/autobert_2/library/common/yql - - quality/neural_net/bert/tools/autobert/lib - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/process_ab_result - - quality/nirvana_tools/conveyor_operations/asgen/config - - quality/nirvana_tools/conveyor_operations/asgen/lib - - quality/nirvana_tools/conveyor_operations/asgen/process_daily_batch - - quality/nirvana_tools/conveyor_operations/bert/common - - quality/nirvana_tools/conveyor_operations/get_prod_formula - - quality/nirvana_tools/conveyor_operations/lib - - quality/nirvana_tools/conveyor_operations/meta_formula/append_formula_factors - - quality/nirvana_tools/conveyor_operations/meta_formula/lib - - quality/nirvana_tools/conveyor_operations/nirvana_mlm_serps/lib/tests - - quality/nirvana_tools/conveyor_operations/parse_web_dump/lib - - quality/nirvana_tools/conveyor_operations/stove_tools/make_formulas_multigrid_opt_bundle - - quality/nirvana_tools/conveyor_operations/train_dssm/api/api - - quality/nirvana_tools/nirvana_operation - - quality/nirvana_tools/nirvana_operation/tests - - quality/nirvana_tools/nirvana_operation/updater - - quality/query_expansions/proc/quality_checker/tests - - quality/relev_tools/mx_ops/tests/small - - quality/relev_tools/url_canonize/gemini_impl/tests - - quality/relev_tools/url_canonize/jupiter_impl/hahn_test - - quality/relev_tools/url_canonize/mr_mirrors_lib_impl/tests - - quality/relev_tools/url_canonize/tests - - quality/trailer/suggest/infix_for_toloka - - quality/trailer/suggest/services/maps/conveyors/pool/make_pointwise_pool - - quality/trailer/suggest/services/maps/scripts-sandbox/geo/converter - - quality/trailer/suggest/services/maps/scripts-sandbox/org/sprav_lang - - quality/trailer/suggest/services/maps/tools/personalization/ydisk_import/fix_address_lines - - quality/trailer/suggest/services/maps/tools/qloss/make_qloss_pool_from_geocube - - quality/trailer/suggest/services/maps/tools/qloss/request_magnifier - - quality/trailer/suggest/services/maps/tools/retrieval_test - - quality/user_search/scripts - - quality/webfresh/metrics/dsat/make_dsat_toloka_pool - - quasar/infra/tasklets/group_maintenance/impl - - quasar/infra/tasklets/remove_promotags_from_devices_in_device_subscription/impl - - quasar/manifest_scripts/manifestlib - - robot/fast_ban/parse_logs - - robot/jupiter/library/python/jupiter_util - - robot/jupiter/tools/quality_acceptance - - robot/library/yuppie/modules - - robot/metrics/social_sbr/get_langs - - robot/mirror/viewer/utils - - robot/quality/robotrank/mk_learn_pool - - robot/quality/segmentator - - robot/quality/tools/ysclid_checker/compare_results - - robot/salmon_agent/counters - - robot/selectionrank/prepare_sr_pool - - robot/selectionrank/sr_retrieve_test_pool - - robot/selectionrank/sr_rules_comparator_util/plot_on_positives - - robot/selectionrank/sr_rules_comparator_util/yt_rule_distribution - - robot/selectionrank/upload_test_urls - - saas/library/python/nanny_rest - - saas/library/python/puncher - - saas/library/python/saas_slot - - saas/tools/ssm/modules - - sandbox/client/platforms - - sandbox/deploy - - sandbox/deploy/utils - - sandbox/projects/AutocheckStatistics - - sandbox/projects/BuildMapsGeoStaticFactors - - sandbox/projects/BuildMapsStaticFactorsDownloader - - sandbox/projects/BuildRtyServer - - sandbox/projects/CompareMRTables - - sandbox/projects/CompareQlossOutputs - - sandbox/projects/MultiMediaRTMRMonitor - - sandbox/projects/OrgSocialLinks/org_events_filter - - sandbox/projects/PublishNewsArchive - - sandbox/projects/TestLemureVintage - - sandbox/projects/TestLemureVintageCompare - - sandbox/projects/TestRTYServerManage - - sandbox/projects/TestRTYServerTask - - sandbox/projects/TestRTYServerUnit - - sandbox/projects/TestSitaUnit - - sandbox/projects/UpdateSvnResourcesForGeoTests - - sandbox/projects/UserBrowseUpdateDataRun - - sandbox/projects/UserSearchUpdateDataRun - - sandbox/projects/WebResultSchemaCheckerBase - - sandbox/projects/WizardRuntimeBuild - - sandbox/projects/WizardRuntimeBuild/ya_make - - sandbox/projects/WoodyImageTest - - sandbox/projects/YQLCronTNSUidCollect - - sandbox/projects/adfox/release/AdfoxServerCompareConfiguration - - sandbox/projects/broadmatching - - sandbox/projects/bsyeti/do_cleanup - - sandbox/projects/bsyeti/make_bigb_ab_experiment_config - - sandbox/projects/bsyeti/make_bigb_test_data - - sandbox/projects/bsyeti/make_caesar_bases - - sandbox/projects/bsyeti/make_geo_permalink_dict - - sandbox/projects/bsyeti/make_idf_counters_base - - sandbox/projects/bsyeti/make_sampled_catalogia_queries - - sandbox/projects/bsyeti/make_sovetnik_dict - - sandbox/projects/bsyeti/make_visithistory_log - - sandbox/projects/bsyeti/mkdb - - sandbox/projects/bsyeti/update_solomon_juggler_alerts_and_dashboards - - sandbox/projects/clickhouse/ClickhouseBuildLauncher - - sandbox/projects/clickhouse/ClickhouseBuilder - - sandbox/projects/clickhouse/ClickhousePullRequestPatcher - - sandbox/projects/clickhouse/ClickhousePullRequestTrigger - - sandbox/projects/clickhouse/ClickhouseRepoCloner - - sandbox/projects/clickhouse/util - - sandbox/projects/dbd/commons - - sandbox/projects/devops/UpdateGoals - - sandbox/projects/devtools/VSCodePlugin - - sandbox/projects/factorization/FactorizationAlsLocal - - sandbox/projects/factorization/FactorizationAlsYt - - sandbox/projects/factorization/FactorizationDownload - - sandbox/projects/factorization/FactorizationUpload - - sandbox/projects/fastbuild/execute - - sandbox/projects/fastbuild/utils/shell - - sandbox/projects/geosearch/BuildMapsDebugExtension - - sandbox/projects/geosearch/ToponymAfishaEventsSnippets - - sandbox/projects/geosearch/ToponymBestCompaniesSnippets - - sandbox/projects/geosearch/UploadEdaWizards/FilterEdaUrls - - sandbox/projects/hbf/ssh_exception_generator - - sandbox/projects/images/daemons/ImagesGetCbirdaemon2Responses - - sandbox/projects/irt/common - - sandbox/projects/kaleda/FindSecBugsAnalyzer - - sandbox/projects/mssngr/rtc - - sandbox/projects/mssngr/rtc/RtcLogSupport - - sandbox/projects/mssngr/runtime/MssngrRouterLoadTest - - sandbox/projects/nanny/TouchSandboxResources - - sandbox/projects/news/CompareNewsAnnotatorResponses - - sandbox/projects/news/DownloadAdvWidgetClientsTable - - sandbox/projects/news/GenNewsGoalsReport - - sandbox/projects/news/PublishNewsArchiveV2 - - sandbox/projects/partner/tasks/redeploy_stage - - sandbox/projects/quasar/station_factory/services_build - - sandbox/projects/quasar/utils - - sandbox/projects/rpslimiter/UpdateRpsLimiterAlerts - - sandbox/projects/rtcc/news_beta_configs - - sandbox/projects/scraper_over_yt/ScraperOverYtTestManager - - sandbox/projects/sdc/common_tasks - - sandbox/projects/serp_wizards/TestBegemotFreshDifference - - sandbox/projects/websearch/CalcEventlogStats - - sandbox/projects/wmc/CheckTankerUrls - - sandbox/projects/wmc/CreateTankerTicket - - sandbox/projects/yabs/advmon/incident - - sandbox/projects/yabs/base_differ - - sandbox/projects/yabs/partner_share/integratest - - sandbox/projects/yabs/partner_share/lib/integratest - - sandbox/projects/yabs/partner_share/supervisor - - sandbox/projects/yabs/qa/compare - - sandbox/projects/yabs/release/binary_search - - sandbox/projects/yabs/sbyt/adfox_rich_log_event_table_cleanup - - sandbox/projects/yabs/ssp/YabsServerSspAnsible - - sandbox/projects/yane/TotalLearn - - sandbox/services/modules/update_robot_owners - - sandbox/yasandbox/proxy - - sdg/labeling/common - - sdg/rtlogs/rtlogsb/monitoring - - search/begemot/rules/thesaurus/lib/tools/arcinfo/tests - - search/geo/tools/afisha/toponym_snippet_builder - - search/geo/tools/personal_pois/lib - - search/geo/tools/production/downloader - - search/geo/tools/task_manager/generators/service_orgs/build_snippet - - search/geo/tools/task_manager/system - - search/metrics/metrics_dumper - - search/mon/bot/bot - - search/mon/bot/bot/modules - - search/mon/bot/bot/modules/protocols - - search/mon/bot/bot/modules/protocols/chats - - search/mon/bot/bot/modules/protocols/escalations - - search/mon/bot/bot/modules/taxi - - search/mon/curators_helper - - search/mon/tasklets/stability_goal_linker/src - - search/morty/src/model - - search/morty/src/model/crawlers - - search/morty/src/rviewer - - search/plutonium/admin/web - - search/tools/devops/diff_topology - - search/tools/devops/l7heavy - - search/tools/sepe/apphost_pie - - search/tools/setrace/src/setrace/lib - - search/tools/setrace/src/setrace/models - - search/tools/setrace/src/setrace/web/controllers/ui - - search/tools/woland/lib - - serp/renderer/tasklets/arc_commit_renderer_backends/impl - - sport/backend/sport/projects/cybersport - - sport/backend/sport/projects/football - - sport/backend/sport/projects/hockey/fetch_gns - - sport/backend/sport/projects/time_judge - - sport/backend/sport/sport - - sport/backend/sport/translations - - sprav/assay/ml_queue_prepare - - sprav/fast_features/drugs/model/match - - sprav/feature_vault/tests/test - - statbox/bindings/tdigest/tests/common - - statbox/nile/tests/cluster - - statbox/qb2_core/tests/common - - statbox/statkey/reactor/cubes/banners/v1/main - - strm/channel_tumbler/juggler/checks/channel_tumbler_channels - - strm/generate/lib/parser - - strm/tools/links_metrics/lib - - sup/ml/super_graph/read_config - - taxi/antifraud/purga/automation/arbitrage/close - - taxi/antifraud/purga/automation/arbitrage/create - - taxi/eda/eda_analytics/utility - - testenv/core/engine/metatests - - tools/base64 - - tools/mkdocs_builder/mkdocs_yandex/mkdocs_yandex - - tools/mkdocs_builder/mkdocs_yandex/mkdocs_yandex/ext/markdown - - tools/python-netconfig-static/src/interfaces - - tools/python-netconfig-static/src/interfaces/generators - - tools/ygetparam/ygetparam_modules/etcd - - tracker/scripts/jira_to_tracker - - travel/avia/avia_api/avia/api - - travel/avia/avia_api/avia/v1/views - - travel/avia/country_restrictions/lib/types - - travel/avia/library/python/common/utils - - travel/avia/library/python/common/utils/bemhtml - - travel/avia/library/python/tester - - travel/avia/price_index/bin/indexer/health_check_server - - travel/avia/ticket_daemon_processing/server - - travel/hotels/feeders/lib - - travel/hotels/feeders/partners/expedia/lib - - travel/hotels/feeders/scripts/update_altay_configs - - travel/hotels/tools/dataset_curator - - travel/rasp/info_center/info_center/views - - travel/rasp/suggests_tasks/suggests - - travel/rasp/wizards/wizard_lib/tests/utils - - travel/rasp/wizards/wizard_lib/utils - - trust/scheduler/tests/pytest - - util/tests/sym_versions - - vcs/bitbucket/log_parser - - vcs/github/ext_api - - vcs/github/log_parser - - vcs/inv - - vcs/svn/commit_message - - voicetech/asr/pipeline/partials_classifier/train/find_catboost_threshold - - voicetech/asr/tools/l2eou_train_helpers/eventsink_dir_to_trainset - - voicetech/asr/tools/metrics/lib - - voicetech/asr/tools/view_dataset_stats - - voicetech/infra/net_stat - - voicetech/spotter/junk/command_spotter_tools/filterout_ali - - voicetech/tts/training - - voicetech/tts/training/hifi_gan - - voicetech/tts/training/waveglow - - voicetech/tts/vh/train_normalizer/utils - - voicetech/vqe/experiments/dalas - - voicetech/vqe/pylibs/metrics/cosine - - voicetech/vqe/pylibs/metrics/srmr - - weather/libs/metrics - - weather/ml/misc/npz_to_flat_extractor - - weather/utils/clean_deps - - weather/utils/noaa_archive - - weather/workers/common/clean_satellite/utils - - weather/workers/exports/yt/grid/acc_prec - - web/daemons/begemot/scripts/automatic_degrade_levels/automatic_degrade_levels - - web/daemons/begemot/scripts/automatic_degrade_levels/cli - - web/daemons/begemot/scripts/evlogfetch/backend - - web/daemons/begemot/scripts/nanny_tidiness/tests - - yabs/analytics/anomaly_analyzer/src - - yabs/analytics/bezza_bot/yoy_summary/daily - - yabs/analytics/bezza_bot/yoy_summary/evening - - yabs/analytics/bezza_bot/yoy_summary/morning - - yabs/autobudget/ml/monitor_direct_reports - - yabs/autobudget/ml/utils/apply_vw - - yabs/chat_bot/bot - - yabs/poormansprofiler/flames/lib - - yabs/qa/dbdownload - - yabs/qa/oneshots/getsiu/BSDEV-76117/create_constant - - yabs/qa/oneshots/getsiu/BSDEV-76117/delete_constant - - yabs/sb-bins/tasksmon - - yabs/server/cs/pylibs/base_gen - - yabs/server/cs/pylibs/decimator - - yabs/server/cs/pylibs/pipeline/test - - yabs/server/cs/pylibs/solomon - - yabs/server/cs/tools/shepherd - - yabs/server/infra/transport - - yabs/server/libs/internal_ver/py_parser/lib - - yabs/server/test/ft/BSSERVER-10571 - - yabs/server/test/ft/BSSERVER-21855 - - yabs/server/test/ft/BSSERVER-22790 - - yabs/server/test/ft/BSSERVER-2454 - - yabs/server/test/ft/BSSERVER-4005 - - yabs/server/test/ft/BSSERVER-4506 - - yabs/server/test/ft/BSSERVER-4669 - - yabs/server/test/ft/BSSERVER-587 - - yabs/server/test/ft/ads_adfox/monitoring - - yabs/server/test/lib - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/tools/grapholomon - - yabs/solo_yabscs/registry/dashboard - - yabs/stat/url_monitoring2/lib - - yabs/utils/yabs_duty_scheduler/lib - - yabs/vh/cms-pgaas/db-resource-cleaner/biz - - yabs/vh/frontend/test/vh_pytest - - ydo/devops/monitorings/analyze_scripts/analyze_duty_problems - - ydo/devops/monitorings/analyze_scripts/analyze_spw - - ydo/erp/database/lib - - ydo/erp/database/tests - - ydo/libs/apphost_source/test - - ydo/libs/direct - - ydo/libs/geobuf - - ydo/tools/avatars_cleaner/recover_photo - - ydo/tools/bb - - ydo/tools/dispatch/draw_distance_grid - - ydo/tools/dispatch/draw_virtual_workers - - ydo/tools/proxy_phones/call_tracking/lib - - yql/library/test_framework - - yql/tests/cli - - ysite/yandex/pers/feat/scripts - - yt/admin/hwinfo/src/hwinfo - - yt/cron/yp_scheduler_monitor/bin - - yt/cron/yp_virtual_services - - yt/yt/scripts/find_stuck_missing_part_chunks_cause - - yweb/antimalware/libs/yqltools - - yweb/antimalware/mitb/csp_monitor - - yweb/antiporno/cp_conv/prepare_suggestive_cp_img_basket - - yweb/antiporno/cp_conv/text_classif/bin - - yweb/antiporno/filter_suggest/lib - - yweb/antiporno/illegal_video - - yweb/antiporno/metasearch_fixlists/svn_fixes - - yweb/antiporno/nav/gen_cb_pool - - yweb/antiporno/nav/lib - - yweb/antiporno/nirvana/operations/config_updater - - yweb/antiporno/porn_advert/apply_cb_over_danet/bin - - yweb/antiporno/pyutil/draft/simple_yt - - yweb/antiporno/queries_manual_markup/lib - - yweb/antiporno/scandal_requests/scandal_requests_extractor/src/text_model - - yweb/antiporno/scandal_requests/scandal_requests_extractor_dc/src/text_model - - yweb/antiporno/site_reachability/lib/botanik/tests/medium - - yweb/antiporno/site_reachability/lib/export/video/tests/small - - yweb/antiporno/text_classif/lib/model - - yweb/antiporno/text_classif/lib/text_processing - - yweb/antiporno/top_porn_hosts_bno/src/download_images - - yweb/antispam/adblock/tools/ab2cd - - yweb/antispam/arknight/arknight_tool - - yweb/antispam/cid/library/tests - - yweb/antispam/clean_web/clients/collections/lib - - yweb/antispam/clean_web/clients/ugc/lib - - yweb/antispam/clean_web/lib - - yweb/antispam/clean_web/lib/module - - yweb/antispam/clean_web/router/lib - - yweb/antispam/clean_web/tools/hitrobot_content_check/hydra_casino_check - - yweb/antispam/common/python - - yweb/antispam/tmu/scripts - - yweb/blender/extfactors/tests - - yweb/blender/queries_classification/score_serps - - yweb/blender/scripts/blender_viewer/blender_viewer - - yweb/dups/dmetric_nanny/bin - - yweb/news/scripts/lib/python/ynews - - yweb/news/scripts/lib/python/ynews/rating - - yweb/news/tools/storage_completeness/meta_vs_docinfo - - yweb/robot/limbo/libs - - yweb/robot/ukrop/nirvana_tools/join_factors_to_pool - - yweb/robot/ukrop/nirvana_tools/prepare_mrpool - - yweb/safesearch/government/python - - yweb/scripts/datascripts/common - - yweb/scripts/datascripts/map_reduce - - yweb/scripts/datascripts/runnerLib - - yweb/sitelinks/astrolabe/migration/tests - - yweb/sitelinks/scripts/sitelinks - - yweb/webscripts/video/metarobot/parsepage/python - - yweb/yasap/answers_quality/plagiarism/auto_detector - - yweb/yasap/pdb/tools/suggest - - yweb/yasap/znatoki/znatoki_ctl/lib/utils - - yweb/yasap/znatoki/znatoki_ctl/migrations - - zootopia/analytics/ml/join_features/lib - F401: - ignore: - - F401 - prefixes: - - ads/bigkv/tensor_transport/lib - - ads/emily/storage/libs/clients/mysql - - ads/emily/storage/libs/clients/nirvana - - ads/emily/storage/libs/ml_engine_converter/converter/ml_engine - - ads/emily/storage/libs/ml_engine_converter/processors/disk - - ads/emily/storage/libs/ml_engine_converter/processors/mapreduce - - ads/emily/storage/libs/ml_engine_converter/processors/sandbox - - ads/emily/storage/libs/monitor - - ads/emily/storage/libs/monitor/tests/lib - - ads/emily/storage/libs/transports/tensor - - ads/emily/storage/libs/transports/tensor/ut/lib - - ads/emily/storage/models/client - - ads/emily/storage/models/tsars/lib - - ads/emily/storage/scripts/get_prod_models - - ads/emily/storage/scripts/last_version_status - - ads/emily/storage/transport/indexer/validators/catboost - - ads/emily/storage/transport/indexer/validators/lib - - ads/emily/storage/transport/yt_loader/bin - - ads/libs/py_yt_as_cache - - ads/libs/tenfifty - - ads/libs/yql/conftest - - ads/pytorch/lib/online_learning/preprocess - - apphost/conf/tests/horizon/scripts/update_white_list - - apphost/daemons/horizon/src/agent - - apphost/daemons/horizon/src/agent/transport - - apphost/daemons/horizon/src/server/services - - apphost/daemons/horizon/tests/daytower - - apphost/daemons/horizon/tests/import - - apphost/lib/data_validation/src/common - - apphost/lib/data_validation/tests/validators - - april/lib/py/exceller/exceller - - april/lib/py/exceller/exceller/formatting - - april/multik/accessories/banners_hashing - - april/multik/accessories/classification - - april/multik/accessories/neighbors_filtration - - april/multik/accessories/patch_evaluation - - april/multik/accessories/resources/index_building - - april/multik/accessories/resources/resource_extraction - - april/multik/accessories/upload_classifier_to_yt - - april/multik/stand/classifier_builder - - april/multik/stand/import_banners - - autobudget/bidder/testlib/fasttestlib - - cloud/dwh/lms/hooks - - cloud/mdb/dbaas-internal-api-image/dbaas_internal_api/utils - - contrib/python/hyperlink/hyperlink/test - - cv/imgclassifiers/utils/python/yt_attributes - - datalens/backend/app/bi_materializer/bi_materializer/tasks - - devtools/ya/core/yarg - - devtools/ya/exts - - devtools/ya/yalibrary/debug_store/processor - - devtools/ya/yalibrary/debug_store/tests - - devtools/ya/yalibrary/ggaas/builders - - devtools/ya/yalibrary/ggaas/graph_parser - - devtools/ya/yalibrary/ggaas/interface - - devtools/ya/yalibrary/ggaas/sandbox - - devtools/ya/yalibrary/ggaas/tests/_conftest - - devtools/ya/yalibrary/ggaas/worker - - devtools/ya/yalibrary/platform_matcher - - devtools/ya/yalibrary/resource_autoupdater - - devtools/ya/yalibrary/ya_helper/common - - devtools/ya/yalibrary/ya_helper/ya_utils - - dict/mt/analytics/mr_metrics/lib/stages - - dict/mt/analytics/mr_metrics/lib/util - - dict/mt/analytics/mr_metrics/lib/util/ut - - dict/mt/analytics/mr_metrics/lib/util/yt - - dict/mt/analytics/mr_metrics/lib/util/yt/ut - - dict/mt/analytics/mr_metrics/reducer - - dict/mt/analytics/mr_metrics/retention - - dict/mt/analytics/mr_metrics/retention/ut - - dict/mt/analytics/mr_metrics/web/bin/aggr - - dict/mt/analytics/mr_metrics/web/lib/session_reducer - - dict/mt/analytics/mr_metrics/web/metrics/dom_js_autogenerated/reducer - - dict/mt/analytics/mr_metrics/web/metrics/elements/reducer - - dict/mt/analytics/mr_metrics/web/metrics/google_clicks/reducer - - dict/mt/analytics/mr_metrics/web/metrics/sensitivity_test/reducer - - dict/mt/analytics/mr_metrics/web/metrics/session_properties/reducer - - dict/mt/analytics/mr_metrics/web/metrics/simple_session/reducer - - dict/mt/libs/python/levenshtein - - dict/mt/video/lib/vt_requests/cli - - dict/mt/video/tools/browser_queue_handler - - education/english/lib/metric_exporter/src - - extsearch/audio/generative/ableton_api_client/contrib/aiolo - - extsearch/video/robot/library/py2/yt_utils/get_portion - - extsearch/video/robot/library/py2/yt_utils/get_portion/algorithms - - extsearch/video/robot/library/py3/yt_utils/get_portion - - extsearch/video/robot/library/py3/yt_utils/get_portion/algorithms - - geoproduct/amocrm/utils - - geotargeting/common/crypta_ids_matching/bin - - infra/cauth/server/master/importers/servers - - infra/skybone-coord/src - - intranet/forms/src/events/surveyme - - intranet/idm_backend/src/idm/core/tasks - - intranet/idm_backend/tests/models/services - - intranet/wiki/src/wiki/sync/staff/mapping - - intranet/wiki/src/wiki/utils/ylock_redis - - irt/bannerland/freshness_monitor - - irt/bmgen/catalogia_campaigns - - irt/bmgen/market_data - - irt/bmgen/norm_and_wordcount_dicts - - irt/bmgen/synonyms - - irt/bmgen/wordforms - - irt/common/conftest - - irt/common/counterdict - - irt/common/geobase - - irt/common/proto_utils - - irt/common/serialization_protocol - - irt/common/yt - - irt/iron/options - - irt/multik/caesar/diff - - irt/multik/caesar/tools/classify - - irt/multik/training/indexes - - irt/multik/training/indexes/nirvana - - irt/multik/training/metrics - - irt/multik/training/optimization - - irt/multik/training/optimization/nirvana - - k50/shopping/src/server/tests/unit/services/external/k50/cabinet - - k50/shopping/src/server/tests/unit/services/feed_extractor - - k50/shopping/src/server/tests/unit/views/api/internal/v1_0_0 - - k50/shopping/src/server/tests/utils - - library/python/errorboosterclient/errorboosterclient - - load/projects/netort/netort/data_manager - - logos/libs/approx - - logos/libs/attributes - - logos/libs/clean - - logos/libs/clients - - logos/libs/clients/nile - - logos/libs/clients/pulsar - - logos/libs/clients/sandbox/lib - - logos/libs/clients/solomon - - logos/libs/clients/solomon/ut - - logos/libs/clients/statface - - logos/libs/clients/statface/ut - - logos/libs/cmd - - logos/libs/conf - - logos/libs/conf/enums - - logos/libs/config - - logos/libs/core - - logos/libs/core/test_utils - - logos/libs/core/ut - - logos/libs/deploy - - logos/libs/differs - - logos/libs/differs/docy_differs - - logos/libs/docy - - logos/libs/logtype - - logos/libs/logtype/settings - - logos/libs/md/descriptor - - logos/libs/md/watcher/lib/api/solomon - - logos/libs/monitoring - - logos/libs/monitoring_tools - - logos/libs/monitoring_tools/delay/base - - logos/libs/monitoring_tools/delay/computed - - logos/libs/monitoring_tools/delay/realtime - - logos/libs/monitoring_tools/reactor_traversal - - logos/libs/monitoring_tools/runner - - logos/libs/monitoring_tools/ut - - logos/libs/precommit_validators - - logos/libs/precommit_validators/bin - - logos/libs/reactor_runner - - logos/libs/reactor_runner/mt - - logos/libs/reactor_runner/orm - - logos/libs/reactor_runner/ut - - logos/libs/reactor_runner/ut/lib - - logos/libs/samplers - - logos/libs/task_palette/publish_task - - logos/libs/task_palette/sample_log - - logos/libs/testy/core - - logos/libs/testy/graph_wrapper - - logos/libs/testy/graph_wrapper/ut - - logos/libs/testy/task_wrapper - - logos/libs/uty - - logos/libs/viewy - - logos/libs/yt_move - - logos/projects/ads/tasks/banner_to_texts - - logos/projects/ads/tasks/tsar_pytorch_bko_pclick - - logos/projects/ads_cuda/graph - - logos/projects/datacatalog/graph - - logos/projects/money_dwh/tasks/acts_details - - logos/projects/money_dwh/tasks/bs_chevent_cooked_log/builder - - logos/projects/money_dwh/tasks/bs_chevent_cooked_log/slave - - logos/projects/money_dwh/tasks/bs_chevent_cooked_log/sorter - - logos/projects/money_dwh/tasks/bs_dsp_cooked_log/builder - - logos/projects/money_dwh/tasks/event_money_direct_v5_sorted_merger - - logos/projects/money_dwh/tasks/event_money_geo_value_updater - - logos/projects/mstat_dwh_delivery/graph - - logos/projects/statkey_py3/tasks/metamerger/tasks/merger_base_task - - logos/projects/statkey_py3/tasks/metamerger/tools - - logos/projects/statkey_py3/tasks/money_allocations_merger/v1 - - logos/projects/statkey_py3/tasks/services/gen_sample - - logos/projects/zen/graph - - logos/tests/graph/lib - - logos/tests/task/lib - - logos/tools/mkdocs/plugin - - logos/tools/mkdocs/plugin/lib - - logos/tools/mkdocs/plugin/lib/plugins/tsar - - logos/web/yagraph/Backend/app/db - - mail/transfer/ora2pg - - market/idx/datacamp/parser/lib/parser_engine - - market/idx/datacamp/parser/yatf - - market/idx/datacamp/routines/lib/blueprints - - market/idx/datacamp/routines/lib/monitorings - - market/idx/datacamp/routines/lib/tasks - - market/pylibrary/market_access - - market/sre/juggler/bundles/checks/disk_free_space/lib - - market/sre/services/logkeeper_web/web - - market/sre/tools/marketsre_cli/commands/nanny - - modadvert/libs/text_query_matcher - - mssngr/botplatform/src/bots/api - - mssngr/botplatform/src/bots/pusher - - passport/backend/tools/passport_api_reporter/timings - - payplatform/spirit/match_receipts/ut - - paysys/sre/tools/monitorings/configs/balance_app/base - - quality/antifraud/xurma/tools/dump_restore/lib - - release_machine/tasklets/ab_tests/configure_ab_experiments_tests/utils - - release_machine/tasklets/common/mixins - - repo/pciexpress/dumper/resolver - - rt-research/bannerland/lib - - rt-research/broadmatching/scripts/yt/dyn-sources/generate_dse_banners/geofilter - - rt-research/common/pylib/utils - - rt-research/monitoring/atoms/config - - rt-research/monitoring/juggler/sync_checks - - saas/tools/devops/bumble_tool - - sandbox/projects/ads/emily/storage/client/binary - - sandbox/projects/mobile_apps/teamcity_sandbox_runner/runner - - sandbox/projects/music/deployment/MusicFrontBuild - - sandbox/projects/music/deployment/MusicRestoreMdb - - sandbox/projects/music/deployment/helpers - - sandbox/projects/quasar/check_release_status/lib - - sandbox/projects/quasar/check_release_status/lib/validate - - sandbox/projects/release_machine/components/configs - - sandbox/projects/release_machine/helpers/deploy - - sandbox/projects/release_machine/helpers/responsibility_helper - - sandbox/projects/release_machine/table_formatter - - search/mon/bot/bot/modules - - search/mon/bot/bot/modules/protocols - - search/mon/bot/bot/modules/protocols/chats - - search/mon/tickenator_on_db/src/services - - search/mon/uchenki/lib/clients - - search/mon/uchenki/lib/jobs - - search/priemka/yappy/src/model/lineage2_service - - search/priemka/yappy/src/model/lineage2_service/event_reducer - - search/priemka/yappy/src/model/model_service/workers - - search/priemka/yappy/src/processor - - search/priemka/yappy/src/scheduler - - search/priemka/yappy/src/yappy_lib - - search/priemka/yappy/src/yappy_lib/queue - - search/priemka/yappy/tests/test_model - - search/priemka/yappy/tests/test_processor - - search/priemka/yappy/tests/test_scheduler - - search/priemka/yappy/tests/test_translator - - search/priemka/yappy/tests/test_yappy_lib - - search/priemka/yappy/tests/test_yappy_lib/test_queue - - search/priemka/yappy/tests/utils - - security/yaseclib/yaseclib - - smb/alpaca/users/client/lib - - smb/common/pgswim/lib/engine - - smb/common/testing_utils - - stability/lib/python/yp_lite/src - - tasklet/v1/services/ci - - tasklet/v1/runtime/context - - travel/avia/api_gateway/application - - travel/avia/api_gateway/application/fetcher - - travel/avia/api_gateway/application/fetcher/city_to_landing - - travel/avia/api_gateway/application/fetcher/country_restrictions - - travel/avia/api_gateway/application/fetcher/flight_landing - - travel/avia/api_gateway/application/fetcher/is_possible_trip - - travel/avia/api_gateway/application/fetcher/personal_search - - travel/avia/api_gateway/application/fetcher/route_landing - - travel/avia/api_gateway/application/fetcher/slugs - - travel/avia/api_gateway/application/utils - - travel/avia/api_gateway/lib/landings - - travel/avia/avia_statistics/alternative_routes_prices_updater/lib - - travel/avia/avia_statistics/flights_updater/lib - - travel/avia/avia_statistics/landing_cities - - travel/avia/avia_statistics/landing_routes - - travel/avia/avia_statistics/lib - - travel/avia/avia_statistics/median_prices_updater/lib - - travel/avia/avia_statistics/min_prices_by_airline_updater/lib - - travel/avia/avia_statistics/popular_months_by_route_updater/lib - - travel/avia/avia_statistics/return_ticket_prices_updater/lib - - travel/avia/avia_statistics/route_crosslinks_updater/lib - - travel/avia/avia_statistics/route_infos_updater/lib - - travel/avia/avia_statistics/routes_updater/lib - - travel/avia/avia_statistics/top_airlines_updater/lib - - travel/avia/avia_statistics/updaters/city_to/city_route_crosslinks_updater/lib - - travel/avia/avia_statistics/updaters/city_to/month_and_year_prices_by_city_to_updater/lib - - travel/avia/flight_extras/application - - travel/avia/flight_extras/application/library - - travel/avia/flight_extras/application/service - - travel/avia/flight_extras/tests/handlers - - travel/avia/flight_status_registrar/lib - - travel/avia/flight_status_registrar/variflight/lib - - travel/avia/library/python/lib_yt - - travel/avia/library/python/proxy_pool - - travel/avia/library/python/sandbox - - travel/avia/library/python/shared_flights_client - - travel/avia/library/python/sirena_client - - travel/avia/library/python/ticket_daemon/caches/operating_flights - - travel/avia/library/python/ticket_daemon/memo - - travel/avia/library/python/ticket_daemon/ydb/banned_variants - - travel/avia/library/python/urls - - travel/avia/personalization/hotels_reference - - travel/avia/price_index/bin/dump_to_yt/dumper - - travel/avia/price_index/bin/indexer - - travel/avia/price_index/lib - - travel/avia/price_index/lib/db - - travel/avia/price_index/lib/indexer - - travel/avia/price_index/lib/indexer/index_builder - - travel/avia/price_index/lib/price_searchers - - travel/avia/price_index/lib/query_searcher - - travel/avia/price_index/lib/search_results_queue_consumer - - travel/avia/price_index/models - - travel/avia/price_index/views - - travel/avia/revise/partners - - travel/avia/revise/utils - - travel/avia/shared_flights/admin/app/parsers - - travel/avia/shared_flights/tasks/amadeus_parser - - travel/avia/ticket_daemon_api/jsonrpc/lib/operating_checker - - travel/library/python/base_http_client - - travel/library/python/base_http_client/tests - - travel/library/python/logbroker - - travel/library/python/tvm_ticket_provider - - travel/rasp/blablacar/blablacar/clients - - travel/rasp/blablacar/blablacar/service - - travel/rasp/library/python/api_clients/im - - travel/rasp/library/python/api_clients/infra - - travel/rasp/library/python/api_clients/movista - - travel/rasp/library/python/api_clients/redir - - travel/rasp/library/python/api_clients/sandbox - - travel/rasp/library/python/api_clients/travel_api - - travel/rasp/library/python/api_clients/travel_api/providers - - travel/rasp/library/python/db - - travel/rasp/library/python/mapping/generators - - travel/rasp/library/python/ydb - - travel/rasp/pathfinder_maps/services - - travel/rasp/rasp_data/resource_checker - - travel/rasp/rasp_data/resource_checker/checks - - trust/clearing/base/tools - - trust/scheduler/tests/pytest - - weather/workers/imports/narodmon - - yabs/models_services/feature_store/features/ltp - - yabs/models_services/feature_store/model - - yabs/models_services/feature_store/model/codegen - - yabs/models_services/feature_store/model/mappers/mapper_generator - - yabs/models_services/feature_store/model/ut - - yabs/models_services/feature_store/model/utils - - yabs/models_services/feature_store/udf_builder - - ydo/async_api/lib/logbroker_client - - ydo/database/helpers - - ydo/database/models/types - - ydo/devops/monitorings/bin/lib - - ydo/devops/monitorings/errorbooster/alerts - - ydo/devops/yt_tools/clean_old_nodes - - ydo/erp/libs/education_courses - - ydo/erp/libs/financial_reports - - ydo/erp/libs/regulations - - ydo/libs/async_api - - ydo/libs/categories_tree - - ydo/libs/csv_operations/convertation - - ydo/libs/drive/common - - ydo/libs/drive/drive_api_caller - - ydo/libs/drive/slow_transporters_filter - - ydo/libs/geobase/lib - - ydo/libs/maps_http - - ydo/libs/medical_tests_partner_lab_api - - ydo/libs/order - - ydo/libs/order_clarifier/lib - - ydo/libs/order_clarifier/tests - - ydo/libs/order_description/lib - - ydo/libs/partner_flow/seo/data - - ydo/libs/renderer - - ydo/libs/tests_lib - - ydo/libs/versatile_redispatch - - ydo/server/extract_backend_request_source/lib - - ydo/tools/util/clone_projects - - yt/admin/core/declarative - - yt/cron/yp_accounts/lib - - yt/odin-checks/lib/quorum_health - - yt/python/yt/infra_api - - yweb/antimalware/hitrobot/util - - yweb/antimalware/libs/actor - - yweb/antimalware/libs/deploy - - yweb/antimalware/libs/farmhash - - yweb/antimalware/libs/notifications - - yweb/antimalware/libs/rwlock - - yweb/antimalware/libs/solomon_pusher - - yweb/antimalware/libs/solomon_pusher/metrics - - yweb/antimalware/libs/timetools - - yweb/antimalware/libs/yqltools - - yweb/antimalware/libs/yqltools/tests - - yweb/antimalware/libs/yttools/py - - yweb/antimalware/libs/yttools/py/tests - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-external-error/antivir/externalerror - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-external-error/tests - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-memoize1/tests - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-sky/antivir/sky - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-sky/tests - - yweb/antiporno/nirvana/libs/nirvana_user_status/py/lib - - yweb/antiporno/nirvana/operations/self_updateable - - yweb/antispam/clean_web/external_services/deduplicator/lib - - yweb/antispam/clean_web/lib - - yweb/antispam/clean_web/lib/balancer - - yweb/antispam/clean_web/lib/tests/lib - - yweb/antispam/clean_web/lib/tests/lib/pipeline - - yweb/antispam/clean_web/prerequisites2/public/test_lib/local - - yweb/antispam/clean_web/toloka/lib - - yweb/antispam/clean_web/toloka/lib/module - - yweb/antispam/clean_web/toloka/lib/toloka - - ads/autobudget/ml_pipeline - - ads/factor_check/workflow/lib - - ads/libs/py_autobudget - - ads/libs/py_dssm_lib/dssm_applier - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_vw_lib - - ads/nirvana/automl/pipelines/offline_pytorch/full_example - - ads/nirvana/gensim_w2v - - ads/nirvana/mappers/w2v_recommender - - ads/quality/adv_machine/cm_robot/cmpy/fresh_stats - - ads/quality/adv_machine/cm_robot/cmpy/query_recommender_attempt - - ads/quality/embedding/join_banners - - ads/quality/embedding/tsar_tensor/BSFACTOR-44/gram_eval - - ads/quality/embedding/tsar_tensor/BSFACTOR-44/preprocess - - ads/quality/ltp/action_tasks/visit_goals - - ads/quality/phf/direct_api - - ads/quality/simulate_auction_py/lib/inject_modules - - ads/sandbox_scripts/zc_corrector - - ads/tools/mx_feature_remapper/lib - - ads/watchman/contrib/flask-marshmallow-patched - - ads/watchman/contrib/flask-restplus-patched - - alice/analytics/wer - - alice/boltalka/generative/tfnn/infer - - alice/boltalka/generative/training/data/nn/filtered_twitter - - alice/nlu/py_libs/tokenizer - - alice/uniproxy/bin/send-digest - - alice/uniproxy/tools/perf_results_parser - - antirobot/tools/prepare_requests_cbb - - browser/infra/services/ci/backend/flakiness/migrations - - cv/imageproc/ocr/tools/nirvana/captcha_renderer - - cv/short2long/nirvana/lib - - cv/short2long/training/yt_load_highlights - - dict/ontodb/config - - dict/ontodb/proto/benchmark - - dict/ontodb/proto/direct/ut - - dict/ontodb/proto/tools - - education/lib/contrib/glove_python - - entity/ontodb/tasks/vloggers - - entity/ontodb/util/yt_helpers - - entity/recommender/nirvana/operations/yam/yam_positions - - entity/recommender/tools/recommender_beta - - entity/ugc/robot/tools/installed_apps_sites_activity_loader/lib - - ether/top/check_docs - - ether/top/specevent/meta - - extsearch/geo/recommender/tools/build_static_user_profile/lib - - extsearch/geo/recommender/tools/quality_metric/convert_tradoff_4_plot - - extsearch/geo/recommender/tools/quality_metric/tradeoff/generate_features - - extsearch/geo/recommender/tools/quality_metric/tradeoff/prepare_searches - - extsearch/geo/recommender/tools/quality_metric/utils - - extsearch/images/robot/scripts/cm/semidup2 - - extsearch/images/tools/morda_popular_queries/bin - - extsearch/images/tools/new_runtime/create_model - - extsearch/video/robot/cm/crawl/cmpy/authors - - extsearch/video/robot/cm/vicont/cmpy/content - - extsearch/video/robot/cm/vicont/cmpy/renew - - extsearch/video/robot/crawling/player_testing/core - - extsearch/video/robot/crawling/player_testing/services/live_capture - - extsearch/video/robot/crawling/player_testing/services/live_proxy - - extsearch/video/robot/previews/hitman/lost_preview_status - - infra/kernel/test/recipe/cgleak_check/example - - infra/yp_quota_distributor/lib - - intranet/table_flow/tests - - lbs/research_tools/find_keys_causing_losses - - library/python/async_clients - - logbroker/tools/deploy_consistency_test - - mail/github/calendar-attach-processor - - maps_adv/common/shared_mock - - market/dynamic_pricing/tools/kvi_evaluation - - market/dynamic_pricing/tools/offline_modeling - - market/mobile_validator/mt - - market/seo/tools/postgres_local/recipe - - ml/tensorflow/ytensorflow - - modadvert/libs/antispam/threat_mapping/ut - - modadvert/libs/jsonrpc2/client - - modadvert/libs/nirvana/program - - modadvert/nirvana/m1_update_media_objects/it - - modadvert/programs/multik/libs - - modadvert/programs/supermoderation_admin/libs/services - - opensource/sync/bin/docs_sync/tasklet - - opensource/sync/bin/sync_ch/tasklet - - orgvisits/user/features/run/tests - - plus/oneyear/oneyear_by - - quality/functionality/chats/common/bunker_client - - quality/functionality/chats/common/requests_wrappers - - quality/functionality/chats/feedback/src/feedback/api - - quality/functionality/chats/floyd/src/floyd/core - - quality/functionality/rtx/trends/apropos_viewer - - quality/functionality/scripts/psuh/HomeWorkMetricsLib/External/autolog_names/autolog_names - - quality/functionality/scripts/psuh/HomeWorkMetricsLib/HomeWorkMetricsLib - - quality/functionality/turbo/analytics/quality/samplers/cms_sampler - - quality/functionality/turbo/ml_ads/prepare_daily_logs - - quality/functionality/turbo/tools/rthub_dev/prepare_autoparser - - quality/functionality/turbo/yml_process/lib - - quality/neural_net/bert/bert - - quality/nirvana_tools/conveyor_operations/concatenate_tables - - quality/nirvana_tools/conveyor_operations/merge_gemini_lookups - - quasar/infra/tasklets/update_devices_in_db/impl - - regulargeo/geolayer/olap - - robot/bert/tools/predict_diff - - robot/quality/crawl_quality_metrics/push_to_solomon_every_day_crawl - - robot/quality/crawl_quality_metrics/push_to_solomon_library - - robot/quality/nirvana/refererrank/calc_scores_map - - robot/quality/nirvana/refererrank/create_dataset - - robot/quality/nirvana/refererrank/drop_large_keys - - robot/quality/nirvana/refererrank/join_addtime - - robot/quality/nirvana/refererrank/join_userdata_to_referers - - robot/quality/nirvana/refererrank/merge_all_crawl_attempts - - robot/quality/nirvana/refererrank/merge_all_factors_tables - - robot/quality/nirvana/refererrank/merge_all_referers_export - - robot/quality/nirvana/refererrank/premetric_map - - robot/quality/nirvana/refererrank/prepare_for_crawl_attempt_reduce - - robot/quality/nirvana/refererrank/prepare_for_factors_reduce - - robot/quality/nirvana/refererrank/prepare_for_userdata_reduce - - robot/quality/nirvana/refererrank/push_referer_rank_to_solomon - - robot/quality/nirvana/refererrank/rename_url_key - - robot/quality/nirvana/refererrank/unique_referers - - robot/quality/nirvana/refererrank/unique_urls - - robot/quality/robotrank/nirvana/compare_formulas - - robot/selectionrank/sr_conduct_rules_experiment/graphs - - rtmapreduce/config/user_tasks - - saas/tools/refresh/import_rtyserver - - sandbox/projects/EntitySearch/EntitySearchTrunkTest - - sandbox/projects/GetGeoMetasearchResponses - - sandbox/projects/LandingConstructor - - sandbox/projects/adfox/adfox_ui/resource_types - - sandbox/projects/avia/import_marker - - sandbox/projects/avia/trigger_revise - - sandbox/projects/cloud/billing/build_analytics_cube/source - - sandbox/projects/cmnt/PumpkinSettings - - sandbox/projects/dj/AutoDeploy - - sandbox/projects/mail/Load/FuritaAmmoGen - - sandbox/projects/mail/Load/FuritaShooting - - sandbox/projects/mail/RotateMailNotifyRules - - sandbox/projects/marty - - sandbox/projects/mssngr/runtime/MssngrRouterLoadTest - - sandbox/projects/news - - sandbox/projects/quality/tasks - - sandbox/projects/school/Load/MeduzaShooting - - sandbox/projects/sdc - - sandbox/projects/smarttv - - sandbox/projects/taxi/BuildDispatcherPackage - - sandbox/projects/wmc - - sandbox/projects/yphone/AdvisorDeployToQloud - - sandbox/projects/yphone/JafarBuildNirvanaLayer - - sandbox/projects/yphone/launcher - - search/geo/tools/collections/make_expert_collections - - sprav/altay/tools/auto_close/ml_predictor - - sprav/mining/bs/tools/extract_social_data - - sprav/tycoon/nirvana/mail/sync_subscriptions/lib - - statbox/qb2 - - statbox/statkey/jam/actions - - statbox/statkey/jam/libs - - tools/mkdocs_builder/lib - - tools/releaser/src - - travel/avia/library/python/iata_correction - - travel/avia/shared_flights/data_importer - - travel/library/python/sender - - vcs/svn/migrations - - voicetech/asr/pipeline/train - - voicetech/asr/tools/question/make_train_from_vt - - voicetech/asr/tools/regular_metrics_run/upload_metrics_to_yt - - voicetech/bio/pipeline/classification/run_children_toloka_markup_regular - - voicetech/bio/pipeline/vh - - voicetech/bio/scripts/score/robin_metrics/classification/tests - - voicetech/bio/scripts/yt/make_transaction - - voicetech/common/voicetable/agency_data_parser/lib - - voicetech/spotter/difftools/score_output - - voicetech/spotter/online_metrics/lib - - weather/workers/warnings/general - - weather/workers/warnings/nowcasting - - yabs/analytics/anomaly_analyzer/src - - yabs/awaps_pvl/pvl/logic - - yabs/indoor/mocks_generator/lib - - yabs/qa/oneshots/idoldin/BSSERVER-12201 - - yabs/qa/oneshots/liapustin/BSSERVER-14049 - - yabs/qa/oneshots/sergtaim/BSSERVER-14259/AddKeywordToYT-Via-Simple-IudYtOneshot - - yabs/qa/oneshots/serval/BSSERVER-14292/first_json_option_new - - yabs/sbyt/ytstatcollector/advmachine/tests - - yabs/server/cs/test/cs_import/yt_banner_with_history - - yabs/server/libs/py_db_cluster - - yabs/server/test/ft/BSSERVER-14107 - - yabs/server/test/ft/BSSERVER-14309 - - yabs/server/test/qabs_bsserver_pytest - - yabs/utils/log_stats/test - - yabs/vh/cms-pgaas/cms_common - - yabs/vh/cms-pgaas/sport_api_importer/sport_api_importer_lib/lib/sport_client - - yabs/vh/cms-pgaas/statistics_api - - yabs/vh/cms-pgaas/ugc_api - - yabs/vh/cms-pgaas/utils/external_services/sender - - yaphone/advisor/launcher - - ydo/database/lib - - ydo/payments/balance_notifications_processor/lib - - yql/library/test_framework - - yweb/antimalware/mitb/mitb_monitor/lib - - yweb/antiporno/cp_conv/text_classif/bin - - yweb/antispam/mascot/monitorings/check_table_age - - yweb/robot/limbo - - yweb/robot/metrics/pmusca/graph/bin/extract_urls_from_serp - - yweb/sitelinks/scripts/sitelinks - - yweb/webscripts/video/duplicates/nirvana_scripts/knn/filter_knn_source - - yweb/yasap/answers/answers - - yweb/yasap/pdb/tools/add_card_owners - - zootopia/analytics/drive/source/drive/operations/support/registrations/reg_quality - - zootopia/analytics/ml/features/geo_features/faster_surge_features - F403: - ignore: - - F403 - prefixes: - - adfox/infra/registrator - - adfox/infra/registrator/lib - - ads/libs/py_dssm_lib/dssm_applier - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_vw_lib - - ads/nirvana/xfactor-yt - - ads/tools/mx_feature_remapper - - ads/watchman/contrib/flask-restplus-patched - - ads/watchman/contrib/flask-restplus-patched/flask_restplus_patched - - alice/analytics/utils/marty/run_nirvana_instance - - cv/short2long/nirvana/lib - - devtools/signer/signer - - dict/ontodb/cmpy/lib - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib/CashbackReportLib - - extsearch/geo/recommender/runtime/config/generation - - market/seo/offer_base - - mediapers/feature_machine/nirvana/script_runner - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/inbound - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/outbound - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats - - quality/neural_net/bert/bert/utils/distributed - - quality/neural_net/bert/bert/utils/fs - - sandbox/projects/tycoon/TycoonAdverts - F405: - ignore: - - F405 - prefixes: - - adfox/infra/registrator - - adfox/infra/registrator/lib - - ads/libs/py_ml_factors/matrixnet - - ads/nirvana/xfactor-yt - - ads/tools/mx_feature_remapper - - alice/analytics/utils/marty/run_nirvana_instance - - april/arf/scheduler/scheduler/settings - - devtools/signer/signer - - dict/lm/sources/lib/launcher - - dj/nirvana/nirvana_make - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib/CashbackReportLib - - extsearch/geo/recommender/runtime/config/generation - - library/python/cyson - - library/python/cyson/cyson - - market/seo/offer_base - - mediapers/feature_machine/nirvana/script_runner - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/inbound - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/outbound - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats - - modadvert/programs/cv_app/tools/create_yt_env/it - - modadvert/programs/grep_img_rejects/it - - modadvert/programs/multik/it - - quality/functionality/chats/feedback/src/feedback/core - - quality/functionality/chats/feedback/src/feedback/core/celery_tasks - - quality/neural_net/bert/bert/utils/distributed - - quality/user_sessions/py_amon/cbir - - quality/user_sessions/py_amon/images - - sandbox/projects/tycoon/TycoonAdverts - - vcs/svn/flat - - vcs/svn/hooks/test - - yweb/tellurium/tools/store_history_to_yt - - yweb/tellurium/ui - F722: - ignore: - - F722 - prefixes: - - alice/boltalka/generative/pipelines/analysis - - alice/boltalka/generative/pipelines/staging/converting - - alice/boltalka/generative/tfnn/bucket_maker/vh - - alice/boltalka/generative/training/data/nn/bart - - alice/boltalka/generative/training/data/nn/filtered_twitter - - alice/boltalka/generative/training/data/nn/movies - - alice/boltalka/generative/training/data/nn/util - - alice/boltalka/generative/training/data/nn/util/experimental - - cloud/blockstore/tests/loadtest/local-endpoints-spdk - - dict/bert/make/lib - - dict/bert/make/tools/form_rsg_submission - - dict/mt/analytics/make/modules/logs/utils - - dict/mt/analytics/make/modules/toloka - - dict/mt/analytics/make/modules/util/json - - dict/mt/make/libs/web_pages_translation - - dict/mt/tools/translate_html_for_search - - dict/mt/video/pipeline/lib - - modadvert/nirvana/valhalla/graphs/bannerland/cleaner/libs/ops - - modadvert/nirvana/valhalla/graphs/common/ops - - nirvana/vh3/src/vh3/util/typecheck - - search/alice/data/vh/operations - - search/alice/me/vh - F811: - ignore: - - F811 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - logos/libs/core - - logos/projects/ads/tasks/tsar_pytorch_bko_pclick - - travel/rasp/library/python/api_clients/movista - F821: - ignore: - - F821 - prefixes: - - sandbox/serviceq/types - F841: - ignore: - - F841 - prefixes: - - addappter/web/api - - addappter/web/api/views - - addappter/web/api/views/api - - addappter/web/api/views/frontend - - addappter/web/common - - addappter/web/common/events - - addappter/web/libs - - addappter/web/libs/marshmallow - - addappter/web/libs/walrus - - addappter/web/testing/fixtures - - adfox/infra/amacs_config/lib - - ads/autobudget/metrics/equivalency_monitoring - - ads/autobudget/metrics/example_monitoring - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/ml_engine/learn/result/local_extended_fstr/lib - - ads/quality/apc_check_py - - ads/quality/embedding/tsar_tensor/ft_pool/lib - - ads/quality/ltp/libs/build_pool - - ads/sandbox_scripts/ggmonitor - - alice/analytics/wer/g2p - - alice/hollywood/tests/perf_test - - alice/megamind/tests/library - - alice/paskills/granet_server/tests - - alice/uniproxy/bin/send-digest - - alice/uniproxy/bin/uniproxy - - alice/uniproxy/bin/uniproxy-delivery - - alice/uniproxy/bin/uniproxy-unistat - - alice/uniproxy/bin/yabio-storage - - alice/uniproxy/library/testing - - alice/uniproxy/library/testing/mocks - - alice/uniproxy/tools/balancer_top - - apphost/conf/tests/blackbox - - april/badb - - april/badb/badb/db/mysql - - april/web/bas/ca - - april/web/bas/ca/forms - - april/web/bas/collector - - aurora/scripts/parsers/zoon_ru - - billing/apikeys/apikeys - - billing/apikeys/apikeys/mapper - - billing/bcl/bcl - - billing/refs/refs - - cloud/marketplace/queue/yc_marketplace_queue - - cloud/netinfra/rknfilter/yc_rkn_common - - cloud/netinfra/rknfilter/yc_rkn_config_node - - cmnt/tools/regression/request_classes - - contrib/python/hyperlink/hyperlink/test - - cv/imageproc/ocr/tools/database_extraction/nirvana/imgaug/src/augmenters - - cv/short2long/training/yt_calc_factors - - datacloud/log_reader/lib - - devtools/local_cache/ac/tests/perfac - - dict/bert/make/lib - - dict/bert/make/lib/models - - dict/bert/make/lib/tasks - - dict/ontodb/onto_lib/sources/wikidata - - dict/ontodb/proto/direct/ut - - direct/infra/direct_zkcli - - district/logbroker_consumers/lib - - district/logbroker_consumers/lib/yt - - dj/tools/rthub_profiles/acceptance/acceptance_tool - - dj/tools/viewer/custom/entity - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib - - edadeal/analytics/scripts/CashbackReport/CashbackReportLib/CashbackReportLib - - education/lib/common - - education/schoolbook/analytics/adhoc/ANALITICSEDU-687 - - entity/ontodb/tasks/vloggers - - entity/recommender/nirvana/operations/abt_experiments_launcher - - entity/ugc/tools/update_photos - - extsearch/audio/generative/py/uploader - - extsearch/images/tools/nirvana/download_serps - - extsearch/video/robot/cm/library/ut - - extsearch/video/robot/crawling/player_testing/services/live_proxy - - extsearch/video/robot/previews/hitman/lost_preview_status - - extsearch/video/robot/tools/library/python - - extsearch/video/transcoder/per_title/handler - - extsearch/video/transcoder/per_title/vmaf - - geosuggest/conveyors/learn_pool/lst_weights/lib - - haas/cmis/hwr_preorders - - infra/deploy_queue_controller/lib - - infra/dist/dmover/bin/dmover - - infra/dist/dmover/lib - - infra/dist/dmover/lib/internal - - infra/dist/dmover/tests - - infra/host-cpu-metrics - - infra/host-cpu-metrics/host_metrics - - infra/skybone-coord/src - - infra/yp_dns/tools/handle_duplicate_records/lib - - infra/yp_quota_distributor/lib - - keyboard/dict/synthetic_ngrams/synthetic_ngrams_builder - - lbs/metrics/lbs_binbase_diff - - logbroker/tools/manual/collect_capacity/base_2020 - - logbroker/tools/manual/collect_capacity/collect_pre - - logbroker/tools/manual/collect_capacity/set_capacity_pre - - logbroker/tools/manual/collect_capacity/topic_list - - logbroker/tools/manual/create_logbroker_account/lib - - logbroker/tools/startrek/st - - mail/python/fake_mulcagate - - mail/tools/sql_execute_per_shard/lib - - maps/analytics/legacy/nile/statadhoc-8703-site-api-report - - maps/automotive/qa/metrics/common/ut - - maps/automotive/tools/statistics_auto/pylib/track_match_finder - - maps_adv/common/shared_mock/tests - - market/mobile_validator/mt/env - - milab/lib/i2tclient/python - - mlp/mail/aspam/experiments/MLP_231 - - mlp/mail/aspam/nirvana_operations/conveyor/build_prod_graph/inbound - - mlp/mail/aspam/nirvana_operations/conveyor/calc_dsats - - modadvert/libs/connectors/loggers - - modadvert/libs/http - - modadvert/libs/laas/workers/domain_threats - - modadvert/libs/laas/workers/features_from_href - - modadvert/programs/cv_app/libs - - modadvert/tools/accept_campaigns - - mssngr/botfarm/src/bot - - music/analytics/jam-sox/music_lib/financial_reports/tests/unit - - music/tools/download-info - - passport/backend/library/distprim - - passport/backend/library/distprim/threading - - quality/functionality/chats/common/utils - - quality/functionality/chats/feedback/src/feedback/api - - quality/functionality/chats/feedback/src/feedback/api/v1 - - quality/functionality/rtx/server/plugin - - quality/functionality/turbo/analytics/quality/cms_report - - quality/functionality/turbo/analytics/quality/samplers/cms_sampler - - quality/functionality/turbo/autoparser/flags_postprocess/tests/medium - - quality/functionality/turbo/tools/pq_delete_docs - - quality/functionality/turbo/tools/tdm - - quality/logs/mousetrack_lib/python/tests - - quality/relev_tools/choice_screen/create_stove - - quality/trailer/suggest/toloka_processor/report_yt - - robot/library/yuppie - - robot/library/yuppie/modules - - robot/metrics/speed_sbr/nirvana - - robot/quality/nirvana/refererrank/premetric_map - - robot/quality/samovar_conveyour/tools/get_samples - - robot/quality/sendlink_conveyour/tools/max_rank_acceptance - - robot/research/eval_nirvana_graph - - rtmapreduce/tests/recipes/rtmr_processing_recipe - - saas/tools/devops/check_backup - - saas/tools/devops/lib23 - - saas/tools/refresh/import_rtyserver - - sandbox/projects/alice_evo - - sandbox/projects/avia/mysql_sync_testing_with_prod - - sandbox/projects/balancer/load/BalancerLoadCompare - - sandbox/projects/bitbucket/GBGAdaptor - - sandbox/projects/devops - - sandbox/projects/devops/HardwareGencfgGroups - - sandbox/projects/dj/DjCompileConfig - - sandbox/projects/geoadv - - sandbox/projects/geoadv/ReleasePrices - - sandbox/projects/geosearch/snippets - - sandbox/projects/hollywood - - sandbox/projects/hollywood/fast_data/BuildAndDeployHollywoodFastData - - sandbox/projects/logbroker/tasks/BuildSeveralResources - - sandbox/projects/music/deployment/MusicRestoreMdb/YandexCloudDatabase - - sandbox/projects/music/deployment/helpers - - sandbox/projects/news - - sandbox/projects/news/RunNewsComplexLoadtests - - sandbox/projects/news/runtime_tests - - sandbox/projects/news/runtime_tests/CompareNewsApphostServiceResponses - - sandbox/projects/saas/backups/DetachServiceIndex2 - - sandbox/projects/sport_wizard/DeploySportProxyData - - sandbox/projects/video - - sandbox/projects/video/priemka/VideoRobotPriemkaSimple - - sandbox/projects/vqe/measure_performance - - sandbox/projects/yt - - sandbox/projects/yt/ci_tasks/packages/YtBuildCronPackage - - sandbox/projects/yt/layers_tasks/YtBuildSpravLayerTask - - search/metrics/monitoring/core - - search/mon/trainer/libs - - search/mon/wabbajack/bin/icscr - - search/mon/wabbajack/libs/client - - search/mon/wabbajack/libs/client/parsers - - search/scraper/parser_platform/parsers - - search/scraper_over_yt/scripts - - smart_devices/tools/launcher2/tests/restarts - - strm/generate/lib/generate - - taxi/graph/packages/taxigraphd - - travel/avia/shared_flights/tasks/schedules_dumper - - travel/hotels/suggest/builder - - travel/hotels/suggest/metrics_builder - - travel/rasp/content/rzdParser - - travel/rasp/train_api - - travel/rasp/train_api/middleware - - vcs/manage_contrib - - vh/lib/sqs_watcher - - vh/recommender/tools/delayed_view_stats - - voicetech/asr/tools/run_normalizer/prepare_data_for_mt_normalizer - - voicetech/infra/uniproxy/tests/session - - voicetech/infra/voice_ext_mon/bin - - voicetech/spotter/selection_for_annotation/bin - - weather/workers/warnings/push - - yabs/analytics/anomaly_analyzer/src - - yabs/analytics/new_traffic_generation/src - - yabs/analytics/traffic_generation/z_2_barnavig_click_counter - - yabs/analytics/traffic_generation/z_4_spylog_visits_counter - - yabs/analytics/traffic_generation/z_5_appmetr_counter - - yabs/analytics/traffic_generation/z_6_metrika_visits_counter - - yabs/analytics/traffic_generation/z_7_chevent_scc_counter - - yabs/analytics/traffic_generation/z_9_3_metr_yabro_coeff - - yabs/analytics/traffic_generation/z_9_4_all_visits - - yabs/analytics/yt_cleaner - - yabs/autobudget/pylibs/tasks - - yabs/awaps_pvl/pvl/logic - - yabs/qa/oneshots/astkachev/BSSERVER-14230/noload_rsya_only - - yabs/qa/oneshots/astkachev/BSSERVER-14230/noload_search_only - - yabs/qa/oneshots/sergtaim/BSSERVER-14259/AddKeywordWithNewIdToYT-test - - yabs/server/cs/pylibs/dash_board - - yabs/server/cs/pylibs/full_graph_plot - - yabs/server/cs/pylibs/gantt_chart/lib - - yabs/server/cs/pylibs/settings - - yabs/vh/cms-pgaas/sport_api_importer/sport_api_importer_lib - - yabs/vh/frontend/test/ft/HOME-43539 - - yweb/antispam/cid/analytics/pushes/crypta_lal/args - - yweb/antispam/cid/analytics/pushes/push_sender/args - - yweb/antispam/cid/analytics/pushes/push_sender/cli - - yweb/antispam/cid/support/auto_answer/args - - yweb/freshness/scripts/sport_pushes - - yweb/news/dupsd/tests - - yweb/news/zen/video_export - - yweb/sitelinks/astrolabe/migration/bna_to_mysql - - yweb/webscripts/video/duplicates/nirvana_scripts/knn/filter_knn_source - - yweb/yasap/pdb/tools/backup/create_backup - - yweb/yasap/znatoki/znatoki_ctl/lib - - yweb/yasap/znatoki/znatoki_ctl/lib/commands - - zootopia/analytics/ml/features/geo_features/idle_duration_features - - zootopia/analytics/ml/join_features/lib - - zootopia/analytics/ml/util/logs_context_manager/lib - F842: - ignore: - - F842 - prefixes: - - datalens/backend/app/bi_external_api/bi_external_api/converter/dash - - datalens/backend/app/bi_external_api/bi_external_api/workbook_ops - - media/sport/nirvana/sport_thumbnail_loader/biz/ott_sport - PLC0112: - ignore: - - PLC0112 - prefixes: - - adfox/amacs/tests/functional/libs/marshaller - - ads/libs/py_cliutils - - ads/libs/py_logger - - ads/libs/py_logs_util - - ads/quality/reach_product/vtr_prediction/utils/knapsack/pool_collection/lib/vh_ops - - advq/generation/common/queries - - cloud/marketplace/common/yc_marketplace_common/models/billing - - cloud/mdb/avionix/avionix/kube - - crypta/lib/python/spine/solomon - - datalens/backend/lib/bi_configs/bi_configs - - datalens/backend/lib/bi_constants/bi_constants - - datalens/backend/lib/bi_core/bi_core/connectors/chs3_gsheets - - datalens/backend/lib/bi_core/bi_core/connectors/file - - direct/infra/mysql_manager/mymgr - - education/english/services/every/app/tasks - - infra/rtc/juggler/reconf/builders/projects/rtc/panels - - infra/walle/server/contrib/sepelib/http - - intranet/forms/src/events/surveyme_integration/variables - - intranet/wiki/src/wiki/api_v2/public/pages/stubs - - intranet/wiki/src/wiki/files - - intranet/wiki/src/wiki/integrations/ms - - maps/analyzer/check_graph_topology/lib - - maps/analyzer/libs/gossip/examples/highly_loaded_example/bootstrapper - - maps/analyzer/libs/gossip/examples/highly_loaded_example/bootstrapper/killer - - maps/analyzer/libs/gossip/examples/highly_loaded_example/file_generator - - maps/analyzer/libs/gossip/examples/simple_example/bootstrapper - - maps/analyzer/libs/gossip/examples/simple_example/bootstrapper/killer - - ott/drm/columbia/src/tank - - quality/antifraud/xurma/tools/extra_balancer - - sandbox/projects/rtc - - sandbox/projects/sport - - sandbox/projects/sport/BuildSportAppHostRouterdServiceConfigBundle - - sandbox/projects/sport/BuildSportUATraitsBundle - - sandbox/projects/sport/resources - - sandbox/web/api/v1 - - toloka/analytics/libs/python/dwh/draft/ut - - yweb/antimalware/sba/clientreport/detectors/template - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-ytlogcat/antivir/ytlogcat - - yweb/news/news_back/api/partner_api_v2/agencies - PLC0113: - ignore: - - PLC0113 - prefixes: - - devtools/ya/yalibrary/graph - - distribution_interface/backend/backend/product/models - - distribution_interface/backend/backend/pydi - - dj/services/market/uservices/thematizator/backend/nirvana_scripts/mbo_fuckup_catcher - - intranet/watcher/tests/unit/tasks - - intranet/wiki/src/wiki/pages - - infra/deploy_notifications_controller/lib - - load/projects/yandex-tank/yandextank/plugins/Bfg - - load/projects/yandex-tank/yandextank/plugins/Bfg2020 - - load/projects/yandex-tank/yandextank/plugins/Phantom - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/clusterize_matches - - maps_adv/common/shared_mock - - maps_adv/common/yt_utils/tests - - maps_adv/geosmb/doorman/server/tests - - maps_adv/geosmb/landlord/server/tests - - market/dynamic_pricing/pricing/library/rthub - - mds/admin/library/python/sa_scripts - - plus/mobile/infra/pr-checks/ios/validate-codestyle - - quality/neural_net/bert/bert/pytorch/utils - - quasar/manufacturing/elenchus/mini2test - - quasar/manufacturing/flash_points/libs - - sandbox/projects/music/deployment/MusicMigrateYdbProdToQa - - sandbox/sandboxsdk - - sdg/labeling/storage/lib - - search/mon/tickenator/src/libs/tickenator - - search/mon/tickenator/src/workers - - search/mon/warden/src/workers - - search/mon/warden/tests/alerts - - statbox/nile/tests/cluster - - tools/mkdocs_builder/mkdocs_yandex/mkdocs_yandex/ext/markdown/pymdownx - - travel/avia/shared_flights/tasks/flying_time - - vcs/svn/s3_backuper - - voicetech/spotter/train/witchcraft/bins/example_doge - - yweb/antispam/mascot/app_market_features/parse_app_store - - yweb/video/faas/lib/taskctx - - zen/yweb/video/faas/lib/taskctx - PLC0203: - ignore: - - PLC0203 - prefixes: - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/utils - - billing/apikeys/apikeys - - billing/apikeys/apikeys/butils_port/application - - intranet/plan/django-filter/django_filters - - library/python/nirvana_api - - noc/comocutor/comocutor/devices - - ofd/common/exceptions - - quasar/manufacturing/utils - - rt-research/common/pylib/config - - taxi/robowarehouse/lib/misc - - videoplatform/cms_common/utils - - videoplatform/cms_ugc/utils/services/core - - yabs/server/test/qabs_bsserver_pytest/db - - yabs/vh/cms-pgaas/cms_common/utils - - yabs/vh/cms-pgaas/utils/services/core - - yaphone/localization_admin/src - PLC0321: - ignore: - - PLC0321 - prefixes: - - cloud/support/tools/quotactl-l2 - - crowdsourcing/elc/CwasBot/libs/python_telegram_bot_calendar - - geoproduct/advert_ranking/traffic_prediction/nirvana - - geoproduct/advert_ranking/traffic_prediction/predictor - - sandbox/projects/market/WHSupport/RestartingOrder - - yweb/antispam/cid/phones_base/verdict_classifiers - PLC0327: - ignore: - - PLC0327 - prefixes: - - games/admin/bin/purchases_report - - yabs/qa/oneshots/m-radyshevsky/BSSERVER-19183/remove - PLC2401: - ignore: - - PLC2401 - prefixes: - - crowdsourcing/crowdtesting/graphs/process_of_priority/graphs - - devtools/contrib/sandbox/run_go_toolchain_tests - - maps/analyzer/services/eta_comparison/tests - - mediapers/vh3/graphs/music_prod_cron - - ml/zeliboba/experiments/_example7_finetune_lm10_on_task - - search/geo/tools/basket_gathering_2022 - - search/scraper/parser_platform/parsers - - yweb/news/news_back/api/tools - PLC2403: - ignore: - - PLC2403 - prefixes: - - search/geo/tools/basket_gathering_2022 - PLC2503: - ignore: - - PLC2503 - prefixes: - - voicetech/tts/training - - voicetech/tts/training/pipeline - - voicetech/tts/training/pipeline/vh - - voicetech/tts/training/tacotron/io - - voicetech/tts/training/text_processing - - voicetech/tts/training/text_processing/symbols/ar_bw - - voicetech/tts/training/waveglow - - yweb/blender/scripts/rearrange_stat - PLE0011: - ignore: - - PLE0011 - prefixes: - - taxi/teamcity-agent-scripts/tests/utils - PLE0101: - ignore: - - PLE0101 - prefixes: - - cloud/iam/accessservice/client/iam-access-service-client-python/v1/yc_as_client_v2 - - cloud/iam/accessservice/client/python - - intranet/forms/src/events/common_app - - maps/wikimap/mapspro/libs/python/pymod/yandex/maps/wiki/tasks - - yabs/server/test/pylibs/simulator - - yp/python/yp/local - PLE0202: - ignore: - - PLE0202 - prefixes: - - alice/uniproxy/library/processors - - april/basback/basback/lib/april_report_assembler - - april/basback/basback/process/ad - - april/basback/basback/util - - april/etl/spark/spark_loader - - april/tools/clients - - april/tools/sql_utils - - april/yta/yta - - cloud/iam/accessservice/client/iam-access-service-client-python/v1/yc_as_client_v2 - - cloud/iam/accessservice/client/python - - extsearch/audio/tools/vh_tools - - geoproduct/aml/banner_templates_toloka/auto_markup/run_markup - - geoproduct/aml/banner_templates_toloka/templates/upload_templates - - infra/walle/server/walle/admin_requests - - infra/walle/server/walle/expert/rules - - infra/walle/server/walle/scenario/stage - - intranet/plan/django-filter/django_filters - - kikimr/tools/tickets_manager - - library/python/pyscopg2/tests/mocks - - load/projects/netort/netort/data_manager/clients - - load/projects/yandex-tank/yandextank/plugins/NeUploader - - load/projects/yandex-tank/yandextank/plugins/Solomon - - market/pylibrary/saas - - ml/tensorflow/models/userbert/pipeline/data/processing/converters - - mssngr/botfarm/src/logger - - mssngr/botplatform/src/bots/logger - - noc/comocutor/comocutor/devices - - ofd/common/aggregations/fields - - passport/backend/utils - - quality/sbs/polls - - rtmapreduce/tools/yql_sli - - sandbox/agentr - - sandbox/projects/sdc/common - - search/mon/bot/bot/modules/protocols - - search/tools/setrace/tools/evlogdump_for_ua/lib - - sprav/protos/model - - taxi/robowarehouse/lib/concepts/solomon - - travel/avia/subscriptions/app/api - - travel/hotels/content_manager/lib - - yql/library/cloud - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-pesignatures/src/antivir/pesignatures - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-structhelper/src/antivir/structhelper - - yweb/antispam/cid/assistant/library - PLE0237: - ignore: - - PLE0237 - prefixes: - - datacloud/dev_utils/status_db - PLE0301: - ignore: - - PLE0301 - prefixes: - - infra/qyp/qdm/src/rpc - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - ml/tensorflow/models/general_feature_extractor/data_providers - - passport/backend/utils - - rt-research/broadmatching/scripts/pylib/yt_mappers - - security/network_holes_policy_engine/models/ports - - statbox/nile/nile/drivers/common - - statbox/nile/nile/drivers/yql - - statbox/nile/nile/processing - - yabs/utils/yabs_duty_scheduler/lib - - yweb/antispam/scripts/script_lib - PLE0302: - ignore: - - PLE0302 - prefixes: - - alice/boltalka/extsearch/shard - - extsearch/unisearch/util/ydb - - market/pylibrary/logbroker - - oebs/lib/bi_utils/bi_utils/core - PLE0306: - ignore: - - PLE0306 - prefixes: - - ads/mr_tools/slotrecord/ut_py3 - - razladki/monq/monq - - travel/rasp/api_public/api_public/v3/tariffs/retrieving - - travel/rasp/api_public/tariffs/retrieving - PLE0605: - ignore: - - PLE0605 - prefixes: - - ads/bsyeti/libs/argument_tree - - logos/web/yagraph/Backend/app - - market/monetize/efficiency/ml_infra/py/lib - - ml/tensorflow/ytensorflow/ytensorflow/layers/rnn/cudnn - - rt-research/common/pylib/utils - - sandbox/web/api/v1 - - sandbox/web/api/v1/schemas - - sandbox/web/api/v2/schemas - PLE0633: - ignore: - - PLE0633 - prefixes: - - alice/paskills/penguinarium/views - - april/web/bas/other - - billing/log_tariffication/py/jobs/core_tariff - - dict/mt/video/nirvana/sbs - - dict/mt/web/ui/tools/tr-page-quality/vh - - infra/deploy_queue_controller/tests - - market/pylibrary/mindexerlib - - quality/neural_net/bert/bert/pytorch/pruning - - weather/libs/satpy_cropped - - ydo/devops/monitorings/alerts_v2/lib/juggler/lib/middlewares - - yweb/antispam/clean_web/lib/tests/small - PLE0701: - ignore: - - PLE0701 - prefixes: - - alice/uniproxy/library/testing - - crm/agency_cabinet/common/yt - PLE0704: - ignore: - - PLE0704 - prefixes: - - ads/emily/storage/transport/indexer/converters/lm/lib - - ads/quality/adv_machine/scripts/alerts - - april/arf/lib/core/operations - - datalens/backend/lib/bi_core/bi_core/aio/middlewares - - devtools/local_cache/toolscache/tests - - devtools/ya/yalibrary/yandex/sandbox - - district/scripts/nirvana_actions_lb_writer - - district/scripts/push_triggers_to_lb - - education/english/lib/metric_exporter/src - - extsearch/unisearch/util/logbroker - - geoproduct/advert_ranking/traffic_prediction/nirvana - - infra/walle/server/walle/host_fsm - - intranet/forms/src/events/common_app - - intranet/forms/src/events/surveyme_integration/services/email - - intranet/forms/src/events/surveyme_integration/services/startrek - - intranet/wiki/src/wiki/inline_grids/serialization_pipeline - - market/forecast/demand_ml_forecast_validation/lib_v2/models - - market/forecast/torch_demand/lib/models - - market/pylibrary/mi_util/tests - - market/replenishment/algorithms/lib/task - - market/sre/tools/capacity/lib/KPI - - modadvert/libs/connectors - - modadvert/libs/connectors/loggers - - modadvert/libs/sm_api/processors/direct_search_banners - - ott/drm/faas_infra/metric_artifacts - - plus/utils/test_utils - - quality/functionality/rtx/counterparty/fns_sync/bin - - quality/functionality/rtx/rbo/scripts/create_rbo - - robot/library/python/sandbox - - smb/common/http_client/lib - - travel/cpa/lib - - yabs/infra/monitorings/yabs_monitorings/baseage_graphite - - yabs/server/test/qabs_bsserver_pytest/bs_objects - - ydo/analytics/tools/direct_api - - ydo/async_api/lib/logbroker_client - - yt/odin-checks/bin/operations_snapshots - - yt/python/yt/wrapper - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-common/antivir/common - PLE0710: - ignore: - - PLE0710 - prefixes: - - april/web/bas/oauth/utils - - ml/pulsar/server/scenarios_service/models/ttm/tune_the_model - PLE0712: - ignore: - - PLE0712 - prefixes: - - ads/bsyeti/difftool/lib/metrics_loader - - ads/bsyeti/difftool/lib/solomon_wrapper - - cloud/mdb/dbaas-internal-api-image/dbaas_internal_api/apis - - distribution_interface/backend/backend/kraken/checksumchecker/python - - mssngr/tools/other_tools/zbp_graphs/python - - ofd/common/decorators - - sdg/labeling/common - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-sandbox-upload/src/antivir/sandboxupload - PLE1200: - ignore: - - PLE1200 - prefixes: - - market/pricelabs/yt/maintenance - - ott/drm/azure-taj - PLE1201: - ignore: - - PLE1201 - prefixes: - - dict/mt/make/tools/translate_sqs/vh - - rt-research/bannerland/lib/archive_workers - PLE1205: - ignore: - - PLE1205 - prefixes: - - ads/quality/tlm/pylib - - devtools/ya/test/programs/coverage_diff/lib - - extsearch/audio/tools/yp_tools - - extsearch/video/robot/crawling/player_testing/services/live_proxy - - extsearch/video/robot/youtube_grabber/ugc/instagram_grabber - - extsearch/video/robot/youtube_grabber/ugc/yt_monitor - - games/admin/background_modules - - games/admin/background_modules/utils - - load/projects/tasklets/shooting/py_impl - - mail/search/offline_metrics/scraper_client/client - - mssngr/tasks/clear_test_accounts - - ott/drm/azure-taj - - quality/functionality/rtx/trends/apropos_viewer/handlers - - quality/nirvana_tools/conveyor_operations/ab_experiment_dump/lib - - rt-research/common/tools/bot - - sandbox/projects/Statbox/StatboxDebuilder - - sandbox/projects/app_host/vertical_by_button/mixins/apphost_vertical - - sandbox/projects/clickhouse/ClickhouseCommitTrigger - - sandbox/projects/clickhouse/ClickhouseDocsRelease - - sandbox/projects/cv/workflow_tests - - sandbox/projects/eda/computing_sp_statistic - - sandbox/projects/market/WHSupport/EvaExecutor - - sandbox/projects/metrics/parser_release_arcadia - - sandbox/projects/music/deployment/MusicRevertCommit - - sandbox/projects/src_setup/UpdateSrcSetupTestData - - search/scraper/parser_platform/parsers - - search/tools/woland/lib - - sup/emulators/yp_android/register - - tools/mstand/adminka - - tools/mstand/experiment_pool - - tools/mstand/mstand_utils - - tools/mstand/nirvana_api - - vcs/svn/s3_backuper - - voicetech/asr/server/stress/lib - - yabs/infra/deploy/box/adfox/engine/engine-infra/xpd_updater - - yabs/nanpu/samogon/plugin - - ydo/analytics/tools/direct_api - PLE1206: - ignore: - - PLE1206 - prefixes: - - education/english/services/scheduler_api/app/tutor_schedule - - extsearch/ymusic/quality/offline/shooter_lib - - maps/poi/notification/lib/sup - - quality/yaqlib/yaqutils - - sandbox/projects/clickhouse/ClickhouseCommitTrigger - - sandbox/projects/hardware/CalculateSandboxQuotas - - vcs/svn/s3_backuper - PLE1306: - ignore: - - PLE1306 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - PLE1307: - ignore: - - PLE1307 - prefixes: - - advq/generation/common/trie - - april/lib/py/exceller/exceller - - april/pp/pp - - maps/pylibs/monitoring/lib - - noc/hbf-server/hbf - - yweb/video/faas/lib/package - - zen/yweb/video/faas/lib/package - PLE4702: - ignore: - - PLE4702 - prefixes: - - april/badb/badb/db/base - - billing/dwh/src/dwh/core - PLE4703: - ignore: - - PLE4703 - prefixes: - - logos/projects/statkey_py3/tasks/marketplace_clusterdomain - - logos/projects/statkey_py3/tasks/marketplace_ozon_banner_hrefs - PLR0123: - ignore: - - PLR0123 - prefixes: - - voicetech/asr/tools_cloud/subtitle_scrapper/utils - PLR0202: - ignore: - - PLR0202 - prefixes: - - skynet/kernel/util - PLR0203: - ignore: - - PLR0203 - prefixes: - - datacloud/dev_utils/other - PLR0206: - ignore: - - PLR0206 - prefixes: - - ads/quality/reach_product/vtr_prediction/utils/knapsack/pool_collection/lib - - billing/apikeys/apikeys/startrek_wrapper - - weather/db/models - PLR1712: - ignore: - - PLR1712 - prefixes: - - devtools/distbuild/ctl - - ipreg/geogenerator/bin/reliability_around/escapee-detector - PLR1713: - ignore: - - PLR1713 - prefixes: - - load/projects/yandex-tank/yandextank/plugins/Telegraf - PLR1715: - ignore: - - PLR1715 - prefixes: - - adfox/amacs/tests/functional/libs/models - - alice/boltalka/generative/training/data/movies/match - - billing/tools/telebot/telebot/bots - - cloud/mdb/salt/salt/_modules - - devtools/ya/yalibrary/upload/tests/test_upload - - extsearch/unisearch/category_tree/bin - - extsearch/video/robot/crawling/player_testing/core/job - - extsearch/video/vh/tape/lib - - infra/capacity_planning/abc_request_list/dispenser_requests/lib - - infra/rtc/juggler/reconf/builders/projects/yt - - intranet/forms/src/events/data_sources/sources - - mail/webmail_config/lib - - maps/automotive/remote_tasks/autotests/fake-env - - market/dynamic_pricing/analyst/white_statistics - - market/sre/tools/marketsre_cli/commands/utils - - ml/nirvana/fml_dc/util/nope_operations - - modadvert/libs/multik/nearest_neighbors/hnsw_patch - - noc/matilda_clickhouse_proxy/lib - - quality/functionality/chats/common/dto - - quality/neural_net/bert/bert/pytorch/nvidia - - quality/neural_net/bert/bert/pytorch/utils - - quality/neural_net/bert/tools/autobert/autobert_2/library/utils - - quality/neural_net/bert/tools/autobert/lib - - robot/metrics/translated_search/join_statuses - - search/plutonium/deploy/instance_syncer - - yabs/server/test/ft/BSSERVER-11310 - - yabs/server/test/ft/BSSERVER-13708 - - yabs/server/test/ft/BSSERVER-2189 - - yabs/server/test/ft/BSSERVER-6062 - - ydo/tools/dispatch/dispatch_tester/lib - - ydo/tools/snippet_feed/lib - - yweb/yasap/answers/answers_fast/lib/utils - PLR1726: - ignore: - - PLR1726 - prefixes: - - adfox/amacs/tests/functional/utils - - ads/yacontext/lib/settings/tests/small - - dict/mt/make/modules/tfnn - - dj/services/market/configs_generator/recommender/components - - logbroker/tools/cluster_migration/get_max_retention - - logbroker/tools/manual/collect_capacity/collect_2019_2020 - - logbroker/tools/manual/collect_capacity/collect_pre - - logbroker/tools/manual/collect_capacity/common - - maps/garden/tools/stat_updater/lib - - maps/poi/personalized_poi/builder/lib - - market/quality/antispam/markup - - music/tools/jupy/jupy - - search/beholder/src/services - - ydo/analytics/marketing/calls_to_metrika - - ydo/analytics/marketing/orders_revenue_to_metrika - - ydo/async_api/tasks/registry - - ydo/libs/apphost_source/test - - yweb/news/news_back/api/admin/controller - - zen/yweb/video/faas/lib/convert - - zen/yweb/video/faas/lib/ladders - PLR1727: - ignore: - - PLR1727 - prefixes: - - alice/analytics/operations/asr_annotation/context_retrieval/server - - alice/uniproxy/library/web_handlers - - dict/bert/make/lib/tasks - - dict/mt/make/services/experiment_service/server/services - - dj/services/market/uservices/viewer/server/app - - extsearch/unisearch/medicine/data_processing/avatars/before_avatars - - geoproduct/amocrm/lead_autoclose - - market/monetize/efficiency/buybox/buybox_report_parser/lib/tests - - ml/libs/ml_data_reader/tests/seq2seq - - payplatform/balance_support_dev/tools/email_sender/smtp_sender/lib/tests - - sandbox/projects/Statbox/StatboxDebuilder - - search/mon/bot/bot/modules - - search/tools/woland/lib - - tracker/scripts/jira_to_tracker - - yabs/server/test/ft/BSSERVER-3049 - - ydo/libs/apphost_source/test - - yp/scripts/account_estimation - - yweb/yasap/znatoki/znatoki_ctl/lib/commands - PLR1730: - ignore: - - PLR1730 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/quality/tlm/pylib - - alice/tools/version_alerts/lib - - april/web/bas/cpa/utils - - billing/library/tools/baf/baf/commands - - cloud/marketplace/common/yc_marketplace_common/lib - - extsearch/images/robot/tools/split_statistics - - geoproduct/amocrm/processes/bin/staff/users_presence - - infra/heartbeat/src - - intranet/watcher/src/watcher/tasks - - intranet/wiki/src/wiki/legacy/formatters - - maps/streetview/sfm/tools/quality/calc_stat - - mds/s3/tests/lib - - mssngr/botplatform/src/bots/service_api - - noc/hbf-server/contrib/py-radix/radix - - ofd/api/lib/controllers/billing - - quality/mstand_metrics/market_offline/limus_v3 - - quality/mstand_metrics/market_offline/limus_v4 - - quality/vanadium/vanstructs - - robot/zora/tools/exporter - - saas/library/python/deploy_manager_api/tests - - saas/tools/devops/lib23/tests/py23 - - search/mon/uchenki/lib/jobs - - search/mon/uchenki/lib/types/actions - - travel/avia/shared_flights/lib/python/date_utils - - trust/bill76/corovaneer/plugins/fetcher/legacy - - vcs/svn/s3_backuper - - yabs/server/test/qabs_bsserver_pytest - - yweb/verticals/scripts/get_solomon_data - - yweb/video/faas/lib/convert/recipes - - zen/yweb/video/faas/lib/convert/recipes - PLR1731: - ignore: - - PLR1731 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - alice/analytics/utils - - alice/uniproxy/library/async_http_client - - alice/uniproxy/library/vins - - apphost/test/legacy/lib - - april/web/bas/cpa/utils - - bi/toolbox/project_management/lib - - datalens/backend/lib/bi_core/bi_core - - datalens/backend/lib/clickhouse-sqlalchemy/clickhouse_sqlalchemy/parsers - - education/services/checking_system/marker_checker/lib/markers/columncalc/objects - - extsearch/goods/indexer/monitoring/index_releases - - geoproduct/amocrm/processes/bin/staff/users_presence - - infra/awacs/vendor/kazoo/kazoo - - intranet/wiki/src/wiki/legacy/ya_blockdiag - - keyboard/dict/lm_prune - - logbroker/tools/auto/mirror_repair/lib - - logbroker/tools/lb_model_workload/utils/config_generation - - logbroker/tools/manual/collect_capacity/analyze_capacity_2020 - - logbroker/tools/manual/collect_capacity/base_2020 - - logbroker/tools/manual/collect_capacity/common - - logbroker/tools/manual/collect_capacity/set_capacity_pre - - logbroker/unified_agent/tools/juggler_bundle/checks - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/car_mask - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/matcher/detector - - maps/wikimap/mapspro/services/mrc/eye/experiments/signs_map/matcher/mask - - mds/s3/tests/lib - - mssngr/botplatform/src/bots/pusher - - noc/annlib/annlib - - oebs/bi/ariba/container_bin - - passport/backend/core/test/test_utils - - passport/backend/dbscripts - - quality/neural_net/bert/bert/build_vocab - - quality/yaqlib/yaqutils - - sandbox/projects/MarketQC/dbs_time_alarm - - search/resonance/tester/tests/weight_check - - strm/channel_tumbler/lib/components - - strm/strm_trns_manager/lib/utils - - tracker/scripts/jira_to_tracker - - travel/avia/shared_flights/lib/python/date_utils - - yabs/infra/monitorings/yabs_monitorings/meta_info - - yabs/python-libs/common - - yabs/server/libs/config/runner - - yabs/server/test/ft/BSDEV-42903 - - yabs/server/test/qabs_bsserver_pytest - - ydo/tools/dispatch/dispatch_tester/lib - - yt/odin-checks/bin/snapshot_validation - - yweb/antimalware/directchecker/metrics/merge_incoming_age/bin - - yweb/antimalware/visual_html_parser/yandex-search-antivirus-common/antivir/common - - yweb/antispam/webspam/export/porno/porno_hosts - - zen/mstand/squeeze_zen/utils - PLR1733: - ignore: - - PLR1733 - prefixes: - - bi/toolbox/project_management/lib - - infra/capacity_planning/library/python - - infra/reconf_juggler/util/quorum - - market/sre/tools/capacity/lib/DAU - - mssngr/botplatform/src/bots/core/testutils - - quality/ab_testing/scripts/ems/library/ab_calculations - - quality/user_sessions/kpi_robot - - sandbox/projects/billing/tasks/Faas/BillingFaasBuildTask - - search/priemka/yappy/tests/test_yappy_lib/test_yappy_lib - - voicetech/vqe/tools/health_check/lib - - yp/scripts/yp_util/tests - PLR1736: - ignore: - - PLR1736 - prefixes: - - datalens/backend/app/bi_api/tests/db/data_api/result - - dict/mt/video/vh3/put_double_audio - - distribution_interface/backend/backend/product/models - - extsearch/unisearch/medicine/data_processing/test_lib - - ml/tensorflow/ytensorflow/tests/layers - - passport/backend/core/cookies - - taxi/uservices/services/grocery-pro-misc/testsuite/tests_grocery_pro_misc - - taxi/uservices/services/grocery-uber-gw/testsuite/tests_grocery_uber_gw - - yabs/server/test/ft/BSSERVER-8736 - PLW0109: - ignore: - - PLW0109 - prefixes: - - adfox/pdb3/create_table - - billing/log_tariffication/py/tests/integration/partner_acts - - billing/log_tariffication/py/tests/integration/partner_tariff - - cloud/support/tools/websaint/app/saint - - cv/imageproc/ocr/tools/statistic/auto_tests/nirvana/vh3/resources - - devtools/ya/test/fat_test - - dict/mt/make/db/content - - extsearch/audio/deepdive/common - - infra/service_controller/tests - - keyboard/grid/tap_model/python/tap_model - - load/projects/yandex-tank/yandextank/plugins/Solomon/tests - - market/dynamic_pricing/pricing/dynamic_pricing/prepare_stats/tests - - market/quality/unisearch/premod - - noc/noc-billing/opexcapex_classifier/opexcapex - - ofd/runtime/new/tests/unit - - payplatform/scrooge/scrooge/api - - quality/functionality/facts/ml_experiments/bert/0027_fact_snippet_experiments - - quality/functionality/facts/ml_experiments/bert/0029_fact_snippet_experiments - - quality/functionality/facts/ml_experiments/bert/0040_fact_snippet_experiments - - quality/functionality/facts/ml_experiments/bert/0041_large_bert_multi_gpu - - quality/functionality/facts/ml_experiments/bert/0042_large_bert_multi_gpu_no_region - - quality/functionality/facts/ml_experiments/bert/0044_large_bert_multi_gpu_aliases - - quality/functionality/facts/ml_experiments/bert/0045_large_bert_multi_gpu_aliases_reverse - - quality/functionality/facts/ml_experiments/bert/0050_large_bert_multi_gpu_aliases - - quality/functionality/facts/ml_experiments/bert/0052_large_bert_multi_target_test - - quality/functionality/facts/ml_experiments/bert/0055_large_bert_aliases_accum - - quality/functionality/facts/ml_experiments/bert/0056_large_bert_multi_target_test_weights - - quality/nirvana_tools/graphs/lib - - robot/metrics/social_sbr/get_langs - - statbox/statkey/reactor/cubes/datacatalog/prepare_processes/v2/ut - - taxi/antifraud/purga/score/startrek/setresults - - taxi/eda/eda_analytics/product_dashboard - - taxi/eda/eda_analytics/restlist_dashboard - - taxi/eda/eda_analytics/search_dashboard - - taxi/robowarehouse/lib/api/tests/functional/routes/v1/dealer - - voicetech/asr/pipeline/l2eou/lib - - voicetech/infra/tools/library/websocket_tts - - yabs/qa/oneshots/cberg/new_keywords_eda_plus_crypta - - yabs/sbyt/ytstatcollector/direct/tests/direct_grid - - yabs/server/test/ft/BSSERVER-16637 - - yabs/server/test/ft/BSSERVER-19282 - - yabs/server/test/ft/BSSERVER-19930 - - yabs/stat/solo/sensors - PLW0122: - ignore: - - PLW0122 - prefixes: - - admins/yandex_salt_components - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/yacontext/lib/pymain - - billing/monthclosing/operations/monograph_builder/lib - - catboost/libs/model/model_export/ut - - catboost/yandex_specific/pytest_conda - - cloud/dwh/nirvana/operations/exec_python_script - - crm/infra/pymonitor/pymonitor/monitors - - datalens/backend/lib/bi_app_tools/bi_app_tools - - devtools/ya/core/yarg - - dict/mt/eval/eval_viewer/lib/util/json_serializable - - entity/ontodb/util/wiki/py3 - - extsearch/audio/tools/vh_tools/tests - - extsearch/unisearch/tools/gzt_exp_machine - - infra/rtc_sla_tentacles/backend/lib/debug - - infra/skylib/debug_server - - intranet/plan/src/plan/resources - - library/python/pymain - - logos/libs/profiling/flamegraph - - mail/contrib/aioconsole/aioconsole - - modadvert/libs/multik/core - - modadvert/libs/supermoderation/service_load - - modadvert/libs/utils/codegeneration - - mssngr/router/tests/lib - - quality/neural_net/bert/bert/pytorch/turing - - quasar/manifest_scripts/manifestlib - - sandbox/agentr - - sandbox/taskbox/binary - - search/beholder/src/services - - search/integration_tests/util - - talents/recommender/config_compiler - - voicetech/bio/pybio - - yt/python/yt/wrapper - - yweb/yasap/answers/answers/resources - - yweb/yasap/answers/answers/schemas - - yweb/yasap/answers/answers_fast/lib/load_tree - - yweb/yasap/answers_nirvana/realtime_markup - PLW0124: - ignore: - - PLW0124 - prefixes: - - crypta/profile/services/disable_unused_segments/bin/test - - dict/mt/make/modules/eval - - dict/mt/make/tools/download_newscrawl - - dict/mt/make/tools/filter_kwyt - - dict/mt/make/tools/lang_detector/train_trigram_classifier_lang_detector - - dict/mt/make/tools/lang_detector/train_vw_lang_detector - - dict/mt/make/tools/make_translit - - dict/mt/make/tools/search_suggest - - dict/mt/make/tools/title_rate_filter - - dict/mt/make/tools/translate_mtd_to_pack - - dict/mt/make/tools/yt_map_gpu - - maps/garden/tools/operation_fetcher/bin - - sandbox/executor/commands/task - - search/beholder/src/worker/nodes - - search/morty/src/model - - search/priemka/yappy/tests/test_yappy_lib/test_queue - - yweb/video/faas/graphs/ad - - yweb/video/faas/graphs/audio - - yweb/video/faas/graphs/browser - - yweb/video/faas/graphs/bsvideo - - yweb/video/faas/graphs/catchup-vod - - yweb/video/faas/graphs/music - - yweb/video/faas/graphs/music-videoshots - - yweb/video/faas/graphs/ott/abr_stream_splitter - - yweb/video/faas/graphs/regular - - yweb/video/faas/graphs/regular-drm - - yweb/video/faas/graphs/regular-fast - - yweb/video/faas/graphs/regular-parallel - - yweb/video/faas/graphs/ugc-drm - - yweb/video/faas/services/ott/graph - - zen/yweb/video/faas/graphs/ad - - zen/yweb/video/faas/graphs/audio - - zen/yweb/video/faas/graphs/browser - - zen/yweb/video/faas/graphs/bsvideo - - zen/yweb/video/faas/graphs/catchup-vod - - zen/yweb/video/faas/graphs/games - - zen/yweb/video/faas/graphs/music - - zen/yweb/video/faas/graphs/music-videoshots - - zen/yweb/video/faas/graphs/regular - - zen/yweb/video/faas/graphs/regular-drm - - zen/yweb/video/faas/graphs/regular-fast - - zen/yweb/video/faas/graphs/regular-parallel - - zen/yweb/video/faas/graphs/ugc-drm - - zen/yweb/video/faas/services/ott/graph - PLW0128: - ignore: - - PLW0128 - prefixes: - - search/mon/bot/bot/telegram - PLW0129: - ignore: - - PLW0129 - prefixes: - - entity/ugc/robot/tools/antifraud_processor/lib/ut - - k50/shopping/src/server/cron_tasks/marketplace_categories_and_attributes - - sdg/labeling/storage/lib - PLW0150: - ignore: - - PLW0150 - prefixes: - - ads/quality/reach_product/gauc_calculator/lib - - ads/quality/reach_product/zc_calculator/lib/calculate - - cloud/support/metrics/metrics_collector - - distribution_interface/backend/backend/kraken/handlers - - education/english/lib/metric_exporter/src - - education/english/services/sync/app - - infra/qyp/qdm/src/server - - infra/skyboned/src - - infra/walle/server/walle/views/api - - intranet/ims/ims_connectors/connector_core - - logos/libs/testy/core - - mail/webmail/groupie/groupie - - mlp/mail/ind/demo/interfaces/http/tests - - passport/backend/oauth/api/api/old/bundle_views - - search/mon/bot/bot - - search/mon/bot/kbf - - search/mon/wabbajack/libs/workers - - taxi/robowarehouse/lib/api/routes/v1/monitoring - - yabs/analytics/ml_monitor/classify_catboost - - yabs/telephony/platform/tools/loadtest/lib - - yt/yt/tests/integration/node - PLW0211: - ignore: - - PLW0211 - prefixes: - - ads/quality/adv_machine/tools/ci - - alice/megamind/tests/library - - billing/dcsaap/backend/api/views - - crm/supskills/direct_skill/tests/scenario_tests - - devtools/ya/yalibrary/yandex/ci - - distribution_interface/backend/backend/contract - - keyboard/android/libaml - - maps/masstransit/tools/upload_rasp_yt_tables/lib - - ml/libs/ml_data_reader/src/ml_data_reader/iterators - - modadvert/bigmod/scripts/lib - - ofd/common/exporter/fields - - passport/backend/utils - - saas/library/python/singleton - - search/morty/tests/test_services - - statbox/statkey/reactor/tools/anomaly_detector/lib - - travel/avia/shared_flights/tasks/ssim_parser/tests - - travel/rasp/bus/api/connectors/entities - - weather/db/models - - web/app_host/tools/upper_template_generator/src/yabs_counter - - yabs/server/cs/tools/ci - - yabs/server/test/ft/BSSERVER-11310 - - yabs/server/test/ft/BSSERVER-13708 - - yabs/server/test/ft/BSSERVER-6062 - - yabs/stat/rtstat/deploy/config/lib - PLW0222: - ignore: - - PLW0222 - prefixes: - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - alice/uniproxy/library/auth - - alice/uniproxy/library/idm - - alice/uniproxy/library/testing/mocks - - crypta/lib/python/rtmr/test_framework - - distribution_interface/backend/backend/multistate - - intranet/wiki/src/wiki/utils/wfaas - - maps/garden/sdk/sandbox - - quality/neural_net/bert/bert/utils/hooks - - search/tools/fast_data_deployment/lib - - smarttv/droideka/proxy/serializers - - web/app_host/tools/upper_template_generator/src/base - - yabs/server/test/qabs_bsserver_pytest - PLW0244: - ignore: - - PLW0244 - prefixes: - - devtools/pr_checks/checker/lib - - mail/pypg/pypg/types - - mail/contrib/python/aiopg/aiopg - - search/beholder/src/worker/nodes - - saas/library/python/nanny_rest/service_mutable_proxy - - search/mon/bot/bot/modules/base - PLW0245: - ignore: - - PLW0245 - prefixes: - - statbox/statkey/reactor/tools/profiler - PLW0311: - ignore: - - PLW0311 - prefixes: - - comdep_analytics/comdep_recsys/etl_core/utils - - dict/mt/make/processes/gen_download_commoncrawl_graph/libs/commoncrawl_cube/lib - - dict/mt/make/processes/gen_download_commoncrawl_graph/libs/parse_warc - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsSeries - - infra/dostavlyator/lib/db - - logbroker/tools/manual/analyze_and_set_maximum_partition_speed - - logbroker/tools/manual/collect_capacity/analyze_capacity_2020 - - logbroker/tools/manual/collect_capacity/common - - quality/functionality/scripts/psuh/HomeWorkLib/third_party/geopy/geopy/geocoders - - robot/quality/smelter/backend_django/channels/utils - - robot/rthub/tools/balancer_polirol - - robot/rthub/tools/partitions_monitor - - sandbox/projects/market/WHSupport/RestartingOrder - - yabs/qa/oneshots/cberg/new_keywords_eda_plus_crypta - PLW0601: - ignore: - - PLW0601 - prefixes: - - alice/boltalka/generative/tfnn/telegram_bot - - alice/tools/rivals_e2e/cmd_runner - - antirobot/scripts/ddos_detector - - crypta/web/dating/back - - education/schoolbook/analytics/ml/boosting/lib - - jupytercloud/tools/mass_rsync - - jupytercloud/tools/puncher-sync - - keyboard/analytics/toloka/scripts/api_client - - kikimr/yf/tests/ydb - - maps/garden/libs_server/graph/tests/py - - maps/poi/notification/bin/prepare_org_status_pushes - - maps/poi/personalized_poi/builder/dynamic_poi/bin/make_dynamic_poi - - maps/tools/cpptmpl - - mediapers/clearInstance - - ml/row_processors/row_processors - - ml/zeliboba/api - - mssngr/botplatform/tests/unit - - mssngr/router/tests/lib - - plus/mobile/infra/common - - plus/utils/signals - - quasar/manufacturing/elenchus/hwtest/jigs - - sandbox/projects/WHSupport/prn_snmp - - sandbox/projects/market/postamat/stress/CourierAmmoGenerator - - sandbox/projects/market/postamat/stress/DsAmmoGenerator - - sandbox/projects/market/postamat/stress/PostamatAmmoGenerator - - search/tools/sandbox_profiler/libs - - web/daemons/begemot/scripts/nanny_tidiness - - yabs/server/tools/filter_reason_disable - - yweb/antispam/clean_web/common_processes/compressed_logs_viewer - PLW0642: - ignore: - - PLW0642 - prefixes: - - search/mon/tasklets/goals_trainings_metrics_addition/src - - statbox/qb2_core/qb2/utils/datetime - - travel/rasp/bus/api/connectors/entities - - yweb/news/news_back/api/models - PLW0705: - ignore: - - PLW0705 - prefixes: - - juggler/juggler_client/lib - - logbroker/tools/auto/mirror_repair/lib - - market/pylibrary/common - - quasar/manifest_scripts/manifestlib - PLW0711: - ignore: - - PLW0711 - prefixes: - - cv/imageproc/ocr/tools/page_layout/datasets_processing/manuscript_blocks_dataset_converter - PLW1309: - ignore: - - PLW1309 - prefixes: - - ads/quality/ltp/libs/torch - - billing/tasklets/nirvana/packing/impl - - cloud/ai/speechkit/stt/bin/data_pipeline/import_data/s3_bucket - - cloud/support/metrics - - cloud/support/metrics/metrics_collector - - cloud/support/tools/websaint/app - - cloud/support/tools/websaint/app/saint - - comdep_analytics/comdep_recsys/etl_core/utils - - crowdsourcing/elc/CwasBot/utils/api - - crowdsourcing/elc/CwasBot/utils/misc - - infra/dostavlyator/lib/upravlyator - - kikimr/ci/tasklets/update_hostgroup/impl - - kikimr/ci/tasklets/update_resource/impl - - logbroker/tools/deploy_consistency_test/generator - - market/forecast/demand_ml_forecast_validation/lib/data_preparation - - market/forecast/demand_ml_forecast_validation/lib/datasources - - market/forecast/demand_ml_forecast_validation/lib/task - - market/forecast/torch_demand/lib/tasks - - market/replenishment/algorithms/manager_tool/manual_region_forecast - - market/replenishment/algorithms/manager_tool/manual_total_forecast - - market/sre/tools/capacity/lib/DAU - - ml/zeliboba/nirvana/operations/wizards - - search/mon/fm_monitor - - voicetech/asr/cloud_engine/vh/bin/vision_train_multiclass - - ytech/ecom_tools/amazon/bots/aspects_bot - PLW1310: - ignore: - - PLW1310 - prefixes: - - cloud/support/tools/qcalc/app - - cloud/support/tools/subnetcreator - - comdep_analytics/comdep_recsys/etl_core/etl/yt - - dict/mt/mtdict/make/definitions/modules/images/avatars - - grut/tools/admin/commands - - logbroker/tools/cluster_migration/copy_offsets/check_utils/random_tablets - - maps/factory/dem_correction/roads_segmentation/train - - search/priemka/yappy/src/processor/modules/verificator/checks - - sport/backend/sport/projects/formula1 - - taxi/uservices/libraries/client-fleet-parks/testsuite/client_fleet_parks - - voicetech/tts/testing/bucket_collection - - yabs/server/test/ft/BSSERVER-5556 - - ydo/tools/dispatch/dispatch_tester/lib - PLW2301: - ignore: - - PLW2301 - prefixes: - - education/lib/events_processor/example - - education/services/enigma/app/controllers/stands - - sdg/internal_auth/admin/lib/idm/services - - sdg/internal_auth/admin/lib/roles/services - - sdg/internal_auth/admin/lib/social/services - - sdg/internal_auth/admin/lib/staff/services - - sdg/internal_auth/admin/lib/transfer/repositories - - sdg/internal_auth/admin/lib/utils/tvm - - sdg/internal_auth/admin/lib/utils/yandex_id - - sdg/internal_auth/sidecar/lib/auth/repositories - - sdg/internal_auth/sidecar/lib/auth/services - - sdg/internal_auth/sidecar/lib/users/repositories - - sdg/internal_auth/sidecar/lib/users/services - - sdg/library/python/sdg_http_client/sdg_http_client/async_client - - sdg/library/python/sdg_http_client/sdg_http_client/common/decoders - - sdg/library/python/sdg_http_client/sdg_http_client/common/encoders - - sdg/library/python/sdg_http_client/sdg_http_client/sync_client - - sdg/library/python/sdg_internal_auth_client/sdg_internal_auth_client/sidecar/async_client - - sdg/library/python/sdg_internal_auth_client/sdg_internal_auth_client/sidecar/sync_client - - sdg/library/python/sdg_yandex_staff_client/sdg_yandex_staff_client/async_client - - sdg/library/python/sdg_yandex_staff_client/sdg_yandex_staff_client/sync_client - - search/mon/uchenki/lib/utils - - trust/bill76/corovaneer/httplib - PLW4701: - ignore: - - PLW4701 - prefixes: - - adfox/amacs/tests/functional/utils - - april/web/bas/qa - - extsearch/video/functionality/fastdelivery/NewCombineVhsRequests/NewCombineVhsFilms - - maps/b2bgeo/libs/py_sqlalchemy_utils - - maps/garden/modules/ymapsdf/lib/ymapsdf_tester - - market/sre/tools/marketsre_cli/commands/nanny - - modadvert/nirvana/clusterize/libs - - sandbox/projects/rt_money/releaser - - noc/iptel/robocheck/bin - - sandbox/scripts/tools/excavator/commands - - yt/odin-checks/bin/oauth_health - - yweb/yasap/answers/answers/async_counters - W291: - ignore: - - W291 - prefixes: - - infra/skybone-coord/src - - infra/skybone-coord/src/daemon - W292: - ignore: - - W292 - prefixes: - - extsearch/audio/generative/ableton_api_client/contrib/aiolo - - infra/skybone-coord/src/daemon - W293: - ignore: - - W293 - prefixes: - - infra/skybone-coord/src - - infra/skybone-coord/src/daemon - W391: - ignore: - - W391 - prefixes: - - extsearch/audio/generative/ableton_api_client/contrib/aiolo - W605: - ignore: - - W605 - prefixes: - - addappter/backend/testing - - addappter/backend/testing/fixtures/configuration/ios - - adfox/amacs/tests/functional/tests_amacs/bugs/medium - - adfox/amacs/tests/functional/tests_amacs/dynamic_monetization/v2 - - adfox/amacs/tests/functional/tests_amacs/targeting/targeting_logic_tree_puids - - adfox/amacs/tests/functional/utils - - adfox/amacs/tests/functional/utils/db - - adfox/amacs/tests/functional/utils/tools - - ads/bsyeti/servants/bot - - ads/libs/py_autobudget - - ads/libs/py_bid_correction - - ads/libs/py_cliutils - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/mapreducelib - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabtools - - ads/libs/py_mapreduce/yabs-mapreduce-modules/py-modules/yabs/tabutils - - ads/libs/py_ml_factors/factor - - ads/libs/py_ml_factors/matrixnet - - ads/libs/py_test_mapreduce - - ads/ml_engine/learn/result/flow_generate_extended_fstr - - ads/ml_engine/learn/result/local_extended_fstr - - ads/ml_engine/learn/result/local_extended_fstr/lib - - ads/ml_engine/lib - - ads/ml_monitoring/alerts/ut - - ads/nirvana/automl/lib/batch_processor - - ads/nirvana/difacto/online_loss_processor - - ads/nirvana/online_learning/move_dmlc_dumps/lib - - ads/nirvana/online_learning/pipeline_launcher/task_utils/lib - - ads/nirvana/sequential_learning - - ads/nirvana/tools/apc_check - - ads/quality/apc/gmg/generate_workflow - - ads/quality/apc/gmg/make_lm_pool - - ads/quality/apc/gmg/make_lm_pool/lib - - ads/quality/apc/prgmgv3/workflow_constructor/lib - - ads/quality/dssm/lib - - ads/quality/dssm/prgmg/make_pool - - ads/quality/dssm/search/201708/make_pool - - ads/quality/dssm/synonyms/search/tools/join_fields - - ads/quality/max_positions - - ads/quality/search_lm_conv/lib - - ads/quality/tools/adj_calc - - ads/sandbox_scripts/bmcategory_queryage_coeffs/lib - - ads/sandbox_scripts/build_tag_rules_table - - ads/sandbox_scripts/clean_mapreduce/ut - - ads/sandbox_scripts/join_yabar - - ads/tools/mranalyze - - ads/tools/yt_operations_analyzer - - ads/watchman/contrib/apispec-patched - - ads/watchman/contrib/apispec-patched/apispec - - ads/watchman/experiments/lib - - advq/offline_phits/monitoring - - alice/boltalka/generative/tfnn/preprocess - - alice/boltalka/generative/training/data/nn/filtered_twitter - - alice/boltalka/generative/training/data/nn/util - - alice/boltalka/generative/training/data/nn/util/dict - - alice/boltalka/tools/dssm_preprocessing/preprocessing/lib - - alice/nlu/py_libs/tokenizer/ut/py2 - - alice/nlu/py_libs/tokenizer/ut/py3 - - alice/nlu/tools/paraphrase_finder - - alice/paskills/nirvana_inflector - - alice/paskills/recipe_utils/lib - - alice/tests/difftest/request_miner - - april/web/bas/bm - - april/web/bas/bm/utils - - april/web/bas/collector - - aurora/aurora/core - - aurora/aurora/core/toloka - - aurora/xpath/api/utils - - aurora/xpath/applier - - balancer/test/util - - balancer/test/util/dnsfake - - billing/apikeys/apikeys - - billing/apikeys/apikeys/butils_port - - billing/apikeys/apikeys/butils_port/application - - billing/dcs/dcs - - billing/dcs/dcs/temporary/butils - - billing/dcs/dcs/temporary/butils/application - - cloud/bootstrap/db/src/admin - - cloud/iam/codegen/python/codegen - - cloud/netinfra/rknfilter/yc_rkn_s3tools - - commerce/adv_backend - - commerce/adv_backend/backend/management/commands/migrator - - commerce/adv_backend/backend/validators - - contrib/nginx/tests/tap - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/extract_pdf_boxes - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/g_blocks - - cv/imageproc/ocr/tools/nirvana/blocks_dataset/rotate_pdf - - cv/imageproc/ocr/tools/nirvana/confidence_factors/format_utils - - cv/imageproc/ocr/tools/nirvana/recaptcha/generate_captcha_images - - cv/imageproc/ocr/tools/statistic/auto_tests/ocr_test_lib - - cv/imageproc/ocr/tools/statistic/ocr_intent_statistic - - cv/imageproc/ocr/tools/statistic/rectify_evaluation/document_edges_statistic - - cv/imageproc/ocr/tools/statistic/rectify_evaluation/ocr_statistic - - cv/imageproc/ocr/tools/statistic/rectify_evaluation/yt_runner - - cv/imageproc/ocr/tools/toloka_labeling/add_main_areas_to_labelling - - cv/imageproc/ocr/tools/toloka_labeling/add_ocr_line_recognition - - cv/imageproc/ocr/tools/toloka_labeling/convert - - cv/imageproc/ocr/tools/toloka_labeling/convert_toloka_labeling_to_asessors_labeling - - cv/imageproc/ocr/tools/toloka_labeling/get_labeling - - cv/imageproc/ocr/tools/toloka_labeling/labeling - - cv/imageproc/ocr/tools/toloka_labeling/labeling_assessors - - cv/imageproc/ocr/tools/toloka_labeling/labeling_captcha - - cv/imageproc/ocr/tools/toloka_labeling/paint_good - - cv/imageproc/ocr/tools/toloka_labeling/studier/generate_blocks_images - - cv/imageproc/ocr/tools/toloka_labeling/studier/get_queries_info - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/convert_box_labeling - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/extact_ocr_with_gt_blocks - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/get_bleu_statistic - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/get_etalon_ocr_result - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/get_translate_orig_from_ocr_labelling - - cv/imageproc/ocr/tools/toloka_labeling/translate_e2e_metric/match_blocks - - cv/imgclassifiers/framework/gpu_utilization - - cv/imgclassifiers/framework/nirvana/runners/train/statistics_parser - - datacloud/score_api/validators - - devtools/adept - - devtools/import_contrib/projects/phonenumber - - devtools/qafw/qyp - - devtools/qafw/rtc_deploy/lib - - devtools/qafw/selenium/lib - - devtools/signer/signer/utils - - devtools/ya/test - - devtools/ya/test/tests/lib - - dict/moria/nirvana/context/begemot_thesaurus_rule - - dict/moria/nirvana/lib/util - - dict/ontodb/cardsparser/lib - - dict/ontodb/daily/merge_cache - - dict/ontodb/daily/validator - - dict/ontodb/images/lib - - dict/ontodb/isa/subtitle/add_subtitles - - dict/ontodb/lists/toloka/parsing - - dict/ontodb/onto_lib/card_to_url - - dict/ontodb/onto_lib/card_utils - - dict/ontodb/onto_lib/sources/discogs - - dict/ontodb/onto_lib/sources/fantlab - - dict/ontodb/onto_lib/sources/freebase - - dict/ontodb/onto_lib/sources/freebase/mediators - - dict/ontodb/onto_lib/sources/google_play - - dict/ontodb/onto_lib/sources/itunes - - dict/ontodb/onto_lib/sources/kinopoisk - - dict/ontodb/onto_lib/sources/labirint - - dict/ontodb/onto_lib/sources/musicbrainz - - dict/ontodb/onto_lib/sources/transfermarkt - - dict/ontodb/onto_lib/sources/www - - dict/ontodb/report/common - - dict/ontodb/report/film_stuff - - dict/ontodb/schema - - dict/ontodb/tools/entity_lists/build_watson_sources/config - - dict/ontodb/tools/entity_lists/build_watson_sources/src/filmkomedia - - dict/ontodb/tools/entity_lists/build_watson_sources/src/filmzor - - dict/ontodb/tools/entity_lists/build_watson_sources/src/imdb - - dict/ontodb/tools/entity_lists/build_watson_sources/src/kinolinehd - - dict/ontodb/tools/entity_lists/build_watson_sources/src/kinotime - - dict/ontodb/tools/entity_lists/build_watson_sources/src/kinovolt - - dict/ontodb/tools/entity_lists/is_series_film_query - - dict/ontodb/tools/entity_lists/mine_titles - - dict/ontodb/tools/entity_lists/parser/config - - dict/ontodb/tools/entity_lists/parser/src/adme - - dict/ontodb/tools/entity_lists/parser/src/afisha - - dict/ontodb/tools/entity_lists/parser/src/allbestmovies - - dict/ontodb/tools/entity_lists/parser/src/cinemacc - - dict/ontodb/tools/entity_lists/parser/src/cinetoday - - dict/ontodb/tools/entity_lists/parser/src/cobrafilm - - dict/ontodb/tools/entity_lists/parser/src/detifilm - - dict/ontodb/tools/entity_lists/parser/src/dostfilms - - dict/ontodb/tools/entity_lists/parser/src/fasttorrentsu - - dict/ontodb/tools/entity_lists/parser/src/filmanias - - dict/ontodb/tools/entity_lists/parser/src/filmhd1080 - - dict/ontodb/tools/entity_lists/parser/src/filmkomedia - - dict/ontodb/tools/entity_lists/parser/src/filmov1000 - - dict/ontodb/tools/entity_lists/parser/src/filmpro - - dict/ontodb/tools/entity_lists/parser/src/filmuzhasov - - dict/ontodb/tools/entity_lists/parser/src/filmzor - - dict/ontodb/tools/entity_lists/parser/src/hdkinoclub - - dict/ontodb/tools/entity_lists/parser/src/iceagemult - - dict/ontodb/tools/entity_lists/parser/src/imdb - - dict/ontodb/tools/entity_lists/parser/src/ivi - - dict/ontodb/tools/entity_lists/parser/src/kinohabr - - dict/ontodb/tools/entity_lists/parser/src/kinohorror - - dict/ontodb/tools/entity_lists/parser/src/kinolinehd - - dict/ontodb/tools/entity_lists/parser/src/kinomliff - - dict/ontodb/tools/entity_lists/parser/src/kinoonlinetop - - dict/ontodb/tools/entity_lists/parser/src/kinopod - - dict/ontodb/tools/entity_lists/parser/src/kinopoisk - - dict/ontodb/tools/entity_lists/parser/src/kinorip - - dict/ontodb/tools/entity_lists/parser/src/kinosky - - dict/ontodb/tools/entity_lists/parser/src/kinotime - - dict/ontodb/tools/entity_lists/parser/src/kinotop - - dict/ontodb/tools/entity_lists/parser/src/kinovolt - - dict/ontodb/tools/entity_lists/parser/src/luchshiespiski - - dict/ontodb/tools/entity_lists/parser/src/megogo - - dict/ontodb/tools/entity_lists/parser/src/multikstv - - dict/ontodb/tools/entity_lists/parser/src/multyasha - - dict/ontodb/tools/entity_lists/parser/src/newfilmpro - - dict/ontodb/tools/entity_lists/parser/src/okino - - dict/ontodb/tools/entity_lists/parser/src/okomediya - - dict/ontodb/tools/entity_lists/parser/src/onlinekinohd - - dict/ontodb/tools/entity_lists/parser/src/parkhorror - - dict/ontodb/tools/entity_lists/parser/src/prostotop - - dict/ontodb/tools/entity_lists/parser/src/rosmovies - - dict/ontodb/tools/entity_lists/parser/src/rserial - - dict/ontodb/tools/entity_lists/parser/src/shikimori - - dict/ontodb/tools/entity_lists/parser/src/strahzona - - dict/ontodb/tools/entity_lists/parser/src/tabfilm - - dict/ontodb/tools/entity_lists/parser/src/thecinemaclub - - dict/ontodb/tools/entity_lists/parser/src/tlum - - dict/ontodb/tools/entity_lists/parser/src/topspiski - - dict/ontodb/tools/entity_lists/parser/src/vmirefilmov - - dict/ontodb/tools/entity_lists/parser/src/vokrugtv - - dict/ontodb/tools/entity_lists/parser/src/westernfilm - - dict/ontodb/tools/entity_lists/relev - - dict/ontodb/tools/entity_lists/sticky - - dict/ontodb/tools/fields_diff/lib - - dict/ontodb/tools/ontodbfixes/import_fixes/lib - - dict/ontodb/tools/ontodbfixes/viewer - - dict/ontodb/tools/url_answer/lib - - dict/ontodb/user_logs/serp_clicks/lib - - dict/ontodb/user_logs/wiki_spy_clicks - - dict/ontodb/utils - - dict/ontodb/utils/add_clicks - - dict/ontodb/utils/build_helpers - - dict/ontodb/utils/import_json_timelines/lib - - dict/ontodb/utils/map_card_data - - dict/ontodb/utils/monitoring - - dict/ontodb/utils/music - - dict/ontodb/utils/norm_ontoids_in_gzt - - dict/ontodb/utils/norm_urls - - dict/ontodb/utils/string_utils - - dict/ontodb/utils/support_words - - dict/ontodb/utils/update_links - - dict/tools/find_synonym - - disk/admin/monitors/common - - disk/admin/robot_switcher - - dj/tools/viewer/custom/entity - - education/lib/nirvana/operations/yt_nodes_deep_diff - - education/schoolbook/analytics/adhoc/ANALITICSEDU-515 - - education/schoolbook/analytics/adhoc/ANALITICSEDU-687 - - entity/ontodb/tasks/backup_yt_tables/lib - - entity/ontodb/tasks/clean_old_data - - entity/ontodb/tasks/import_museums/lib - - entity/ontodb/tasks/import_yam/lib - - entity/ontodb/tasks/send_table_checker_sensors/lib - - entity/ontodb/util/wiki - - entity/quality/helix - - entity/quality/metrics/film_lists/combine_attributes_for_stupids_marking - - entity/quality/metrics/not_film_lists/combine_attributes_for_stupids_marking - - entity/quality/metrics/passport - - entity/ugc/quality/reviews_ranking/ml/lib/trueskill - - entity/ugc/tests/lib - - entity/ugc/tools/bell/replay_requests - - entity/ugc/tools/tank/user_poll_ammo - - entity/ugc/tools/viewer_server/lib - - entity/ugc/tools/viewer_server/lib/core - - extsearch/audio/yamrec/query_browser - - extsearch/collections/tools/mmeta2metrics_serp - - extsearch/collections/tools/nirvana/collections_indexer - - extsearch/collections/tools/upper2metrics_serp - - extsearch/geo/conveyors/annotations/filtrate_banned_v2 - - extsearch/geo/conveyors/annotations/metro_extractor/get_metro_to_ll - - extsearch/geo/conveyors/experimental/annotations/fast_annotations/collection_keywords_extractor - - extsearch/geo/tools/similar_orgs/read_user_session - - extsearch/geo/tools/special_features/mining_result_merger - - extsearch/images/library/ytscraper - - extsearch/images/money/scripts/robot - - extsearch/images/money/scripts/robot/util - - extsearch/images/money/tools/commercial_serps_downloader - - extsearch/images/robot/index/testlib/index_process_description - - extsearch/images/robot/library/pycm - - extsearch/images/robot/scripts/cm/semidup2 - - extsearch/images/robot/tools/index_snapshot_cleaner - - extsearch/images/robot/tools/indexrotate - - extsearch/images/robot/tools/robot_losses/python/rotor_download_images - - extsearch/video/python/yql - - extsearch/video/quality/series/base/builder/common - - extsearch/video/quality/series/base/builder/wrappers - - extsearch/video/robot/cm/deletes/cmpy/playerdata - - extsearch/video/robot/cm/library - - extsearch/video/robot/hostsdb/tool/config/add_rules - - extsearch/video/robot/rt_transcoder/metarobot/tests - - extsearch/video/robot/rt_transcoder/transcoder/tests - - haas/cmis/hwr_allocation - - haas/cmis/hwr_allocation/allocation_methods - - health/articles/articles_pipeline - - health/articles/articles_pipeline/actions - - health/articles/articles_pipeline/lib - - health/articles/articles_pipeline/lib/util - - health/common_libs/utils - - health/yamd/health_import - - health/yamd/health_import/data_tests - - health/yamd/libs/cross_links - - health/yamd/libs/utils - - health/yamd/libs/utils/parsers - - infra/awacs/vendor/awacs/pire/ut - - infra/deploy/tools/yd_migrate/lib - - infra/gencfg-gui - - infra/heartbeat/src - - infra/heartbeat/src/daemon - - infra/kernel/tools/coroner - - infra/netconfig/utils/pinger/lib - - infra/qyp/vmctl/src - - infra/reconf_juggler/tools/jdiff/tests - - infra/rtc/janitor - - infra/scripts/eventlog_uploader/script - - infra/yp_drcp/lib - - irt/bmgen/market_data - - irt/bmgen/synonyms - - keyboard/analytics/toloka/nirvana/blocks - - keyboard/analytics/toloka/nirvana/swipe - - keyboard/analytics/toloka/nirvana/typing - - keyboard/dict/nirvana/blocks - - library/python/testing/filter - - library/python/testing/gtest - - locdoc/doc_tools/yoda/friends/okapi - - locdoc/doc_tools/yoda/friends/okapi/operations - - logbroker/tools/manual/alter_sqs_tables - - logbroker/tools/manual/create_logbroker_account/lib - - logbroker/tools/manual/load_test/load - - mail/contrib/ccs-caldavtester - - mail/contrib/ccs-caldavtester/src - - mail/contrib/ccs-caldavtester/verifiers - - mail/contrib/tatsu/test - - mail/contrib/tatsu/test/grammar - - mail/python/theatre/app - - mail/tools/ews_call/ews_call - - maps/automotive/proxy/config_generator - - maps/automotive/remote_access/autotests/tests/data_types - - maps/b2bgeo/mvrp_solver/backend/tests_lib - - maps/carparks/regression/renderer/generate_ammo - - maps/carparks/tools/route_lost_viewer/bin - - maps/jams/renderer2/common/ecstatic/lib - - maps/mobile/server/tools/cache_deprecator - - maps/mobile/tools/android-manifest - - maps/pylibs/dataset_collector - - maps/pylibs/monitoring/lib - - maps/pylibs/monitoring/tests - - maps/renderer/tilesgen/tools/lib - - maps/renderer/tools/download_release - - maps/tools/tanker-build/translate_messages - - maps/wikimap/stat/libs/common/tests/lib - - maps/wikimap/stat/libs/common/tests/lib/dates_ut - - market/contrib/python/yaconf_v0.1.2 - - market/contrib/python/yaconf_v0.1.2/yaconf - - market/sre/library/python/maaslib - - market/sre/services/balancer_api/lib - - market/tools/report_stats/lib - - market/yamarec/log-parsers/bin - - market/yamarec/log-parsers/yamarec_log_parsers - - market/yamarec/metarouter/tests - - market/yamarec/metarouter/yamarec_metarouter - - market/yamarec/performance/utils - - ml/nirvana/nope - - ml/tensorflow/ytensorflow - - ml/tensorflow/ytensorflow/ytensorflow/inference - - ml/tensorflow/ytensorflow/ytensorflow/quantization - - ml/tensorflow/ytensorflow/ytensorflow/train/hooks - - modadvert/libs/connectors - - modadvert/libs/lyncher/factor_providers/evil_misprints/it - - modadvert/libs/lyncher/factor_providers/misprints - - modadvert/libs/lyncher/ut/rules - - modadvert/libs/utils/common - - modadvert/libs/utils/common/ut - - modadvert/programs/abuse/bs_abuse_log_processor - - modadvert/programs/direct_proxy/libs/handlers - - modadvert/programs/saas_indexer/libs - - modadvert/programs/transfer_manager/libs - - opensource/sync/bin/arc2git - - opensource/sync/bin/git2git - - orgvisits/library/python/text_tools - - orgvisits/library/python/yt_jobs/tests - - orgvisits/metrics/ugc_feedback/ctr - - passport/backend/core - - passport/backend/core/builders/frodo - - passport/backend/core/builders/yasms - - passport/backend/core/conf - - passport/backend/core/cookies/utils - - passport/backend/core/cookies/utils/werkzeug_ports - - passport/backend/core/db - - passport/backend/core/grants/tests - - passport/backend/core/historydb/tests - - passport/backend/core/suggest - - passport/backend/core/types - - portal/tools/morda-release/server - - quality/ab_testing/abt_resources_lib/loaders/tests/long_metrics - - quality/ab_testing/scripts/kati - - quality/ab_testing/scripts/kati/lib - - quality/antifraud/scripts/prod/traffic_chains - - quality/functionality/chats/feedback/src/feedback/core - - quality/functionality/chats/feedback/src/feedback/core/settings - - quality/functionality/chats/floyd/src/floyd/core - - quality/functionality/chats/floyd/src/floyd/core/settings - - quality/functionality/entity_search/factqueries/instructions/prepare_facts - - quality/functionality/entity_search/factqueries/tools/extract_fact/scripts/get_encyc_queries - - quality/functionality/facts/common/goldensets/actuality/gen_population_tasks - - quality/functionality/facts/recheck/calc_actuality_factors - - quality/functionality/parsepl/libs/parsers/tests - - quality/functionality/parsepl/nirvana/build_market_parsers/src - - quality/functionality/parsepl/toloka/configs_for_parsers - - quality/functionality/parsepl/toloka/configs_for_parsers/ut - - quality/functionality/rtx/scripts/social-serp/nano_squeeze - - quality/functionality/scripts/nirvana/jobs/casper/helpers/ytreader - - quality/functionality/snippets/social_bna - - quality/functionality/snippets/top_hosts/plugins/calculator888 - - quality/functionality/turbo/analytics/ecommerce/lib/page_classifier - - quality/functionality/turbo/auto_cleanup/lib - - quality/functionality/turbo/rss/parser_job/tests/small - - quality/functionality/turbo/tools/infinity/tools/wmc - - quality/functionality/turbo/tools/rediff - - quality/functionality/turbo/tools/tdm - - quality/functionality/turbo/yandex_pogoda - - quality/functionality/unstructured/yt_concatenator/tests - - quality/nirvana_tools/conveyor_operations/asgen/config - - quality/nirvana_tools/conveyor_operations/eval_feature/eval_feature_viewer - - quality/nirvana_tools/conveyor_operations/meta_formula_bfmf_bundle/get_cache_from_appended_features - - quality/query_expansions/proc/covfefe/makefile_update - - quality/query_expansions/tools/tests/test_dummy_process - - quality/relev_tools/dsat/find_words_with_absent_forms - - quality/relev_tools/lboost_ops/nirvana/operations/main/tests - - quality/trailer/suggest/services/maps/conveyors/doc_features/chronostat - - quality/trailer/suggest/services/maps/conveyors/pool/make_pointwise_pool - - quality/trailer/suggest/services/maps/tools/retrieval_test - - quality/trailer/suggest_dict/suggest_framework/tools - - quality/user_sessions/market/custom_statistics - - quality/user_sessions/market/custom_statistics/cust/abtypes/refuses - - quality/userdata/scripts - - quality/userdata/scripts/state_validation - - quality/webfresh/learn/half_hour/build_union_prs - - quality/webfresh/libraries/prs - - quality/webfresh/libraries/prs/tests - - quality/webfresh/metrics/bad_urls_stats - - quality/webfresh/metrics/build_formulas_config - - quality/yaqlib/yaqlint - - regulargeo/tools - - robot/favicon/python - - robot/jupiter/library/python/sample - - robot/jupiter/scripts - - robot/jupiter/viewers/galileo - - robot/kwyt/scripts/sampling_data - - robot/lemur/scripts/common - - robot/metrics/forums_sbr/bin/get_forum_urls - - robot/metrics/forums_sbr/bin/get_urls_sample - - robot/metrics/forums_sbr/bin/parse_zora_result - - robot/metrics/fresh_sbr/mk_fresh_serp - - robot/metrics/rotor_missed_words_metric/bin/gemini_canonize - - robot/metrics/speed_sbr/remove_fresh_hosts - - robot/quality/robotrank/mk_learn_pool/lib - - robot/salmon_agent/counters - - robot/salmon_agent/utils - - rt-research/broadmatching/mr/IRT-1517 - - rt-research/broadmatching/scripts/yt/dyn-sources/generate_dse_banners - - saas/tools/devops/lib - - saas/tools/devops/lib23/tests/py2 - - saas/tools/devops/lib23/tests/py23 - - samogon/libs/sandbox - - sandbox/common/projects_handler - - sandbox/projects/BuildBegemotLightTestConfig - - sandbox/projects/BuildNewsPackage - - sandbox/projects/BuildSportProxyData - - sandbox/projects/BuildYobject - - sandbox/projects/CheckFreshDocuments - - sandbox/projects/CompareNewsdResponses - - sandbox/projects/CompareYmakeDump - - sandbox/projects/ConvertVideo - - sandbox/projects/DeployVideoMmetaShard - - sandbox/projects/GetAdvquickDatabase - - sandbox/projects/GetFusionMiddlesearchResponses - - sandbox/projects/GetPokazometerDatabase - - sandbox/projects/IexBuildPackages - - sandbox/projects/IexImportPatterns - - sandbox/projects/LandingConstructor - - sandbox/projects/LandingConstructor/Stat/Jobs - - sandbox/projects/MediaLib - - sandbox/projects/MediaLib/shardmap - - sandbox/projects/MixQueriesExperimentsRegions - - sandbox/projects/PersonalPoiGenerator - - sandbox/projects/PersonalPoiGenerator/PoisDumper - - sandbox/projects/ReleaseBalancerConfigGenerator - - sandbox/projects/ReleaseConfigGeneratorService - - sandbox/projects/ReleaseMediaShardmaps - - sandbox/projects/ReportDataRuntime - - sandbox/projects/ReportDataRuntimeItem - - sandbox/projects/ReportDataRuntimeRT - - sandbox/projects/ReportDataRuntimeTags - - sandbox/projects/ReportRuleTestFull - - sandbox/projects/RunNewsLoadtest - - sandbox/projects/SOC/YtProxyAnalyzeCommandParams - - sandbox/projects/SOC/YtRawMasterLogAnalysis - - sandbox/projects/SpawnTestConfigGenerator - - sandbox/projects/TaxiSecurity - - sandbox/projects/TaxiSecurity/BadLogsAnalyzer - - sandbox/projects/TaxiSecurity/YodaxAnalyzer - - sandbox/projects/TestFrontMetricsLogs - - sandbox/projects/TestFrontMetricsLogs/modules - - sandbox/projects/TestReportPerformance - - sandbox/projects/TickenatorBatchProcessing - - sandbox/projects/TickenatorBatchProcessing/YasmScreenshoter - - sandbox/projects/Travel/tasks/tools - - sandbox/projects/UpdateConfigGeneratorDb - - sandbox/projects/UpdateTestenvNewsdResources - - sandbox/projects/VpsAmmo - - sandbox/projects/YabsDebuilder - - sandbox/projects/YabsDebuilderDev - - sandbox/projects/adfox/adfox_ui/testpalm/testrunCreate - - sandbox/projects/alice_evo - - sandbox/projects/alice_evo/AliceEvoIntegrationTestsWrapper - - sandbox/projects/antirobot - - sandbox/projects/antirobot/AsnNames - - sandbox/projects/antirobot/LoadTesting - - sandbox/projects/autobudget/autobudget_lib - - sandbox/projects/avia/avia_statistics/update_alternative_routes_prices - - sandbox/projects/avia/avia_statistics/update_flights - - sandbox/projects/avia/avia_statistics/update_median_prices - - sandbox/projects/avia/avia_statistics/update_popular_months - - sandbox/projects/avia/avia_statistics/update_return_ticket_prices - - sandbox/projects/avia/avia_statistics/update_route_crosslinks - - sandbox/projects/avia/flight_status_registrar/FlightStatsRegistrar - - sandbox/projects/avia/flight_status_registrar/OagFlightsRegistrar - - sandbox/projects/avia/flight_status_registrar/VariFlightRegistrar - - sandbox/projects/avia/log_unknown_fare_codes - - sandbox/projects/avia/travel_avia_dump_resource/task - - sandbox/projects/bsyeti - - sandbox/projects/canvas - - sandbox/projects/canvas/video_constructor_utils - - sandbox/projects/cloud/yfm - - sandbox/projects/common/compare_upper_results - - sandbox/projects/common/fusion - - sandbox/projects/common/gencfg - - sandbox/projects/common/market_report - - sandbox/projects/common/mobilesearch - - sandbox/projects/common/mobilesearch/startrek_client - - sandbox/projects/common/yabs - - sandbox/projects/health/acceptance_begemot_graph - - sandbox/projects/laas - - sandbox/projects/laas/CollectTestGeobases - - sandbox/projects/logs/HashedSessionsDiff - - sandbox/projects/logs/TestRalibPerfomance - - sandbox/projects/market/infra/helpers - - sandbox/projects/market/infra/helpers/changes_helper - - sandbox/projects/masstransit/MapsMasstransitImportVehicleTasks - - sandbox/projects/media - - sandbox/projects/media/admins/mysqlcopydb - - sandbox/projects/media/kp-front-nginx/config-validation - - sandbox/projects/media_crm/tasks - - sandbox/projects/media_crm/tasks/media_crm_deploy - - sandbox/projects/mssngr/rtc - - sandbox/projects/mssngr/runtime/MssngrRouterLoadTest - - sandbox/projects/music - - sandbox/projects/music/MusicExportYdbToYt - - sandbox/projects/music/ReleaseMusic - - sandbox/projects/music/deployment/helpers - - sandbox/projects/news - - sandbox/projects/news/CompareNewsAnnotatorResponses - - sandbox/projects/news/UpdateRTHubAdvWidgetResources - - sandbox/projects/ofd/backend/ofd_backend_package_build - - sandbox/projects/ofd/backend/ofd_backend_run_tests - - sandbox/projects/ofd/notifier/ofd_notifier_package_build - - sandbox/projects/ofd/runtime/ofd_runtime_package_build - - sandbox/projects/ofd/runtime/ofd_runtime_run_tests - - sandbox/projects/ofd/tasks/ofd_tasks_package_build - - sandbox/projects/porto/BuildPortoLayer - - sandbox/projects/porto/BuildPortoLayerTmp - - sandbox/projects/qafw - - sandbox/projects/qafw/ansible - - sandbox/projects/reconf - - sandbox/projects/sandbox_ci/sandbox_ci_compare_load_test - - sandbox/projects/sandbox_ci/task - - sandbox/projects/tests - - sandbox/projects/turbo - - sandbox/projects/turbo/CompareTurboResponses - - sandbox/projects/turbo/SampleForTurbo - - sandbox/projects/vh - - sandbox/projects/vh/faas/FaasConvertVideoVodTest - - sandbox/projects/vh/frontend/count_diff - - sandbox/projects/vh/frontend/generate_requests_from_yt_logs - - sandbox/projects/vins - - sandbox/projects/vins/AliceBegemotMegamindPerfTest - - sandbox/projects/vins/BuildVinsCustomEntity - - sandbox/projects/vins/MegamindPerfTest - - sandbox/projects/vins/VinsPerfTest - - sandbox/projects/yane/ParseYanswerFactLogs - - sandbox/yasandbox/database/clickhouse - - smart_devices/crash_analytics/tools/minidump_analyzer - - smart_devices/tools/launcher2/tests/restarts - - smm/lib/models/sklearn - - sprav/mining/botanik_miner - - statbox/qb2 - - statbox/qb2/qb2_extensions/api/v1/extractors - - statbox/qb2/qb2_extensions/api/v1/extractors/pool - - strm/generate/lib/generate - - sup/stat/find_pushes - - talents/nlu/scripts/train/geoname - - testenv/jobs/rtyserver - - tools/mkdocs_builder/lib - - tools/releaser/src - - tools/ygetparam - - travel/avia/library/python/common - - travel/avia/library/python/common/tests - - travel/avia/library/python/common/tests/lib - - travel/avia/library/python/common/utils - - travel/avia/library/python/geosearch - - travel/avia/library/python/geosearch/views - - travel/avia/library/python/route_search - - travel/avia/library/python/route_search/by_number - - travel/rasp/bus/admin/utils - - travel/rasp/bus/admin/utils/points - - travel/rasp/library/python/common/tests - - travel/rasp/library/python/common/tests/data_api/billing - - travel/rasp/library/python/common/tests/data_api/dzv - - travel/rasp/library/python/geosearch - - travel/rasp/library/python/geosearch/views - - travel/rasp/train_api - - travel/rasp/train_api/scripts - - travel/rasp/train_api/tests - - travel/rasp/train_api/tests/tariffs/train/views - - travel/rasp/train_api/tests/tariffs/train/wizard - - travel/rasp/train_api/tests/train_purchase - - travel/rasp/train_api/tests/train_purchase/tasks - - travel/rasp/train_api/train_partners/base/train_details - - vcs/svn/hooks/check_arc_commit - - vh/telegram/sqs2media - - vh/telegram/sqs2media/handlers - - voicetech/asr/tools/asr_analyzer/lib - - voicetech/common/voicetable/bin/filter_text - - voicetech/common/voicetable/checks/bin/general_voicetable_check - - voicetech/tts/vh/utils - - weather/workers/warnings/general - - yabs/analytics/anomaly_analyzer/src - - yabs/chat_bot/bot - - yabs/python-libs/common - - yabs/qa/b2b_utils/bsserver_b2b/engine/bs_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/mongo_utils - - yabs/qa/b2b_utils/bsserver_b2b/engine/run - - yabs/qa/b2b_utils/bsserver_b2b/engine/validate_scripts - - yabs/qa/yabs_b2b_tank/qabs/b2b - - yabs/sbyt/testing/core - - yabs/server/cs/pylibs/settings - - yabs/server/infra/bstrbufbuf/plugin - - yabs/server/infra/trivial_cron - - yabs/server/libs/py_markdown_strings - - yabs/server/test/ft/BSSERVER-14195 - - yabs/server/test/ft/BSSERVER-2122 - - yabs/server/test/ft/BSSERVER-2454 - - yabs/server/test/ft/BSSERVER-3895 - - yabs/server/test/ft/BSSERVER-9233 - - yabs/server/test/ft/NANPU-817 - - yabs/server/test/ft/checks - - yabs/server/test/pylibs/qxl - - yabs/server/test/pylibs/simulator - - yabs/server/test/qabs_bsserver_pytest - - yabs/server/test/tools/oneshot_tester/lib - - yabs/stat/dropstat2/api/lib - - yabs/stat/infra/clickhouse/repair_master_report - - yabs/utils/autosupbs/pylibs/tasks_generator - - yabs/utils/autosupbs/tests/tasks_generator - - yabs/utils/yabs-mysql-binlog-audit/lib - - yabs/vh/cms-pgaas/cms_common - - yabs/vh/cms-pgaas/cms_common/biz - - yabs/vh/cms-pgaas/content_importer/evsproduction/pattern_based - - yabs/vh/cms-pgaas/content_ksiva_api/lib - - yabs/vh/cms-pgaas/feed_miner - - yabs/vh/cms-pgaas/feed_miner/downloader_middlewares - - yabs/vh/frontend/test/vh_pytest - - yabs/web-bins/export-stat/pcode_experiments/dill - - yabs/web-bins/export-stat/pcode_experiments/issue - - yaphone/advisor/project - - yaphone/localization_admin/src - - yaphone/localization_admin/src/models - - yaphone/localization_admin/src/models/details - - yaphone/localization_admin/src/models/support_info - - yql/tools/mrjob/test - - yql/tools/qplayer - - yweb/antimalware/mitb/mitb_monitor/lib - - yweb/antiporno/analyze_yt_ops - - yweb/antiporno/cp_conv/prepare_suggestive_cp_img_basket - - yweb/antiporno/cp_conv/text_classif/bin - - yweb/antiporno/nav/lib - - yweb/antiporno/pyutil/url - - yweb/antiporno/queries_manual_markup/lib - - yweb/antiporno/query_analyzer/porn_query_config_parser - - yweb/antiporno/site_reachability/lib/reachability_common - - yweb/antiporno/top_queries_cleanup/yql/test - - yweb/antispam/clean_web/tools/run_cm_targets - - yweb/antispam/mascot/scripts/tcinet - - yweb/antispam/seo_masks/py/static_impl/ut - - yweb/antispam/tools/yql - - yweb/antispam/webspam/collections/vw_model_applier/bin - - yweb/antispam/ytgr/viewer - - yweb/blender/newsletter/unused_formulas - - yweb/blender/scripts/blender_viewer/conveyor_experiments/utils - - yweb/blender/scripts/nirvana/jobs/join_features - - yweb/blender/scripts/nirvana/jobs/train_sbs_model/utils - - yweb/blogs/parsers/test - - yweb/freshness/scripts/sport_pushes - - yweb/freshness/scripts/sport_wizard - - yweb/freshness/scripts/svn - - yweb/freshness/scripts/trends/trendbot_tg/tg_handler - - yweb/freshness/scripts/trends/trendbot_tg/tg_handler/foreground - - yweb/news/hosts_differ - - yweb/news/runtime_scripts/event_to_infra - - yweb/news/tests - - yweb/news/tests/export - - yweb/news/tests/utils - - yweb/robot/limbo - - yweb/robot/limbo/imports - - yweb/robot/metrics/pmusca/lib - - yweb/sitelinks/astrolabe/build_bna/candidates/filter_by_region - - yweb/sitelinks/scripts/sitelinks - - yweb/structhtml/richsnippets/scripts/build_foto_recipes/prepare_to_deploy - - yweb/verticals/scripts/sport_chats - - yweb/verticals/scripts/sport_zen_updater/add_parsed_zen_urls - - yweb/webdaemons/clickdaemon/tools/create_ammo_from_tcpdump - - yweb/yasap/answers_nirvana/make_ammos - - yweb/yasap/answers_quality/plagiarism/prepare_scraper_queries - - yweb/yasap/pdb/backend/offline_views/history_calculator - - yweb/yasap/pdb/food/normalizer - - yweb/yasap/pdb/nirvana/gathered_boards_delta - - yweb/younglings/tasks/YOUNGLINGS-516 - - zootopia/analytics/drive/source/drive/operations/support/registrations/reg_quality - no_lint: - ignore: - - '*' - prefixes: - - addappter/backend/addappter/tests - - addappter/backend/addappter_less/tests - - addappter/backend/addappter_partners_api/tests - - addappter/backend/addappter_statistics - - addappter/backend/scripts - - addappter/backend/web_api/tests - - addappter/libs/fixtures/tests - - addappter/web/libs/tests - - adfox/contrib/clickhouse - - adfox/contrib/flask_jsonrpc - - adfox/infra/amacs_config/migrations - - adfox/rtd/backend - - adfox/rtd/bin - - adfox/rtd/clickhouse_layer - - adfox/rtd/core - - adfox/rtd/reports - - ads/bsyeti/libs/py_bt_profile - - ads/bsyeti/scripts/sample_catalogia_queries - - ads/libs/py_conf - - ads/libs/py_core - - ads/libs/py_ml_clusterization - - ads/libs/py_ml_common - - ads/libs/py_ml_engine - - ads/libs/py_ml_metrics - - ads/libs/py_nirvana_api - - ads/libs/py_yaml_loader - - ads/libs/yql_flow - - ads/nirvana/automl/pipelines/offline_pytorch - - ads/nirvana/mr_operations/mr_do_aggregate - - ads/nirvana/online_learning/learn_logs_utils/offline_preprocessed_logs - - ads/nirvana/online_learning/offline_graph_launcher - - ads/nirvana/online_learning/preprocess/lib - - ads/nirvana/online_learning/spiral_offline_apply - - ads/nirvana/upgrade_operation - - ads/targeting/bsmr-scripts/py-modules - - ads/targeting/python-objstore/py-modules - - ads/quality/adv_machine/scripts/select_type_utils - - ads/quality/apc/bm - - ads/quality/bid_correction/v2/lib - - ads/quality/dssm/belmo/201812 - - ads/quality/dssm/rsya/spynet/nirvana/train/20170614 - - ads/quality/dssm/rsya/spynet/nirvana/train/20170812 - - ads/quality/dssm/rsya/spynet/nirvana/train/20180101 - - ads/quality/dssm/rsya/spynet/nirvana/train/20180116 - - ads/quality/dssm/rsya/spynet/nirvana/train/20180301 - - ads/quality/dssm/rsya/spynet/nirvana/train/20181015 - - ads/quality/dssm/rsya/spynet/nirvana/train/20190610 - - ads/quality/dssm/search/201708/train - - ads/quality/dssm/search/serp201802/train - - ads/quality/dssm/synonyms/search/lib - - ads/quality/dssm/synonyms/search/monitor - - ads/quality/dssm/synonyms/search/update - - ads/quality/dssm/ytlib - - ads/quality/ltp/ozymandia/baseline - - ads/quality/phf/alembic - - ads/quality/phf/flask-restplus - - ads/quality/phf/pika - - ads/watchman/timeline/api/lib - - ads/yacontext/packages/mrkit - - ads/yacontext/packages/rjob - - ads/yacontext/packages/tabkit - - afisha/infra/juggler-bundles/juggler-check-bundle-alet/bin/afisha-export-checker - - alice/bitbucket/pynorm - - alice/boltalka/telegram_bot - - alice/boltalka/tools/build_mx_pool - - alice/boltalka/tools/dssm_preprocessing/add_manual_negatives - - alice/boltalka/tools/dssm_preprocessing/build_twitter_dialogues - - alice/boltalka/tools/dssm_preprocessing/join_identificator - - alice/boltalka/tools/dssm_preprocessing/train_validation_split_by_column - - alice/boltalka/tools/dssm_preprocessing/twitter_to_key_value - - alice/boltalka/tools/reply_rewriter - - alice/boltalka/tools/static_factors/calc_frequencies - - alice/rtlog/ut/python - - alice/vins_contrib/pytest-mongodb - - alice/vins_contrib/pytest-randomly - - antiadblock/configs_api/lib - - antirobot/scripts/access_log - - antirobot/scripts/learn/make_learn_data - - antirobot/scripts/log_viewer/app - - antirobot/scripts/log_viewer/precalc - - antirobot/scripts/log_viewer/slow_search - - april/motivation/motivation/mp/migrations - - april/tools/django_direct_forecaster/direct_forecaster/migrations - - april/web/bas/bm/migrations - - april/web/bas/ca/migrations - - april/web/bas/collector/migrations - - april/web/bas/cpa/migrations - - april/web/bas/display/migrations - - april/web/bas/rd/migrations - - april/web/bas/tq/migrations - - aurora/library/Pyro4 - - aurora/library/serpent - - balancer/production/x/yasm_errors_collector - - billing/balance - - billing/balance_utils - - billing/bcl/src - - billing/contract_iface - - billing/contrib/mdswrapper/src - - billing/contrib/yutil/src - - billing/ift/src - - billing/library/recipes/pg - - billing/log_tariffication/maintenance - - billing/mdh/src - - billing/refs/src - - billing/reports - - billing/snout/brest - - billing/snout/yb_snout_api - - billing/snout/yb_snout_proxy - - billing/statreports - - catboost/python-package/catboost - - cloud/ai/datasphere/lib/stt/metrics/python_package/stt_metrics - - cloud/ai/datasphere/lib/stt/deployment/python_package/stt_deployment - - cloud/ai/speechkit/stt/bin/data_pipeline/select_records_split_for_markup - - cloud/ai/speechkit/stt/bin/data_scripts/migrations/ASREXP-378/missing_tags_and_records_fix - - cloud/ai/speechkit/stt/bin/data_scripts/records/download_records - - cloud/ai/speechkit/stt/bin/data_scripts/tags/calculate_tags_statistics - - cloud/ai/speechkit/stt/bin/eval/configure_evaluations_launcher - - cloud/ai/speechkit/stt/bin/experiments/libri_speech_mer_pipeline/run_markup_sbs - - cloud/ai/speechkit/stt/bin/tmp/ASREXP_778/evaluate - - cloud/ai/speechkit/stt/bin/tmp/ASREXP_778/receive_submission - - cloud/ai/speechkit/stt/lib/data/model - - cloud/ai/speechkit/stt/lib/data/ops - - cloud/ai/speechkit/stt/lib/data_pipeline/files - - cloud/ai/speechkit/stt/lib/data_pipeline/honeypots - - cloud/ai/speechkit/stt/lib/data_pipeline/import_data/records - - cloud/ai/speechkit/stt/lib/data_pipeline/import_data/voicetable - - cloud/ai/speechkit/stt/lib/data_pipeline/join - - cloud/ai/speechkit/stt/lib/data_pipeline/markup_cost - - cloud/ai/speechkit/stt/lib/data_pipeline/markup_params - - cloud/ai/speechkit/stt/lib/data_pipeline/markup_quality - - cloud/ai/speechkit/stt/lib/data_pipeline/obfuscate - - cloud/ai/speechkit/stt/lib/data_pipeline/records_splitting - - cloud/ai/speechkit/stt/lib/data_pipeline/select_records_joins - - cloud/ai/speechkit/stt/lib/data_pipeline/toloka - - cloud/ai/speechkit/stt/lib/data_pipeline/transcription_tasks - - cloud/ai/speechkit/stt/lib/eval - - cloud/ai/speechkit/stt/lib/experiments - - cloud/ai/speechkit/stt/lib/text/cluster_references - - cloud/ai/speechkit/stt/lib/text/text_comparison_stop_words - - cloud/ai/speechkit/stt/lib/tmp/ASREXP_778 - - cloud/ai/speechkit/stt/lib/utils/arcadia - - cloud/ai/speechkit/stt/lib/utils/s3 - - cloud/bitbucket/python-common - - cloud/gauthling/auth_token_python/lib - - cloud/gauthling/gauthling_daemon/lib - - cloud/gauthling/gauthling_daemon_mock/lib - - cloud/gauthling/yc_auth/lib - - cloud/gauthling/yc_auth_tornado/lib - - cloud/gauthling/yc_requests/lib - - cloud/mdb/dbaas-internal-api-image/dbaas_internal_api/utils/dataproc_joblog - - crowdsourcing/thirium-mitm-proxy - - cv/cbir_search/onto_validation/grep_onto_state - - cv/imageproc/faces/video_face_recognition/face_recognition_stream_viewer - - cv/imgclassifiers/danet/scripts - - cv/imgclassifiers/framework/stat - - datacloud/ml_utils/grid_search_wrapper/nirvana_cube - - datacloud/stability - - dict/lm/ngrams/lib/build_ngrams - - dict/misspell/python/metrics - - dict/misspell/python/misspell - - dict/mt/make/tools/jamo_tool/lib/jamo - - dict/mt/mtdict/make/definitions/vh/blocks - - dict/ontodb - - direct/infra/resmon/dt-resmon-yasm - - distribution_interface/backend/backend/acts/migrations - - distribution_interface/backend/backend/audi/migrations - - distribution_interface/backend/backend/autogen/migrations - - distribution_interface/backend/backend/basic_stats/migrations - - distribution_interface/backend/backend/blob/migrations - - distribution_interface/backend/backend/contract/migrations - - distribution_interface/backend/backend/dashboard/migrations - - distribution_interface/backend/backend/didict/migrations - - distribution_interface/backend/backend/distribution/migrations - - distribution_interface/backend/backend/idm/migrations - - distribution_interface/backend/backend/intake/migrations - - distribution_interface/backend/backend/intermediate_models/migrations - - distribution_interface/backend/backend/kladr/migrations - - distribution_interface/backend/backend/multistate/migrations - - distribution_interface/backend/backend/product/migrations - - distribution_interface/backend/backend/razlomon/migrations - - distribution_interface/backend/backend/self_employed/migrations - - distribution_interface/backend/backend/signup/migrations - - distribution_interface/backend/backend/users/migrations - - dj/services/mail/sr/viewer - - dj/services/video/viewer/viewer - - dj/tools/train/recommender_config/basic_features - - dj/tools/train/recommender_config/cf_sharp - - dj/tools/train/recommender_config/mixigen - - drive/qatool - - drive/tests/functional - - drive/tools/sox_audit - - entity/quality/ontodb/ontodb_cleaner/verdicts_creator/lib/ut - - entity/recommender/nirvana/autodump - - entity/recommender/nirvana/operations/whereami - - entity/recommender/viewer - - entity/ugc/tools/nirvana/appsearch_activity - - entity/ugc/tools/nirvana/ugcdb1_process/process_profiles - - entity/ugc/tools/nirvana/ugcdb1_process/proxy_backups - - entity/ugc/tools/nirvana/ugcdb1_process/ydb_commit - - entity/ugc/tools/nirvana/ugcdb2_process/proxy - - extsearch/audio/deepdive/graphs/operations - - extsearch/audio/deepdive/graphs/run_full - - extsearch/audio/deepdive/tools/deep_dive_release/bin - - extsearch/audio/deepdive/tools/deep_dive_rollback/bin - - extsearch/collections/tools/polirovka/collections_gui - - extsearch/geo/tools/rubric_synonyms_mining/metasearch - - extsearch/images/functionality/monit_robot_process/monit_client - - extsearch/images/functionality/rock/abgame_server - - extsearch/images/ganart/viewer - - extsearch/images/robot/index/testlib - - extsearch/images/robot/library/pyserver - - extsearch/images/robot/shard_tool - - extsearch/images/robot/taas/admin - - extsearch/images/robot/taas/client - - extsearch/images/robot/taas/daemon - - extsearch/images/robot/taas/dashboard - - extsearch/images/robot/thumbrella/viewer - - extsearch/images/robot/upbase/upbase_v1/lib - - extsearch/images/robot/upbase/upbase_v1/runner - - extsearch/images/robot/upbase/upbase_v1/upbase_queue - - extsearch/images/robot/upbase/upbase_v1/viewer - - extsearch/images/robot/viewers/docid_viewer/web - - extsearch/images/robot/viewers/images_dashboard - - extsearch/images/tools/nirvana/common - - extsearch/images/tools/nirvana/rim/evaluation - - extsearch/images/tools/nirvana/rim/serps_compare - - extsearch/images/tools/nirvana/sr_formula/get_pool_id - - extsearch/images/tools/nirvana/sr_formula/learn_sr - - extsearch/video/quality/recommender/1492/america/ckmeans - - extsearch/video/quality/recommender/1492/america/scripts/cluster - - extsearch/video/quality/recommender/1492/america/scripts/gen_config - - extsearch/video/quality/recommender/1492/america/train - - extsearch/video/quality/recommender/1492/cuba/scripts/gen_config - - extsearch/video/quality/recommender/1492/cuba/scripts/gen_indexattr - - extsearch/video/quality/recommender/1492/cuba/scripts/get_path_ns - - extsearch/video/quality/recommender/1492/cuba/scripts/prep_models - - extsearch/video/quality/recommender/1492/cuba/scripts/upload_index_files - - extsearch/video/quality/recommender/1492/cuba/test/tools/cm_runner - - extsearch/video/quality/recommender/1492/cuba/train - - extsearch/video/quality/recommender/1492/scripts/delete_prev - - extsearch/video/quality/recommender/1492/scripts/get_ext_data - - extsearch/video/quality/recommender/1492/scripts/upload_ns - - extsearch/video/quality/recommender/train_dssm - - extsearch/video/recommender/viewer/viewer - - extsearch/video/robot/avatars/delete - - extsearch/video/robot/avatars/merge - - extsearch/video/robot/avatars/upload - - extsearch/video/robot/frames/convert_portion - - extsearch/video/sepe/get_latest_resource - - gencfg/custom_generators/balancer_gencfg - - gencfg/gaux - - geobase/builder/ut/isp_checker - - geoproduct/advert_ranking/query_type_classifier_learn - - geoproduct/geocrm_search/data_import - - geoproduct/geocrm_search/engine - - geoproduct/geocrm_search/orm - - geosuggest/prepare_data/toponyms_factor_mapper - - haas/eng_topology/lib/struct - - health/turbo_articles/parser/libs - - health/turbo_articles/parser/manual_tests - - health/yamd/libs/cross_links/tests/common - - htf/predictions/common_data/blackbox_markup_puids - - infra/awacs/tools/awacsemtool - - infra/awacs/tools/awacslinter - - infra/awacs/tools/awacsls - - infra/awacs/tools/awacsstatctl - - infra/awacs/tools/awacstoolslib - - infra/awacs/tools/awacszerodiffer - - infra/awacs/vendor/awacs - - infra/deploy_export_stats/contrib/thrift - - infra/deploy_export_stats/src - - infra/heartbeat-client - - infra/iss_local/iss - - infra/nanny/clusterpb - - infra/nanny/instancectl/src - - infra/nanny/its_client - - infra/nanny/nanny_rpc_client - - infra/nanny/sepelib/src - - infra/nanny/vendor/object-validator - - infra/nanny/vendor/porto_python - - infra/qyp/deploy - - infra/qyp/integration_tests - - infra/qyp/novnc_server/contrib/websockify - - infra/qyp/vmproxy/src - - infra/vmagent/src/vmagent_pb - - infra/wall-e/agent - - infra/wall-e/client - - infra/wall-e/sdk - - infra/walle/server/tests/lib - - infra/ya_salt/vendor/salt - - infra/yp_quota_distributor/app - - intranet/audit/src - - intranet/dogma/dogma/api - - intranet/dogma/dogma/api_v4 - - intranet/dogma/dogma/core - - intranet/dogma/dogma/dashboard - - intranet/femida/src/candidates/migrations - - intranet/femida/src/communications/migrations - - intranet/femida/src/interviews/migrations - - intranet/femida/src/offers/migrations - - intranet/femida/src/permissions/migrations - - intranet/femida/src/professions/migrations - - intranet/femida/src/users/migrations - - intranet/femida/src/vacancies/migrations - - intranet/hidereferer/src - - intranet/magiclinks/src - - intranet/table_flow/src/rules/migrations - - intranet/table_flow/src/users/migrations - - intranet/wiki/tests - - intranet/yandex_directory/src - - ipreg/geogen-www/app/slow_search - - ipreg/python/ipreg-diff/executive - - ipreg/python/util - - keyboard/dict/learn_transfemes/pt_converter - - keyboard/dict/learn_transfemes/word_aligner - - keyboard/dict/lemmer_filter - - keyboard/dict/nirvana - - keyboard/dict/train_ranker/filter_samples - - keyboard/dict/train_ranker/filter_sentences - - keyboard/grid/tap_model/python/annotate - - keyboard/proxy/images - - library/python/bclclient - - library/python/blackbox - - library/python/clickhouse_client - - library/python/dir-sync - - library/python/django-idm-api - - library/python/django-multic - - library/python/django_abc_data - - library/python/django_mds - - library/python/django_pgaas - - library/python/django_russian - - library/python/django_template_common - - library/python/django_tools_log_context - - library/python/dssclient - - library/python/golovan_stats_aggregator - - library/python/granular_settings - - library/python/ids - - library/python/intrasearch_fetcher - - library/python/metrics_framework - - library/python/oauth/example - - library/python/pytest - - library/python/refsclient - - library/python/solomon - - library/python/startrek_python_client - - library/python/statface_client - - library/python/testing/testpy/tests/testmod - - library/python/tools_mongodb_cache - - library/python/tvm2 - - library/python/windows - - library/python/yandex_tracker_client - - library/python/ylog - - library/python/yt - - logbroker/admin - - logbroker/mops - - logbroker/tools/lb-cm - - logbroker/tools/manual/send_projections_to_solomon - - logbroker/tools/manual/test_front - - mail/contrib/aiohttp-swagger - - mail/contrib/asyncpgsa - - mail/contrib/python/exchangelib - - mail/contrib/python/ntlm-auth - - mail/contrib/python/python-ipy - - mail/contrib/python/vobject - - mail/contrib/tatsu - - mail/python/tvm_requests - - mail/xiva/core - - mapreduce/library/mr_packet_lib/mr_packet_lib - - mapreduce/yt/python - - maps/contrib/pylibs/googlemaps - - maps/contrib/pylibs/mox - - maps/pylibs/utils/lib - - maps/pymod/yandex/maps/test_utils - - maps/renderer/designs_config/libs/pymod - - maps/streetview/backoffice/lib - - maps/streetview/backoffice/tools/cut_images_yt - - maps/streetview/backoffice/tools/detect_session_privacy - - maps/streetview/backoffice/tools/grid - - maps/streetview/backoffice/tools/image_checker/python - - maps/streetview/backoffice/tools/pano_snippets_updater - - maps/streetview/backoffice/tools/set_not_uploaded - - maps/streetview/backoffice/tools/source_validator - - market/analytics/adfox_banners - - market/dynamic_pricing/deprecated/autostrategy_bounds/lib - - market/dynamic_pricing/deprecated/autostrategy_export_data_to_axapta/lib - - market/dynamic_pricing/deprecated/autostrategy_filter_data_for_axapta/lib - - market/dynamic_pricing/deprecated/autostrategy_prices_quick_change/lib - - market/dynamic_pricing/deprecated/autostrategy_stats_raw/lib - - market/dynamic_pricing/deprecated/autostrategy_update_current_prices/lib - - market/dynamic_pricing/deprecated/tests/lib - - market/dynamic_pricing/deprecated/utilities/lib - - market/dynamic_pricing/price_collector/bin - - market/dynamic_pricing/price_collector/lib - - market/dynamic_pricing/tools/delivery_checker/bin - - market/dynamic_pricing/tools/hide_rules_exceptions/bin - - market/dynamic_pricing/tools/kvi_evaluation/bin - - market/forecaster/lite/core - - market/guru-models-dumper/utils - - market/library/cpp_meta_parser - - market/sre/services/mcm/mcm - - market/sre/tools/etcd/prometheus_graphite_bridge/prometheus_client - - market/tools/develop/report_deploy - - market/tools/resource_monitor/lib - - market/yamarec/edera/edera - - mds/cocaine/burlak/src - - mds/cocaine/darkvoice/src - - mds/cocaine/framework/python - - mds/cocaine/tools - - mds/eblob_kit - - mds/elliptics/bindings/python - - mds/elliptics/recovery/elliptics_recovery - - mds/elliptics/tests/pytests - - mds/libs/eblob/tests/python - - mds/libs/jerasure/python - - ml/tensorflow/ytensorflow/bin/ytf-local-inference - - ml/tensorflow/ytensorflow/bin/ytf-yt-inference - - ml/tensorflow/ytensorflow/ytensorflow/build - - mlp/mail/smart_reply/gen_finder/replacer - - mlp/mail/smartcompose/dev/SC-210/get_stats - - mlp/mail/smartcompose/dev/SC-213 - - mlp/mail/smartcompose/dev/alsafr_game - - mlp/mail/smartcompose/dev/recrypt - - mlp/mail/smartcompose/dev/request_entropy - - mlp/mail/smartcompose/gen_dssm_config - - mlp/mail/smartcompose/nirvana_graphs/train_catboost - - mlp/mail/smartcompose/tools/calc_matches_runtime - - mlp/mail/smartcompose/tools/calc_matches_translate - - mlp/mail/smartcompose/tools/make_cb_pool - - mlp/mail/smartcompose/tools/make_letters_split - - mlp/mail/smartcompose/tools/make_letters_split_v2 - - mlp/mail/smartcompose/tools/upload_metrics_to_stat - - mlp/mail/tools/clean_mail_text - - mlp/mail/tools/recrypt - - modadvert/oneshot/MODADVERT-589 - - modadvert/oneshot/MODADVINCIDENTS-77.2 - - modadvert/oneshot/MODDEV-2565 - - modadvert/oneshot/SUPERMODRELEASE-57/migration - - mssngr/botplatform/src/bots/core/migrations - - mssngr/geobot/clients - - mssngr/geobot/postgresql - - mssngr/geobot/server - - mssngr/tools/console_client - - mssngr/tools/pyamb - - mssngr/tools/stress/uniproxy - - nirvana/valhalla/src - - nirvana/valhalla/tests_lib/cross_interface_tests_lib - - nirvana/valhalla/tests_lib/integration_tests_lib - - nirvana/valhalla_util/src - - noc/aioalexandria - - noc/annlib/contrib/valkit - - noc/checkist/clients/python/swagger_client - - noc/yanet/yanetagent - - ofd/notifier/server/blueprints/monitoring - - ofd/runbackproxy/bin - - ofd/runbackproxy/lib - - offline_data/task_switch - - orgvisits/library/python/toloka - - orgvisits/metrics/toloka/preparations - - orgvisits/toloka/taskuploader - - orgvisits/viewers/geotrack/backend - - passport/backend/adm_api/common - - passport/backend/adm_api/settings - - passport/backend/adm_api/tests/views - - passport/backend/api - - passport/backend/core/yasms/test - - passport/backend/library/historydbloader - - passport/backend/logbroker_client/core - - passport/backend/configs/golovan - - passport/backend/contrib/cassandra - - passport/backend/contrib/django_contrib_comments - - passport/backend/contrib/elementflow - - passport/backend/contrib/formencode - - passport/backend/contrib/gsm0338 - - passport/backend/contrib/nose_parameterized - - passport/backend/contrib/oauthlib - - passport/backend/contrib/py2casefold - - passport/backend/contrib/pyisemail - - passport/backend/tools/rm_attrs - - payplatform/balance_support_dev/dev_kpi_counter - - payplatform/balance_support_dev/support_kpi_counter - - payplatform/findep/findepstbot - - payplatform/findep/stcreate - - payplatform/logs/log_enrichment/daily_merger - - payplatform/logs/log_enrichment/tool - - payplatform/nirvana/check_export_queue - - payplatform/nirvana/close_fcm_task - - payplatform/nirvana/filter_cash_register_csv_file - - payplatform/nirvana/lib - - payplatform/nirvana/merge_nirvana_task_statuses - - payplatform/nirvana/wait_fcm_task - - payplatform/nirvana/wiki_post_link - - payplatform/tools/draw_microphase_monitoring - - payplatform/tools/draw_mnclose_graph - - payplatform/tools/fcm_mnclose_gantt_and_visualisation - - payplatform/tools/generate_mnclose_percentils - - payplatform/tools/kkt/commands_parallel_executor - - payplatform/tools/kkt/resend_analytics - - payplatform/tools/lib - - payplatform/tools/old_support_stats - - payplatform/tools/support_stats - - payplatform/tools/user_analytics_tool - - paysys/pylibrary/pipelines-api - - paysys/pylibrary/solomon_client - - paysys/pylibrary/timeline-events - - plus/cobra/cobra/migrations - - plus/gift/gift/migrations - - plus/landing_backend/landing/migrations - - plus/landing_backend/notification/migrations - - plus/oneyear/my2020/migrations - - plus/oneyear/navi_music/migrations - - quality/functionality/chats/floyd/src/floyd/common - - quality/functionality/chats/loadtest - - quality/functionality/content_plugins/scripts/lib - - quality/functionality/content_plugins/scripts/process_exports - - quality/functionality/content_plugins/scripts/regular_updates - - quality/functionality/content_plugins/scripts/tools/deps - - quality/functionality/dialogs/tools/filter_by_regexp_mr - - quality/functionality/entity_search/factqueries/release/scripts/build_facts_mr - - quality/functionality/entity_search/factqueries/table_facts/russian_holidays/build_source - - quality/functionality/entity_search/factqueries/table_facts/russian_holidays/update_holidays - - quality/functionality/entity_search/factqueries/tools/acceptance/generate_diff - - quality/functionality/entity_search/factqueries/tools/dsat/dialogs/build_queryminer_results - - quality/functionality/entity_search/factqueries/tools/dsat/e2e_source_metrics - - quality/functionality/entity_search/factqueries/tools/dump_possible_answers - - quality/functionality/entity_search/factqueries/tools/fetch_serpdata/lib - - quality/functionality/parsepl/server/apps/storage/migrations - - quality/functionality/rtx/nirvana/reactor - - quality/functionality/rtx/notebooks - - quality/functionality/rtx/scripts/oo-toloka - - quality/functionality/rtx/scripts/plot - - quality/functionality/rtx/scripts/social-serp/bell - - quality/functionality/rtx/scripts/social-serp/cleanweb - - quality/functionality/rtx/scripts/social-serp/toloka - - quality/functionality/rtx/scripts/sup-plot - - quality/functionality/rtx/trends/bot/rec-bot - - quality/functionality/rtx/trends/bot/suspect-trends - - quality/functionality/rtx/trends/bot/trends-for-morda - - quality/functionality/scripts/psuh/HWPushTool - - quality/functionality/turbo/rss/parser_job/lib - - quality/functionality/turbo/rss/rss_to_serp - - quality/functionality/turbo/zen_saas_process - - quality/legacy_crons/mobile_apps_info_to_ferryman - - quality/logs/baobab/examples/python/nile_libra_wizard_clicks_dynamic_and_dwelltime - - quality/logs/baobab/examples/python/redir_log_map_yt_clicks - - quality/logs/baobab/examples/python/uslugi_clicks_with_weak_ties - - quality/logs/scarab/logsng2scarab - - quality/neural_net/tf_model_lib/lib - - quality/neural_net/tf_model_lib/tools/edik_standartize - - quality/neural_net/tf_model_lib/tools/serialize_n_batch - - quality/relev_tools/lboost_ops/core_maker - - quality/relev_tools/lboost_ops/mr_index_nirvana - - quality/relev_tools/lboost_ops/nirvana/api - - quality/relev_tools/web_learn/stream_size_opt/graphs/lib - - quality/relev_tools/web_learn/stream_size_opt/opt_with_goal_dbd/lib - - quality/short_beak/build_db - - quality/short_beak/content_db_lib - - quality/short_beak/manip_db - - quality/short_beak/prepare_db_source - - quality/short_beak/update_content - - quality/short_beak/upload_trie - - quality/short_beak/wui_new/context_lib - - quality/tools/find_word - - quality/user_sessions/createlib/qb3/tools/merge - - quality/user_sessions/data_com/merge_details_to_dataset - - quality/user_sessions/data_com/yt_configuration - - quality/user_sessions/data_com/yt_tables - - quality/user_sessions/libra/examples/libra_performance - - quality/user_sessions/reactor/us_processes - - quality/user_sessions/reactor/us_reactor/lib - - quality/user_sessions/reactor/us_reactor/tools/change_timeline - - quality/user_sessions/rem_processes - - quality/user_sessions/tools/yt_combine_chunks - - quality/user_sessions/tools/yt_pack - - quality/user_sessions/tools/yt_transfer_yt - - razladki/razladki - - rem/python - - robot/catfilter/viewer - - robot/fast_ban/fill_ban - - robot/kwyt/scripts/convert - - robot/kwyt/viewers/kwyt - - robot/lemur/tools/add_formula_to_dir - - robot/lemur/tools/ban_detector/checker - - robot/lemur/tools/ban_detector/exporter - - robot/lemur/tools/ban_detector/forced_host_headers_tool - - robot/lemur/tools/ban_detector/postman - - robot/lemur/tools/ban_detector/zora_hosts - - robot/lemur/tools/count_candidates_top - - robot/lemur/tools/depleted_queues - - robot/lemur/tools/draw_quality_metrics - - robot/lemur/tools/fetch_robot_metrics - - robot/lemur/tools/googleapi_key_checker - - robot/lemur/tools/histo_db_updater - - robot/lemur/tools/host_sample_limiter - - robot/lemur/tools/process_logs_new - - robot/lemur/tools/ranks_stat - - robot/lemur/tools/stage_durations - - robot/lemur/tools/stg_notifier - - robot/metrics/actuality/nirvana/generate - - robot/metrics/actuality/stat_report - - robot/metrics/speed_sbr/pylib - - robot/samovar/tools/features/run_samovar_rank_graph - - robot/saved_copy/tools/phantom_ammo_generator - - robot/zora/tools/digger - - rtc/recorder - - rtmapreduce/config/presets - - rtmapreduce/config/src - - samogon - - sandbox/common - - sandbox/fileserver - - sandbox/projects/AnnotateFML2575Comments - - sandbox/projects/AntirobotCollectFeatures - - sandbox/projects/AutocheckDiff - - sandbox/projects/BackupMongo - - sandbox/projects/BnoNewsBuild - - sandbox/projects/BnoRecipesBuild - - sandbox/projects/Bolver - - sandbox/projects/BroadmatchBuildMRCatalogia - - sandbox/projects/BroadmatchOverdraft - - sandbox/projects/BuildAddrSnippetData - - sandbox/projects/BuildAuroraBundle - - sandbox/projects/BuildBalancerConfigGenerator - - sandbox/projects/BuildBkhtTickersApp - - sandbox/projects/BuildBlockstatDict - - sandbox/projects/BuildClustermaster - - sandbox/projects/BuildClustermasterDeb - - sandbox/projects/BuildConfigGenerator - - sandbox/projects/BuildConfigGeneratorRepo - - sandbox/projects/BuildConfigGeneratorService - - sandbox/projects/BuildCoverage - - sandbox/projects/BuildCustomNginx - - sandbox/projects/BuildCvdupBundle - - sandbox/projects/BuildCyHash - - sandbox/projects/BuildDBMergeTool - - sandbox/projects/BuildDockerImage - - sandbox/projects/BuildDockerImageV6 - - sandbox/projects/BuildFilterTrie - - sandbox/projects/BuildGGSConfig - - sandbox/projects/BuildGemini - - sandbox/projects/BuildGreenbox - - sandbox/projects/BuildHighlanderDataFull - - sandbox/projects/BuildHighlanderDataUpdate - - sandbox/projects/BuildIcookieDaemon - - sandbox/projects/BuildInfectedSerpMasks - - sandbox/projects/BuildJavaJDK - - sandbox/projects/BuildKwrich - - sandbox/projects/BuildMatrixnet - - sandbox/projects/BuildMemcached - - sandbox/projects/BuildMirrorScheduler - - sandbox/projects/BuildMonsysDC - - sandbox/projects/BuildMonsysDCWithVenv - - sandbox/projects/BuildNginx - - sandbox/projects/BuildNginxCplb - - sandbox/projects/BuildOntodbFixesSticky - - sandbox/projects/BuildPackagesForRem - - sandbox/projects/BuildPerconaXtraBackup - - sandbox/projects/BuildPerconaXtradbCluster - - sandbox/projects/BuildProjectStubNodejs - - sandbox/projects/BuildPumpkinIndex - - sandbox/projects/BuildPythonBundle - - sandbox/projects/BuildRazladki - - sandbox/projects/BuildReactUi - - sandbox/projects/BuildReadahead - - sandbox/projects/BuildReplicamap - - sandbox/projects/BuildSemanticMfVerifier - - sandbox/projects/BuildSemanticPublicApi - - sandbox/projects/BuildSemanticYtMapper - - sandbox/projects/BuildSuggest - - sandbox/projects/BuildSuggestForAll - - sandbox/projects/CalcCoverage - - sandbox/projects/CalculateMatrixnetModelsAndPredictions - - sandbox/projects/CheckRazladkaParseLib - - sandbox/projects/ClickdaemonKeygen - - sandbox/projects/CollectAntirobotData - - sandbox/projects/CompareEstFeaturesOutputs - - sandbox/projects/CompareGeosearchOutputs - - sandbox/projects/CompareGeosearchReqAnsLogs - - sandbox/projects/CompareMrProtoPools - - sandbox/projects/CompareProfileStats - - sandbox/projects/CopyDataRuntime - - sandbox/projects/CreateJavaJDK - - sandbox/projects/CreateUkropBranch - - sandbox/projects/DeployNannyReleaseRequests - - sandbox/projects/DeployUkrop - - sandbox/projects/DrawFreshnessPlots - - sandbox/projects/EntitySearch/AcceptanceEntitysearchBinary - - sandbox/projects/EntitySearch/common - - sandbox/projects/EntitySearch/get_prod_data_version - - sandbox/projects/EntitySearch/ner_data_build - - sandbox/projects/EntitySearch/ner_run_release_task - - sandbox/projects/EntitySearchDataBuild - - sandbox/projects/EntitySearchLogs - - sandbox/projects/GenerateLinearModelBinaryDump - - sandbox/projects/GenerateSportDeviceIds - - sandbox/projects/GenerateThumbDaemonRequests - - sandbox/projects/HttpGeobase - - sandbox/projects/NoapacheupperTests - - sandbox/projects/PSUtil - - sandbox/projects/ReleaseSdchDictionaryPack - - sandbox/projects/RunNirvanaOnlineLearning - - sandbox/projects/RunRemJobPacket - - sandbox/projects/RunScript - - sandbox/projects/SOC/YtSecretsDigger - - sandbox/projects/SOC/YtSecretsSearch - - sandbox/projects/SecDis - - sandbox/projects/Strm - - sandbox/projects/SupRegistrationLoad - - sandbox/projects/Superdups/BuildSuperdupsPackage - - sandbox/projects/TaxiGraphUpload - - sandbox/projects/TestConfigGenerator - - sandbox/projects/TestCvdupOnSynthetic - - sandbox/projects/TouchBuildPumpkinSerp - - sandbox/projects/Travel - - sandbox/projects/VerticalsSecurity - - sandbox/projects/VideoFreshReleaseQueryMarksTrie - - sandbox/projects/VideoSearch - - sandbox/projects/Wizards - - sandbox/projects/YaTestParent - - sandbox/projects/ab_testing - - sandbox/projects/addurl - - sandbox/projects/advq - - sandbox/projects/answers/BuildAnswersDjRecommender - - sandbox/projects/answers/BuildAnswersDjRecommenderModelsArchive - - sandbox/projects/antiadblock - - sandbox/projects/app_host/BuildAndReleaseProductionResources - - sandbox/projects/app_host/BuildAppHostExecutables - - sandbox/projects/app_host/BuildAppHostGraphNameMapping - - sandbox/projects/app_host/CheckGolovanSignalsQuota - - sandbox/projects/app_host/TestYaToolApphost - - sandbox/projects/arcadia - - sandbox/projects/autobudget/export_rm_bids - - sandbox/projects/autobudget/ml - - sandbox/projects/balancer/UpdateYastaticWikiPanels - - sandbox/projects/blender/commit_blender_model - - sandbox/projects/blender/update_blender_online_models - - sandbox/projects/blender/util - - sandbox/projects/boltalka - - sandbox/projects/cloud - - sandbox/projects/collections - - sandbox/projects/common - - sandbox/projects/cornholio - - sandbox/projects/devtools/ChangesDetector - - sandbox/projects/direct_internal_analytics - - sandbox/projects/distbuild - - sandbox/projects/dj - - sandbox/projects/dsearch - - sandbox/projects/geobase - - sandbox/projects/geosearch/UploadEdaWizards/PrepareEdaWizards - - sandbox/projects/home - - sandbox/projects/horizon - - sandbox/projects/images/CvdupAcceptanceTasks - - sandbox/projects/images/ImagesBuildHeaterPlan - - sandbox/projects/images/ImagesBuildMainIndexNightlyBinaries - - sandbox/projects/images/ImagesBuildMmetaHeaterPlan - - sandbox/projects/images/ImagesBuildSearchBinary - - sandbox/projects/images/ImagesBuildTagsDictFioModelsBundle - - sandbox/projects/images/ImagesBuildTagsDictRankingModelsBundle - - sandbox/projects/images/ImagesBuildTagsMMetaModelsBundle - - sandbox/projects/images/ImagesCheckThumbsChecksum - - sandbox/projects/images/ImagesCompareSearchDaemonResponses - - sandbox/projects/images/ImagesExamineCbirIntegrity - - sandbox/projects/images/ImagesExamineSpecialRequests - - sandbox/projects/images/ImagesGetSaasResponses - - sandbox/projects/images/ImagesGrayQueriesFilter - - sandbox/projects/images/ImagesPriemkaThumbs - - sandbox/projects/images/ImagesRtUltraAcceptance - - sandbox/projects/images/ImagesShardmapThumb - - sandbox/projects/images/ImagesShardmapThumbBySvn - - sandbox/projects/images/ImagesTagsMrIndex - - sandbox/projects/images/ImagesTagsMrIndexConfig - - sandbox/projects/images/ImagesTest - - sandbox/projects/images/ImagesTestMrindex - - sandbox/projects/images/ImagesTestMrindexMetadoc - - sandbox/projects/images/ImagesTestSaas - - sandbox/projects/images/ImagesTestSaasBasics - - sandbox/projects/images/ImagesUltraAcceptance - - sandbox/projects/images/ImagesUploadSaas - - sandbox/projects/images/bans/ImagesReleaseAntipirateIndexBan - - sandbox/projects/images/bans/ImagesReleaseAntipirateThumbBan - - sandbox/projects/images/bans/ImagesReleaseAntispamBan - - sandbox/projects/images/bans/ImagesReleaseCommercialQueryBan - - sandbox/projects/images/bans/ImagesReleaseCvBan - - sandbox/projects/images/bans/ImagesReleaseQueryUrlBan - - sandbox/projects/images/bans/ImagesReleaseRottenHostBan - - sandbox/projects/images/basesearch/ImagesRunStandaloneBasesearch - - sandbox/projects/images/basesearch/ImagesTestBasesearchMassif - - sandbox/projects/images/daemons/ImagesBuildCbirdaemon2Database - - sandbox/projects/images/daemons/ImagesCompareCbirdaemon2ApphostResponses - - sandbox/projects/images/daemons/ImagesGenerateCbirdaemon2Requests - - sandbox/projects/images/daemons/ImagesProdCompareRimResponses - - sandbox/projects/images/deployment - - sandbox/projects/images/devops - - sandbox/projects/images/embedding/ImagesRunStandaloneEDaemon - - sandbox/projects/images/embedding/ImagesTestEmbeddingStoragePerformance - - sandbox/projects/images/guppy/ImagesBuildGuppyResources - - sandbox/projects/images/inverted_index/ImagesRunStandalonePDaemon - - sandbox/projects/images/metasearch/ImagesPriemkaMiddlesearchDatabase - - sandbox/projects/images/polish - - sandbox/projects/images/prism - - sandbox/projects/images/resources/ImagesFetchThumbRequests - - sandbox/projects/images/resources/ImagesGenerateSearchDaemonsRequests - - sandbox/projects/images/resources/ImagesGenerateTestenvData - - sandbox/projects/images/resources/ImagesLoadMiddlesearchResources - - sandbox/projects/images/resources/ImagesLoadTestenvData - - sandbox/projects/images/saas_acceptance/ImagesTestRobotSaas - - sandbox/projects/images/tags/ImagesTagsBuildAndCommitAliceBans - - sandbox/projects/images/tags/ImagesTagsReleaseAliceBans - - sandbox/projects/images/upbase/ImagesBuildUpbaseResources - - sandbox/projects/images/upbase/ImagesBuildUpbaseViewerResources - - sandbox/projects/inventori - - sandbox/projects/juggler - - sandbox/projects/jupiter/ReleaseGeminiData - - sandbox/projects/jupiter/ReleaseNavsource - - sandbox/projects/jurassic/BuildPatchedJurassic - - sandbox/projects/lemur - - sandbox/projects/limbo - - sandbox/projects/logfeller/AccountSnapshot - - sandbox/projects/logfeller/common - - sandbox/projects/logs - - sandbox/projects/mail - - sandbox/projects/maps - - sandbox/projects/market/checkout - - sandbox/projects/market/contentApi - - sandbox/projects/market/dynamic_pricing - - sandbox/projects/market/ff - - sandbox/projects/market/front - - sandbox/projects/market/idx - - sandbox/projects/market/infra - - sandbox/projects/market/ir - - sandbox/projects/market/kombat - - sandbox/projects/market/lilucrm - - sandbox/projects/market/logistics - - sandbox/projects/market/mcrp/MarketMcrpAbcSync - - sandbox/projects/market/mcrp/MarketMcrpAbcTopServicesSync - - sandbox/projects/market/monitoring - - sandbox/projects/market/multitesting - - sandbox/projects/market/promocoordinator - - sandbox/projects/market/qa - - sandbox/projects/market/report - - sandbox/projects/market/sre - - sandbox/projects/market/stock_storage - - sandbox/projects/market/tpl - - sandbox/projects/masstransit/MapsMasstransitDataDeploymentStatistics - - sandbox/projects/mlp - - sandbox/projects/mlportal - - sandbox/projects/modadvert - - sandbox/projects/mt - - sandbox/projects/noc - - sandbox/projects/nocdev/nocdev_ticket_helper - - sandbox/projects/ofd - - sandbox/projects/oops - - sandbox/projects/ott - - sandbox/projects/paysys/tasks/docker - - sandbox/projects/porto/BuildPorto - - sandbox/projects/rasp - - sandbox/projects/report - - sandbox/projects/rthub - - sandbox/projects/saas - - sandbox/projects/samovar - - sandbox/projects/sandbox - - sandbox/projects/sandbox_ci - - sandbox/projects/security/CodeQLArcadia - - sandbox/projects/setrace - - sandbox/projects/shiny_discovery - - sandbox/projects/skynet - - sandbox/projects/solomon - - sandbox/projects/sonic - - sandbox/projects/sport_wizard - - sandbox/projects/suggest/dicts/News - - sandbox/projects/suggest/dicts/TailDictionary - - sandbox/projects/suggest/tools - - sandbox/projects/suggest/watchdog/watchdog_tests - - sandbox/projects/sup - - sandbox/projects/tank - - sandbox/projects/testpalm - - sandbox/projects/travel_analytics - - sandbox/projects/ugc - - sandbox/projects/userdata - - sandbox/projects/voicetech - - sandbox/projects/walle - - sandbox/projects/weather - - sandbox/projects/websearch/PerlReport2Base - - sandbox/projects/websearch/PerlReportBase - - sandbox/projects/websearch/basesearch - - sandbox/projects/websearch/begemot/tasks - - sandbox/projects/websearch/devops - - sandbox/projects/websearch/middlesearch - - sandbox/projects/websearch/tunneller/tasks - - sandbox/projects/websearch/upper - - sandbox/projects/woland/WolandAlerting - - sandbox/projects/yadrive/YaDriveFunctionalTest - - sandbox/projects/yadrive/YaDriveGenerateAnalyzerCache - - sandbox/projects/yadrive/YaDriveTestAccountsGenerator - - sandbox/projects/yane/common - - sandbox/projects/ydo - - sandbox/projects/yf - - sandbox/projects/younglings - - sandbox/projects/yp/BuildYpEmergencyBreak - - sandbox/projects/yql - - sandbox/proxy/flask_uwsgi_websocket - - sandbox/proxy/websocket - - sandbox/yasandbox/controller - - scarab/api/python3 - - search/begemot/tools/apphost/graph_modifier - - search/begemot/tools/spellchecker/framework_adapter - - search/begemot/tools/spellchecker/framework_api - - search/geo/tools/base_pool_from_meta - - search/geo/tools/comparer - - search/geo/tools/personal_pois/tools/future_click_pool - - search/geo/tools/qloss - - search/geo/tools/ranking - - search/geo/tools/util - - search/gta/hc2ch/lib - - search/gta/ltv/hc1_reducer/lib - - search/gta/utils/nile_4 - - search/gta/utils/statutils - - search/horadric2/example/services - - search/horadric2/hmock/services - - search/martylib - - search/mon/iconostasis_validator/libs - - search/mon/rviewer - - search/mon/screenshoter/src - - search/mon/stater/contrib/datemath - - search/mon/stater/src/bin - - search/mon/stater/src/libs - - search/mon/stater/src/modules - - search/mon/tickenator/services - - search/mon/tickenator/sqla/ultima - - search/mon/wabbajack/libs/generated/iss3 - - search/mon/wabbajack/libs/modlib - - search/mon/workplace/src/services - - search/mon/workplace/src/sqla/workplace - - search/resonance/pylib - - search/resonance/tester/tools/viewer - - search/sawmill/services - - search/sawmill/sqla/sawmill - - search/tools/devops/apphost/find_bad_backends - - search/tools/devops/libs - - search/tools/devops/overcommit - - search/tools/devops/panel_generator - - search/tools/findurl/src - - search/tools/idx_ops/comparer/to_html_converter - - security/takeout - - security/yodax/lib/formatters - - security/yodax/lib/gixy - - smarttv/droideka/proxy/migrations - - smarttv/plant/plant/migrations - - smm/tools/stack - - sport/backend/sport/data/migrations - - sport/backend/sport/images/migrations - - sport/backend/sport/projects/basketball/migrations - - sport/backend/sport/projects/cybersport/migrations - - sport/backend/sport/projects/football/migrations - - sport/backend/sport/projects/formula1/migrations - - sport/backend/sport/projects/games/migrations - - sport/backend/sport/projects/hockey/migrations - - sport/backend/sport/projects/martial_arts/migrations - - sport/backend/sport/projects/tennis/migrations - - sport/backend/sport/projects/time_judge/migrations - - sport/backend/sport/projects/volleyball/migrations - - sport/backend/sport/sport/migrations - - sport/backend/sport/translations/migrations - - sport/backend/sport/tv/migrations - - sport/backend/tests/projects/batches - - sprav/java/editor/recipe - - sprav/mining/quarantine/feature_grep/lib - - sprav/tycoon/tools/add_table_replica - - statbox/jam/libs/superapp - - statbox/jam/libs/zalogin - - statbox/libstatbox/python - - statbox/python-statinfra - - statbox/step_client - - taxi/antifraud/adhoc/TAXISECTEAM-4126 - - taxi/antifraud/adhoc/TAXISECTEAM-4126-refunds/downloader - - taxi/antifraud/adhoc/TAXISECTEAM-4126-refunds/parser - - taxi/graph/tools/generate-cmake - - taxi/python-modules/pystache - - taxi_efficiency/libs/tariff_computations - - testenv/jobs - - tools/pycron - - tools/releaser/src/lib/deblibs - - transfer_manager/copy_yt_to_clickhouse/python/clickhouse - - transfer_manager/copy_yt_to_clickhouse/python/cluster_client - - transfer_manager/copy_yt_to_clickhouse/python/configs - - transfer_manager/copy_yt_to_clickhouse/python/copy_table - - transfer_manager/copy_yt_to_clickhouse/python/job_executors - - transfer_manager/copy_yt_to_clickhouse/python/parsers - - transfer_manager/copy_yt_to_clickhouse/python/support - - transfer_manager/copy_yt_to_clickhouse/python/task_state - - transfer_manager/copy_yt_to_clickhouse/python/tm_tracker - - transfer_manager/copy_yt_to_clickhouse/python/tool - - transfer_manager/copy_yt_to_clickhouse/python/yt - - transfer_manager/python/dbaas - - transfer_manager/server/bin/server - - transfer_manager/server/bin/watchdog - - transfer_manager/server/lib - - travel/avia/library/python/common/protobuf_converting/big_wizard/proto - - travel/avia/library/python/common/saas/proto - - travel/hotels/devops/l2_tool - - travel/hotels/tools/catroom_stat - - travel/hotels/tools/cli - - travel/hotels/tools/expedia_property_pansions_builder - - travel/hotels/tools/slug_builder - - travel/hotels/tools/spyt_runner - - travel/marketing/content/admin - - travel/rasp/admin - - travel/rasp/bus/toloka_matching/src - - travel/rasp/library/common_recipe - - travel/rasp/library/python/common - - travel/rasp/library/python/route_search/migrations - - travel/rasp/morda - - travel/rasp/mysql_dumper/lib - - travel/rasp/suburban_tasks - - travel/rasp/touch - - trust/bill76/convert_terminal_rates - - trust/bill76/create_yt_tables_for_datalens - - trust/bill76/create_yt_tables_for_export - - trust/dev/qyp_enviroment - - voicetech/asr/cloud_engine/vh/bin/build_cloud_lingware_yt - - voicetech/asr/cloud_engine/vh/bin/kenlm_pipeline_yt - - voicetech/asr/cloud_engine/vh/bin/light_lm_pipeline_s3 - - voicetech/asr/cloud_engine/vh/bin/light_lm_pipeline_yt - - voicetech/asr/cloud_engine/vh/bin/normalize_dataset_yt - - voicetech/asr/cloud_engine/vh/bin/subword_lm_pipeline_s3 - - voicetech/asr/cloud_engine/vh/bin/subword_lm_pipeline_yt - - voicetech/asr/cloud_engine/vh/graphs - - voicetech/asr/cloud_engine/vh/operations - - voicetech/asr/core/lib/subword_ngram_lm/nirvana/build_subword_model - - voicetech/asr/core/lib/subword_ngram_lm/nirvana/build_unigram_model - - voicetech/asr/core/lib/subword_ngram_lm/nirvana/eval_perplexity - - voicetech/asr/experiments/partial_prefetch/bin/build_data - - voicetech/asr/experiments/partial_prefetch/lib - - voicetech/asr/pipeline/annotation/lib - - voicetech/asr/pipeline/generate_texts/lib - - voicetech/asr/tools/ctc_visualize - - voicetech/asr/tools/decoder_sweeper/lib - - voicetech/asr/tools/decoding_result_viewer - - voicetech/asr/tools/language_model/scripts/lib - - voicetech/asr/tools/train_helpers/checkpoint_downloader - - voicetech/asr/tools_cloud/char_ngram/dataset/utils - - voicetech/asr/tools_cloud/datasets/audio_datasets/prepare_atc - - voicetech/asr/tools_cloud/datasets/audio_datasets/prepare_biovitrum - - voicetech/asr/tools_cloud/datasets/audio_datasets/prepare_from_yt - - voicetech/asr/tools_cloud/datasets/audio_datasets/prepare_kaspi - - voicetech/asr/tools_cloud/datasets/audio_datasets/prepare_toloka - - voicetech/asr/tools_cloud/datasets/lib - - voicetech/asr/tools_cloud/experiments/scripts/spellcheck/tools - - voicetech/asr/tools_cloud/experiments/scripts/wer_from_yt - - voicetech/asr/tools_cloud/upload_records_to_yt/collect_audio - - voicetech/asr/tools_cloud/upload_records_to_yt/collect_texts - - voicetech/asr/tools_cloud/utils/generate_table_name - - voicetech/asr/tools_cloud/utils/tables_cache_cleaner - - voicetech/bio/tf_future - - voicetech/common/kaldi_features_lib/python-package/kaldi_features - - voicetech/infra/lingwarefactory/yaldi-apply-soundset - - voicetech/infra/qa/speechbase-voiceproxy-logsv3-cleanup - - voicetech/infra/qa/uniproxy-logs-gen-params - - weather/libs/utils/meteo - - weather/meteo/flow/scheduler - - weather/meteo/models/repository - - weather/ml/libs/geo_utils/python - - weather/ml/misc/grid_utils - - weather/ml/quality/stand/misc/artifacts - - weather/ml/quality/stand/misc/external/pytlib - - weather/ml/quality/stand/misc/wrappers - - weather/workers/warnings - - weather/yasm/workerstats - - apphost/daemons/horizon/contrib - - apphost/tools/event_log_filter/tests/lib - - web/daemons/begemot/scripts/yt_priemka - - wmconsole/backend/packaging-tools - - yabs/amazon/cache_proxy - - yabs/basic_packages/yabs-global-info/py-modules - - yabs/bscount/protocol/pyfbs - - yabs/cache-proxy/plugin/proxy_b2b/templates - - yabs/libs/ua_traits/orig/pymodules - - yabs/qa/b2b_utils/bsserver_b2b/engine/external_logs - - yabs/qa/oneshots/inna-kudelkina/BSDEV-75160/create_new_templates - - yabs/qa/oneshots/inna-kudelkina/BSDEV-75160/test_681_684_697_725_json_templates - - yabs/qa/oneshots/inna-kudelkina/BSDEV-75160/test_add_callouts_to_681_684_697_725_json_templates - - yabs/qa/oneshots/inna-kudelkina/BSDEV-77853/test_yt_delete_resource_product - - yabs/qa/oneshots/inna-kudelkina/BSSERVER-11616/cumulative_oneshot_for_test - - yabs/qa/oneshots/inna-kudelkina/BSSERVER-12582/yt_test_create_template_and_res - - yabs/qa/oneshots/inna-kudelkina/BSSERVER-14676/yt_oneshot_test_add_template_banner_res - - yabs/qa/oneshots/naignatov/BSDEV-80708 - - yabs/qa/oneshots/yambulatov/BSSERVER-14195/test-resource-addition - - yabs/qa/sandbox_helper/launcher - - yabs/qa/yabs_b2b_tank/qabs/common - - yabs/sbyt/devutils/move-release - - yabs/sbyt/migration/BSDEV-75115-AdvmachineBanners - - yabs/sbyt/supervisor - - yabs/server/cs/pylibs/yt_query_map - - yabs/server/infra/transport/yabs_file_transport - - yabs/server/libs/py_pretty - - yabs/server/libs/py_view_base - - yabs/server/test/qabs_bsserver_pytest/data - - yabs/stat/monitor/metrics_proxy - - yabs/stat/monitor/setup_solomon - - yabs/tests/bsdbx2/replica_speed_monitoring - - yabs/umbrella/mapreduce_antifraud/bad-rambler-distributions - - yabs/umbrella/mapreduce_antifraud/check-ip - - yabs/umbrella/mapreduce_antifraud/py-modules/antifraud - - yabs/umbrella/mapreduce_antifraud/rtb_antifraud_launcher - - yabs/umbrella/mapreduce_antifraud/serp_no_clicks_users - - yabs/vh/cms-pgaas/thumb_selector - - yql/cli - - yql/library/python - - yql/library/test_framework/recipe - - yql/tests/dq/lib - - yql/tools/job_perf - - yql/tools/nginx_mon - - yql/tools/yqlflask - - yql/tools/yqltornado - - yt/admin/acl_dumper/src - - yt/admin/ytcfgen/vendor/pyinotify/python2 - - yt/cron/balance_bundles - - yt/hermes/contrib/gitdb2 - - yt/hermes/contrib/gitpython - - yt/hermes/contrib/smmap2 - - yt/odin/bin/cleanup - - yt/odin/bin/odin - - yt/odin/bin/webservice - - yt/odin/lib/odinserver - - yt/odin/tests/data/checks/available - - yt/odin/tests/data/checks/invalid - - yt/odin/tests/data/checks/long - - yt/odin/tests/data/checks/partial - - yt/odin/tests/data/checks/with_data - - yt/odin/tests/data/checks/with_invalid_return_value - - yt/odin/tests/data/checks/with_options - - yt/python/contrib/prettytable - - yt/python/contrib/python-chardet - - yt/python/contrib/python-dill - - yt/python/contrib/python-fusepy - - yt/python/contrib/python-idna - - yt/python/contrib/python-requests - - yt/python/contrib/python-urllib3 - - yt/python/yt/clickhouse - - yt/python/yt/flask_helpers - - yt/python/yt/operations_archive - - yt/python/yt/packages - - yt/python/yt/tools - - yt/python/yt/transfer_manager - - yt/python/yt/wire_format - - yt/yt/experiments/dyntables_stress_test - - yweb/antiporno/bert/development/python/lib/google_bert - - yweb/antiporno/queries_active_learning/work_with_markup_cache - - yweb/antiporno/site_reachability/lib/retraversal_sites - - yweb/antiporno/site_reachability/lib/spy_handling - - yweb/antispam/phishing/lib/python - - yweb/antispam/phishing/models/limixis_log_regression - - yweb/antispam/phishing/screenshots_cbir/dnsdb_filter - - yweb/antispam/util/scraper - - yweb/antispam/whois/scripts - - yweb/blender/newsletter/top_negative_intents - - yweb/blender/online_learning/bin/rtmr_helper - - yweb/blender/scripts/blender_viewer/contrib/abt_backend - - yweb/blender/scripts/click_int_formula/analysis - - yweb/blender/scripts/click_int_formula/common - - yweb/blender/scripts/click_int_formula/config - - yweb/blender/scripts/click_int_formula/eval_feature_lib - - yweb/blender/scripts/click_int_formula/eval_program - - yweb/blender/scripts/click_int_formula/factors_lib - - yweb/blender/scripts/click_int_formula/formula_model - - yweb/blender/scripts/click_int_formula/pool - - yweb/blender/scripts/click_int_formula/pool_iterator - - yweb/blender/scripts/click_int_formula/tar_model_handler - - yweb/blender/scripts/click_int_formula/training - - yweb/blender/scripts/click_int_formula/xtd_templates - - yweb/blender/scripts/landing_load_data/common - - yweb/blender/scripts/landing_load_data/log_service_data_ts - - yweb/blender/scripts/landing_load_data/prepare_for_saas - - yweb/blender/scripts/nirvana/workflows/lib - - yweb/blender/scripts/nirvana/workflows/operation_updater - - yweb/blender/scripts/nv_common - - yweb/blender/scripts/offline_replay/html_metrics_formatter - - yweb/blender/scripts/patch_fml_config - - yweb/blender/scripts/tools - - yweb/crawlrank/config/src - - yweb/freshness/rtmr_metrics/fresh_surplus/tools/dump_state - - yweb/freshness/scripts/rem - - yweb/incproc/komutator/python - - yweb/mail/webmail-search-quality - - yweb/music/pylib - - yweb/news/app_host/api_responder/recipe - - yweb/news/python/contrib/yasmapi - - yweb/robot/analitics/crawlview/histoviewer - - yweb/robot/js/tools/viewer - - yweb/robot/ukrop/nirvana_tools/crawl_result - - yweb/robot/ukrop/nirvana_tools/graph_starter - - yweb/sitelinks/astrolabe/build_bna/candidates/bno_clicks_squeeze - - yweb/tellurium/lib - - yweb/webscripts/video/common/sandbox - - yweb/webscripts/video/docker/cm_tool - - yweb/yasap/answers/3rdparty/apns - - yweb/yasap/answers/3rdparty/falcon_apispec - - yweb/yasap/answers/3rdparty/sendgrid - - yweb/yasap/answers/database_migrations - - yweb/yasap/common/saas - - yweb/yasap/pdb/library/batch_processing - - yweb/yasap/pdb/library/toloka-client - - yweb/yasap/pdb/pdb-backend/src - - yweb/yasap/pdb/pdb-backend/tests/lib/recipe_utils - - yweb/yasap/pdb/pdb-backend/tests/lib/test_utils - - yweb/yasap/pdb/quality/card_recommender/viewer/viewer - - yweb/yasap/pdb/quality/hot_feed/tools/viewer - - yweb/yasap/pdb/quality/master_item_recommender/viewer - - yweb/yasap/pdb/viewers/c2c_toloka_viewer - - yweb/yasap/pdb/viewers/knn_viewer - - yweb/younglings/education/regular/clear_old_tables - - yweb/younglings/education/regular/docs_vertical/bestreferat_parser - - yweb/younglings/education/regular/requests_timing/scripts/generate_html - - yweb/younglings/education/regular/requests_timing/scripts/send_to_solomon - - yweb/younglings/education/regular/yt_eventlog_grep_errors/generate_email - - yweb/younglings/tasks/YOUNGLINGS-403/secondary_from_csv - - zootopia/library/py/latlon - - zootopia/library/py/saaspy - - zootopia/library/py/statfacepy - - FactExtract/Parser/aftextminer/tests/aftextminer_bastard - - FactExtract/Parser/aftextminer/tests/aftextminer_contacts - - FactExtract/Parser/aftextminer/tests/aftextminer_fdo - - FactExtract/Parser/aftextminer/tests/aftextminer_geo - - FactExtract/Parser/aftextminer/tests/aftextminer_mail_events - - FactExtract/Parser/aftextminer/tests/aftextminer_prettyoutput - - FactExtract/Parser/aftextminer/tests/aftextminer_status - - FactExtract/Parser/aftextminer/tests/aftextminer_ukr - - FactExtract/address_extractor/tests/address_extractor - - FactExtract/address_extractor/tests/address_extractor_agree - - FactExtract/address_extractor/tests/address_extractor_interface - - FactExtract/address_extractor/tests/address_extractor_max_fact - - FactExtract/address_extractor/tests/address_extractor_threaded - - FactExtract/address_extractor/tests/after_bugs - - FactExtract/print_addr_filter/tests - - ads/autobudget/ml_pipeline/scripts/convert_yt_pool_catboost/lib/ft - - ads/autobudget/ml_pipeline/scripts/create_cd_file/lib/ft - - ads/bsyeti/libs/py_tnode/ut - - ads/factor_check/mutial_information/yql/tests - - ads/libs/py_autobudget/ut - - ads/libs/py_mapreduce/yabs-mapreduce-modules/t/mapreducelib - - ads/libs/py_mapreduce/yabs-mapreduce-modules/t/mapreducelib_emulator - - ads/libs/py_mapreduce/yabs-mapreduce-modules/t/yabs/tabtools - - ads/libs/py_mapreduce/yabs-mapreduce-modules/test_pt/functional - - ads/libs/py_mapreduce/yabs-mapreduce-modules/test_pt/functional_skiff - - ads/libs/py_matrixnet/ut - - ads/libs/py_ml_factors/fat/test_mappers - - ads/libs/py_vw_lib/ut - - ads/libs/test_yt/example/run - - ads/libs/yql/ut/test - - ads/nirvana/difacto/dmlc_launcher/test - - ads/nirvana/online_learning/run_flowkeeper/workflow_tests - - ads/pytorch/deploy/bindings/ut - - ads/quality/metric_eval/tests/ut - - ads/sandbox_scripts/logs_scheme/fat - - advq/generation/broadmatch_export/tests - - advq/generation/common/generators/phits_index_uploader/tests - - advq/generation/common/linguistics/tests - - advq/generation/common/queries/tests - - advq/generation/common/tests - - advq/generation/phits_generator/tests - - advq/offline_phits/direct_export/ut/test_export - - advq/offline_phits/library/ut/process - - advq/offline_pkz/test - - alice/library/python/decoder/tests - - antiadblock/cryprox/tests/functional - - april/mediaplan/mediaplan/forecaster/migrations - - bindings/java/abt/abt-native/android/tests - - cloud/ai/speechkit/stt/tests/data/model - - cloud/ai/speechkit/stt/tests/eval/metrics - - cloud/gauthling/yc_auth_tornado/test - - cloud/mdb/dbaas-internal-api-image/dbaas_internal_api/utils/dataproc_joblog - - cv/imageproc/ocr/ocr_runner/load_cfg - - cv/imageproc/ocr/ocr_runner/tests - - cv/library/imageparserlib/rawinterface/tests - - datacloud/features/dssm/tests - - datacloud/features/geo/tests - - dict/ext/pairfreq/findpairs3/tests/ctxt - - dict/ext/pairfreq/findpairs3/tests/ctxtid - - dict/ext/pairfreq/findpairs3/tests/estim - - dict/ext/pairfreq/findpairs3/tests/find - - dict/ext/pairfreq/findpairs3/tests/lemmatize - - dict/gen_phrases/tests - - dict/geninflnames/tests - - dict/mystem/tests/pipe - - dict/tools/disamb_test/tests - - dict/tools/docrec_html_parser/tests - - dict/tools/make_morphdict/main/tests - - dict/tools/make_morphdict/normalize/tests - - dict/tools/make_morphdict/scripts/prepare/tests - - dict/tools/make_morphdict/scripts/schemes/tests - - dict/tools/make_morphdict/tests - - dict/tools/morphotest/morphopy/tests - - dict/tools/query_disamb_test/tests - - dict/tools/unicode_test/tests - - dict/tools/untransliter/tests - - dict/word2vec/tools/convert_model/tests - - dj/tools/rthub_profiles/profile_update_triggers/profile_update_trigger_rtmr/tests - - entity/recommender/nirvana/operations/build_static_profiles/ut - - entity/recommender/nirvana/operations/build_tops_profiles/ut - - entity/recommender/nirvana/operations/make_sbs_film_polls/lib/ut - - entity/recommender/tools/features_diff_checker/ut - - extsearch/audio/yamrec/upper - - extsearch/fresh/meta/rearrange_data/tests - - extsearch/images/robot/parsers/html_parser/imagelib/ut2 - - extsearch/images/tools/cbircomparer/tests - - extsearch/images/tools/query_filter/ut - - extsearch/video/indexer/indexurlseq/create/tests - - extsearch/video/quality/deep_click/tests - - extsearch/video/quality/delayed_view/trie_ops/tests - - extsearch/video/quality/vuserdata2/tests - - extsearch/video/robot/authorfromjson/tests - - extsearch/video/robot/authorthumbs/tests - - extsearch/video/robot/crawling/custom_html_parser/bin/tests - - extsearch/video/robot/crawling/partner_api/bin/tests - - extsearch/video/robot/deletes/player_ban/tests - - extsearch/video/robot/docbase/docauthor/tests - - extsearch/video/robot/docbase/docfactor/tests - - extsearch/video/robot/docbase/factors/authfexport/tests - - extsearch/video/robot/docbase/indexdocs/tests - - extsearch/video/robot/docbase/postcalc/tests - - extsearch/video/robot/docbase/vegas/adaptor/tests - - extsearch/video/robot/frames/merge/tests - - extsearch/video/robot/hostsdb/tool/tests - - extsearch/video/robot/index/indexfactors/tests - - extsearch/video/vh/indexer/tests - - extsearch/wizards/fastres2/daemon/tests/small - - geobase/python - - geobase/tests/timezone_getter - - health/turbo_articles/parser/tests - - health/turbo_articles/turbo_to_yt/tests - - health/yamd/health_backend/tests - - health/yamd/libs/data_layer/tests - - infra/nanny/instancectl/tests/func - - infra/nanny/instancectl/tests/func_legacy - - infra/nanny/sepelib/tests - - infra/qyp/vmctl/tests - - infra/wall-e/checks/tests - - intranet/hidereferer/tests - - intranet/magiclinks/tests - - intranet/yandex_directory/tests - - kernel/title_ranges/test_title_ranges/tests - - library/cpp/codecs/static/tools/tests - - library/cpp/deprecated/solartrie/test/tests - - library/cpp/file_checker/test/tests - - library/python/vault_client/ut/tests - - logbroker/push-client/ft - - logfeller/lib/table_allocator/functional_tests/dyn_allocator_tests - - mapreduce/library/native2streaming/tests/tests - - mapreduce/yt/tests - - maps/libs/tile/pymod-tests - - maps/wikimap/mapspro/tools/topology_fixer/tests - - market/contrib/python/BitTorrent - - market/dynamic_pricing/pricing/common/checks/checker/ut - - market/dynamic_pricing/pricing/common/checks/solomon_sender/ut - - market/dynamic_pricing/pricing/dynamic_pricing/tests - - market/forecaster/lite-offline - - market/yamarec/edera/tests/unit - - market/yamarec/yamarec/tests/functional - - mds/cocaine/darkvoice/tests - - mds/cocaine/plugins/geobase/tests - - mds/cocaine/plugins/langdetect/tests - - mds/cocaine/plugins/regional-units/tests - - mds/cocaine/plugins/uatraits/tests - - mds/libs/thevoid/tests - - media/recommender/zen/factor_url_socnet/tests - - mediapers/rtmr/tasks/kp/recommendations/tests - - ml/cf_sharp/tests - - modadvert/libs/algorithms/ut - - modadvert/programs/catalogia_flags_diff/ut - - mssngr/tools/pytests/setup/local - - nirvana/valhalla/tests - - ofd/notifier/tests/test_unit/test_sender/test_event_types - - ofd/notifier/tests/test_unit/test_sender/test_notification_types - - passport/backend/logbroker_client/account_events/tests - - passport/backend/logbroker_client/oauth/tests - - passport/backend/logbroker_client/xiva/tests - - passport/backend/tools/metrics/ut - - passport/backend/vault/cli/yav/tests - - quality/ab_testing/scripts/exp_veles/exp_mr_server/scripts/ut - - quality/ab_testing/tools/postgres_local/tests - - quality/click_machine/tests - - quality/functionality/chats/common/feedback_client/tests - - quality/functionality/content_plugins/runner/tests - - quality/functionality/content_plugins/tools/cut_snippets/tests - - quality/functionality/entity_search/factqueries/facts_builder_mr/tests/medium - - quality/functionality/ideal_snippets/release_data/tests - - quality/functionality/parsepl/nirvana/parse_kwyt_sample/tests - - quality/functionality/toloka_lib/tests - - quality/functionality/turbo/rss/host_ban_job/tests - - quality/logs/baobab/api/cpp/tests - - quality/logs/baobab/tamus/python/ut - - quality/logs/baobab/tamus/tests/dump_test - - quality/logs/baobab/tests/validation_lib - - quality/logs/log_splitter_lib/tests/rec_splitter/tests - - quality/logs/logs_ng_verifier/tests - - quality/mr_apps/mr_cat/test - - quality/mr_apps/mr_cp/test - - quality/mr_apps/mr_data_manip/test - - quality/mr_apps/mr_diff/test - - quality/mr_apps/mr_files/test - - quality/mr_apps/mr_find/test - - quality/mr_apps/mr_get_keys/test - - quality/mr_apps/mr_get_table_part/test - - quality/mr_apps/mr_grep/test - - quality/mr_apps/mr_hash/test - - quality/mr_apps/mr_head/test - - quality/mr_apps/mr_hist/test - - quality/mr_apps/mr_key_count/test - - quality/mr_apps/mr_ls/test - - quality/mr_apps/mr_mv/test - - quality/mr_apps/mr_rm/test - - quality/mr_apps/mr_set_ops/test - - quality/mr_apps/mr_sort/test - - quality/mr_apps/mr_stat/test - - quality/mr_apps/mr_touch/test - - quality/mr_apps/mr_uniq/test - - quality/mr_apps/mr_wc/test - - quality/mr_test/tests - - quality/mr_trie_tools/mr_coded_blob_test/tests - - quality/mr_trie_tools/mr_trie_test/tests - - quality/pers/ml/atom/calctarg/tests - - quality/pers/ml/atom/distribution/collect_user_ids/tests - - quality/pers/ml/atom/distribution/convert_logs/tests - - quality/pers/ml/atom/distribution/conveyor/pool_builder/tests - - quality/pers/ml/atom/distribution/counter_stat/tests - - quality/pers/ml/atom/distribution/crypta_extract/tests - - quality/pers/ml/atom/distribution/generate_user_id_mapping/tests - - quality/pers/ml/atom/distribution/joiner/tests - - quality/pers/ml/atom/distribution/parse_atom_events/tests - - quality/pers/ml/atom/distribution/postprocess_product_profiles/tests - - quality/pers/ml/atom/distribution/product_profile_and_candidate_score_matcher/tests - - quality/pers/ml/atom/distribution/product_profiles2/tests - - quality/pers/ml/atom/distribution/search_profiles/tests - - quality/pers/ml/atom/docscore/tests - - quality/pers/ml/atom/project-specific/entity_search/makepool/tests - - quality/pers/ml/outflow/tests - - quality/pers/rerank_service/tests/service-test - - quality/pers/user_buckets/tests - - quality/pers/user_history/geo_requests/tests - - quality/pers/user_profiles/tests/local_mr - - quality/pers/user_profiles/tests/rtmr - - quality/relev_tools/fml_mr_utils/pool_sampler/test - - quality/relev_tools/fml_mr_utils/prs_intersector/test - - quality/relev_tools/fml_mr_utils/prs_unrater/test - - quality/relev_tools/fml_plot/tests - - quality/relev_tools/lboost_ops/makereqbundle/tests/from_plain_text - - quality/relev_tools/lboost_ops/makereqbundle/tests/from_qtree - - quality/relev_tools/lboost_ops/tm_calc/tests - - quality/relev_tools/vpcg/bin/ut - - quality/relev_tools/xfactor-yt/lib/ut/convert_output - - quality/relev_tools/xfactor-yt/lib/ut/metric_export - - quality/relev_tools/xfactor-yt/lib/ut/prepare_input - - quality/short_beak/sg_collector/tests - - quality/tools/scripts/tests - - quality/traffic/tests/iterator/tests - - quality/trailer/rich_suggest_data/fast_thematic_personalization/tests - - quality/user_search/qnorm_manip/tests - - quality/user_sessions/bali/tests - - quality/user_sessions/createlib/qb3/parser/helpers_example/tests - - quality/user_sessions/createlib/qb3/parser/local_yt_test_example - - quality/user_sessions/createlib/qb3/parser/local_yt_test_example_proto - - quality/user_sessions/createlib/qb3/parser/local_yt_test_example_proto_v2 - - quality/user_sessions/createlib/tests - - quality/userdata/prep/tests - - quality/ytlib/ytweave/tests - - robot/lemur/ci_yt/smoke - - robot/library/oxygen/indexer/input/collection/tests - - robot/library/oxygen/indexer/mapper/links/tests - - robot/library/oxygen/indexer/output/tests - - robot/library/oxygen/indexer/processor/arcdir/tests - - robot/library/oxygen/indexer/processor/pruning/tests - - rtmapreduce/mrtasks/bs_fast_stat/tests - - rtmapreduce/mrtasks/cocaine_log/tests - - rtmapreduce/mrtasks/images_freon_sample/tests - - rtmapreduce/mrtasks/keyslist/tests - - rtmapreduce/mrtasks/parselib_errors/tests - - rtmapreduce/mrtasks/rtmr/pqout/tests - - rtmapreduce/mrtasks/rtmr/splitter/tests - - rtmapreduce/mrtasks/sample/tests - - rtmapreduce/mrtasks/sbapi_split/tests - - rtmapreduce/mrtasks/sessions2detector/tests - - rtmapreduce/mrtasks/sessions2trender/tests - - rtmapreduce/mrtasks/video_player_errors/tests - - rtmapreduce/tests/pusher-test/tests - - saas/rtyserver_test/tests/cluster - - saas/rtyserver_test/tests/unit_10m - - saas/rtyserver_test/tests/with_data - - sandbox/projects/devtools/ChangesDetector - - scarab/api/tests/java-mobile-minimal/ut - - scarab/api/tests/js/ut - - scarab/api/tests/perl/ut - - scarab/api/tests/python/ut - - scarab/api/tests/swift/ut - - search/begemot/tools/spellchecker/framework_adapter - - search/geo/tools/golovan/extevlogproc/tests - - search/gta/ltv/hc1_reducer/tests - - search/lingboost/saas/codecs/test_bundle_codecs/tests/slow - - search/panther/tests/convert - - search/tools/idx_ops/comparer/tests - - search/tools/idx_ops/converter/tests - - search/tools/request_sampler/tests - - search/web/personalization/test_features/tests - - serp/foreverdata/test/patcher - - strm/vast_converter/tests - - tools/clustermaster/tests - - tools/langdiscr-test/tests - - tools/lemmer-test/tests - - tools/nlp_test/tests - - tools/nodeiter_test/tests - - tools/printreqs/tests - - tools/rcgtest/tests - - tools/recode/tests - - tools/segutils/tests/dater2_test/tests - - tools/segutils/tests/dater_test/tests - - tools/segutils/tests/segmentator_test/tests - - tools/segutils/tests/zones_test/tests - - tools/snipmake/steam/page_factors/cpp_factors/segmentator_tool/tests - - tools/snipmake/urlcut_test/tests - - tools/test_norm/tests - - tools/tokenize/tests - - tools/untranslit_test/tests - - transfer_manager/server/tests/e2e - - vh/recommender/tools/build_offline_doc2doc/tests - - vh/recommender/tools/build_offline_recommendations/tests - - vh/recommender/tools/dssm_profiles/ut - - weather/libs/secrets/tests - - weather/workers/common/location_indices/tests - - yabs/indoor/tests - - yabs/server/libs/py_decrypt_predictions/test - - yabs/server/libs/py_pibf/test - - yabs/server/test/pylibs/blowfish/test - - yabs/server/test/tools/oneshot_tester/lib/tests - - yabs/vh/cms-pgaas/test/ft/ad_config_importer - - yabs/vh/cms-pgaas/test/ft/admin_api - - yabs/vh/cms-pgaas/test/ft/content_ksiva_api - - yabs/vh/cms-pgaas/test/ft/self_service_api - - yabs/vh/frontend/test/ft/VH-3242 - - yql/library/embedded/python/test - - yql/scripts/local - - yql/tests/jdbc - - yql/tests/multi_process - - yt/admin/drive_monitor/tests/unit - - yt/odin/tests/suites - - yweb/antiporno/pyutil/draft/simple_yt/tests - - yweb/antiporno/pyutil/tests - - yweb/antiporno/site_reachability/lib/botanik/tests/small - - yweb/antiporno/site_reachability/lib/export/video/tests/medium - - yweb/antiporno/yt_tools/rsync_yt/tests/medium - - yweb/antiporno/yt_tools/rsync_yt/tests/small - - yweb/antispam/tools/masks2qd_trie/tests - - yweb/antispam/url_ndp/url_ndp_lua/http_api - - yweb/antispam/url_ndp/url_ndp_lua/ut - - yweb/autoclassif/subquery/indexer/tests - - yweb/blender/lib/libblndr/tests - - yweb/blender/scripts/fml_config_server - - yweb/freshness/fresh_suggest/tests - - yweb/freshness/news_doc_contrast/rtmr/tests - - yweb/freshness/rtmr_collect_news_bursts/tests - - yweb/freshness/rtmr_metrics/fresh_clicks/tests - - yweb/freshness/rtmr_metrics/fresh_surplus/tests - - yweb/news/bindings/python/url/test - - yweb/peoplesearch/rtysearch/lib/profile_dumper/tests/tests - - yweb/peoplesearch/rtysearch/rtyindexer/tests - - yweb/peoplesearch/social_users/lib/common/tests/tests - - yweb/peoplesearch/yweb_social_snippet/tools/socnetsnip_querydata_formatter/tests - - yweb/peoplesearch/yweb_social_snippet/tools/yweb_social_snippet_generator_mr/tests - - yweb/pumpkin/mrcollector/tests - - yweb/querydata/querydata_indexer/tests - - yweb/querydata/querydata_indexer_saas/ferryman/abstract_worker/local_yt_tests - - yweb/querydata/querydata_indexer_saas/ferryman/json_worker/local_yt_tests - - yweb/querydata/querydata_indexer_saas/ferryman/tests/local_yt_tests - - yweb/querydata/querydata_indexer_saas/ferryman/worker/local_yt_tests - - yweb/querydata/tools/trie_searcher_test/tests - - yweb/querydata/tools/url2docid/tests - - yweb/querydata/tools/url2owner/tests - - yweb/querydata/totalban2/tests - - yweb/rca/tools/crca/tests - - yweb/robot/kiwi_queries/robot/triggers/dateextractortrigger/test - - yweb/robot/kiwi_queries/robot/triggers/disambmasktrigger/test - - yweb/robot/kiwi_queries/robot/triggers/extbreaktrigger/test - - yweb/robot/kiwi_queries/robot/triggers/freqcalculatortrigger/test - - yweb/robot/kiwi_queries/robot/triggers/httpparsetrigger/test - - yweb/robot/kiwi_queries/robot/triggers/mediawikitrigger/test - - yweb/robot/kiwi_queries/robot/triggers/mergedatacontainertrigger/test - - yweb/robot/kiwi_queries/robot/triggers/metadescrtrigger/test - - yweb/robot/kiwi_queries/robot/triggers/nameextractortrigger/test - - yweb/robot/kiwi_queries/robot/triggers/numbertrigger/test - - yweb/robot/kiwi_queries/robot/triggers/reviewtrigger/test - - yweb/robot/kiwi_queries/robot/triggers/segmentatortrigger/test - - yweb/robot/kiwi_queries/robot/triggers/shoptrigger/test - - yweb/robot/kiwi_queries/robot/triggers/simhashtrigger/test - - yweb/robot/kiwi_queries/robot/triggers/urlsegtrigger/test - - yweb/robot/kiwi_queries/robot/triggers/yapreviewtrigger/test - - yweb/robot/kiwi_queries/test_udf/python - - yweb/robot/refarc2omni/test - - yweb/safesearch/government/python/tests - - yweb/sitelinks/astrolabe/build_bna/candidates/tests/test_daily_logs - - yweb/sitelinks/astrolabe/build_bna/candidates/tests/test_merge_daily_logs - - yweb/sitelinks/astrolabe/build_bna/candidates/tests/test_nanos - - yweb/sitelinks/astrolabe/build_bna/candidates/tests/test_region - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_canonizations/test_apply_canonizations - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_canonizations/test_prepare_canonizations - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_gemini_input - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_generate_sitelinks_from_titles - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_get_candidates_from_refarc - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_naming_candidates - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_prepare_html_urls - - yweb/sitelinks/astrolabe/build_bna/naming/tests/test_prepare_input_for_refarc - - yweb/structhtml/mediawiki/tool/tests - - yweb/structhtml/microform/tool/tests/datavoctest - - yweb/structhtml/microform/tool/tests/microtests - - yweb/structhtml/microform/tool/tests/namevaltest - - yweb/structhtml/microform/tool/tests/structhtmltest - - yweb/structhtml/richsnippets/productoffer/tool/tests - - yweb/structhtml/richsnippets/recipe/tool/tests - - yweb/structhtml/richsnippets/semanticdata2json/tool/tests - - yweb/structhtml/richsnippets/videoobject/tool/tests - - yweb/structhtml/schemaorg/tool/tests - - yweb/video/index/vtriebuilder/tests - - yweb/video/mr_scripts/calcstaticfactors/tests - - yweb/video/mr_scripts/vmetamerge/tests - - yweb/video/robot/freshness/mr_sbrstats/tests - - yweb/video/series/heartbeat/tests - - yweb/video/tools/url2fastban/tests - - yweb/video/vprintwzrd_mr/tests - - yweb/webdaemons/explogdaemon/tests - - yweb/webscripts/video/fastrecrawl/fresh_deltas/tests - - yweb/webscripts/video/redirects_unwind - - yweb/yasap/pdb/pdb-backend/tests/lib/commands/set_market_merchant_data - - yweb/yasap/pdb/pdb-backend/tests/lib/its - - yweb/yasap/pdb/pdb-backend/tests/lib/mds - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/avatars - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/boards/resources - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/ban - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/bulk - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/complaints - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/creation - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/delete - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/delete_board - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/forbid_patch - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/get - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/log - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/market - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/merchants - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/organization - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/other - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/patch - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/samovar - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/series - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/shares - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/source_types - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/user - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards/resources/wish - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/celery - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/common - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/complaints - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/components - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/ephemeral - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/events/tasks - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/export - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/favorites - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/langdetect - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/metrics - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/object_answers - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/organizations - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/pages - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/shares - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/stats - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/tasks - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/ugcdb - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/user/resources - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/yauth - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/ydb - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/actions/tasks - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/boards - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/complaints - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/contents - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/e2e - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/idm - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/object_answers - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/recipes - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/resources - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/teasers - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/toloka - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/trashcan - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/turbo - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/users - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_ext/mongoengine - - yweb/yasap/pdb/pdb-backend/tests/lib/saas - - yweb/yasap/pdb/pdb-backend/tests/lib/sb - - yweb/yasap/pdb/pdb-backend/tests/lib/videosearch - - yweb/yasap/pdb/pdb-backend/tests/lib/ydb - - yweb/yasap/pdb/quality/profile/action_v2/rtmr/tests - - yweb/yasap/pdb/quality/profile/fresh_profiles/event_log_converter_rtmr/tests - - yweb/yasap/pdb/quality/profile/redir_actions/rtmr_redir_actions/tests - - zen/rtmr/push_processing/tests - - quality/mapreduce/tests/common - - ads/factor_check/features/tests - - quality/user_sessions/createlib/qb3/parser/local_yt_test_example_proto_v2 - - dict/mystem/tests - - infra/walle/server/tests - - market/forecaster/lite - - ofd/notifier/tests/test_unit - - saas/rtyserver_test/tests - - search/lingboost/saas/codecs/test_bundle_codecs/tests - - transfer_manager/server/tests - - yql/tests/s-expressions - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/boards - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/cards - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/events - - yweb/yasap/pdb/pdb-backend/tests/lib/podb/user - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/actions - - yweb/yasap/pdb/pdb-backend/tests/lib/podb_admin/cards - - ads/libs/py_autobudget/ft/test_ab_target_mapper - - ads/libs/py_autobudget/ft/test_attribution_preprocessor - - ads/libs/py_autobudget/ft/test_common_qid_mapper - - ads/libs/py_autobudget/ft/test_meaningful_goals_goal_id_mapper - - ads/libs/py_autobudget/ft/test_meaningful_goals_mapper - - ads/libs/py_autobudget/ft/test_meaningful_goals_to_column_mapper - - ads/libs/py_autobudget/ft/test_resampling_preprocessor - - ads/libs/py_autobudget/ft/test_reweighting - - ads/libs/py_autobudget/ft/test_row_duplicator_mapper - - ads/libs/py_autobudget/ft/test_scale_by_column_preprocessor - - ads/libs/py_mapreduce/yabs-mapreduce-modules/t - - ads/libs/py_mapreduce/yabs-mapreduce-modules/test_pt - - ads/sandbox_scripts/visibility_stats/fat - - ads/pytorch/ads_pytorch_integration_test - - ads/nirvana/online_learning/prepare_factorization_table/tsar_preprocessor/ut - - ads/nirvana/automl/pipelines/mlmarines/medium_ut - - ads/nirvana/automl/lib/preprocess_pytorch/medium_ut - - ads/nirvana/automl/lib/metric_eval/medium_ut - - ads/nirvana/automl/lib/joiner/medium_ut - - ads/libs/py_lmcompute/ut - - ads/libs/py_autobudget/mt/test_attribution_preprocessor - - ads/bigkv/tensor_transport/tests - - scarab/api/python3 - - mssngr/botplatform/src/bots/core/migrations diff --git a/build/rules/flake8/ya.make b/build/rules/flake8/ya.make deleted file mode 100644 index c77a54d621..0000000000 --- a/build/rules/flake8/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:yatest g:python-contrib) diff --git a/build/rules/go/README.md b/build/rules/go/README.md deleted file mode 100644 index 82b1b50b97..0000000000 --- a/build/rules/go/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# PEERDIR policy for Go - -## IMPORTANT -None of files in this directory can be moved or split into multiple files without explicit OK from go-com@yandex-team.ru -Doing otherwise will break vendoring tooling. - - * `contrib.policy` - special exceptions for patched contribs - * `migrations.yaml` - exceptions for linters (no additions allowed except when implementing new linters or updating old ones) - * `vendor.policy` - general PEERDIR policy for contribs diff --git a/build/rules/go/a.yaml b/build/rules/go/a.yaml deleted file mode 100644 index d9bbdf3e99..0000000000 --- a/build/rules/go/a.yaml +++ /dev/null @@ -1,21 +0,0 @@ -service: committeego -title: Go Committee -arcanum: - review: - disabling_policy: denied - groups: - - name: go-committee - roles: [ "committeego:consultant" ] - rules: - - reviewers: - - name: go-committee - assign: 4 - ship: 1 - auto_merge: - enabled: true - requirements: - - system: arcanum - type: comment_issues_closed -ci: - autocheck: - strong: true diff --git a/build/rules/go/contrib.policy b/build/rules/go/contrib.policy deleted file mode 100644 index 21d114bb8b..0000000000 --- a/build/rules/go/contrib.policy +++ /dev/null @@ -1,66 +0,0 @@ -# Permanent exceptions for heavily-patched Go contribs. Those responsible must support them -# in any way required (update on demand, fix bugs, etc). - -# CSADMIN-26541. responsible: maxk@, g:marketsre -ALLOW market/sre/tools/config-primer/src/internal/blogic -> contrib/go/patched/hugo - -# CONTRIB-1627. responsible: g:edadeal-go -ALLOW edadeal -> contrib/go/patched/cony -ALLOW contrib/go/patched/cony -> contrib/go/patched/cony - -# STRM-1124. responsible: g:strm-admin -ALLOW strm/plgo -> contrib/go/patched/m3u8 -ALLOW videoplatform -> contrib/go/patched/m3u8 -ALLOW contrib/go/patched/m3u8/example -> contrib/go/patched/m3u8 - -# CONTRIB-1496 RTP/RTCP stack for Go. responsible: rmcf@ -# Moved to contrib/go, because library is not go-gettable. -ALLOW yabs/telephony/platform/internal/rtp -> contrib/go/GoRTP - -# STRM-4414. responsible: nkhitrov@, g:strm-admin -ALLOW strm/gorshok -> contrib/go/patched/gobgp -ALLOW contrib/go/patched/gobgp -> contrib/go/patched/gobgp -ALLOW contrib/go/patched/gobgp -> vendor/github.com/sirupsen/logrus -ALLOW contrib/go/patched/gobgp -> vendor/github.com/eapache/channels -ALLOW contrib/go/patched/gobgp -> vendor/github.com/dgryski/go-farm -ALLOW contrib/go/patched/gobgp -> vendor/github.com/google/uuid -ALLOW contrib/go/patched/gobgp -> vendor/github.com/spf13/viper -ALLOW contrib/go/patched/gobgp -> vendor/github.com/k-sone/critbitgo -ALLOW contrib/go/patched/gobgp -> vendor/github.com/coreos/go-systemd/daemon -ALLOW contrib/go/patched/gobgp -> vendor/github.com/jessevdk/go-flags -ALLOW contrib/go/patched/gobgp -> vendor/github.com/kr/pretty -ALLOW contrib/go/patched/gobgp -> vendor/github.com/go-test/deep - -# CONTRIB-2724, TRAFFIC-12239. responsible: slayer@, g:traffic -ALLOW noc/traffic -> contrib/go/patched/tt -ALLOW contrib/go/patched/tt -> contrib/go/patched/tt -# TRAFFIC-13851. responsible: dukeartem@, g:traffic -ALLOW contrib/go/patched/tt -> contrib/tools/unbound - -# CONTRIB-2469, responsible: diman@ -ALLOW noc/nocauth -> contrib/go/patched/tacplus - -# DTCC-896. Disallow PEERDIR into compiler. responsible: g:devtools-contrib -ALLOW contrib/go/_std_1.18/src/cmd -> contrib/go/_std_1.18/src/cmd -DENY .* -> contrib/go/_std_1.18/src/cmd - -# STRM-5602, responsible: diman@ -ALLOW strm/media/gomsr -> contrib/go/patched/go-astits -ALLOW contrib/go/patched/go-astits -> contrib/go/patched/go-astits -ALLOW contrib/go/patched/go-astits -> vendor/github.com/asticode/go-astikit -ALLOW contrib/go/patched/go-astits -> vendor/github.com/pkg/profile - -# CONTRIB-2802, responsible: alekseev-dev@ -ALLOW videoplatform/speakerroom -> contrib/go/patched/ion-sfu -ALLOW contrib/go/patched/ion-sfu -> contrib/go/patched/ion-sfu -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/gammazero/deque -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/go-logr/zerologr -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/lucsky/cuid -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/gammazero/workerpool -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/bep/debounce -ALLOW contrib/go/patched/ion-sfu -> vendor/github.com/pion/transport - -# CONTRIB-2724, TRAFFIC-12239. responsible: slayer@, g:traffic -ALLOW contrib/go -> vendor - -DENY .* -> contrib/go/patched/ diff --git a/build/rules/go/extended_lint.yaml b/build/rules/go/extended_lint.yaml deleted file mode 100644 index 565bf58b6d..0000000000 --- a/build/rules/go/extended_lint.yaml +++ /dev/null @@ -1,69 +0,0 @@ -scopes: - a.yandex-team.ru/billing/configshop: - - importcheck - a.yandex-team.ru/billing/hot: - - importcheck - a.yandex-team.ru/browser/backend: - - sqlclosecheck - - structtagcase - a.yandex-team.ru/cdn/cema_sync: - - importcheck - - exhaustivestruct - a.yandex-team.ru/cdn/cloud_api: - - importcheck - - exhaustivestruct - a.yandex-team.ru/cloud/mdb: - - importcheck - a.yandex-team.ru/extsearch/video/robot/rt_transcoder: - - importcheck - a.yandex-team.ru/infra/infractl: - - importcheck - - copyproto - a.yandex-team.ru/library/go: - - importcheck - a.yandex-team.ru/market/combinator: - - importcheck - a.yandex-team.ru/noc: - - importcheck - a.yandex-team.ru/noc/cmdb: - - exhaustivestruct - a.yandex-team.ru/noc/gomocutor: - - exhaustivestruct - - importcheck - a.yandex-team.ru/noc/nocauth: - - exhaustivestruct - - sqlclosecheck - a.yandex-team.ru/noc/snmptrapper: - - exhaustivestruct - a.yandex-team.ru/passport: - - importcheck - a.yandex-team.ru/portal/avocado: - - importcheck - a.yandex-team.ru/portal/morda-go: - - importcheck - a.yandex-team.ru/security: - - importcheck - a.yandex-team.ru/strm: - - importcheck - a.yandex-team.ru/strm/cacto: - - exhaustivestruct - a.yandex-team.ru/strm/gorshok: - - exhaustivestruct - a.yandex-team.ru/strm/media/gomsr: - - exhaustivestruct - a.yandex-team.ru/strm/plgo: - - exhaustivestruct - a.yandex-team.ru/strm/ponger: - - exhaustivestruct - a.yandex-team.ru/strm/vybrator: - - exhaustivestruct - a.yandex-team.ru/strm/xaccelredirect: - - exhaustivestruct - a.yandex-team.ru/videoplatform: - - importcheck - - exhaustivestruct - a.yandex-team.ru/yweb/video/transcoder: - - importcheck - a.yandex-team.ru/games/backend: - - importcheck - - sqlclosecheck diff --git a/build/rules/go/migrations.yaml b/build/rules/go/migrations.yaml deleted file mode 100644 index 0e48f0b537..0000000000 --- a/build/rules/go/migrations.yaml +++ /dev/null @@ -1,98 +0,0 @@ -migrations: - stylecheck: - checks: - - ST1001 - - ST1003 - - ST1005 - - ST1006 - - ST1008 - - ST1011 - - ST1012 - - ST1013 - - ST1015 - - ST1016 - - ST1017 - - ST1018 - packages: - - a.yandex-team.ru/cloud/blockstore/public/sdk/go/client - - a.yandex-team.ru/cloud/blockstore/public/sdk/go/client/ut - - a.yandex-team.ru/cloud/netinfra/tflow/sflow - - a.yandex-team.ru/cloud/serverless/triggers/internal/queue-processor - - a.yandex-team.ru/cloud/serverless/triggers/metrics - - a.yandex-team.ru/cloud/serverless/triggers/pkg/ymq - - a.yandex-team.ru/infra/rtc/instance_resolver/pkg/clients/iss3 # autogenerated - - a.yandex-team.ru/locdoc/doc/daas-farm/pkg/directory - - a.yandex-team.ru/locdoc/doc/daas-farm/pkg/linkresolver - - a.yandex-team.ru/locdoc/doc/daas-farm/pkg/linkresolver/tests - - a.yandex-team.ru/locdoc/doc/daas-farm/pkg/menugen - - a.yandex-team.ru/mail/imap-fuzzer - - a.yandex-team.ru/mail/imap-fuzzer/fuzz - - a.yandex-team.ru/mail/imap-fuzzer/fuzz/logic - - a.yandex-team.ru/mail/imap-fuzzer/fuzz/naughty - - a.yandex-team.ru/mail/imap-fuzzer/fuzz/operations - - a.yandex-team.ru/mail/imap-fuzzer/fuzz/types - - a.yandex-team.ru/mail/imap-fuzzer/imap - - a.yandex-team.ru/mail/payments-sdk-backend/backend/cmd/server - - a.yandex-team.ru/mail/payments-sdk-backend/backend/cmd/server_test - - a.yandex-team.ru/quasar/gackend - - a.yandex-team.ru/quasar/gackend/db - - a.yandex-team.ru/quasar/gackend_test - - a.yandex-team.ru/quasar/gackend/model - - a.yandex-team.ru/quasar/go/middleware - - a.yandex-team.ru/quasar/go/retryablehttp - - a.yandex-team.ru/quasar/go/zaplogger - - a.yandex-team.ru/quasar/tsup/db - - a.yandex-team.ru/quasar/tsup/server - - a.yandex-team.ru/cloud/iam/accessservice/client/go/cloudauth - - a.yandex-team.ru/cloud/iam/accessservice/client/go/cloudauth_test - protonaming: - packages: - - a.yandex-team.ru/extsearch/video/content_id/proto - - a.yandex-team.ru/extsearch/video/robot/rt_transcoder/ad/proto - - a.yandex-team.ru/extsearch/video/robot/rt_transcoder/ng/proto - - a.yandex-team.ru/extsearch/video/robot/rt_transcoder/proto - - a.yandex-team.ru/extsearch/video/robot/rt_transcoder/qproxy/proto - - a.yandex-team.ru/infra/diskmanager/proto - - a.yandex-team.ru/infra/maxwell/go/proto - - a.yandex-team.ru/infra/nanny2/proto - - a.yandex-team.ru/infra/ya_salt/proto - - a.yandex-team.ru/mds/valve/proto - - a.yandex-team.ru/transfer_manager/go/cmd/yql_server/proto - - a.yandex-team.ru/transfer_manager/go/proto - - a.yandex-team.ru/yabs/proto - - a.yandex-team.ru/yweb/video/faas/proto - - a.yandex-team.ru/zen/integration/proto - unusedwrite: - packages: - - a.yandex-team.ru/alice/gamma/sdk/golang - - a.yandex-team.ru/alice/gamma/sdk/golang_test - - a.yandex-team.ru/alice/iot/adapters/tuya_adapter/server - - a.yandex-team.ru/alice/iot/bulbasaur/db - - a.yandex-team.ru/alice/iot/bulbasaur/db/gotest/data - - a.yandex-team.ru/alice/iot/bulbasaur/db_test - - a.yandex-team.ru/alice/iot/bulbasaur/model - - a.yandex-team.ru/alice/iot/bulbasaur/model_test - - a.yandex-team.ru/cloud/compute/snapshot/snapshot/lib/tasks - - a.yandex-team.ru/cloud/compute/snapshot/snapshot/lib/tasks_test - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/core/types - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/core/types_test - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/datastore/redis - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/datastore/redis_test - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/dbspecific - - a.yandex-team.ru/cloud/mdb/mdb-health/pkg/dbspecific_test - - a.yandex-team.ru/cloud/mdb/mdb-internal-api/internal/logic/internal/compute/provider - - a.yandex-team.ru/cloud/mdb/mdb-internal-api/internal/logic/internal/compute/provider_test - - a.yandex-team.ru/cloud/mdb/mdb-internal-api/internal/logic/internal/sessions/provider - - a.yandex-team.ru/cloud/mdb/mdb-internal-api/internal/logic/internal/sessions/provider_test - - a.yandex-team.ru/cloud/ps/gore/internal/app/api - - a.yandex-team.ru/direct/infra/dt-db-manager/cmd/server - - a.yandex-team.ru/market/logistics/wms-load/api - - a.yandex-team.ru/market/logistics/wms-load/api_test - - a.yandex-team.ru/strm/plgo/pkg/playlist/mpd - - a.yandex-team.ru/strm/plgo/pkg/playlist/mpd_test - - a.yandex-team.ru/travel/avia/shared_flights/api/internal/services/flightdata - - a.yandex-team.ru/travel/avia/shared_flights/api/internal/services/flightdata_test - - a.yandex-team.ru/travel/avia/shared_flights/api/internal/storage/flight - - a.yandex-team.ru/travel/avia/shared_flights/api/internal/storage/flight_test - - a.yandex-team.ru/travel/library/go/service_template/internal/schedule/service/schedule - - a.yandex-team.ru/zootopia/analytics/drive/operations/orders diff --git a/build/rules/go/vendor.policy b/build/rules/go/vendor.policy deleted file mode 100644 index 68148bea37..0000000000 --- a/build/rules/go/vendor.policy +++ /dev/null @@ -1,1450 +0,0 @@ -# IMPORTANT -# This file cannot be moved or split into multiple files without explicit OK from go-com@yandex-team.ru -# Doing otherwise will break vendoring tooling. - -ALLOW vendor/ -> .* - -# CONTRIB-2890 -DENY .* -> vendor/gotest.tools/v3;test -DENY .* -> vendor/github.com/moby/sys/mountinfo;test -DENY .* -> vendor/github.com/containerd/containerd/mount;test -DENY .* -> vendor/github.com/containernetworking/cni;test -DENY .* -> vendor/k8s.io/utils/exec;test -ALLOW .* -> vendor/k8s.io/cri-api/pkg/apis/runtime/v1 -ALLOW .* -> vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2 -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/remotecommand -ALLOW .* -> vendor/github.com/containerd/containerd/pkg/netns -ALLOW .* -> vendor/github.com/containerd/go-cni -ALLOW .* -> vendor/k8s.io/kubernetes/pkg/kubelet/cri/streaming -ALLOW .* -> vendor/golang.org/x/term -ALLOW .* -> vendor/github.com/creack/pty - -# CONTRIB-2858 -ALLOW .* -> vendor/github.com/robfig/cron/v3 - -# CONTRIB-2843 -ALLOW .* -> vendor/github.com/dave/jennifer/jen - -# CONTRIB-2451 -ALLOW .* -> vendor/github.com/deepmap/oapi-codegen -# CONTRIB-2841 -ALLOW .* -> vendor/github.com/getkin/kin-openapi - -# CONTRIB-2311 gossip discovery protocol implementation -ALLOW .* -> vendor/github.com/hashicorp/memberlist - -# CONTRIB-2177 testing helpers for terraform -ALLOW .* -> vendor/github.com/gruntwork-io/terratest/modules/terraform - -# CONTRIB-2078 provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc. -ALLOW .* -> vendor/github.com/prometheus/procfs - -# CONTRIB-2166 -ALLOW .* -> vendor/github.com/openconfig/gnmi - -# CONTRIB-2197 -ALLOW .* -> vendor/k8s.io/client-go/discovery -ALLOW .* -> vendor/k8s.io/client-go/discovery/fake -ALLOW .* -> vendor/k8s.io/client-go/kubernetes -ALLOW .* -> vendor/k8s.io/client-go/plugin/pkg/client -ALLOW .* -> vendor/k8s.io/client-go/plugin/pkg/client/auth/azure -ALLOW .* -> vendor/k8s.io/client-go/plugin/pkg/client/auth/exec -ALLOW .* -> vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp -ALLOW .* -> vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc -ALLOW .* -> vendor/k8s.io/client-go/rest -ALLOW .* -> vendor/k8s.io/client-go/testing -ALLOW .* -> vendor/k8s.io/client-go/tools/auth -ALLOW .* -> vendor/k8s.io/client-go/tools/cache -ALLOW .* -> vendor/k8s.io/client-go/tools/clientcmd -ALLOW .* -> vendor/k8s.io/client-go/tools/events -ALLOW .* -> vendor/k8s.io/client-go/tools/leaderelection -ALLOW .* -> vendor/k8s.io/client-go/tools/metrics -ALLOW .* -> vendor/k8s.io/client-go/tools/pager -ALLOW .* -> vendor/k8s.io/client-go/tools/portforward -ALLOW .* -> vendor/k8s.io/client-go/tools/record -ALLOW .* -> vendor/k8s.io/client-go/tools/reference -ALLOW .* -> vendor/k8s.io/client-go/tools/remotecommand -ALLOW .* -> vendor/k8s.io/client-go/tools/watch -ALLOW .* -> vendor/k8s.io/client-go/util/flowcontrol -ALLOW .* -> vendor/k8s.io/client-go/util/workqueue -ALLOW .* -> vendor/k8s.io/client-go/util/retry -ALLOW .* -> vendor/k8s.io/client-go/pkg/apis -# CONTRIB-2474 -ALLOW .* -> vendor/k8s.io/api/admission/v1 -ALLOW .* -> vendor/k8s.io/api/apps/v1 -ALLOW .* -> vendor/k8s.io/api/authentication/v1 -ALLOW .* -> vendor/k8s.io/api/batch/v1 -ALLOW .* -> vendor/k8s.io/api/core/v1 -ALLOW .* -> vendor/k8s.io/api/rbac/v1 -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/apis/meta/v1 -ALLOW .* -> vendor/k8s.io/client-go/util/homedir -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/api/errors -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/api/equality -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/labels -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/runtime -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/runtime/schema -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/runtime/serializer -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/types -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/runtime -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/sets -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/wait -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/yaml -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/duration -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/errors -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/util/validation -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/watch -ALLOW .* -> vendor/k8s.io/apimachinery/pkg/api/resource -ALLOW .* -> vendor/k8s.io/utils/clock - -# CONTRIB-2279 -ALLOW .* -> vendor/sigs.k8s.io/controller-runtime -ALLOW .* -> vendor/github.com/go-logr/logr - -# CONTRIB-2195 -ALLOW .* -> vendor/github.com/timakin/bodyclose -# github.com/gostaticanalysis/comment tests depends on the unlicensed package https://github.com/tenntenn/text -DENY .* -> vendor/github.com/gostaticanalysis/comment;test - -# CONTRIB-2196 -ALLOW .* -> vendor/github.com/jingyugao/rowserrcheck - -# CONTRIB-2163 -ALLOW .* -> vendor/go.temporal.io/sdk -ALLOW .* -> vendor/go.temporal.io/api -ALLOW infra/temporal -> vendor/github.com/temporalio/tctl -ALLOW infra/temporal -> vendor/github.com/temporalio/ui-server/v2 -ALLOW vendor/github.com/temporalio/ui-server -> vendor/github.com/aromanovich/grpc-gateway -ALLOW vendor/github.com/temporalio/ui-server -> vendor/github.com/aromanovich/gateway - -# CONTRIB-2468 -ALLOW .* -> vendor/github.com/DataDog/temporalite - -# CONTRIB-2353 -ALLOW .* -> vendor/go.temporal.io/server -ALLOW infra/temporal -> vendor/github.com/urfave/cli -ALLOW infra/temporal -> vendor/github.com/urfave/cli -ALLOW infra/temporal -> vendor/github.com/uber-go/tally -ALLOW market/sre/tools/temporal/cmd/tctl -> vendor/github.com/urfave/cli - -# CONTRIB-2116 -ALLOW .* -> vendor/github.com/google/licensecheck - -# CONTRIB-2087 -ALLOW .* -> vendor/github.com/armon/go-radix - -# CONTRIB-1972 stomp protocol -ALLOW .* -> vendor/github.com/go-stomp/stomp - -# CONTRIB-1946 htmp tag selecting / parsing -ALLOW .* -> vendor/github.com/andybalholm/cascadia - -# CONTRIB-2082 prometheus-libvirt-exporter -ALLOW .* -> vendor/github.com/zhangjianweibj/prometheus-libvirt-exporter - -# CONTRIB-2086 go-libvirt -ALLOW .* -> vendor/github.com/digitalocean/go-libvirt - -# CONTRIB-1872 pure ipp proto implementation -ALLOW .* -> vendor/github.com/phin1x/go-ipp - -# CONTRIB-2113 gobreaker -ALLOW .* -> vendor/github.com/sony/gobreaker - -# Validate and define text-based and dynamic configuration -ALLOW .* -> vendor/cuelang.org/go - -# driver for write to and read from XLSX files -ALLOW .* -> vendor/github.com/xuri/excelize/v2 - -# in-process redis server for tests -ALLOW .* -> vendor/github.com/alicebob/miniredis/v2 - -# AMQP client with RabbitMQ extensions -ALLOW .* -> vendor/github.com/streadway/amqp - -# AWS client libraries -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/aws -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/s3 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/sqs -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/kms -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/ec2 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/route53 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/kinesis -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/sts -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/iam -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/ram -ALLOW .* -> vendor/github.com/aws/aws-sdk-go/service/ecr - -# CONTRIB-2817 -DENY .* -> vendor/cloud.google.com/go/cmd;test -DENY .* -> vendor/cloud.google.com/go/httpreplay;test -DENY .* -> vendor/cloud.google.com/go/bigtable;test -DENY .* -> vendor/cloud.google.com/go/compute;test -DENY .* -> vendor/cloud.google.com/go/pubsub;test -ALLOW .* -> vendor/cloud.google.com/go -ALLOW .* -> vendor/google.golang.org/api/googleapi -ALLOW .* -> vendor/google.golang.org/api/dns/v2 - -# TOML parser/encoder with reflection -ALLOW .* -> vendor/github.com/BurntSushi/toml - -# helpers for data sizes (kilobytes, petabytes), human readable sizes, parsing -ALLOW .* -> vendor/github.com/c2h5oh/datasize - -# Disable tests because testdata won't fit into arcadia commit. -DENY .* -> vendor/github.com/go-git/go-git/v5/storage/test -DENY .* -> vendor/github.com/go-git/go-git/v5/plumbing/transport/test -DENY .* -> vendor/github.com/go-git/go-git/v5;test -ALLOW .* -> vendor/github.com/go-git/go-git/v5 -ALLOW .* -> vendor/github.com/go-git/go-billy/v5 - -# etcd client -DENY .* -> vendor/go.etcd.io/etcd/clientv3/naming -ALLOW .* -> vendor/go.etcd.io/etcd/mvcc -ALLOW .* -> vendor/go.etcd.io/etcd/etcdserver/api -ALLOW .* -> vendor/go.etcd.io/etcd/wal -ALLOW .* -> vendor/go.etcd.io/etcd/raft -ALLOW .* -> vendor/go.etcd.io/etcd/clientv3 -ALLOW .* -> vendor/go.etcd.io/etcd/pkg/fileutil -ALLOW .* -> vendor/go.etcd.io/etcd/pkg/stringutil -ALLOW .* -> vendor/go.etcd.io/etcd/pkg/transport -ALLOW .* -> vendor/go.etcd.io/etcd/pkg/types - -# logging to systemd -ALLOW .* -> vendor/github.com/coreos/go-systemd/journal - -# CONTRIB-2336 logging to systemd v22 -ALLOW .* -> vendor/github.com/coreos/go-systemd/v22/journal - -# systemd dbus -ALLOW .* -> vendor/github.com/coreos/go-systemd/v22/dbus - -# CONTRIB-2577 -ALLOW .* -> vendor/github.com/coreos/go-systemd/daemon - -# mocking for database/sql -ALLOW .* -> vendor/github.com/DATA-DOG/go-sqlmock - -# Cucumber-like BDD for Go -## New location -ALLOW .* -> vendor/github.com/cucumber/godog -## Old location (deprecated) -ALLOW .* -> vendor/github.com/DATA-DOG/godog - -# pretty printer for GO -ALLOW .* -> vendor/github.com/davecgh/go-spew/spew - -# CONTRIB-425 implementation of JSON Web Tokens (JWT) -ALLOW .* -> vendor/github.com/golang-jwt/jwt/v4 - -# Docker API client -# docker tests depends on broken package: gotest.tools -DENY .* -> vendor/github.com/docker/docker;test -DENY .* -> vendor/github.com/docker/docker/api/server -DENY .* -> vendor/github.com/docker/docker/api/types/backend -ALLOW .* -> vendor/github.com/docker/docker/client -ALLOW .* -> vendor/github.com/docker/docker/api -ALLOW .* -> vendor/github.com/docker/go-connections -# CONTRIB-2894 -ALLOW .* -> vendor/github.com/docker/distribution/reference - -# cross-platform file system notifications -ALLOW .* -> vendor/github.com/fsnotify/fsnotify - -# lightweight, idiomatic and composable router -ALLOW .* -> vendor/github.com/go-chi/chi/v5 - -# a pure Go MySQL driver -ALLOW .* -> vendor/github.com/go-sql-driver/mysql - -# a Go MSSQL driver -ALLOW .* -> vendor/github.com/denisenkom/go-mssqldb - -# thread-safe file locking library -ALLOW .* -> vendor/github.com/gofrs/flock - -# a pure Go implementation of Universally Unique Identifiers -ALLOW .* -> vendor/github.com/gofrs/uuid - -# websocket protocol -ALLOW .* -> vendor/github.com/gorilla/websocket - -# http sessions with cookie and filesystem session storage -ALLOW .* -> vendor/github.com/gorilla/sessions - -# Package gorilla/schema fills a struct with form values -ALLOW .* -> vendor/github.com/gorilla/schema - -# S2 geometry -ALLOW .* -> vendor/github.com/golang/geo - -# snappy compression -ALLOW .* -> vendor/github.com/golang/snappy - -# CONTRIB-632, CONTRIB-1992 API for sentry -DENY .* -> vendor/github.com/AndreasBriese/bbloom;test -DENY .* -> vendor/github.com/getsentry/sentry-go;test -DENY .* -> vendor/github.com/gavv/httpexpect/_examples -DENY .* -> vendor/github.com/getsentry/sentry-go/example -DENY .* -> vendor/github.com/getsentry/sentry-go/fasthttp -DENY .* -> vendor/github.com/getsentry/sentry-go/gin -DENY .* -> vendor/github.com/getsentry/sentry-go/iris -DENY .* -> vendor/github.com/getsentry/sentry-go/martini -DENY .* -> vendor/github.com/getsentry/sentry-go/negroni -DENY .* -> vendor/github.com/rs/cors/examples -DENY .* -> vendor/github.com/rs/cors/wrapper/gin - -ALLOW .* -> vendor/github.com/getsentry/sentry-go -ALLOW .* -> vendor/github.com/getsentry/raven-go - -# configuration library -ALLOW .* -> vendor/github.com/heetch/confita - -# string case conversion library -ALLOW .* -> vendor/github.com/iancoleman/strcase - -# PostgreSQL driver and toolkit for Go -ALLOW .* -> vendor/github.com/jackc/pgx/v4 -ALLOW .* -> vendor/github.com/jackc/pgconn -ALLOW .* -> vendor/github.com/jackc/pgtype -ALLOW .* -> vendor/github.com/jackc/pgerrcode -ALLOW .* -> vendor/github.com/jackc/pgproto3/v2 -ALLOW .* -> vendor/github.com/jackc/pgio -ALLOW .* -> vendor/github.com/jackc/pglogrepl - -# database/sql wrapper with a lot of helper functions -ALLOW .* -> vendor/github.com/jmoiron/sqlx - -# gorm and drivers -ALLOW .* -> vendor/gorm.io/gorm -ALLOW .* -> vendor/gorm.io/driver/sqlite -ALLOW .* -> vendor/gorm.io/driver/postgres -ALLOW .* -> vendor/gorm.io/driver/mysql -ALLOW .* -> vendor/gorm.io/plugin/dbresolver - -# clock mock for tests -ALLOW .* -> vendor/github.com/jonboulle/clockwork - -# LRU Cache with TTL -ALLOW .* -> vendor/github.com/karlseguin/ccache/v2 -ALLOW .* -> vendor/github.com/karlseguin/ccache/v3 - -# Garbage collector-sensitive patricia tree for IP/CIDR tagging -ALLOW .* -> vendor/github.com/kentik/patricia - -# driver for ClickHouse column-oriented database management system -DENY .* -> vendor/github.com/ClickHouse/clickhouse-go/v2;test -ALLOW .* -> vendor/github.com/ClickHouse/clickhouse-go -ALLOW .* -> vendor/github.com/ClickHouse/ch-go -# clickhouse-go/v2 use this for UUID types -ALLOW .* -> vendor/github.com/google/uuid - -# High performance, minimalist web framework -ALLOW .* -> vendor/github.com/labstack/echo/v4 - -# fluent SQL builder -ALLOW .* -> vendor/github.com/Masterminds/squirrel - -# SQL builder + struct scanner -ALLOW .* -> vendor/github.com/doug-martin/goqu/v9 - -# isatty for golang -ALLOW .* -> vendor/github.com/mattn/go-isatty - -# go-sqlite3 for golang -ALLOW .* -> vendor/github.com/mattn/go-sqlite3 - -# complete and usable DNS library -ALLOW .* -> vendor/github.com/miekg/dns - -# deep copying values -ALLOW .* -> vendor/github.com/mitchellh/copystructure - -# decoding generic map values to structures and vice versa -ALLOW .* -> vendor/github.com/mitchellh/mapstructure - -# library for detecting and expanding the user's home directory without cgo -ALLOW .* -> vendor/github.com/mitchellh/go-homedir - -# A well tested and comprehensive Golang statistics library package with no dependencies -ALLOW .* -> vendor/github.com/montanaflynn/stats - -# runtime dependencies of go-swagger -ALLOW .* -> vendor/github.com/go-openapi/analysis -ALLOW .* -> vendor/github.com/go-openapi/errors -ALLOW .* -> vendor/github.com/go-openapi/inflect -ALLOW .* -> vendor/github.com/go-openapi/jsonpointer -ALLOW .* -> vendor/github.com/go-openapi/jsonreference -ALLOW .* -> vendor/github.com/go-openapi/loads -ALLOW .* -> vendor/github.com/go-openapi/runtime -ALLOW .* -> vendor/github.com/go-openapi/spec -ALLOW .* -> vendor/github.com/go-openapi/strfmt -ALLOW .* -> vendor/github.com/go-openapi/swag -ALLOW .* -> vendor/github.com/go-openapi/validate - -# CONTRIB-469: swagger code generator for both client and server -ALLOW .* -> vendor/github.com/go-swagger/go-swagger/cmd/swagger - -# redis client -ALLOW .* -> vendor/github.com/go-redis/redis/v8 -DENY .* -> vendor/github.com/redis/go-redis/v9;test -ALLOW .* -> vendor/github.com/redis/go-redis/v9 - -# CONTRIB-2751 -ALLOW .* -> vendor/github.com/go-redis/redis/extra/redisotel/v8 - -# library for accessing the GitHub API v3 -ALLOW .* -> vendor/github.com/google/go-github/v35/github - -# fast JSON serializer for golang. relies on code generation. -ALLOW .* -> vendor/github.com/mailru/easyjson - -# lz4 compression codec -ALLOW .* -> vendor/github.com/pierrec/lz4 - -# library for HTML DOM manipulations and searching nodes by CSS selectors -ALLOW .* -> vendor/github.com/PuerkitoBio/goquery - -# prometheus client -ALLOW .* -> vendor/github.com/prometheus/client_golang -ALLOW .* -> vendor/github.com/prometheus/client_model -ALLOW .* -> vendor/github.com/prometheus/common - -# ZooKeeper client -ALLOW .* -> vendor/github.com/go-zookeeper/zk - -# Consistent hashring implementation (using the same algorithm as libketama) -ALLOW .* -> vendor/github.com/serialx/hashring - -# Slack API in Go -ALLOW .* -> vendor/github.com/slack-go/slack - -# Text diffing. -ALLOW .* -> vendor/github.com/pmezard/go-difflib - -# statsd client library -ALLOW .* -> vendor/github.com/smira/go-statsd - -# ICMP Ping library -ALLOW .* -> vendor/github.com/sparrc/go-ping - -# safe and easy casting from one type to another -ALLOW .* -> vendor/github.com/spf13/cast - -# library for creating CLI applications -ALLOW .* -> vendor/github.com/spf13/cobra - -# drop-in replacement for stdlib flag module -ALLOW .* -> vendor/github.com/spf13/pflag - -# a toolkit with common test assertions and mocks -ALLOW .* -> vendor/github.com/stretchr/testify - -# very fast json parser and encoder. -# uses dynamic message structure, suitable for cases where json structure is not known in advance. -ALLOW .* -> vendor/github.com/valyala/fastjson - -# xxhash32 and xxhash64 hash functions -ALLOW .* -> vendor/github.com/OneOfOne/xxhash - -# default logging library. See also: library/go/core/log. -ALLOW .* -> vendor/go.uber.org/zap - -# package for writing logs to rolling files. -ALLOW .* -> vendor/gopkg.in/natefinch/lumberjack.v2 - -# Find goroutine leaks in tests. -ALLOW .* -> vendor/go.uber.org/goleak - -# golang.org/x/net -ALLOW .* -> vendor/golang.org/x/net - -# golang.org/x/oauth2 -ALLOW .* -> vendor/golang.org/x/oauth2 - -# golang.org/x/crypto -ALLOW .* -> vendor/golang.org/x/crypto - -# golang.org/x/tools -ALLOW .* -> vendor/golang.org/x/tools - -# golang.org/x/sync -ALLOW .* -> vendor/golang.org/x/sync - -# golang.org/x/text -ALLOW .* -> vendor/golang.org/x/text - -# golang.org/x/time -ALLOW .* -> vendor/golang.org/x/time - -# golang.org/x/image/webp -ALLOW .* -> vendor/golang.org/x/image/webp - -# less experimental implementation of Go error inspection -ALLOW .* -> vendor/golang.org/x/xerrors - -# golang.org/x/sys required for SO_REUSEPORT, for example -ALLOW .* -> vendor/golang.org/x/sys - -# modules -ALLOW .* -> vendor/golang.org/x/mod - -# exp generics -ALLOW .* -> vendor/golang.org/x/exp/slices -ALLOW .* -> vendor/golang.org/x/exp/maps -ALLOW .* -> vendor/golang.org/x/exp/constraints - -# basic LDAP v3 functionality for the GO programming language -ALLOW .* -> vendor/gopkg.in/ldap.v3 - -# simple HTTP and REST client library -ALLOW .* -> vendor/github.com/go-resty/resty/v2 - -# YAML support for Go -ALLOW .* -> vendor/gopkg.in/yaml.v2 - -# INI file format -ALLOW .* -> vendor/gopkg.in/ini.v1 - -# JSONPath -ALLOW .* -> vendor/github.com/PaesslerAG/jsonpath - -# Protocol buffers -ALLOW .* -> vendor/github.com/golang/protobuf -ALLOW .* -> vendor/google.golang.org/protobuf - -# Google RPC -ALLOW .* -> vendor/google.golang.org/grpc - -# Go generated proto packages -ALLOW .* -> vendor/google.golang.org/genproto/protobuf -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/api -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/rpc -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/iam -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/logging -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/type -ALLOW .* -> vendor/google.golang.org/genproto/googleapis/cloud/compute - -# Usefull GRPC interceptors -ALLOW .* -> vendor/github.com/grpc-ecosystem/go-grpc-middleware - -# GRPC Intercaptors for Prometheus monitoring -ALLOW .* -> vendor/github.com/grpc-ecosystem/go-grpc-prometheus - -# CONTRIB-2823 -ALLOW .* -> vendor/github.com/grpc-ecosystem/grpc-health-probe - -# Protobuf and gRPC reflection -ALLOW .* -> vendor/github.com/jhump/protoreflect - -# gRPC opentracing -ALLOW .* -> vendor/github.com/opentracing-contrib/go-grpc - -# Job Scheduling Package -ALLOW .* -> vendor/github.com/jasonlvhit/gocron - -# The MongoDB supported driver for Go -ALLOW .* -> vendor/go.mongodb.org/mongo-driver - -# Package for comparing Go values in tests -ALLOW .* -> vendor/github.com/google/go-cmp - -# CORS is a net/http handler implementing Cross Origin Resource Sharing W3 specification -ALLOW .* -> vendor/github.com/rs/cors - -# read and write from the serial port as a stream of bytes -ALLOW .* -> vendor/github.com/tarm/serial - -# generation tool and serialization library for MessagePack -ALLOW .* -> vendor/github.com/tinylib/msgp -ALLOW .* -> vendor/github.com/vmihailenco/msgpack - -# Generate fancy REST API from grpc api -ALLOW .* -> vendor/github.com/grpc-ecosystem/grpc-gateway - -# tus: the open protocol for resumable file uploads -ALLOW .* -> vendor/github.com/tus/tusd - -# Fast, fully fledged murmur3 in Go. -ALLOW .* -> vendor/github.com/twmb/murmur3 - -# gopsutil: psutil for golang -ALLOW .* -> vendor/github.com/shirou/gopsutil/v3 - -# Go Imagick is a Go bind to ImageMagick's MagickWand C API -ALLOW .* -> vendor/gopkg.in/gographics/imagick.v2 - -# fixed-size thread safe LRU cache -ALLOW .* -> vendor/github.com/hashicorp/golang-lru - -# A wrapper around os/exec.Cmd to run external commands asynchronously (for Linux and macOS) -ALLOW .* -> vendor/github.com/go-cmd/cmd - -# Opentracing interface and implementation. -ALLOW .* -> vendor/github.com/uber/jaeger-client-go -ALLOW .* -> vendor/github.com/uber/jaeger-lib/metrics -ALLOW .* -> vendor/github.com/opentracing/opentracing-go - -# Opentracing contribs -# CONTRIB-1778 -ALLOW .* -> vendor/github.com/opentracing-contrib/go-stdlib - -# CONTRIB-1299. Date parser. resposible: tserakhau@ -ALLOW .* -> vendor/github.com/araddon/dateparse - -# Semantic versioning parsing and comparision library -ALLOW .* -> vendor/github.com/blang/semver/v4 - -# Go implementation of SipHash-2-4 -ALLOW .* -> vendor/github.com/dchest/siphash - -# CONTRIB-1415. Atomic. -ALLOW .* -> vendor/go.uber.org/atomic - -# CONTRIB-1302. Godbus goes to Arcadia -ALLOW .* -> vendor/github.com/godbus/dbus/v5 - -# CONTRIB-1300. Osquery SDK goes to Arcadia -ALLOW .* -> vendor/github.com/kolide/osquery-go - -# CONTRIB-1383. Groupcache is a caching and cache-filling library -ALLOW .* -> vendor/github.com/golang/groupcache - -# Mocking framework for go. -ALLOW .* -> vendor/github.com/golang/mock - -# Go load generator. Can be used as library for custom load tools. CONTRIB-1420 -ALLOW .* -> vendor/github.com/yandex/pandora - -# CONTRIB-1450 Apple notifcation service client -ALLOW .* -> vendor/github.com/sideshow/apns2 - -# CONTRIB-1459 Merging same-type structs with exported fields initialized as zero value of their type and same-types maps -ALLOW .* -> vendor/github.com/imdario/mergo - -# CONTRIB-1468 Terminal interactive progress bar -ALLOW .* -> vendor/github.com/vbauerster/mpb - -# CONTRIB-1451 Google firebase library -ALLOW .* -> vendor/firebase.google.com/go -#transitive dependency for firebase -ALLOW .* -> vendor/google.golang.org/api/option - -# CONTRIB-1899 Firebase Remote Config client library -ALLOW .* -> vendor/google.golang.org/api/firebaseremoteconfig/v1 - -# CONTRIB-1497 Go package to encode and decode ITU-T G.711 sound data -ALLOW .* -> vendor/github.com/zaf/g711 - -# CONTRIB-1505 The exponential backoff algorithm & retry library -ALLOW .* -> vendor/github.com/cenkalti/backoff/v4 - -# CONTRIB-1491 A parser library for Go -ALLOW .* -> vendor/github.com/alecthomas/participle - -# CONTRIB-1539 staticcheck -ALLOW library/go/yolint -> vendor/honnef.co/go/tools - -# CONTRIB-1542 Simple netlink library for go. -ALLOW .* -> vendor/github.com/vishvananda/netlink - -# CONTRIB-1542 Simple network namespace handling for go. -ALLOW .* -> vendor/github.com/vishvananda/netns - -# CONTRIB-1545 Go bindings for creating BPF programs. -ALLOW .* -> vendor/github.com/iovisor/gobpf - -# CONTRIB-1878 pure Go library for loading, compiling, and debugging eBPF programs -ALLOW .* -> vendor/github.com/cilium/ebpf - -# CONTRIB-1561 Go pretty format for numbers -ALLOW .* -> vendor/github.com/dustin/go-humanize - -# CONTRIB-1615 Go pretty table formatter similar to python PrettyTable -ALLOW .* -> vendor/github.com/olekukonko/tablewriter - -# CONTRIB-1596 embedded key/value database -ALLOW .* -> vendor/go.etcd.io/bbolt - -# CONTRIB-1616 Gountries provides structured countries data -ALLOW .* -> vendor/github.com/pariz/gountries - -# CONTRIB-1630- Go binding for qemu/qmp runtime -ALLOW .* -> vendor/github.com/intel/govmm/qemu - -# CONTRIB-1650 golang ftp server library with a sample implementation -ALLOW .* -> vendor/github.com/fclairamb/ftpserver - -# CONTRIB-2686 golang binlog replication implementation -ALLOW .* -> vendor/github.com/go-mysql-org/go-mysql - -# CONTRIB-1849 binding to internal log for binlog replication -ALLOW library/go/core/log/compat/golog -> vendor/github.com/siddontang/go-log/log - -# CONTRIB-1656 golang sftp server library -ALLOW .* -> vendor/github.com/pkg/sftp - -# CONTRIB-1670 -ALLOW .* -> vendor/github.com/soniah/gosnmp - -# CONTRIB-1686 markdown parser -ALLOW .* -> vendor/github.com/yuin/goldmark - -# Created after version bump. It is currently (may 2022) experimental and requires googleapis testing dependency. -DENY .* -> vendor/github.com/spf13/afero/gcsfs - -# CONTRIB-1681 A FileSystem Abstraction System for Go -ALLOW .* -> vendor/github.com/spf13/afero - -# CONTRIB-1702 parse and generate XML easily in go -ALLOW .* -> vendor/github.com/beevik/etree - -# CONTRIB-1703 telebot client for telegram. responsible: alittleprince@ -ALLOW .* -> vendor/gopkg.in/tucnak/telebot.v2 - -# CONTRIB-2618 telebot client for telegram. -ALLOW .* -> vendor/gopkg.in/telebot.v3 - -# CONTRIB-1726 helpers for working with protobuf field masks -ALLOW .* -> vendor/github.com/mennanov/fieldmask-utils - -# CONTRIB-1864 Zstandard (zstd) data compression algorithm -ALLOW .* -> vendor/github.com/klauspost/compress/zstd - -# CONTRIB-1865 Decorated Syntax Tree for Go AST -ALLOW .* -> vendor/github.com/dave/dst - -# CONTRIB-1896 Fast, portable, non-Turing complete expression evaluation with gradual typing -ALLOW .* -> vendor/github.com/google/cel-go - -# CONTRIB-1654 Hard to misuse extensible crypto library -ALLOW .* -> vendor/github.com/google/tink/go - -# CONTRIB-1907 Parser of the Graphviz DOT language -ALLOW .* -> vendor/github.com/awalterschulze/gographviz - -# CONTRIB-1923 memcache client -ALLOW .* -> vendor/github.com/bradfitz/gomemcache - -# Yandex' hasql -ALLOW .* -> vendor/golang.yandex/hasql - -# CONTRIB-1974 Optimized Sha256 -ALLOW .* -> vendor/github.com/minio/sha256-simd - -# CONTRIB-1979 command line editor with history -ALLOW .* -> vendor/github.com/peterh/liner - -# CONTRIB-1999 strongSwan vici client library -ALLOW .* -> vendor/github.com/strongswan/govici/vici - -# CONTRIB-2002 A Go implementation of RTP -ALLOW .* -> vendor/github.com/pion/rtp - -# CONTRIB-1959 Добавить casbin -ALLOW .* -> vendor/github.com/casbin/casbin/v2 - -# CONTRIB-2027, CONTRIB-2687 -ALLOW .* -> vendor/github.com/coredns/caddy - -# CONTRIB-1931, CONTRIB-2687 -# github.com/coredns/coredns itself -ALLOW .* -> vendor/github.com/coredns/coredns/request -ALLOW .* -> vendor/github.com/coredns/coredns/core/dnsserver -ALLOW .* -> vendor/github.com/coredns/coredns/coremain - -# ...and a flock of coredn plugins. -# NB: in order to allow -# `import github.com/coredns/coredns/plugin` module to implement our own plugins, -# We have to either explicitly allow or explicitly deny usage of each plugin. -# -# As yo does not support regular expressions in vendor.policy at the time, -# there is exactly one line for every plugin. -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/bind -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/cache -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/chaos -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/forward -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/file -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/health -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/log -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/metrics -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/pkg -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/reload -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/rewrite -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/ready -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/root -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/loadbalance -ALLOW .* -> vendor/github.com/coredns/coredns/plugin/kubernetes - -DENY .* -> vendor/github.com/coredns/coredns/plugin/acl -DENY .* -> vendor/github.com/coredns/coredns/plugin/any -DENY .* -> vendor/github.com/coredns/coredns/plugin/auto -DENY .* -> vendor/github.com/coredns/coredns/plugin/autopath -DENY .* -> vendor/github.com/coredns/coredns/plugin/azure -DENY .* -> vendor/github.com/coredns/coredns/plugin/bufsize -DENY .* -> vendor/github.com/coredns/coredns/plugin/cancel -DENY .* -> vendor/github.com/coredns/coredns/plugin/clouddns -DENY .* -> vendor/github.com/coredns/coredns/plugin/deprecated -DENY .* -> vendor/github.com/coredns/coredns/plugin/dns64 -DENY .* -> vendor/github.com/coredns/coredns/plugin/dnssec -DENY .* -> vendor/github.com/coredns/coredns/plugin/dnstap -DENY .* -> vendor/github.com/coredns/coredns/plugin/errors -DENY .* -> vendor/github.com/coredns/coredns/plugin/etcd -DENY .* -> vendor/github.com/coredns/coredns/plugin/geoip -DENY .* -> vendor/github.com/coredns/coredns/plugin/grpc -DENY .* -> vendor/github.com/coredns/coredns/plugin/header -DENY .* -> vendor/github.com/coredns/coredns/plugin/hosts -DENY .* -> vendor/github.com/coredns/coredns/plugin/k8s_external -DENY .* -> vendor/github.com/coredns/coredns/plugin/local -DENY .* -> vendor/github.com/coredns/coredns/plugin/loop -DENY .* -> vendor/github.com/coredns/coredns/plugin/minimal -DENY .* -> vendor/github.com/coredns/coredns/plugin/nsid -DENY .* -> vendor/github.com/coredns/coredns/plugin/pprof -DENY .* -> vendor/github.com/coredns/coredns/plugin/route53 -DENY .* -> vendor/github.com/coredns/coredns/plugin/secondary -DENY .* -> vendor/github.com/coredns/coredns/plugin/sign -DENY .* -> vendor/github.com/coredns/coredns/plugin/template -DENY .* -> vendor/github.com/coredns/coredns/plugin/tls -DENY .* -> vendor/github.com/coredns/coredns/plugin/trace -DENY .* -> vendor/github.com/coredns/coredns/plugin/whoami -ALLOW .* -> vendor/github.com/coredns/coredns/plugin - -#CONTRIB-2374-1 -ALLOW .* -> vendor/github.com/containernetworking/cni/pkg/skel -ALLOW .* -> vendor/github.com/containernetworking/cni/pkg/types -ALLOW .* -> vendor/github.com/containernetworking/cni/pkg/version - -ALLOW .* -> vendor/github.com/containernetworking/plugins/pkg/ip -ALLOW .* -> vendor/github.com/containernetworking/plugins/pkg/ipam -ALLOW .* -> vendor/github.com/containernetworking/plugins/pkg/ns -ALLOW .* -> vendor/github.com/containernetworking/plugins/pkg/utils -ALLOW .* -> vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator - -# CONTRIB-2021 -ALLOW .* -> vendor/github.com/shopspring/decimal - -# CONTRIB-2050 -ALLOW .* -> vendor/github.com/brianvoe/gofakeit/v6 - -# CONTRIB-2051 -ALLOW .* -> vendor/github.com/envoyproxy/go-control-plane - -# CONTRIB-2043 -ALLOW .* -> vendor/github.com/xitongsys/parquet-go - -# CONTRIB-2063 flatbuffers support -ALLOW .* -> vendor/github.com/google/flatbuffers/go - -# CONTRIB-2073 -ALLOW .* -> vendor/github.com/andybalholm/brotli - -# CONTRIB-2081 BTree implementation for Go -ALLOW .* -> vendor/github.com/google/btree - -# CONTRIB-2136 simple lexer for go, it's like shlex.py with whitespace_split=True -ALLOW .* -> vendor/github.com/google/shlex - -# CONTRIB-2084 Word transformation -ALLOW .* -> vendor/github.com/jinzhu/inflection -# -# CONTRIB-2069 -ALLOW .* -> vendor/github.com/coredhcp/coredhcp -ALLOW .* -> vendor/github.com/insomniacslk/dhcp - -# CONTRIB-2094 -ALLOW .* -> vendor/github.com/osrg/gobgp - -# CONTRIB-2111 distributed lock on redis -ALLOW .* -> vendor/github.com/go-redsync/redsync/v4 - -ALLOW library/go/core/log/compat/logrus -> vendor/github.com/sirupsen/logrus - -# CONTRIB-2127 -ALLOW .* -> vendor/github.com/hashicorp/terraform-plugin-sdk/v2 - -# CONTRIB-2139 library for building GraphQL servers without any fuss. -ALLOW .* -> vendor/github.com/99designs/gqlgen -ALLOW .* -> vendor/github.com/vektah/gqlparser/v2 - -# CONTRIB-2148 dsl for json generating -DENY .* -> vendor/github.com/google/go-jsonnet/c-bindings -ALLOW .* -> vendor/github.com/google/go-jsonnet - -# CONTRIB-2152 JMESPath is a query language for JSON -ALLOW .* -> vendor/github.com/jmespath/go-jmespath - -# CONTRIB-2156 library that communicates directly with a TPM device on Linux or Windows machines -ALLOW .* -> vendor/github.com/google/go-tpm/tpm2 -ALLOW .* -> vendor/github.com/google/go-tpm/tpmutil - -# CONTRIB-2165: Go-bindings for using parsers generated by ANTLR4 -ALLOW .* -> vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4 - -# CONTRIB-2216: CGO-based library for fast ZSTD compression and decompression. -ALLOW .* -> vendor/github.com/DataDog/zstd - -# CONTRIB-2234 -ALLOW .* -> vendor/github.com/google/gopacket - -# CONTRIB-2235 library for building interactive prompts on terminals. -ALLOW .* -> vendor/github.com/AlecAivazis/survey/v2 - -# CONTRIB-2224 -ALLOW .* -> vendor/github.com/segmentio/kafka-go - -# CONTRIB-2240 utilities for efficiently performing Win32 IO operations in Go. -ALLOW .* -> vendor/github.com/Microsoft/go-winio - -# CONTRIB-2241 -ALLOW .* -> vendor/github.com/aymerick/raymond - -# CONTRIB-2176 -ALLOW .* -> vendor/github.com/masterzen/winrm - -# CONTRIB-2267 -ALLOW .* -> vendor/github.com/apparentlymart/go-cidr - -# CONTRIB-2266 -ALLOW .* -> vendor/github.com/vertica/vertica-sql-go - -# CONTRIB-2277 -ALLOW .* -> vendor/github.com/miekg/pkcs11 - -# CONTRIB-2278 -ALLOW .* -> vendor/github.com/ThalesIgnite/crypto11 - -# CONTRIB-2396: graphql client library -ALLOW .* -> vendor/github.com/hasura/go-graphql-client - -# CONTRIB-2301: RTSP 1.0 client and server library -ALLOW .* -> vendor/github.com/aler9/gortsplib - -# CONTRIB-2305: graph algorithms -ALLOW .* -> vendor/github.com/yourbasic/graph - -# CONTRIB-2328: histogram -ALLOW .* -> vendor/github.com/HdrHistogram/hdrhistogram-go - -# CONTRIB-2348: SDP implementation -ALLOW .* -> vendor/github.com/pion/sdp/v3 - -# CONTRIB-2350 -ALLOW .* -> vendor/inet.af/netaddr - -# CONTRIB-2368: embedding resources in a Windows executable -ALLOW .* -> vendor/github.com/tc-hib/winres - -# CONTRIB-2346: repatriate ydb-go-sdk -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-genproto -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk/v3 -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-metrics -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-prometheus -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-zap -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-zerolog -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-opentracing -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-sdk-otel -ALLOW .* -> vendor/github.com/ydb-platform/ydb-go-yc-metadata - -# CONTRIB-2099 -ALLOW .* -> vendor/github.com/haivision/srtgo - -# CONTRIB-2307 -ALLOW .* -> vendor/github.com/airbusgeo/godal -ALLOW .* -> vendor/github.com/airbusgeo/osio - -# CONTRIB-2167 -ALLOW .* -> vendor/github.com/jarcoal/httpmock - -# CONTRIB-2423 -ALLOW .* -> vendor/github.com/godror/godror - -# CONTRIB-2439 -ALLOW .* -> vendor/github.com/elimity-com/scim - -# CONTRIB-2363 JSON Schema -ALLOW .* -> vendor/github.com/santhosh-tekuri/jsonschema/v5 - -# CONTRIB-2356 Django-syntax like template-engine -ALLOW .* -> vendor/github.com/flosch/pongo2/v4 - -# CONTRIB-2355 Minifiers for web formats -DENY .* -> vendor/github.com/tdewolff/minify/v2/cmd -ALLOW .* -> vendor/github.com/tdewolff/minify/v2 - -# CONTRIB-2354 Simple image processing package -ALLOW .* -> vendor/github.com/disintegration/imaging - -# CONTRIB-2376 HAProxy Native Golang Client -ALLOW .* -> vendor/github.com/haproxytech/client-native/v2 -ALLOW .* -> vendor/github.com/haproxytech/config-parser/v4 -ALLOW .* -> vendor/github.com/haproxytech/go-logger - -# CONTRIB-2416 Bit Reader/Writer -ALLOW .* -> vendor/github.com/icza/bitio - -# CONTRIB-2420 Syslog server/parser -ALLOW .* -> vendor/gopkg.in/mcuadros/go-syslog.v2 - -# CONTRIB-2448 filesystem xattr support -ALLOW .* -> vendor/github.com/pkg/xattr - -# CONTRIB-2452 -ALLOW .* -> vendor/github.com/scim2/filter-parser/v2 - -# CONTRIB-2488 reading and writing SSH Key Revocation Lists -ALLOW .* -> vendor/github.com/stripe/krl - -# CONTRIB-2460 -ALLOW .* -> vendor/github.com/dgraph-io/ristretto - -# CONTRIB-2465 -ALLOW .* -> vendor/github.com/go-playground/form/v4 - -# CONTRIB-2470 -# go-autorest requried to be used for authentication and authorization in Azure sdk -ALLOW .* -> vendor/github.com/Azure/go-autorest/autorest -# whole SDK is HUGE (~500MiB commit size) and, for now, we need only network management part -# new parts of SDK may be added later, as needed -ALLOW .* -> vendor/github.com/Azure/azure-sdk-for-go/profiles/latest/network/mgmt/network - -# CONTRIB-2483 -ALLOW .* -> vendor/github.com/hashicorp/hcl/v2 - -# CONTRIB-2485 -ALLOW .* -> vendor/github.com/nxadm/tail - -# CONTRIB-2486 -ALLOW .* -> vendor/github.com/zclconf/go-cty/cty - -# CONTRIB-553 -ALLOW .* -> vendor/github.com/google/brotli/go/cbrotli - -# CONTRIB-2505 -ALLOW .* -> vendor/github.com/zeebo/bencode - -# CONTRIB-2516 -ALLOW .* -> vendor/github.com/gocql/gocql - -# CONTRIB-2524 -ALLOW .* -> vendor/github.com/ryanrolds/sqlclosecheck - -# CONTRIB-2546 -ALLOW .* -> vendor/github.com/ncruces/go-proxied - -# CONTRIB-2281 -ALLOW .* -> vendor/github.com/google/go-attestation - -# CONTRIB-2568 -DENY .* -> vendor/github.com/distribution/distribution/v3/cmd -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/middleware/alicdn -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/middleware/cloudfront -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/azure -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/gcs -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/oss -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/s3-aws -DENY .* -> vendor/github.com/distribution/distribution/v3/registry/storage/driver/swift -ALLOW .* -> vendor/github.com/distribution/distribution/v3 -ALLOW yt/go/docker_registry -> vendor/gopkg.in/check.v1 -ALLOW yt/go/docker_registry -> vendor/github.com/opencontainers/go-digest - -# CONTRIB-2578 JSONRPC client -ALLOW .* -> vendor/github.com/ybbus/jsonrpc/v3 - -# CONTRIB-2591 -ALLOW .* -> vendor/nhooyr.io/websocket - -# CONTRIB-2592 Calico API definitions. -ALLOW .* -> vendor/github.com/projectcalico/api - -# CONTRIB-2600 Reed-Solomon Erasure Coding in Go -ALLOW .* -> vendor/github.com/klauspost/reedsolomon - -# CONTRIB-2622 -ALLOW .* -> vendor/go.starlark.net - - -# CONTRIB-2634 multiplexing library for Golang -ALLOW .* -> vendor/github.com/hashicorp/yamux - -# -# Tools -# - -# Native Go debugger -ALLOW vendor -> vendor/github.com/go-delve/delve/cmd/dlv - -# Profile visualization -ALLOW .* -> vendor/github.com/google/pprof - -# gRPCurl -ALLOW vendor -> vendor/github.com/fullstorydev/grpcurl/cmd/grpcurl - - -# -# Temporary exceptions. -# - - -# CONTRIB-1863. resposible: tserakhau@ - -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/pingcap/errors -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/pingcap/parser/ast -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/pingcap/parser/format -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/pingcap/parser -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/satori/go.uuid -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/siddontang/go-log/log -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/siddontang/go-mysql/client -ALLOW transfer_manager/go/pkg/providers/mysql -> vendor/github.com/siddontang/go-mysql/schema - -# CONTRIB-1244. resposible: frystile@ -ALLOW cloud/compute/gokikimr/client -> vendor/github.com/rcrowley/go-metrics -ALLOW cloud/compute/snapshot/snapshot/lib/misc -> vendor/github.com/rcrowley/go-metrics - -# IGNIETFERRO-1287 -ALLOW cloud/compute/snapshot/snapshot/config -> vendor/github.com/pkg/errors -ALLOW cloud/compute/snapshot/snapshot/lib/chunker -> vendor/github.com/pkg/errors -ALLOW contrib/go/patched/hugo -> vendor/github.com/pkg/errors -ALLOW edadeal/backend/go/charm/internal/pkg/store/pg -> vendor/github.com/pkg/errors -ALLOW extsearch/video/station/starter/downloader -> vendor/github.com/pkg/errors -ALLOW extsearch/video/station/starter/input -> vendor/github.com/pkg/errors -ALLOW extsearch/video/station/starter/players -> vendor/github.com/pkg/errors -ALLOW extsearch/video/station/starter/pusher -> vendor/github.com/pkg/errors -ALLOW extsearch/video/station/starter/rules -> vendor/github.com/pkg/errors -ALLOW library/go/yandex/solomon/reporters/pusher/httppusher -> vendor/github.com/pkg/errors -ALLOW locdoc/doc/daas-farm/pkg/daasclient -> vendor/github.com/pkg/errors -ALLOW locdoc/doc/daas-farm/pkg/menugen -> vendor/github.com/pkg/errors -ALLOW locdoc/doc/daas-farm/pkg/wikiclient -> vendor/github.com/pkg/errors -ALLOW locdoc/doc/daas-farm/pkg/wikigen -> vendor/github.com/pkg/errors -ALLOW market/sre/services/rtcstats2graphite/src/internal/blogic -> vendor/github.com/pkg/errors -ALLOW market/sre/services/rtcstats2graphite/src/internal/nanny -> vendor/github.com/pkg/errors -ALLOW market/sre/services/rtcstats2graphite/src/internal/oops -> vendor/github.com/pkg/errors -ALLOW market/sre/services/rtcstats2graphite/src/internal/walle -> vendor/github.com/pkg/errors -ALLOW market/sre/services/rtcstats2graphite/src/internal/yasm -> vendor/github.com/pkg/errors -ALLOW market/sre/tools/ya-gde/src/cmd/getthefacts -> vendor/github.com/pkg/errors -ALLOW market/sre/tools/ya-gde/src/pkg/hostinfo -> vendor/github.com/pkg/errors -ALLOW market/sre/tools/ya-gde/src/pkg/util -> vendor/github.com/pkg/errors -ALLOW transfer_manager/go/pkg/abstract -> vendor/github.com/pkg/errors -ALLOW yabs/telephony/platform/inventory/api/http -> vendor/github.com/pkg/errors - -# IGNIETFERRO-1396 - -ALLOW district/feed_reader/app/lib -> vendor/github.com/jackc/pgx -ALLOW edadeal/backend/go/charm/cmd/charm -> vendor/github.com/jackc/pgx -ALLOW edadeal/backend/go/gluon/internal/app/bootstrap -> vendor/github.com/jackc/pgx -ALLOW edadeal/backend/go/nachalnik/internal/app/bootstrap -> vendor/github.com/jackc/pgx -ALLOW edadeal/backend/go/nachalnik/internal/pkg/store -> vendor/github.com/jackc/pgx -ALLOW extsearch/video/robot/rt_transcoder/video-manager/db -> vendor/github.com/jackc/pgx -ALLOW games/backend/internal/dbutils -> vendor/github.com/jackc/pgx -ALLOW games/backend/pkg/database -> vendor/github.com/jackc/pgx -ALLOW mail/calendar/load/bbmock -> vendor/github.com/jackc/pgx -ALLOW mail/collectors/tests-load/pandora -> vendor/github.com/jackc/pgx -ALLOW market/sre/services/dist_meta_store/app -> vendor/github.com/jackc/pgx -ALLOW market/sre/services/dist_meta_store/database -> vendor/github.com/jackc/pgx -ALLOW quasar/gackend/db -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/cmd/load_generator -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/mapreduce/pg_to_yt -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/sink/pg -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/source/pg -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/storage/pg -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/worker/tasks -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/pkg/dataagent/pg -> vendor/github.com/jackc/pgx -ALLOW transfer_manager/go/tests/e2e/pg2pg/replication -> vendor/github.com/jackc/pgx -ALLOW yabs/telephony/platform/common/db -> vendor/github.com/jackc/pgx -ALLOW yabs/telephony/platform/common/lifecycle -> vendor/github.com/jackc/pgx -ALLOW yabs/telephony/platform/registrar-agent -> vendor/github.com/jackc/pgx -ALLOW yabs/vh/cms-pgaas/dhdd/db -> vendor/github.com/jackc/pgx -ALLOW yabs/vh/cms-pgaas/transcoded -> vendor/github.com/jackc/pgx - - -# -# Permanent exceptions. -# - -# Docker is not vendored property. Docker dependency must be pulled-in explicitly. -ALLOW vendor/ -> vendor/github.com/opencontainers/go-digest - -# CONTRIB-865. Jaeger YT plugin. responsible: prime@ -ALLOW yt/jaeger/plugin -> vendor/github.com/jaegertracing/jaeger/plugin/storage/grpc -ALLOW yt/jaeger/plugin -> vendor/github.com/jaegertracing/jaeger/storage/spanstore -ALLOW yt/jaeger/plugin -> vendor/github.com/jaegertracing/jaeger/storage/dependencystore -ALLOW yt/jaeger/plugin -> vendor/github.com/jaegertracing/jaeger/model -ALLOW yt/jaeger/plugin -> vendor/github.com/gogo/protobuf -ALLOW yt/jaeger/plugin -> vendor/github.com/hashicorp/go-plugin - -# CONTRIB-1518 client for monkey-patched Apache Pulsar by TuyaInc. responsible: jock@ -ALLOW alice/iot/adapters/tuya_adapter -> vendor/github.com/TuyaInc/tuya_pulsar_sdk_go -ALLOW alice/iot/adapters/tuya_adapter/server -> vendor/github.com/sirupsen/logrus - -# SUBBOTNIK-90 -ALLOW infra/rtc/instance_resolver/pkg/clients/iss3 -> vendor/git.apache.org/thrift.git/lib/go - -# Benchmarks using github.com/pkg/errors -ALLOW library/go/core/xerrors -> vendor/github.com/pkg/errors - - -## LOAD-1046: Pandora perftool. responsible: load@ -# CONTRIB-2040 -ALLOW load/projects/pandora -> vendor/github.com/pkg/errors - -# CONTRIB-2032 -ALLOW load/projects/pandora -> vendor/github.com/onsi/gomega - -# CONTRIB-2009 -ALLOW load/projects/pandora -> vendor/github.com/hashicorp/go-multierror - -# CONTRIB-2006 -ALLOW load/projects/pandora -> vendor/github.com/asaskevich/govalidator - -# CONTRIB-2041 -ALLOW load/projects/pandora -> vendor/github.com/spf13/viper - -# CONTRIB-2007 -ALLOW load/projects/pandora -> vendor/github.com/facebookgo/stack - -# CONTRIB-2036 -ALLOW load/projects/pandora -> vendor/gopkg.in/bluesuncorp/validator.v9 - -# CONTRIB-2088 -ALLOW load/projects/pandora -> vendor/github.com/pquerna/ffjson/fflib/v1 - -# CONTRIB-2039 -ALLOW load/projects/pandora -> vendor/github.com/json-iterator/go - -# CONTRIB-2089 -ALLOW load/projects/pandora -> vendor/github.com/onsi/ginkgo - -# CONTRIB-2255 -ALLOW transfer_manager/go/pkg/providers/eventhub -> vendor/github.com/Azure/azure-event-hubs-go/v3 -ALLOW transfer_manager/go/pkg/providers/eventhub -> vendor/github.com/Azure/azure-amqp-common-go/v3/sas - -# CONTRIB-2347 -ALLOW trust/psp/core/go -> vendor/github.com/gorilla/mux -ALLOW trust/psp/core/handler -> vendor/github.com/gorilla/mux - -# CONTRIB-2337 Cloud GPU migration: validator for structs and fields -ALLOW cloud/compute/go-common/pkg/validation -> vendor/github.com/go-playground/validator/v10 - -# CONTRIB-2412 -ALLOW library/go/k8s/protoc_gen_crd -> vendor/github.com/google/gnostic/openapiv3 -ALLOW library/go/k8s/protoc_gen_crd -> vendor/github.com/google/gnostic/compiler -ALLOW library/go/k8s/protoc_gen_crd -> vendor/gopkg.in/yaml.v3 -ALLOW infra/infractl/.* -> vendor/github.com/google/gnostic/openapiv3 -ALLOW infra/infractl/.* -> vendor/github.com/google/gnostic/compiler -ALLOW infra/infractl/.* -> vendor/gopkg.in/yaml.v3 - -# CONTRIB-2489 -ALLOW infra/infractl/.* -> vendor/github.com/ghodss/yaml - -# CONTRIB-2572 -ALLOW infra/infractl/.* -> vendor/github.com/magiconair/properties - -# CONTRIB-2445 -ALLOW psp -> vendor/github.com/zimmski/go-mutesting - -# CONTRIB-2502 -ALLOW .* -> vendor/github.com/anatol/luks.go -DENY .* -> vendor/github.com/anatol/luks.go;test -DENY .* -> vendor/github.com/anatol/vmtest;test -DENY .* -> vendor/github.com/anatol/devmapper.go;test - -# CONTRIB-2497 -ALLOW .* -> vendor/github.com/chzyer/readline -DENY .* -> vendor/github.com/chzyer/readline;test - -# CONTRIB-2498 -ALLOW .* -> vendor/github.com/fatih/color - -# CONTRIB-2519 -ALLOW .* -> vendor/github.com/nathan-osman/go-sunrise - -# CONTRIB-2529 -ALLOW .* -> vendor/github.com/rivo/tview - -# CONTRIB-2541 -ALLOW noc/traffic/dns/.* -> vendor/github.com/gin-gonic/gin - -# CONTRIB-2542 -ALLOW noc/traffic/dns/.* -> vendor/github.com/gin-contrib/gzip - -# CONTRIB-1735 -ALLOW .* -> vendor/gonum.org/v1/gonum -DENY .* -> vendor/gonum.org/v1/gonum;test -DENY .* -> vendor/gonum.org/v1/plot;test -DENY .* -> vendor/gonum.org/v1/netlib;test - -# CONTRIB-2548 -ALLOW .* -> vendor/github.com/yandex-cloud/go-sdk -ALLOW .* -> vendor/github.com/yandex-cloud/go-genproto - -# CONTRIB-2681 -ALLOW .* -> vendor/github.com/itchyny/gojq - -# CONTRIB-2537 -ALLOW infra/awacs/.* -> vendor/github.com/anttsov/curator - -# CONTRIB-2579 -ALLOW .* -> vendor/github.com/mastercard/oauth1-signer-go - -# CONTRIB-2558 -ALLOW .* -> vendor/github.com/go-logr/zapr - -# CONTRIB-2576 -DENY pay/.* -> vendor/gopkg.in/square/go-jose.v2/jose-util -DENY pay/.* -> vendor/gopkg.in/square/go-jose.v2/jwk-keygen -DENY pay/.* -> vendor/gopkg.in/square/go-jose.v2/cryptosigner -ALLOW pay/.* -> vendor/gopkg.in/square/go-jose.v2 - -# CONTRIB-2590 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/aws -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/service/s3 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/service/ec2 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds -ALLOW .* -> vendor/github.com/aws/aws-sdk-go-v2/config -DENY .* -> vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations;test -DENY .* -> vendor/github.com/airbusgeo/osio/gcs;test - -# CONTRIB-2623 -ALLOW .* -> vendor/github.com/bmatcuk/doublestar/v4 - -# CONTRIB-2473 -ALLOW .* -> vendor/github.com/hashicorp/go-plugin - -# CONTRIB-2627 -ALLOW .* -> vendor/k8s.io/cli-runtime - -# CONTRIB-2767 -ALLOW .* -> vendor/github.com/opensearch-project/opensearch-go - -# CONTRIB-2799 Go bindings for Windows COM using shared libraries instead of cgo. -ALLOW .* -> vendor/github.com/go-ole/go-ole - -# -# This section is for EXCEPTIONS. Add new rule above, not here. -# - -# CONTRIB-2562 -DENY .* -> vendor/github.com/elastic/go-elasticsearch/v7;test -ALLOW * -> vendor/github.com/elastic/go-elasticsearch/v7 - -# CONTRIB-2564 -DENY .* -> vendor/github.com/olivere/elastic/v7;test -DENY .* -> vendor/github.com/smartystreets/go-aws-auth;test -DENY .* -> vendor/github.com/smartystreets/gunit;test -ALLOW .* -> vendor/github.com/olivere/elastic/v7 - -# CONTRIB-2626 -ALLOW .* -> vendor/github.com/NVIDIA/go-dcgm/pkg/dcgm - -# CONTRIB-2575 -ALLOW .* -> vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc -ALLOW .* -> vendor/go.opentelemetry.io/otel - -#CONTRIB-2678 -ALLOW .* -> vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp - -# CONTRIB-2766 -ALLOW .* -> vendor/github.com/XSAM/otelsql - -#CONTRIB-2761 -ALLOW .* -> vendor/go.opentelemetry.io/contrib/propagators/jaeger - -#CONTRIB-2759 -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerexporter -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension -ALLOW .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger -# brings extra unnecessary deps -DENY .* -> vendor/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter;test - -# CONTRIB-2633 -ALLOW .* -> vendor/github.com/json-iterator/go - -# ORION-725 -ALLOW transfer_manager/go/internal/prompusher/prompb -> vendor/github.com/gogo/protobuf - -# CONTRIB-2655 -ALLOW .* -> vendor/github.com/openconfig/goyang -DENY .* -> vendor/github.com/openconfig/ygot/demo/getting_started -DENY .* -> vendor/github.com/openconfig/ygot/demo/uncompressed -DENY .* -> vendor/github.com/openconfig/ygot/integration_tests -ALLOW .* -> vendor/github.com/openconfig/ygot - -# CONTRIB-2665 -ALLOW .* -> vendor/github.com/hashicorp/go-retryablehttp - -# CONTRIB-2695 -ALLOW .* -> vendor/github.com/goccy/go-yaml - -# CONTRIB-2705 -ALLOW .* -> vendor/github.com/minio/md5-simd - -# CONTRIB-2718 -ALLOW .* -> vendor/github.com/neovim/go-client - -# DTCC-1233 -DENY .* -> vendor/go.opentelemetry.io/collector/model -ALLOW .* -> vendor/go.opentelemetry.io/collector - -# CONTRIB-2762 -ALLOW .* -> vendor/github.com/r3labs/diff/v3 - -# CONTRIB-2781 -ALLOW .* -> vendor/github.com/crossplane/crossplane-runtime - -# CONTRIB-2765 A Go implementation of WebRTC -ALLOW .* -> vendor/github.com/pion/webrtc/v3 -ALLOW .* -> vendor/github.com/pion/rtcp -ALLOW .* -> vendor/github.com/pion/interceptor - -# CONTRIB-2768 A Go implementation of Online Authenticated Encryption -ALLOW .* -> vendor/github.com/mrknow-all/go-oae - -# CONTRIB-2787 -DENY .* -> vendor/github.com/Shopify/sarama/examples -ALLOW .* -> vendor/github.com/Shopify/sarama - -# CONTRIB-2827 -ALLOW .* -> vendor/github.com/xdg-go/scram - -# CONTRIB-2811 -ALLOW .* -> vendor/github.com/dgryski/go-farm - -# CONTRIB-2831 -ALLOW .* -> vendor/github.com/ohler55/ojg - -# CONTRIB-761 -ALLOW .* -> vendor/github.com/sergi/go-diff/diffmatchpatch - -# CONTRIB-2864 -ALLOW .* -> vendor/github.com/coreos/go-oidc/v3 - -# CONTRIB-2870 -ALLOW .* -> vendor/github.com/gotd/td - -# CONTRIB-2901 -ALLOW .* -> vendor/github.com/NVIDIA/go-nvml/pkg/dl -ALLOW .* -> vendor/github.com/NVIDIA/go-nvml/pkg/nvml - -# CONTRIB-2905 -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvlib/device -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvlib/info -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvmdev -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvml -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci/mmio -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/nvpci/bytes -ALLOW .* -> vendor/gitlab.com/nvidia/cloud-native/go-nvlib/pkg/pciids - -# CONTRIB-2904 -ALLOW .* -> vendor/github.com/NVIDIA/mig-parted/api/spec/v1 -ALLOW .* -> vendor/github.com/NVIDIA/mig-parted/pkg/mig/config -ALLOW .* -> vendor/github.com/NVIDIA/mig-parted/pkg/mig/mode -ALLOW .* -> vendor/github.com/NVIDIA/mig-parted/pkg/mig/state -ALLOW .* -> vendor/github.com/NVIDIA/mig-parted/pkg/types - -DENY .* -> vendor/ diff --git a/build/rules/go/ya.make b/build/rules/go/ya.make deleted file mode 100644 index f6443653c0..0000000000 --- a/build/rules/go/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:go-library) diff --git a/build/rules/jstyle/migrations.yaml b/build/rules/jstyle/migrations.yaml deleted file mode 100644 index 5a159eaa75..0000000000 --- a/build/rules/jstyle/migrations.yaml +++ /dev/null @@ -1,11 +0,0 @@ -jstyle: - NoLint: - ignore: - - '*' - prefixes: [] - NoParameterNumber: - ignore: - - 'ParameterNumber' - prefixes: - - 'tracker' - - 'ci' diff --git a/build/rules/jstyle/ya.make b/build/rules/jstyle/ya.make deleted file mode 100644 index dd09a3a75d..0000000000 --- a/build/rules/jstyle/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:yatest g:java-contrib) diff --git a/build/rules/junk.policy b/build/rules/junk.policy deleted file mode 100644 index 20b9820fbd..0000000000 --- a/build/rules/junk.policy +++ /dev/null @@ -1,10 +0,0 @@ -# DISCLAIMER: Everything in junk is junk. You are allowed to peerdir anything -# you want, be it a banned library or some project gory guts, whatever, but -# such junk code cannot be considered as a reason to add any new contribs, -# no matter how big the junk code is and how much does it cost (always zero). -# -# See contrib/README.md for more details about contribs. -# See https://wiki.yandex-team.ru/arcadia/junk/ for junk restrictions. - -ALLOW junk -> .* -DENY .* -> junk diff --git a/build/rules/kikimr.policy b/build/rules/kikimr.policy deleted file mode 100644 index b48158900c..0000000000 --- a/build/rules/kikimr.policy +++ /dev/null @@ -1,379 +0,0 @@ -# Tasklet v2 schema registry -ALLOW tasklet/registry/common -> kikimr/ci -# temporary allow to depend (FIXME: gvit) -ALLOW yabs/sbyt/testing/scenarios/bigstart -> kikimr/ci -# temporary allow to depend (FIXME: gvit) -ALLOW mssngr/router/tests/lib -> kikimr/ci -# temporary allow to depend (FIXME: gvit) -ALLOW market/idx/yatf -> kikimr/public/tools/lib -# temporary allow to depend (FIXME: gvit) -ALLOW quality/deprecated/mapreducelib -> kikimr/library/common -ALLOW quality/deprecated/mapreducelib -> kikimr/core/erasure -ALLOW quality/deprecated/mapreducelib -> kikimr/library/hdrplanner -ALLOW quality/deprecated/mapreducelib -> kikimr/library/sched/dev/actors/lib -ALLOW quality/deprecated/mapreducelib -> kikimr/library/sched/dev/supp/pages/lib -# temporary allow to depend (FIXME: gvit) -ALLOW solomon/ -> kikimr/core/protos -ALLOW solomon/ -> kikimr/public/lib/deprecated/kicli -ALLOW solomon/ -> kikimr/library/mkql_proto/protos -ALLOW solomon/ -> kikimr/yq/libs/config/protos -ALLOW solomon/ -> kikimr/library/folder_service/proto -ALLOW solomon/ -> kikimr/library/login/protos -ALLOW solomon/ -> kikimr/library/go/ -# temporary (FIXME: gvit) -ALLOW yweb/robot/fetcher/generic_actors -> kikimr/core/protos -# temporary dep, remove this project (FIXME gvit) -ALLOW yql/udfs/kikimr -> kikimr -# temporary (move to kikimr) -ALLOW yql/tests/sql/kikimr_tpch -> kikimr -# temporary -ALLOW yabs/sbyt/testing/scenarios/bigstart -> kikimr/public/tools/lib -# temporary -ALLOW infra/qloud/kikimr-logs-gateway -> kikimr/library/aclib/protos -# temporary -ALLOW entity/ugc/db/legacy/workload -> kikimr/public/lib/deprecated/kicli -ALLOW entity/ugc/db/storage/public -> kikimr/public/lib/deprecated/kicli -ALLOW entity/ugc/db/storage/testing -> kikimr/public/lib/deprecated/kicli -ALLOW entity/ugc/server/modules/schema -> kikimr/public/lib/deprecated/kicli - -# temporary -ALLOW travel/cpa/tests/lib -> kikimr/public/tools/lib -# temporary -ALLOW market/idx/feeds/qparser/tests -> kikimr/library/pretty_types_print/protobuf -# temporary -ALLOW robot/rthub/yql/udfs -> kikimr/core/engine -ALLOW robot/rthub/yql/udfs -> kikimr/public/lib/deprecated/kicli -# temporary -ALLOW robot/mercury/library/datasources -> kikimr/library/persqueue/topic_parser - -# temporary -ALLOW billing/log_tariffication/py/tests/integration/common -> kikimr/public/tools/lib - -ALLOW kikimr -> kikimr/ci -ALLOW kikimr -> kikimr/library/ci - -# filestore & blockstore & disk_manager are allowed to depend on our ci libraries. -ALLOW cloud/filestore -> kikimr/ci -ALLOW cloud/blockstore -> kikimr/ci -ALLOW cloud/disk_manager -> kikimr/ci -ALLOW cloud/storage -> kikimr/ci - -ALLOW cloud/filestore -> kikimr/library/ci -ALLOW cloud/blockstore -> kikimr/library/ci -ALLOW cloud/disk_manager -> kikimr/library/ci -ALLOW cloud/storage -> kikimr/library/ci - -# restrict access to ydb-go-sdk/v2 -ALLOW alice/gamma -> kikimr/public/sdk/go/ydb.* -ALLOW alice/iot/adapters -> kikimr/public/sdk/go/ydb.* -ALLOW alice/iot/bulbasaur -> kikimr/public/sdk/go/ydb.* -ALLOW alice/iot/steelix -> kikimr/public/sdk/go/ydb.* -ALLOW alice/iot/vulpix -> kikimr/public/sdk/go/ydb.* -ALLOW alice/library/go/metrics -> kikimr/public/sdk/go/ydb.* -ALLOW alice/library/go/ydbclient -> kikimr/public/sdk/go/ydb.* -ALLOW arc/robots/admin -> kikimr/public/sdk/go/ydb.* -ALLOW arc/robots/idm -> kikimr/public/sdk/go/ydb.* -ALLOW balancer/production/yastatic/yastatic_lberrors -> kikimr/public/sdk/go/ydb.* -ALLOW billing/library/go/billingo/pkg/storage/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW browser/backend -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/billing/go -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/go-common -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/snapshot/cmd/yc-snapshot-backup -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/snapshot/cmd/yc-snapshot-backup/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/snapshot/snapshot/lib/kikimr -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/snapshot/snapshot/lib/kikimr/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/compute/snapshot/snapshot/lib/misc -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/marketplace/pkg/auth -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/marketplace/pkg/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW cloud/mdb/internal/logbroker/writer/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW distribution/browser/conversions/internal/clients/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW district/feed_reader -> kikimr/public/sdk/go/ydb.* -ALLOW drive/library/go/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW edadeal/analytics/geoloh-go/src/processor -> kikimr/public/sdk/go/ydb.* -ALLOW edadeal/analytics/geoloh-go/src/processor/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW extsearch/video/robot/rt_transcoder -> kikimr/public/sdk/go/ydb.* -ALLOW extsearch/video/robot/speech2text -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/cmd/achievements-worker -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/cmd/gamepush_hub -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/cmd/gamepush_hub/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/cmd/shown_games_worker -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/internal/logbrokerutils -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/internal/twophase -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/internal/twophase/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/internal/ydbdriver -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/gamepushes/hub_sender -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/gamepushes/users -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/gamepushes/users/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/showngames -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/showngames/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/users -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/users/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/users/storage -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/users/storage/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/services/users/storage/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW games/backend/pkg/ydbcache -> kikimr/public/sdk/go/ydb.* -ALLOW infra/rsm/coroner/internal/app/coroner -> kikimr/public/sdk/go/ydb.* -ALLOW infra/rsm/coroner/internal/app/coroner/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW infra/spnotifier/clients/errorbooster -> kikimr/public/sdk/go/ydb.* -ALLOW infra/temporal/clients/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW infra/walle/server/go/internal/lib/db -> kikimr/public/sdk/go/ydb.* -ALLOW infra/walle/server/go/internal/repos -> kikimr/public/sdk/go/ydb.* -ALLOW infra/walle/server/go/internal/repos/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW infra/walle/server/go/internal/utilities/repository -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/cron/locked -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/cron/locked/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/db -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/locks -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/locks/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/dayoffs -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/internal/dayoffs/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/jns/internal/database -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/jns/internal/database/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/server/go/internal/groups -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/server/go/internal/groups/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/server/go/internal/repos -> kikimr/public/sdk/go/ydb.* -ALLOW juggler/server/go/internal/repos/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW k50/library/go/template/internal/server -> kikimr/public/sdk/go/ydb.* -ALLOW k50/library/go/template/internal/server/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW k50/services/go/gads-gateway/internal/server -> kikimr/public/sdk/go/ydb.* -ALLOW k50/services/go/gads-gateway/internal/server/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW k50/services/go/kachalka/internal/server -> kikimr/public/sdk/go/ydb.* -ALLOW k50/services/go/kachalka/internal/server/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW kikimr -> kikimr/public/sdk/go/ydb.* -ALLOW linux-aux-subset-3 -> kikimr/public/sdk/go/ydb.* -ALLOW linux-ios-android-cygwin -> kikimr/public/sdk/go/ydb.* -ALLOW mail/logconsumers/actdb_consumer/lbreader -> kikimr/public/sdk/go/ydb.* -ALLOW mds/perekup -> kikimr/public/sdk/go/ydb.* -ALLOW mds/baas -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/goose/internal/db/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/goose/internal/interconnect/logbroker/persqueue -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/goose/internal/interconnect/logbroker/persqueue/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/goose/internal/upstream -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/goose/internal/upstream/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/pkg/eventsources/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW mds/s3/quota_controller/cmd/daemon -> kikimr/public/sdk/go/ydb.* -ALLOW mds/yarl/pkg/quota/updater -> kikimr/public/sdk/go/ydb.* -ALLOW mds/yarl/pkg/quota/updater/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mds/yarl/pkg/xydb -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/actions/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/distributed -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/distributed/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/entities -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/vartask -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/core/vartask/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/storage/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/storage/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW mlp/mimas/backend/pkg/storage/ydb/backend -> kikimr/public/sdk/go/ydb.* -ALLOW mlportal/chz/backend/internal/config -> kikimr/public/sdk/go/ydb.* -ALLOW mlportal/chz/backend/internal/db -> kikimr/public/sdk/go/ydb.* -ALLOW noc/go/errorbooster/examples/simple -> kikimr/public/sdk/go/ydb.* -ALLOW noc/metridat/internal/core -> kikimr/public/sdk/go/ydb.* -ALLOW noc/metridat/internal/core/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW psp/platform/services/psp -> kikimr/public/sdk/go/ydb.* -ALLOW robot/zora/tools/dns_proxy/src/resolver -> kikimr/public/sdk/go/ydb.* -ALLOW robot/zora/tools/dns_proxy/src/ydb_client -> kikimr/public/sdk/go/ydb.* -ALLOW rtc/calldb -> kikimr/public/sdk/go/ydb.* -ALLOW security/ant-secret -> kikimr/public/sdk/go/ydb.* -ALLOW security/csp-report/internal/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW security/dnsdb-proxy -> kikimr/public/sdk/go/ydb.* -ALLOW security/gideon/gideon/internal/collector/lbcollector -> kikimr/public/sdk/go/ydb.* -ALLOW security/gideon/speedy-beaver/internal/lbmask -> kikimr/public/sdk/go/ydb.* -ALLOW security/libs/go/lblight -> kikimr/public/sdk/go/ydb.* -ALLOW security/ssh-exporter -> kikimr/public/sdk/go/ydb.* -ALLOW security/vt-proxy -> kikimr/public/sdk/go/ydb.* -ALLOW security/xray -> kikimr/public/sdk/go/ydb.* -ALLOW security/yadi -> kikimr/public/sdk/go/ydb.* -ALLOW strm/gorshok/pkg/content/fetchers -> kikimr/public/sdk/go/ydb.* -ALLOW strm/gorshok/pkg/content/fetchers/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW strm/gorshok/pkg/content/procedures -> kikimr/public/sdk/go/ydb.* -ALLOW strm/gorshok/pkg/xydb -> kikimr/public/sdk/go/ydb.* -ALLOW strm/plgo/pkg/session -> kikimr/public/sdk/go/ydb.* -ALLOW strm/yql/ydb/copy_data_from_file -> kikimr/public/sdk/go/ydb.* -ALLOW strm/yql/ydb/execute_query -> kikimr/public/sdk/go/ydb.* -ALLOW tool -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/internal/logger -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/internal/pqconfig -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/abstract -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/abstract/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/dataagent/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/logs -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/logs/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/server -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/server/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/logbroker/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/metrika -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/yds -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/yds/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/ydb/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/logfeller -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/providers/mysql -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/worker/tasks -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/worker/tasks/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW transfer_manager/go/pkg/yc/solomon -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/avia_statistics/api/internal/pkg/tables -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/avia_statistics/api/internal/pkg/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/chatbot/bin/worker -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/chatbot/public/search_result -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/chatbot/public/search_result/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/flight_status_receiver/internal/delivery -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/personalization/internal/lib/ydbutil -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/personalization/internal/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/personalization/internal/tables -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/search_results_queue_producer/internal/searchresultscache -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/search_results_queue_producer/internal/service/qidconsumer -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/shared_flights/status_importer/internal/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/cmd/organic/application -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/cmd/organic_heater/application -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/cmd/wizard -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/pkg/wizard/repositories -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/pkg/wizard/repositories/organic -> kikimr/public/sdk/go/ydb.* -ALLOW travel/avia/wizard/pkg/wizard/repositories/ydb -> kikimr/public/sdk/go/ydb.* -ALLOW travel/buses/backend/internal/api/offerstorage -> kikimr/public/sdk/go/ydb.* -ALLOW travel/library/go/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW travel/library/go/logbroker/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW travel/library/go/logbroker/multi -> kikimr/public/sdk/go/ydb.* -ALLOW travel/rasp/crosslink/internal/storage -> kikimr/public/sdk/go/ydb.* -ALLOW travel/rasp/train_offer_storage/internal/storage -> kikimr/public/sdk/go/ydb.* -ALLOW trust/bank-exporter/pkg/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW trust/bank-exporter/pkg/logbroker/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW trust/orders-history-importer/pkg/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW trust/orders-history-importer/pkg/logbroker/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW weather/api/internal/taxi -> kikimr/public/sdk/go/ydb.* -ALLOW weather/archive/app_host/geoapi -> kikimr/public/sdk/go/ydb.* -ALLOW weather/archive/geoapi -> kikimr/public/sdk/go/ydb.* -ALLOW weather/nowcast_comparison/cmd/debug -> kikimr/public/sdk/go/ydb.* -ALLOW weather/nowcast_comparison/cmd/worker -> kikimr/public/sdk/go/ydb.* -ALLOW weather/stations_api/internal/db -> kikimr/public/sdk/go/ydb.* -ALLOW weather/stations_api/internal/repository -> kikimr/public/sdk/go/ydb.* -ALLOW weather/stations_api/internal/server -> kikimr/public/sdk/go/ydb.* -ALLOW yabs/telephony/platform/cdr/cmd/service -> kikimr/public/sdk/go/ydb.* -ALLOW yabs/telephony/platform/cdr/internal/manager -> kikimr/public/sdk/go/ydb.* -ALLOW yabs/telephony/platform/cdr/internal/manager/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yabs/telephony/platform/lib/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW yql/tools/token_accessor/server -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/animals/cmd/animals-auth-server -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/animals/internal/authserver/bus -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/animals/internal/authserver/bus/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/animals/internal/authserver/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/coordinator/internal -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/coordinator/internal/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/cmd/apiserver -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/cmd/resulttransfer -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/internal/apiserver -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/internal/exportstore -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/internal/exportstore/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrenimalsapi/internal/recorder -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/cmd/run_grpc_service -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/cmd/run_task_storage_filler -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/internal/geotaskstorage -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/internal/geotaskstorage/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/internal/slotplanner -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/internal/slotplanner/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/loadtesting/gun -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/pkg/taskarbiter -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/pkg/taskarbiter/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/taskarbiter/pkg/taskstoragefiller -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/tunnels/info/internal/tunnelinfo -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/hitrobot/tunnels/info/internal/tunnelinfo/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/libs/go/logbroker -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/libs/go/ydbtestsuite -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/libs/go/ydbtools -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/cmd/task-states-watcher -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/internal/actionqueue -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/internal/actionqueue/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/internal/registry -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/internal/registry/gotest -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/antimalware/trex/metrics/inprogress_tasks -> kikimr/public/sdk/go/ydb.* -ALLOW yweb/video/transcoder/tools/add_auto_subtitles/deliver -> kikimr/public/sdk/go/ydb.* -ALLOW zootopia/analytics/drive/services/logbroker -> kikimr/public/sdk/go/ydb.* - -DENY .* -> kikimr/public/sdk/go/ydb.* - -# public dependencies -ALLOW .* -> kikimr/public/sdk -ALLOW .* -> kikimr/persqueue - -ALLOW .* -> kikimr/yndx/api - -ALLOW cloud/blockstore -> kikimr/blockstore -ALLOW cloud/blockstore -> kikimr/core -ALLOW cloud/blockstore -> kikimr/driver_lib/run -ALLOW cloud/blockstore -> kikimr/public/lib/deprecated/kicli -ALLOW cloud/blockstore -> kikimr/yndx - -ALLOW cloud/filestore -> kikimr/core -ALLOW cloud/filestore -> kikimr/driver_lib/run -ALLOW cloud/filestore -> kikimr/public/lib/deprecated/kicli -ALLOW cloud/filestore -> kikimr/yndx - -ALLOW cloud/storage -> kikimr/core - -ALLOW cloud/kms/benchcrypto/cpp -> kikimr/core/blobstorage/crypto - -ALLOW rtmapreduce -> kikimr/yf - -ALLOW rtmapreduce/libs -> kikimr/yndx -ALLOW rtmapreduce/libs -> kikimr/library/shop -ALLOW rtmapreduce/libs -> kikimr/driver_lib/run -ALLOW rtmapreduce/libs -> kikimr/library/aclib - -ALLOW rtmapreduce/tools/config-full/handlers -> kikimr/library/shop - -ALLOW robot/mercury/library/datasources -> $S/kikimr/library/persqueue/topic_parser - -ALLOW logbroker/pipe-parser -> kikimr/core/scheme -ALLOW logbroker/pipe-parser -> kikimr/public/lib/deprecated/client -ALLOW logbroker/pipe-parser -> kikimr/library/persqueue/topic_parser -ALLOW logbroker/pipe-parser -> kikimr/core/protos -ALLOW logbroker/pipe-parser -> kikimr/core/testlib - -ALLOW logbroker/push-agent/daemon/sinks/bus -> kikimr/core/protos - -ALLOW logbroker/config-manager -> kikimr/core/grpc_services -ALLOW logbroker/config-manager -> kikimr/core/mon -ALLOW logbroker/config-manager -> kikimr/core/security -ALLOW logbroker/config-manager -> kikimr/core/util -ALLOW logbroker/config-manager -> kikimr/library/persqueue/topic_parser -ALLOW logbroker/config-manager -> kikimr/public/lib/deprecated/kicli -ALLOW logbroker/config-manager -> kikimr/library/security -ALLOW logbroker/config-manager -> kikimr/yndx/grpc_services/persqueue -ALLOW logbroker/config-manager -> kikimr/yndx/security -ALLOW logbroker/config-manager -> kikimr/core/testlib - -ALLOW logbroker/push-agent/ut -> kikimr/core/testlib - -ALLOW logbroker/mops -> kikimr/core/protos - -ALLOW logbroker/ -> kikimr/juggler - -ALLOW logbroker/tools -> kikimr/core/protos -ALLOW logbroker/tools -> kikimr/public/lib/deprecated/client -ALLOW logbroker/tools -> kikimr/public/lib/deprecated/kicli -ALLOW logbroker/tools -> kikimr/library/aclib -ALLOW logbroker/tools -> kikimr/library/persqueue/topic_parser -ALLOW logbroker/tools -> kikimr/tools/monitoring - -ALLOW solomon/ -> kikimr/core/protos -ALLOW solomon/ -> kikimr/public/lib/deprecated/kicli -ALLOW solomon/ -> kikimr/library/mkql_proto/protos -ALLOW solomon/ -> kikimr/yq/libs/config/protos -ALLOW solomon/ -> kikimr/library/login/protos - -ALLOW voicetech/bio/scripts/ydb -> kikimr/library/quoter - -ALLOW yql/ -> kikimr/yndx - -ALLOW yql/library/test_framework -> kikimr/yf/sdk/python/native - -ALLOW yql/providers/rtmr/gateway -> kikimr/yf/yf_client -ALLOW yql/providers/rtmr/gateway -> kikimr/yf/util - -ALLOW yql/tests -> kikimr/yf -ALLOW yql/tests -> kikimr/yq - -ALLOW kikimr/ -> kikimr - -DENY ydb/ -> dict/dictutil -DENY .* -> kikimr diff --git a/build/rules/library_deprecated.policy b/build/rules/library_deprecated.policy deleted file mode 100644 index 55e33b6bdb..0000000000 --- a/build/rules/library_deprecated.policy +++ /dev/null @@ -1,363 +0,0 @@ -ALLOW kernel/geo -> library/cpp/deprecated/small_array -ALLOW ysite/yandex/clicks -> library/cpp/deprecated/small_array -ALLOW ysite/yandex/indexuser -> library/cpp/deprecated/small_array -DENY .* -> library/cpp/deprecated/small_array - -ALLOW jupytercloud/arcadia_kernel -> library/python/clickhouse_client -ALLOW sandbox/projects/oko -> library/python/clickhouse_client -ALLOW statbox/python-statinfra -> library/python/clickhouse_client -ALLOW quality/ab_testing/cofe/bin/lib/files/py2/cofe_kernel_yql -> library/python/clickhouse_client -DENY .* -> library/python/clickhouse_client - -# please use https://a.yandex-team.ru/arc/trunk/arcadia/library/python/tvmauth instead -# https://clubs.at.yandex-team.ru/passport/3619 -ALLOW addappter/backend/addappter -> library/python/deprecated/ticket_parser2 -ALLOW ads/bsyeti/bb_viewer/viewer -> library/python/deprecated/ticket_parser2 -ALLOW bigrt/py_test_lib/logsampler/samplers -> library/python/deprecated/ticket_parser2 -ALLOW ads/bsyeti/tests/test_lib/data_collector -> library/python/deprecated/ticket_parser2 -ALLOW ads/bsyeti/tools/bb_requester -> library/python/deprecated/ticket_parser2 -ALLOW alice/uniproxy/library/auth -> library/python/deprecated/ticket_parser2 -ALLOW alice/uniproxy/library/integration_tests -> library/python/deprecated/ticket_parser2 -ALLOW alice/vins/apps/navi -> library/python/deprecated/ticket_parser2 -ALLOW analytics/geo/navi/team-x-vin-transfer -> library/python/deprecated/ticket_parser2 -ALLOW analytics/images/upload_urls_to_avatars -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/argus/result_agregate_task -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/configs_api/lib -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/cryprox/cryprox -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/monrelay -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/autoredirect_data -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/change_current_cookie -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/configs_stub_server -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/decrypt_url_configs -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/experiments/lib -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/gdpr_aab_cookies -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/money_tickets_updater/plugins -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/tools -> library/python/deprecated/ticket_parser2 -ALLOW antiadblock/tasks/update_lj_custom_domains -> library/python/deprecated/ticket_parser2 -ALLOW antirobot/captcha/captcha_test_service/bin -> library/python/deprecated/ticket_parser2 -ALLOW antirobot/cbb/cbb_django/cbb/views -> library/python/deprecated/ticket_parser2 -ALLOW antirobot/scripts/parsers/cbb_api_clear_from_dump -> library/python/deprecated/ticket_parser2 -ALLOW antirobot/scripts/parsers/cbb_api_example -> library/python/deprecated/ticket_parser2 -ALLOW antirobot/scripts/parsers/upload_ip_to_cbb -> library/python/deprecated/ticket_parser2 -ALLOW april/common -> library/python/deprecated/ticket_parser2 -ALLOW april/etl/utils -> library/python/deprecated/ticket_parser2 -ALLOW april/tools/clients/tvm_client -> library/python/deprecated/ticket_parser2 -ALLOW billing/bcl/src/tests/regression -> library/python/deprecated/ticket_parser2 -ALLOW billing/dcs/dcs -> library/python/deprecated/ticket_parser2 -ALLOW cloud/bootstrap/api/src/backend -> library/python/deprecated/ticket_parser2 -ALLOW cloud/marketplace/queue/yc_marketplace_queue -> library/python/deprecated/ticket_parser2 -ALLOW cloud/mdb/dbm/internal -> library/python/deprecated/ticket_parser2 -ALLOW cmnt/tools/regression/lib -> library/python/deprecated/ticket_parser2 -ALLOW cmnt/tools/request_generator -> library/python/deprecated/ticket_parser2 -ALLOW cv/cbir_search/yt_classifier/image_tools -> library/python/deprecated/ticket_parser2 -ALLOW datacloud/dev_utils/tvm -> library/python/deprecated/ticket_parser2 -ALLOW datacloud/log_reader/lib -> library/python/deprecated/ticket_parser2 -ALLOW datalens/backend/app/bi_billing -> library/python/deprecated/ticket_parser2 -ALLOW datalens/backend/lib/bi_core -> library/python/deprecated/ticket_parser2 -ALLOW devtools/experimental/tvm2 -> library/python/deprecated/ticket_parser2 -ALLOW devtools/experimental/xprod/score_api -> library/python/deprecated/ticket_parser2 -ALLOW devtools/qafw/selenium/lb_sender -> library/python/deprecated/ticket_parser2 -ALLOW devtools/yanotifybot/server/lib -> library/python/deprecated/ticket_parser2 -ALLOW dict/mt/web/misc/identity -> library/python/deprecated/ticket_parser2 -ALLOW dict/mt/web/misc/takeout -> library/python/deprecated/ticket_parser2 -ALLOW district/scripts/nirvana_actions_lb_writer -> library/python/deprecated/ticket_parser2 -ALLOW district/scripts/push_triggers_to_lb -> library/python/deprecated/ticket_parser2 -ALLOW dj/services/ecom/lib/pymiddle_turbo_requester -> library/python/deprecated/ticket_parser2 -ALLOW drive/analytics/pybase/helpers -> library/python/deprecated/ticket_parser2 -ALLOW education/lib/clients -> library/python/deprecated/ticket_parser2 -ALLOW entity/ontodb/tasks/import_persons_to_saas/lib -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/db/python/client -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/nirvana/utils/yt -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/robot/tools/achivery/lib -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/robot/tools/antispam/lib -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/robot/tools/ugcdb/ugcdb_uploader -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/comments/business_reply_fix_util -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/nirvana/blackbox -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/nirvana/comments/init_commentator_chat -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/nirvana/comments/wait_comment_moderation -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/nirvana/enricher/lib -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/nirvana/ugcdb/lib -> library/python/deprecated/ticket_parser2 -ALLOW entity/ugc/tools/viewer_server/lib -> library/python/deprecated/ticket_parser2 -ALLOW ether/ether_common -> library/python/deprecated/ticket_parser2 -ALLOW ether/zen/highlights/ugc/highlight_importer -> library/python/deprecated/ticket_parser2 -ALLOW ether/zen/highlights/vh/video_exporter -> library/python/deprecated/ticket_parser2 -ALLOW ether/zen/zen_tools -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/geo/conveyors/gdpr/takeout_daemon -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/geo/conveyors/gdpr/uploader -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/video/quality/recommender/tools/zen_load -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/video/robot/crawling/stevenson/backend/bin/webapp -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/video/ugc/sqs_moderation/clients -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/video/vh/ydb/lb2ydb -> library/python/deprecated/ticket_parser2 -ALLOW extsearch/wizards/fastres2/tools/data_delivery/rtmr/delivery/common -> library/python/deprecated/ticket_parser2 -ALLOW geoproduct/external_cc_events/app -> library/python/deprecated/ticket_parser2 -ALLOW geoproduct/price_info_proxy/app -> library/python/deprecated/ticket_parser2 -ALLOW haas/terminal_itdc/export_tasks -> library/python/deprecated/ticket_parser2 -ALLOW health/articles/articles_pipeline/lib -> library/python/deprecated/ticket_parser2 -ALLOW health/common_libs/utils -> library/python/deprecated/ticket_parser2 -ALLOW health/turbo_articles/commentator_api -> library/python/deprecated/ticket_parser2 -ALLOW health/turbo_articles/parser/libs -> library/python/deprecated/ticket_parser2 -ALLOW htf/predictions/common_data/blackbox_markup_puids -> library/python/deprecated/ticket_parser2 -ALLOW htf/viewers/demo -> library/python/deprecated/ticket_parser2 -ALLOW infra/deploy_notifications_controller/lib -> library/python/deprecated/ticket_parser2 -ALLOW infra/nanny/instancectl/src -> library/python/deprecated/ticket_parser2 -ALLOW infra/qyp/qdm/src -> library/python/deprecated/ticket_parser2 -ALLOW infra/qyp/vmagent/src -> library/python/deprecated/ticket_parser2 -ALLOW infra/qyp/vmproxy/src -> library/python/deprecated/ticket_parser2 -ALLOW infra/swatlib -> library/python/deprecated/ticket_parser2 -ALLOW infra/vmagent/src/vmagent -> library/python/deprecated/ticket_parser2 -ALLOW infra/walle/server/walle -> library/python/deprecated/ticket_parser2 -ALLOW intranet/trip/ext_api/src -> library/python/deprecated/ticket_parser2 -ALLOW inventori/etl -> library/python/deprecated/ticket_parser2 -ALLOW inventori/pylibs/common -> library/python/deprecated/ticket_parser2 -ALLOW junk/kalmykov-ad/geocoder -> library/python/deprecated/ticket_parser2 -ALLOW junk/swarmer/news/vh_selfservice_resend_tool -> library/python/deprecated/ticket_parser2 -ALLOW junk/ulgen4a/devops/schedule -> library/python/deprecated/ticket_parser2 -ALLOW junk/zankin/docker_example -> library/python/deprecated/ticket_parser2 -ALLOW kikimr/juggler/ydb_availability -> library/python/deprecated/ticket_parser2 -ALLOW kikimr/tools/duty_bot -> library/python/deprecated/ticket_parser2 -ALLOW kikimr/tools/rolling_restart -> library/python/deprecated/ticket_parser2 -ALLOW library/python/awssdk-extensions -> library/python/deprecated/ticket_parser2 -ALLOW library/python/awssdk_async_extensions/lib -> library/python/deprecated/ticket_parser2 -ALLOW library/python/deprecated/ticket_parser2 -> library/python/deprecated/ticket_parser2 -ALLOW library/python/flask_passport -> library/python/deprecated/ticket_parser2 -ALLOW library/recipes/tvmapi/ut_simple -> library/python/deprecated/ticket_parser2 -ALLOW library/recipes/tvmapi/ut_with_tvmtool -> library/python/deprecated/ticket_parser2 -ALLOW load/projects/lunaparkapi/web -> library/python/deprecated/ticket_parser2 -ALLOW logbroker/tools/ansible/plugins -> library/python/deprecated/ticket_parser2 -ALLOW logbroker/tools/python3 -> library/python/deprecated/ticket_parser2 -ALLOW mail/calendar-attach-processor -> library/python/deprecated/ticket_parser2 -ALLOW mail/calendar/python/client -> library/python/deprecated/ticket_parser2 -ALLOW mail/catdog/catdog/requirements -> library/python/deprecated/ticket_parser2 -ALLOW mail/collectors-ext/tests-system/src -> library/python/deprecated/ticket_parser2 -ALLOW mail/collectors/tests-system/src -> library/python/deprecated/ticket_parser2 -ALLOW mail/furita/tests/common/utils -> library/python/deprecated/ticket_parser2 -ALLOW mail/payments/payments -> library/python/deprecated/ticket_parser2 -ALLOW mail/so/daemons/knn_bot -> library/python/deprecated/ticket_parser2 -ALLOW mail/support/nirvana/pdb_fos -> library/python/deprecated/ticket_parser2 -ALLOW mail/tools/yamail_info/lib -> library/python/deprecated/ticket_parser2 -ALLOW mail/transfer -> library/python/deprecated/ticket_parser2 -ALLOW maps/analytics/legacy/nirvana/navi/team-x-vin-transfer -> library/python/deprecated/ticket_parser2 -ALLOW maps/analyzer/services/eta_comparison/lib -> library/python/deprecated/ticket_parser2 -ALLOW maps/automotive/carwashes/tools/carwashes_downloader -> library/python/deprecated/ticket_parser2 -ALLOW maps/automotive/tollroads/tools/plazas_downloader -> library/python/deprecated/ticket_parser2 -ALLOW maps/geomarketing/Roland/consumer -> library/python/deprecated/ticket_parser2 -ALLOW maps/geomarketing/Virgille/consumer -> library/python/deprecated/ticket_parser2 -ALLOW maps/renderer/stylerepo/lib -> library/python/deprecated/ticket_parser2 -ALLOW maps/search/scripts/transit/coverage/lib -> library/python/deprecated/ticket_parser2 -ALLOW market/checkout/checkouter-load-test/checkouter-market-delivery-blue-order-creator -> library/python/deprecated/ticket_parser2 -ALLOW market/idx/admin/system_offers/lib -> library/python/deprecated/ticket_parser2 -ALLOW market/idx/api/backend -> library/python/deprecated/ticket_parser2 -ALLOW market/idx/devtools/dukalis/offer_diagnostics/lib/analyzer -> library/python/deprecated/ticket_parser2 -ALLOW market/idx/devtools/dukalis/promo_diagnostics/lib/analyzer -> library/python/deprecated/ticket_parser2 -ALLOW market/pylibrary/logbroker -> library/python/deprecated/ticket_parser2 -ALLOW market/sre/services/colba/common/lb_client -> library/python/deprecated/ticket_parser2 -ALLOW market/sre/services/colba/dispatcher -> library/python/deprecated/ticket_parser2 -ALLOW market/sre/services/colba/master -> library/python/deprecated/ticket_parser2 -ALLOW market/sre/services/colba/minion -> library/python/deprecated/ticket_parser2 -ALLOW market/tools/corewatcher-rtc/src -> library/python/deprecated/ticket_parser2 -ALLOW market/vimobu/lib -> library/python/deprecated/ticket_parser2 -ALLOW mds/nscfg/server -> library/python/deprecated/ticket_parser2 -ALLOW mds/s3/s3_mds_proxy -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/brb/server/lib/utils -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/bishop/config_api/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/bishop/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/clickhouse_backups/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/clickhouse_rbac/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/cms/agent/lib -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/cms/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/cms/lib -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/duty/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/mi/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/scripts/oauth-tokens-checker -> library/python/deprecated/ticket_parser2 -ALLOW metrika/admin/python/zooface/frontend/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/core/programs/mobile_startup_admin/base -> library/python/deprecated/ticket_parser2 -ALLOW metrika/pylib/auth/tvm -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartcompose/dev/SMARTCOMPOSE-154 -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartcompose/dev/SMARTCOMPOSE-192 -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartcompose/dev/SMARTCOMPOSE-197 -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartcompose/dev/hounder -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartcompose/tools/calc_matches_runtime -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartsubject/dev/SMARTSUBJECT-5 -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartsubject/juggler_bundle -> library/python/deprecated/ticket_parser2 -ALLOW mlp/mail/smartsubject/tools/calc_metrics -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/libs/connectors/loggers/it -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/libs/http -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/libs/laas/workers/logging_worker -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/libs/program/tvm_mixin -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/libs/tvm -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/nirvana/send_to_lb/libs -> library/python/deprecated/ticket_parser2 -ALLOW modadvert/test_utils/tvm -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/botplatform/src/bots/common -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/botplatform/src/bots/core/testutils -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/lib/python/userid -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/lib/python/utils -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/chat_mirror_test/test_suites/light -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/files_test/test_suites/light -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/lb_subscriber2_test/test_suites/light -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/registry_test/test_suites/light -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/server_test/test_suites/fat -> library/python/deprecated/ticket_parser2 -ALLOW mssngr/router/tests/support_gateway_test/test_suites/light -> library/python/deprecated/ticket_parser2 -ALLOW noc/ipv4mgr -> library/python/deprecated/ticket_parser2 -ALLOW ofd/common/services/tvm -> library/python/deprecated/ticket_parser2 -ALLOW ofd/common/tests/test_tvm_service -> library/python/deprecated/ticket_parser2 -ALLOW offline_data/call_center/nirvana/send_sms -> library/python/deprecated/ticket_parser2 -ALLOW orgvisits/viewers/geotrack/backend -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/social/common -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/tvm_keyring -> library/python/deprecated/ticket_parser2 -ALLOW passport/infra/daemons/tvmapi/ut_py -> library/python/deprecated/ticket_parser2 -ALLOW passport/infra/daemons/tvmtool/ut_py -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/grants -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/logging_utils -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/tvm/faker/tests -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/tvm/faker -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/tvm/tests -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/core/tvm -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/tasks_nirvana/antifraud -> library/python/deprecated/ticket_parser2 -ALLOW passport/backend/vault/api -> library/python/deprecated/ticket_parser2 -ALLOW payplatform/nirvana/lib -> library/python/deprecated/ticket_parser2 -ALLOW plus/analytics/tools/bb_user_info -> library/python/deprecated/ticket_parser2 -ALLOW plus/cobra/project -> library/python/deprecated/ticket_parser2 -ALLOW plus/gift/project -> library/python/deprecated/ticket_parser2 -ALLOW plus/landing_backend/project -> library/python/deprecated/ticket_parser2 -ALLOW plus/oneyear/project -> library/python/deprecated/ticket_parser2 -ALLOW plus/plusminus/project -> library/python/deprecated/ticket_parser2 -ALLOW quality/antifraud/scripts/prod/dump_viewers_data -> library/python/deprecated/ticket_parser2 -ALLOW quality/antifraud/xurma/tools/xurma_admin/lib -> library/python/deprecated/ticket_parser2 -ALLOW quality/antifraud/xurma/tools/xurma_viewer/backend/lib -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/chats/common/tvm_client -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/entity_search/factqueries/custom/metro -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/entity_search/factqueries/instructions/avatars_uploader -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/turbo/ecommerce/smart_campaign_uploader/lib -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/turbo/forms/job/lib -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/turbo/tools/api_tasks/lib -> library/python/deprecated/ticket_parser2 -ALLOW quality/functionality/turbo/tools/duty_absence_notifier -> library/python/deprecated/ticket_parser2 -ALLOW quasar/infra/tasklets/datasync_uploader/impl -> library/python/deprecated/ticket_parser2 -ALLOW quasar/infra/tasklets/group_maintenance/impl -> library/python/deprecated/ticket_parser2 -ALLOW robot/pluto/patents/apphost -> library/python/deprecated/ticket_parser2 -ALLOW robot/samovar/tools/wikimedia_updates_reader -> library/python/deprecated/ticket_parser2 -ALLOW rt-research/broadmatching/scripts/tvm/update_service_tickets -> library/python/deprecated/ticket_parser2 -ALLOW rtc/recorder -> library/python/deprecated/ticket_parser2 -ALLOW rtmapreduce/monitoring/solomon -> library/python/deprecated/ticket_parser2 -ALLOW saas/tools/devops/billing_send -> library/python/deprecated/ticket_parser2 -ALLOW saas/tools/refresh_mon -> library/python/deprecated/ticket_parser2 -ALLOW saas/tools/user_if/ssm-front/backend -> library/python/deprecated/ticket_parser2 -ALLOW samogon/libs/tvm_api -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/ab_testing -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/metrika/mobile/ios/symbols/upload_system_ios_symbols -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/noc/ExportNetworkMetering -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/noc/MeteringCacheZapekatel -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/noc/TopAS -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/quasar/datasync_uploader/lib -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/qyp -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/staff_login_checker/PrepareUidsFile -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/suggest/watchdog -> library/python/deprecated/ticket_parser2 -ALLOW sandbox/projects/yabs/duty_calendar -> library/python/deprecated/ticket_parser2 -ALLOW search/metadoc/tools/request_saas -> library/python/deprecated/ticket_parser2 -ALLOW security/takeout -> library/python/deprecated/ticket_parser2 -ALLOW sport/backend -> library/python/deprecated/ticket_parser2 -ALLOW sprav/snezhana_v3/lib -> library/python/deprecated/ticket_parser2 -ALLOW sup/ml/saas -> library/python/deprecated/ticket_parser2 -ALLOW sup/tools/bell_delete -> library/python/deprecated/ticket_parser2 -ALLOW sup/tools/datasync_loader -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/library/cargo_ld_test -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/tools/configure-sharding -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/tools/qa-axe/platform_requests -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/tools/quick-tvm/quick_tvm_generator -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/tools/rt-robot-dc-configuration -> library/python/deprecated/ticket_parser2 -ALLOW taxi/logistic-dispatcher/tools/unsafe-robot-configurations -> library/python/deprecated/ticket_parser2 -ALLOW testenv/core/api/ci -> library/python/deprecated/ticket_parser2 -ALLOW testenv/core/common -> library/python/deprecated/ticket_parser2 -ALLOW travel/avia/subscriptions/app/settings -> library/python/deprecated/ticket_parser2 -ALLOW travel/avia/travelers -> library/python/deprecated/ticket_parser2 -ALLOW travel/cpa/collectors/avia/aeroflot_boy -> library/python/deprecated/ticket_parser2 -ALLOW travel/cpa/collectors/generic/order -> library/python/deprecated/ticket_parser2 -ALLOW travel/cpa/collectors/lib -> library/python/deprecated/ticket_parser2 -ALLOW travel/cpa/collectors/suburban/suburban_boy -> library/python/deprecated/ticket_parser2 -ALLOW travel/cpa/collectors/train/im_boy -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/devops/slack_forwarder -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/lib/python3/tvm -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/tools/api_req_replicator -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/tools/cli -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/tools/expedia_token_validator -> library/python/deprecated/ticket_parser2 -ALLOW travel/hotels/tools/room_photos_uploader -> library/python/deprecated/ticket_parser2 -ALLOW travel/library/python/tvm_ticket_provider -> library/python/deprecated/ticket_parser2 -ALLOW travel/orders/tools/library -> library/python/deprecated/ticket_parser2 -ALLOW travel/rasp/bus/admin/app -> library/python/deprecated/ticket_parser2 -ALLOW travel/rasp/bus_gdpr_api/src -> library/python/deprecated/ticket_parser2 -ALLOW travel/rasp/pathfinder_maps -> library/python/deprecated/ticket_parser2 -ALLOW travel/rasp/pathfinder_proxy/settings -> library/python/deprecated/ticket_parser2 -ALLOW travel/rasp/pathfinder_proxy -> library/python/deprecated/ticket_parser2 -ALLOW trust/utils -> library/python/deprecated/ticket_parser2 -ALLOW videoplatform/cms_common -> library/python/deprecated/ticket_parser2 -ALLOW videoplatform/cms_ugc/sqs_moderation/clients -> library/python/deprecated/ticket_parser2 -ALLOW videoplatform/cms_ugc/utils/auth/tvm -> library/python/deprecated/ticket_parser2 -ALLOW weather/libs/utils/tvm -> library/python/deprecated/ticket_parser2 -ALLOW weather/workers/exports/logbroker -> library/python/deprecated/ticket_parser2 -ALLOW yabs/indoor/py_libs/banana_client -> library/python/deprecated/ticket_parser2 -ALLOW yabs/indoor/py_libs/indoor_client -> library/python/deprecated/ticket_parser2 -ALLOW yabs/indoor/py_libs/tvm -> library/python/deprecated/ticket_parser2 -ALLOW yabs/outdoor/libs/operators_api -> library/python/deprecated/ticket_parser2 -ALLOW yabs/python-libs/tornado-utils -> library/python/deprecated/ticket_parser2 -ALLOW yabs/python-libs/tvm -> library/python/deprecated/ticket_parser2 -ALLOW yabs/rmp/backend/src/tvm -> library/python/deprecated/ticket_parser2 -ALLOW yabs/stat/infra/idm/src -> library/python/deprecated/ticket_parser2 -ALLOW yabs/telephony/telephony_data_transfer -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/cms_common -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/logbroker -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/partner_api -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/self_service_api -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/strm_thumb_repeat_importer -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/ugc_api -> library/python/deprecated/ticket_parser2 -ALLOW yabs/vh/cms-pgaas/utils/auth/tvm -> library/python/deprecated/ticket_parser2 -ALLOW yaphone/advisor/advisor -> library/python/deprecated/ticket_parser2 -ALLOW yaphone/advisor/common -> library/python/deprecated/ticket_parser2 -ALLOW yaphone/advisor/project -> library/python/deprecated/ticket_parser2 -ALLOW yaphone/dialer/project -> library/python/deprecated/ticket_parser2 -ALLOW ydo/analytics/nirvana/puidification/phone_masks_retriever -> library/python/deprecated/ticket_parser2 -ALLOW ydo/async_api/lib/logbroker_consumer -> library/python/deprecated/ticket_parser2 -ALLOW ydo/bg_task_processor/bin -> library/python/deprecated/ticket_parser2 -ALLOW ydo/libs/blackbox/test -> library/python/deprecated/ticket_parser2 -ALLOW ydo/libs/blackbox -> library/python/deprecated/ticket_parser2 -ALLOW ydo/libs/tvm -> library/python/deprecated/ticket_parser2 -ALLOW ydo/payments/product_orders_processor/bin -> library/python/deprecated/ticket_parser2 -ALLOW ydo/tools/messenger/sms_notify/lib -> library/python/deprecated/ticket_parser2 -ALLOW ydo/tools/messenger/sms_notify -> library/python/deprecated/ticket_parser2 -ALLOW ydo/tools/search_index/prepare_index_data/prepare_direct_certificates/lib -> library/python/deprecated/ticket_parser2 -ALLOW yp/idm_role_provider/src -> library/python/deprecated/ticket_parser2 -ALLOW yp/tests/blackbox_recipe/bin -> library/python/deprecated/ticket_parser2 -ALLOW yp/tests/secret_vault_recipe/bin -> library/python/deprecated/ticket_parser2 -ALLOW yt/cron/duty -> library/python/deprecated/ticket_parser2 -ALLOW yt/cron/map_users_to_pools -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antiporno/cp_conv/prepare_suggestive_cp_img_basket -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/cid/library/normalizer -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/cid/library -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/clean_web/lib -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/clean_web/tools/make_alert -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/clean_web/tools/upload_images_to_mds -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/mascot/sources -> library/python/deprecated/ticket_parser2 -ALLOW yweb/antispam/pth/instances/ownpth/hostinfo_viewer -> library/python/deprecated/ticket_parser2 -ALLOW yweb/blender/data_delivery/rtmr_uploader -> library/python/deprecated/ticket_parser2 -ALLOW yweb/freshness/coronavirus/upload_data_to_rtmr -> library/python/deprecated/ticket_parser2 -ALLOW yweb/freshness/scripts/sport_wizard -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/common/python/logbroker -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/common/python/logbroker_py2 -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/common/python/tvm -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/media/vh_selfservice -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/news_back/api/partner -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/pq_importer -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/python -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/search/pyuploader -> library/python/deprecated/ticket_parser2 -ALLOW yweb/news/zen/video_export -> library/python/deprecated/ticket_parser2 -ALLOW yweb/rca/server/app -> library/python/deprecated/ticket_parser2 -ALLOW yweb/verticals/scripts/sport_chats -> library/python/deprecated/ticket_parser2 -ALLOW yweb/yasap/answers/answers -> library/python/deprecated/ticket_parser2 -ALLOW yweb/yasap/answers/answers_history/lib -> library/python/deprecated/ticket_parser2 -ALLOW yweb/yasap/pdb/pdb-backend/src -> library/python/deprecated/ticket_parser2 -ALLOW zootopia/analytics/drive/binary/drive -> library/python/deprecated/ticket_parser2 -ALLOW zootopia/analytics/drive/source/drive/utils -> library/python/deprecated/ticket_parser2 -ALLOW zootopia/hub/planex/promo_backend/dispenser -> library/python/deprecated/ticket_parser2 -DENY .* -> library/python/deprecated/ticket_parser2 - -ALLOW kikimr/ci/stress/bin -> library/python/testing/yatest_common_standalone -ALLOW ydb/tests/functional/open_source -> library/python/testing/yatest_common_standalone -DENY .* -> library/python/testing/yatest_common_standalone diff --git a/build/rules/library_deps.policy b/build/rules/library_deps.policy deleted file mode 100644 index 12bb6da7ee..0000000000 --- a/build/rules/library_deps.policy +++ /dev/null @@ -1,53 +0,0 @@ -ALLOW library -> build -ALLOW library -> contrib -ALLOW library -> util -ALLOW library -> library -ALLOW library -> certs -ALLOW library/.*/(n)?yt -> mapreduce/yt -ALLOW library/.*/(n)?yt -> yt/yt_proto/yt/formats -ALLOW library/java -> devtools/junit5-runner -ALLOW library/java/.*/ut -> devtools/(jtest)|(junit-runner) -ALLOW library/java/.*/src/test -> devtools/(jtest)|(junit-runner) -ALLOW library/java/.*/tests -> devtools/(jtest)|(junit-runner) -ALLOW library/java/hnsw/ut -> devtools/(jtest)|(junit-runner) -ALLOW library/java/logging -> security/ant-secret/snooper -ALLOW library/python/.*/test -> devtools/ya/(test)|(exts) -ALLOW library/(python/)?testing -> devtools/ya/ -ALLOW library/recipes -> devtools/ya/ -ALLOW library/recipes/clickhouse_over_yt -> yt/python -ALLOW library/recipes/clickhouse_over_yt/lib -> mapreduce/yt/python/recipe/lib -ALLOW library/.*/ipreg -> ipreg -ALLOW library/cpp/deprecated/ipreg1 -> ipreg -ALLOW library/cpp/geobase -> geobase -ALLOW library/python/zipatch -> vcs/svn/wc/client -ALLOW library/.*/hnsw -> iceberg -ALLOW library/python/bstr -> yt/python/client -ALLOW library/python/bstr/test -> mapreduce/yt/python -ALLOW library/python/django -> devtools/ya/yalibrary/makelists -ALLOW library/python/django_abc_data -> intranet/sync_tools -ALLOW library/python/coredump_filter -> sandbox/sdk2/helpers/coredump_filter -ALLOW library/python/cqueue -> skynet/api/copier -ALLOW library/python/monitoring/solo/handlers/solomon/v3/base -> solomon/protos/api/v3 -ALLOW library/python/monitoring/solo/objects/solomon/v3 -> solomon/protos/api/v3 -ALLOW library/python/monitoring/solo -> juggler/sdk/juggler_sdk -ALLOW library/python/nirvana -> yt/python/client -ALLOW library/python/type_info -> yt/python/client -ALLOW library/python/ylock -> yt/python/yt/wrapper -ALLOW library/python/yt -> yt/python/client_lite -ALLOW library/python/yt/example -> yt/python/client -ALLOW library/python/statface_client -> statbox/libstatbox/python -ALLOW library/python/type_info -> yt/python/yt/type_info -ALLOW library/python/pytest-mongodb -> devtools/swag/lib -ALLOW library/cpp/minhash/tools/mr_hash -> mapreduce -ALLOW library/cpp/token/ut -> kernel -ALLOW library/cpp/infected_masks -> kernel -ALLOW library/cpp/deprecated/dater_old/scanner -> kernel -ALLOW library/cpp/http/client/fetch -> kernel -ALLOW library/cpp/text_processing/yandex_specific_lemmer -> kernel/lemmer -ALLOW library/cpp/digest/benchmark -> yabs/server/util -ALLOW library/cpp/eventlog/rt/tool -> search/idl -ALLOW library/cpp/dolbilo/planner -> search/idl -ALLOW library/cpp/vowpalwabbit/tools/vw_ops -> ml/differential_evolution -ALLOW library/cpp/user_agent -> metrika/uatraits -ALLOW library/go/yandex/uatraits -> metrika/uatraits -DENY library -> .* diff --git a/build/rules/local.blacklist b/build/rules/local.blacklist deleted file mode 100644 index 46d8cff894..0000000000 --- a/build/rules/local.blacklist +++ /dev/null @@ -1,3 +0,0 @@ -# Local blacklist -# The list of top level directories excluded from local build -mobile diff --git a/build/rules/local.isolated_projects b/build/rules/local.isolated_projects deleted file mode 100644 index 1728519fd2..0000000000 --- a/build/rules/local.isolated_projects +++ /dev/null @@ -1,12 +0,0 @@ -# Local isolated projects -# The list of top level directories which MUST not be used in other projects - -ci/internal -devtools/distbuild/sre -devtools/snowden -yp/cauth_export -yp/hfsm -yp/idm_role_provider -yp/inet_mngr -yp/provisor -yt/yt/orm/example diff --git a/build/rules/maps/maps.policy b/build/rules/maps/maps.policy deleted file mode 100644 index 9534a5105e..0000000000 --- a/build/rules/maps/maps.policy +++ /dev/null @@ -1,201 +0,0 @@ -ALLOW maps/infra/ratelimiter2/server -> maps/libs/deprecated/bson -ALLOW maps/tools/grinder -> maps/libs/deprecated/bson -ALLOW taxi/tools/dorblu -> maps/libs/deprecated/bson - -# Use maps/libs/locale instead -ALLOW maps/automotive/remote_access/libs/i18n -> maps/libs/deprecated/localeutils -ALLOW maps/carparks/renderer/datasource -> maps/libs/deprecated/localeutils -ALLOW maps/garden/modules/renderer_denormalization -> maps/libs/deprecated/localeutils -ALLOW maps/infopoint -> maps/libs/deprecated/localeutils -ALLOW maps/jams/renderer2 -> maps/libs/deprecated/localeutils -ALLOW maps/libs/i18n -> maps/libs/deprecated/localeutils -ALLOW maps/libs/i18n-geobase -> maps/libs/deprecated/localeutils -ALLOW maps/libs/jams/static-graph -> maps/libs/deprecated/localeutils -ALLOW maps/libs/locale/compatibility -> maps/libs/deprecated/localeutils -ALLOW maps/libs/road_graph -> maps/libs/deprecated/localeutils -ALLOW maps/poi/personalized_poi -> maps/libs/deprecated/localeutils -ALLOW maps/renderer -> maps/libs/deprecated/localeutils -ALLOW maps/routing/router -> maps/libs/deprecated/localeutils -ALLOW maps/routing/graph-tile-builder -> maps/libs/deprecated/localeutils -ALLOW maps/snippets/tools/masstransit -> maps/libs/deprecated/localeutils -ALLOW maps/tools/indoor -> maps/libs/deprecated/localeutils -ALLOW maps/wikimap/mapspro/services/mrc -> maps/libs/deprecated/localeutils -ALLOW netsys/tiles-vcdiff/gen-tiles -> maps/libs/deprecated/localeutils - -# Use maps/libs/geolib instead -ALLOW maps/streetview/backoffice/lib -> maps/libs/deprecated/coordtrans_pymod - -# Use std::chrono or util/datetime instead -ALLOW maps/analyzer -> maps/libs/deprecated/boost_time -ALLOW maps/routing -> maps/libs/deprecated/boost_time -ALLOW maps/tools/naviguide/lib -> maps/libs/deprecated/boost_time - -# Stop spreading deprecated stuff -ALLOW maps/libs/deprecated -> maps/libs/deprecated -DENY .* -> maps/libs/deprecated - -# maps/doc/proto holds proto interface for maps backends. Anyone can use them. -ALLOW .* -> maps/doc/proto - -# These libraries are allowed for general use -ALLOW .* -> maps/libs/chrono -ALLOW .* -> maps/libs/common -ALLOW .* -> maps/libs/csv -ALLOW .* -> maps/libs/enum_io -ALLOW .* -> maps/libs/geolib -ALLOW .* -> maps/libs/http -ALLOW .* -> maps/libs/json -ALLOW .* -> maps/libs/kdtree -ALLOW .* -> maps/libs/luamarshal -ALLOW .* -> maps/libs/nirvana -ALLOW .* -> maps/libs/local_postgres -ALLOW .* -> maps/libs/locale -ALLOW .* -> maps/libs/pgpool -ALLOW .* -> maps/libs/s3mds -ALLOW .* -> maps/libs/sql_chemistry -ALLOW .* -> maps/libs/st -ALLOW .* -> maps/libs/tile -ALLOW .* -> maps/libs/ttl_cache -ALLOW .* -> maps/pylibs/local_postgres -ALLOW .* -> maps/search/libs/uri - -# Fix current PEERDIRs and prevent any further growth -ALLOW media/road-graph-tool -> maps/libs/road_graph -ALLOW media/road-graph-tool -> maps/libs/snap -ALLOW media/road-graph-tool -> maps/libs/succinct_rtree -ALLOW netsys/tiles-vcdiff/gen-tiles -> maps/renderer -ALLOW quality/ab_testing/cofe/projects/maps -> maps/analytics -ALLOW taxi/antifraud/mult_id -> maps/libs/geolib -ALLOW taxi/graph/external/graph2/tests/mapmatcher -> maps/libs/mms -ALLOW taxi/graph/external/graph2/tests/mapmatcher -> maps/libs/mms -ALLOW taxi/graph/libs/easyview_helpers -> maps/analyzer/libs/common -ALLOW taxi/graph/libs/easyview_helpers -> maps/tools/easyview/lib/io -ALLOW taxi/graph/libs/graph -> maps/analyzer/libs/data -ALLOW taxi/graph/libs/graph -> maps/analyzer/libs/graphmatching -ALLOW taxi/graph/libs/graph -> maps/libs/common -ALLOW taxi/graph/libs/graph -> maps/libs/edge_persistent_index -ALLOW taxi/graph/libs/graph -> maps/libs/edge_persistent_index/packer/lib -ALLOW taxi/graph/libs/graph -> maps/libs/jams/graph-spatial -ALLOW taxi/graph/libs/graph -> maps/libs/jams/router -ALLOW taxi/graph/libs/graph -> maps/libs/jams/static-graph -ALLOW taxi/graph/libs/graph -> maps/libs/mms -ALLOW taxi/graph/libs/graph -> maps/libs/road_graph -ALLOW taxi/graph/libs/graph -> maps/libs/road_graph/serialization -ALLOW taxi/graph/libs/graph -> maps/libs/snap -ALLOW taxi/graph/libs/graph -> maps/libs/succinct_rtree/serialization -ALLOW taxi/graph/libs/graph -> maps/routing/common -ALLOW taxi/graph/libs/graph -> maps/routing/turn_penalties -ALLOW taxi/graph/libs/graph -> maps/tools/easyview/lib/io -ALLOW taxi/graph/libs/graph-test -> maps/libs/geolib -ALLOW taxi/graph/libs/mapmatcher -> maps/analyzer/libs/common -ALLOW taxi/graph/libs/mapmatcher -> maps/analyzer/libs/data -ALLOW taxi/graph/libs/mapmatcher -> maps/analyzer/libs/graphmatching -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/common -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/edge_persistent_index -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/jams/graph-spatial -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/jams/router -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/jams/static-graph -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/mms -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/road_graph -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/road_graph/serialization -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/snap -ALLOW taxi/graph/libs/mapmatcher -> maps/libs/succinct_rtree/serialization -ALLOW taxi/graph/libs/mapmatcher -> maps/routing/common -ALLOW taxi/graph/libs/mapmatcher -> maps/routing/turn_penalties -ALLOW taxi/graph/libs/mapmatcher -> maps/tools/easyview/lib/io -ALLOW taxi/graph/libs/mapmatcher -> maps/analyzer/libs/guidance -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/common -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/jams/graph-spatial -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/jams/router -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/jams/static-graph -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/mms -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/road_graph -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/road_graph/serialization -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/snap -ALLOW taxi/graph/libs/nearest_edges -> maps/libs/succinct_rtree/serialization -ALLOW taxi/graph/libs/nearest_edges -> maps/tools/easyview/lib/io -ALLOW taxi/graph/libs/predict -> maps/analyzer/libs/common -ALLOW taxi/graph/libs/probmatching -> maps/analyzer/libs/mapmatching -ALLOW taxi/graph/libs/routing -> maps/libs/common -ALLOW taxi/graph/libs/routing -> maps/libs/leptidea -ALLOW taxi/graph/libs/routing -> maps/libs/road_graph -ALLOW taxi/graph/libs/routing -> maps/routing/common -ALLOW taxi/graph/libs/search -> maps/analyzer/libs/common -ALLOW taxi/graph/libs/shortest_path -> maps/analyzer/libs/data -ALLOW taxi/graph/libs/shortest_path -> maps/analyzer/libs/shortest_path -ALLOW taxi/graph/libs/shortest_path -> maps/libs/common -ALLOW taxi/graph/libs/shortest_path -> maps/libs/mms -ALLOW taxi/graph/libs/shortest_path -> maps/routing/common -ALLOW taxi/graph/libs/shortest_path -> maps/routing/turn_penalties -ALLOW taxi/graph/libs/tests/graph -> maps/libs/jams/static-graph -ALLOW taxi/graph/libs/tests/mapmatcher -> maps/analyzer/libs/track_generator -ALLOW taxi/graph/libs/tests/mapmatcher -> maps/libs/mms -ALLOW taxi/graph/libs/tests/nearest_edges -> maps/libs/jams/static-graph -ALLOW taxi/graph/libs/tests/routing -> maps/libs/road_graph -ALLOW taxi/graph/tools/bench-nearest-edges -> maps/libs/jams/static-graph -ALLOW taxi/graph/tools/bench-nearest-edges -> maps/libs/road_graph -ALLOW taxi/graph/tools/find-one-way-gates -> maps/tools/easyview/lib/io -ALLOW taxi/graph/tools/generate-graph-tracks -> maps/analyzer/libs/track_generator -ALLOW taxi/graph/tools/generate-graph-tracks -> maps/libs/mms -ALLOW taxi/graph/tools/lib -> maps/libs/road_graph -ALLOW taxi/graph/tools/ -> maps/tools/easyview/pylib -ALLOW taxi/tools/dorblu/lib -> maps/libs/common -ALLOW taxi/tools/dorblu/lib -> maps/libs/deprecated/bson -ALLOW taxi/tools/dorblu/lib -> maps/libs/json -ALLOW taxi/tools/dorblu/lib -> maps/libs/log8 -ALLOW taxi/tools/dorblu/agent -> maps/libs/log8 -ALLOW taxi/tools/dorblu/aggregator -> maps/libs/log8 -ALLOW taxi/tools/dorblu/lib -> maps/libs/http -ALLOW yql/udfs/taxi/graph -> maps/libs/leptidea -ALLOW taxi/uservices/services/fts-quotateka-agent-sidecar -> maps/infra/quotateka/proto -ALLOW taxi/uservices/services/fts-quotateka-agent-sidecar -> maps/infra/quotateka/agent -ALLOW taxi/uservices/services/fts-quotateka-agent-sidecar -> maps/infra/ratelimiter2/proto -ALLOW taxi/uservices/services/fts-quotateka-agent-sidecar -> maps/infra/ratelimiter2/core - -ALLOW drive/backend/tracks/utils -> maps/libs/road_graph -ALLOW drive/backend/tracks/utils -> maps/libs/road_graph/serialization -ALLOW drive/backend/tracks/utils -> maps/libs/succinct_rtree -ALLOW drive/backend/tracks/utils -> maps/libs/succinct_rtree/serialization -ALLOW drive/backend/tracks/utils -> maps/libs/leptidea/include -ALLOW drive/backend/tracks/utils -> maps/libs/leptidea -ALLOW drive/backend/tracks/utils -> maps/analyzer/libs/graphmatching - -ALLOW maps/ -> maps/ -ALLOW sandbox/projects/maps -> maps/ -ALLOW sandbox/projects/mapsearch -> maps/ -ALLOW sandbox/projects/masstransit -> maps/ -ALLOW sprav/altay/panorama -> maps/streetview/libs -ALLOW sprav -> maps/doc/schemas/ymapsdf -ALLOW sprav -> maps/infra/yacare -ALLOW sprav -> maps/libs -ALLOW sprav -> maps/pylibs -ALLOW sprav -> maps/sprav -ALLOW yql/udfs/maps -> maps/ -ALLOW extsearch/geo/poi -> maps/renderer - -# maps_adv will be split into maps and smb -ALLOW maps_adv/ -> maps/ -ALLOW maps_adv/ -> maps_adv/ -ALLOW smb/ -> maps_adv/ -ALLOW (geoadv/|direct/) -> maps_adv/geosmb/landlord/proto -DENY .* -> maps_adv/ - -ALLOW sdg/library/python/revision_manager -> maps/wikimap/mapspro/libs/common -ALLOW sdg/library/python/revision_manager -> maps/wikimap/mapspro/libs/revision - -# Ydo libs can use some maps stuff -ALLOW ydo/libs/dispatch -> maps/libs/pbstream -ALLOW ydo/libs/dispatch -> maps/libs/kdtree - -# use of privacy_detector -ALLOW toloka -> maps/wikimap/mapspro/services/mrc/libs/ - -# allow using yacare to implement piglet sync service -ALLOW devtools/contrib -> maps/infra/yacare -ALLOW devtools/contrib -> maps/libs/log8 - -# validation nginx module can use maps mobile libraries -ALLOW nginx/modules/maps_mobile_validation -> maps/mobile/server/proxy/validation - -# Do not allow PEERDIRs into maps unless such PEERDIRs have be explicitly allowed above -DENY .* -> maps/ diff --git a/build/rules/maps/ya.make b/build/rules/maps/ya.make deleted file mode 100644 index b73cd6d73c..0000000000 --- a/build/rules/maps/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:maps-dragon-fighters) diff --git a/build/rules/market.policy b/build/rules/market.policy deleted file mode 100644 index 15a73e1d67..0000000000 --- a/build/rules/market.policy +++ /dev/null @@ -1,37 +0,0 @@ -## market/idx common policies -ALLOW market/idx/ -> market/backbone/libs/ -ALLOW market/idx/ -> market/library/ -ALLOW market/idx/ -> market/pylibrary/ -ALLOW market/idx/ -> market/idx/library/ -ALLOW market/idx/ -> market/idx/pylibrary/ -ALLOW market/idx/ -> market/idx/yatf -ALLOW market/idx/ -> market/proto -ALLOW market/idx/ -> market/.*/proto$ -ALLOW market/idx/ -> market/.*/proto/ -ALLOW market/idx/ -> market/flat -ALLOW market/idx/ -> market/.*/flat$ -ALLOW market/idx/ -> market/.*/flat/ - - -## market/idx/models policies -ALLOW market/idx/models -> market/idx/models/ - -# temporary allow to depend (FIXME: artem-ios) -ALLOW market/idx/models -> market/qpipe/qbid/ -ALLOW market/idx/models -> market/tools/fbviewer/src -ALLOW market/idx/models -> market/tools/mmapviewer/src -ALLOW market/idx/models -> market/tools/msku-uploader/yatf -ALLOW market/idx/models -> market/idx/books - -DENY market/idx/models -> market/ - - -## Datacamp policies -DENY market/idx/datacamp -> market/report/ -DENY market/idx/datacamp -> market/idx/offers/ -# disallow to peerdir datacamp inner state format -DENY (yabs|ads) -> market/idx/datacamp/proto$ - -## marketindexer policies -DENY market/idx/marketindexer -> market/report -DENY market/idx/marketindexer -> market/idx/offers diff --git a/build/rules/passport.policy b/build/rules/passport.policy deleted file mode 100644 index f4358c718b..0000000000 --- a/build/rules/passport.policy +++ /dev/null @@ -1,14 +0,0 @@ -# PERSISTENT EXCEPTION: 'ya yav' handler -ALLOW devtools/ya/handlers/yav -> passport/backend/vault/cli/yav/vault_client_cli - -# PERSISTENT EXCEPTION: PASSP-31449 -ALLOW mail/so/daemons/antifraud -> passport/infra/daemons/ysa/fingerprint - -# PERSISTENT EXCEPTION: useful for debug purposes -ALLOW junk -> passport/ - -# COMMON RULE: Self using -ALLOW passport -> passport/ - -# COMMON RULE: we need freedom for refactorings -DENY .* -> passport/ diff --git a/build/rules/py2_deprecation/readme.md b/build/rules/py2_deprecation/readme.md deleted file mode 100644 index 02af9087ef..0000000000 --- a/build/rules/py2_deprecation/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Python 2 в Аркадии deprecated
-
-Arcadia мигрирует на Python 3 и код на Python 2 [объявлен deprecated](https://clubs.at.yandex-team.ru/arcadia/23044)
-
-Чтобы не перегружать большими портянками предупреждений консоль все такие ошибки по умолчанию выводятся через этот модуль и потому фигурирут одной строкой.
-
-Чтобы увидеть все ошибки достаточно запустить вашу сборку с дополнительным флагом `-DFAIL_PY2`. Это вызовет configure-ошибки во всех стартовых Python2-only модулях:
-программах - `PY2_PROGRAM`, тестах (`PY2TEST`) и Sandbox-задачах (`SANDBOX_TASK`). `PY2_LIBRARY` на данный момент не вызывает ошибок, потому что достаточно сложно
-отследить зависимости на них из разрешённых `PY23_LIBRARY` и `PY23_TEST`.
\ No newline at end of file diff --git a/build/rules/py2_deprecation/ya.make b/build/rules/py2_deprecation/ya.make deleted file mode 100644 index a7f5852ac9..0000000000 --- a/build/rules/py2_deprecation/ya.make +++ /dev/null @@ -1,6 +0,0 @@ -OWNER(g:ymake) -RESOURCES_LIBRARY() - -MESSAGE(WARNING You are using deprecated Python2-only dependencies in your code. Please consider rewriting it to Python 3. To list all such errors use `ya make -DFAIL_PY2` or `ya make -ttt -DFAIL_PY2` if you see this error during tests.) - -END() diff --git a/build/rules/taxi.policy b/build/rules/taxi.policy deleted file mode 100644 index 76cc083ef2..0000000000 --- a/build/rules/taxi.policy +++ /dev/null @@ -1,3 +0,0 @@ -# userver-specific libc overrides, pending removal -ALLOW taxi/uservices/userver -> contrib/libs/libc_userver_workarounds -DENY .* -> contrib/libs/libc_userver_workarounds diff --git a/build/rules/taxi_backend_py3/taxi_backend_py3.isolated_projects b/build/rules/taxi_backend_py3/taxi_backend_py3.isolated_projects deleted file mode 100644 index 72b1da6b5e..0000000000 --- a/build/rules/taxi_backend_py3/taxi_backend_py3.isolated_projects +++ /dev/null @@ -1,361 +0,0 @@ -# THIS FILE IS AUTOGENERATED, DON'T EDIT! - -taxi/backend-py3/services/abt -taxi/backend-py3/services/achievements-py3 -taxi/backend-py3/services/admin-orders -taxi/backend-py3/services/admin-pipeline -taxi/backend-py3/services/admin-users-info -taxi/backend-py3/services/agent -taxi/backend-py3/services/agent-indicators -taxi/backend-py3/services/archiving -taxi/backend-py3/services/archiving-admin -taxi/backend-py3/services/atlas-backend -taxi/backend-py3/services/atlas-etl -taxi/backend-py3/services/audit -taxi/backend-py3/services/billing-bank-orders -taxi/backend-py3/services/billing-fin-payouts -taxi/backend-py3/services/billing-functions -taxi/backend-py3/services/billing-marketplace-api -taxi/backend-py3/services/billing-payment-adapter -taxi/backend-py3/services/blue-collars -taxi/backend-py3/services/business-alerts -taxi/backend-py3/services/callcenter-exams -taxi/backend-py3/services/callcenter-operators -taxi/backend-py3/services/cargo-reports -taxi/backend-py3/services/cargo-tasks -taxi/backend-py3/services/cargo-waybill -taxi/backend-py3/services/cars-catalog -taxi/backend-py3/services/cashback -taxi/backend-py3/services/cctv-ml-yf -taxi/backend-py3/services/chatterbox -taxi/backend-py3/services/chatterbox-admin -taxi/backend-py3/services/chatterbox-grpc -taxi/backend-py3/services/classifier-worker -taxi/backend-py3/services/client-product-automatization -taxi/backend-py3/services/clownductor -taxi/backend-py3/services/clowny-alert-manager -taxi/backend-py3/services/clowny-balancer -taxi/backend-py3/services/clowny-gideon -taxi/backend-py3/services/clowny-perforator -taxi/backend-py3/services/clowny-quotas -taxi/backend-py3/services/clowny-roles -taxi/backend-py3/services/clowny-search -taxi/backend-py3/services/configs-admin -taxi/backend-py3/services/contractor-emulator -taxi/backend-py3/services/contractor-instant-payouts-worker -taxi/backend-py3/services/contractor-merch-integration-api -taxi/backend-py3/services/contractor-merch-payments-bot -taxi/backend-py3/services/contractor-permits -taxi/backend-py3/services/contractor-stories -taxi/backend-py3/services/corp-clients -taxi/backend-py3/services/corp-edo -taxi/backend-py3/services/corp-notices -taxi/backend-py3/services/corp-orders -taxi/backend-py3/services/corp-overspending -taxi/backend-py3/services/corp-reports -taxi/backend-py3/services/corp-requests -taxi/backend-py3/services/corp-scoring -taxi/backend-py3/services/corp-support-chat -taxi/backend-py3/services/corp-tariffs -taxi/backend-py3/services/corp-tariffs-admin -taxi/backend-py3/services/corp-users -taxi/backend-py3/services/crm-admin -taxi/backend-py3/services/crm-efficiency -taxi/backend-py3/services/crm-hub -taxi/backend-py3/services/crons -taxi/backend-py3/services/dashboards -taxi/backend-py3/services/davos-landing-proxy -taxi/backend-py3/services/delivery -taxi/backend-py3/services/delivery-grafana-ext -taxi/backend-py3/services/discounts-operation-calculations -taxi/backend-py3/services/dispatch-settings -taxi/backend-py3/services/dldmitry-test-service -taxi/backend-py3/services/dmp-admin -taxi/backend-py3/services/document-templator -taxi/backend-py3/services/doers-potok -taxi/backend-py3/services/doers-stories -taxi/backend-py3/services/dorblu-backoffice -taxi/backend-py3/services/drive-integration-worker -taxi/backend-py3/services/driver-activity-export -taxi/backend-py3/services/driver-event-detector -taxi/backend-py3/services/driver-lessons -taxi/backend-py3/services/driver-promocodes-worker -taxi/backend-py3/services/driver-ratings-storage -taxi/backend-py3/services/driver-referrals -taxi/backend-py3/services/duty -taxi/backend-py3/services/duty-product-planning -taxi/backend-py3/services/eats-api-coverage-test-py3 -taxi/backend-py3/services/eats-authorize-personal-manager -taxi/backend-py3/services/eats-automation-places -taxi/backend-py3/services/eats-automation-statistics -taxi/backend-py3/services/eats-catalog-admin -taxi/backend-py3/services/eats-cheque-pos-gate -taxi/backend-py3/services/eats-cheque-restaurants -taxi/backend-py3/services/eats-corp-orders -taxi/backend-py3/services/eats-cost-centers -taxi/backend-py3/services/eats-courier-scoring -taxi/backend-py3/services/eats-duty -taxi/backend-py3/services/eats-eater-meta -taxi/backend-py3/services/eats-feedback-tg-bot -taxi/backend-py3/services/eats-hiring-api -taxi/backend-py3/services/eats-integration-burger-king -taxi/backend-py3/services/eats-integration-dc-cms-parser -taxi/backend-py3/services/eats-integration-dc-grocery-parser -taxi/backend-py3/services/eats-integration-dc-restaurant-parser -taxi/backend-py3/services/eats-integration-kfc -taxi/backend-py3/services/eats-integration-loyalty -taxi/backend-py3/services/eats-integration-mcdonalds -taxi/backend-py3/services/eats-integration-offline-orders -taxi/backend-py3/services/eats-integration-proxy -taxi/backend-py3/services/eats-integration-restaurant-parser -taxi/backend-py3/services/eats-integration-shooter -taxi/backend-py3/services/eats-integration-vendor-management -taxi/backend-py3/services/eats-integration-workers -taxi/backend-py3/services/eats-menu-processor -taxi/backend-py3/services/eats-order-integration -taxi/backend-py3/services/eats-performer-hiring-metrics -taxi/backend-py3/services/eats-picker-payment -taxi/backend-py3/services/eats-place-groups-replica -taxi/backend-py3/services/eats-report-sender -taxi/backend-py3/services/eats-restapp-tg-bot -taxi/backend-py3/services/eats-retail-auchan-parser -taxi/backend-py3/services/eats-retail-globus-parser -taxi/backend-py3/services/eats-retail-magnit-parser -taxi/backend-py3/services/eats-retail-retail-parser -taxi/backend-py3/services/eats-retail-x5-parser -taxi/backend-py3/services/eats-startrek-notifications -taxi/backend-py3/services/eats-support-misc -taxi/backend-py3/services/eats-support-telephony -taxi/backend-py3/services/eats-testing-simplifier-responser -taxi/backend-py3/services/eats-tips-admin -taxi/backend-py3/services/eats-tips-partners -taxi/backend-py3/services/eats-tips-payments -taxi/backend-py3/services/eats-tips-withdrawal -taxi/backend-py3/services/eda-qc-photo -taxi/backend-py3/services/eda-region-points -taxi/backend-py3/services/envoy-exp-bravo -taxi/backend-py3/services/envoy-rtc-config -taxi/backend-py3/services/eslogadminpy3 -taxi/backend-py3/services/eventus-orchestrator -taxi/backend-py3/services/example-render-sql -taxi/backend-py3/services/example-service -taxi/backend-py3/services/external-admin-proxy -taxi/backend-py3/services/fake-taxi -taxi/backend-py3/services/family -taxi/backend-py3/services/feeds-admin -taxi/backend-py3/services/fleet-dashboard -taxi/backend-py3/services/fleet-drivers-scoring -taxi/backend-py3/services/fleet-drivers-scoring-reports -taxi/backend-py3/services/fleet-feedback -taxi/backend-py3/services/fleet-fines -taxi/backend-py3/services/fleet-notifications-telegram-bot -taxi/backend-py3/services/fleet-parks-worker -taxi/backend-py3/services/fleet-rent -taxi/backend-py3/services/fleet-reports -taxi/backend-py3/services/fleet-reports-yt -taxi/backend-py3/services/fleet-support-chat -taxi/backend-py3/services/flot -taxi/backend-py3/services/flot-external-api -taxi/backend-py3/services/form-builder -taxi/backend-py3/services/fts-gateway -taxi/backend-py3/services/geotracks-admin -taxi/backend-py3/services/gpdb-manager-api -taxi/backend-py3/services/grabber -taxi/backend-py3/services/grocery-salaries -taxi/backend-py3/services/grocery-tasks -taxi/backend-py3/services/hackathon2020-client-product-py3 -taxi/backend-py3/services/hiring-api -taxi/backend-py3/services/hiring-billing -taxi/backend-py3/services/hiring-candidates -taxi/backend-py3/services/hiring-crm-adapter -taxi/backend-py3/services/hiring-data-markup -taxi/backend-py3/services/hiring-forms -taxi/backend-py3/services/hiring-harvester -taxi/backend-py3/services/hiring-mocks -taxi/backend-py3/services/hiring-partners-app -taxi/backend-py3/services/hiring-plugins-tests -taxi/backend-py3/services/hiring-rate-accounting -taxi/backend-py3/services/hiring-selfreg-forms -taxi/backend-py3/services/hiring-sf-events -taxi/backend-py3/services/hiring-sf-loader -taxi/backend-py3/services/hiring-sf-personal-proxy -taxi/backend-py3/services/hiring-st -taxi/backend-py3/services/hiring-tariffs -taxi/backend-py3/services/hiring-task-creator -taxi/backend-py3/services/hiring-taxiparks-gambling -taxi/backend-py3/services/hiring-telephony-oktell-callback -taxi/backend-py3/services/hiring-trigger-jobs -taxi/backend-py3/services/hiring-trigger-zend -taxi/backend-py3/services/hiring-utils -taxi/backend-py3/services/ie-kz-profiles -taxi/backend-py3/services/iiko-integration -taxi/backend-py3/services/infra-dev-communications -taxi/backend-py3/services/infra-drills -taxi/backend-py3/services/infra-events -taxi/backend-py3/services/insurance -taxi/backend-py3/services/internal-b2b-automations -taxi/backend-py3/services/internal-b2b-badge -taxi/backend-py3/services/internal-b2b-bots -taxi/backend-py3/services/jaeger -taxi/backend-py3/services/jaeger-collector -taxi/backend-py3/services/kisart-id-requests -taxi/backend-py3/services/leaderboard -taxi/backend-py3/services/location-guide -taxi/backend-py3/services/logs-errors-filters -taxi/backend-py3/services/logs-from-yt -taxi/backend-py3/services/lookup-configs -taxi/backend-py3/services/macadmin -taxi/backend-py3/services/market-checkouter-scripts -taxi/backend-py3/services/market-ux-diag -taxi/backend-py3/services/mayak-inspector -taxi/backend-py3/services/mds-dump-uploader -taxi/backend-py3/services/metadata-storage-tasks -taxi/backend-py3/services/mia -taxi/backend-py3/services/ml-cron -taxi/backend-py3/services/ml-resources -taxi/backend-py3/services/mpa-harvester -taxi/backend-py3/services/operation-calculations -taxi/backend-py3/services/operation-tracker-bot -taxi/backend-py3/services/order-notify -taxi/backend-py3/services/order-route-sharing -taxi/backend-py3/services/orderhistory -taxi/backend-py3/services/papersplease -taxi/backend-py3/services/parks-activation-tasks -taxi/backend-py3/services/parks-balances-info-notifier-bot -taxi/backend-py3/services/parks-certifications-worker -taxi/backend-py3/services/partner-integrations -taxi/backend-py3/services/partner-mailing -taxi/backend-py3/services/partner-offers -taxi/backend-py3/services/passenger-profile -taxi/backend-py3/services/patterns -taxi/backend-py3/services/payments-eda -taxi/backend-py3/services/persey-payments -taxi/backend-py3/services/personal-goals -taxi/backend-py3/services/personal-py3 -taxi/backend-py3/services/piecework-calculation -taxi/backend-py3/services/preorder -taxi/backend-py3/services/pricing-modifications-validator -taxi/backend-py3/services/pro-profiles-removal -taxi/backend-py3/services/pro-test-order-maker -taxi/backend-py3/services/process-automation-salesforce-esb -taxi/backend-py3/services/processing-antifraud -taxi/backend-py3/services/promotions -taxi/backend-py3/services/qc-invites -taxi/backend-py3/services/quality-control -taxi/backend-py3/services/random-bonus -taxi/backend-py3/services/replication -taxi/backend-py3/services/requirements -taxi/backend-py3/services/rida -taxi/backend-py3/services/rider-metrics -taxi/backend-py3/services/rtc-baseimage -taxi/backend-py3/services/rtc-stub -taxi/backend-py3/services/sber-int-api -taxi/backend-py3/services/scooter-accumulator-bot -taxi/backend-py3/services/scout -taxi/backend-py3/services/scripts -taxi/backend-py3/services/segment-splitter -taxi/backend-py3/services/selfemployed -taxi/backend-py3/services/selfemployed-fns-proxy -taxi/backend-py3/services/selfemployed-fns-receipts -taxi/backend-py3/services/sf-data-load -taxi/backend-py3/services/signal-device-api-worker -taxi/backend-py3/services/sms-intents-admin -taxi/backend-py3/services/sox-test-service -taxi/backend-py3/services/startrack-reports -taxi/backend-py3/services/sticker -taxi/backend-py3/services/stq-agent-py3 -taxi/backend-py3/services/support-info -taxi/backend-py3/services/support-metrics -taxi/backend-py3/services/support-tags -taxi/backend-py3/services/supportai -taxi/backend-py3/services/supportai-actions -taxi/backend-py3/services/supportai-api -taxi/backend-py3/services/supportai-calls -taxi/backend-py3/services/supportai-context -taxi/backend-py3/services/supportai-learn -taxi/backend-py3/services/supportai-license-server -taxi/backend-py3/services/supportai-models -taxi/backend-py3/services/supportai-models-proxy -taxi/backend-py3/services/supportai-projects -taxi/backend-py3/services/supportai-reference-phrases -taxi/backend-py3/services/supportai-statistics -taxi/backend-py3/services/supportai-tasks -taxi/backend-py3/services/supportai-telephony-integration -taxi/backend-py3/services/tariffs-calculations -taxi/backend-py3/services/task-processor -taxi/backend-py3/services/taxi-accelerometer-metrics -taxi/backend-py3/services/taxi-adjust -taxi/backend-py3/services/taxi-admin-images -taxi/backend-py3/services/taxi-admin-personal -taxi/backend-py3/services/taxi-admin-surger -taxi/backend-py3/services/taxi-agglomerations -taxi/backend-py3/services/taxi-antifraud -taxi/backend-py3/services/taxi-api-admin -taxi/backend-py3/services/taxi-approvals -taxi/backend-py3/services/taxi-billing-accounts -taxi/backend-py3/services/taxi-billing-audit -taxi/backend-py3/services/taxi-billing-buffer-proxy -taxi/backend-py3/services/taxi-billing-calculators -taxi/backend-py3/services/taxi-billing-docs -taxi/backend-py3/services/taxi-billing-limits -taxi/backend-py3/services/taxi-billing-orders -taxi/backend-py3/services/taxi-billing-replication -taxi/backend-py3/services/taxi-billing-reports -taxi/backend-py3/services/taxi-billing-subventions -taxi/backend-py3/services/taxi-billing-tlog -taxi/backend-py3/services/taxi-config-schemas -taxi/backend-py3/services/taxi-corp -taxi/backend-py3/services/taxi-corp-admin -taxi/backend-py3/services/taxi-corp-announcements -taxi/backend-py3/services/taxi-corp-integration-api -taxi/backend-py3/services/taxi-coupons-py3 -taxi/backend-py3/services/taxi-dispatch-logs-admin -taxi/backend-py3/services/taxi-driver-metrics -taxi/backend-py3/services/taxi-driver-photos -taxi/backend-py3/services/taxi-driver-support -taxi/backend-py3/services/taxi-drivers -taxi/backend-py3/services/taxi-fleet -taxi/backend-py3/services/taxi-ivr-api -taxi/backend-py3/services/taxi-loyalty-py3 -taxi/backend-py3/services/taxi-monitoring -taxi/backend-py3/services/taxi-music-auth -taxi/backend-py3/services/taxi-order-performer-service -taxi/backend-py3/services/taxi-partner-contracts -taxi/backend-py3/services/taxi-personal-wallet -taxi/backend-py3/services/taxi-plotva-ml -taxi/backend-py3/services/taxi-protocol -taxi/backend-py3/services/taxi-qc-exams -taxi/backend-py3/services/taxi-qc-exams-admin -taxi/backend-py3/services/taxi-receipt-fetching -taxi/backend-py3/services/taxi-render-template -taxi/backend-py3/services/taxi-safety-center -taxi/backend-py3/services/taxi-selfreg -taxi/backend-py3/services/taxi-shared-payments -taxi/backend-py3/services/taxi-sm-monitor -taxi/backend-py3/services/taxi-stories -taxi/backend-py3/services/taxi-strongbox -taxi/backend-py3/services/taxi-support-chat -taxi/backend-py3/services/taxi-support-meta -taxi/backend-py3/services/taxi-takeout -taxi/backend-py3/services/taxi-tariffs -taxi/backend-py3/services/taxi-teamcity-monitoring -taxi/backend-py3/services/taxi-territories -taxi/backend-py3/services/taxi-yagr-py3 -taxi/backend-py3/services/taximeter-reports -taxi/backend-py3/services/telegram-cpp-quiz -taxi/backend-py3/services/test-service-with-db -taxi/backend-py3/services/testcodegenv3 -taxi/backend-py3/services/timings-config -taxi/backend-py3/services/toll-roads -taxi/backend-py3/services/totalbox -taxi/backend-py3/services/transactions -taxi/backend-py3/services/vgw-api-tasks -taxi/backend-py3/services/vmctl-web -taxi/backend-py3/services/welcome-market -taxi/backend-py3/services/wind-yango-website -taxi/backend-py3/services/workforce-management -taxi/backend-py3/services/workforce-management-bot -taxi/backend-py3/services/workforce-metrics -taxi/backend-py3/services/yacrm-data-loader -taxi/backend-py3/services/yanformator-bot -taxi/backend-py3/services/yql-tasks diff --git a/build/rules/taxi_backend_py3/ya.make b/build/rules/taxi_backend_py3/ya.make deleted file mode 100644 index 883d47d5a2..0000000000 --- a/build/rules/taxi_backend_py3/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:taxi-automation-codegen) diff --git a/build/rules/taxi_uservices/taxi_uservices.isolated_projects b/build/rules/taxi_uservices/taxi_uservices.isolated_projects deleted file mode 100644 index ae67645675..0000000000 --- a/build/rules/taxi_uservices/taxi_uservices.isolated_projects +++ /dev/null @@ -1,795 +0,0 @@ -# THIS FILE IS AUTOGENERATED, DON'T EDIT! - -taxi/uservices/services/access-control -taxi/uservices/services/achievements -taxi/uservices/services/alt -taxi/uservices/services/alt-offer-discount -taxi/uservices/services/antifraud-data-manager -taxi/uservices/services/antileak -taxi/uservices/services/api-cache -taxi/uservices/services/api-over-data-metrics -taxi/uservices/services/api-proxy -taxi/uservices/services/arcadia-userver-test -taxi/uservices/services/argus-authproxy -taxi/uservices/services/atlas-drivers -taxi/uservices/services/atlas-events-producer -taxi/uservices/services/autoaccept -taxi/uservices/services/avalon-data-processor -taxi/uservices/services/avalon-proxy -taxi/uservices/services/balance-replica -taxi/uservices/services/bank-access-control -taxi/uservices/services/bank-aft-adapter -taxi/uservices/services/bank-agreements -taxi/uservices/services/bank-applications -taxi/uservices/services/bank-authorization -taxi/uservices/services/bank-authproxy -taxi/uservices/services/bank-avatars -taxi/uservices/services/bank-card -taxi/uservices/services/bank-card-pcidss -taxi/uservices/services/bank-cashback-calculator -taxi/uservices/services/bank-cashback-processing -taxi/uservices/services/bank-client-experiments -taxi/uservices/services/bank-comms-renderer -taxi/uservices/services/bank-comms-solar -taxi/uservices/services/bank-communications -taxi/uservices/services/bank-forms -taxi/uservices/services/bank-h2h -taxi/uservices/services/bank-h2h-authproxy -taxi/uservices/services/bank-idm -taxi/uservices/services/bank-kwargs -taxi/uservices/services/bank-notifications -taxi/uservices/services/bank-settings -taxi/uservices/services/bank-tokenizer-resolver -taxi/uservices/services/bank-topup -taxi/uservices/services/bank-transfers -taxi/uservices/services/bank-userinfo -taxi/uservices/services/bank-wallet -taxi/uservices/services/banks-integration-api -taxi/uservices/services/billing-admin -taxi/uservices/services/billing-commissions -taxi/uservices/services/billing-payment-admin -taxi/uservices/services/billing-reports-x -taxi/uservices/services/billing-settings -taxi/uservices/services/billing-subventions-x -taxi/uservices/services/billing-time-events -taxi/uservices/services/billing-wallet -taxi/uservices/services/biometry-etalons -taxi/uservices/services/blender -taxi/uservices/services/blocklist -taxi/uservices/services/bullseye -taxi/uservices/services/busy-drivers -taxi/uservices/services/callcenter-qa -taxi/uservices/services/callcenter-queues -taxi/uservices/services/callcenter-reg -taxi/uservices/services/callcenter-staff -taxi/uservices/services/callcenter-stats -taxi/uservices/services/callcenter-support-contractors -taxi/uservices/services/candidate-meta -taxi/uservices/services/candidates -taxi/uservices/services/card-antifraud -taxi/uservices/services/card-filter -taxi/uservices/services/cardstorage -taxi/uservices/services/cargo-api -taxi/uservices/services/cargo-c2c -taxi/uservices/services/cargo-claims -taxi/uservices/services/cargo-claims-events -taxi/uservices/services/cargo-complex-search -taxi/uservices/services/cargo-corp -taxi/uservices/services/cargo-corp-reports -taxi/uservices/services/cargo-corrector -taxi/uservices/services/cargo-crm -taxi/uservices/services/cargo-dispatch -taxi/uservices/services/cargo-eta -taxi/uservices/services/cargo-ext-authproxy -taxi/uservices/services/cargo-finance -taxi/uservices/services/cargo-fiscal -taxi/uservices/services/cargo-fixer -taxi/uservices/services/cargo-ivr-support -taxi/uservices/services/cargo-matcher -taxi/uservices/services/cargo-misc -taxi/uservices/services/cargo-order-core -taxi/uservices/services/cargo-orderhistory -taxi/uservices/services/cargo-orders -taxi/uservices/services/cargo-payments -taxi/uservices/services/cargo-performer-activity -taxi/uservices/services/cargo-performer-fines -taxi/uservices/services/cargo-performer-payments -taxi/uservices/services/cargo-photofixation -taxi/uservices/services/cargo-pricing -taxi/uservices/services/cargo-pro-api -taxi/uservices/services/cargo-robots -taxi/uservices/services/cargo-sdd -taxi/uservices/services/cargo-sf -taxi/uservices/services/cargo-statistics -taxi/uservices/services/cargo-support -taxi/uservices/services/cargo-tariffs -taxi/uservices/services/cargo-toolbar -taxi/uservices/services/cargo-trucks -taxi/uservices/services/cashback-annihilator -taxi/uservices/services/cashback-authproxy -taxi/uservices/services/cashback-int-api -taxi/uservices/services/cashback-levels -taxi/uservices/services/cashback-rates -taxi/uservices/services/cashbox-integration -taxi/uservices/services/cc-authproxy -taxi/uservices/services/cc-sf-cti -taxi/uservices/services/cctv-admin -taxi/uservices/services/cctv-processor-api -taxi/uservices/services/cctv-workers -taxi/uservices/services/classifier -taxi/uservices/services/client-events -taxi/uservices/services/client-routing-sidecar -taxi/uservices/services/combo-contractors -taxi/uservices/services/combo-matcher -taxi/uservices/services/combo-passengers -taxi/uservices/services/comms-email-adapter -taxi/uservices/services/comms-push-adapter -taxi/uservices/services/comms-router -taxi/uservices/services/comms-sms-adapter -taxi/uservices/services/communication-scenario -taxi/uservices/services/communications-audience -taxi/uservices/services/configs-sidecar -taxi/uservices/services/contractor-balances -taxi/uservices/services/contractor-bank-view -taxi/uservices/services/contractor-events-producer -taxi/uservices/services/contractor-fts-receiver -taxi/uservices/services/contractor-instant-payouts -taxi/uservices/services/contractor-mentorship -taxi/uservices/services/contractor-merch -taxi/uservices/services/contractor-merch-payments -taxi/uservices/services/contractor-options -taxi/uservices/services/contractor-order-history -taxi/uservices/services/contractor-order-setcar -taxi/uservices/services/contractor-orders-multioffer -taxi/uservices/services/contractor-orders-polling -taxi/uservices/services/contractor-orders-street-hail -taxi/uservices/services/contractor-payout-mode -taxi/uservices/services/contractor-profiles-manager -taxi/uservices/services/contractor-random-bonus -taxi/uservices/services/contractor-state -taxi/uservices/services/contractor-statistics-view -taxi/uservices/services/contractor-status-history -taxi/uservices/services/contractor-transport -taxi/uservices/services/contractor-triggers -taxi/uservices/services/coord-control -taxi/uservices/services/corp-billing -taxi/uservices/services/corp-billing-events -taxi/uservices/services/corp-billing-orders -taxi/uservices/services/corp-combo-orders -taxi/uservices/services/corp-discounts -taxi/uservices/services/corp-managers -taxi/uservices/services/corp-suggest -taxi/uservices/services/coupons -taxi/uservices/services/crm-policy -taxi/uservices/services/crm-scheduler -taxi/uservices/services/crowd-integration -taxi/uservices/services/current-prices-calculator -taxi/uservices/services/debt-collector -taxi/uservices/services/debts -taxi/uservices/services/delayed -taxi/uservices/services/delivery-address -taxi/uservices/services/delivery-callbacks -taxi/uservices/services/delivery-corrector -taxi/uservices/services/delivery-diagnostics -taxi/uservices/services/delivery-oracle -taxi/uservices/services/delivery-realtime-stats -taxi/uservices/services/delivery-takeout -taxi/uservices/services/deptrans-driver-status -taxi/uservices/services/device-notify -taxi/uservices/services/discounts -taxi/uservices/services/discounts-admin -taxi/uservices/services/dispatch-airport -taxi/uservices/services/dispatch-airport-partner-protocol -taxi/uservices/services/dispatch-airport-view -taxi/uservices/services/dispatch-buffer -taxi/uservices/services/dispatch-check-in -taxi/uservices/services/dispatcher-access-control -taxi/uservices/services/distlocks -taxi/uservices/services/documents -taxi/uservices/services/dorblu -taxi/uservices/services/dorblu-agent -taxi/uservices/services/drive-integration -taxi/uservices/services/driver-authorizer -taxi/uservices/services/driver-authproxy -taxi/uservices/services/driver-categories-api -taxi/uservices/services/driver-cctv-map -taxi/uservices/services/driver-communications -taxi/uservices/services/driver-diagnostics -taxi/uservices/services/driver-eta -taxi/uservices/services/driver-eta-responder -taxi/uservices/services/driver-feedback -taxi/uservices/services/driver-fix -taxi/uservices/services/driver-freeze -taxi/uservices/services/driver-launch -taxi/uservices/services/driver-login -taxi/uservices/services/driver-map -taxi/uservices/services/driver-metrics-storage -taxi/uservices/services/driver-mode-index -taxi/uservices/services/driver-mode-subscription -taxi/uservices/services/driver-money -taxi/uservices/services/driver-order-messages -taxi/uservices/services/driver-order-misc -taxi/uservices/services/driver-orders -taxi/uservices/services/driver-orders-app-api -taxi/uservices/services/driver-orders-builder -taxi/uservices/services/driver-orders-metrics -taxi/uservices/services/driver-payment-types -taxi/uservices/services/driver-priority -taxi/uservices/services/driver-profile-view -taxi/uservices/services/driver-profiles -taxi/uservices/services/driver-promocodes -taxi/uservices/services/driver-ratings -taxi/uservices/services/driver-regulatory-export -taxi/uservices/services/driver-route-adjuster -taxi/uservices/services/driver-route-cacher -taxi/uservices/services/driver-route-controller -taxi/uservices/services/driver-route-responder -taxi/uservices/services/driver-route-watcher -taxi/uservices/services/driver-scoring -taxi/uservices/services/driver-status -taxi/uservices/services/driver-supply-hours -taxi/uservices/services/driver-tags -taxi/uservices/services/driver-tutorials -taxi/uservices/services/driver-ui-profile -taxi/uservices/services/driver-wall -taxi/uservices/services/driver-weariness -taxi/uservices/services/driver-work-modes -taxi/uservices/services/driver-work-rules -taxi/uservices/services/eater-authorizer -taxi/uservices/services/eats-account-delivery -taxi/uservices/services/eats-adverts -taxi/uservices/services/eats-agreements -taxi/uservices/services/eats-api-coverage-test -taxi/uservices/services/eats-avaproxy -taxi/uservices/services/eats-bike-management -taxi/uservices/services/eats-bike-telematics -taxi/uservices/services/eats-billing-processor -taxi/uservices/services/eats-brand-fusion -taxi/uservices/services/eats-brands -taxi/uservices/services/eats-business-rules -taxi/uservices/services/eats-cargo-orders -taxi/uservices/services/eats-cart -taxi/uservices/services/eats-cash-availability -taxi/uservices/services/eats-catalog -taxi/uservices/services/eats-catalog-storage -taxi/uservices/services/eats-chatterbox-meta -taxi/uservices/services/eats-checkout-base -taxi/uservices/services/eats-checkout-offers -taxi/uservices/services/eats-collections -taxi/uservices/services/eats-communications -taxi/uservices/services/eats-compensations-matrix -taxi/uservices/services/eats-complaint -taxi/uservices/services/eats-countries -taxi/uservices/services/eats-coupons -taxi/uservices/services/eats-courier-shifts-preferences -taxi/uservices/services/eats-couriers-equipment -taxi/uservices/services/eats-couriers-tips -taxi/uservices/services/eats-customer-slots -taxi/uservices/services/eats-data-mappings -taxi/uservices/services/eats-dc-api -taxi/uservices/services/eats-dc-authproxy -taxi/uservices/services/eats-dc-billing -taxi/uservices/services/eats-dc-picker-integration -taxi/uservices/services/eats-dc-plus -taxi/uservices/services/eats-dc-transfer-cards -taxi/uservices/services/eats-debt-user-scoring -taxi/uservices/services/eats-discounts -taxi/uservices/services/eats-discounts-collector -taxi/uservices/services/eats-discounts-statistics -taxi/uservices/services/eats-eater-activity -taxi/uservices/services/eats-eaters -taxi/uservices/services/eats-enrollment-in-hub -taxi/uservices/services/eats-eta -taxi/uservices/services/eats-feedback -taxi/uservices/services/eats-findoc-tools -taxi/uservices/services/eats-full-text-search -taxi/uservices/services/eats-full-text-search-indexer -taxi/uservices/services/eats-jwt-tokens -taxi/uservices/services/eats-launch -taxi/uservices/services/eats-layout-constructor -taxi/uservices/services/eats-logistics-performer-payouts -taxi/uservices/services/eats-logistics-proactive-support -taxi/uservices/services/eats-messenger -taxi/uservices/services/eats-moderation -taxi/uservices/services/eats-nomenclature -taxi/uservices/services/eats-nomenclature-collector -taxi/uservices/services/eats-nomenclature-viewer -taxi/uservices/services/eats-notifications -taxi/uservices/services/eats-offers -taxi/uservices/services/eats-order-finalizer -taxi/uservices/services/eats-order-revision -taxi/uservices/services/eats-order-send -taxi/uservices/services/eats-order-stats -taxi/uservices/services/eats-orders-billing -taxi/uservices/services/eats-orders-cancellation -taxi/uservices/services/eats-orders-info -taxi/uservices/services/eats-orders-linking -taxi/uservices/services/eats-orders-tracking -taxi/uservices/services/eats-ordershistory -taxi/uservices/services/eats-partners -taxi/uservices/services/eats-payment-methods-availability -taxi/uservices/services/eats-payments -taxi/uservices/services/eats-payments-billing -taxi/uservices/services/eats-payouts-calculation -taxi/uservices/services/eats-payouts-events -taxi/uservices/services/eats-payouts-notifications -taxi/uservices/services/eats-performer-profiles -taxi/uservices/services/eats-performer-shifts -taxi/uservices/services/eats-performer-statistics -taxi/uservices/services/eats-performer-subventions -taxi/uservices/services/eats-performer-support -taxi/uservices/services/eats-picker-dispatch -taxi/uservices/services/eats-picker-item-categories -taxi/uservices/services/eats-picker-orders-postprocessing -taxi/uservices/services/eats-picker-payments -taxi/uservices/services/eats-picker-racks -taxi/uservices/services/eats-picker-statistics -taxi/uservices/services/eats-picker-timers -taxi/uservices/services/eats-picking-time-estimator -taxi/uservices/services/eats-pickup-map -taxi/uservices/services/eats-pics -taxi/uservices/services/eats-place-onboarding -taxi/uservices/services/eats-place-rating -taxi/uservices/services/eats-place-subscriptions -taxi/uservices/services/eats-places-description -taxi/uservices/services/eats-plus -taxi/uservices/services/eats-plus-game -taxi/uservices/services/eats-pro-orders-bdu -taxi/uservices/services/eats-proactive-support -taxi/uservices/services/eats-products -taxi/uservices/services/eats-receipts -taxi/uservices/services/eats-repeat-order -taxi/uservices/services/eats-report-storage -taxi/uservices/services/eats-rest-menu-storage -taxi/uservices/services/eats-restapp-authorizer -taxi/uservices/services/eats-restapp-authproxy -taxi/uservices/services/eats-restapp-communications -taxi/uservices/services/eats-restapp-marketing -taxi/uservices/services/eats-restapp-menu -taxi/uservices/services/eats-restapp-orders -taxi/uservices/services/eats-restapp-places -taxi/uservices/services/eats-restapp-promo -taxi/uservices/services/eats-restapp-support-chat -taxi/uservices/services/eats-restaurant-menu -taxi/uservices/services/eats-retail-business-alerts -taxi/uservices/services/eats-retail-catalog -taxi/uservices/services/eats-retail-categories -taxi/uservices/services/eats-retail-market-integration -taxi/uservices/services/eats-retail-order-history -taxi/uservices/services/eats-retail-pickerapp-proxy -taxi/uservices/services/eats-retail-products-autodisable -taxi/uservices/services/eats-retail-seo -taxi/uservices/services/eats-retail-suggest -taxi/uservices/services/eats-retail-vseapteki-proxy -taxi/uservices/services/eats-robocall -taxi/uservices/services/eats-simple-payments -taxi/uservices/services/eats-smart-prices -taxi/uservices/services/eats-special-communications -taxi/uservices/services/eats-stub-tinkoff -taxi/uservices/services/eats-supply-proxy -taxi/uservices/services/eats-support-order-info -taxi/uservices/services/eats-surge-notify -taxi/uservices/services/eats-surge-planner -taxi/uservices/services/eats-surge-resolver -taxi/uservices/services/eats-tips-authproxy -taxi/uservices/services/eats-ugc-translator -taxi/uservices/services/eats-upsell -taxi/uservices/services/eats-user-reactions -taxi/uservices/services/eats-uz-ofd-integration -taxi/uservices/services/eda-antifraud -taxi/uservices/services/eda-delivery-price -taxi/uservices/services/eda-dynamic-delivery-fee -taxi/uservices/services/eda-shortcuts -taxi/uservices/services/eda-surge-calculator -taxi/uservices/services/edc-app-api -taxi/uservices/services/edc-app-checkups -taxi/uservices/services/edc-app-organizations -taxi/uservices/services/edc-app-user-profiles -taxi/uservices/services/edc-app-vehicles -taxi/uservices/services/edc-authproxy -taxi/uservices/services/effrat-employees -taxi/uservices/services/envoy-exp-alpha -taxi/uservices/services/envoy-exp-charlie -taxi/uservices/services/envoy-exp-delta -taxi/uservices/services/envoy-xds-agent -taxi/uservices/services/esignature-issuer -taxi/uservices/services/eta-autoreorder -taxi/uservices/services/eta-responder -taxi/uservices/services/eulas -taxi/uservices/services/eventus-proxy -taxi/uservices/services/eventus-sample -taxi/uservices/services/example-replica -taxi/uservices/services/exams-platform -taxi/uservices/services/excluded-drivers -taxi/uservices/services/exp3-matcher -taxi/uservices/services/feeds -taxi/uservices/services/femida-authproxy -taxi/uservices/services/fiscal-platform -taxi/uservices/services/fleet-antifraud -taxi/uservices/services/fleet-authproxy -taxi/uservices/services/fleet-communications -taxi/uservices/services/fleet-customers -taxi/uservices/services/fleet-financial-statements -taxi/uservices/services/fleet-leads -taxi/uservices/services/fleet-leads-api -taxi/uservices/services/fleet-leads-crm -taxi/uservices/services/fleet-legal-entities -taxi/uservices/services/fleet-map -taxi/uservices/services/fleet-notifications -taxi/uservices/services/fleet-offers -taxi/uservices/services/fleet-orders -taxi/uservices/services/fleet-orders-guarantee -taxi/uservices/services/fleet-orders-manager -taxi/uservices/services/fleet-orders-misc -taxi/uservices/services/fleet-parks -taxi/uservices/services/fleet-payment-systems -taxi/uservices/services/fleet-payment-systems-api -taxi/uservices/services/fleet-payouts -taxi/uservices/services/fleet-payouts-web -taxi/uservices/services/fleet-reports-storage -taxi/uservices/services/fleet-signatures-storage -taxi/uservices/services/fleet-synchronizer -taxi/uservices/services/fleet-traffic-fines -taxi/uservices/services/fleet-transactions-api -taxi/uservices/services/fleet-tutorials -taxi/uservices/services/fleet-ui -taxi/uservices/services/fleet-users -taxi/uservices/services/fleet-vehicles -taxi/uservices/services/fts-anon -taxi/uservices/services/fts-client-testsuite -taxi/uservices/services/fts-emulator -taxi/uservices/services/fts-internal-client-testsuite -taxi/uservices/services/fts-quotateka-agent-sidecar -taxi/uservices/services/fts-taxi-integration-mock -taxi/uservices/services/garage-api -taxi/uservices/services/gas-stations -taxi/uservices/services/gas-stations-api -taxi/uservices/services/gen35-sample -taxi/uservices/services/geo-pipeline-control-plane -taxi/uservices/services/geoareas -taxi/uservices/services/geosharing -taxi/uservices/services/gozora-sample -taxi/uservices/services/grafana-annotations -taxi/uservices/services/grocery-alice-gateway -taxi/uservices/services/grocery-api -taxi/uservices/services/grocery-b2b-authproxy -taxi/uservices/services/grocery-b2b-discounts -taxi/uservices/services/grocery-b2b-dispatch -taxi/uservices/services/grocery-b2b-experiments-matcher -taxi/uservices/services/grocery-b2b-integrations -taxi/uservices/services/grocery-b2b-logistic-route -taxi/uservices/services/grocery-b2b-payments -taxi/uservices/services/grocery-caas-markdown -taxi/uservices/services/grocery-caas-new-goods -taxi/uservices/services/grocery-caas-promo -taxi/uservices/services/grocery-caas-sample -taxi/uservices/services/grocery-caas-sample-consumer -taxi/uservices/services/grocery-cart -taxi/uservices/services/grocery-cart-core -taxi/uservices/services/grocery-cart-replica -taxi/uservices/services/grocery-cashback -taxi/uservices/services/grocery-checkins -taxi/uservices/services/grocery-cibus -taxi/uservices/services/grocery-cloud-test -taxi/uservices/services/grocery-cold-storage -taxi/uservices/services/grocery-communications -taxi/uservices/services/grocery-coupons -taxi/uservices/services/grocery-crm -taxi/uservices/services/grocery-delivery-conditions -taxi/uservices/services/grocery-delivery-scheduler -taxi/uservices/services/grocery-depots -taxi/uservices/services/grocery-depots-resolver -taxi/uservices/services/grocery-depots-user-view-calc -taxi/uservices/services/grocery-discounts -taxi/uservices/services/grocery-dispatch -taxi/uservices/services/grocery-dispatch-tracking -taxi/uservices/services/grocery-dj -taxi/uservices/services/grocery-eats-gateway -taxi/uservices/services/grocery-fav-goods -taxi/uservices/services/grocery-feeds -taxi/uservices/services/grocery-goals -taxi/uservices/services/grocery-holidays -taxi/uservices/services/grocery-invoices -taxi/uservices/services/grocery-manual-dispatch-cargo-router -taxi/uservices/services/grocery-market-gw -taxi/uservices/services/grocery-marketing -taxi/uservices/services/grocery-menu -taxi/uservices/services/grocery-offers -taxi/uservices/services/grocery-order-log -taxi/uservices/services/grocery-orders -taxi/uservices/services/grocery-orders-scheduler -taxi/uservices/services/grocery-orders-tracking -taxi/uservices/services/grocery-p13n -taxi/uservices/services/grocery-payments -taxi/uservices/services/grocery-payments-billing -taxi/uservices/services/grocery-payments-emulator -taxi/uservices/services/grocery-payments-methods -taxi/uservices/services/grocery-payments-tracking -taxi/uservices/services/grocery-performer-communications -taxi/uservices/services/grocery-performer-finance -taxi/uservices/services/grocery-performer-mentorship -taxi/uservices/services/grocery-performer-watcher -taxi/uservices/services/grocery-pics -taxi/uservices/services/grocery-pro-bdu -taxi/uservices/services/grocery-pro-misc -taxi/uservices/services/grocery-products-feedback -taxi/uservices/services/grocery-routing -taxi/uservices/services/grocery-search -taxi/uservices/services/grocery-sensitive -taxi/uservices/services/grocery-supply -taxi/uservices/services/grocery-support -taxi/uservices/services/grocery-surge -taxi/uservices/services/grocery-takeout -taxi/uservices/services/grocery-translations -taxi/uservices/services/grocery-uber-gw -taxi/uservices/services/grocery-upsale -taxi/uservices/services/grocery-user-data -taxi/uservices/services/grocery-user-debts -taxi/uservices/services/grocery-user-profiles -taxi/uservices/services/grocery-wms-gateway -taxi/uservices/services/gunther -taxi/uservices/services/hagen -taxi/uservices/services/heatmap-renderer -taxi/uservices/services/heatmap-sample-storage -taxi/uservices/services/heatmap-storage -taxi/uservices/services/heatmap-surge-api -taxi/uservices/services/hejmdal -taxi/uservices/services/hiring-authproxy -taxi/uservices/services/hiring-zd-push -taxi/uservices/services/ie-kz-proxy -taxi/uservices/services/inapp-communications -taxi/uservices/services/individual-tariffs -taxi/uservices/services/intercity-control -taxi/uservices/services/internal-trackstory -taxi/uservices/services/invites -taxi/uservices/services/invoices-archive -taxi/uservices/services/itinerary-maker -taxi/uservices/services/ivr-dispatcher -taxi/uservices/services/lambda-deploy-machine -taxi/uservices/services/latvia-rides-reports -taxi/uservices/services/layers -taxi/uservices/services/lbs-cloud-proxy -taxi/uservices/services/localizations-replica -taxi/uservices/services/logistic-platform-documents -taxi/uservices/services/logistic-platform-gateway -taxi/uservices/services/logistic-platform-offers -taxi/uservices/services/logistic-platform-operator-emulator -taxi/uservices/services/logistic-platform-processing -taxi/uservices/services/logistic-platform-registries -taxi/uservices/services/logistic-platform-replica -taxi/uservices/services/logistic-supply-conductor -taxi/uservices/services/lookup -taxi/uservices/services/loyalty -taxi/uservices/services/maas -taxi/uservices/services/maas-authproxy -taxi/uservices/services/manual-dispatch -taxi/uservices/services/market-adv-booker -taxi/uservices/services/market-blender -taxi/uservices/services/market-content-storage-mappings -taxi/uservices/services/market-datacamp-shopper-api -taxi/uservices/services/market-datacamp-shopper-tms -taxi/uservices/services/market-datacamp-stroller-api -taxi/uservices/services/market-delivery-actualizer -taxi/uservices/services/market-delivery-cost-calculator -taxi/uservices/services/market-dynprice -taxi/uservices/services/market-echo-example -taxi/uservices/services/market-fast-mappings-reader -taxi/uservices/services/market-hide-offers-aggregator -taxi/uservices/services/market-hide-offers-dyn2yt -taxi/uservices/services/market-hide-offers-rt -taxi/uservices/services/market-hide-offers-status-tms -taxi/uservices/services/market-offers-http -taxi/uservices/services/market-perks -taxi/uservices/services/market-personal-normalizer -taxi/uservices/services/market-personal-search -taxi/uservices/services/market-plus-plaque -taxi/uservices/services/market-products-compare -taxi/uservices/services/market-promo -taxi/uservices/services/market-redirector -taxi/uservices/services/market-uaccess -taxi/uservices/services/market-unit-economy-service -taxi/uservices/services/masstransit -taxi/uservices/services/media-storage -taxi/uservices/services/merchant-profiles -taxi/uservices/services/messenger -taxi/uservices/services/metadata-storage -taxi/uservices/services/meters-integration-api -taxi/uservices/services/multiclass-pricing-storage -taxi/uservices/services/multiorder -taxi/uservices/services/music -taxi/uservices/services/order-archive -taxi/uservices/services/order-core -taxi/uservices/services/order-events-producer -taxi/uservices/services/order-fines -taxi/uservices/services/order-metrics -taxi/uservices/services/order-modifier -taxi/uservices/services/order-offers -taxi/uservices/services/order-parts -taxi/uservices/services/order-parts-proxy -taxi/uservices/services/order-route -taxi/uservices/services/order-search-status -taxi/uservices/services/order-state -taxi/uservices/services/order-takeout -taxi/uservices/services/overlord-catalog -taxi/uservices/services/parks-activation -taxi/uservices/services/parks-certifications -taxi/uservices/services/parks-commute -taxi/uservices/services/parks-replica -taxi/uservices/services/partner-authproxy -taxi/uservices/services/partner-orders-api -taxi/uservices/services/passenger-feedback -taxi/uservices/services/passport-authproxy -taxi/uservices/services/payment-methods -taxi/uservices/services/payment-providers-gateway -taxi/uservices/services/persey-core -taxi/uservices/services/persey-proxy -taxi/uservices/services/personal -taxi/uservices/services/personal-caches -taxi/uservices/services/persuggest -taxi/uservices/services/pickup-points-manager -taxi/uservices/services/pilorama -taxi/uservices/services/pin-storage -taxi/uservices/services/plus -taxi/uservices/services/plus-sweet-home -taxi/uservices/services/plus-transactions -taxi/uservices/services/plus-wallet -taxi/uservices/services/price-estimate-api -taxi/uservices/services/pricing-admin -taxi/uservices/services/pricing-data-preparer -taxi/uservices/services/pricing-fallback -taxi/uservices/services/pricing-taximeter -taxi/uservices/services/pro-business-events -taxi/uservices/services/pro-profiles -taxi/uservices/services/pro-static-resources -taxi/uservices/services/pro-ya-messenger -taxi/uservices/services/proxy-ml -taxi/uservices/services/qc-data -taxi/uservices/services/qc-eventus -taxi/uservices/services/qc-executors -taxi/uservices/services/qc-pools -taxi/uservices/services/qc-statistics -taxi/uservices/services/quality-control-cpp -taxi/uservices/services/random-discounts -taxi/uservices/services/rate-limiter-proxy -taxi/uservices/services/rate-limiter-server -taxi/uservices/services/receipts-renderer -taxi/uservices/services/reposition-api -taxi/uservices/services/reposition-graph-relocator -taxi/uservices/services/reposition-matcher -taxi/uservices/services/reposition-relocator -taxi/uservices/services/reposition-watcher -taxi/uservices/services/rescue -taxi/uservices/services/ride-card-info -taxi/uservices/services/ride-discounts -taxi/uservices/services/ridehistory -taxi/uservices/services/rider-metrics-storage -taxi/uservices/services/routehistory -taxi/uservices/services/routestats -taxi/uservices/services/safety-events-watcher -taxi/uservices/services/scooter-accumulator -taxi/uservices/services/scooters-admin -taxi/uservices/services/scooters-core -taxi/uservices/services/scooters-jet-authproxy -taxi/uservices/services/scooters-jet-misc -taxi/uservices/services/scooters-misc -taxi/uservices/services/scooters-mostrans -taxi/uservices/services/scooters-offers -taxi/uservices/services/scooters-ops -taxi/uservices/services/scooters-ops-dispatch -taxi/uservices/services/scooters-ops-relocation -taxi/uservices/services/scooters-ops-repair -taxi/uservices/services/scooters-packages -taxi/uservices/services/scooters-payments -taxi/uservices/services/scooters-performers -taxi/uservices/services/scooters-subscription -taxi/uservices/services/scooters-surge -taxi/uservices/services/scooters-telematics -taxi/uservices/services/scooters-updater -taxi/uservices/services/seatbelt-detector-api -taxi/uservices/services/segments-provider -taxi/uservices/services/selfemployed-fns-profiles -taxi/uservices/services/selfemployed-fns-replica -taxi/uservices/services/shortcuts -taxi/uservices/services/shortcuts-admin -taxi/uservices/services/shuttle-control -taxi/uservices/services/shuttle-integration -taxi/uservices/services/signal-device-api -taxi/uservices/services/signal-device-api-admin -taxi/uservices/services/signal-device-configs -taxi/uservices/services/signal-device-message-api -taxi/uservices/services/signal-device-tracks -taxi/uservices/services/signalq-billing -taxi/uservices/services/signalq-drivematics-api -taxi/uservices/services/signalq-drivers -taxi/uservices/services/special-zones -taxi/uservices/services/spirit-gw -taxi/uservices/services/statistics -taxi/uservices/services/statistics-agent -taxi/uservices/services/stq-dispatcher-sample -taxi/uservices/services/stq-runner -taxi/uservices/services/subvention-admin -taxi/uservices/services/subvention-communications -taxi/uservices/services/subvention-features -taxi/uservices/services/subvention-order-context -taxi/uservices/services/subvention-schedule -taxi/uservices/services/subvention-view -taxi/uservices/services/subventions-activity-producer -taxi/uservices/services/subventions-candidates-reader -taxi/uservices/services/subventions-events-filter -taxi/uservices/services/superapp-misc -taxi/uservices/services/supply-diagnostics -taxi/uservices/services/support-authproxy -taxi/uservices/services/support-proactivity -taxi/uservices/services/support-scenarios -taxi/uservices/services/supportai-context-state -taxi/uservices/services/supportai-core -taxi/uservices/services/surge-calculator -taxi/uservices/services/tags -taxi/uservices/services/tags-topics -taxi/uservices/services/talaria-authproxy -taxi/uservices/services/talaria-misc -taxi/uservices/services/talaria-payments -taxi/uservices/services/talaria-proxy -taxi/uservices/services/tariffs-promotions -taxi/uservices/services/taxi-payments -taxi/uservices/services/test-configs-from-configs3 -taxi/uservices/services/test-rps-limiter -taxi/uservices/services/test-service-noexpose -taxi/uservices/services/test-sidecar-without-tvm -taxi/uservices/services/tigraph-router -taxi/uservices/services/tips -taxi/uservices/services/tokenizer -taxi/uservices/services/tolls -taxi/uservices/services/trip-swap -taxi/uservices/services/tristero-b2b -taxi/uservices/services/tristero-parcels -taxi/uservices/services/trucks-claims -taxi/uservices/services/trucks-companies -taxi/uservices/services/trucks-scoring -taxi/uservices/services/trucks-tracking -taxi/uservices/services/uantifraud -taxi/uservices/services/uapi-keys -taxi/uservices/services/udriver-photos -taxi/uservices/services/umlaas -taxi/uservices/services/umlaas-contractors -taxi/uservices/services/umlaas-delivery -taxi/uservices/services/umlaas-dispatch -taxi/uservices/services/umlaas-eats -taxi/uservices/services/umlaas-geo -taxi/uservices/services/umlaas-geo-ext -taxi/uservices/services/umlaas-grocery-eta -taxi/uservices/services/umlaas-pricing -taxi/uservices/services/umlaas-quality-control -taxi/uservices/services/unique-drivers -taxi/uservices/services/united-delivery-platform -taxi/uservices/services/united-dispatch -taxi/uservices/services/user-api -taxi/uservices/services/user-auction -taxi/uservices/services/user-authconfirm -taxi/uservices/services/user-state -taxi/uservices/services/user-statistics -taxi/uservices/services/userplaces -taxi/uservices/services/userver-clickhouse-sample -taxi/uservices/services/userver-db-adapter-sample -taxi/uservices/services/userver-distlock-sample -taxi/uservices/services/userver-fuzzing-sample -taxi/uservices/services/userver-load -taxi/uservices/services/userver-ydblib-sample -taxi/uservices/services/userver-ytlib-sample -taxi/uservices/services/uservice-template -taxi/uservices/services/vehicle-permits -taxi/uservices/services/vehicles-manager -taxi/uservices/services/vgw-ya-tel-adapter -taxi/uservices/services/virtual-tariffs -taxi/uservices/services/workforce-metrics-storage -taxi/uservices/services/workshifts -taxi/uservices/services/ya-billing-contracts-replica -taxi/uservices/services/yaga -taxi/uservices/services/yaga-adjust -taxi/uservices/services/yaga-metrics -taxi/uservices/services/yaga-metrolog -taxi/uservices/services/yaga2 -taxi/uservices/services/yagr -taxi/uservices/services/yango-wallet -taxi/uservices/services/zalogin -taxi/uservices/services/zoneinfo diff --git a/build/rules/taxi_uservices/ya.make b/build/rules/taxi_uservices/ya.make deleted file mode 100644 index 883d47d5a2..0000000000 --- a/build/rules/taxi_uservices/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:taxi-automation-codegen) diff --git a/build/rules/ya.make b/build/rules/ya.make deleted file mode 100644 index cc926680e8..0000000000 --- a/build/rules/ya.make +++ /dev/null @@ -1 +0,0 @@ -OWNER(g:ymake g:contrib) diff --git a/build/rules/yadi.policy b/build/rules/yadi.policy deleted file mode 100644 index 6196552936..0000000000 --- a/build/rules/yadi.policy +++ /dev/null @@ -1 +0,0 @@ -# There will be policy from Yadi: YADI-105
\ No newline at end of file diff --git a/build/rules/yp.policy b/build/rules/yp.policy deleted file mode 100644 index b4c88a9f7c..0000000000 --- a/build/rules/yp.policy +++ /dev/null @@ -1,3 +0,0 @@ -ALLOW yp -> yp/server - -DENY .* -> yp/server diff --git a/build/rules/yt.policy b/build/rules/yt.policy deleted file mode 100644 index 586ed3e925..0000000000 --- a/build/rules/yt.policy +++ /dev/null @@ -1,21 +0,0 @@ -ALLOW yt -> yt/yt/ytlib -ALLOW yt -> yt/yt/server - -ALLOW yp -> yt/yt/ytlib - -# Roren stuff. - -ALLOW laas/united_geolog -> yt/cpp/roren -ALLOW mapreduce/yt/experiments -> mapreduce/yt/experiments -ALLOW logos/tools/counter_simulator/lib/cpp_lib -> yt/cpp/roren -ALLOW quality/user_sessions/rt -> yt/cpp/roren -ALLOW ads/bsyeti -> yt/cpp/roren -ALLOW bigrt/lib -> yt/cpp/roren -ALLOW market/idx/datacamp/mixer -> yt/cpp/roren -ALLOW market/idx/mcfly -> yt/cpp/roren -DENY .* -> mapreduce/yt/experiments - -# Everybody else cannot PEERDIR ytlib and server. - -DENY .* -> yt/yt/ytlib -DENY .* -> yt/yt/server diff --git a/build/scripts/_check_compiler.cpp b/build/scripts/_check_compiler.cpp deleted file mode 100644 index 53c5fdf179..0000000000 --- a/build/scripts/_check_compiler.cpp +++ /dev/null @@ -1 +0,0 @@ -#include <stdio.h> diff --git a/build/scripts/_fake_src.cpp b/build/scripts/_fake_src.cpp deleted file mode 100644 index 139597f9cb..0000000000 --- a/build/scripts/_fake_src.cpp +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/build/scripts/append_file.py b/build/scripts/append_file.py deleted file mode 100644 index 6b5d53bc71..0000000000 --- a/build/scripts/append_file.py +++ /dev/null @@ -1,9 +0,0 @@ -import sys - - -if __name__ == "__main__": - - file_path = sys.argv[1] - with open(file_path, "a") as f: - for text in sys.argv[2:]: - print >>f, text diff --git a/build/scripts/autotar_gendirs.py b/build/scripts/autotar_gendirs.py deleted file mode 100644 index a1228108aa..0000000000 --- a/build/scripts/autotar_gendirs.py +++ /dev/null @@ -1,70 +0,0 @@ -from __future__ import print_function - -import os -import sys -import argparse -import tarfile -import subprocess - - -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def pack_dir(dir_path, dest_path): - dir_path = os.path.abspath(dir_path) - for tar_exe in ('/usr/bin/tar', '/bin/tar'): - if is_exe(tar_exe): - subprocess.check_call([tar_exe, '-cf', dest_path, '-C', os.path.dirname(dir_path), os.path.basename(dir_path)]) - break - else: - with tarfile.open(dest_path, 'w') as out: - out.add(dir_path, arcname=os.path.basename(dir_path)) - - -def unpack_dir(tared_dir, dest_path): - tared_dir = os.path.abspath(tared_dir) - if not os.path.exists(dest_path): - os.makedirs(dest_path) - for tar_exe in ('/usr/bin/tar', '/bin/tar'): - if is_exe(tar_exe): - subprocess.check_call([tar_exe, '-xf', tared_dir, '-C', dest_path]) - break - else: - with tarfile.open(tared_dir, 'r') as tar_file: - tar_file.extractall(dest_path) - - -# Must only be used to pack directories in build root -# Must silently accept empty list of dirs and do nothing in such case (workaround for ymake.core.conf limitations) -def main(args): - parser = argparse.ArgumentParser() - parser.add_argument('--pack', action='store_true', default=False) - parser.add_argument('--unpack', action='store_true', default=False) - parser.add_argument('--ext') - parser.add_argument('--outs', nargs='*', default=[]) - parser.add_argument('dirs', nargs='*') - args = parser.parse_args(args) - - if args.pack: - if len(args.dirs) != len(args.outs): - print("Number and oder of dirs to pack must match to the number and order of outs", file=sys.stderr) - return 1 - for dir, dest in zip(args.dirs, args.outs): - pack_dir(dir, dest) - elif args.unpack: - for tared_dir in args.dirs: - if not tared_dir.endswith(args.ext): - print("Requested to unpack '{}' which do not have required extension '{}'".format(tared_dir, args.ext), file=sys.stderr) - return 1 - dest = os.path.dirname(tared_dir) - unpack_dir(tared_dir, dest) - else: - print("Neither --pack nor --unpack specified. Don't know what to do.", file=sys.stderr) - return 1 - - return 0 - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/build/scripts/build_catboost.py b/build/scripts/build_catboost.py deleted file mode 100755 index 78334fc5f7..0000000000 --- a/build/scripts/build_catboost.py +++ /dev/null @@ -1,71 +0,0 @@ -import sys -import os -import shutil -import re -import subprocess - -def get_value(val): - dct = val.split('=', 1) - if len(dct) > 1: - return dct[1] - return '' - - -class BuildCbBase(object): - def run(self, cbmodel, cbname, cb_cpp_path): - - data_prefix = "CB_External_" - data = data_prefix + cbname - datasize = data + "Size" - - cbtype = "const NCatboostCalcer::TCatboostCalcer" - cbload = "(ReadModel({0}, {1}, EModelType::CatboostBinary))".format(data, datasize) - - cb_cpp_tmp_path = cb_cpp_path + ".tmp" - cb_cpp_tmp = open(cb_cpp_tmp_path, 'w') - - cb_cpp_tmp.write("#include <kernel/catboost/catboost_calcer.h>\n") - - ro_data_path = os.path.dirname(cb_cpp_path) + "/" + data_prefix + cbname + ".rodata" - cb_cpp_tmp.write("namespace{\n") - cb_cpp_tmp.write(" extern \"C\" {\n") - cb_cpp_tmp.write(" extern const unsigned char {1}{0}[];\n".format(cbname, data_prefix)) - cb_cpp_tmp.write(" extern const ui32 {1}{0}Size;\n".format(cbname, data_prefix)) - cb_cpp_tmp.write(" }\n") - cb_cpp_tmp.write("}\n") - archiverCall = subprocess.Popen([self.archiver, "-q", "-p", "-o", ro_data_path, cbmodel], stdout=None, stderr=subprocess.PIPE) - archiverCall.wait() - cb_cpp_tmp.write("extern {0} {1};\n".format(cbtype, cbname)) - cb_cpp_tmp.write("{0} {1}{2};".format(cbtype, cbname, cbload)) - cb_cpp_tmp.close() - shutil.move(cb_cpp_tmp_path, cb_cpp_path) - -class BuildCb(BuildCbBase): - def run(self, argv): - if len(argv) < 5: - print >>sys.stderr, "BuildCb.Run(<ARCADIA_ROOT> <archiver> <mninfo> <mnname> <cppOutput> [params...])" - sys.exit(1) - - self.SrcRoot = argv[0] - self.archiver = argv[1] - cbmodel = argv[2] - cbname = argv[3] - cb_cpp_path = argv[4] - - super(BuildCb, self).run(cbmodel, cbname, cb_cpp_path) - - -def build_cb_f(argv): - build_cb = BuildCb() - build_cb.run(argv) - - -if __name__ == '__main__': - if len(sys.argv) < 2: - print >>sys.stderr, "Usage: build_cb.py <funcName> <args...>" - sys.exit(1) - - if (sys.argv[2:]): - globals()[sys.argv[1]](sys.argv[2:]) - else: - globals()[sys.argv[1]]() diff --git a/build/scripts/build_dll_and_java.py b/build/scripts/build_dll_and_java.py deleted file mode 100644 index b9d8aff4df..0000000000 --- a/build/scripts/build_dll_and_java.py +++ /dev/null @@ -1,47 +0,0 @@ -import os -import subprocess -import sys - - -def just_do_it(argv): - delim = argv[0] - args = [] - for item in argv: - if item == delim: - args.append([]) - else: - args[-1].append(item) - dll_cmd, java_cmd, inputs, dll_out, java_out, jsrs_out, roots = args - dll_out, java_out, jsrs_out, build_root, source_root = dll_out[0], java_out[0], jsrs_out[0], roots[0], roots[1] - for inp in inputs: - origin_inp = inp - if os.path.isabs(inp): - if os.path.relpath(inp, build_root).startswith('..'): - inp = os.path.relpath(inp, source_root) - else: - inp = os.path.relpath(inp, build_root) - ext = os.path.splitext(inp)[1] - if ext in ('.o', '.obj'): - if os.path.join(build_root, inp) in java_cmd: - inp = os.path.join(build_root, inp) - if sys.platform == 'win32': - inp = inp.replace('\\', '/') - if inp not in java_cmd: - inp = build_root + '/' + inp - java_cmd.remove(inp) - if ext in ('.java', '.jsrc'): - if origin_inp in dll_cmd: - inp = origin_inp - elif os.path.join(build_root, inp) in dll_cmd: - inp = os.path.join(build_root, inp) - if sys.platform == 'win32': - inp = inp.replace('\\', '/') - dll_cmd.remove(inp) - java_cmd.insert(java_cmd.index(dll_out), java_out) - java_cmd.remove(dll_out) - subprocess.check_call(java_cmd) - subprocess.check_call(dll_cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_java_codenav_index.py b/build/scripts/build_java_codenav_index.py deleted file mode 100644 index d7ac4f3213..0000000000 --- a/build/scripts/build_java_codenav_index.py +++ /dev/null @@ -1,49 +0,0 @@ -import sys -import re -import os -import subprocess - -FAKE_ARCADIA_ROOT = 'fake_arcadia_root' -FAKE_BUILD_ROOT = 'fake_build_root' - - -def modify_sources_file(origin, target, source_roots_map): - def _cut_source_root(src): - for pref, fake_root in source_roots_map.items(): - if src.startswith(pref): - return os.path.join(fake_root, os.path.relpath(src, pref)) - return src - - with open(origin) as o: - srcs = [i for line in o for i in re.split('\\s+', line) if i] - new_srcs = map(_cut_source_root, srcs) - with open(target, 'w') as t: - t.write(' '.join(new_srcs)) - - -def just_do_it(argv): - corpus_name, build_root, arcadia_root, sources_file, javac_tail_cmd = argv[0], argv[1], argv[2], argv[3], argv[4:] - fake_arcadia_root = os.path.join(build_root, FAKE_ARCADIA_ROOT) - fake_build_root = os.path.join(build_root, FAKE_BUILD_ROOT) - fake_source_roots = { - arcadia_root: fake_arcadia_root, - build_root: fake_build_root, - } - modify_sources_file(sources_file, os.path.join(os.path.dirname(sources_file), '_' + os.path.basename(sources_file)), fake_source_roots) - kindex_data_root = '{}/kindex'.format(os.path.join(build_root, os.path.dirname(corpus_name))) - if not os.path.exists(kindex_data_root): - os.makedirs(kindex_data_root) - env = os.environ.copy() - env['KYTHE_ROOT_DIRECTORY'] = build_root - env['KYTHE_OUTPUT_DIRECTORY'] = kindex_data_root - env['KYTHE_CORPUS'] = os.path.relpath(corpus_name, build_root) - os.symlink(arcadia_root, fake_arcadia_root) - os.symlink(build_root, fake_build_root) - try: - subprocess.check_call(javac_tail_cmd, env=env) - finally: - os.unlink(fake_arcadia_root) - os.unlink(fake_build_root) - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_java_with_error_prone.py b/build/scripts/build_java_with_error_prone.py deleted file mode 100644 index 910443552e..0000000000 --- a/build/scripts/build_java_with_error_prone.py +++ /dev/null @@ -1,36 +0,0 @@ -import sys -import os - -ERROR_PRONE_FLAGS = [ - '-Xep:FunctionalInterfaceMethodChanged:WARN', - '-Xep:ReturnValueIgnored:WARN', -] - -JAVA10_EXPORTS = [ - '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED' -] - - -def just_do_it(argv): - java, error_prone_tool, javac_cmd = argv[0], argv[1], argv[2:] - if java.endswith('javac') or java.endswith('javac.exe'): - for f in javac_cmd: - if f.startswith('-Xep'): - ERROR_PRONE_FLAGS.append(f) - for f in ERROR_PRONE_FLAGS: - if f in javac_cmd: - javac_cmd.remove(f) - os.execv(java, [java] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd) - else: - os.execv(java, [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_java_with_error_prone2.py b/build/scripts/build_java_with_error_prone2.py deleted file mode 100644 index ddf1ccbfc1..0000000000 --- a/build/scripts/build_java_with_error_prone2.py +++ /dev/null @@ -1,87 +0,0 @@ -import sys -import os -import re -import subprocess -import platform - - -ERROR_PRONE_FLAGS = [ - '-Xep:FunctionalInterfaceMethodChanged:WARN', - '-Xep:ReturnValueIgnored:WARN', -] - -JAVA10_EXPORTS = [ - '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED', -] - - -def get_java_version(exe): - p = subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - for line in (out or '').strip().split("\n") + (err or '').strip().split("\n"): - m = re.match(r'java version "(.+)"', line) - if m: - parts = m.groups()[0].split(".") - return parts[1] if parts[0] == "1" else parts[0] - m = re.match(r'openjdk version "(\d+).*"', line) - if m: - parts = m.groups()[0].split(".") - return parts[0] - return None - - -def get_classpath(cmd): - for i, part in enumerate(cmd): - if part == '-classpath': - i += 1 - if i < len(cmd): - return cmd[i] - else: - return None - return None - - -def parse_args(argv): - parsed = [] - for i in range(len(argv)): - if not argv[i].startswith('-'): - parsed.append(argv[i]) - if len(parsed) >= 3: - break - return parsed + [argv[i + 1:]] - - -def just_do_it(argv): - java, javac, error_prone_tool, javac_cmd = parse_args(argv) - ver = get_java_version(java) - if not ver: - raise Exception("Can't determine java version") - if int(ver) >= 10: - for f in javac_cmd: - if f.startswith('-Xep'): - ERROR_PRONE_FLAGS.append(f) - for f in ERROR_PRONE_FLAGS: - if f in javac_cmd: - javac_cmd.remove(f) - if '-processor' in javac_cmd: - classpath = get_classpath(javac_cmd) - if classpath: - error_prone_tool = error_prone_tool + os.pathsep + classpath - cmd = [javac] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd - else: - cmd = [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(cmd).wait()) - else: - os.execv(cmd[0], cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_mn.py b/build/scripts/build_mn.py deleted file mode 100755 index 5bb03c247c..0000000000 --- a/build/scripts/build_mn.py +++ /dev/null @@ -1,330 +0,0 @@ -#!/usr/bin/env python -# Ymake MatrixNet support - -import sys -import os -import shutil -import re -import subprocess - - -def get_value(val): - dct = val.split('=', 1) - if len(dct) > 1: - return dct[1] - return '' - - -class BuildMnBase(object): - def Run(self, mninfo, mnname, mnrankingSuffix, mncppPath, check=False, ptr=False, multi=False): - self.mninfo = mninfo - self.mnname = mnname - self.mnrankingSuffix = mnrankingSuffix - self.mncppPath = mncppPath - self.check = check - self.ptr = ptr - self.multi = multi - dataprefix = "MN_External_" - mninfoName = os.path.basename(self.mninfo) - data = dataprefix + mnname - datasize = data + "Size" - - if self.multi: - if self.ptr: - mntype = "const NMatrixnet::TMnMultiCategPtr" - mnload = "(new NMatrixnet::TMnMultiCateg( {1}, {2}, \"{0}\"))".format(mninfoName, data, datasize) - else: - mntype = "const NMatrixnet::TMnMultiCateg" - mnload = "({1}, {2}, \"{0}\")".format(mninfoName, data, datasize) - else: - if self.ptr: - mntype = "const NMatrixnet::TMnSsePtr" - mnload = "(new NMatrixnet::TMnSseInfo({1}, {2}, \"{0}\"))".format(mninfoName, data, datasize) - else: - mntype = "const NMatrixnet::TMnSseInfo" - mnload = "({1}, {2}, \"{0}\")".format(mninfoName, data, datasize) - - if self.check: - self.CheckMn() - - mncpptmpPath = self.mncppPath + ".tmp" - mncpptmp = open(mncpptmpPath, 'w') - - if self.multi: - mncpptmp.write("#include <kernel/matrixnet/mn_multi_categ.h>\n") - else: - mncpptmp.write("#include <kernel/matrixnet/mn_sse.h>\n") - - rodatapath = os.path.dirname(self.mncppPath) + "/" + dataprefix + self.mnname + ".rodata" - mncpptmp.write("namespace{\n") - mncpptmp.write(" extern \"C\" {\n") - mncpptmp.write(" extern const unsigned char {1}{0}[];\n".format(self.mnname, dataprefix)) - mncpptmp.write(" extern const ui32 {1}{0}Size;\n".format(self.mnname, dataprefix)) - mncpptmp.write(" }\n") - mncpptmp.write("}\n") - archiverCall = subprocess.Popen([self.archiver, "-q", "-p", "-o", rodatapath, self.mninfo], stdout=None, stderr=subprocess.PIPE) - archiverCall.wait() - mncpptmp.write("extern {0} {1};\n".format(mntype, self.mnname)) - mncpptmp.write("{0} {1}{2};".format(mntype, self.mnname, mnload)) - mncpptmp.close() - shutil.move(mncpptmpPath, self.mncppPath) - - def CheckMn(self): - if not self.fml_unused_tool: - print >>sys.stderr, "fml_unused_tool undefined!" - failed_msg = "fml_unused_tool failed: {0} -A {1} -e -r {2}".format(self.fml_unused_tool, self.SrcRoot, self.mninfo) - assert not subprocess.call([self.fml_unused_tool, "-A", self.SrcRoot, "-e", "-r", self.mninfo]), failed_msg - - -class BuildMn(BuildMnBase): - def Run(self, argv): - if len(argv) < 6: - print >>sys.stderr, "BuildMn.Run(<ARCADIA_ROOT> <archiver> <mninfo> <mnname> <mnrankingSuffix> <cppOutput> [params...])" - sys.exit(1) - - self.SrcRoot = argv[0] - self.archiver = argv[1] - - mninfo = argv[2] - mnname = argv[3] - mnrankingSuffix = argv[4] - mncppPath = argv[5] - check = False - ptr = False - multi = False - self.fml_unused_tool = '' - for param in argv[6:]: - if param == "CHECK": - check = True - elif param == "PTR": - ptr = True - elif param == "MULTI": - multi = True - elif param.startswith('fml_tool='): - self.fml_unused_tool = get_value(param) - else: - print >>sys.stdout, "Unknown param: {0}".format(param) - super(BuildMn, self).Run(mninfo, mnname, mnrankingSuffix, mncppPath, check=check, ptr=ptr, multi=multi) - - -class BuildMns(BuildMnBase): - def InitBase(self, listname, mnrankingSuffix): - self.autogen = '// DO NOT EDIT THIS FILE DIRECTLY, AUTOGENERATED!\n' - self.mnrankingSuffix = mnrankingSuffix - self.mnlistname = listname + mnrankingSuffix - self.mnlistelem = "const NMatrixnet::TMnSsePtr*" - mnlisttype = "TMap< TString, {0} >".format(self.mnlistelem) - self.mnlist = "const {0} {1}".format(mnlisttype, self.mnlistname) - - self.mnmultilistname = "{0}{1}Multi".format(listname, self.mnrankingSuffix) - self.mnmultilistelem = "const NMatrixnet::TMnMultiCategPtr*" - mnmultilisttype = "TMap< TString, {0} >".format(self.mnmultilistelem) - self.mnmultilist = "const {0} {1}".format(mnmultilisttype, self.mnmultilistname) - - def InitForAll(self, argv): - if len(argv) < 8: - print >>sys.stderr, "BuildMns.InitForAll(<ARCADIA_ROOT> <BINDIR> <archiver> <listname> <mnranking_suffix> <hdrfile> <srcfile> <mninfos> [fml_tool=<fml_unused_tool> CHECK])" - sys.exit(1) - - bmns_args = [] - self.check = False - self.fml_unused_tool = '' - for arg in argv: - if arg == "CHECK": - self.check = True - elif arg.startswith('fml_tool='): - self.fml_unused_tool = get_value(arg) - else: - bmns_args.append(arg) - - self.SrcRoot = bmns_args[0] - self.BINDIR = bmns_args[1] - self.archiver = bmns_args[2] - self.listname = bmns_args[3] - self.mnrankingSuffix = get_value(bmns_args[4]) - self.hdrfile = bmns_args[5] - self.srcfile = bmns_args[6] - self.mninfos = bmns_args[7:] - - self.InitBase(self.listname, self.mnrankingSuffix) - - def InitForHeader(self, argv): - if len(argv) < 4: - print >>sys.stderr, "BuildMns.InitForHeader(<listname> <rankingSuffix> <hdrfile> <mninfos...>)" - sys.exit(1) - - self.listname = argv[0] - self.mnrankingSuffix = get_value(argv[1]) - self.hdrfile = argv[2] - self.mninfos = argv[3:] - - self.InitBase(self.listname, self.mnrankingSuffix) - - def InitForCpp(self, argv): - if len(argv) < 5: - print >>sys.stderr, "BuildMns.InitForCpp(<listname> <rankingSuffix> <hdrfile> <srcfile> <mninfos...>)" - sys.exit(1) - - self.listname = argv[0] - self.mnrankingSuffix = get_value(argv[1]) - self.hdrfile = argv[2] - self.srcfile = argv[3] - self.mninfos = argv[4:] - - self.InitBase(self.listname, self.mnrankingSuffix) - - def InitForFiles(self, argv): - if len(argv) < 7: - print >>sys.stderr, "BuildMns.InitForFiles(<ARCADIA_ROOT> <BINDIR> <archiver> <fml_unused_tool> <listname> <rankingSuffix> <mninfos...> [CHECK])" - sys.exit(1) - - bmns_args = [] - self.check = False - self.fml_unused_tool = '' - for arg in argv: - if arg == "CHECK": - self.check = True - elif arg.startswith('fml_tool='): - self.fml_unused_tool = get_value(arg) - else: - bmns_args.append(arg) - - self.SrcRoot = bmns_args[0] - self.BINDIR = bmns_args[1] - self.archiver = bmns_args[2] - self.listname = bmns_args[3] - self.mnrankingSuffix = get_value(bmns_args[4]) - self.mninfos = bmns_args[5:] - - def BuildMnsHeader(self): - if self.mninfos: - self.mninfos = sorted(set(self.mninfos)) - - tmpHdrPath = self.hdrfile + ".tmp" - tmpHdrFile = open(tmpHdrPath, 'w') - - tmpHdrFile.write(self.autogen) - tmpHdrFile.write("#include <kernel/matrixnet/mn_sse.h>\n") - tmpHdrFile.write("#include <kernel/matrixnet/mn_multi_categ.h>\n\n") - tmpHdrFile.write("extern {0};\n".format(self.mnlist)) - tmpHdrFile.write("extern {0};\n".format(self.mnmultilist)) - - for item in self.mninfos: - mnfilename = os.path.basename(item) - mnfilename, ext = os.path.splitext(mnfilename) - - mnname = re.sub("[^-a-zA-Z0-9_]", "_", mnfilename) - - if ext == ".info": - mnname = "staticMn{0}{1}Ptr".format(self.mnrankingSuffix, mnname) - tmpHdrFile.write("extern const NMatrixnet::TMnSsePtr {0};\n".format(mnname)) - elif ext == ".mnmc": - mnname = "staticMnMulti{0}{1}Ptr".format(self.mnrankingSuffix, mnname) - tmpHdrFile.write("extern const NMatrixnet::TMnMultiCategPtr {0};\n".format(mnname)) - - tmpHdrFile.close() - shutil.move(tmpHdrPath, self.hdrfile) - - def BuildMnFiles(self): - for item in self.mninfos: - mnfilename = os.path.basename(item) - mnfilename, ext = os.path.splitext(mnfilename) - - mnname = re.sub("[^-a-zA-Z0-9_]", "_", mnfilename) - - if ext == ".info": - mnname = "staticMn{0}{1}Ptr".format(self.mnrankingSuffix, mnname) - super(BuildMns, self).Run(item, mnname, self.mnrankingSuffix, self.BINDIR + "/mn.{0}.cpp".format(mnname), check=self.check, ptr=True, multi=False) - elif ext == ".mnmc": - mnname = "staticMnMulti{0}{1}Ptr".format(self.mnrankingSuffix, mnname) - # BUILD_MN_PTR_MULTI - super(BuildMns, self).Run(item, mnname, self.mnrankingSuffix, self.BINDIR + "/mnmulti.{0}.cpp".format(mnname), check=False, ptr=True, multi=True) - - def BuildMnsCpp(self): - if self.mninfos: - self.mninfos = sorted(set(self.mninfos)) - - tmpSrcPath = self.srcfile + ".tmp" - tmpSrcFile = open(tmpSrcPath, 'w') - hdrrel = os.path.basename(self.hdrfile) - - mnnames = [] - mnmultinames = [] - for item in self.mninfos: - mnfilename = os.path.basename(item) - mnfilename, ext = os.path.splitext(mnfilename) - - if ext == ".info": - mnnames.append(mnfilename) - elif ext == ".mnmc": - mnmultinames.append(mnfilename) - - tmpSrcFile.write(self.autogen) - tmpSrcFile.write("#include \"{0}\"\n\n".format(hdrrel)) - - if mnnames: - mndata = self.mnlistname + "_data" - tmpSrcFile.write("static const std::pair< TString, {0} > {1}[] = {{\n".format(self.mnlistelem, mndata)) - for item in mnnames: - mnname = re.sub("[^-a-zA-Z0-9_]", "_", item) - tmpSrcFile.write(" std::make_pair(TString(\"{0}\"), &staticMn{1}{2}Ptr),\n".format(item, self.mnrankingSuffix, mnname)) - tmpSrcFile.write("};\n") - tmpSrcFile.write("{0}({1},{1} + sizeof({1}) / sizeof({1}[0]));\n\n".format(self.mnlist, mndata)) - else: - tmpSrcFile.write("{0};\n\n".format(self.mnlist)) - - if mnmultinames: - mnmultidata = self.mnmultilistname + "_data" - tmpSrcFile.write("static const std::pair< TString, {0} > {1}[] = {{\n".format(self.mnmultilistelem, mnmultidata)) - for item in mnmultinames: - mnname = re.sub("[^-a-zA-Z0-9_]", "_", item) - tmpSrcFile.write(" std::make_pair(TString(\"{0}\"), &staticMnMulti{1}{2}Ptr),\n".format(item, self.mnrankingSuffix, mnname)) - tmpSrcFile.write("};\n") - tmpSrcFile.write("{0}({1},{1} + sizeof({1}) / sizeof({1}[0]));\n".format(self.mnmultilist, mnmultidata)) - else: - tmpSrcFile.write("{0};\n".format(self.mnmultilist)) - - tmpSrcFile.close() - shutil.move(tmpSrcPath, self.srcfile) - - -def BuildMnsAllF(argv): - bldMns = BuildMns() - bldMns.InitForAll(argv) - bldMns.BuildMnsCpp() - bldMns.BuildMnsHeader() - bldMns.BuildMnFiles() - - -def BuildMnsCppF(argv): - bldMns = BuildMns() - bldMns.InitForCpp(argv) - bldMns.BuildMnsCpp() - - -def BuildMnsHeaderF(argv): - bldMns = BuildMns() - bldMns.InitForHeader(argv) - bldMns.BuildMnsHeader() - - -def BuildMnsFilesF(argv): - bldMns = BuildMns() - bldMns.InitForFiles(argv) - bldMns.BuildMnFiles() - - -def BuildMnF(argv): - bldMn = BuildMn() - bldMn.Run(argv) - - -if __name__ == '__main__': - if len(sys.argv) < 2: - print >>sys.stderr, "Usage: build_mn.py <funcName> <args...>" - sys.exit(1) - - if (sys.argv[2:]): - globals()[sys.argv[1]](sys.argv[2:]) - else: - globals()[sys.argv[1]]() diff --git a/build/scripts/build_pln_header.py b/build/scripts/build_pln_header.py deleted file mode 100755 index c73693f444..0000000000 --- a/build/scripts/build_pln_header.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python - -import sys -import os - - -def BuildPlnHeader(): - if len(sys.argv) < 2: - print >>sys.stderr, "Usage: build_pln_header.py <absolute/path/to/OutFile>" - sys.exit(1) - - print >>sys.stdout, "Build Pln Header..." - outPath = sys.argv[1] - tmpPath = outPath + '.tmp' - tmpFile = open(tmpPath, 'w') - - tmpFile.write('#include <library/cpp/sse/sse.h>\n') - tmpFile.write('#include <kernel/relevfml/relev_fml.h>\n') - for path in sys.argv[2:]: - name = os.path.basename(path).split(".")[0] # name without extensions - tmpFile.write('\nextern SRelevanceFormula fml{0};\n'.format(name)) - tmpFile.write('float {0}(const float* f);\n'.format(name)) - tmpFile.write('void {0}SSE(const float* const* factors, float* result);\n'.format(name)) - tmpFile.close() - try: - os.remove(outPath) - except: - pass - try: - os.rename(tmpPath, outPath) - except: - print >>sys.stdout, 'Error: Failed to rename ' + tmpPath + ' to ' + outPath - -if __name__ == '__main__': - BuildPlnHeader() diff --git a/build/scripts/c_templates/ya.make b/build/scripts/c_templates/ya.make deleted file mode 100644 index b395e11021..0000000000 --- a/build/scripts/c_templates/ya.make +++ /dev/null @@ -1,7 +0,0 @@ -OWNER(g:ymake) - -LIBRARY(dummy-vcs) -NO_PLATFORM() - -SRCS(svn_interface.c) -END() diff --git a/build/scripts/cat.py b/build/scripts/cat.py deleted file mode 100755 index 0c3f73d96f..0000000000 --- a/build/scripts/cat.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -import sys -from shutil import copyfileobj as copy -import os.path - -if __name__ == '__main__': - for filename in sys.argv[1:] or ["-"]: - if filename == "-": - copy(sys.stdin, sys.stdout) - else: - if os.path.exists(filename): - with open(filename, 'rb') as file: - copy(file, sys.stdout) - else: - sys.stderr.write('cat.py: {0}: No such file or directory\n'.format(filename)) diff --git a/build/scripts/cgo1_wrapper.py b/build/scripts/cgo1_wrapper.py deleted file mode 100644 index 986082f7e9..0000000000 --- a/build/scripts/cgo1_wrapper.py +++ /dev/null @@ -1,45 +0,0 @@ -import argparse -import shutil -import subprocess -import sys - - -CGO1_SUFFIX='.cgo1.go' - - -def call(cmd, cwd, env=None): - # sys.stderr.write('{}\n'.format(' '.join(cmd))) - return subprocess.call(cmd, stdin=None, stderr=sys.stderr, stdout=sys.stdout, cwd=cwd, env=env) - - -def process_file(source_root, source_prefix, build_root, build_prefix, src_path, comment_prefix): - dst_path = '{}.tmp'.format(src_path) - with open(src_path, 'r') as src_file, open(dst_path, 'w') as dst_file: - for line in src_file: - if line.startswith(comment_prefix): - dst_file.write(line.replace(source_root, source_prefix).replace(build_root, build_prefix)) - else: - dst_file.write(line) - shutil.move(dst_path, src_path) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--build-prefix', default='__ARCADIA_BUILD_ROOT_PREFIX__') - parser.add_argument('--build-root', required=True) - parser.add_argument('--cgo1-files', nargs='+', required=True) - parser.add_argument('--cgo2-files', nargs='+', required=True) - parser.add_argument('--source-prefix', default='__ARCADIA_SOURCE_ROOT_PREFIX__') - parser.add_argument('--source-root', required=True) - parser.add_argument('cgo1_cmd', nargs='*') - args = parser.parse_args() - - exit_code = call(args.cgo1_cmd, args.source_root) - if exit_code != 0: - sys.exit(exit_code) - - for src_path in args.cgo1_files: - process_file(args.source_root, args.source_prefix, args.build_root, args.build_prefix, src_path, '//') - - for src_path in args.cgo2_files: - process_file(args.source_root, args.source_prefix, args.build_root, args.build_prefix, src_path, '#line') diff --git a/build/scripts/check_config_h.py b/build/scripts/check_config_h.py deleted file mode 100644 index 07bc12e230..0000000000 --- a/build/scripts/check_config_h.py +++ /dev/null @@ -1,89 +0,0 @@ -import sys - -data = """ -#if defined(SIZEOF_LONG) -static_assert(sizeof(long) == SIZEOF_LONG, "fixme 1"); -#endif - -#if defined(SIZEOF_PTHREAD_T) -#include <pthread.h> - -static_assert(sizeof(pthread_t) == SIZEOF_PTHREAD_T, "fixme 2"); -#endif - -#if defined(SIZEOF_SIZE_T) -#include <stddef.h> - -static_assert(sizeof(size_t) == SIZEOF_SIZE_T, "fixme 3"); -#endif - -#if defined(SIZEOF_TIME_T) -#include <time.h> - -static_assert(sizeof(time_t) == SIZEOF_TIME_T, "fixme 4"); -#endif - -#if defined(SIZEOF_UINTPTR_T) -#include <stdint.h> - -static_assert(sizeof(uintptr_t) == SIZEOF_UINTPTR_T, "fixme 5"); -#endif - -#if defined(SIZEOF_VOID_P) -static_assert(sizeof(void*) == SIZEOF_VOID_P, "fixme 6"); -#endif - -#if defined(SIZEOF_FPOS_T) -#include <stdio.h> - -static_assert(sizeof(fpos_t) == SIZEOF_FPOS_T, "fixme 7"); -#endif - -#if defined(SIZEOF_DOUBLE) -static_assert(sizeof(double) == SIZEOF_DOUBLE, "fixme 8"); -#endif - -#if defined(SIZEOF_LONG_DOUBLE) -static_assert(sizeof(long double) == SIZEOF_LONG_DOUBLE, "fixme 9"); -#endif - -#if defined(SIZEOF_FLOAT) -static_assert(sizeof(float) == SIZEOF_FLOAT, "fixme 10"); -#endif - -#if defined(SIZEOF_INT) -static_assert(sizeof(int) == SIZEOF_INT, "fixme 11"); -#endif - -#if defined(SIZEOF_LONG_LONG) -static_assert(sizeof(long long) == SIZEOF_LONG_LONG, "fixme 12"); -#endif - -#if defined(SIZEOF_OFF_T) -#include <stdio.h> - -static_assert(sizeof(off_t) == SIZEOF_OFF_T, "fixme 13"); -#endif - -#if defined(SIZEOF_PID_T) -#include <unistd.h> - -static_assert(sizeof(pid_t) == SIZEOF_PID_T, "fixme 14"); -#endif - -#if defined(SIZEOF_SHORT) -static_assert(sizeof(short) == SIZEOF_SHORT, "fixme 15"); -#endif - -#if defined(SIZEOF_WCHAR_T) -static_assert(sizeof(wchar_t) == SIZEOF_WCHAR_T, "fixme 16"); -#endif - -#if defined(SIZEOF__BOOL) -//TODO -#endif -""" -if __name__ == '__main__': - with open(sys.argv[2], 'w') as f: - f.write('#include <' + sys.argv[1] + '>\n\n') - f.write(data) diff --git a/build/scripts/clang_tidy.py b/build/scripts/clang_tidy.py deleted file mode 100644 index 982e9015cb..0000000000 --- a/build/scripts/clang_tidy.py +++ /dev/null @@ -1,172 +0,0 @@ -import argparse -import json -import os -import re -import shutil -import sys - -import subprocess - -import yaml - - -def setup_script(args): - global tidy_config_validation - sys.path.append(os.path.dirname(args.config_validation_script)) - import tidy_config_validation - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument("--testing-src", required=True) - parser.add_argument("--clang-tidy-bin", required=True) - parser.add_argument("--config-validation-script", required=True) - parser.add_argument("--ymake-python", required=True) - parser.add_argument("--tidy-json", required=True) - parser.add_argument("--source-root", required=True) - parser.add_argument("--build-root", required=True) - parser.add_argument("--default-config-file", required=True) - parser.add_argument("--project-config-file", required=True) - parser.add_argument("--export-fixes", required=True) - parser.add_argument("--checks", required=False, default="") - parser.add_argument("--header-filter", required=False, default=None) - return parser.parse_known_args() - - -def generate_compilation_database(clang_cmd, source_root, filename, path): - compile_database = [ - { - "file": filename, - "command": subprocess.list2cmdline(clang_cmd), - "directory": source_root, - } - ] - compilation_database_json = os.path.join(path, "compile_commands.json") - with open(compilation_database_json, "w") as afile: - json.dump(compile_database, afile) - return compilation_database_json - - -def load_profile(path): - if os.path.exists(path): - files = os.listdir(path) - if len(files) == 1: - with open(os.path.join(path, files[0])) as afile: - return json.load(afile)["profile"] - elif len(files) > 1: - return { - "error": "found several profile files: {}".format(files), - } - return { - "error": "profile file is missing", - } - - -def load_fixes(path): - if os.path.exists(path): - with open(path, 'r') as afile: - return afile.read() - else: - return "" - - -def is_generated(testing_src, build_root): - return testing_src.startswith(build_root) - - -def generate_outputs(output_json): - output_obj = os.path.splitext(output_json)[0] + ".o" - open(output_obj, "w").close() - open(output_json, "w").close() - - -def filter_configs(result_config, filtered_config): - with open(result_config, 'r') as afile: - input_config = yaml.safe_load(afile) - result_config = tidy_config_validation.filter_config(input_config) - with open(filtered_config, 'w') as afile: - yaml.safe_dump(result_config, afile) - - -def main(): - args, clang_cmd = parse_args() - setup_script(args) - clang_tidy_bin = args.clang_tidy_bin - output_json = args.tidy_json - generate_outputs(output_json) - if is_generated(args.testing_src, args.build_root): - return - if args.header_filter is None: - # .pb.h files will be excluded because they are not in source_root - header_filter = r"^" + re.escape(os.path.dirname(args.testing_src)) + r".*" - else: - header_filter = r"^(" + args.header_filter + r").*" - - def ensure_clean_dir(path): - path = os.path.join(args.build_root, path) - if os.path.exists(path): - shutil.rmtree(path) - os.makedirs(path) - return path - - profile_tmpdir = ensure_clean_dir("profile_tmpdir") - db_tmpdir = ensure_clean_dir("db_tmpdir") - fixes_file = "fixes.txt" - config_dir = ensure_clean_dir("config_dir") - result_config_file = args.default_config_file - if args.project_config_file != args.default_config_file: - result_config = os.path.join(config_dir, "result_tidy_config.yaml") - filtered_config = os.path.join(config_dir, "filtered_tidy_config.yaml") - filter_configs(args.project_config_file, filtered_config) - result_config_file = tidy_config_validation.merge_tidy_configs( - base_config_path=args.default_config_file, - additional_config_path=filtered_config, - result_config_path=result_config, - ) - compile_command_path = generate_compilation_database(clang_cmd, args.source_root, args.testing_src, db_tmpdir) - - cmd = [ - clang_tidy_bin, - args.testing_src, - "-p", - compile_command_path, - "--warnings-as-errors", - "*", - "--config-file", - result_config_file, - "--header-filter", - header_filter, - "--use-color", - "--enable-check-profile", - "--store-check-profile={}".format(profile_tmpdir), - ] - if args.export_fixes == "yes": - cmd += ["--export-fixes", fixes_file] - - if args.checks: - cmd += ["--checks", args.checks] - - print("cmd: {}".format(' '.join(cmd))) - res = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = res.communicate() - out = out.replace(args.source_root, "$(SOURCE_ROOT)") - profile = load_profile(profile_tmpdir) - testing_src = os.path.relpath(args.testing_src, args.source_root) - tidy_fixes = load_fixes(fixes_file) - - with open(output_json, "wb") as afile: - json.dump( - { - "file": testing_src, - "exit_code": res.returncode, - "profile": profile, - "stderr": err, - "stdout": out, - "fixes": tidy_fixes, - }, - afile, - ) - - -if __name__ == "__main__": - main() diff --git a/build/scripts/clang_tidy_arch.py b/build/scripts/clang_tidy_arch.py deleted file mode 100644 index 7caf623a3d..0000000000 --- a/build/scripts/clang_tidy_arch.py +++ /dev/null @@ -1,33 +0,0 @@ -import os -import argparse -import json - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument("--output-file") - parser.add_argument("--build-root") - parser.add_argument("--source-root") - return parser.parse_known_args() - - -def main(): - args, unknown_args = parse_args() - inputs = unknown_args - result_json = {} - for inp in inputs: - if os.path.exists(inp) and inp.endswith("tidyjson"): - with open(inp, 'r') as afile: - file_content = afile.read().strip() - if not file_content: - continue - errors = json.loads(file_content) - testing_src = errors["file"] - result_json[testing_src] = errors - - with open(args.output_file, 'w') as afile: - json.dump(result_json, afile, indent=4) # TODO remove indent - - -if __name__ == "__main__": - main() diff --git a/build/scripts/clang_wrapper.py b/build/scripts/clang_wrapper.py deleted file mode 100644 index af3869f789..0000000000 --- a/build/scripts/clang_wrapper.py +++ /dev/null @@ -1,53 +0,0 @@ -import subprocess -import sys - - -def fix(s): - # disable dbg DEVTOOLS-2744 - if s == '-g': - return None - if s == '/Z7' or s == '/Od' or s == '/Ob0' or s == '/D_DEBUG': - return None - - # disable sanitizers for generated code - if s.startswith('-fsanitize') or s == '-Dmemory_sanitizer_enabled' or s.startswith('-fsanitize-blacklist'): - return None - - # strip gcc toolchain flags (appear when crosscompiling) - if s.startswith('-fabi-version'): - return None - - # remove arguments unknown to clang-cl - if s == '-fcase-insensitive-paths': # or s == '-fno-lto': # DEVTOOLSSUPPORT-3966 - return None - - # Paths under .ya/tools/v3/.../msvc/include are divided with '\' - return s.replace('\\', '/') - - -def fix_path(p): - try: - i = p.rfind('/bin/clang') - p = p[:i] + '/bin/clang-cl' - except ValueError: - pass - return p - - -if __name__ == '__main__': - is_on_win = sys.argv[1] == 'yes' - path = sys.argv[2] - args = filter(None, [fix(s) for s in sys.argv[3:]]) - if is_on_win: - path = fix_path(path) - try: - i = args.index('-emit-llvm') - args[i:i+1] = ['-Xclang', '-emit-llvm'] - except ValueError: - pass - args.append('-fms-compatibility-version=19') - - cmd = [path] + args - - rc = subprocess.call(cmd, shell=False, stderr=sys.stderr, stdout=sys.stdout) - sys.exit(rc) diff --git a/build/scripts/collect_java_srcs.py b/build/scripts/collect_java_srcs.py deleted file mode 100644 index 170002520a..0000000000 --- a/build/scripts/collect_java_srcs.py +++ /dev/null @@ -1,51 +0,0 @@ -import os -import sys -import contextlib -import tarfile -import zipfile - - -if __name__ == '__main__': - build_root = sys.argv[1] - root = os.path.normpath(sys.argv[2]) - dest = os.path.normpath(sys.argv[3]) - srcs = sys.argv[4:] - - for src in srcs: - src = os.path.normpath(src) - if src.endswith('.java') or src.endswith('.kt'): - src_rel_path = os.path.relpath(src, root) - - if os.path.join(root, src_rel_path) == src: - # Inside root - dst = os.path.join(dest, src_rel_path) - - else: - # Outside root - print>>sys.stderr, 'External src file "{}" is outside of srcdir {}, ignore'.format( - os.path.relpath(src, build_root), - os.path.relpath(root, build_root), - ) - continue - - if os.path.exists(dst): - print>>sys.stderr, 'Duplicate external src file {}, choice is undefined'.format( - os.path.relpath(dst, root) - ) - - else: - destdir = os.path.dirname(dst) - if destdir and not os.path.exists(destdir): - os.makedirs(destdir) - os.rename(src, dst) - - elif src.endswith('.jsr'): - with contextlib.closing(tarfile.open(src, 'r')) as tf: - tf.extractall(dst) - - elif src.endswith('-sources.jar'): - with zipfile.ZipFile(src) as zf: - zf.extractall(dst) - - else: - print>>sys.stderr, 'Unrecognized file type', os.path.relpath(src, build_root) diff --git a/build/scripts/compile_cuda.py b/build/scripts/compile_cuda.py deleted file mode 100644 index f8e1fa2b6d..0000000000 --- a/build/scripts/compile_cuda.py +++ /dev/null @@ -1,168 +0,0 @@ -import sys -import subprocess -import os -import collections -import re -import tempfile - - -def is_clang(command): - for word in command: - if '--compiler-bindir' in word and 'clang' in word: - return True - - return False - - -def main(): - try: - sys.argv.remove('--y_skip_nocxxinc') - skip_nocxxinc = True - except ValueError: - skip_nocxxinc = False - - spl = sys.argv.index('--cflags') - cmd = 1 - mtime0 = None - if sys.argv[1] == '--mtime': - mtime0 = sys.argv[2] - cmd = 3 - command = sys.argv[cmd: spl] - cflags = sys.argv[spl + 1:] - - dump_args = False - if '--y_dump_args' in command: - command.remove('--y_dump_args') - dump_args = True - - executable = command[0] - if not os.path.exists(executable): - print >> sys.stderr, '{} not found'.format(executable) - sys.exit(1) - - if is_clang(command): - # nvcc concatenates the sources for clang, and clang reports unused - # things from .h files as if they they were defined in a .cpp file. - cflags += ['-Wno-unused-function', '-Wno-unused-parameter'] - - if not is_clang(command) and '-fopenmp=libomp' in cflags: - cflags.append('-fopenmp') - cflags.remove('-fopenmp=libomp') - - skip_list = [ - '-gline-tables-only', - # clang coverage - '-fprofile-instr-generate', - '-fcoverage-mapping', - '/Zc:inline', # disable unreferenced functions (kernel registrators) remove - '-Wno-c++17-extensions', - '-flto', - '-faligned-allocation', - '-fsized-deallocation', - # While it might be reasonable to compile host part of .cu sources with these optimizations enabled, - # nvcc passes these options down towards cicc which lacks x86_64 extensions support. - '-msse2', - '-msse3', - '-mssse3', - '-msse4.1', - '-msse4.2', - ] - - if skip_nocxxinc: - skip_list.append('-nostdinc++') - - for flag in skip_list: - if flag in cflags: - cflags.remove(flag) - - skip_prefix_list = [ - '-fsanitize=', - '-fsanitize-coverage=', - '-fsanitize-blacklist=', - '--system-header-prefix', - ] - new_cflags = [] - for flag in cflags: - if all(not flag.startswith(skip_prefix) for skip_prefix in skip_prefix_list): - if flag.startswith('-fopenmp-version='): - new_cflags.append('-fopenmp-version=45') # Clang 11 only supports OpenMP 4.5, but the default is 5.0, so we need to forcefully redefine it. - else: - new_cflags.append(flag) - cflags = new_cflags - - if not is_clang(command): - def good(arg): - if arg.startswith('--target='): - return False - return True - cflags = filter(good, cflags) - - cpp_args = [] - compiler_args = [] - - # NVCC requires particular MSVC versions which may differ from the version - # used to compile regular C++ code. We have a separate MSVC in Arcadia for - # the CUDA builds and pass it's root in $Y_VC_Root. - # The separate MSVC for CUDA may absent in Yandex Open Source builds. - vc_root = os.environ.get('Y_VC_Root') - - cflags_queue = collections.deque(cflags) - while cflags_queue: - - arg = cflags_queue.popleft() - if arg == '-mllvm': - compiler_args.append(arg) - compiler_args.append(cflags_queue.popleft()) - continue - if arg[:2].upper() in ('-I', '/I', '-B'): - value = arg[2:] - if not value: - value = cflags_queue.popleft() - if arg[1] == 'I': - cpp_args.append('-I{}'.format(value)) - elif arg[1] == 'B': # todo: delete "B" flag check when cuda stop to use gcc - pass - continue - - match = re.match(r'[-/]D(.*)', arg) - if match: - define = match.group(1) - # We have C++ flags configured for the regular C++ build. - # There is Y_MSVC_INCLUDE define with a path to the VC header files. - # We need to change the path accordingly when using a separate MSVC for CUDA. - if vc_root and define.startswith('Y_MSVC_INCLUDE'): - define = os.path.expandvars('Y_MSVC_INCLUDE={}/include'.format(vc_root)) - cpp_args.append('-D' + define.replace('\\', '/')) - continue - - compiler_args.append(arg) - - command += cpp_args - if compiler_args: - command += ['--compiler-options', ','.join(compiler_args)] - - # --keep is necessary to prevent nvcc from embedding nvcc pid in generated - # symbols. It makes nvcc use the original file name as the prefix in the - # generated files (otherwise it also prepends tmpxft_{pid}_00000000-5), and - # cicc derives the module name from its {input}.cpp1.ii file name. - command += ['--keep', '--keep-dir', tempfile.mkdtemp(prefix='compile_cuda.py.')] - # nvcc generates symbols like __fatbinwrap_{len}_{basename}_{hash} where - # {basename} is {input}.cpp1.ii with non-C chars translated to _, {len} is - # {basename} length, and {hash} is the hash of first exported symbol in - # {input}.cpp1.ii if there is one, otherwise it is based on its modification - # time (converted to string in the local timezone) and the current working - # directory. To stabilize the names of these symbols we need to fix mtime, - # timezone, and cwd. - if mtime0: - os.environ['LD_PRELOAD'] = mtime0 - os.environ['TZ'] = 'UTC0' # POSIX fixed offset format. - os.environ['TZDIR'] = '/var/empty' # Against counterfeit /usr/share/zoneinfo/$TZ. - - if dump_args: - sys.stdout.write('\n'.join(command)) - else: - sys.exit(subprocess.Popen(command, stdout=sys.stderr, stderr=sys.stderr, cwd='/').wait()) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/compile_java.py b/build/scripts/compile_java.py deleted file mode 100644 index 7b6455ebf0..0000000000 --- a/build/scripts/compile_java.py +++ /dev/null @@ -1,122 +0,0 @@ -import argparse -import contextlib -from distutils import dir_util -import os -import shutil -import subprocess as sp -import tarfile -import zipfile -import sys - - -def parse_args(args): - parser = argparse.ArgumentParser(description='Wrapper to invoke Java compilation from ya make build') - parser.add_argument('--javac-bin', help='path to javac') - parser.add_argument('--jar-bin', help='path to jar tool') - parser.add_argument('--java-bin', help='path to java binary') - parser.add_argument('--kotlin-compiler', help='path to kotlin compiler jar file') - parser.add_argument('--vcs-mf', help='path to VCS info manifest snippet') - parser.add_argument('--package-prefix', help='package prefix for resource files') - parser.add_argument('--jar-output', help='jar file with compiled classes destination path') - parser.add_argument('--srcs-jar-output', help='jar file with sources destination path') - parser.add_argument('srcs', nargs="*") - args = parser.parse_args(args) - return args, args.srcs - - -def mkdir_p(directory): - if not os.path.exists(directory): - os.makedirs(directory) - - -def split_cmd_by_delim(cmd, delim='DELIM'): - result = [[]] - for arg in cmd: - if arg == delim: - result.append([]) - else: - result[-1].append(arg) - return result - - -def main(): - cmd_parts = split_cmd_by_delim(sys.argv[1:]) - assert len(cmd_parts) == 4 - args, javac_opts, peers, ktc_opts = cmd_parts - opts, jsrcs = parse_args(args) - - jsrcs += list(filter(lambda x: x.endswith('.jsrc'), peers)) - peers = list(filter(lambda x: not x.endswith('.jsrc'), peers)) - - sources_dir = 'src' - mkdir_p(sources_dir) - for s in jsrcs: - if s.endswith('.jsrc'): - with contextlib.closing(tarfile.open(s, 'r')) as tf: - tf.extractall(sources_dir) - - srcs = [] - for r, _, files in os.walk(sources_dir): - for f in files: - srcs.append(os.path.join(r, f)) - srcs += jsrcs - ktsrcs = list(filter(lambda x: x.endswith('.kt'), srcs)) - srcs = list(filter(lambda x: x.endswith('.java'), srcs)) - - classes_dir = 'cls' - mkdir_p(classes_dir) - classpath = os.pathsep.join(peers) - - if srcs: - temp_sources_file = 'temp.sources.list' - with open(temp_sources_file, 'w') as ts: - ts.write(' '.join(srcs)) - - if ktsrcs: - temp_kt_sources_file = 'temp.kt.sources.list' - with open(temp_kt_sources_file, 'w') as ts: - ts.write(' '.join(ktsrcs + srcs)) - kt_classes_dir = 'kt_cls' - mkdir_p(kt_classes_dir) - sp.check_call([opts.java_bin, '-jar', opts.kotlin_compiler, '-classpath', classpath, '-d', kt_classes_dir] + ktc_opts + ['@' + temp_kt_sources_file]) - classpath = os.pathsep.join([kt_classes_dir, classpath]) - - if srcs: - sp.check_call([opts.javac_bin, '-nowarn', '-g', '-classpath', classpath, '-encoding', 'UTF-8', '-d', classes_dir] + javac_opts + ['@' + temp_sources_file]) - - for s in jsrcs: - if s.endswith('-sources.jar'): - with zipfile.ZipFile(s) as zf: - zf.extractall(sources_dir) - - elif s.endswith('.jar'): - with zipfile.ZipFile(s) as zf: - zf.extractall(classes_dir) - - if ktsrcs: - dir_util.copy_tree(kt_classes_dir, classes_dir) - - if opts.vcs_mf: - sp.check_call([opts.jar_bin, 'cfm', opts.jar_output, opts.vcs_mf, os.curdir], cwd=classes_dir) - else: - sp.check_call([opts.jar_bin, 'cfM', opts.jar_output, os.curdir], cwd=classes_dir) - - if opts.srcs_jar_output: - for s in jsrcs: - if s.endswith('.java'): - if opts.package_prefix: - d = os.path.join(sources_dir, *(opts.package_prefix.split('.') + [os.path.basename(s)])) - - else: - d = os.path.join(sources_dir, os.path.basename(s)) - - shutil.copyfile(s, d) - - if opts.vcs_mf: - sp.check_call([opts.jar_bin, 'cfm', opts.srcs_jar_output, opts.vcs_mf, os.curdir], cwd=sources_dir) - else: - sp.check_call([opts.jar_bin, 'cfM', opts.srcs_jar_output, os.curdir], cwd=sources_dir) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/compile_jsrc.py b/build/scripts/compile_jsrc.py deleted file mode 100644 index 8760e5eee9..0000000000 --- a/build/scripts/compile_jsrc.py +++ /dev/null @@ -1,24 +0,0 @@ -import argparse -import os -import tarfile - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--input', nargs='*', required=True) - parser.add_argument('--output', required=True) - parser.add_argument('--prefix', required=True) - - return parser.parse_args() - - -def main(): - args = parse_args() - - with tarfile.open(args.output, 'w') as out: - for f in args.input: - out.add(f, arcname=os.path.relpath(f, args.prefix)) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/compile_pysrc.py b/build/scripts/compile_pysrc.py deleted file mode 100644 index e3637e18e2..0000000000 --- a/build/scripts/compile_pysrc.py +++ /dev/null @@ -1,101 +0,0 @@ -import argparse -import os -import shutil -import subprocess -import tarfile - - -LIMIT = 6000 - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--input', required=True) - parser.add_argument('--output', required=True) - parser.add_argument('--rescompiler', required=True) - subparsers = parser.add_subparsers(dest='mode') - - parser_py2 = subparsers.add_parser('py2') - parser_py2.add_argument('--py_compile', required=True) - parser_py2.add_argument('--python', required=True) - - parser_py3 = subparsers.add_parser('py3') - parser_py3.add_argument('--pycc', required=True) - - return parser.parse_args() - - -def call(cmd, cwd=None, env=None): - return subprocess.check_output(cmd, stdin=None, stderr=subprocess.STDOUT, cwd=cwd, env=env) - - -def iterate_py2_resource_params(py_files): - for py in py_files: - mod = py[:-3].replace('/', '.') - key = '/py_modules/{}'.format(mod) - yield py, key - yield '-', 'resfs/src/{}={}'.format(key, py) - yield '{}.yapyc'.format(py), '/py_code/{}'.format(mod) - - -def iterate_py3_resource_params(py_files): - for py in py_files: - for ext in ('', '.yapyc3'): - path = '{}{}'.format(py, ext) - dest = 'py/{}'.format(path) - key = 'resfs/file/{}'.format(dest) - src = 'resfs/src/{}={}'.format(key, os.path.basename(path)) - yield '-', src - yield path, key - - -def main(): - args = parse_args() - - names = [] - with tarfile.open(args.input, 'r') as tar: - names = tar.getnames() - tar.extractall() - - if args.mode == 'py3': - pycc_cmd = [args.pycc] - pycc_ext = '.yapyc3' - iterate_resource_params = iterate_py3_resource_params - else: - pycc_cmd = [args.python, args.py_compile] - pycc_ext = '.yapyc' - iterate_resource_params = iterate_py2_resource_params - - py_files = sorted(names) - - for py in py_files: - cmd = pycc_cmd + ['{}-'.format(os.path.basename(py)), py, '{}{}'.format(py, pycc_ext)] - call(cmd) - - outputs = [] - cmd = [args.rescompiler, '{}.0'.format(args.output)] - size = 0 - for path, key in iterate_resource_params(py_files): - addendum = len(path) + len(key) - if size + addendum > LIMIT and len(cmd) > 2: - call(cmd) - outputs.append(cmd[1]) - cmd[1] = '{}.{}'.format(args.output, len(outputs)) - cmd = cmd[0:2] - size = 0 - cmd.extend([path, key]) - size += addendum - if len(outputs) == 0: - cmd[1] = args.output - call(cmd) - else: - call(cmd) - outputs.append(cmd[1]) - with open(args.output, 'w') as fout: - for fname in outputs: - with open(fname, 'r') as fin: - shutil.copyfileobj(fin, fout) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/configure_file.py b/build/scripts/configure_file.py deleted file mode 100755 index 193ad7ec9e..0000000000 --- a/build/scripts/configure_file.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python2.7 - -import sys -import os.path -import re - -cmakeDef01 = "#cmakedefine01" -cmakeDef = "#cmakedefine" - - -def replaceLine(l, varDict, define): - words = l.split() - if words: - if words[0] == cmakeDef: - sPos = l.find(cmakeDef) - ePos = sPos + len(cmakeDef) - l = l[:sPos] + define + l[ePos:] + '\n' - if words[0] == cmakeDef01: - var = words[1] - cmakeValue = varDict.get(var) - if cmakeValue == 'yes': - val = '1' - else: - val = '0' - sPos = l.find(cmakeDef01) - ePos = l.find(var) + len(var) - l = l[:sPos] + define + ' ' + var + ' ' + val + l[ePos + 1:] + '\n' - - finder = re.compile(".*?(@[a-zA-Z0-9_]+@).*") - while True: - re_result = finder.match(l) - if not re_result: - return l - key = re_result.group(1)[1:-1] - l = l[:re_result.start(1)] + varDict.get(key, '') + l[re_result.end(1):] - - -def main(inputPath, outputPath, varDict): - define = '#define' if os.path.splitext(outputPath)[1] != '.asm' else '%define' - with open(outputPath, 'w') as output: - with open(inputPath, 'r') as input: - for l in input: - output.write(replaceLine(l, varDict, define)) - - -def usage(): - print("usage: configure_file.py inputPath outputPath key1=value1 ...") - exit(1) - - -if __name__ == "__main__": - if len(sys.argv) < 3: - usage() - varDict = {} - for x in sys.argv[3:]: - key, value = str(x).split('=', 1) - varDict[key] = value - - main(sys.argv[1], sys.argv[2], varDict) diff --git a/build/scripts/container.py b/build/scripts/container.py deleted file mode 100644 index 27e6f921f3..0000000000 --- a/build/scripts/container.py +++ /dev/null @@ -1,30 +0,0 @@ -import subprocess -import os -import shutil - - -class ContainerError(Exception): - pass - - -def join_layers(input_paths, output_path, squashfs_path): - - if len(input_paths) == 1: - shutil.copy2(input_paths[0], output_path) - - else: - # We cannot use appending here as it doesn't allow replacing files - for input_path in input_paths: - unpack_cmd = [ os.path.join(squashfs_path, 'unsquashfs') ] - unpack_cmd.extend([ '-f', input_path ]) - subprocess.run(unpack_cmd) - - pack_cmd = [ os.path.join(squashfs_path, 'mksquashfs') ] - pack_cmd.append(os.path.join(os.curdir, 'squashfs-root')) - pack_cmd.append(output_path) - pack_cmd.append('-all-root') - subprocess.run(pack_cmd) - - shutil.rmtree(os.path.join(os.curdir, 'squashfs-root')) - - return 0 diff --git a/build/scripts/copy_docs_files.py b/build/scripts/copy_docs_files.py deleted file mode 100644 index c444dd509d..0000000000 --- a/build/scripts/copy_docs_files.py +++ /dev/null @@ -1,102 +0,0 @@ -import argparse -import codecs -import errno -import os -import process_command_files as pcf -import shutil -import sys - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--build-root', required=True) - parser.add_argument('--dst-dir', required=True) - parser.add_argument('--existing', choices=('skip', 'overwrite'), default='overwrite') - parser.add_argument('--source-root', required=True) - parser.add_argument('--src-dir', required=None) - parser.add_argument('files', nargs='*') - return parser.parse_args(pcf.get_args(sys.argv[1:])) - - -def makedirs(dirname): - try: - os.makedirs(dirname) - except OSError as e: - if e.errno == errno.EEXIST and os.path.isdir(dirname): - pass - else: - raise - - -def copy_file(src, dst, overwrite=False, orig_path=None, generated=False): - if os.path.exists(dst) and not overwrite: - return - - makedirs(os.path.dirname(dst)) - - with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst: - if (orig_path or generated) and src.endswith('.md'): - out = b'' - buf = fsrc.readline() - bom_length = len(codecs.BOM_UTF8) - if buf[:bom_length] == codecs.BOM_UTF8: - out += codecs.BOM_UTF8 - buf = buf[bom_length:] - info = 'generated: true\n' if generated else 'vcsPath: {}\n'.format(orig_path) - if buf.startswith(b'---') and b'\n' in buf[3:] and buf[3:].rstrip(b'\r\n') == b'': - content = b'' - found = False - while True: - line = fsrc.readline() - if len(line) == 0: - break - content += line - if line.startswith(b'---') and line[3:].rstrip(b'\r\n') == b'': - found = True - break - out += buf - if found: - out += info.encode('utf-8') - out += content - else: - out += '---\n{}---\n'.format(info).encode('utf-8') - out += buf - fdst.write(out) - shutil.copyfileobj(fsrc, fdst) - - -def main(): - args = parse_args() - - source_root = os.path.normpath(args.source_root) + os.path.sep - build_root = os.path.normpath(args.build_root) + os.path.sep - - dst_dir = os.path.normpath(args.dst_dir) - assert dst_dir.startswith(build_root) - makedirs(dst_dir) - - src_dir = os.path.normpath(args.src_dir) + os.path.sep - assert src_dir.startswith(source_root) - - if src_dir.startswith(source_root): - root = source_root - is_from_source_root = True - elif src_dir.startswith(build_root): - root = build_root - is_from_source_root = False - else: - assert False, 'src_dir [{}] should start with [{}] or [{}]'.format(src_dir, source_root, build_root) - - is_overwrite_existing = args.existing == 'overwrite' - - for f in [os.path.normpath(f) for f in args.files]: - src_file = os.path.join(src_dir, f) - dst_file = os.path.join(dst_dir, f) - if src_file == dst_file: - continue - rel_path = src_file[len(root):] if is_from_source_root else None - copy_file(src_file, dst_file, overwrite=is_overwrite_existing, orig_path=rel_path) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/copy_docs_files_to_dir.py b/build/scripts/copy_docs_files_to_dir.py deleted file mode 100644 index bfd3c65698..0000000000 --- a/build/scripts/copy_docs_files_to_dir.py +++ /dev/null @@ -1,164 +0,0 @@ -import argparse -import codecs -import errno -import os -import process_command_files as pcf -import shutil -import sys - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--bin-dir', nargs='*') - parser.add_argument('--build-root', required=True) - parser.add_argument('--dest-dir', required=True) - parser.add_argument('--docs-dir', action='append', nargs=2, dest='docs_dirs', default=None) - parser.add_argument('--existing', choices=('skip', 'overwrite'), default='overwrite') - parser.add_argument('--source-root', required=True) - parser.add_argument('--src-dir', action='append', nargs='*', dest='src_dirs', default=None) - parser.add_argument('files', nargs='*') - return parser.parse_args(pcf.get_args(sys.argv[1:])) - - -def makedirs(dirname): - try: - os.makedirs(dirname) - except OSError as e: - if e.errno == errno.EEXIST and os.path.isdir(dirname): - pass - else: - raise - - -def copy_file(src, dst, overwrite=False, orig_path=None): - if os.path.exists(dst) and not overwrite: - return - - makedirs(os.path.dirname(dst)) - - with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst: - if orig_path and src.endswith('.md'): - out = b'' - buf = fsrc.readline() - bom_length = len(codecs.BOM_UTF8) - if buf[:bom_length] == codecs.BOM_UTF8: - out += codecs.BOM_UTF8 - buf = buf[bom_length:] - info = 'vcsPath: {}\n'.format(orig_path) - if buf.startswith(b'---') and b'\n' in buf[3:] and buf[3:].rstrip(b'\r\n') == b'': - content = b'' - found = False - while True: - line = fsrc.readline() - if len(line) == 0: - break - content += line - if line.startswith(b'---') and line[3:].rstrip(b'\r\n') == b'': - found = True - break - out += buf - if found: - out += info.encode('utf-8') - out += content - else: - out += '---\n{}---\n'.format(info).encode('utf-8') - out += buf - fdst.write(out) - shutil.copyfileobj(fsrc, fdst) - - -def main(): - args = parse_args() - - dest_dir = os.path.normpath(args.dest_dir) - makedirs(dest_dir) - - source_root = os.path.normpath(args.source_root) + os.path.sep - build_root = os.path.normpath(args.build_root) + os.path.sep - - is_overwrite_existing = args.existing == 'overwrite' - - if args.docs_dirs: - for item in args.docs_dirs: - assert len(item) == 2 - docs_dir, nm = item[0], item[1] - assert not os.path.isabs(docs_dir) - if nm and nm != '.': - assert not os.path.isabs(nm) - dst = os.path.join(dest_dir, nm) - else: - dst = dest_dir - - abs_docs_dir = os.path.join(args.source_root, docs_dir) - - for root, _, files in os.walk(abs_docs_dir): - for f in files: - if os.path.islink(os.path.join(root, f)): - continue - file_src = os.path.join(root, f) - assert file_src.startswith(source_root) - file_dst = os.path.join(dst, os.path.relpath(root, abs_docs_dir), f) - copy_file(file_src, file_dst, overwrite=is_overwrite_existing, orig_path=file_src[len(source_root):]) - - if args.src_dirs: - for item in args.src_dirs: - assert len(item) > 1 - src_dir, nm = os.path.normpath(item[0]), item[1] - assert os.path.isabs(src_dir) - if nm and nm != '.': - assert not os.path.isabs(nm) - dst = os.path.join(dest_dir, nm) - else: - dst = dest_dir - - if src_dir.startswith(source_root): - root = source_root - is_from_source_root = True - else: - assert src_dir.startswith(build_root) - root = build_root - is_from_source_root = False - - for f in item[2:]: - file_src = os.path.normpath(f) - assert file_src.startswith(root) - rel_path = file_src[len(root):] if is_from_source_root else None - file_dst = os.path.join(dst, file_src[len(src_dir):]) - copy_file(file_src, file_dst, overwrite=is_overwrite_existing, orig_path=rel_path) - - if args.bin_dir: - assert len(args.bin_dir) > 1 - bin_dir, bin_dir_namespace = os.path.normpath(args.bin_dir[0]) + os.path.sep, args.bin_dir[1] - assert bin_dir.startswith(build_root) - if bin_dir_namespace and bin_dir_namespace != '.': - assert not os.path.isabs(bin_dir_namespace) - dst = os.path.join(dest_dir, bin_dir_namespace) - else: - dst = dest_dir - - for file_src in args.bin_dir[2:]: - assert os.path.isfile(file_src) - assert file_src.startswith(bin_dir) - file_dst = os.path.join(dst, file_src[len(bin_dir):]) - copy_file(file_src, file_dst, overwrite=is_overwrite_existing, orig_path=None) - - for src in args.files: - file_src = os.path.normpath(src) - assert os.path.isfile(file_src), 'File [{}] does not exist...'.format(file_src) - rel_path = file_src - orig_path = None - if file_src.startswith(source_root): - rel_path = file_src[len(source_root):] - orig_path = rel_path - elif file_src.startswith(build_root): - rel_path = file_src[len(build_root):] - else: - raise Exception('Unexpected file path [{}].'.format(file_src)) - assert not os.path.isabs(rel_path) - file_dst = os.path.join(args.dest_dir, rel_path) - if file_dst != file_src: - copy_file(file_src, file_dst, is_overwrite_existing, orig_path) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/copy_files_to_dir.py b/build/scripts/copy_files_to_dir.py deleted file mode 100644 index ead57ba16e..0000000000 --- a/build/scripts/copy_files_to_dir.py +++ /dev/null @@ -1,59 +0,0 @@ -import argparse -import errno -import os -import process_command_files as pcf -import shutil -import sys - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--dest-dir', required=True) - parser.add_argument('--existing', choices=('skip', 'overwrite'), default='overwrite') - parser.add_argument('--flat', action='store_true') - parser.add_argument('--skip-prefix', dest='skip_prefixes', action='append', default=[]) - parser.add_argument('files', nargs='*') - return parser.parse_args(pcf.get_args(sys.argv[1:])) - - -def makedirs(dirname): - try: - os.makedirs(dirname) - except OSError as e: - if e.errno == errno.EEXIST and os.path.isdir(dirname): - pass - else: - raise - - -def main(): - args = parse_args() - - dest_dir = os.path.normpath(args.dest_dir) + os.pathsep - makedirs(dest_dir) - - prefixes = ['{}{}'.format(os.path.normpath(p), os.path.sep) for p in args.skip_prefixes] - - for src in args.files: - src = os.path.normpath(src) - assert os.path.isfile(src) - if args.flat: - rel_dst = os.path.basename(src) - else: - rel_dst = src - for prefix in prefixes: - if src.startswith(prefix): - rel_dst = src[len(prefix):] - break - assert not os.path.isabs(rel_dst) - dst = os.path.join(args.dest_dir, rel_dst) - if os.path.isfile(dst) and args.existing == 'skip': - break - - makedirs(os.path.dirname(dst)) - - shutil.copyfile(src, dst) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/copy_to_dir.py b/build/scripts/copy_to_dir.py deleted file mode 100644 index 9baeb5ffac..0000000000 --- a/build/scripts/copy_to_dir.py +++ /dev/null @@ -1,75 +0,0 @@ -import errno -import sys -import os -import shutil -import optparse -import tarfile - - -def parse_args(): - parser = optparse.OptionParser() - parser.add_option('--build-root') - parser.add_option('--dest-dir') - parser.add_option('--dest-arch') - return parser.parse_args() - - -def ensure_dir_exists(path): - try: - os.makedirs(path) - except OSError as e: - if e.errno == errno.EEXIST and os.path.isdir(path): - pass - else: - raise - - -def hardlink_or_copy(src, dst): - if os.name == 'nt': - shutil.copy(src, dst) - else: - try: - os.link(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - return - elif e.errno == errno.EXDEV: - sys.stderr.write("Can't make cross-device hardlink - fallback to copy: {} -> {}\n".format(src, dst)) - shutil.copy(src, dst) - else: - raise - - -def main(): - opts, args = parse_args() - assert opts.build_root - assert opts.dest_dir - - dest_arch = None - if opts.dest_arch: - if opts.dest_arch.endswith('.tar'): - dest_arch = tarfile.open(opts.dest_arch, 'w', dereference=True) - elif opts.dest_arch.endswith('.tar.gz') or opts.dest_arch.endswith('.tgz'): - dest_arch = tarfile.open(opts.dest_arch, 'w:gz', dereference=True) - else: - # TODO: move check to graph generation stage - raise Exception('Unsopported archive type for {}. Use one of: tar, tar.gz, tgz.'.format(os.path.basename(opts.dest_arch))) - - for arg in args: - dst = arg - if dst.startswith(opts.build_root): - dst = dst[len(opts.build_root) + 1:] - - if dest_arch and not arg.endswith('.pkg.fake'): - dest_arch.add(arg, arcname=dst) - - dst = os.path.join(opts.dest_dir, dst) - ensure_dir_exists(os.path.dirname(dst)) - hardlink_or_copy(arg, dst) - - if dest_arch: - dest_arch.close() - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/build/scripts/coverage-info.py b/build/scripts/coverage-info.py deleted file mode 100644 index 94491d9256..0000000000 --- a/build/scripts/coverage-info.py +++ /dev/null @@ -1,282 +0,0 @@ -import argparse -import os -import sys -import tarfile -import collections -import subprocess -import re - - -GCDA_EXT = '.gcda' -GCNO_EXT = '.gcno' - - -def suffixes(path): - """ - >>> list(suffixes('/a/b/c')) - ['c', 'b/c', '/a/b/c'] - >>> list(suffixes('/a/b/c/')) - ['c', 'b/c', '/a/b/c'] - >>> list(suffixes('/a')) - ['/a'] - >>> list(suffixes('/a/')) - ['/a'] - >>> list(suffixes('/')) - [] - """ - path = os.path.normpath(path) - - def up_dirs(cur_path): - while os.path.dirname(cur_path) != cur_path: - cur_path = os.path.dirname(cur_path) - yield cur_path - - for x in up_dirs(path): - yield path.replace(x + os.path.sep, '') - - -def recast(in_file, out_file, probe_path, update_stat): - PREFIX = 'SF:' - - probed_path = None - - any_payload = False - - with open(in_file, 'r') as input, open(out_file, 'w') as output: - active = True - for line in input: - line = line.rstrip('\n') - if line.startswith('TN:'): - output.write(line + '\n') - elif line.startswith(PREFIX): - path = line[len(PREFIX):] - probed_path = probe_path(path) - if probed_path: - output.write(PREFIX + probed_path + '\n') - active = bool(probed_path) - else: - if active: - update_stat(probed_path, line) - output.write(line + '\n') - any_payload = True - - return any_payload - - -def print_stat(da, fnda, teamcity_stat_output): - lines_hit = sum(map(bool, da.values())) - lines_total = len(da.values()) - lines_coverage = 100.0 * lines_hit / lines_total if lines_total else 0 - - func_hit = sum(map(bool, fnda.values())) - func_total = len(fnda.values()) - func_coverage = 100.0 * func_hit / func_total if func_total else 0 - - print >>sys.stderr, '[[imp]]Lines[[rst]] {: >16} {: >16} {: >16.1f}%'.format(lines_hit, lines_total, lines_coverage) - print >>sys.stderr, '[[imp]]Functions[[rst]] {: >16} {: >16} {: >16.1f}%'.format(func_hit, func_total, func_coverage) - - if teamcity_stat_output: - with open(teamcity_stat_output, 'w') as tc_file: - tc_file.write("##teamcity[blockOpened name='Code Coverage Summary']\n") - tc_file.write("##teamcity[buildStatisticValue key=\'CodeCoverageAbsLTotal\' value='{}']\n".format(lines_total)) - tc_file.write("##teamcity[buildStatisticValue key=\'CodeCoverageAbsLCovered\' value='{}']\n".format(lines_hit)) - tc_file.write("##teamcity[buildStatisticValue key=\'CodeCoverageAbsMTotal\' value='{}']\n".format(func_total)) - tc_file.write("##teamcity[buildStatisticValue key=\'CodeCoverageAbsMCovered\' value='{}']\n".format(func_hit)) - tc_file.write("##teamcity[blockClosed name='Code Coverage Summary']\n") - - -def chunks(l, n): - """ - >>> list(chunks(range(10), 3)) - [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] - >>> list(chunks(range(10), 5)) - [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]] - """ - for i in xrange(0, len(l), n): - yield l[i:i + n] - - -def combine_info_files(lcov, files, out_file): - chunk_size = 50 - files = list(set(files)) - - for chunk in chunks(files, chunk_size): - combine_cmd = [lcov] - if os.path.exists(out_file): - chunk.append(out_file) - for trace in chunk: - assert os.path.exists(trace), "Trace file does not exist: {} (cwd={})".format(trace, os.getcwd()) - combine_cmd += ["-a", os.path.abspath(trace)] - print >>sys.stderr, '## lcov', ' '.join(combine_cmd[1:]) - out_file_tmp = "combined.tmp" - with open(out_file_tmp, "w") as stdout: - subprocess.check_call(combine_cmd, stdout=stdout) - if os.path.exists(out_file): - os.remove(out_file) - os.rename(out_file_tmp, out_file) - - -def probe_path_global(path, source_root, prefix_filter, exclude_files): - if path.endswith('_ut.cpp'): - return None - - for suff in reversed(list(suffixes(path))): - if (not prefix_filter or suff.startswith(prefix_filter)) and (not exclude_files or not exclude_files.match(suff)): - full_path = source_root + os.sep + suff - if os.path.isfile(full_path): - return full_path - - return None - - -def update_stat_global(src_file, line, fnda, da): - if line.startswith("FNDA:"): - visits, func_name = line[len("FNDA:"):].split(',') - fnda[src_file + func_name] += int(visits) - - if line.startswith("DA"): - line_number, visits = line[len("DA:"):].split(',') - if visits == '=====': - visits = 0 - - da[src_file + line_number] += int(visits) - - -def gen_info_global(cmd, cov_info, probe_path, update_stat, lcov_args): - print >>sys.stderr, '## geninfo', ' '.join(cmd) - subprocess.check_call(cmd) - if recast(cov_info + '.tmp', cov_info, probe_path, update_stat): - lcov_args.append(cov_info) - - -def init_all_coverage_files(gcno_archive, fname2gcno, fname2info, geninfo_executable, gcov_tool, gen_info, prefix_filter, exclude_files): - with tarfile.open(gcno_archive) as gcno_tf: - for gcno_item in gcno_tf: - if gcno_item.isfile() and gcno_item.name.endswith(GCNO_EXT): - gcno_tf.extract(gcno_item) - - gcno_name = gcno_item.name - source_fname = gcno_name[:-len(GCNO_EXT)] - if prefix_filter and not source_fname.startswith(prefix_filter): - sys.stderr.write("Skipping {} (doesn't match prefix '{}')\n".format(source_fname, prefix_filter)) - continue - if exclude_files and exclude_files.search(source_fname): - sys.stderr.write("Skipping {} (matched exclude pattern '{}')\n".format(source_fname, exclude_files.pattern)) - continue - - fname2gcno[source_fname] = gcno_name - - if os.path.getsize(gcno_name) > 0: - coverage_info = source_fname + '.' + str(len(fname2info[source_fname])) + '.info' - fname2info[source_fname].append(coverage_info) - geninfo_cmd = [ - geninfo_executable, - '--gcov-tool', gcov_tool, - '-i', gcno_name, - '-o', coverage_info + '.tmp' - ] - gen_info(geninfo_cmd, coverage_info) - - -def process_all_coverage_files(gcda_archive, fname2gcno, fname2info, geninfo_executable, gcov_tool, gen_info): - with tarfile.open(gcda_archive) as gcda_tf: - for gcda_item in gcda_tf: - if gcda_item.isfile() and gcda_item.name.endswith(GCDA_EXT): - gcda_name = gcda_item.name - source_fname = gcda_name[:-len(GCDA_EXT)] - for suff in suffixes(source_fname): - if suff in fname2gcno: - gcda_new_name = suff + GCDA_EXT - gcda_item.name = gcda_new_name - gcda_tf.extract(gcda_item) - if os.path.getsize(gcda_new_name) > 0: - coverage_info = suff + '.' + str(len(fname2info[suff])) + '.info' - fname2info[suff].append(coverage_info) - geninfo_cmd = [ - geninfo_executable, - '--gcov-tool', gcov_tool, - gcda_new_name, - '-o', coverage_info + '.tmp' - ] - gen_info(geninfo_cmd, coverage_info) - - -def gen_cobertura(tool, output, combined_info): - cmd = [ - tool, - combined_info, - '-b', '#hamster#', - '-o', output - ] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - if p.returncode: - raise Exception('lcov_cobertura failed with exit code {}\nstdout: {}\nstderr: {}'.format(p.returncode, out, err)) - - -def main(source_root, output, gcno_archive, gcda_archive, gcov_tool, prefix_filter, exclude_regexp, teamcity_stat_output, coverage_report_path, gcov_report, lcov_cobertura): - exclude_files = re.compile(exclude_regexp) if exclude_regexp else None - - fname2gcno = {} - fname2info = collections.defaultdict(list) - lcov_args = [] - geninfo_executable = os.path.join(source_root, 'devtools', 'lcov', 'geninfo') - - def probe_path(path): - return probe_path_global(path, source_root, prefix_filter, exclude_files) - - fnda = collections.defaultdict(int) - da = collections.defaultdict(int) - - def update_stat(src_file, line): - update_stat_global(src_file, line, da, fnda) - - def gen_info(cmd, cov_info): - gen_info_global(cmd, cov_info, probe_path, update_stat, lcov_args) - - init_all_coverage_files(gcno_archive, fname2gcno, fname2info, geninfo_executable, gcov_tool, gen_info, prefix_filter, exclude_files) - process_all_coverage_files(gcda_archive, fname2gcno, fname2info, geninfo_executable, gcov_tool, gen_info) - - if coverage_report_path: - output_dir = coverage_report_path - else: - output_dir = output + '.dir' - - if not os.path.exists(output_dir): - os.makedirs(output_dir) - - teamcity_stat_file = None - if teamcity_stat_output: - teamcity_stat_file = os.path.join(output_dir, 'teamcity.out') - print_stat(da, fnda, teamcity_stat_file) - - if lcov_args: - output_trace = "combined.info" - combine_info_files(os.path.join(source_root, 'devtools', 'lcov', 'lcov'), lcov_args, output_trace) - cmd = [os.path.join(source_root, 'devtools', 'lcov', 'genhtml'), '-p', source_root, '--ignore-errors', 'source', '-o', output_dir, output_trace] - print >>sys.stderr, '## genhtml', ' '.join(cmd) - subprocess.check_call(cmd) - if lcov_cobertura: - gen_cobertura(lcov_cobertura, gcov_report, output_trace) - - with tarfile.open(output, 'w') as tar: - tar.add(output_dir, arcname='.') - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('--source-root', action='store') - parser.add_argument('--output', action='store') - parser.add_argument('--gcno-archive', action='store') - parser.add_argument('--gcda-archive', action='store') - parser.add_argument('--gcov-tool', action='store') - parser.add_argument('--prefix-filter', action='store') - parser.add_argument('--exclude-regexp', action='store') - parser.add_argument('--teamcity-stat-output', action='store_const', const=True) - parser.add_argument('--coverage-report-path', action='store') - parser.add_argument('--gcov-report', action='store') - parser.add_argument('--lcov-cobertura', action='store') - - args = parser.parse_args() - main(**vars(args)) diff --git a/build/scripts/cpp_flatc_wrapper.py b/build/scripts/cpp_flatc_wrapper.py deleted file mode 100644 index 9f74b65570..0000000000 --- a/build/scripts/cpp_flatc_wrapper.py +++ /dev/null @@ -1,30 +0,0 @@ -import os -import subprocess -import sys - - -def main(): - cmd = sys.argv[1:] - h_file = None - try: - index = cmd.index('-o') - h_file = cmd[index+1] - cmd[index+1] = os.path.dirname(h_file) - except (ValueError, IndexError): - pass - p = subprocess.run(cmd, capture_output=True, text=True) - if p.returncode: - if p.stdout: - sys.stderr.write('stdout:\n{}\n'.format(p.stdout)) - if p.stderr: - sys.stderr.write('stderr:\n{}\n'.format(p.stderr)) - sys.exit(p.returncode) - if h_file and h_file.endswith(('.fbs.h', '.fbs64.h')): - cpp_file = '{}.cpp'.format(h_file[:-2]) - with open(cpp_file, 'w') as f: - f.write('#include "{}"\n'.format(os.path.basename(h_file))) - sys.exit(0) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/create_jcoverage_report.py b/build/scripts/create_jcoverage_report.py deleted file mode 100644 index 45083ff4f7..0000000000 --- a/build/scripts/create_jcoverage_report.py +++ /dev/null @@ -1,112 +0,0 @@ -import argparse -import tarfile -import zipfile -import os -import sys -import time -import subprocess - - -def mkdir_p(path): - try: - os.makedirs(path) - except OSError: - pass - - -class Timer(object): - - def __init__(self): - self.start = time.time() - - def step(self, msg): - sys.stderr.write("{} ({}s)\n".format(msg, int(time.time() - self.start))) - self.start = time.time() - - -def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_format, tar_output, agent_disposition, runners_paths): - timer = Timer() - reports_dir = 'jacoco_reports_dir' - mkdir_p(reports_dir) - with tarfile.open(source) as tf: - tf.extractall(reports_dir) - timer.step("Coverage data extracted") - reports = [os.path.join(reports_dir, fname) for fname in os.listdir(reports_dir)] - - with open(jars_list) as f: - jars = f.read().strip().split() - if jars and runners_paths: - for r in runners_paths: - try: - jars.remove(r) - except ValueError: - pass - - src_dir = 'sources_dir' - cls_dir = 'classes_dir' - - mkdir_p(src_dir) - mkdir_p(cls_dir) - - for jar in jars: - if jar.endswith('devtools-jacoco-agent.jar'): - agent_disposition = jar - - # Skip java contrib - it's irrelevant coverage - if jar.startswith('contrib/java'): - continue - - with zipfile.ZipFile(jar) as jf: - for entry in jf.infolist(): - if entry.filename.endswith('.java'): - dest = src_dir - - elif entry.filename.endswith('.class'): - dest = cls_dir - - else: - continue - - entry.filename = entry.filename.encode('utf-8') - jf.extract(entry, dest) - timer.step("Jar files extracted") - - if not agent_disposition: - print>>sys.stderr, 'Can\'t find jacoco agent. Will not generate html report for java coverage.' - - if tar_output: - report_dir = 'java.report.temp' - else: - report_dir = output - mkdir_p(report_dir) - - if agent_disposition: - agent_cmd = [java, '-jar', agent_disposition, src_dir, cls_dir, prefix_filter or '.', exclude_filter or '__no_exclude__', report_dir, output_format] - agent_cmd += reports - subprocess.check_call(agent_cmd) - timer.step("Jacoco finished") - - if tar_output: - with tarfile.open(output, 'w') as outf: - outf.add(report_dir, arcname='.') - - -if __name__ == '__main__': - if 'LC_ALL' in os.environ: - if os.environ['LC_ALL'] == 'C': - os.environ['LC_ALL'] = 'en_GB.UTF-8' - - parser = argparse.ArgumentParser() - - parser.add_argument('--source', action='store') - parser.add_argument('--output', action='store') - parser.add_argument('--java', action='store') - parser.add_argument('--prefix-filter', action='store') - parser.add_argument('--exclude-filter', action='store') - parser.add_argument('--jars-list', action='store') - parser.add_argument('--output-format', action='store', default="html") - parser.add_argument('--raw-output', dest='tar_output', action='store_false', default=True) - parser.add_argument('--agent-disposition', action='store') - parser.add_argument('--runner-path', dest='runners_paths', action='append', default=[]) - args = parser.parse_args() - main(**vars(args)) diff --git a/build/scripts/custom_link_green_mysql.py b/build/scripts/custom_link_green_mysql.py deleted file mode 100644 index 13bb9e4ac7..0000000000 --- a/build/scripts/custom_link_green_mysql.py +++ /dev/null @@ -1,97 +0,0 @@ -import os -import shutil -import subprocess -import sys -import tempfile - - -SYMBOLS_TO_PATCH = ( - 'connect', - 'poll', - 'recv', - 'recvfrom', - 'send', - 'sendto', -) - -class Error(Exception): - pass - - -def find_compiler(args): - for arg in args: - if os.path.basename(arg) in ('clang', 'clang++'): - return arg - raise Error('No known compiler found in the command line') - - -def find_libraries(project, args): - if not project.endswith('/'): - project = project + '/' - - for arg in args: - if arg.startswith(project): - yield arg - - -def rename_symbol(symbol): - return 'green_{}'.format(symbol) - - -def patch_object(object_path, objcopy): - args = [objcopy] - for symbol in SYMBOLS_TO_PATCH: - args.extend(('--redefine-sym', '{}={}'.format(symbol, rename_symbol(symbol)))) - args.append(object_path) - subprocess.check_call(args) - - -def patch_library(library_path, ar, objcopy): - tmpdir = tempfile.mkdtemp(dir=os.path.dirname(library_path)) - try: - subprocess.check_call((ar, 'x', library_path), cwd=tmpdir) - names = os.listdir(tmpdir) - for name in names: - patch_object(os.path.join(tmpdir, name), objcopy=objcopy) - - new_library_path = os.path.join(tmpdir, 'library.a') - subprocess.check_call([ar, 'rcs', new_library_path] + names, cwd=tmpdir) - - os.rename(new_library_path, library_path) - - finally: - shutil.rmtree(tmpdir) - - -def main(): - try: - args = sys.argv[1:] - compiler = find_compiler(args) - compiler_dir = os.path.dirname(compiler) - - def get_tool(name): - path = os.path.join(compiler_dir, name) - if not os.path.exists(path): - raise Error('No {} found alongside the compiler'.format(name)) - return path - - ar = get_tool('llvm-ar') - objcopy = get_tool('llvm-objcopy') - - libraries = tuple(find_libraries('contrib/libs/libmysql_r', args)) - for library in libraries: - library_path = os.path.abspath(library) - if not os.path.exists(library_path): - raise Error('No {} file exists'.format(library)) - - patch_library(library_path, ar=ar, objcopy=objcopy) - - except Exception as error: - name = os.path.basename(sys.argv[0]) - command = ' '.join(args) - message = '{name} failed: {error}\nCommand line: {command}' - print >> sys.stderr, message.format(**locals()) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/decimal_md5.py b/build/scripts/decimal_md5.py deleted file mode 100644 index e70ca80a09..0000000000 --- a/build/scripts/decimal_md5.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import hashlib -import struct -import sys -import os -import argparse - - -def print_code(checksum, func_name): - if len(func_name) == 0: # safe fallback for old ya.make files - func_name = "DecimalMD5" - print 'const char* ' + func_name + '() {return "' + checksum + '";}' - - -def ensure_paths_exist(paths): - bad_paths = sorted( - path for path in paths - if not os.path.exists(path) - ) - if bad_paths: - print >> sys.stderr, "decimal_md5 inputs do not exist:" - for path in bad_paths: - print >> sys.stderr, path - sys.exit(1) - - -def _update_digest_with_file_contents(digest, path, block_size=65535): - with open(path) as f: - while True: - block = f.read(block_size) - if not block: - break - digest.update(block) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--fixed-output", help="don not calculate md5, use this value instead") - parser.add_argument("--lower-bits", help="use specified count of lower bits", type=int, default=32) - parser.add_argument("--source-root", help="arcadia source root") - parser.add_argument("--func-name", help="custom function name to be defined", default="DecimalMD5") - parser.add_argument("targets", nargs='*', default=['.']) - - args = parser.parse_args() - - abs_paths = [ - os.path.join(args.source_root, target) - for target in args.targets - ] - ensure_paths_exist(abs_paths) - - if args.fixed_output: - try: - bitmask = (1 << args.lower_bits) - 1 - fmt = '{:0%dd}' % len(str(bitmask)) - checksum = fmt.format(int(args.fixed_output) & bitmask) - except ValueError: - raise ValueError("decimal_md5: bad value passed via --fixed-output: %s" % args.fixed_output) - print_code(str(checksum), func_name=args.func_name) - return - - md5 = hashlib.md5() - for path in abs_paths: - _update_digest_with_file_contents(md5, path) - - md5_parts = struct.unpack('IIII', md5.digest()) - md5_int = sum(part << (32 * n) for n, part in enumerate(md5_parts)) - bitmask = (1 << args.lower_bits) - 1 - fmt = '{:0%dd}' % len(str(bitmask)) - - checksum_str = fmt.format(md5_int & bitmask) - print_code(checksum_str, func_name=args.func_name) - - -if __name__ == "__main__": - main() - diff --git a/build/scripts/error.py b/build/scripts/error.py deleted file mode 100644 index f7d8ecb2cc..0000000000 --- a/build/scripts/error.py +++ /dev/null @@ -1,77 +0,0 @@ -# Sync content of this file with devtools/ya/core/error/__init__.py - -TEMPORARY_ERROR_MESSAGES = [ - 'Connection reset by peer', - 'Connection timed out', - 'Function not implemented', - 'I/O operation on closed file', - 'Internal Server Error', - 'Network connection closed unexpectedly', - 'Network is unreachable', - 'No route to host', - 'No space left on device', - 'Not enough space', - 'Temporary failure in name resolution', - 'The read operation timed out', - 'timeout: timed out', -] - - -# Node exit codes -class ExitCodes(object): - TEST_FAILED = 10 - COMPILATION_FAILED = 11 - INFRASTRUCTURE_ERROR = 12 - NOT_RETRIABLE_ERROR = 13 - YT_STORE_FETCH_ERROR = 14 - - -def merge_exit_codes(exit_codes): - return max(e if e >= 0 else 1 for e in exit_codes) if exit_codes else 0 - - -def is_temporary_error(exc): - import logging - logger = logging.getLogger(__name__) - - if getattr(exc, 'temporary', False): - logger.debug("Exception has temporary attribute: %s", exc) - return True - - import errno - err = getattr(exc, 'errno', None) - - if err == errno.ECONNREFUSED or err == errno.ENETUNREACH: - logger.debug("Exception has errno attribute: %s (errno=%s)", exc, err) - return True - - import socket - - if isinstance(exc, socket.timeout) or isinstance(getattr(exc, 'reason', None), socket.timeout): - logger.debug("Socket timeout exception: %s", exc) - return True - - if isinstance(exc, socket.gaierror): - logger.debug("Getaddrinfo exception: %s", exc) - return True - - import urllib2 - - if isinstance(exc, urllib2.HTTPError) and exc.code in (429, ): - logger.debug("urllib2.HTTPError: %s", exc) - return True - - import httplib - - if isinstance(exc, httplib.IncompleteRead): - logger.debug("IncompleteRead exception: %s", exc) - return True - - exc_str = str(exc) - - for message in TEMPORARY_ERROR_MESSAGES: - if message in exc_str: - logger.debug("Found temporary error pattern (%s): %s", message, exc_str) - return True - - return False diff --git a/build/scripts/extract_asrc.py b/build/scripts/extract_asrc.py deleted file mode 100644 index 89892ddf2d..0000000000 --- a/build/scripts/extract_asrc.py +++ /dev/null @@ -1,23 +0,0 @@ -import argparse -import os -import tarfile - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--input', nargs='*', required=True) - parser.add_argument('--output', required=True) - - return parser.parse_args() - - -def main(): - args = parse_args() - - for asrc in filter(lambda x: x.endswith('.asrc') and os.path.exists(x), args.input): - with tarfile.open(asrc, 'r') as tar: - tar.extractall(path=args.output) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/extract_docs.py b/build/scripts/extract_docs.py deleted file mode 100644 index 20e8311346..0000000000 --- a/build/scripts/extract_docs.py +++ /dev/null @@ -1,43 +0,0 @@ -import argparse -import os -import process_command_files as pcf -import tarfile -import sys - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--dest-dir', required=True) - parser.add_argument('--skip-prefix', dest='skip_prefixes', action='append', default=[]) - parser.add_argument('docs', nargs='*') - return parser.parse_args(pcf.get_args(sys.argv[1:])) - - -def main(): - args = parse_args() - - prefixes = ['{}{}'.format(os.path.normpath(p), os.path.sep) for p in args.skip_prefixes] - - def _valid_docslib(path): - base = os.path.basename(path) - return base.endswith(('.docslib', '.docslib.fake')) or base == 'preprocessed.tar.gz' - - for src in [p for p in args.docs if _valid_docslib(p)]: - if src == 'preprocessed.tar.gz': - rel_dst = os.path.dirname(os.path.normpath(src)) - for prefix in prefixes: - if src.startswith(prefix): - rel_dst = rel_dst[len(prefix):] - continue - assert not os.path.isabs(rel_dst) - dest_dir = os.path.join(args.dest_dir, rel_dst) - else: - dest_dir = args.dest_dir - if not os.path.exists(dest_dir): - os.makedirs(dest_dir) - with tarfile.open(src, 'r') as tar_file: - tar_file.extractall(dest_dir) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/extract_jacoco_report.py b/build/scripts/extract_jacoco_report.py deleted file mode 100644 index 02e4ba9f13..0000000000 --- a/build/scripts/extract_jacoco_report.py +++ /dev/null @@ -1,29 +0,0 @@ -import argparse -import os -import re -import tarfile - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('--archive', action='store') - parser.add_argument('--source-re', action='store') - parser.add_argument('--destination', action='store') - - args = parser.parse_args() - - with tarfile.open(args.archive) as tf: - open(args.destination, 'wb').close() - extract_list = [] - matcher = re.compile(args.source_re) - temp_dir = os.path.join(os.path.dirname(args.destination), 'temp_profiles') - if not os.path.exists(temp_dir): - os.makedirs(temp_dir) - for f in [i for i in tf if matcher.match(i.name)]: - tf.extract(f, path=temp_dir) - for directory, _, srcs in os.walk(temp_dir): - for f in srcs: - with open(args.destination, 'ab') as dst: - with open(os.path.join(temp_dir, directory, f), 'rb') as src: - dst.write(src.read()) diff --git a/build/scripts/f2c.py b/build/scripts/f2c.py deleted file mode 100644 index 7021e1391f..0000000000 --- a/build/scripts/f2c.py +++ /dev/null @@ -1,58 +0,0 @@ -import sys -import subprocess -import argparse -import os - - -header = '''\ -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wmissing-braces" -#pragma GCC diagnostic ignored "-Wuninitialized" -#pragma GCC diagnostic ignored "-Wreturn-type" -#pragma GCC diagnostic ignored "-Wmissing-field-initializers" -#endif - -''' - -footer = ''' -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif -''' - - -def mkdir_p(directory): - if not os.path.exists(directory): - os.makedirs(directory) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('-t', '--tool') - parser.add_argument('-c', '--input') - parser.add_argument('-o', '--output') - - args = parser.parse_args() - tmpdir = args.output + '.f2c' - mkdir_p(tmpdir) - # should parse includes, really - p = subprocess.Popen( - [args.tool, '-w', '-R', '-a', '-I' + os.path.dirname(args.input), '-T' + tmpdir], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) - stdout, stderr = p.communicate(input=open(args.input).read()) - ret = p.wait() - - if ret: - print >>sys.stderr, 'f2c failed: %s, %s' % (stderr, ret) - sys.exit(ret) - - if 'Error' in stderr: - print >>sys.stderr, stderr - - with open(args.output, 'w') as f: - f.write(header) - f.write(stdout) - f.write(footer) diff --git a/build/scripts/fail_module_cmd.py b/build/scripts/fail_module_cmd.py deleted file mode 100644 index fa14c0d851..0000000000 --- a/build/scripts/fail_module_cmd.py +++ /dev/null @@ -1,7 +0,0 @@ -import sys - - -if __name__ == '__main__': - assert len(sys.argv) == 2, 'Unexpected number of arguments...' - sys.stderr.write('Error: module command for target [[bad]]{}[[rst]] was not executed due to build graph configuration errors...\n'.format(sys.argv[1])) - sys.exit(1) diff --git a/build/scripts/fetch_from.py b/build/scripts/fetch_from.py deleted file mode 100755 index 78306d1794..0000000000 --- a/build/scripts/fetch_from.py +++ /dev/null @@ -1,393 +0,0 @@ -import datetime as dt -import errno -import hashlib -import json -import logging -import os -import platform -import random -import shutil -import socket -import string -import sys -import tarfile -import urllib2 - -import retry - - -def make_user_agent(): - return 'fetch_from: {host}'.format(host=socket.gethostname()) - - -def add_common_arguments(parser): - parser.add_argument('--copy-to') # used by jbuild in fetch_resource - parser.add_argument('--rename-to') # used by test_node in inject_mds_resource_to_graph - parser.add_argument('--copy-to-dir') - parser.add_argument('--untar-to') - parser.add_argument('--rename', action='append', default=[], metavar='FILE', help='rename FILE to the corresponding output') - parser.add_argument('--executable', action='store_true', help='make outputs executable') - parser.add_argument('--log-path') - parser.add_argument('-v', '--verbose', action='store_true', default=os.environ.get('YA_VERBOSE_FETCHER'), help='increase stderr verbosity') - parser.add_argument('outputs', nargs='*', default=[]) - - -def ensure_dir(path): - if not (path == '' or os.path.isdir(path)): - os.makedirs(path) - - -# Reference code: library/python/fs/__init__.py -def hardlink_or_copy(src, dst): - ensure_dir(os.path.dirname(dst)) - - if os.name == 'nt': - shutil.copy(src, dst) - else: - try: - os.link(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - return - elif e.errno in (errno.EXDEV, errno.EMLINK, errno.EINVAL, errno.EACCES): - sys.stderr.write("Can't make hardlink (errno={}) - fallback to copy: {} -> {}\n".format(e.errno, src, dst)) - shutil.copy(src, dst) - else: - raise - - -def rename_or_copy_and_remove(src, dst): - ensure_dir(os.path.dirname(dst)) - - try: - os.rename(src, dst) - except OSError: - shutil.copy(src, dst) - os.remove(src) - - -class BadChecksumFetchError(Exception): - pass - - -class IncompleteFetchError(Exception): - pass - - -class ResourceUnpackingError(Exception): - pass - - -class ResourceIsDirectoryError(Exception): - pass - - -class OutputIsDirectoryError(Exception): - pass - - -class OutputNotExistError(Exception): - pass - - -def setup_logging(args, base_name): - def makedirs(path): - try: - os.makedirs(path) - except OSError: - pass - - if args.log_path: - log_file_name = args.log_path - else: - log_file_name = base_name + ".log" - - args.abs_log_path = os.path.abspath(log_file_name) - makedirs(os.path.dirname(args.abs_log_path)) - logging.basicConfig(filename=args.abs_log_path, level=logging.DEBUG) - if args.verbose: - logging.getLogger().addHandler(logging.StreamHandler(sys.stderr)) - - -def is_temporary(e): - - def is_broken(e): - return isinstance(e, urllib2.HTTPError) and e.code in (410, 404) - - if is_broken(e): - return False - - if isinstance(e, (BadChecksumFetchError, IncompleteFetchError, urllib2.URLError, socket.error)): - return True - - import error - - return error.is_temporary_error(e) - - -def uniq_string_generator(size=6, chars=string.ascii_lowercase + string.digits): - return ''.join(random.choice(chars) for _ in range(size)) - - -def report_to_snowden(value): - def inner(): - body = { - 'namespace': 'ygg', - 'key': 'fetch-from-sandbox', - 'value': json.dumps(value), - } - - urllib2.urlopen( - 'https://back-snowden.qloud.yandex-team.ru/report/add', - json.dumps([body, ]), - timeout=5, - ) - - try: - inner() - except Exception as e: - logging.warning('report_to_snowden failed: %s', e) - - -def copy_stream(read, *writers, **kwargs): - chunk_size = kwargs.get('size', 1024*1024) - while True: - data = read(chunk_size) - if not data: - break - for write in writers: - write(data) - - -def md5file(fname): - res = hashlib.md5() - with open(fname, 'rb') as f: - copy_stream(f.read, res.update) - return res.hexdigest() - - -def git_like_hash_with_size(filepath): - """ - Calculate git like hash for path - """ - sha = hashlib.sha1() - - file_size = 0 - - with open(filepath, 'rb') as f: - while True: - block = f.read(2 ** 16) - - if not block: - break - - file_size += len(block) - sha.update(block) - - sha.update('\0') - sha.update(str(file_size)) - - return sha.hexdigest(), file_size - - -def size_printer(display_name, size): - sz = [0] - last_stamp = [dt.datetime.now()] - - def printer(chunk): - sz[0] += len(chunk) - now = dt.datetime.now() - if last_stamp[0] + dt.timedelta(seconds=10) < now: - if size: - print >>sys.stderr, "##status##{} - [[imp]]{:.1f}%[[rst]]".format(display_name, 100.0 * sz[0] / size if size else 0) - last_stamp[0] = now - - return printer - - -def fetch_url(url, unpack, resource_file_name, expected_md5=None, expected_sha1=None, tries=10, writers=None): - logging.info('Downloading from url %s name %s and expected md5 %s', url, resource_file_name, expected_md5) - tmp_file_name = uniq_string_generator() - - request = urllib2.Request(url, headers={'User-Agent': make_user_agent()}) - req = retry.retry_func(lambda: urllib2.urlopen(request, timeout=30), tries=tries, delay=5, backoff=1.57079) - logging.debug('Headers: %s', req.headers.headers) - expected_file_size = int(req.headers.get('Content-Length', 0)) - real_md5 = hashlib.md5() - real_sha1 = hashlib.sha1() - - with open(tmp_file_name, 'wb') as fp: - copy_stream( - req.read, - fp.write, - real_md5.update, - real_sha1.update, - size_printer(resource_file_name, expected_file_size), - *([] if writers is None else writers) - ) - - real_md5 = real_md5.hexdigest() - real_file_size = os.path.getsize(tmp_file_name) - real_sha1.update('\0') - real_sha1.update(str(real_file_size)) - real_sha1 = real_sha1.hexdigest() - - if unpack: - tmp_dir = tmp_file_name + '.dir' - os.makedirs(tmp_dir) - with tarfile.open(tmp_file_name, mode="r|gz") as tar: - tar.extractall(tmp_dir) - tmp_file_name = os.path.join(tmp_dir, resource_file_name) - real_md5 = md5file(tmp_file_name) - - logging.info('File size %s (expected %s)', real_file_size, expected_file_size or "UNKNOWN") - logging.info('File md5 %s (expected %s)', real_md5, expected_md5) - logging.info('File sha1 %s (expected %s)', real_sha1, expected_sha1) - - if expected_md5 and real_md5 != expected_md5: - report_to_snowden( - { - 'headers': req.headers.headers, - 'expected_md5': expected_md5, - 'real_md5': real_md5 - } - ) - - raise BadChecksumFetchError( - 'Downloaded {}, but expected {} for {}'.format( - real_md5, - expected_md5, - url, - ) - ) - - if expected_sha1 and real_sha1 != expected_sha1: - report_to_snowden( - { - 'headers': req.headers.headers, - 'expected_sha1': expected_sha1, - 'real_sha1': real_sha1 - } - ) - - raise BadChecksumFetchError( - 'Downloaded {}, but expected {} for {}'.format( - real_sha1, - expected_sha1, - url, - ) - ) - - if expected_file_size and expected_file_size != real_file_size: - report_to_snowden({'headers': req.headers.headers, 'file_size': real_file_size}) - - raise IncompleteFetchError( - 'Downloaded {}, but expected {} for {}'.format( - real_file_size, - expected_file_size, - url, - ) - ) - - return tmp_file_name - - -def chmod(filename, mode): - if platform.system().lower() == 'windows': - # https://docs.microsoft.com/en-us/windows/win32/fileio/hard-links-and-junctions: - # hard to reset read-only attribute for removal if there are multiple hardlinks - return - stat = os.stat(filename) - if stat.st_mode & 0o777 != mode: - try: - os.chmod(filename, mode) - except OSError: - import pwd - sys.stderr.write("{} st_mode: {} pwuid: {}\n".format(filename, stat.st_mode, pwd.getpwuid(os.stat(filename).st_uid))) - raise - - -def process(fetched_file, file_name, args, remove=True): - assert len(args.rename) <= len(args.outputs), ( - 'too few outputs to rename', args.rename, 'into', args.outputs) - - fetched_file_is_dir = os.path.isdir(fetched_file) - if fetched_file_is_dir and not args.untar_to: - raise ResourceIsDirectoryError('Resource may be directory only with untar_to option: ' + fetched_file) - - # make all read only - if fetched_file_is_dir: - for root, _, files in os.walk(fetched_file): - for filename in files: - chmod(os.path.join(root, filename), 0o444) - else: - chmod(fetched_file, 0o444) - - - if args.copy_to: - hardlink_or_copy(fetched_file, args.copy_to) - if not args.outputs: - args.outputs = [args.copy_to] - - if args.rename_to: - args.rename.append(fetched_file) - if not args.outputs: - args.outputs = [args.rename_to] - - if args.copy_to_dir: - hardlink_or_copy(fetched_file, os.path.join(args.copy_to_dir, file_name)) - - if args.untar_to: - ensure_dir(args.untar_to) - inputs = set(map(os.path.normpath, args.rename + args.outputs[len(args.rename):])) - if fetched_file_is_dir: - for member in inputs: - hardlink_or_copy( - os.path.normpath(os.path.join(fetched_file, member)), - os.path.normpath(os.path.join(args.untar_to, member))) - else: - # Extract only requested files - try: - with tarfile.open(fetched_file, mode='r:*') as tar: - members = [entry for entry in tar if os.path.normpath(os.path.join(args.untar_to, entry.name)) in inputs] - tar.extractall(args.untar_to, members=members) - except tarfile.ReadError as e: - logging.exception(e) - raise ResourceUnpackingError('File {} cannot be untared'.format(fetched_file)) - - # Forbid changes to the loaded resource data - for root, _, files in os.walk(args.untar_to): - for filename in files: - chmod(os.path.join(root, filename), 0o444) - - - for src, dst in zip(args.rename, args.outputs): - if src == 'RESOURCE': - src = fetched_file - if os.path.abspath(src) == os.path.abspath(fetched_file): - logging.info('Copying %s to %s', src, dst) - hardlink_or_copy(src, dst) - else: - logging.info('Renaming %s to %s', src, dst) - if os.path.exists(dst): - raise ResourceUnpackingError("Target file already exists ({} -> {})".format(src, dst)) - if remove: - rename_or_copy_and_remove(src, dst) - else: - hardlink_or_copy(src, dst) - - for path in args.outputs: - if not os.path.exists(path): - raise OutputNotExistError('Output does not exist: %s' % os.path.abspath(path)) - if not os.path.isfile(path): - raise OutputIsDirectoryError('Output must be a file, not a directory: %s' % os.path.abspath(path)) - if args.executable: - chmod(path, os.stat(path).st_mode | 0o111) - if os.path.abspath(path) == os.path.abspath(fetched_file): - remove = False - - if remove: - if fetched_file_is_dir: - shutil.rmtree(fetched_file) - else: - os.remove(fetched_file) diff --git a/build/scripts/fetch_from_archive.py b/build/scripts/fetch_from_archive.py deleted file mode 100644 index 57aff91b5e..0000000000 --- a/build/scripts/fetch_from_archive.py +++ /dev/null @@ -1,36 +0,0 @@ -import os -import sys -import logging -import argparse - -import fetch_from - - -def parse_args(): - parser = argparse.ArgumentParser() - fetch_from.add_common_arguments(parser) - parser.add_argument('--file-name', required=True) - parser.add_argument('--archive', required=True) - - return parser.parse_args() - -def main(args): - archive = args.archive - file_name = args.file_name.rstrip('-') - - fetch_from.process(archive, file_name, args, remove=False) - - -if __name__ == '__main__': - args = parse_args() - fetch_from.setup_logging(args, os.path.basename(__file__)) - - try: - main(args) - except Exception as e: - logging.exception(e) - print >>sys.stderr, open(args.abs_log_path).read() - sys.stderr.flush() - - import error - sys.exit(error.ExitCodes.INFRASTRUCTURE_ERROR if fetch_from.is_temporary(e) else 1) diff --git a/build/scripts/fetch_from_external.py b/build/scripts/fetch_from_external.py deleted file mode 100644 index d4ed6f4221..0000000000 --- a/build/scripts/fetch_from_external.py +++ /dev/null @@ -1,60 +0,0 @@ -import sys -import json -import os.path -import fetch_from -import argparse -import logging - - -def parse_args(): - parser = argparse.ArgumentParser() - fetch_from.add_common_arguments(parser) - parser.add_argument('--external-file', required=True) - parser.add_argument('--custom-fetcher') - parser.add_argument('--resource-file') - return parser.parse_args() - - -def main(args): - external_file = args.external_file.rstrip('.external') - if os.path.isfile(args.resource_file): - fetch_from.process(args.resource_file, os.path.basename(args.resource_file), args, False) - return - - error = None - try: - with open(args.external_file) as f: - js = json.load(f) - - if js['storage'] == 'SANDBOX': - import fetch_from_sandbox as ffsb - del args.external_file - args.resource_id = js['resource_id'] - ffsb.main(args) - elif js['storage'] == 'MDS': - import fetch_from_mds as fmds - del args.external_file - args.key = js['resource_id'] - fmds.main(args) - else: - error = 'Unsupported storage in {}'.format(external_file) - except: - logging.error('Invalid external file: {}'.format(external_file)) - raise - if error: - raise Exception(error) - - -if __name__ == '__main__': - args = parse_args() - fetch_from.setup_logging(args, os.path.basename(__file__)) - - try: - main(args) - except Exception as e: - logging.exception(e) - print >>sys.stderr, open(args.abs_log_path).read() - sys.stderr.flush() - - import error - sys.exit(error.ExitCodes.INFRASTRUCTURE_ERROR if fetch_from.is_temporary(e) else 1) diff --git a/build/scripts/fetch_from_mds.py b/build/scripts/fetch_from_mds.py deleted file mode 100644 index 5e4e656394..0000000000 --- a/build/scripts/fetch_from_mds.py +++ /dev/null @@ -1,50 +0,0 @@ -import os -import sys -import logging -import argparse - -import fetch_from - -MDS_PREFIX = "https://storage.yandex-team.ru/get-devtools/" - - -def parse_args(): - parser = argparse.ArgumentParser() - fetch_from.add_common_arguments(parser) - - parser.add_argument('--key', required=True) - - return parser.parse_args() - - -def fetch(key): - parts = key.split("/") - if len(parts) != 3: - raise ValueError("Invalid MDS key '{}'".format(key)) - - _, sha1, file_name = parts - - fetched_file = fetch_from.fetch_url(MDS_PREFIX + key, False, file_name, expected_sha1=sha1) - - return fetched_file, file_name - - -def main(args): - fetched_file, resource_file_name = fetch(args.key) - - fetch_from.process(fetched_file, resource_file_name, args) - - -if __name__ == '__main__': - args = parse_args() - fetch_from.setup_logging(args, os.path.basename(__file__)) - - try: - main(args) - except Exception as e: - logging.exception(e) - print >>sys.stderr, open(args.abs_log_path).read() - sys.stderr.flush() - - import error - sys.exit(error.ExitCodes.INFRASTRUCTURE_ERROR if fetch_from.is_temporary(e) else 1) diff --git a/build/scripts/fetch_from_npm.py b/build/scripts/fetch_from_npm.py deleted file mode 100644 index 3f87c1fefa..0000000000 --- a/build/scripts/fetch_from_npm.py +++ /dev/null @@ -1,109 +0,0 @@ -import os -import sys -import time -import logging -import argparse -import hashlib - -import sky -import fetch_from - - -NPM_BASEURL = "http://npm.yandex-team.ru/" - - -def parse_args(): - parser = argparse.ArgumentParser() - fetch_from.add_common_arguments(parser) - - parser.add_argument("--name", required=True) - parser.add_argument("--version", required=True) - parser.add_argument("--sky-id", required=True) - parser.add_argument("--integrity", required=True) - parser.add_argument("--integrity-algorithm", required=True) - - return parser.parse_args() - - -def fetch(name, version, sky_id, integrity, integrity_algorithm, file_name, tries=5): - """ - :param name: package name - :type name: str - :param version: package version - :type version: str - :param sky_id: sky id of tarball - :type sky_id: str - :param integrity: tarball integrity (hex) - :type integrity: str - :param integrity_algorithm: integrity algorithm (known for openssl) - :type integrity_algorithm: str - :param tries: tries count - :type tries: int - :return: path to fetched file - :rtype: str - """ - # if sky.is_avaliable() and 'NOTS_FETCH_FROM_HTTP_ONLY' not in os.environ: - # fetcher = lambda: sky.fetch(sky_id, file_name) - # else: - # Отключаем походы через скай - # TODO: https://st.yandex-team.ru/FBP-351 - if 'NOTS_FETCH_FROM_SKY' in os.environ and sky.is_avaliable(): - fetcher = lambda: sky.fetch(sky_id, file_name) - else: - fetcher = lambda: _fetch_via_http(name, version, integrity, integrity_algorithm, file_name) - - fetched_file = None - exc_info = None - - for i in range(0, tries): - try: - fetched_file = fetcher() - exc_info = None - break - except Exception as e: - logging.exception(e) - exc_info = exc_info or sys.exc_info() - time.sleep(i) - - if exc_info: - raise exc_info[0], exc_info[1], exc_info[2] - - return fetched_file - - -def _fetch_via_http(name, version, integrity, integrity_algorithm, file_name): - # Example: "http://npm.yandex-team.ru/@scope/name/-/name-0.0.1.tgz" for @scope/name v0.0.1. - url = NPM_BASEURL + "/".join([name, "-", "{}-{}.tgz".format(name.split("/").pop(), version)]) - - hashobj = hashlib.new(integrity_algorithm) - fetched_file = fetch_from.fetch_url(url, False, file_name, tries=1, writers=[hashobj.update]) - - if hashobj.hexdigest() != integrity: - raise fetch_from.BadChecksumFetchError("Expected {}, but got {} for {}".format( - integrity, - hashobj.hexdigest(), - file_name, - )) - - return fetched_file - - -def main(args): - file_name = os.path.basename(args.copy_to) - fetched_file = fetch(args.name, args.version, args.sky_id, args.integrity, args.integrity_algorithm, file_name) - fetch_from.process(fetched_file, file_name, args) - - -if __name__ == "__main__": - args = parse_args() - fetch_from.setup_logging(args, os.path.basename(__file__)) - - try: - main(args) - except Exception as e: - logging.exception(e) - print >>sys.stderr, open(args.abs_log_path).read() - sys.stderr.flush() - - import error - sys.exit(error.ExitCodes.INFRASTRUCTURE_ERROR if fetch_from.is_temporary(e) else 1) diff --git a/build/scripts/fetch_from_sandbox.py b/build/scripts/fetch_from_sandbox.py deleted file mode 100755 index a99542e174..0000000000 --- a/build/scripts/fetch_from_sandbox.py +++ /dev/null @@ -1,269 +0,0 @@ -import itertools -import json -import logging -import argparse -import os -import random -import subprocess -import sys -import time -import urllib2 -import uuid - -import fetch_from - - -ORIGIN_SUFFIX = '?origin=fetch-from-sandbox' -MDS_PREFIX = 'http://storage-int.mds.yandex.net/get-sandbox/' -TEMPORARY_ERROR_CODES = (429, 500, 503, 504) - - -def parse_args(): - parser = argparse.ArgumentParser() - fetch_from.add_common_arguments(parser) - parser.add_argument('--resource-id', type=int, required=True) - parser.add_argument('--custom-fetcher') - parser.add_argument('--resource-file') - return parser.parse_args() - - -class ResourceInfoError(Exception): - pass - - -class UnsupportedProtocolException(Exception): - pass - - -def _sky_path(): - return "/usr/local/bin/sky" - - -def _is_skynet_avaliable(): - if not os.path.exists(_sky_path()): - return False - try: - subprocess.check_output([_sky_path(), "--version"]) - return True - except subprocess.CalledProcessError: - return False - except OSError: - return False - - -def download_by_skynet(resource_info, file_name): - def sky_get(skynet_id, target_dir, timeout=None): - cmd_args = [_sky_path(), 'get', "-N", "Backbone", "--user", "--wait", "--dir", target_dir, skynet_id] - if timeout is not None: - cmd_args += ["--timeout", str(timeout)] - logging.info('Call skynet with args: %s', cmd_args) - stdout = subprocess.check_output(cmd_args).strip() - logging.debug('Skynet call with args %s is finished, result is %s', cmd_args, stdout) - return stdout - - if not _is_skynet_avaliable(): - raise UnsupportedProtocolException("Skynet is not available") - - skynet_id = resource_info.get("skynet_id") - if not skynet_id: - raise ValueError("Resource does not have skynet_id") - - temp_dir = os.path.abspath(fetch_from.uniq_string_generator()) - os.mkdir(temp_dir) - sky_get(skynet_id, temp_dir) - return os.path.join(temp_dir, file_name) - - -def _urlopen(url, data=None, headers=None): - n = 10 - tout = 30 - started = time.time() - reqid = uuid.uuid4() - - request = urllib2.Request(url, data=data, headers=headers or {}) - request.add_header('X-Request-Timeout', str(tout)) - request.add_header('X-Request-Id', str(reqid)) - request.add_header('User-Agent', 'fetch_from_sandbox.py') - for i in xrange(n): - retry_after = i - try: - request.add_header('X-Request-Duration', str(int(time.time() - started))) - return urllib2.urlopen(request, timeout=tout).read() - - except urllib2.HTTPError as e: - logging.warning('failed to fetch URL %s with HTTP code %d: %s', url, e.code, e) - retry_after = int(e.headers.get('Retry-After', str(retry_after))) - - if e.code not in TEMPORARY_ERROR_CODES: - raise - - except Exception as e: - logging.warning('failed to fetch URL %s: %s', url, e) - - if i + 1 == n: - raise e - - time.sleep(retry_after) - - -def _query(url): - return json.loads(_urlopen(url)) - - -_SANDBOX_BASE_URL = 'https://sandbox.yandex-team.ru/api/v1.0' - - -def get_resource_info(resource_id, touch=False, no_links=False): - url = ''.join((_SANDBOX_BASE_URL, '/resource/', str(resource_id))) - headers = {} - if touch: - headers.update({'X-Touch-Resource': '1'}) - if no_links: - headers.update({'X-No-Links': '1'}) - return _query(url) - - -def get_resource_http_links(resource_id): - url = ''.join((_SANDBOX_BASE_URL, '/resource/', str(resource_id), '/data/http')) - return [r['url'] + ORIGIN_SUFFIX for r in _query(url)] - - -def fetch_via_script(script, resource_id): - return subprocess.check_output([script, str(resource_id)]).rstrip() - - -def fetch(resource_id, custom_fetcher): - try: - resource_info = get_resource_info(resource_id, touch=True, no_links=True) - except Exception as e: - sys.stderr.write( - "Failed to fetch resource {}: {}\n".format(resource_id, str(e)) - ) - raise - - if resource_info.get('state', 'DELETED') != 'READY': - raise ResourceInfoError("Resource {} is not READY".format(resource_id)) - - logging.info('Resource %s info %s', str(resource_id), json.dumps(resource_info)) - - resource_file_name = os.path.basename(resource_info["file_name"]) - expected_md5 = resource_info.get('md5') - - proxy_link = resource_info['http']['proxy'] + ORIGIN_SUFFIX - - mds_id = resource_info.get('attributes', {}).get('mds') - mds_link = MDS_PREFIX + mds_id if mds_id else None - - def get_storage_links(): - storage_links = get_resource_http_links(resource_id) - random.shuffle(storage_links) - return storage_links - - skynet = _is_skynet_avaliable() - - if not skynet: - logging.info("Skynet is not available, will try other protocols") - - def iter_tries(): - if skynet: - yield lambda: download_by_skynet(resource_info, resource_file_name) - - if custom_fetcher: - yield lambda: fetch_via_script(custom_fetcher, resource_id) - - # Don't try too hard here: we will get back to proxy later on - yield lambda: fetch_from.fetch_url(proxy_link, False, resource_file_name, expected_md5, tries=2) - for x in get_storage_links(): - # Don't spend too much time connecting single host - yield lambda: fetch_from.fetch_url(x, False, resource_file_name, expected_md5, tries=1) - if mds_link is not None: - # Don't try too hard here: we will get back to MDS later on - yield lambda: fetch_from.fetch_url(mds_link, True, resource_file_name, expected_md5, tries=2) - yield lambda: fetch_from.fetch_url(proxy_link, False, resource_file_name, expected_md5) - if mds_link is not None: - yield lambda: fetch_from.fetch_url(mds_link, True, resource_file_name, expected_md5) - - if resource_info.get('attributes', {}).get('ttl') != 'inf': - sys.stderr.write('WARNING: resource {} ttl is not "inf".\n'.format(resource_id)) - - exc_info = None - for i, action in enumerate(itertools.islice(iter_tries(), 0, 10)): - try: - fetched_file = action() - break - except UnsupportedProtocolException: - pass - except subprocess.CalledProcessError as e: - logging.warning('failed to fetch resource %s with subprocess: %s', resource_id, e) - time.sleep(i) - except urllib2.HTTPError as e: - logging.warning('failed to fetch resource %s with HTTP code %d: %s', resource_id, e.code, e) - if e.code not in TEMPORARY_ERROR_CODES: - exc_info = exc_info or sys.exc_info() - time.sleep(i) - except Exception as e: - logging.exception(e) - exc_info = exc_info or sys.exc_info() - time.sleep(i) - else: - if exc_info: - raise exc_info[0], exc_info[1], exc_info[2] - else: - raise Exception("No available protocol and/or server to fetch resource") - - return fetched_file, resource_info['file_name'] - - -def _get_resource_info_from_file(resource_file): - if resource_file is None or not os.path.exists(resource_file): - return None - - RESOURCE_INFO_JSON = "resource_info.json" - RESOURCE_CONTENT_FILE_NAME = "resource" - - resource_dir, resource_file = os.path.split(resource_file) - if resource_file != RESOURCE_CONTENT_FILE_NAME: - return None - - resource_json = os.path.join(resource_dir, RESOURCE_INFO_JSON) - if not os.path.isfile(resource_json): - return None - - try: - with open(resource_json, 'r') as j: - resource_info = json.load(j) - resource_info['file_name'] # check consistency - return resource_info - except: - logging.debug('Invalid %s in %s', RESOURCE_INFO_JSON, resource_dir) - - return None - - -def main(args): - custom_fetcher = os.environ.get('YA_CUSTOM_FETCHER') - - resource_info = _get_resource_info_from_file(args.resource_file) - if resource_info: - fetched_file = args.resource_file - file_name = resource_info['file_name'] - else: - # This code should be merged to ya and removed. - fetched_file, file_name = fetch(args.resource_id, custom_fetcher) - - fetch_from.process(fetched_file, file_name, args, remove=not custom_fetcher and not resource_info) - - -if __name__ == '__main__': - args = parse_args() - fetch_from.setup_logging(args, os.path.basename(__file__)) - - try: - main(args) - except Exception as e: - logging.exception(e) - print >>sys.stderr, open(args.abs_log_path).read() - sys.stderr.flush() - - import error - sys.exit(error.ExitCodes.INFRASTRUCTURE_ERROR if fetch_from.is_temporary(e) else 1) diff --git a/build/scripts/fetch_resource.py b/build/scripts/fetch_resource.py deleted file mode 100644 index d5af311e5d..0000000000 --- a/build/scripts/fetch_resource.py +++ /dev/null @@ -1,43 +0,0 @@ -import urllib2 -import argparse -import xmlrpclib - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('-r', '--resource-id', type=int, required=True) - parser.add_argument('-o', '--output', required=True) - return parser.parse_args() - - -def fetch(url, retries=4, timeout=5): - for i in xrange(retries): - try: - return urllib2.urlopen(url, timeout=timeout).read() - - except Exception: - if i + 1 < retries: - continue - - else: - raise - - -def fetch_resource(id_): - urls = xmlrpclib.ServerProxy("https://sandbox.yandex-team.ru/sandbox/xmlrpc").get_resource_http_links(id_) - - for u in urls: - try: - return fetch(u) - - except Exception: - continue - - raise Exception('Cannot fetch resource {}'.format(id_)) - - -if __name__ == '__main__': - args = parse_args() - - with open(args.output, 'wb') as f: - f.write(fetch_resource(int(args.resource_id))) diff --git a/build/scripts/filter_zip.py b/build/scripts/filter_zip.py deleted file mode 100644 index b2121b9c9e..0000000000 --- a/build/scripts/filter_zip.py +++ /dev/null @@ -1,71 +0,0 @@ -import argparse -import os -import re -import uuid -import zipfile - - -def pattern_to_regexp(p): - return re.compile( - '^' - + re.escape(p) - .replace(r'\*\*\/', '[_DIR_]') - .replace(r'\*', '[_FILE_]') - .replace('[_DIR_]', '(.*/)?') - .replace('[_FILE_]', '([^/]*)') - + '$' - ) - - -def is_deathman(positive_filter, negative_filter, candidate): - remove = positive_filter - for pf in positive_filter: - if pf.match(candidate): - remove = False - break - if not negative_filter or remove: - return remove - for nf in negative_filter: - if nf.match(candidate): - remove = True - break - return remove - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument('--positive', action='append', default=[]) - parser.add_argument('--negative', action='append', default=[]) - parser.add_argument('--file', action='store', required=True) - args = parser.parse_args() - if not args.positive and not args.negative: - return - pos = [pattern_to_regexp(i) for i in args.positive] - neg = [pattern_to_regexp(i) for i in args.negative] - temp_dirname = None - for _ in range(10): - candidate = '__unpacked_{}__'.format(uuid.uuid4()) - if not os.path.exists(candidate): - temp_dirname = candidate - os.makedirs(temp_dirname) - if not temp_dirname: - raise Exception("Can't generate name for temp dir") - - with zipfile.ZipFile(args.file, 'r') as zip_ref: - zip_ref.extractall(temp_dirname) - - for root, _, files in os.walk(temp_dirname): - for f in files: - candidate = os.path.join(root, f).replace('\\', '/') - if is_deathman(pos, neg, os.path.relpath(candidate, temp_dirname)): - os.remove(candidate) - - with zipfile.ZipFile(args.file, 'w') as zip_ref: - for root, _, files in os.walk(temp_dirname): - for f in files: - realname = os.path.join(root, f) - zip_ref.write(realname, os.path.sep.join(os.path.normpath(realname).split(os.path.sep, 2)[1:])) - - -if __name__ == '__main__': - just_do_it() diff --git a/build/scripts/find_and_tar.py b/build/scripts/find_and_tar.py deleted file mode 100644 index f251623c68..0000000000 --- a/build/scripts/find_and_tar.py +++ /dev/null @@ -1,22 +0,0 @@ -import os -import sys -import tarfile - - -def find_gcno(dirname, tail): - for cur, _dirs, files in os.walk(dirname): - for f in files: - if f.endswith(tail): - yield os.path.relpath(os.path.join(cur, f)) - - -def main(args): - output = args[0] - tail = args[1] if len(args) > 1 else '' - with tarfile.open(output, 'w:') as tf: - for f in find_gcno(os.getcwd(), tail): - tf.add(f) - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/find_time_trace.py b/build/scripts/find_time_trace.py deleted file mode 100644 index 954d203caa..0000000000 --- a/build/scripts/find_time_trace.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import sys - -# /scripts/find_time_trace.py <object_file> <destination> -# clang generates `-ftime-trace` output file path based on main output file path - - -def main(): - assert len(sys.argv) == 3 - obj_path = sys.argv[1] - trace_path = sys.argv[2] - orig_trace_path = obj_path.rpartition('.o')[0] + '.json' - os.rename(orig_trace_path, trace_path) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/fix_java_command_file_cp.py b/build/scripts/fix_java_command_file_cp.py deleted file mode 100644 index fc87048c32..0000000000 --- a/build/scripts/fix_java_command_file_cp.py +++ /dev/null @@ -1,34 +0,0 @@ -import sys -import os -import argparse -import subprocess -import platform - - -def fix_files(args): - args = args[:] - parser = argparse.ArgumentParser() - parser.add_argument('--build-root', default=None) - args, tail = parser.parse_known_args(args) - for idx, arg in list(enumerate(tail)): - if arg.startswith('@') and os.path.isfile(arg[1:]): - with open(arg[1:]) as f: - fixed = [i.strip() for i in f] - if args.build_root: - fixed = [os.path.join(args.build_root, i) for ln in fixed for i in ln.split(os.path.pathsep)] - fixed = os.pathsep.join([i.strip() for i in fixed]) - fixed_name = list(os.path.splitext(arg)) - fixed_name[0] += '_fixed' - fixed_name = ''.join(fixed_name) - with open(fixed_name[1:], 'w') as f: - f.write(fixed) - tail[idx:idx + 1] = [fixed_name] - return tail - - -if __name__ == '__main__': - args = fix_files(sys.argv[1:]) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) diff --git a/build/scripts/fix_msvc_output.py b/build/scripts/fix_msvc_output.py deleted file mode 100644 index 183a442e1f..0000000000 --- a/build/scripts/fix_msvc_output.py +++ /dev/null @@ -1,43 +0,0 @@ -import subprocess -import sys - -import process_command_files as pcf -import process_whole_archive_option as pwa - - -def out2err(cmd): - return subprocess.Popen(cmd, stdout=sys.stderr).wait() - - -def decoding_needed(strval): - if sys.version_info >= (3, 0, 0): - return isinstance(strval, bytes) - else: - return False - - -def out2err_cut_first_line(cmd): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE) - first_line = True - while True: - line = p.stdout.readline() - line = line.decode('utf-8') if decoding_needed(line) else line - if not line: - break - if first_line: - sys.stdout.write(line) - first_line = False - else: - sys.stderr.write(line) - return p.wait() - - -if __name__ == '__main__': - mode = sys.argv[1] - args, wa_peers, wa_libs = pwa.get_whole_archive_peers_and_libs(pcf.skip_markers(sys.argv[2:])) - cmd = pwa.ProcessWholeArchiveOption('WINDOWS', wa_peers, wa_libs).construct_cmd(args) - run = out2err - if mode in ('cl', 'ml'): - # First line of cl.exe and ml64.exe stdout is useless: it prints input file - run = out2err_cut_first_line - sys.exit(run(cmd)) diff --git a/build/scripts/fs_tools.py b/build/scripts/fs_tools.py deleted file mode 100644 index dec4c349c8..0000000000 --- a/build/scripts/fs_tools.py +++ /dev/null @@ -1,104 +0,0 @@ -from __future__ import print_function - -import os -import platform -import sys -import shutil -import errno - -import process_command_files as pcf - - -def link_or_copy(src, dst): - try: - if platform.system().lower() == 'windows': - shutil.copy(src, dst) - else: - os.link(src, dst) - except OSError as e: - if e.errno == errno.EEXIST: - print('link_or_copy: destination file already exists: {}'.format(dst), file=sys.stderr) - if e.errno == errno.ENOENT: - print('link_or_copy: source file doesn\'t exists: {}'.format(src), file=sys.stderr) - raise - - -if __name__ == '__main__': - mode = sys.argv[1] - args = pcf.get_args(sys.argv[2:]) - - if mode == 'copy': - shutil.copy(args[0], args[1]) - elif mode == 'copy_tree_no_link': - dst = args[1] - shutil.copytree(args[0], dst, ignore=lambda dirname, names: [n for n in names if os.path.islink(os.path.join(dirname, n))]) - elif mode == 'copy_files': - src = args[0] - dst = args[1] - files = open(args[2]).read().strip().split() - for f in files: - s = os.path.join(src, f) - d = os.path.join(dst, f) - if os.path.exists(d): - continue - try: - os.makedirs(os.path.dirname(d)) - except OSError: - pass - shutil.copy(s, d) - elif mode == 'copy_all_files': - src = args[0] - dst = args[1] - for root, _, files in os.walk(src): - for f in files: - if os.path.islink(os.path.join(root, f)): - continue - file_dst = os.path.join(dst, os.path.relpath(root, src), f) - if os.path.exists(file_dst): - continue - try: - os.makedirs(os.path.dirname(file_dst)) - except OSError: - pass - shutil.copy(os.path.join(root, f), file_dst) - elif mode == 'rename_if_exists': - if os.path.exists(args[0]): - shutil.move(args[0], args[1]) - elif mode == 'rename': - targetdir = os.path.dirname(args[1]) - if targetdir and not os.path.exists(targetdir): - os.makedirs(os.path.dirname(args[1])) - shutil.move(args[0], args[1]) - elif mode == 'remove': - for f in args: - try: - if os.path.isfile(f) or os.path.islink(f): - os.remove(f) - else: - shutil.rmtree(f) - except OSError: - pass - elif mode == 'link_or_copy': - link_or_copy(args[0], args[1]) - elif mode == 'link_or_copy_to_dir': - assert len(args) > 1 - start = 0 - if args[0] == '--no-check': - if args == 2: - sys.exit() - start = 1 - dst = args[-1] - for src in args[start:-1]: - link_or_copy(src, os.path.join(dst, os.path.basename(src))) - elif mode == 'cat': - with open(args[0], 'w') as dst: - for input_name in args[1:]: - with open(input_name) as src: - dst.write(src.read()) - elif mode == 'md': - try: - os.makedirs(args[0]) - except OSError: - pass - else: - raise Exception('unsupported tool %s' % mode) diff --git a/build/scripts/gen_aar_gradle_script.py b/build/scripts/gen_aar_gradle_script.py deleted file mode 100644 index e59b1db7b5..0000000000 --- a/build/scripts/gen_aar_gradle_script.py +++ /dev/null @@ -1,371 +0,0 @@ -import argparse -import os -import tarfile - -FLAT_DIRS_REPO_TEMPLATE='flatDir {{ dirs {dirs} }}\n' -MAVEN_REPO_TEMPLATE='maven {{ url "{repo}" }}\n' -KEYSTORE_TEMLATE='signingConfigs {{ debug {{ storeFile file("{keystore}") }} }}\n' - -ENABLE_JAVADOC = 'tasks["bundle${suffix}Aar"].dependsOn packageJavadocTask' -DO_NOT_STRIP = '''\ - packagingOptions { - doNotStrip "*/arm64-v8a/*.so" - doNotStrip "*/armeabi-v7a/*.so" - doNotStrip "*/x86_64/*.so" - doNotStrip "*/x86/*.so" - } -''' - -AAR_TEMPLATE = """\ -ext.jniLibsDirs = [ - {jni_libs_dirs} -] - -ext.resDirs = [ - {res_dirs} -] - -ext.assetsDirs = [ - {assets_dirs} -] - -ext.javaDirs = [ - {java_dirs} -] - -def aidlDirs = [ - {aidl_dirs} -] - -ext.bundles = [ - {bundles} -] - -ext.androidArs = [ - {aars} -] - -ext.compileOnlyAndroidArs = [ - {compile_only_aars} -] - -def minVersion = 21 -def compileVersion = 30 -def targetVersion = 30 -def buildVersion = '30.0.3' - -import com.android.build.gradle.LibraryPlugin -import java.nio.file.Files -import java.nio.file.Paths -import java.util.regex.Matcher -import java.util.regex.Pattern -import java.util.zip.ZipFile - - -apply plugin: 'com.github.dcendents.android-maven' - -buildDir = "$projectDir/build" - -if (!ext.has("packageSuffix")) - ext.packageSuffix = "" - -buildscript {{ -// repositories {{ -// jcenter() -// mavenCentral() -// }} - - repositories {{ - {maven_repos} - }} - - dependencies {{ - classpath 'com.android.tools.build:gradle:4.0.2' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' - }} -}} - -apply plugin: LibraryPlugin - -repositories {{ -// flatDir {{ -// dirs System.env.PKG_ROOT + '/bundle' -// }} -// maven {{ -// url "http://maven.google.com/" -// }} -// maven {{ -// url "http://artifactory.yandex.net/artifactory/public/" -// }} - - {flat_dirs_repo} - - {maven_repos} -}} - -android {{ - {keystore} - - compileSdkVersion compileVersion - buildToolsVersion buildVersion - - defaultConfig {{ - minSdkVersion minVersion - targetSdkVersion targetVersion - consumerProguardFiles '{proguard_rules}' - }} - - sourceSets {{ - main {{ - manifest.srcFile '{manifest}' - jniLibs.srcDirs = jniLibsDirs - res.srcDirs = resDirs - assets.srcDirs = assetsDirs - java.srcDirs = javaDirs - aidl.srcDirs = aidlDirs - }} - // We don't use this feature, so we set it to nonexisting directory - androidTest.setRoot('bundle/tests') - }} - - {do_not_strip} - - dependencies {{ - for (bundle in bundles) - compile("$bundle") {{ - transitive = true - }} - for (bundle in androidArs) - compile(bundle) {{ - transitive = true - }} - for (bundle in compileOnlyAndroidArs) - compileOnly(bundle) - }} - - android.libraryVariants.all {{ variant -> - def suffix = variant.buildType.name.capitalize() - - def sourcesJarTask = project.tasks.create(name: "sourcesJar${{suffix}}", type: Jar) {{ - classifier = 'sources' - from android.sourceSets.main.java.srcDirs - include '**/*.java' - eachFile {{ fcd -> - def segments = fcd.relativePath.segments - if (segments[0] == 'impl') {{ - fcd.relativePath = new RelativePath(true, segments.drop(1)) - }} - }} - includeEmptyDirs = false - }} - - def manifestFile = android.sourceSets.main.manifest.srcFile - def manifestXml = new XmlParser().parse(manifestFile) - - def packageName = manifestXml['@package'] - def groupName = packageName.tokenize('.')[0..-2].join('.') - - def androidNs = new groovy.xml.Namespace("http://schemas.android.com/apk/res/android") - def packageVersion = manifestXml.attributes()[androidNs.versionName] - - def writePomTask = project.tasks.create(name: "writePom${{suffix}}") {{ - pom {{ - project {{ - groupId groupName - version packageVersion - packaging 'aar' - }} - }}.writeTo("$buildDir/${{rootProject.name}}$packageSuffix-pom.xml") - }} - - tasks["bundle${{suffix}}Aar"].dependsOn sourcesJarTask - tasks["bundle${{suffix}}Aar"].dependsOn writePomTask - }} - - android.libraryVariants.all {{ variant -> - def capitalizedVariantName = variant.name.capitalize() - def suffix = variant.buildType.name.capitalize() - - def javadocTask = project.tasks.create(name: "generate${{capitalizedVariantName}}Javadoc", type: Javadoc) {{ - group = "Javadoc" - description "Generates Javadoc for $capitalizedVariantName" - - title = "Yandex documentation" - - source = android.sourceSets.main.java.srcDirs - include "**/*/yandex/*/**" - // TODO: remove this when we support internal doc exclusion in IDL - // https://st.yandex-team.ru/MAPSMOBCORE-11364 - exclude "**/internal/**" - - ext.androidJar = "${{android.sdkDirectory.path}}/platforms/${{android.compileSdkVersion}}/android.jar" - classpath = - files(android.getBootClasspath().join(File.pathSeparator)) + - configurations.compile + - files(ext.androidJar) + - files(variant.javaCompile.outputs.files) - - destinationDir = file("$buildDir/${{rootProject.name}}-javadoc/$capitalizedVariantName/") - - options.encoding = "UTF-8" - - failOnError false - - afterEvaluate {{ - def dependencyTree = project.configurations.compile.getAsFileTree() - def aar_set = dependencyTree.matching{{include "**/*.aar"}}.getFiles() - def jar_tree = dependencyTree.matching{{include "**/*.jar"}} - - classpath += files(android.libraryVariants.collect {{ libraryVariant -> - libraryVariant.javaCompileProvider.get().classpath.files - }}) - - aar_set.each{{ aar -> - def outputPath = "$buildDir/tmp/aarJar/${{aar.name.replace('.aar', '.jar')}}" - classpath += files(outputPath) - - dependsOn task(name: "extract_${{aar.getAbsolutePath().replace(File.separatorChar, '_' as char)}}-${{capitalizedVariantName}}").doLast {{ - extractClassesJar(aar, outputPath) - }} - }} - }} - }} - - def packageJavadocTask = project.tasks.create(name: "package${{capitalizedVariantName}}Javadoc", type: Tar) {{ - description "Makes an archive from Javadoc output" - from "${{buildDir}}/${{rootProject.name}}-javadoc/$capitalizedVariantName/" - archiveFileName = "${{rootProject.name}}-javadoc.tar.gz" - destinationDirectory = new File("${{buildDir}}") - dependsOn javadocTask - }} - - {enable_javadoc} - }} - -}} - -private def extractClassesJar(aarPath, outputPath) {{ - if (!aarPath.exists()) {{ - throw new GradleException("AAR $aarPath not found") - }} - - def zip = new ZipFile(aarPath) - zip.entries().each {{ - if (it.name == "classes.jar") {{ - def path = Paths.get(outputPath) - if (!Files.exists(path)) {{ - Files.createDirectories(path.getParent()) - Files.copy(zip.getInputStream(it), path) - }} - }} - }} - zip.close() -}} - -""" - - -def gen_build_script(args): - - def wrap(items): - return ',\n '.join('"{}"'.format(x) for x in items) - - bundles = [] - bundles_dirs = set(args.flat_repos) - for bundle in args.bundles: - dir_name, base_name = os.path.split(bundle) - assert(len(dir_name) > 0 and len(base_name) > 0) - name, ext = os.path.splitext(base_name) - assert(len(name) > 0 and ext == '.aar') - bundles_dirs.add(dir_name) - bundles.append('com.yandex:{}@aar'.format(name)) - - if len(bundles_dirs) > 0: - flat_dirs_repo = FLAT_DIRS_REPO_TEMPLATE.format(dirs=wrap(bundles_dirs)) - else: - flat_dirs_repo = '' - - maven_repos = ''.join(MAVEN_REPO_TEMPLATE.format(repo=repo) for repo in args.maven_repos) - - if args.keystore: - keystore = KEYSTORE_TEMLATE.format(keystore=args.keystore) - else: - keystore = '' - - if args.generate_doc: - enable_javadoc = ENABLE_JAVADOC - else: - enable_javadoc = '' - - if args.do_not_strip: - do_not_strip = DO_NOT_STRIP - else: - do_not_strip = '' - - return AAR_TEMPLATE.format( - aars=wrap(args.aars), - compile_only_aars=wrap(args.compile_only_aars), - aidl_dirs=wrap(args.aidl_dirs), - assets_dirs=wrap(args.assets_dirs), - bundles=wrap(bundles), - do_not_strip=do_not_strip, - enable_javadoc=enable_javadoc, - flat_dirs_repo=flat_dirs_repo, - java_dirs=wrap(args.java_dirs), - jni_libs_dirs=wrap(args.jni_libs_dirs), - keystore=keystore, - manifest=args.manifest, - maven_repos=maven_repos, - proguard_rules=args.proguard_rules, - res_dirs=wrap(args.res_dirs), - ) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--aars', nargs='*', default=[]) - parser.add_argument('--compile-only-aars', nargs='*', default=[]) - parser.add_argument('--aidl-dirs', nargs='*', default=[]) - parser.add_argument('--assets-dirs', nargs='*', default=[]) - parser.add_argument('--bundle-name', nargs='?', default='default-bundle-name') - parser.add_argument('--bundles', nargs='*', default=[]) - parser.add_argument('--do-not-strip', action='store_true') - parser.add_argument('--flat-repos', nargs='*', default=[]) - parser.add_argument('--generate-doc', action='store_true') - parser.add_argument('--java-dirs', nargs='*', default=[]) - parser.add_argument('--jni-libs-dirs', nargs='*', default=[]) - parser.add_argument('--keystore', default=None) - parser.add_argument('--manifest', required=True) - parser.add_argument('--maven-repos', nargs='*', default=[]) - parser.add_argument('--output-dir', required=True) - parser.add_argument('--peers', nargs='*', default=[]) - parser.add_argument('--proguard-rules', nargs='?', default=None) - parser.add_argument('--res-dirs', nargs='*', default=[]) - args = parser.parse_args() - - if args.proguard_rules is None: - args.proguard_rules = os.path.join(args.output_dir, 'proguard-rules.txt') - with open(args.proguard_rules, 'w') as f: - pass - - for index, jsrc in enumerate(filter(lambda x: x.endswith('.jsrc'), args.peers)): - jsrc_dir = os.path.join(args.output_dir, 'jsrc_{}'.format(str(index))) - os.makedirs(jsrc_dir) - with tarfile.open(jsrc, 'r') as tar: - tar.extractall(path=jsrc_dir) - args.java_dirs.append(jsrc_dir) - - args.build_gradle = os.path.join(args.output_dir, 'build.gradle') - args.settings_gradle = os.path.join(args.output_dir, 'settings.gradle') - args.gradle_properties = os.path.join(args.output_dir, 'gradle.properties') - - content = gen_build_script(args) - with open(args.build_gradle, 'w') as f: - f.write(content) - - with open(args.gradle_properties, 'w') as f: - f.write('android.useAndroidX=true') - - if args.bundle_name: - with open(args.settings_gradle, 'w') as f: - f.write('rootProject.name = "{}"'.format(args.bundle_name)) diff --git a/build/scripts/gen_java_codenav_entry.py b/build/scripts/gen_java_codenav_entry.py deleted file mode 100644 index ff0a5c737d..0000000000 --- a/build/scripts/gen_java_codenav_entry.py +++ /dev/null @@ -1,57 +0,0 @@ -import argparse -import datetime -import os -import subprocess -import sys -import tarfile - - -def extract_kindexes(kindexes): - for kindex in kindexes: - with tarfile.TarFile(kindex) as tf: - for fname in [i for i in tf.getnames() if i.endswith('.kzip')]: - tf.extract(fname) - yield fname - - -def just_do_it(java, kythe, kythe_to_proto, out_name, binding_only, kindexes): - temp_out_name = out_name + '.temp' - kindex_inputs = list(extract_kindexes(kindexes)) - open(temp_out_name, 'w').close() - start = datetime.datetime.now() - for kindex in kindex_inputs: - print >> sys.stderr, '[INFO] Processing:', kindex - indexer_start = datetime.datetime.now() - p = subprocess.Popen([java, '-jar', os.path.join(kythe, 'indexers/java_indexer.jar'), kindex], stdout=subprocess.PIPE) - indexer_out, _ = p.communicate() - print >> sys.stderr, '[INFO] Indexer execution time:', (datetime.datetime.now() - indexer_start).total_seconds(), 'seconds' - if p.returncode: - raise Exception('java_indexer failed with exit code {}'.format(p.returncode)) - dedup_start = datetime.datetime.now() - p = subprocess.Popen([os.path.join(kythe, 'tools/dedup_stream')], stdin=subprocess.PIPE, stdout=subprocess.PIPE) - dedup_out, _ = p.communicate(indexer_out) - print >> sys.stderr, '[INFO] Dedup execution time:', (datetime.datetime.now() - dedup_start).total_seconds(), 'seconds' - if p.returncode: - raise Exception('dedup_stream failed with exit code {}'.format(p.returncode)) - entrystream_start = datetime.datetime.now() - p = subprocess.Popen([os.path.join(kythe, 'tools/entrystream'), '--write_json'], stdin=subprocess.PIPE, stdout=open(temp_out_name, 'a')) - p.communicate(dedup_out) - if p.returncode: - raise Exception('entrystream failed with exit code {}'.format(p.returncode)) - print >> sys.stderr, '[INFO] Entrystream execution time:', (datetime.datetime.now() - entrystream_start).total_seconds(), 'seconds' - preprocess_start = datetime.datetime.now() - subprocess.check_call([kythe_to_proto, '--preprocess-entry', '--entries', temp_out_name, '--out', out_name] + (['--only-binding-data'] if binding_only else [])) - print >> sys.stderr, '[INFO] Preprocessing execution time:', (datetime.datetime.now() - preprocess_start).total_seconds(), 'seconds' - print >> sys.stderr, '[INFO] Total execution time:', (datetime.datetime.now() - start).total_seconds(), 'seconds' - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("--java", help="java path") - parser.add_argument("--kythe", help="kythe path") - parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") - parser.add_argument("--out-name", help="entries json out name") - parser.add_argument("--binding-only", action="store_true", default=False, help="filter only binding data") - parser.add_argument("kindexes", nargs='*') - args = parser.parse_args() - just_do_it(args.java, args.kythe, args.kythe_to_proto, args.out_name, args.binding_only, args.kindexes) diff --git a/build/scripts/gen_java_codenav_protobuf.py b/build/scripts/gen_java_codenav_protobuf.py deleted file mode 100644 index aee8cfe6c3..0000000000 --- a/build/scripts/gen_java_codenav_protobuf.py +++ /dev/null @@ -1,22 +0,0 @@ -import argparse -import os - - -def just_do_it(kythe_to_proto, entries, out_name, build_file, source_root): - with open(build_file) as f: - classpath = os.pathsep.join([line.strip() for line in f]) - os.execv( - kythe_to_proto, - [kythe_to_proto, '--sources-rel-root', 'fake_arcadia_root', '--entries', entries, '--out', out_name, '--classpath', classpath, '--arcadia-root', source_root] - ) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") - parser.add_argument("--entries", help="entries json path") - parser.add_argument("--out-name", help="protbuf out name") - parser.add_argument("--build-file", help="build file( containing classpath )") - parser.add_argument("--source-root", help="source root") - args = parser.parse_args() - just_do_it(args.kythe_to_proto, args.entries, args.out_name, args.build_file, args.source_root) diff --git a/build/scripts/gen_mx_table.py b/build/scripts/gen_mx_table.py deleted file mode 100644 index 187c21c539..0000000000 --- a/build/scripts/gen_mx_table.py +++ /dev/null @@ -1,75 +0,0 @@ -import sys - -tmpl = """ -#include "yabs_mx_calc_table.h" - -#include <kernel/matrixnet/mn_sse.h> - -#include <library/cpp/archive/yarchive.h> - -#include <util/memory/blob.h> -#include <util/generic/hash.h> -#include <util/generic/ptr.h> -#include <util/generic/singleton.h> - -using namespace NMatrixnet; - -extern "C" { - extern const unsigned char MxFormulas[]; - extern const ui32 MxFormulasSize; -} - -namespace { - struct TFml: public TBlob, public TMnSseInfo { - inline TFml(const TBlob& b) - : TBlob(b) - , TMnSseInfo(Data(), Size()) - { - } - }; - - struct TFormulas: public THashMap<size_t, TAutoPtr<TFml>> { - inline TFormulas() { - TBlob b = TBlob::NoCopy(MxFormulas, MxFormulasSize); - TArchiveReader ar(b); - %s - } - - inline const TMnSseInfo& at(size_t n) const noexcept { - return *find(n)->second; - } - }; - - %s - - static func_descr_t yabs_funcs[] = { - %s - }; -} - -yabs_mx_calc_table_t yabs_mx_calc_table = {YABS_MX_CALC_VERSION, 10000, 0, yabs_funcs}; -""" - -if __name__ == '__main__': - init = [] - body = [] - defs = {} - - for i in sys.argv[1:]: - name = i.replace('.', '_') - num = long(name.split('_')[1]) - - init.append('(*this)[%s] = new TFml(ar.ObjectBlobByKey("%s"));' % (num, '/' + i)) - - f1 = 'static void yabs_%s(size_t count, const float** args, double* res) {Singleton<TFormulas>()->at(%s).DoCalcRelevs(args, res, count);}' % (name, num) - f2 = 'static size_t yabs_%s_factor_count() {return Singleton<TFormulas>()->at(%s).MaxFactorIndex() + 1;}' % (name, num) - - body.append(f1) - body.append(f2) - - d1 = 'yabs_%s' % name - d2 = 'yabs_%s_factor_count' % name - - defs[num] = '{%s, %s}' % (d1, d2) - - print tmpl % ('\n'.join(init), '\n\n'.join(body), ',\n'.join((defs.get(i, '{nullptr, nullptr}') for i in range(0, 10000)))) diff --git a/build/scripts/gen_py3_reg.py b/build/scripts/gen_py3_reg.py deleted file mode 100644 index 149c094898..0000000000 --- a/build/scripts/gen_py3_reg.py +++ /dev/null @@ -1,34 +0,0 @@ -import sys - -template = ''' -struct PyObject; -extern "C" int PyImport_AppendInittab(const char* name, PyObject* (*initfunc)()); -extern "C" PyObject* {1}(); - -namespace { - struct TRegistrar { - inline TRegistrar() { - // TODO Collect all modules and call PyImport_ExtendInittab once - PyImport_AppendInittab("{0}", {1}); - } - } REG; -} -''' - - -def mangle(name): - if '.' not in name: - return name - return ''.join('{}{}'.format(len(s), s) for s in name.split('.')) - -if __name__ == '__main__': - if len(sys.argv) != 3: - print >>sys.stderr, 'Usage: <path/to/gen_py_reg.py> <python_module_name> <output_file>' - print >>sys.stderr, 'Passed: ' + ' '.join(sys.argv) - sys.exit(1) - - with open(sys.argv[2], 'w') as f: - modname = sys.argv[1] - initname = 'PyInit_' + mangle(modname) - code = template.replace('{0}', modname).replace('{1}', initname) - f.write(code) diff --git a/build/scripts/gen_py_protos.py b/build/scripts/gen_py_protos.py deleted file mode 100644 index 08397472f9..0000000000 --- a/build/scripts/gen_py_protos.py +++ /dev/null @@ -1,67 +0,0 @@ -import os -from os import path -import shutil -import subprocess -import sys -import tempfile -import argparse -import re - - -OUT_DIR_ARG = '--python_out=' - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--suffixes", nargs="*", default=[]) - parser.add_argument("protoc_args", nargs=argparse.REMAINDER) - script_args = parser.parse_args() - - args = script_args.protoc_args - - if args[0] == "--": - args = args[1:] - - out_dir_orig = None - out_dir_temp = None - plugin_out_dirs_orig = {} - for i in range(len(args)): - if args[i].startswith(OUT_DIR_ARG): - assert not out_dir_orig, 'Duplicate "{0}" param'.format(OUT_DIR_ARG) - out_dir_orig = args[i][len(OUT_DIR_ARG):] - out_dir_temp = tempfile.mkdtemp(dir=out_dir_orig) - args[i] = OUT_DIR_ARG + out_dir_temp - continue - - match = re.match(r"^(--(\w+)_out=).*", args[i]) - if match: - plugin_out_dir_arg = match.group(1) - plugin = match.group(2) - assert plugin not in plugin_out_dirs_orig, 'Duplicate "{0}" param'.format(plugin_out_dir_arg) - plugin_out_dirs_orig[plugin] = args[i][len(plugin_out_dir_arg):] - assert plugin_out_dirs_orig[plugin] == out_dir_orig, 'Params "{0}" and "{1}" expected to have the same value'.format(OUT_DIR_ARG, plugin_out_dir_arg) - args[i] = plugin_out_dir_arg + out_dir_temp - - assert out_dir_temp, 'Param "{0}" not found'.format(OUT_DIR_ARG) - - retcode = subprocess.call(args) - assert not retcode, 'Protoc failed for command {}'.format(' '.join(args)) - - for root_temp, dirs, files in os.walk(out_dir_temp): - sub_dir = path.relpath(root_temp, out_dir_temp) - root_orig = path.join(out_dir_orig, sub_dir) - for d in dirs: - d_orig = path.join(root_orig, d) - if not path.exists(d_orig): - os.mkdir(d_orig) - for f in files: - f_orig = f - for suf in script_args.suffixes: - if f.endswith(suf): - f_orig = f[:-len(suf)] + "__int__" + suf - break - os.rename(path.join(root_temp, f), path.join(root_orig, f_orig)) - shutil.rmtree(out_dir_temp) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/gen_py_reg.py b/build/scripts/gen_py_reg.py deleted file mode 100644 index 1560135ae8..0000000000 --- a/build/scripts/gen_py_reg.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys - -template = ''' -extern "C" void PyImport_AppendInittab(const char* name, void (*fn)(void)); -extern "C" void {1}(); - -namespace { - struct TRegistrar { - inline TRegistrar() { - PyImport_AppendInittab("{0}", {1}); - } - } REG; -} -''' - - -def mangle(name): - if '.' not in name: - return name - return ''.join('{}{}'.format(len(s), s) for s in name.split('.')) - -if __name__ == '__main__': - if len(sys.argv) != 3: - print >>sys.stderr, 'Usage: <path/to/gen_py_reg.py> <python_module_name> <output_file>' - print >>sys.stderr, 'Passed: ' + ' '.join(sys.argv) - sys.exit(1) - - with open(sys.argv[2], 'w') as f: - modname = sys.argv[1] - initname = 'init' + mangle(modname) - code = template.replace('{0}', modname).replace('{1}', initname) - f.write(code) diff --git a/build/scripts/gen_swiftc_output_map.py b/build/scripts/gen_swiftc_output_map.py deleted file mode 100644 index 01ce85f256..0000000000 --- a/build/scripts/gen_swiftc_output_map.py +++ /dev/null @@ -1,15 +0,0 @@ -import json -import sys - - -def just_do_it(args): - source_root, build_root, out_file, srcs = args[0], args[1], args[2], args[3:] - assert(len(srcs)) - result_obj = {} - for src in srcs: - result_obj[src] = {'object': src.replace(source_root, build_root) + '.o'} - with open(out_file, 'w') as of: - of.write(json.dumps(result_obj)) - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/gen_tasklet_reg.py b/build/scripts/gen_tasklet_reg.py deleted file mode 100644 index 0f7f66ad51..0000000000 --- a/build/scripts/gen_tasklet_reg.py +++ /dev/null @@ -1,51 +0,0 @@ -import argparse - -TEMPLATE = '''\ -{includes}\ -#include <tasklet/v1/runtime/lib/{language}_wrapper.h> -#include <tasklet/v1/runtime/lib/registry.h> - -static const NTasklet::TRegHelper REG( - "{name}", - new NTasklet::{wrapper} -); -''' - -WRAPPER = { - 'cpp': 'TCppWrapper<{impl}>()', - 'js': 'TJsWrapper("{impl}")', - 'go': 'TGoWrapper("{impl}")', - 'py': 'TPythonWrapper("{impl}")', - 'java': 'TJavaWrapper("{impl}", "{py_wrapper}")', -} - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('name') - parser.add_argument('output') - parser.add_argument('-l', '--lang', choices=WRAPPER, required=True) - parser.add_argument('-i', '--impl', required=True) - parser.add_argument('-w', '--wrapper', required=False) - parser.add_argument('includes', nargs='*') - - return parser.parse_args() - - -if __name__ == '__main__': - args = parse_args() - - includes = ''.join( - '#include <{}>\n'.format(include) - for include in args.includes - ) - - code = TEMPLATE.format( - includes=includes, - language=args.lang, - name=args.name, - wrapper=WRAPPER[args.lang].format(impl=args.impl, py_wrapper=args.wrapper), - ) - - with open(args.output, 'w') as f: - f.write(code) diff --git a/build/scripts/gen_test_apk_gradle_script.py b/build/scripts/gen_test_apk_gradle_script.py deleted file mode 100644 index b3a4f89e46..0000000000 --- a/build/scripts/gen_test_apk_gradle_script.py +++ /dev/null @@ -1,193 +0,0 @@ -import argparse -import os -import tarfile -import xml.etree.ElementTree as etree - -FLAT_DIRS_REPO_TEMPLATE='flatDir {{ dirs {dirs} }}\n' -MAVEN_REPO_TEMPLATE='maven {{ url "{repo}" }}\n' -KEYSTORE_TEMLATE='signingConfigs {{ debug {{ storeFile file("{keystore}") }} }}\n' - -TEST_APK_TEMPLATE = """\ -ext.jniLibsDirs = [ - {jni_libs_dirs} -] -ext.resDirs = [ - {res_dirs} -] -ext.javaDirs = [ - {java_dirs} -] -ext.bundles = [ - {bundles} -] - -buildscript {{ -// repositories {{ -// jcenter() -// }} - - repositories {{ - {maven_repos} - }} - - dependencies {{ - classpath 'com.android.tools.build:gradle:3.5.3' - }} -}} - -apply plugin: 'com.android.application' - -repositories {{ -// maven {{ -// url "http://maven.google.com/" -// }} -// maven {{ -// url "http://artifactory.yandex.net/artifactory/public/" -// }} -// flatDir {{ -// dirs System.env.PKG_ROOT + '/bundle' -// }} - - {flat_dirs_repo} - - {maven_repos} -}} - -dependencies {{ - for (bundle in bundles) {{ - compile("$bundle") - }} -}} - -android {{ - {keystore} - - compileSdkVersion 30 - buildToolsVersion "30.0.3" - - - defaultConfig {{ - minSdkVersion 21 - targetSdkVersion 30 - applicationId "{app_id}" - }} - - sourceSets {{ - main {{ - manifest.srcFile 'Manifest.xml' - jniLibs.srcDirs = jniLibsDirs - res.srcDirs = resDirs - java.srcDirs = javaDirs - }} - }} - - applicationVariants.all {{ variant -> - variant.outputs.each {{ output -> - def fileName = "$projectDir/output/{app_id}.apk" - output.outputFileName = new File(output.outputFile.parent, fileName).getName() - }} - }} - - dependencies {{ - implementation 'com.google.android.gms:play-services-location:21.0.1' - implementation 'com.google.android.gms:play-services-gcm:17.0.0' - implementation 'com.evernote:android-job:1.2.6' - implementation 'androidx.annotation:annotation:1.1.0' - implementation 'androidx.core:core:1.1.0' - }} -}} -""" - - -def create_native_properties(output_dir, library_name): - native_properties_file = os.path.join(output_dir, 'native_library_name.xml') - resources = etree.Element('resources') - name = etree.SubElement(resources, 'item', dict(name='native_library_name', type='string')) - name.text = library_name - etree.ElementTree(resources).write(native_properties_file, xml_declaration=True, encoding='utf-8') - - -def gen_build_script(args): - def wrap(items): - return ',\n '.join('"{}"'.format(x) for x in items) - - bundles = [] - bundles_dirs = set(args.flat_repos) - for bundle in args.bundles: - dir_name, base_name = os.path.split(bundle) - assert(len(dir_name) > 0 and len(base_name) > 0) - name, ext = os.path.splitext(base_name) - assert(len(name) > 0 and ext == '.aar') - bundles_dirs.add(dir_name) - bundles.append('com.yandex:{}@aar'.format(name)) - - if len(bundles_dirs) > 0: - flat_dirs_repo = FLAT_DIRS_REPO_TEMPLATE.format(dirs=wrap(bundles_dirs)) - else: - flat_dirs_repo = '' - - maven_repos = ''.join(MAVEN_REPO_TEMPLATE.format(repo=repo) for repo in args.maven_repos) - - if args.keystore: - keystore = KEYSTORE_TEMLATE.format(keystore=args.keystore) - else: - keystore = '' - - return TEST_APK_TEMPLATE.format( - app_id=args.app_id, - jni_libs_dirs=wrap(args.jni_libs_dirs), - res_dirs=wrap(args.res_dirs), - java_dirs=wrap(args.java_dirs), - maven_repos=maven_repos, - bundles=wrap(bundles), - flat_dirs_repo=flat_dirs_repo, - keystore=keystore, - ) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--aars', nargs='*', default=[]) - parser.add_argument('--app-id', required=True) - parser.add_argument('--assets-dirs', nargs='*', default=[]) - parser.add_argument('--bundles', nargs='*', default=[]) - parser.add_argument('--bundle-name', nargs='?', default=None) - parser.add_argument('--java-dirs', nargs='*', default=[]) - parser.add_argument('--jni-libs-dirs', nargs='*', default=[]) - parser.add_argument('--library-name', required=True) - parser.add_argument('--manifest', required=True) - parser.add_argument('--flat-repos', nargs='*', default=[]) - parser.add_argument('--maven-repos', nargs='*', default=[]) - parser.add_argument('--output-dir', required=True) - parser.add_argument('--peers', nargs='*', default=[]) - parser.add_argument('--keystore', default=None) - parser.add_argument('--res-dirs', nargs='*', default=[]) - args = parser.parse_args() - - for index, jsrc in enumerate(filter(lambda x: x.endswith('.jsrc'), args.peers)): - jsrc_dir = os.path.join(args.output_dir, 'jsrc_{}'.format(str(index))) - os.makedirs(jsrc_dir) - with tarfile.open(jsrc, 'r') as tar: - tar.extractall(path=jsrc_dir) - args.java_dirs.append(jsrc_dir) - - args.build_gradle = os.path.join(args.output_dir, 'build.gradle') - args.settings_gradle = os.path.join(args.output_dir, 'settings.gradle') - args.gradle_properties = os.path.join(args.output_dir, 'gradle.properties') - - content = gen_build_script(args) - with open(args.build_gradle, 'w') as f: - f.write(content) - - with open(args.gradle_properties, 'w') as f: - f.write('''android.enableJetifier=true - android.useAndroidX=true - org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=512m''') - - if args.bundle_name: - with open(args.settings_gradle, 'w') as f: - f.write('rootProject.name = "{}"'.format(args.bundle_name)) - - values_dir = os.path.join(args.output_dir, 'res', 'values') - os.makedirs(values_dir) - create_native_properties(values_dir, args.library_name) diff --git a/build/scripts/gen_ub.py b/build/scripts/gen_ub.py deleted file mode 100644 index ad79cda926..0000000000 --- a/build/scripts/gen_ub.py +++ /dev/null @@ -1,86 +0,0 @@ -import argparse -import os -import tarfile -import contextlib -import hashlib -import base64 -import io - - -stub = """#!/usr/bin/env python - -info = {info} -data = "{data}" - -import platform -import os -import sys -import tarfile -import contextlib -import io -import base64 - - -def current_platform(): - arch = platform.machine().upper() - - if arch == 'AMD64': - arch = 'X86_64' - - platf = platform.system().upper() - - if platf.startswith('WIN'): - platf = 'WIN' - - return (platf + '-' + arch).lower() - - -def extract_file(fname): - with contextlib.closing(tarfile.open(fileobj=io.BytesIO(base64.b64decode(data)))) as f: - return f.extractfile(fname).read() - - -fname = info[current_platform()] -my_path = os.path.realpath(os.path.abspath(__file__)) -tmp_path = my_path + '.tmp' - -with open(tmp_path, 'wb') as f: - f.write(extract_file(fname)) - -os.rename(tmp_path, my_path) -os.chmod(my_path, 0775) -os.execv(sys.argv[0], sys.argv) -""" - - -def gen_ub(output, data): - info = {} - binary = io.BytesIO() - - with contextlib.closing(tarfile.open(mode='w:bz2', fileobj=binary, dereference=True)) as f: - for pl, path in data: - fname = os.path.basename(path) - pl = pl.split('-') - pl = pl[1] + '-' + pl[2] - info[pl] = fname - f.add(path, arcname=fname) - - binary = binary.getvalue() - info['md5'] = hashlib.md5(binary).hexdigest() - - with open(output, 'w') as f: - f.write(stub.format(info=info, data=base64.b64encode(binary))) - - os.chmod(output, 0775) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('--path', action='append') - parser.add_argument('--platform', action='append') - parser.add_argument('--output', action='store') - - args = parser.parse_args() - - gen_ub(args.output, zip(args.platform, args.path)) diff --git a/build/scripts/gen_yql_python_udf.py b/build/scripts/gen_yql_python_udf.py deleted file mode 100644 index 13b5898117..0000000000 --- a/build/scripts/gen_yql_python_udf.py +++ /dev/null @@ -1,55 +0,0 @@ -import sys - -TEMPLATE=""" -#include <yql/udfs/common/python/python_udf/python_udf.h> - -#include <ydb/library/yql/public/udf/udf_registrator.h> - -#if @WITH_LIBRA@ -#include <yql/udfs/quality/libra/module/module.h> -#endif - -using namespace NKikimr::NUdf; - -#ifdef BUILD_UDF - -#if @WITH_LIBRA@ -LIBRA_MODULE(TLibraModule, "Libra@MODULE_NAME@"); -#endif - -extern "C" UDF_API void Register(IRegistrator& registrator, ui32 flags) { - RegisterYqlPythonUdf(registrator, flags, TStringBuf("@MODULE_NAME@"), TStringBuf("@PACKAGE_NAME@"), EPythonFlavor::@FLAVOR@); -#if @WITH_LIBRA@ - RegisterHelper<TLibraModule>(registrator); -#endif -} - -extern "C" UDF_API ui32 AbiVersion() { - return CurrentAbiVersion(); -} - -extern "C" UDF_API void SetBackTraceCallback(TBackTraceCallback callback) { - SetBackTraceCallbackImpl(callback); -} - -#endif -""" - - -def main(): - assert len(sys.argv) == 6 - flavor, module_name, package_name, path, libra_flag = sys.argv[1:] - with open(path, 'w') as f: - f.write( - TEMPLATE - .strip() - .replace('@MODULE_NAME@', module_name) - .replace('@PACKAGE_NAME@', package_name) - .replace('@FLAVOR@', flavor) - .replace('@WITH_LIBRA@', libra_flag) - ) - f.write('\n') - - -if __name__ == "__main__": - main() diff --git a/build/scripts/generate_mf.py b/build/scripts/generate_mf.py deleted file mode 100644 index a44a969980..0000000000 --- a/build/scripts/generate_mf.py +++ /dev/null @@ -1,113 +0,0 @@ -import json -import logging -import optparse -import os -import sys -import io - -import process_command_files as pcf - -class BadMfError(Exception): - pass - - -class GplNotAllowed(Exception): - pass - - -def process_quotes(s): - for quote_char in '\'"': - if s.startswith(quote_char) and s.endswith(quote_char): - return s[1:-1] - return s - - -def parse_args(): - args = pcf.get_args(sys.argv[1:]) - lics, peers, free_args, credits = [], [], [], [] - current_list = free_args - for a in args: - if a == '-Ya,lics': - current_list = lics - elif a == '-Ya,peers': - current_list = peers - elif a == '-Ya,credits': - current_list = credits - elif a and a.startswith('-'): - current_list = free_args - current_list.append(a) - else: - current_list.append(a) - - parser = optparse.OptionParser() - parser.add_option('--build-root') - parser.add_option('--module-name') - parser.add_option('-o', '--output') - parser.add_option('-c', '--credits-output') - parser.add_option('-t', '--type') - opts, _ = parser.parse_args(free_args) - return lics, peers, credits, opts, - - -def generate_header(meta): - return '-' * 20 + meta.get('path', 'Unknown module') + '-' * 20 - - -def generate_mf(): - lics, peers, credits, options = parse_args() - - meta = { - 'module_name': options.module_name, - 'path': os.path.dirname(options.output), - 'licenses': lics, - 'dependencies': [], - 'license_texts': '' - } - - build_root = options.build_root - file_name = os.path.join(build_root, options.output) - - if options.type != 'LIBRARY': - for rel_filename in peers: - with open(os.path.join(build_root, rel_filename + '.mf')) as peer_file: - peer_meta = json.load(peer_file) - meta['dependencies'].append(peer_meta) - - if credits: - union_texts = [] - for texts_file in credits: - with open(process_quotes(texts_file)) as f: - union_texts.append(f.read()) - meta['license_texts'] = '\n\n'.join(union_texts) - - if options.credits_output: - final_credits = [] - if meta['license_texts']: - final_credits.append(generate_header(meta) + '\n' + meta['license_texts']) - for peer in peers: - candidate = os.path.join(build_root, peer + '.mf') - with open(candidate) as src: - data = json.loads(src.read()) - texts = data.get('license_texts') - if texts: - candidate_text = generate_header(data) + '\n' + texts - if isinstance(candidate_text, unicode): - candidate_text = candidate_text.encode('utf-8') - final_credits.append(candidate_text) - - with io.open(options.credits_output, 'w', encoding='utf-8') as f: - data = '\n\n'.join(final_credits) - if isinstance(data, str): - data = data.decode('utf-8') - f.write(data) - - with open(file_name, 'w') as mf_file: - json.dump(meta, mf_file, indent=4) - - -if __name__ == '__main__': - try: - generate_mf() - except Exception as e: - sys.stderr.write(str(e) + '\n') - sys.exit(1) diff --git a/build/scripts/generate_pom.py b/build/scripts/generate_pom.py deleted file mode 100644 index d91bce6249..0000000000 --- a/build/scripts/generate_pom.py +++ /dev/null @@ -1,336 +0,0 @@ -from __future__ import print_function - -import sys -import xml.etree.ElementTree as et -import argparse -import os -import json -import base64 -import re - - -DEFAULT_YANDEX_GROUP_ID = 'ru.yandex' -DEFAULT_NAMESPACE = 'http://maven.apache.org/POM/4.0.0' -XSI_NAMESPACE = 'http://www.w3.org/2001/XMLSchema-instance' -SCHEMA_LOCATION = 'http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd' -MODEL_VERSION = '4.0.0' - -MAVEN_PLUGIN_GROUP_ID = 'org.apache.maven.plugins' -MAVEN_PLUGIN_ARTIFACT_ID = 'maven-compiler-plugin' -MAVEN_PLUGIN_VERSION = '3.3' -JAVA_LANGUAGE_LEVEL = '1.8' - -MAVEN_BUILD_HELPER_GROUP_ID = 'org.codehaus.mojo' -MAVEN_BUILD_HELPER_ARTIFACT_ID = 'build-helper-maven-plugin' -MAVEN_BUILD_HELPER_VERSION = '1.9.1' - -MAVEN_EXEC_GROUP_ID = 'org.codehaus.mojo' -MAVEN_EXEC_ARTIFACT_ID = 'exec-maven-plugin' -MAVEN_EXEC_VERSION = '1.5.0' - -MAVEN_SUREFIRE_GROUP_ID = 'org.apache.maven.plugins' -MAVEN_SUREFIRE_ARTIFACT_ID = 'maven-surefire-plugin' -MAVEN_SUREFIRE_VERSION = '2.12.2' - - -def target_from_contrib(target_path): - return target_path.startswith('contrib') - - -def split_artifacts(s): - m = re.match('^([^:]*:[^:]*:[^:]*:[^:]*)(.*)$', s) - if not m or not m.groups(): - return [] - if not m.groups()[1].startswith('::'): - return [m.groups()[0]] - return [m.groups()[0]] + m.groups()[1].split('::')[1:] - - -def parse_coord_file(target_coords): - deps = set() - excludes = set() - target = None - - with open(target_coords, 'r') as f: - for ln in f: - ln = ln.strip('\n') - if ln.startswith('D='): - if target is None: - target = ln[2:] - else: - group, artifact = ln[2:].split(':')[0:2] - deps.add('{}:{}'.format(group, artifact)) - elif ln.startswith('E='): - group, artifact = ln[2:].split(':')[0:2] - excludes.add('{}:{}'.format(group, artifact)) - return target, deps, excludes - - -def applied_excludes(deps, excludes): - return sorted(list(deps & excludes)) - - -def build_pom_and_export_to_maven(**kwargs): - target_path = kwargs.get('target_path') - target = kwargs.get('target') - pom_path = kwargs.get('pom_path') - source_dirs = kwargs.get('source_dirs') - output_dir = kwargs.get('output_dir') - final_name = kwargs.get('final_name') - packaging = kwargs.get('packaging') - test_target_dependencies = kwargs.get('test_target_dependencies') - test_target_dependencies_exclude = kwargs.get('test_target_dependencies_exclude') - modules_path = kwargs.get('modules_path') - base64_prop_vars = kwargs.get('properties') - prop_vars = kwargs.get('property') - external_jars = kwargs.get('external_jars') - resources = kwargs.get('resources') - run_java_programs = [json.loads(base64.b64decode(i)) for i in kwargs.get('run_java_programs')] - test_source_dirs = kwargs.get('test_source_dirs') - test_resource_dirs = kwargs.get('test_resource_dirs') - - from_coord_files = kwargs.get('from_coord_files') - deps_coords = kwargs.get('deps_coords') - target_coords = kwargs.get('target_coords') - if from_coord_files: - target, _, all_excludes = parse_coord_file(target_coords) - # TODO: ymake java -> jbuild java values format conversion must be removed - target = ':'.join(target.split(':')[:3]) - target_dependencies = [] - for dep in deps_coords: - dep_coord, dep_deps, _ = parse_coord_file(dep) - excluded = applied_excludes(dep_deps, all_excludes) - if len(excluded) > 0: - target_dependencies.append('{}::{}'.format(dep_coord, '::'.join(excluded))) - else: - target_dependencies.append(dep_coord) - else: - target_dependencies = kwargs.get('target_dependencies') - - if kwargs.get('vcs_info') is not None: - with open(kwargs.get('vcs_info'), 'r') as vcs_json: - vcs_revision = json.load(vcs_json).get('ARCADIA_SOURCE_LAST_CHANGE') - target = target.format(vcs_revision=vcs_revision) - target_dependencies = [dep.format(vcs_revision=vcs_revision) for dep in target_dependencies] - - modules = [] - - def _indent(elem, level=0): - ind = "\n" + level * " " - if len(elem): - if not elem.text or not elem.text.strip(): - elem.text = ind + " " - if not elem.tail or not elem.tail.strip(): - elem.tail = ind - for elem in elem: - _indent(elem, level + 1) - if not elem.tail or not elem.tail.strip(): - elem.tail = ind - else: - if level and (not elem.tail or not elem.tail.strip()): - elem.tail = ind - - project = et.Element( - '{}{}{}project'.format('{', DEFAULT_NAMESPACE, '}'), - attrib={'{}{}{}schemaLocation'.format('{', XSI_NAMESPACE, '}'): SCHEMA_LOCATION} - ) - - group_id, artifact_id, version = target.split(':') - - et.SubElement(project, 'modelVersion').text = MODEL_VERSION - et.SubElement(project, 'groupId').text = group_id - et.SubElement(project, 'artifactId').text = artifact_id - et.SubElement(project, 'version').text = version - et.SubElement(project, 'packaging').text = packaging - - properties = et.SubElement(project, 'properties') - et.SubElement(properties, 'project.build.sourceEncoding').text = 'UTF-8' - - if base64_prop_vars: - for property, value in json.loads(base64.b64decode(base64_prop_vars)).items(): - et.SubElement(properties, property).text = value - for rawprop in prop_vars: - property, sep, value = rawprop.partition('=') - if sep != '=': - print("Can't find propertyr name and property value in {}. No '=' symbol found".format(rawprop)) - sys.exit(1) - et.SubElement(properties, property).text = value - - if modules_path: - with open(modules_path) as f: - modules = [i.strip() for i in f if i.strip()] - - if modules: - modules_el = et.SubElement(project, 'modules') - for module in modules: - et.SubElement(modules_el, 'module').text = module - - build = et.SubElement(project, 'build') - if source_dirs: - et.SubElement(build, 'sourceDirectory').text = source_dirs[0] - source_dirs = source_dirs[1:] - if test_source_dirs: - et.SubElement(build, 'testSourceDirectory').text = test_source_dirs[0] - test_source_dirs = test_source_dirs[1:] - if output_dir: - et.SubElement(build, 'outputDirectory').text = output_dir - if final_name: - et.SubElement(build, 'finalName').text = final_name - if resources: - resource_element = et.SubElement(et.SubElement(build, 'resources'), 'resource') - et.SubElement(resource_element, 'directory').text = '${basedir}' - includes = et.SubElement(resource_element, 'includes') - for resource in resources: - et.SubElement(includes, 'include').text = resource - if test_resource_dirs: - test_resource_element = et.SubElement(build, 'testResources') - for test_resource_dir in test_resource_dirs: - et.SubElement(et.SubElement(test_resource_element, 'testResource'), 'directory').text = '${basedir}' + (('/' + test_resource_dir) if test_resource_dir != '.' else '') - - plugins = et.SubElement(build, 'plugins') - - if packaging != 'pom': - maven_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(maven_plugin, 'groupId').text = MAVEN_PLUGIN_GROUP_ID - et.SubElement(maven_plugin, 'artifactId').text = MAVEN_PLUGIN_ARTIFACT_ID - et.SubElement(maven_plugin, 'version').text = MAVEN_PLUGIN_VERSION - configuration = et.SubElement(maven_plugin, 'configuration') - et.SubElement(configuration, 'source').text = JAVA_LANGUAGE_LEVEL - et.SubElement(configuration, 'target').text = JAVA_LANGUAGE_LEVEL - - if source_dirs or external_jars or test_source_dirs: - build_helper_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(build_helper_plugin, 'groupId').text = MAVEN_BUILD_HELPER_GROUP_ID - et.SubElement(build_helper_plugin, 'artifactId').text = MAVEN_BUILD_HELPER_ARTIFACT_ID - et.SubElement(build_helper_plugin, 'version').text = MAVEN_BUILD_HELPER_VERSION - executions = et.SubElement(build_helper_plugin, 'executions') - if source_dirs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'add-source' - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-source' - sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') - for source_dir in source_dirs: - et.SubElement(sources, 'source').text = source_dir - if external_jars: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'attach-artifacts' - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'attach-artifact' - artifacts = et.SubElement(et.SubElement(execution, 'configuration'), 'artifacts') - for external_jar in external_jars: - external_artifact = et.SubElement(artifacts, 'artifact') - et.SubElement(external_artifact, 'file').text = '${basedir}/' + external_jar - et.SubElement(external_artifact, 'type').text = 'jar' - if test_source_dirs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'add-test-source' - et.SubElement(execution, 'phase').text = 'generate-test-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-test-source' - sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') - for source_dir in source_dirs: - et.SubElement(sources, 'source').text = source_dir - - if run_java_programs: - exec_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(exec_plugin, 'groupId').text = MAVEN_EXEC_GROUP_ID - et.SubElement(exec_plugin, 'artifactId').text = MAVEN_EXEC_ARTIFACT_ID - et.SubElement(exec_plugin, 'version').text = MAVEN_EXEC_VERSION - jp_dependencies = et.SubElement(exec_plugin, 'dependencies') - executions = et.SubElement(exec_plugin, 'executions') - for java_program in run_java_programs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'java' - jp_configuration = et.SubElement(execution, 'configuration') - main_cls, args = None, [] - for word in java_program['cmd']: - if not main_cls and not word.startswith('-'): - main_cls = word - else: - args.append(word) - et.SubElement(jp_configuration, 'mainClass').text = main_cls - et.SubElement(jp_configuration, 'includePluginDependencies').text = 'true' - et.SubElement(jp_configuration, 'includeProjectDependencies').text = 'false' - if args: - jp_arguments = et.SubElement(jp_configuration, 'arguments') - for arg in args: - et.SubElement(jp_arguments, 'argument').text = arg - if java_program['deps']: - for jp_dep in java_program['deps']: - jp_dependency = et.SubElement(jp_dependencies, 'dependency') - jp_g, jp_a, jp_v = jp_dep.split(':') - et.SubElement(jp_dependency, 'groupId').text = jp_g - et.SubElement(jp_dependency, 'artifactId').text = jp_a - et.SubElement(jp_dependency, 'version').text = jp_v - et.SubElement(jp_dependency, 'type').text = 'jar' - - if target_dependencies + test_target_dependencies: - dependencies = et.SubElement(project, 'dependencies') - for target_dependency in target_dependencies + test_target_dependencies: - dependency = et.SubElement(dependencies, 'dependency') - dependency_info = split_artifacts(target_dependency) - - group_id, artifact_id, version, classifier = dependency_info[0].split(':') - - et.SubElement(dependency, 'groupId').text = group_id - et.SubElement(dependency, 'artifactId').text = artifact_id - et.SubElement(dependency, 'version').text = version - if classifier: - et.SubElement(dependency, 'classifier').text = classifier - if target_dependency in test_target_dependencies: - et.SubElement(dependency, 'scope').text = 'test' - - if len(dependency_info) > 1: - exclusions = et.SubElement(dependency, 'exclusions') - for exclude in dependency_info[1:]: - group_id, artifact_id = exclude.split(':') - exclusion_el = et.SubElement(exclusions, 'exclusion') - et.SubElement(exclusion_el, 'groupId').text = group_id - et.SubElement(exclusion_el, 'artifactId').text = artifact_id - - if test_target_dependencies_exclude: - surefire_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(surefire_plugin, 'groupId').text = MAVEN_SUREFIRE_GROUP_ID - et.SubElement(surefire_plugin, 'artifactId').text = MAVEN_SUREFIRE_ARTIFACT_ID - et.SubElement(surefire_plugin, 'version').text = MAVEN_SUREFIRE_VERSION - classpath_excludes = et.SubElement(et.SubElement(surefire_plugin, 'configuration'), 'classpathDependencyExcludes') - for classpath_exclude in test_target_dependencies_exclude: - et.SubElement(classpath_excludes, 'classpathDependencyExclude').text = classpath_exclude - - et.register_namespace('', DEFAULT_NAMESPACE) - et.register_namespace('xsi', XSI_NAMESPACE) - - _indent(project) - - et.ElementTree(project).write(pom_path) - sys.stderr.write("[MAVEN EXPORT] Generated {} file for target {}\n".format(os.path.basename(pom_path), target_path)) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--from-coord-files', action='store_true') - parser.add_argument('--deps-coords', action='append', default=[]) - parser.add_argument('--target-coords', action='store') - parser.add_argument('--target-path', action='store', default='') - parser.add_argument('--target', action='store') - parser.add_argument('--pom-path', action='store') - parser.add_argument('--source-dirs', action='append', default=[]) - parser.add_argument('--external-jars', action='append', default=[]) - parser.add_argument('--resources', action='append', default=[]) - parser.add_argument('--run-java-programs', action='append', default=[]) - parser.add_argument('--output-dir') - parser.add_argument('--final-name') - parser.add_argument('--packaging', default='jar') - parser.add_argument('--target-dependencies', action='append', default=[]) - parser.add_argument('--test-target-dependencies', action='append', default=[]) - parser.add_argument('--test-target-dependencies-exclude', action='append', default=[]) - parser.add_argument('--modules-path', action='store') - parser.add_argument('--properties') - parser.add_argument('--property', action='append', default=[]) - parser.add_argument('--test-source-dirs', action='append', default=[]) - parser.add_argument('--test-resource-dirs', action='append', default=[]) - parser.add_argument('--vcs-info', action='store', default=None) - args = parser.parse_args() - - build_pom_and_export_to_maven(**vars(args)) diff --git a/build/scripts/go_fake_include/go_asm.h b/build/scripts/go_fake_include/go_asm.h deleted file mode 100644 index e69de29bb2..0000000000 --- a/build/scripts/go_fake_include/go_asm.h +++ /dev/null diff --git a/build/scripts/go_proto_wrapper.py b/build/scripts/go_proto_wrapper.py deleted file mode 100644 index 4c530ee780..0000000000 --- a/build/scripts/go_proto_wrapper.py +++ /dev/null @@ -1,82 +0,0 @@ -from __future__ import absolute_import, unicode_literals -import os -import re -import shutil -import subprocess -import sys -import tempfile -from six.moves import range - - -OUT_DIR_FLAG_PATTERN = re.compile(r'^(--go(([-_]\w+))*_out=)') - - -def move_tree(src_root, dst_root): - for root, _, files in os.walk(src_root): - rel_dir = os.path.relpath(root, src_root) - dst_dir = os.path.join(dst_root, rel_dir) - if not os.path.exists(dst_dir): - os.mkdir(dst_dir) - for file in files: - os.rename(os.path.join(root, file), os.path.join(dst_dir, file)) - - -def main(arcadia_prefix, contrib_prefix, proto_namespace, args): - out_dir_orig = None - out_dir_temp = None - for i in range(len(args)): - m = re.match(OUT_DIR_FLAG_PATTERN, args[i]) - if m: - out_dir_flag = m.group(1) - index = max(len(out_dir_flag), args[i].rfind(':')+1) - out_dir = args[i][index:] - if out_dir_orig: - assert out_dir_orig == out_dir, 'Output directories do not match: [{}] and [{}]'.format(out_dir_orig, out_dir) - else: - out_dir_orig = out_dir - out_dir_temp = tempfile.mkdtemp(dir=out_dir_orig) - args[i] = (args[i][:index] + out_dir_temp).replace('|', ',') - assert out_dir_temp is not None, 'Output directory is not specified' - - try: - subprocess.check_output(args, stdin=None, stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - sys.stderr.write('{} returned non-zero exit code {}.\n{}\n'.format(' '.join(e.cmd), e.returncode, e.output.decode('utf-8'))) - return e.returncode - - # All Arcadia GO projects should have 'a.yandex-team.ru/' namespace prefix. - # If the namespace doesn't start with 'a.yandex-team.ru/' prefix then this - # project is from vendor directory under the root of Arcadia. - out_dir_src = os.path.normpath(os.path.join(out_dir_temp, arcadia_prefix, proto_namespace)) - out_dir_dst = out_dir_orig - is_from_contrib = False - if not os.path.isdir(out_dir_src): - is_from_contrib = True - out_dir_src = out_dir_temp - out_dir_dst = os.path.join(out_dir_orig, contrib_prefix) - - if not os.path.exists(out_dir_src) or is_from_contrib: - protos = [x for x in args if x.endswith('.proto')] - if not is_from_contrib or not all(x.startswith(contrib_prefix) for x in protos): - proto_list = [] - option_re = re.compile(r'^\s*option\s+go_package\s*=\s*') - for arg in protos: - with open(arg, 'r') as f: - if not any([re.match(option_re, line) for line in f]): - proto_list.append(arg) - if proto_list: - sys.stderr.write( - '\nError: Option go_package is not specified in the following proto files: {}\n' - '\nNOTE! You can find detailed description of how to properly set go_package ' - 'option here https://wiki.yandex-team.ru/devrules/Go/#protobufigrpc'.format(', '.join(proto_list))) - return 1 - - move_tree(out_dir_src, out_dir_dst) - - shutil.rmtree(out_dir_temp) - - return 0 - - -if __name__ == '__main__': - sys.exit(main(os.path.normpath(sys.argv[1]), os.path.normpath(sys.argv[2]), os.path.normpath(sys.argv[3]), sys.argv[4:])) diff --git a/build/scripts/go_tool.py b/build/scripts/go_tool.py deleted file mode 100644 index 86f84c56b3..0000000000 --- a/build/scripts/go_tool.py +++ /dev/null @@ -1,868 +0,0 @@ -from __future__ import absolute_import, unicode_literals -import argparse -import copy -import json -import os -import re -import shutil -import subprocess -import sys -import tarfile -import tempfile -import threading -import six -from functools import reduce - -import process_command_files as pcf -import process_whole_archive_option as pwa - -arc_project_prefix = 'a.yandex-team.ru/' -std_lib_prefix = 'contrib/go/_std_1.18/src/' -vendor_prefix = 'vendor/' -vet_info_ext = '.vet.out' -vet_report_ext = '.vet.txt' - -FIXED_CGO1_SUFFIX='.fixed.cgo1.go' - -COMPILE_OPTIMIZATION_FLAGS=('-N',) - - -def get_trimpath_args(args): - return ['-trimpath', args.trimpath] if args.trimpath else [] - - -def preprocess_cgo1(src_path, dst_path, source_root): - with open(src_path, 'r') as f: - content = f.read() - content = content.replace('__ARCADIA_SOURCE_ROOT_PREFIX__', source_root) - with open(dst_path, 'w') as f: - f.write(content) - - -def preprocess_args(args): - # Temporary work around for noauto - if args.cgo_srcs and len(args.cgo_srcs) > 0: - cgo_srcs_set = set(args.cgo_srcs) - args.srcs = [x for x in args.srcs if x not in cgo_srcs_set] - - args.pkg_root = os.path.join(args.toolchain_root, 'pkg') - toolchain_tool_root = os.path.join(args.pkg_root, 'tool', '{}_{}'.format(args.host_os, args.host_arch)) - args.go_compile = os.path.join(toolchain_tool_root, 'compile') - args.go_cgo = os.path.join(toolchain_tool_root, 'cgo') - args.go_link = os.path.join(toolchain_tool_root, 'link') - args.go_asm = os.path.join(toolchain_tool_root, 'asm') - args.go_pack = os.path.join(toolchain_tool_root, 'pack') - args.go_vet = os.path.join(toolchain_tool_root, 'vet') if args.vet is True else args.vet - args.output = os.path.normpath(args.output) - args.vet_report_output = vet_report_output_name(args.output, args.vet_report_ext) - args.trimpath = None - if args.debug_root_map: - roots = {'build': args.build_root, 'source': args.source_root, 'tools': args.tools_root} - replaces = [] - for root in args.debug_root_map.split(';'): - src, dst = root.split('=', 1) - assert src in roots - replaces.append('{}=>{}'.format(roots[src], dst)) - del roots[src] - assert len(replaces) > 0 - args.trimpath = ';'.join(replaces) - args.build_root = os.path.normpath(args.build_root) - args.build_root_dir = args.build_root + os.path.sep - args.source_root = os.path.normpath(args.source_root) - args.source_root_dir = args.source_root + os.path.sep - args.output_root = os.path.normpath(args.output_root) - args.import_map = {} - args.module_map = {} - if args.cgo_peers: - args.cgo_peers = [x for x in args.cgo_peers if not x.endswith('.fake.pkg')] - - srcs = [] - for f in args.srcs: - if f.endswith('.gosrc'): - with tarfile.open(f, 'r') as tar: - srcs.extend(os.path.join(args.output_root, src) for src in tar.getnames()) - tar.extractall(path=args.output_root) - else: - srcs.append(f) - args.srcs = srcs - - assert args.mode == 'test' or args.test_srcs is None and args.xtest_srcs is None - # add lexical oreder by basename for go sources - args.srcs.sort(key=lambda x: os.path.basename(x)) - if args.test_srcs: - args.srcs += sorted(args.test_srcs, key=lambda x: os.path.basename(x)) - del args.test_srcs - if args.xtest_srcs: - args.xtest_srcs.sort(key=lambda x: os.path.basename(x)) - - # compute root relative module dir path - assert args.output is None or args.output_root == os.path.dirname(args.output) - assert args.output_root.startswith(args.build_root_dir) - args.module_path = args.output_root[len(args.build_root_dir):] - args.source_module_dir = os.path.join(args.source_root, args.test_import_path or args.module_path) + os.path.sep - assert len(args.module_path) > 0 - args.import_path, args.is_std = get_import_path(args.module_path) - - assert args.asmhdr is None or args.word == 'go' - - srcs = [] - for f in args.srcs: - if f.endswith(FIXED_CGO1_SUFFIX) and f.startswith(args.build_root_dir): - path = os.path.join(args.output_root, '{}.cgo1.go'.format(os.path.basename(f[:-len(FIXED_CGO1_SUFFIX)]))) - srcs.append(path) - preprocess_cgo1(f, path, args.source_root) - else: - srcs.append(f) - args.srcs = srcs - - if args.extldflags: - args.extldflags = pwa.ProcessWholeArchiveOption(args.targ_os).construct_cmd(args.extldflags) - - classify_srcs(args.srcs, args) - - -def compare_versions(version1, version2): - def last_index(version): - index = version.find('beta') - return len(version) if index < 0 else index - - v1 = tuple(x.zfill(8) for x in version1[:last_index(version1)].split('.')) - v2 = tuple(x.zfill(8) for x in version2[:last_index(version2)].split('.')) - if v1 == v2: - return 0 - return 1 if v1 < v2 else -1 - - -def get_symlink_or_copyfile(): - os_symlink = getattr(os, 'symlink', None) - if os_symlink is None or os.name == 'nt': - os_symlink = shutil.copyfile - return os_symlink - - -def copy_args(args): - return copy.copy(args) - - -def get_vendor_index(import_path): - index = import_path.rfind('/' + vendor_prefix) - if index < 0: - index = 0 if import_path.startswith(vendor_prefix) else index - else: - index = index + 1 - return index - - -def get_import_path(module_path): - assert len(module_path) > 0 - import_path = module_path.replace('\\', '/') - is_std_module = import_path.startswith(std_lib_prefix) - if is_std_module: - import_path = import_path[len(std_lib_prefix):] - elif import_path.startswith(vendor_prefix): - import_path = import_path[len(vendor_prefix):] - else: - import_path = arc_project_prefix + import_path - assert len(import_path) > 0 - return import_path, is_std_module - - -def call(cmd, cwd, env=None): - # sys.stderr.write('{}\n'.format(' '.join(cmd))) - return subprocess.check_output(cmd, stdin=None, stderr=subprocess.STDOUT, cwd=cwd, env=env, text=True) - - -def classify_srcs(srcs, args): - args.go_srcs = [x for x in srcs if x.endswith('.go')] - args.asm_srcs = [x for x in srcs if x.endswith('.s')] - args.objects = [x for x in srcs if x.endswith('.o') or x.endswith('.obj')] - args.symabis = [x for x in srcs if x.endswith('.symabis')] - args.sysos = [x for x in srcs if x.endswith('.syso')] - - -def get_import_config_info(peers, gen_importmap, import_map={}, module_map={}): - info = {'importmap': [], 'packagefile': [], 'standard': {}} - if gen_importmap: - for key, value in six.iteritems(import_map): - info['importmap'].append((key, value)) - for peer in peers: - peer_import_path, is_std = get_import_path(os.path.dirname(peer)) - if gen_importmap: - index = get_vendor_index(peer_import_path) - if index >= 0: - index += len(vendor_prefix) - info['importmap'].append((peer_import_path[index:], peer_import_path)) - info['packagefile'].append((peer_import_path, os.path.join(args.build_root, peer))) - if is_std: - info['standard'][peer_import_path] = True - for key, value in six.iteritems(module_map): - info['packagefile'].append((key, value)) - return info - - -def create_import_config(peers, gen_importmap, import_map={}, module_map={}): - lines = [] - info = get_import_config_info(peers, gen_importmap, import_map, module_map) - for key in ('importmap', 'packagefile'): - for item in info[key]: - lines.append('{} {}={}'.format(key, *item)) - if len(lines) > 0: - lines.append('') - content = '\n'.join(lines) - # sys.stderr.writelines('{}\n'.format(l) for l in lines) - with tempfile.NamedTemporaryFile(delete=False) as f: - f.write(content.encode('UTF-8')) - return f.name - return None - - -def create_embed_config(args): - data = { - 'Patterns': {}, - 'Files': {}, - } - for info in args.embed: - pattern = info[0] - if pattern.endswith('/**/*'): - pattern = pattern[:-3] - files = {os.path.relpath(f, args.source_module_dir).replace('\\', '/'): f for f in info[1:]} - data['Patterns'][pattern] = list(files.keys()) - data['Files'].update(files) - # sys.stderr.write('{}\n'.format(json.dumps(data, indent=4))) - with tempfile.NamedTemporaryFile(delete=False, suffix='.embedcfg') as f: - f.write(json.dumps(data).encode('UTF-8')) - return f.name - - -def vet_info_output_name(path, ext=None): - return '{}{}'.format(path, ext or vet_info_ext) - - -def vet_report_output_name(path, ext=None): - return '{}{}'.format(path, ext or vet_report_ext) - - -def get_source_path(args): - return args.test_import_path or args.module_path - - -def gen_vet_info(args): - import_path = args.real_import_path if hasattr(args, 'real_import_path') else args.import_path - info = get_import_config_info(args.peers, True, args.import_map, args.module_map) - - import_map = dict(info['importmap']) - # FIXME(snermolaev): it seems that adding import map for 'fake' package - # does't make any harm (it needs to be revised later) - import_map['unsafe'] = 'unsafe' - - for (key, _) in info['packagefile']: - if key not in import_map: - import_map[key] = key - - data = { - 'ID': import_path, - 'Compiler': 'gc', - 'Dir': os.path.join(args.source_root, get_source_path(args)), - 'ImportPath': import_path, - 'GoFiles': [x for x in args.go_srcs if x.endswith('.go')], - 'NonGoFiles': [x for x in args.go_srcs if not x.endswith('.go')], - 'ImportMap': import_map, - 'PackageFile': dict(info['packagefile']), - 'Standard': dict(info['standard']), - 'PackageVetx': dict((key, vet_info_output_name(value)) for key, value in info['packagefile']), - 'VetxOnly': False, - 'VetxOutput': vet_info_output_name(args.output), - 'SucceedOnTypecheckFailure': False - } - # sys.stderr.write('{}\n'.format(json.dumps(data, indent=4))) - return data - - -def create_vet_config(args, info): - with tempfile.NamedTemporaryFile(delete=False, suffix='.cfg') as f: - f.write(json.dumps(info).encode('UTF-8')) - return f.name - - -def decode_vet_report(json_report): - report = '' - if json_report: - try: - full_diags = json.JSONDecoder().decode(json_report.decode('UTF-8')) - except ValueError: - report = json_report - else: - messages = [] - for _, module_diags in six.iteritems(full_diags): - for _, type_diags in six.iteritems(module_diags): - for diag in type_diags: - messages.append('{}: {}'.format(diag['posn'], json.dumps(diag['message']))) - report = '\n'.join(messages) - - return report - - -def dump_vet_report(args, report): - if report: - report = report.replace(args.build_root, '$B') - report = report.replace(args.source_root, '$S') - with open(args.vet_report_output, 'w') as f: - f.write(report) - - -def read_vet_report(args): - assert args - report = '' - if os.path.exists(args.vet_report_output): - with open(args.vet_report_output, 'r') as f: - report += f.read() - return report - - -def dump_vet_report_for_tests(args, *test_args_list): - dump_vet_report(args, reduce(lambda x, y: x + read_vet_report(y), [_f for _f in test_args_list if _f], '')) - - -def do_vet(args): - assert args.vet - info = gen_vet_info(args) - vet_config = create_vet_config(args, info) - cmd = [args.go_vet, '-json'] - if args.vet_flags: - cmd.extend(args.vet_flags) - cmd.append(vet_config) - # sys.stderr.write('>>>> [{}]\n'.format(' '.join(cmd))) - p_vet = subprocess.Popen(cmd, stdin=None, stderr=subprocess.PIPE, stdout=subprocess.PIPE, cwd=args.source_root) - vet_out, vet_err = p_vet.communicate() - report = decode_vet_report(vet_out) if vet_out else '' - dump_vet_report(args, report) - if p_vet.returncode: - raise subprocess.CalledProcessError(returncode=p_vet.returncode, cmd=cmd, output=vet_err) - - -def _do_compile_go(args): - import_path, is_std_module = args.import_path, args.is_std - cmd = [ - args.go_compile, - '-o', - args.output, - '-p', - import_path if import_path != "unsafe" else "", - '-D', - '""', - ] - if args.lang: - cmd.append('-lang=go{}'.format(args.lang)) - cmd.extend(get_trimpath_args(args)) - compiling_runtime = False - if is_std_module: - cmd.append('-std') - if import_path in ('runtime', 'internal/abi', 'internal/bytealg', 'internal/cpu') or import_path.startswith('runtime/internal/'): - cmd.append('-+') - compiling_runtime = True - import_config_name = create_import_config(args.peers, True, args.import_map, args.module_map) - if import_config_name: - cmd += ['-importcfg', import_config_name] - else: - if import_path == 'unsafe' or len(args.objects) > 0 or args.asmhdr: - pass - else: - cmd.append('-complete') - # if compare_versions('1.16', args.goversion) >= 0: - if args.embed: - embed_config_name = create_embed_config(args) - cmd.extend(['-embedcfg', embed_config_name]) - if args.asmhdr: - cmd += ['-asmhdr', args.asmhdr] - # Use .symabis (starting from 1.12 version) - if args.symabis: - cmd += ['-symabis'] + args.symabis - # If 1.12 <= version < 1.13 we have to pass -allabis for 'runtime' and 'runtime/internal/atomic' - # if compare_versions('1.13', args.goversion) >= 0: - # pass - # elif import_path in ('runtime', 'runtime/internal/atomic'): - # cmd.append('-allabis') - compile_workers = '4' - if args.compile_flags: - if compiling_runtime: - cmd.extend(x for x in args.compile_flags if x not in COMPILE_OPTIMIZATION_FLAGS) - else: - cmd.extend(args.compile_flags) - if any([x in ('-race', '-shared') for x in args.compile_flags]): - compile_workers = '1' - cmd += ['-pack', '-c={}'.format(compile_workers)] - cmd += args.go_srcs - call(cmd, args.build_root) - - -class VetThread(threading.Thread): - - def __init__(self, target, args): - super(VetThread, self).__init__(target=target, args=args) - self.exc_info = None - - def run(self): - try: - super(VetThread, self).run() - except: - self.exc_info = sys.exc_info() - - def join_with_exception(self, reraise_exception): - self.join() - if reraise_exception and self.exc_info: - six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2]) - - -def do_compile_go(args): - raise_exception_from_vet = False - if args.vet: - run_vet = VetThread(target=do_vet, args=(args,)) - run_vet.start() - try: - _do_compile_go(args) - raise_exception_from_vet = True - finally: - if args.vet: - run_vet.join_with_exception(raise_exception_from_vet) - - -def do_compile_asm(args): - def need_compiling_runtime(import_path): - return import_path in ('runtime', 'reflect', 'syscall') or \ - import_path.startswith('runtime/internal/') or \ - compare_versions('1.17', args.goversion) >= 0 and import_path == 'internal/bytealg' - - assert(len(args.srcs) == 1 and len(args.asm_srcs) == 1) - cmd = [args.go_asm] - cmd += get_trimpath_args(args) - cmd += ['-I', args.output_root, '-I', os.path.join(args.pkg_root, 'include')] - cmd += ['-D', 'GOOS_' + args.targ_os, '-D', 'GOARCH_' + args.targ_arch, '-o', args.output] - - # if compare_versions('1.16', args.goversion) >= 0: - cmd += ['-p', args.import_path] - if need_compiling_runtime(args.import_path): - cmd += ['-compiling-runtime'] - - if args.asm_flags: - cmd += args.asm_flags - cmd += args.asm_srcs - call(cmd, args.build_root) - - -def do_link_lib(args): - if len(args.asm_srcs) > 0: - asmargs = copy_args(args) - asmargs.asmhdr = os.path.join(asmargs.output_root, 'go_asm.h') - do_compile_go(asmargs) - for src in asmargs.asm_srcs: - asmargs.srcs = [src] - asmargs.asm_srcs = [src] - asmargs.output = os.path.join(asmargs.output_root, os.path.basename(src) + '.o') - do_compile_asm(asmargs) - args.objects.append(asmargs.output) - else: - do_compile_go(args) - if args.objects or args.sysos: - cmd = [args.go_pack, 'r', args.output] + args.objects + args.sysos - call(cmd, args.build_root) - - -def do_link_exe(args): - assert args.extld is not None - assert args.non_local_peers is not None - compile_args = copy_args(args) - compile_args.output = os.path.join(args.output_root, 'main.a') - compile_args.real_import_path = compile_args.import_path - compile_args.import_path = 'main' - - if args.vcs and os.path.isfile(compile_args.vcs): - build_info = os.path.join('library', 'go', 'core', 'buildinfo') - if any([x.startswith(build_info) for x in compile_args.peers]): - compile_args.go_srcs.append(compile_args.vcs) - - do_link_lib(compile_args) - cmd = [args.go_link, '-o', args.output] - import_config_name = create_import_config(args.peers + args.non_local_peers, False, args.import_map, args.module_map) - if import_config_name: - cmd += ['-importcfg', import_config_name] - if args.link_flags: - cmd += args.link_flags - - if args.buildmode: - cmd.append('-buildmode={}'.format(args.buildmode)) - elif args.mode in ('exe', 'test'): - cmd.append('-buildmode=exe') - elif args.mode == 'dll': - cmd.append('-buildmode=c-shared') - else: - assert False, 'Unexpected mode: {}'.format(args.mode) - cmd.append('-extld={}'.format(args.extld)) - - extldflags = [] - if args.extldflags is not None: - filter_musl = bool - if args.musl: - cmd.append('-linkmode=external') - extldflags.append('-static') - filter_musl = lambda x: x not in ('-lc', '-ldl', '-lm', '-lpthread', '-lrt') - extldflags += [x for x in args.extldflags if filter_musl(x)] - cgo_peers = [] - if args.cgo_peers is not None and len(args.cgo_peers) > 0: - is_group = args.targ_os == 'linux' - if is_group: - cgo_peers.append('-Wl,--start-group') - cgo_peers.extend(args.cgo_peers) - if is_group: - cgo_peers.append('-Wl,--end-group') - try: - index = extldflags.index('--cgo-peers') - extldflags = extldflags[:index] + cgo_peers + extldflags[index+1:] - except ValueError: - extldflags.extend(cgo_peers) - if len(extldflags) > 0: - cmd.append('-extldflags={}'.format(' '.join(extldflags))) - cmd.append(compile_args.output) - call(cmd, args.build_root) - - -def gen_cover_info(args): - lines = [] - lines.extend([ - """ -var ( - coverCounters = make(map[string][]uint32) - coverBlocks = make(map[string][]testing.CoverBlock) -) - """, - 'func init() {', - ]) - for var, file in (x.split(':') for x in args.cover_info): - lines.append(' coverRegisterFile("{file}", _cover0.{var}.Count[:], _cover0.{var}.Pos[:], _cover0.{var}.NumStmt[:])'.format(file=file, var=var)) - lines.extend([ - '}', - """ -func coverRegisterFile(fileName string, counter []uint32, pos []uint32, numStmts []uint16) { - if 3*len(counter) != len(pos) || len(counter) != len(numStmts) { - panic("coverage: mismatched sizes") - } - if coverCounters[fileName] != nil { - // Already registered. - return - } - coverCounters[fileName] = counter - block := make([]testing.CoverBlock, len(counter)) - for i := range counter { - block[i] = testing.CoverBlock{ - Line0: pos[3*i+0], - Col0: uint16(pos[3*i+2]), - Line1: pos[3*i+1], - Col1: uint16(pos[3*i+2]>>16), - Stmts: numStmts[i], - } - } - coverBlocks[fileName] = block -} - """, - ]) - return lines - - -def filter_out_skip_tests(tests, skip_tests): - skip_set = set() - star_skip_set = set() - for t in skip_tests: - work_set = star_skip_set if '*' in t else skip_set - work_set.add(t) - - re_star_tests = None - if len(star_skip_set) > 0: - re_star_tests = re.compile(re.sub(r'(\*)+', r'.\1', '^({})$'.format('|'.join(star_skip_set)))) - - return [x for x in tests if not (x in skip_tests or re_star_tests and re_star_tests.match(x))] - - -def gen_test_main(args, test_lib_args, xtest_lib_args): - assert args and (test_lib_args or xtest_lib_args) - test_miner = args.test_miner - test_module_path = test_lib_args.import_path if test_lib_args else xtest_lib_args.import_path - is_cover = args.cover_info and len(args.cover_info) > 0 - - # Prepare GOPATH - # $BINDIR - # |- __go__ - # |- src - # |- pkg - # |- ${TARGET_OS}_${TARGET_ARCH} - go_path_root = os.path.join(args.output_root, '__go__') - test_src_dir = os.path.join(go_path_root, 'src') - target_os_arch = '_'.join([args.targ_os, args.targ_arch]) - test_pkg_dir = os.path.join(go_path_root, 'pkg', target_os_arch, os.path.dirname(test_module_path)) - os.makedirs(test_pkg_dir) - - my_env = os.environ.copy() - my_env['GOROOT'] = '' - my_env['GOPATH'] = go_path_root - my_env['GOARCH'] = args.targ_arch - my_env['GOOS'] = args.targ_os - - tests = [] - xtests = [] - os_symlink = get_symlink_or_copyfile() - - # Get the list of "internal" tests - if test_lib_args: - os.makedirs(os.path.join(test_src_dir, test_module_path)) - os_symlink(test_lib_args.output, os.path.join(test_pkg_dir, os.path.basename(test_module_path) + '.a')) - cmd = [test_miner, '-benchmarks', '-tests', test_module_path] - tests = [x for x in (call(cmd, test_lib_args.output_root, my_env) or '').strip().split('\n') if len(x) > 0] - if args.skip_tests: - tests = filter_out_skip_tests(tests, args.skip_tests) - test_main_found = '#TestMain' in tests - - # Get the list of "external" tests - if xtest_lib_args: - xtest_module_path = xtest_lib_args.import_path - os.makedirs(os.path.join(test_src_dir, xtest_module_path)) - os_symlink(xtest_lib_args.output, os.path.join(test_pkg_dir, os.path.basename(xtest_module_path) + '.a')) - cmd = [test_miner, '-benchmarks', '-tests', xtest_module_path] - xtests = [x for x in (call(cmd, xtest_lib_args.output_root, my_env) or '').strip().split('\n') if len(x) > 0] - if args.skip_tests: - xtests = filter_out_skip_tests(xtests, args.skip_tests) - xtest_main_found = '#TestMain' in xtests - - test_main_package = None - if test_main_found and xtest_main_found: - assert False, 'multiple definition of TestMain' - elif test_main_found: - test_main_package = '_test' - elif xtest_main_found: - test_main_package = '_xtest' - - shutil.rmtree(go_path_root) - - lines = ['package main', '', 'import ('] - if test_main_package is None: - lines.append(' "os"') - lines.extend([' "testing"', ' "testing/internal/testdeps"']) - - if len(tests) > 0: - lines.append(' _test "{}"'.format(test_module_path)) - elif test_lib_args: - lines.append(' _ "{}"'.format(test_module_path)) - - if len(xtests) > 0: - lines.append(' _xtest "{}"'.format(xtest_module_path)) - elif xtest_lib_args: - lines.append(' _ "{}"'.format(xtest_module_path)) - - if is_cover: - lines.append(' _cover0 "{}"'.format(test_module_path)) - lines.extend([')', '']) - - if compare_versions('1.18', args.goversion) < 0: - kinds = ['Test', 'Benchmark', 'Example'] - else: - kinds = ['Test', 'Benchmark', 'FuzzTarget', 'Example'] - - var_names = [] - for kind in kinds: - var_name = '{}s'.format(kind.lower()) - var_names.append(var_name) - lines.append('var {} = []testing.Internal{}{{'.format(var_name, kind)) - for test in [x for x in tests if x.startswith(kind)]: - lines.append(' {{"{test}", _test.{test}}},'.format(test=test)) - for test in [x for x in xtests if x.startswith(kind)]: - lines.append(' {{"{test}", _xtest.{test}}},'.format(test=test)) - lines.extend(['}', '']) - - if is_cover: - lines.extend(gen_cover_info(args)) - - lines.append('func main() {') - if is_cover: - lines.extend([ - ' testing.RegisterCover(testing.Cover{', - ' Mode: "set",', - ' Counters: coverCounters,', - ' Blocks: coverBlocks,', - ' CoveredPackages: "",', - ' })', - ]) - lines.extend([ - ' m := testing.MainStart(testdeps.TestDeps{{}}, {})'.format(', '.join(var_names)), - '', - ]) - - if test_main_package: - lines.append(' {}.TestMain(m)'.format(test_main_package)) - else: - lines.append(' os.Exit(m.Run())') - lines.extend(['}', '']) - - content = '\n'.join(lines) - # sys.stderr.write('{}\n'.format(content)) - return content - - -def do_link_test(args): - assert args.srcs or args.xtest_srcs - assert args.test_miner is not None - - test_module_path = get_source_path(args) - test_import_path, _ = get_import_path(test_module_path) - - test_lib_args = copy_args(args) if args.srcs else None - xtest_lib_args = copy_args(args) if args.xtest_srcs else None - if xtest_lib_args is not None: - xtest_lib_args.embed = args.embed_xtest if args.embed_xtest else None - - ydx_file_name = None - xtest_ydx_file_name = None - need_append_ydx = test_lib_args and xtest_lib_args and args.ydx_file and args.vet_flags - if need_append_ydx: - def find_ydx_file_name(name, flags): - for i, elem in enumerate(flags): - if elem.endswith(name): - return (i, elem) - assert False, 'Unreachable code' - - idx, ydx_file_name = find_ydx_file_name(xtest_lib_args.ydx_file, xtest_lib_args.vet_flags) - xtest_ydx_file_name = '{}_xtest'.format(ydx_file_name) - xtest_lib_args.vet_flags = copy.copy(xtest_lib_args.vet_flags) - xtest_lib_args.vet_flags[idx] = xtest_ydx_file_name - - if test_lib_args: - test_lib_args.output = os.path.join(args.output_root, 'test.a') - test_lib_args.vet_report_output = vet_report_output_name(test_lib_args.output) - test_lib_args.module_path = test_module_path - test_lib_args.import_path = test_import_path - do_link_lib(test_lib_args) - - if xtest_lib_args: - xtest_lib_args.srcs = xtest_lib_args.xtest_srcs - classify_srcs(xtest_lib_args.srcs, xtest_lib_args) - xtest_lib_args.output = os.path.join(args.output_root, 'xtest.a') - xtest_lib_args.vet_report_output = vet_report_output_name(xtest_lib_args.output) - xtest_lib_args.module_path = test_module_path + '_test' - xtest_lib_args.import_path = test_import_path + '_test' - if test_lib_args: - xtest_lib_args.module_map[test_import_path] = test_lib_args.output - need_append_ydx = args.ydx_file and args.srcs and args.vet_flags - do_link_lib(xtest_lib_args) - - if need_append_ydx: - with open(os.path.join(args.build_root, ydx_file_name), 'ab') as dst_file: - with open(os.path.join(args.build_root, xtest_ydx_file_name), 'rb') as src_file: - dst_file.write(src_file.read()) - - test_main_content = gen_test_main(args, test_lib_args, xtest_lib_args) - test_main_name = os.path.join(args.output_root, '_test_main.go') - with open(test_main_name, "w") as f: - f.write(test_main_content) - test_args = copy_args(args) - test_args.embed = None - test_args.srcs = [test_main_name] - if test_args.test_import_path is None: - # it seems that we can do it unconditionally, but this kind - # of mangling doesn't really looks good to me and we leave it - # for pure GO_TEST module - test_args.module_path = test_args.module_path + '___test_main__' - test_args.import_path = test_args.import_path + '___test_main__' - classify_srcs(test_args.srcs, test_args) - if test_lib_args: - test_args.module_map[test_lib_args.import_path] = test_lib_args.output - if xtest_lib_args: - test_args.module_map[xtest_lib_args.import_path] = xtest_lib_args.output - - if args.vet: - dump_vet_report_for_tests(test_args, test_lib_args, xtest_lib_args) - test_args.vet = False - - do_link_exe(test_args) - - -if __name__ == '__main__': - args = pcf.get_args(sys.argv[1:]) - - parser = argparse.ArgumentParser(prefix_chars='+') - parser.add_argument('++mode', choices=['dll', 'exe', 'lib', 'test'], required=True) - parser.add_argument('++buildmode', choices=['c-shared', 'exe', 'pie']) - parser.add_argument('++srcs', nargs='*', required=True) - parser.add_argument('++cgo-srcs', nargs='*') - parser.add_argument('++test_srcs', nargs='*') - parser.add_argument('++xtest_srcs', nargs='*') - parser.add_argument('++cover_info', nargs='*') - parser.add_argument('++output', nargs='?', default=None) - parser.add_argument('++source-root', default=None) - parser.add_argument('++build-root', required=True) - parser.add_argument('++tools-root', default=None) - parser.add_argument('++output-root', required=True) - parser.add_argument('++toolchain-root', required=True) - parser.add_argument('++host-os', choices=['linux', 'darwin', 'windows'], required=True) - parser.add_argument('++host-arch', choices=['amd64', 'arm64'], required=True) - parser.add_argument('++targ-os', choices=['linux', 'darwin', 'windows'], required=True) - parser.add_argument('++targ-arch', choices=['amd64', 'x86', 'arm64'], required=True) - parser.add_argument('++peers', nargs='*') - parser.add_argument('++non-local-peers', nargs='*') - parser.add_argument('++cgo-peers', nargs='*') - parser.add_argument('++asmhdr', nargs='?', default=None) - parser.add_argument('++test-import-path', nargs='?') - parser.add_argument('++test-miner', nargs='?') - parser.add_argument('++arc-project-prefix', nargs='?', default=arc_project_prefix) - parser.add_argument('++std-lib-prefix', nargs='?', default=std_lib_prefix) - parser.add_argument('++vendor-prefix', nargs='?', default=vendor_prefix) - parser.add_argument('++extld', nargs='?', default=None) - parser.add_argument('++extldflags', nargs='+', default=None) - parser.add_argument('++goversion', required=True) - parser.add_argument('++lang', nargs='?', default=None) - parser.add_argument('++asm-flags', nargs='*') - parser.add_argument('++compile-flags', nargs='*') - parser.add_argument('++link-flags', nargs='*') - parser.add_argument('++vcs', nargs='?', default=None) - parser.add_argument('++vet', nargs='?', const=True, default=False) - parser.add_argument('++vet-flags', nargs='*', default=None) - parser.add_argument('++vet-info-ext', default=vet_info_ext) - parser.add_argument('++vet-report-ext', default=vet_report_ext) - parser.add_argument('++musl', action='store_true') - parser.add_argument('++skip-tests', nargs='*', default=None) - parser.add_argument('++ydx-file', default='') - parser.add_argument('++debug-root-map', default=None) - parser.add_argument('++embed', action='append', nargs='*') - parser.add_argument('++embed_xtest', action='append', nargs='*') - args = parser.parse_args(args) - - arc_project_prefix = args.arc_project_prefix - std_lib_prefix = args.std_lib_prefix - vendor_prefix = args.vendor_prefix - vet_info_ext = args.vet_info_ext - vet_report_ext = args.vet_report_ext - - preprocess_args(args) - - try: - os.unlink(args.output) - except OSError: - pass - - # We are going to support only 'lib', 'exe' and 'cgo' build modes currently - # and as a result we are going to generate only one build node per module - # (or program) - dispatch = { - 'exe': do_link_exe, - 'dll': do_link_exe, - 'lib': do_link_lib, - 'test': do_link_test - } - - exit_code = 1 - try: - dispatch[args.mode](args) - exit_code = 0 - except KeyError: - sys.stderr.write('Unknown build mode [{}]...\n'.format(args.mode)) - except subprocess.CalledProcessError as e: - sys.stderr.write('{} returned non-zero exit code {}.\n{}\n'.format(' '.join(e.cmd), e.returncode, e.output)) - exit_code = e.returncode - except Exception as e: - sys.stderr.write('Unhandled exception [{}]...\n'.format(str(e))) - sys.exit(exit_code) diff --git a/build/scripts/ios_wrapper.py b/build/scripts/ios_wrapper.py deleted file mode 100644 index d3aa48387a..0000000000 --- a/build/scripts/ios_wrapper.py +++ /dev/null @@ -1,180 +0,0 @@ -import errno -import json -import os -import shutil -import subprocess -import sys -import tarfile -import plistlib - - -def ensure_dir(path): - try: - os.makedirs(path) - except OSError as e: - if e.errno != errno.EEXIST or not os.path.isdir(path): - raise - - -def just_do_it(args): - if not args: - raise Exception('Not enough args!') - parts = [[]] - for arg in args: - if arg == '__DELIM__': - parts.append([]) - else: - parts[-1].append(arg) - if len(parts) != 3 or len(parts[0]) != 5: - raise Exception('Bad call') - bin_name, ibtool_path, main_out, app_name, module_dir = parts[0] - bin_name = os.path.basename(bin_name) - inputs, storyboard_user_flags = parts[1:] - plists, storyboards, signs, nibs, resources, signed_resources, plist_jsons, strings = [], [], [], [], [], [], [], [] - for i in inputs: - if i.endswith('.plist') or i.endswith('.partial_plist'): - plists.append(i) - elif i.endswith('.compiled_storyboard_tar'): - storyboards.append(i) - elif i.endswith('.xcent'): - signs.append(i) - elif i.endswith('.nib'): - nibs.append(i) - elif i.endswith('.resource_tar'): - resources.append(i) - elif i.endswith('.signed_resource_tar'): - signed_resources.append(i) - elif i.endswith('.plist_json'): - plist_jsons.append(i) - elif i.endswith('.strings_tar'): - strings.append(i) - else: - print >> sys.stderr, 'Unknown input:', i, 'ignoring' - if not plists: - raise Exception("Can't find plist files") - if not plists[0].endswith('.plist'): - print >> sys.stderr, "Main plist file can be defined incorretly" - if not storyboards: - print >> sys.stderr, "Storyboards list are empty" - if len(signs) > 1: - raise Exception("Too many .xcent files") - app_dir = os.path.join(module_dir, app_name + '.app') - ensure_dir(app_dir) - copy_nibs(nibs, module_dir, app_dir) - replaced_parameters = { - 'DEVELOPMENT_LANGUAGE': 'en', - 'EXECUTABLE_NAME': bin_name, - 'PRODUCT_BUNDLE_IDENTIFIER': 'Yandex.' + app_name, - 'PRODUCT_NAME': app_name, - } - replaced_templates = {} - for plist_json in plist_jsons: - with open(plist_json) as jsonfile: - for k, v in json.loads(jsonfile.read()).items(): - replaced_parameters[k] = v - for k, v in replaced_parameters.items(): - replaced_templates['$(' + k + ')'] = v - replaced_templates['${' + k + '}'] = v - make_main_plist(plists, os.path.join(app_dir, 'Info.plist'), replaced_templates) - link_storyboards(ibtool_path, storyboards, app_name, app_dir, storyboard_user_flags) - if resources: - extract_resources(resources, app_dir) - if signed_resources: - extract_resources(signed_resources, app_dir, sign=True) - if strings: - extract_resources(strings, app_dir, strings=True) - if not signs: - sign_file = os.path.join(module_dir, app_name + '.xcent') - with open(sign_file, 'w') as f: - f.write('''<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>com.apple.security.get-task-allow</key> - <true/> -</dict> -</plist> - ''') - else: - sign_file = signs[0] - sign_application(sign_file, app_dir) - make_archive(app_dir, main_out) - - -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def copy_nibs(nibs, module_dir, app_dir): - for nib in nibs: - dst = os.path.join(app_dir, os.path.relpath(nib, module_dir)) - ensure_dir(os.path.dirname(dst)) - shutil.copyfile(nib, dst) - - -def make_main_plist(inputs, out, replaced_parameters): - united_data = {} - for i in inputs: - united_data.update(plistlib.readPlist(i)) - - def scan_n_replace(root): - if not isinstance(root, dict): - raise Exception('Invalid state') - for k in root: - if isinstance(root[k], list): - for i in xrange(len(root[k])): - if isinstance(root[k][i], dict): - scan_n_replace(root[k][i]) - elif root[k][i] in replaced_parameters: - root[k][i] = replaced_parameters[root[k][i]] - elif isinstance(root[k], dict): - scan_n_replace(root[k]) - else: - if root[k] in replaced_parameters: - root[k] = replaced_parameters[root[k]] - scan_n_replace(united_data) - plistlib.writePlist(united_data, out) - subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', out]) - - -def link_storyboards(ibtool, archives, app_name, app_dir, flags): - unpacked = [] - for arc in archives: - unpacked.append(os.path.splitext(arc)[0] + 'c') - ensure_dir(unpacked[-1]) - with tarfile.open(arc) as a: - a.extractall(path=unpacked[-1]) - flags += [ - '--module', app_name, - '--link', app_dir, - ] - subprocess.check_call([ibtool] + flags + - ['--errors', '--warnings', '--notices', '--output-format', 'human-readable-text'] + - unpacked) - - -def sign_application(xcent, app_dir): - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', '--entitlements', xcent, '--timestamp=none', app_dir]) - - -def extract_resources(resources, app_dir, strings=False, sign=False): - for res in resources: - with tarfile.open(res) as tf: - for tfinfo in tf: - tf.extract(tfinfo.name, app_dir) - if strings: - subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', os.path.join(app_dir, tfinfo.name)]) - if sign: - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', os.path.join(app_dir, tfinfo.name)]) - - -def make_archive(app_dir, output): - with tarfile.open(output, "w") as tar_handle: - for root, _, files in os.walk(app_dir): - for f in files: - tar_handle.add(os.path.join(root, f), arcname=os.path.join(os.path.basename(app_dir), - os.path.relpath(os.path.join(root, f), app_dir))) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) diff --git a/build/scripts/java_pack_to_file.py b/build/scripts/java_pack_to_file.py deleted file mode 100644 index c8ab7c311b..0000000000 --- a/build/scripts/java_pack_to_file.py +++ /dev/null @@ -1,43 +0,0 @@ -import os -import re -import optparse - -JAVA_PACKAGE_REGEX = re.compile(r'^\s*package\s+(.*?);', flags=re.MULTILINE | re.DOTALL) -KOTLIN_PACKAGE_REGEX = re.compile(r'^\s*package\s+(.*?)^', flags=re.MULTILINE | re.DOTALL) - - -def parse_args(): - parser = optparse.OptionParser() - parser.add_option('-o', '--output') - parser.add_option('-a', '--source-root', dest='source_root') - return parser.parse_args() - - -def get_package_name(filename): - with open(filename) as afile: - content = afile.read() - if filename.endswith(".kt"): - match = KOTLIN_PACKAGE_REGEX.search(content) - if match: - return match.group(1).strip().replace('.', '/') - else: - match = JAVA_PACKAGE_REGEX.search(content) - if match: - return match.group(1).replace('\n\t ', '').replace('.', '/') - return '' - - -def write_coverage_sources(output, srcroot, files): - with open(output, 'w') as afile: - for filename in files: - pname = get_package_name(os.path.join(srcroot, filename)) - afile.write(os.path.join(pname, os.path.basename(filename)) + ':' + filename + '\n') - - -def main(): - opts, files = parse_args() - write_coverage_sources(opts.output, opts.source_root, files) - - -if __name__ == '__main__': - exit(main()) diff --git a/build/scripts/jni_swig.py b/build/scripts/jni_swig.py deleted file mode 100644 index 4b2220430b..0000000000 --- a/build/scripts/jni_swig.py +++ /dev/null @@ -1,46 +0,0 @@ -import argparse -import subprocess -import re -import os -import tarfile - -def parse_args(): - parser = argparse.ArgumentParser(description='Wrapper script to invoke swig.') - parser.add_argument('--swig', help='path to the swig executable') - parser.add_argument('--default-module', type=str, help='swig -module argument value for inputs without %module statement') - parser.add_argument('--package-by-file', help='path to file which dir must be converted to swig -package argument') - parser.add_argument('--jsrc', help='jsrc output archive filename') - parser.add_argument('--src', help='input .swg file path') - parser.add_argument('--out-header', help='header file which must exist even if it was not generated by swig') - parser.add_argument('args', nargs="*", help='regular swig arguments') - - return parser.parse_args() - - -def path2pkg(path): - return path.replace('/', '.').replace('-', '_') - - -def main(args): - package = path2pkg(os.path.dirname(args.package_by_file)) - outdir = None - if args.jsrc: - outdir = package.replace('.', '/') - outdir_abs = os.path.join(os.path.dirname(args.jsrc), outdir) - if not os.path.exists(outdir_abs): - os.makedirs(outdir_abs) - cmd = [args.swig, '-c++', '-java', '-package', package] + (['-outdir', outdir_abs] if outdir is not None else []) + args.args - if '-module' not in args.args and args.default_module: - with open(args.src, 'r') as f: - if not re.search(r'(?m)^%module\b', f.read()): - cmd += ['-module', args.default_module] - subprocess.check_call(cmd + [args.src]) - if args.out_header and not os.path.exists(args.out_header): - open(args.out_header, 'w').close() - if args.jsrc: - with tarfile.open(args.jsrc, 'a') as tf: - tf.add(outdir_abs, arcname=outdir) - - -if __name__ == '__main__': - main(parse_args()) diff --git a/build/scripts/kt_copy.py b/build/scripts/kt_copy.py deleted file mode 100644 index f833c24ef4..0000000000 --- a/build/scripts/kt_copy.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python -import sys - -if __name__ == '__main__': - source = sys.argv[1] - destination = sys.argv[2] - source_root = sys.argv[3] - build_root = sys.argv[4] - with open(source, 'r') as afile: - src_content = afile.read() - src_content = src_content.replace(source_root + '/', "") - result_srcs = "" - for line in src_content.split("\n"): - if not line.startswith(build_root): - result_srcs += line + "\n" - with open(destination, 'w') as afile: - afile.write(result_srcs) diff --git a/build/scripts/link_asrc.py b/build/scripts/link_asrc.py deleted file mode 100644 index eec5fe09a8..0000000000 --- a/build/scripts/link_asrc.py +++ /dev/null @@ -1,84 +0,0 @@ -import argparse -import itertools -import os -import tarfile - - -DELIM_JAVA = '__DELIM_JAVA__' -DELIM_RES = '__DELIM_RES__' -DELIM_ASSETS = '__DELIM_ASSETS__' -DELIM_AIDL = '__DELIM_AIDL__' - -DELIMS = ( - DELIM_JAVA, - DELIM_RES, - DELIM_ASSETS, - DELIM_AIDL, -) - -DESTS = { - DELIM_JAVA: 'src', - DELIM_RES: 'res', - DELIM_ASSETS: 'assets', - DELIM_AIDL: 'aidl', -} - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--asrcs', nargs='*') - parser.add_argument('--input', nargs='*') - parser.add_argument('--jsrcs', nargs='*') - parser.add_argument('--output', required=True) - parser.add_argument('--work', required=True) - - return parser.parse_args() - - -def main(): - args = parse_args() - - files = [] - parts = [] - - if args.input and len(args.input) > 0: - for x in args.input: - if x in DELIMS: - assert(len(parts) == 0 or len(parts[-1]) > 1) - parts.append([x]) - else: - assert(len(parts) > 0) - parts[-1].append(x) - assert(len(parts[-1]) > 1) - - if args.jsrcs and len(args.jsrcs): - src_dir = os.path.join(args.work, DESTS[DELIM_JAVA]) - os.makedirs(src_dir) - - for jsrc in filter(lambda x: x.endswith('.jsrc'), args.jsrcs): - with tarfile.open(jsrc, 'r') as tar: - names = tar.getnames() - if names and len(names) > 0: - parts.append([DELIM_JAVA, src_dir]) - parts[-1].extend(itertools.imap(lambda x: os.path.join(src_dir, x), names)) - tar.extractall(path=src_dir) - - if args.asrcs and len(args.asrcs): - for asrc in filter(lambda x: x.endswith('.asrc') and os.path.exists(x), args.asrcs): - with tarfile.open(asrc, 'r') as tar: - files.extend(tar.getnames()) - tar.extractall(path=args.work) - - with tarfile.open(args.output, 'w') as out: - for part in parts: - dest = DESTS[part[0]] - prefix = part[1] - for f in part[2:]: - out.add(f, arcname=os.path.join(dest, os.path.relpath(f, prefix))) - - for f in files: - out.add(os.path.join(args.work, f), arcname=f) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/link_dyn_lib.py b/build/scripts/link_dyn_lib.py deleted file mode 100644 index 81e643f630..0000000000 --- a/build/scripts/link_dyn_lib.py +++ /dev/null @@ -1,341 +0,0 @@ -import sys -import os -import subprocess -import tempfile -import collections -import optparse -import pipes - -from process_whole_archive_option import ProcessWholeArchiveOption - - -def shlex_join(cmd): - # equivalent to shlex.join() in python 3 - return ' '.join( - pipes.quote(part) - for part in cmd - ) - - -def parse_export_file(p): - with open(p, 'r') as f: - for l in f: - l = l.strip() - - if l and '#' not in l: - words = l.split() - if len(words) == 2 and words[0] == 'linux_version': - yield {'linux_version': words[1]} - elif len(words) == 2: - yield {'lang': words[0], 'sym': words[1]} - elif len(words) == 1: - yield {'lang': 'C', 'sym': words[0]} - else: - raise Exception('unsupported exports line: ' + l) - - -def to_c(sym): - symbols = collections.deque(sym.split('::')) - c_prefixes = [ # demangle prefixes for c++ symbols - '_ZN', # namespace - '_ZTIN', # typeinfo for - '_ZTSN', # typeinfo name for - '_ZTTN', # VTT for - '_ZTVN', # vtable for - '_ZNK', # const methods - ] - c_sym = '' - while symbols: - s = symbols.popleft() - if s == '*': - c_sym += '*' - break - if '*' in s and len(s) > 1: - raise Exception('Unsupported format, cannot guess length of symbol: ' + s) - c_sym += str(len(s)) + s - if symbols: - raise Exception('Unsupported format: ' + sym) - if c_sym[-1] != '*': - c_sym += 'E*' - return ['{prefix}{sym}'.format(prefix=prefix, sym=c_sym) for prefix in c_prefixes] - - -def fix_darwin_param(ex): - for item in ex: - if item.get('linux_version'): - continue - - if item['lang'] == 'C': - yield '-Wl,-exported_symbol,_' + item['sym'] - elif item['lang'] == 'C++': - for sym in to_c(item['sym']): - yield '-Wl,-exported_symbol,_' + sym - else: - raise Exception('unsupported lang: ' + item['lang']) - - -def fix_gnu_param(arch, ex): - d = collections.defaultdict(list) - version = None - for item in ex: - if item.get('linux_version'): - if not version: - version = item.get('linux_version') - else: - raise Exception('More than one linux_version defined') - elif item['lang'] == 'C++': - d['C'].extend(to_c(item['sym'])) - else: - d[item['lang']].append(item['sym']) - - with tempfile.NamedTemporaryFile(mode='wt', delete=False) as f: - if version: - f.write('{} {{\nglobal:\n'.format(version)) - else: - f.write('{\nglobal:\n') - - for k, v in d.items(): - f.write(' extern "' + k + '" {\n') - - for x in v: - f.write(' ' + x + ';\n') - - f.write(' };\n') - - f.write('local: *;\n};\n') - - ret = ['-Wl,--version-script=' + f.name] - - if arch == 'ANDROID': - ret += ['-Wl,--export-dynamic'] - - return ret - - -def fix_windows_param(ex): - with tempfile.NamedTemporaryFile(delete=False) as def_file: - exports = [] - for item in ex: - if item.get('lang') == 'C': - exports.append(item.get('sym')) - def_file.write('EXPORTS\n') - for export in exports: - def_file.write(' {}\n'.format(export)) - return ['/DEF:{}'.format(def_file.name)] - - -MUSL_LIBS = '-lc', '-lcrypt', '-ldl', '-lm', '-lpthread', '-lrt', '-lutil' - -CUDA_LIBRARIES = { - '-lcublas_static': '-lcublas', - '-lcublasLt_static': '-lcublasLt', - '-lcudart_static': '-lcudart', - '-lcudnn_static': '-lcudnn', - '-lcufft_static_nocallback': '-lcufft', - '-lcurand_static': '-lcurand', - '-lcusolver_static': '-lcusolver', - '-lcusparse_static': '-lcusparse', - '-lmyelin_compiler_static': '-lmyelin', - '-lmyelin_executor_static': '-lnvcaffe_parser', - '-lmyelin_pattern_library_static': '', - '-lmyelin_pattern_runtime_static': '', - '-lnvinfer_static': '-lnvinfer', - '-lnvinfer_plugin_static': '-lnvinfer_plugin', - '-lnvonnxparser_static': '-lnvonnxparser', - '-lnvparsers_static': '-lnvparsers' -} - - -def fix_cmd(arch, c): - if arch == 'WINDOWS': - prefix = '/DEF:' - f = fix_windows_param - else: - prefix = '-Wl,--version-script=' - if arch in ('DARWIN', 'IOS', 'IOSSIM'): - f = fix_darwin_param - else: - f = lambda x: fix_gnu_param(arch, x) - - def do_fix(p): - if p.startswith(prefix) and p.endswith('.exports'): - fname = p[len(prefix):] - - return list(f(list(parse_export_file(fname)))) - - if p.endswith('.supp'): - return [] - - if p.endswith('.pkg.fake'): - return [] - - return [p] - - return sum((do_fix(x) for x in c), []) - - -def fix_cmd_for_musl(cmd): - flags = [] - for flag in cmd: - if flag not in MUSL_LIBS: - flags.append(flag) - return flags - - -def fix_cmd_for_dynamic_cuda(cmd): - flags = [] - for flag in cmd: - if flag in CUDA_LIBRARIES: - flags.append(CUDA_LIBRARIES[flag]) - else: - flags.append(flag) - return flags - - -def parse_args(): - parser = optparse.OptionParser() - parser.disable_interspersed_args() - parser.add_option('--arch') - parser.add_option('--target') - parser.add_option('--soname') - parser.add_option('--fix-elf') - parser.add_option('--linker-output') - parser.add_option('--musl', action='store_true') - parser.add_option('--dynamic-cuda', action='store_true') - parser.add_option('--whole-archive-peers', action='append') - parser.add_option('--whole-archive-libs', action='append') - parser.add_option('--custom-step') - parser.add_option('--python') - return parser.parse_args() - - -if __name__ == '__main__': - opts, args = parse_args() - - assert opts.arch - assert opts.target - - cmd = fix_cmd(opts.arch, args) - - if opts.musl: - cmd = fix_cmd_for_musl(cmd) - if opts.dynamic_cuda: - cmd = fix_cmd_for_dynamic_cuda(cmd) - - cmd = ProcessWholeArchiveOption(opts.arch, opts.whole_archive_peers, opts.whole_archive_libs).construct_cmd(cmd) - - if opts.custom_step: - assert opts.python - subprocess.check_call([opts.python] + [opts.custom_step] + cmd) - - if opts.linker_output: - stdout = open(opts.linker_output, 'w') - else: - stdout = sys.stdout - - proc = subprocess.Popen(cmd, shell=False, stderr=sys.stderr, stdout=stdout) - proc.communicate() - - if proc.returncode: - print >>sys.stderr, 'linker has failed with retcode:', proc.returncode - print >>sys.stderr, 'linker command:', shlex_join(cmd) - sys.exit(proc.returncode) - - if opts.fix_elf: - cmd = [opts.fix_elf, opts.target] - proc = subprocess.Popen(cmd, shell=False, stderr=sys.stderr, stdout=sys.stdout) - proc.communicate() - - if proc.returncode: - print >>sys.stderr, 'fix_elf has failed with retcode:', proc.returncode - print >>sys.stderr, 'fix_elf command:', shlex_join(cmd) - sys.exit(proc.returncode) - - if opts.soname and opts.soname != opts.target: - if os.path.exists(opts.soname): - os.unlink(opts.soname) - os.link(opts.target, opts.soname) - - -# -----------------Test---------------- # -def write_temp_file(content): - import yatest.common as yc - filename = yc.output_path('test.exports') - with open(filename, 'w') as f: - f.write(content) - return filename - - -def test_fix_cmd_darwin(): - export_file_content = """ -C++ geobase5::details::lookup_impl::* -C++ geobase5::hardcoded_service -""" - filename = write_temp_file(export_file_content) - args = ['-Wl,--version-script={}'.format(filename)] - assert fix_cmd('DARWIN', args) == [ - '-Wl,-exported_symbol,__ZN8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZTIN8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZTSN8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZTTN8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZTVN8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZNK8geobase57details11lookup_impl*', - '-Wl,-exported_symbol,__ZN8geobase517hardcoded_serviceE*', - '-Wl,-exported_symbol,__ZTIN8geobase517hardcoded_serviceE*', - '-Wl,-exported_symbol,__ZTSN8geobase517hardcoded_serviceE*', - '-Wl,-exported_symbol,__ZTTN8geobase517hardcoded_serviceE*', - '-Wl,-exported_symbol,__ZTVN8geobase517hardcoded_serviceE*', - '-Wl,-exported_symbol,__ZNK8geobase517hardcoded_serviceE*', - ] - - -def run_fix_gnu_param(export_file_content): - filename = write_temp_file(export_file_content) - result = fix_gnu_param('LINUX', list(parse_export_file(filename)))[0] - version_script_path = result[len('-Wl,--version-script='):] - with open(version_script_path) as f: - content = f.read() - return content - - -def test_fix_gnu_param(): - export_file_content = """ -C++ geobase5::details::lookup_impl::* -C getFactoryMap -""" - assert run_fix_gnu_param(export_file_content) == """{ -global: - extern "C" { - _ZN8geobase57details11lookup_impl*; - _ZTIN8geobase57details11lookup_impl*; - _ZTSN8geobase57details11lookup_impl*; - _ZTTN8geobase57details11lookup_impl*; - _ZTVN8geobase57details11lookup_impl*; - _ZNK8geobase57details11lookup_impl*; - getFactoryMap; - }; -local: *; -}; -""" - - -def test_fix_gnu_param_with_linux_version(): - export_file_content = """ -C++ geobase5::details::lookup_impl::* -linux_version ver1.0 -C getFactoryMap -""" - assert run_fix_gnu_param(export_file_content) == """ver1.0 { -global: - extern "C" { - _ZN8geobase57details11lookup_impl*; - _ZTIN8geobase57details11lookup_impl*; - _ZTSN8geobase57details11lookup_impl*; - _ZTTN8geobase57details11lookup_impl*; - _ZTVN8geobase57details11lookup_impl*; - _ZNK8geobase57details11lookup_impl*; - getFactoryMap; - }; -local: *; -}; -""" diff --git a/build/scripts/link_exe.py b/build/scripts/link_exe.py deleted file mode 100644 index d50557ebec..0000000000 --- a/build/scripts/link_exe.py +++ /dev/null @@ -1,174 +0,0 @@ -import sys -import subprocess -import optparse - -from process_whole_archive_option import ProcessWholeArchiveOption - - -def get_leaks_suppressions(cmd): - supp, newcmd = [], [] - for arg in cmd: - if arg.endswith(".supp"): - supp.append(arg) - else: - newcmd.append(arg) - return supp, newcmd - - -MUSL_LIBS = '-lc', '-lcrypt', '-ldl', '-lm', '-lpthread', '-lrt', '-lutil' - - -CUDA_LIBRARIES = { - '-lcublas_static': '-lcublas', - '-lcublasLt_static': '-lcublasLt', - '-lcudart_static': '-lcudart', - '-lcudnn_static': '-lcudnn', - '-lcufft_static_nocallback': '-lcufft', - '-lcurand_static': '-lcurand', - '-lcusolver_static': '-lcusolver', - '-lcusparse_static': '-lcusparse', - '-lmyelin_compiler_static': '-lmyelin', - '-lmyelin_executor_static': '-lnvcaffe_parser', - '-lmyelin_pattern_library_static': '', - '-lmyelin_pattern_runtime_static': '', - '-lnvinfer_static': '-lnvinfer', - '-lnvinfer_plugin_static': '-lnvinfer_plugin', - '-lnvonnxparser_static': '-lnvonnxparser', - '-lnvparsers_static': '-lnvparsers' -} - - -def remove_excessive_flags(cmd): - flags = [] - for flag in cmd: - if not flag.endswith('.ios.interface') and not flag.endswith('.pkg.fake'): - flags.append(flag) - return flags - - -def fix_sanitize_flag(cmd): - """ - Remove -fsanitize=address flag if sanitazers are linked explicitly for linux target. - """ - for flag in cmd: - if flag.startswith('--target') and 'linux' not in flag.lower(): - # use toolchained sanitize libraries - return cmd - - CLANG_RT = 'contrib/libs/clang14-rt/lib/' - sanitize_flags = { - '-fsanitize=address': CLANG_RT + 'asan', - '-fsanitize=memory': CLANG_RT + 'msan', - '-fsanitize=leak': CLANG_RT + 'lsan', - '-fsanitize=undefined': CLANG_RT + 'ubsan', - '-fsanitize=thread': CLANG_RT + 'tsan' - } - - used_sanitize_libs = [] - aux = [] - for flag in cmd: - if flag.startswith('-fsanitize-coverage='): - # do not link sanitizer libraries from clang - aux.append('-fno-sanitize-link-runtime') - if flag in sanitize_flags and any(s.startswith(sanitize_flags[flag]) for s in cmd): - # exclude '-fsanitize=' if appropriate library is linked explicitly - continue - if any(flag.startswith(lib) for lib in sanitize_flags.values()): - used_sanitize_libs.append(flag) - continue - aux.append(flag) - - # move sanitize libraries out of the repeatedly searched group of archives - flags = [] - for flag in aux: - if flag == '-Wl,--start-group': - flags += ['-Wl,--whole-archive'] + used_sanitize_libs + ['-Wl,--no-whole-archive'] - flags.append(flag) - - return flags - - -def fix_cmd_for_musl(cmd): - flags = [] - for flag in cmd: - if flag not in MUSL_LIBS: - flags.append(flag) - return flags - - -def fix_cmd_for_dynamic_cuda(cmd): - flags = [] - for flag in cmd: - if flag in CUDA_LIBRARIES: - flags.append(CUDA_LIBRARIES[flag]) - else: - flags.append(flag) - return flags - - -def gen_default_suppressions(inputs, output, source_root): - import collections - import os - - supp_map = collections.defaultdict(set) - for filename in inputs: - sanitizer = os.path.basename(filename).split('.', 1)[0] - with open(os.path.join(source_root, filename)) as src: - for line in src: - line = line.strip() - if not line or line.startswith('#'): - continue - supp_map[sanitizer].add(line) - - with open(output, "wb") as dst: - for supp_type, supps in supp_map.items(): - dst.write('extern "C" const char *__%s_default_suppressions() {\n' % supp_type) - dst.write(' return "{}";\n'.format('\\n'.join(sorted(supps)))) - dst.write('}\n') - - -def parse_args(): - parser = optparse.OptionParser() - parser.disable_interspersed_args() - parser.add_option('--musl', action='store_true') - parser.add_option('--custom-step') - parser.add_option('--python') - parser.add_option('--source-root') - parser.add_option('--dynamic-cuda', action='store_true') - parser.add_option('--arch') - parser.add_option('--linker-output') - parser.add_option('--whole-archive-peers', action='append') - parser.add_option('--whole-archive-libs', action='append') - return parser.parse_args() - - -if __name__ == '__main__': - opts, args = parse_args() - - cmd = remove_excessive_flags(args) - if opts.musl: - cmd = fix_cmd_for_musl(cmd) - - cmd = fix_sanitize_flag(cmd) - - if opts.dynamic_cuda: - cmd = fix_cmd_for_dynamic_cuda(cmd) - cmd = ProcessWholeArchiveOption(opts.arch, opts.whole_archive_peers, opts.whole_archive_libs).construct_cmd(cmd) - - if opts.custom_step: - assert opts.python - subprocess.check_call([opts.python] + [opts.custom_step] + args) - - supp, cmd = get_leaks_suppressions(cmd) - if supp: - src_file = "default_suppressions.cpp" - gen_default_suppressions(supp, src_file, opts.source_root) - cmd += [src_file] - - if opts.linker_output: - stdout = open(opts.linker_output, 'w') - else: - stdout = sys.stdout - - rc = subprocess.call(cmd, shell=False, stderr=sys.stderr, stdout=stdout) - sys.exit(rc) diff --git a/build/scripts/link_fat_obj.py b/build/scripts/link_fat_obj.py deleted file mode 100644 index c189668b9e..0000000000 --- a/build/scripts/link_fat_obj.py +++ /dev/null @@ -1,91 +0,0 @@ -import argparse -import subprocess -import sys - -from process_whole_archive_option import ProcessWholeArchiveOption - -YA_ARG_PREFIX = '-Ya,' - - -def get_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--obj') - parser.add_argument('--globals-lib') - parser.add_argument('--lib', required=True) - parser.add_argument('--arch', required=True) - parser.add_argument('--build-root', default=None) - parser.add_argument('--with-own-obj', action='store_true', default=False) - parser.add_argument('--with-global-srcs', action='store_true', default=False) - - groups = {} - args_list = groups.setdefault('default', []) - for arg in sys.argv[1:]: - if arg == '--with-own-obj': - groups['default'].append(arg) - elif arg == '--globals-lib': - groups['default'].append(arg) - elif arg == '--with-global-srcs': - groups['default'].append(arg) - elif arg.startswith(YA_ARG_PREFIX): - group_name = arg[len(YA_ARG_PREFIX):] - args_list = groups.setdefault(group_name, []) - else: - args_list.append(arg) - - return parser.parse_args(groups['default']), groups - - -def strip_suppression_files(srcs): - return [s for s in srcs if not s.endswith('.supp')] - - -def main(): - args, groups = get_args() - - # Inputs - auto_input = groups['input'] - - # Outputs - lib_output = args.lib - obj_output = args.obj - - # Dependencies - global_srcs = groups['global_srcs'] - global_srcs = strip_suppression_files(global_srcs) - global_srcs = ProcessWholeArchiveOption(args.arch).construct_cmd(global_srcs) - peers = groups['peers'] - - # Tools - linker = groups['linker'] - archiver = groups['archiver'] - - do_link = linker + ['-o', obj_output, '-Wl,-r', '-nodefaultlibs', '-nostartfiles'] + global_srcs + auto_input - do_archive = archiver + [lib_output] + peers - do_globals = None - if args.globals_lib: - do_globals = archiver + [args.globals_lib] + auto_input + global_srcs - if args.with_own_obj: - do_archive += auto_input - if args.with_global_srcs: - do_archive += global_srcs - - def call(c): - proc = subprocess.Popen(c, shell=False, stderr=sys.stderr, stdout=sys.stdout, cwd=args.build_root) - proc.communicate() - return proc.returncode - - if obj_output: - link_res = call(do_link) - if link_res: - sys.exit(link_res) - - if do_globals: - glob_res = call(do_globals) - if glob_res: - sys.exit(glob_res) - - sys.exit(call(do_archive)) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/link_jsrc.py b/build/scripts/link_jsrc.py deleted file mode 100644 index feae72fe4e..0000000000 --- a/build/scripts/link_jsrc.py +++ /dev/null @@ -1,27 +0,0 @@ -import argparse -import tarfile - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--input', nargs='*') - parser.add_argument('--output', required=True) - - return parser.parse_args() - - -def main(): - args = parse_args() - - with tarfile.open(args.output, 'w') as dest: - for jsrc in [j for j in args.input if j.endswith('.jsrc')]: - with tarfile.open(jsrc, 'r') as src: - for item in [m for m in src.getmembers() if m.name != '']: - if item.isdir(): - dest.addfile(item) - else: - dest.addfile(item, src.extractfile(item)) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/link_lib.py b/build/scripts/link_lib.py deleted file mode 100644 index e73c02027a..0000000000 --- a/build/scripts/link_lib.py +++ /dev/null @@ -1,101 +0,0 @@ -import sys -import subprocess -import tempfile -import os -import shutil - - -class Opts(object): - def __init__(self, args): - self.archiver = args[0] - self.arch_type = args[1] - self.llvm_ar_format = args[2] - self.build_root = args[3] - self.plugin = args[4] - self.output = args[5] - auto_input = args[6:] - - self.need_modify = False - self.extra_args = [] - - if self.arch_type.endswith('_AR'): - if self.arch_type == 'GNU_AR': - self.create_flags = ['rcs'] - self.modify_flags = ['-M'] - elif self.arch_type == 'LLVM_AR': - self.create_flags = ['rcs', '--format=%s' % self.llvm_ar_format] - self.modify_flags = ['-M'] - self.need_modify = any(item.endswith('.a') for item in auto_input) - if self.need_modify: - self.objs = list( filter(lambda x: x.endswith('.o'), auto_input) ) - self.libs = list( filter(lambda x: x.endswith('.a'), auto_input) ) - else: - self.objs = auto_input - self.libs = [] - self.output_opts = [self.output] - elif self.arch_type == 'LIBTOOL': - self.create_flags = ['-static'] - self.objs = auto_input - self.libs = [] - self.output_opts = ['-o', self.output] - elif self.arch_type == 'LIB': - self.create_flags = [] - self.extra_args = list( filter(lambda x: x.startswith('/'), auto_input) ) - self.objs = list( filter(lambda x: not x.startswith('/'), auto_input) ) - self.libs = [] - self.output_opts = ['/OUT:' + self.output] - - self.plugin_flags = ['--plugin', self.plugin] if self.plugin != 'None' else [] - - -def get_opts(args): - return Opts(args) - - -if __name__ == "__main__": - opts = get_opts(sys.argv[1:]) - - # There is a bug in llvm-ar. Some files with size slightly greater 2^32 - # still have GNU format instead of GNU64 and cause link problems. - # Workaround just lowers llvm-ar's GNU64 threshold to 2^31. - if opts.arch_type == 'LLVM_AR': - os.environ['SYM64_THRESHOLD'] = '31' - - def call(): - try: - p = subprocess.Popen(cmd, stdin=stdin, cwd=opts.build_root) - rc = p.wait() - return rc - except OSError as e: - raise Exception('while running %s: %s' % (' '.join(cmd), e)) - - try: - os.unlink(opts.output) - except OSError: - pass - - if not opts.need_modify: - cmd = [opts.archiver] + opts.create_flags + opts.plugin_flags + opts.extra_args + opts.output_opts + opts.objs - stdin = None - exit_code = call() - elif len(opts.objs) == 0 and len(opts.libs) == 1: - shutil.copy(opts.libs[0], opts.output) - exit_code = 0 - else: - temp = tempfile.NamedTemporaryFile(dir=os.path.dirname(opts.output), delete=False) - - with open(temp.name, 'w') as tmp: - tmp.write('CREATE {0}\n'.format(opts.output)) - for lib in opts.libs: - tmp.write('ADDLIB {0}\n'.format(lib)) - for obj in opts.objs: - tmp.write('ADDMOD {0}\n'.format(obj)) - tmp.write('SAVE\n') - tmp.write('END\n') - cmd = [opts.archiver] + opts.modify_flags + opts.plugin_flags - stdin = open(temp.name) - exit_code = call() - os.remove(temp.name) - - if exit_code != 0: - raise Exception('{0} returned non-zero exit code {1}. Stop.'.format(' '.join(cmd), exit_code)) diff --git a/build/scripts/list.py b/build/scripts/list.py deleted file mode 100644 index 7c3b2ae695..0000000000 --- a/build/scripts/list.py +++ /dev/null @@ -1,4 +0,0 @@ -import sys
-
-if __name__ == "__main__":
- print(' '.join(sys.argv[1:]))
diff --git a/build/scripts/llvm_opt_wrapper.py b/build/scripts/llvm_opt_wrapper.py deleted file mode 100644 index 38ca3004af..0000000000 --- a/build/scripts/llvm_opt_wrapper.py +++ /dev/null @@ -1,18 +0,0 @@ -import subprocess -import sys - - -def fix(s): - # we use '#' instead of ',' because ymake always splits args by comma - if 'internalize' in s: - return s.replace('#', ',') - - return s - - -if __name__ == '__main__': - path = sys.argv[1] - args = [fix(s) for s in [path] + sys.argv[2:]] - - rc = subprocess.call(args, shell=False, stderr=sys.stderr, stdout=sys.stdout) - sys.exit(rc) diff --git a/build/scripts/make_container.py b/build/scripts/make_container.py deleted file mode 100644 index a485baffdd..0000000000 --- a/build/scripts/make_container.py +++ /dev/null @@ -1,94 +0,0 @@ -import os -import shutil -import stat -import struct -import subprocess -import sys - -import container # 1 - - -def main(output_path, entry_path, input_paths, squashfs_path): - output_tmp_path = output_path + '.tmp' - shutil.copy2(entry_path, output_tmp_path) - st = os.stat(output_tmp_path) - os.chmod(output_tmp_path, st.st_mode | stat.S_IWUSR) - - layer_paths = [] - other_paths = [] - for input_path in input_paths: - (layer_paths if input_path.endswith('.container_layer') else other_paths).append(input_path) - - if len(other_paths) == 0: - raise Exception('No program in container dependencies') - - if len(other_paths) > 1: - raise Exception('Multiple non-layer inputs') - - program_path = other_paths[0] - program_container_path = os.path.basename(program_path) - - os.symlink(program_container_path, 'entry') - add_cmd = [ os.path.join(squashfs_path, 'mksquashfs') ] - add_cmd.extend([program_path, 'entry', 'program_layer']) - subprocess.run(add_cmd) - - layer_paths.append('program_layer') - - container.join_layers(layer_paths, 'container_data', squashfs_path) - - size = 0 - block_size = 1024 * 1024 - - with open(output_tmp_path, 'ab') as output: - with open('container_data', 'rb') as input_: - while True: - data = input_.read(block_size) - output.write(data) - size += len(data) - - if len(data) < block_size: - break - - with open(os.path.join(squashfs_path, 'unsquashfs'), 'rb') as input_: - while True: - data = input_.read(block_size) - output.write(data) - size += len(data) - - if len(data) == 0: - break - - - output.write(struct.pack('<Q', size)) - - os.rename(output_tmp_path, output_path) - - -def entry(): - import argparse - - parser = argparse.ArgumentParser() - parser.add_argument('-o', '--output', required=True) - parser.add_argument('-s', '--squashfs-path', required=True) - parser.add_argument('input', nargs='*') - - args = parser.parse_args() - - def is_container_entry(path): - return os.path.basename(path) == '_container_entry' - - input_paths = [] - entry_paths = [] - - for input_path in args.input: - (entry_paths if is_container_entry(input_path) else input_paths).append(input_path) - - if len(entry_paths) != 1: - raise Exception('Could not select container entry from {}'.format(entry_paths)) - - return main(args.output, entry_paths[0], input_paths, args.squashfs_path) - - -if __name__ == '__main__': - sys.exit(entry()) diff --git a/build/scripts/make_container_layer.py b/build/scripts/make_container_layer.py deleted file mode 100644 index 4f61f5a2e5..0000000000 --- a/build/scripts/make_container_layer.py +++ /dev/null @@ -1,24 +0,0 @@ -import sys - -import container # 1 - - -class UserError(Exception): - pass - - -def entry(): - import argparse - - parser = argparse.ArgumentParser() - parser.add_argument('-o', '--output', required=True) - parser.add_argument('-s', '--squashfs-path', required=True) - parser.add_argument('input', nargs='*') - - args = parser.parse_args() - - return container.join_layers(args.input, args.output, args.squashfs_path) - - -if __name__ == '__main__': - sys.exit(entry()) diff --git a/build/scripts/make_java_classpath_file.py b/build/scripts/make_java_classpath_file.py deleted file mode 100644 index c70a7876d7..0000000000 --- a/build/scripts/make_java_classpath_file.py +++ /dev/null @@ -1,26 +0,0 @@ -import os -import sys - -import process_command_files as pcf - - -def make_cp_file(args): - source = args[0] - destination = args[1] - with open(source) as src: - lines = [l.strip() for l in src if l.strip()] - with open(destination, 'w') as dst: - dst.write(os.pathsep.join(lines)) - -def make_cp_file_from_args(args): - destination = args[0] - with open(destination, 'w') as dst: - dst.write(os.pathsep.join(args[1:])) - - -if __name__ == '__main__': - args = pcf.get_args(sys.argv[1:]) - if sys.argv[1] != '--from-args': - make_cp_file(args) - else: - make_cp_file_from_args(args[1:]) diff --git a/build/scripts/make_java_srclists.py b/build/scripts/make_java_srclists.py deleted file mode 100644 index 65174bafd7..0000000000 --- a/build/scripts/make_java_srclists.py +++ /dev/null @@ -1,128 +0,0 @@ -import os -import sys -import argparse - -import process_command_files as pcf -import java_pack_to_file as jcov - - -def writelines(f, rng): - f.writelines(item + '\n' for item in rng) - - -def add_rel_src_to_coverage(coverage, src, source_root): - rel = os.path.relpath(src, source_root) - if not rel.startswith('..' + os.path.sep): - coverage.append(rel) - - -def main(): - args = pcf.get_args(sys.argv[1:]) - parser = argparse.ArgumentParser() - parser.add_argument('--moddir') - parser.add_argument('--java') - parser.add_argument('--groovy') - parser.add_argument('--kotlin') - parser.add_argument('--coverage') - parser.add_argument('--source-root') - args, remaining_args = parser.parse_known_args(args) - - java = [] - kotlin = [] - groovy = [] - coverage = [] - - cur_resources_list_file = None - cur_jsources_list_file = None - cur_srcdir = None - cur_resources = [] - cur_jsources = [] - - FILE_ARG = 1 - RESOURCES_DIR_ARG = 2 - SRCDIR_ARG = 3 - JSOURCES_DIR_ARG = 4 - - next_arg=FILE_ARG - - for src in remaining_args: - if next_arg == RESOURCES_DIR_ARG: - assert cur_resources_list_file is None - cur_resources_list_file = src - next_arg = FILE_ARG - continue - elif next_arg == JSOURCES_DIR_ARG: - assert cur_jsources_list_file is None - cur_jsources_list_file = src - next_arg = FILE_ARG - continue - elif next_arg == SRCDIR_ARG: - assert cur_srcdir is None - cur_srcdir = src if os.path.isabs(src) else os.path.join(args.moddir, src) - next_arg = FILE_ARG - continue - - if src.endswith(".java"): - java.append(src) - kotlin.append(src) - if args.coverage and args.source_root: - add_rel_src_to_coverage(coverage, src, args.source_root) - elif args.kotlin and src.endswith(".kt"): - kotlin.append(src) - if args.coverage and args.source_root: - add_rel_src_to_coverage(coverage, src, args.source_root) - elif args.groovy and src.endswith(".groovy"): - groovy.append(src) - else: - if src == '--resources': - if cur_resources_list_file is not None: - with open(cur_resources_list_file, 'w') as f: - writelines(f, cur_resources) - cur_resources_list_file = None - cur_srcdir = None - cur_resources = [] - next_arg = RESOURCES_DIR_ARG - continue - if src == '--jsources': - if cur_jsources_list_file is not None: - with open(cur_jsources_list_file, 'w') as f: - writelines(f, cur_jsources) - cur_jsources_list_file = None - cur_jsources = [] - next_arg = JSOURCES_DIR_ARG - continue - elif src == '--srcdir': - next_arg = SRCDIR_ARG - continue - else: - assert cur_srcdir is not None and cur_resources_list_file is not None - cur_resources.append(os.path.relpath(src, cur_srcdir)) - - if cur_jsources_list_file is not None: - assert cur_srcdir is not None - cur_jsources.append(os.path.relpath(src, cur_srcdir)) - - if cur_resources_list_file is not None: - with open(cur_resources_list_file, 'w') as f: - writelines(f, cur_resources) - if cur_jsources_list_file is not None: - with open(cur_jsources_list_file, 'w') as f: - writelines(f, cur_jsources) - - if args.java: - with open(args.java, 'w') as f: - writelines(f, java) - if args.kotlin: - with open(args.kotlin, 'w') as f: - writelines(f, kotlin) - if args.groovy: - with open(args.groovy, 'w') as f: - writelines(f, groovy) - if args.coverage: - jcov.write_coverage_sources(args.coverage, args.source_root, coverage) - - return 0 - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/build/scripts/make_manifest_from_bf.py b/build/scripts/make_manifest_from_bf.py deleted file mode 100644 index bfea3ba3de..0000000000 --- a/build/scripts/make_manifest_from_bf.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -import zipfile -import os -import re - - -def prepare_path(path): - return ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path - - -def main(args): - bf, mf = args[0], args[1] - if not os.path.exists(os.path.dirname(mf)): - os.makedirs(os.path.dirname(mf)) - with open(bf) as f: - class_path = f.read().strip() - class_path = ' '.join(map(prepare_path, class_path.split('\n'))) - with zipfile.ZipFile(mf, 'w') as zf: - lines = [] - while class_path: - lines.append(class_path[:60]) - class_path = class_path[60:] - if lines: - zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/mangle_typeinfo_names.py b/build/scripts/mangle_typeinfo_names.py deleted file mode 100755 index 8f30a46552..0000000000 --- a/build/scripts/mangle_typeinfo_names.py +++ /dev/null @@ -1,317 +0,0 @@ -#!/usr/bin/env python - -import base64 -import hashlib -import io -import os -import struct -import subprocess -import sys -from collections import namedtuple - - -""" -ELF-64 Object File Format: https://uclibc.org/docs/elf-64-gen.pdf -ELF-32: https://uclibc.org/docs/elf.pdf -""" - - -MANGLED_HASH_SIZE = 15 - -# len(base64(sha1(name)[:MANGLED_HASH_SIZE]) + '\x00') -MANGLED_NAME_SIZE = 21 - - -ArObject = namedtuple('ArObject', ['header', 'data']) - -ElfSection = namedtuple('ElfSection', ['header_offset', 'name', 'data_offset', 'size', 'link', 'entry_size']) - - -def find(it, pred): - return next(iter(filter(pred, it)), None) - - -def mangle_name(name_bytes): - sha1 = hashlib.sha1() - sha1.update(name_bytes) - dgst = sha1.digest() - return base64.b64encode(dgst[:MANGLED_HASH_SIZE]) - - -def unpack(format, buffer, offset=0): - return struct.unpack(format, buffer[offset : offset + struct.calcsize(format)]) - - -def unpack_section_header(buffer, offset, elf64): - # read sh_name, sh_offset, sh_size, sh_link, sh_entsize from section headers (Elf64_Shdr/Elf32_Shdr): - # - # typedef struct - # { - # Elf64_Word sh_name; /* Section name */ - # Elf64_Word sh_type; /* Section type */ - # Elf64_Xword sh_flags; /* Section attributes */ - # Elf64_Addr sh_addr; /* Virtual address in memory */ - # Elf64_Off sh_offset; /* Offset in file */ - # Elf64_Xword sh_size; /* Size of section */ - # Elf64_Word sh_link; /* Link to other section */ - # Elf64_Word sh_info; /* Miscellaneous information */ - # Elf64_Xword sh_addralign; /* Address alignment boundary */ - # Elf64_Xword sh_entsize; /* Size of entries, if section has table */ - # } Elf64_Shdr; - # - # typedef struct { - # Elf32_Word sh_name; - # Elf32_Word sh_type; - # Elf32_Word sh_flags; - # Elf32_Addr sh_addr; - # Elf32_Off sh_offset; - # Elf32_Word sh_size; - # Elf32_Word sh_link; - # Elf32_Word sh_info; - # Elf32_Word sh_addralign; - # Elf32_Word sh_entsize; - # } Elf32_Shdr; - - section_header_format = '< L 20x Q Q L 12x Q' if elf64 else '< L 12x L L L 8x L' - return ElfSection(offset, *unpack(section_header_format, buffer, offset)) - - -def read_elf_sections(elf_data, elf64): - # read e_shoff, e_shentsize, e_shnum, e_shstrndx from elf header (Elf64_Ehdr/Elf32_Ehdr): - # - # typedef struct - # { - # unsigned char e_ident[16]; /* ELF identification */ - # Elf64_Half e_type; /* Object file type */ - # Elf64_Half e_machine; /* Machine type */ - # Elf64_Word e_version; /* Object file version */ - # Elf64_Addr e_entry; /* Entry point address */ - # Elf64_Off e_phoff; /* Program header offset */ - # Elf64_Off e_shoff; /* Section header offset */ - # Elf64_Word e_flags; /* Processor-specific flags */ - # Elf64_Half e_ehsize; /* ELF header size */ - # Elf64_Half e_phentsize; /* Size of program header entry */ - # Elf64_Half e_phnum; /* Number of program header entries */ - # Elf64_Half e_shentsize; /* Size of section header entry */ - # Elf64_Half e_shnum; /* Number of section header entries */ - # Elf64_Half e_shstrndx; /* Section name string table index */ - # } Elf64_Ehdr; - # - # #define EI_NIDENT 16 - # - # typedef struct { - # unsigned char e_ident[EI_NIDENT]; - # Elf32_Half e_type; - # Elf32_Half e_machine; - # Elf32_Word e_version; - # Elf32_Addr e_entry; - # Elf32_Off e_phoff; - # Elf32_Off e_shoff; - # Elf32_Word e_flags; - # Elf32_Half e_ehsize; - # Elf32_Half e_phentsize; - # Elf32_Half e_phnum; - # Elf32_Half e_shentsize; - # Elf32_Half e_shnum; - # Elf32_Half e_shstrndx; - # } Elf32_Ehdr; - - section_header_offset, section_header_entry_size, section_header_entries_number,\ - section_name_string_table_index = unpack('< Q 10x 3H', elf_data, 40) if elf64 else unpack('< L 10x 3H', elf_data, 32) - - # https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.sheader.html - # If the number of sections is greater than or equal to SHN_LORESERVE (0xff00), e_shnum has the value SHN_UNDEF (0) - # and the actual number of section header table entries is contained in the sh_size field of the section header - # at index 0 (otherwise, the sh_size member of the initial entry contains 0). - if section_header_entries_number == 0: - section_header_entries_number = unpack_section_header(elf_data, section_header_offset, elf64).size - - sections = [unpack_section_header(elf_data, section_header_offset + i * section_header_entry_size, elf64) - for i in range(section_header_entries_number)] - - # section names data - section_names_section = sections[section_name_string_table_index] - section_names_data = elf_data[section_names_section.data_offset : section_names_section.data_offset + section_names_section.size] - - # read section names - for i, section in enumerate(sections): - sections[i] = section._replace( - name=section_names_data[section.name : section_names_data.find(b'\x00', section.name)].decode()) - - return sections - - -def mangle_elf_typeinfo_names(elf_data, elf64, sections): - symbol_sizes = {} - - for sect_i, section in enumerate(sections): - if not section.name.startswith('.rodata._ZTS') or section.size <= MANGLED_NAME_SIZE: - continue - - typeinfo_name = elf_data[section.data_offset : section.data_offset + section.size] - mangled = mangle_name(typeinfo_name.rstrip(b'\x00')) + b'\x00' - if len(mangled) >= len(typeinfo_name): - continue - - # patch section data - elf_data[section.data_offset : section.data_offset + len(mangled)] = mangled - # patch section size (sh_size in Elf64_Shdr/Elf32_Shdr) - if elf64: - elf_data[section.header_offset + 32 : section.header_offset + 40] = struct.pack('< Q', len(mangled)) - else: - elf_data[section.header_offset + 20 : section.header_offset + 24] = struct.pack('< L', len(mangled)) - - symbol_sizes[section.name[len('.rodata.'):]] = len(mangled) - - return symbol_sizes - - -def patch_elf_symbol_sizes(elf_data, elf64, sections, symbol_sizes): - symtab = find(sections, lambda s: s.name == '.symtab') - if not symtab: - return - - for sym_i in range(symtab.size / symtab.entry_size): - symtab_entry_offset = symtab.data_offset + symtab.entry_size * sym_i - symtab_entry = elf_data[symtab_entry_offset : symtab_entry_offset + symtab.entry_size] - - # unpack symbol name offset in symbols name section (st_name) from Elf64_Sym/Elf32_Sym: - # - # typedef struct - # { - # Elf64_Word st_name; /* Symbol name */ - # unsigned char st_info; /* Type and Binding attributes */ - # unsigned char st_other; /* Reserved */ - # Elf64_Half st_shndx; /* Section table index */ - # Elf64_Addr st_value; /* Symbol value */ - # Elf64_Xword st_size; /* Size of object (e.g., common) */ - # } Elf64_Sym; - # - # typedef struct { - # Elf32_Word st_name; - # Elf32_Addr st_value; - # Elf32_Word st_size; - # unsigned char st_info; - # unsigned char st_other; - # Elf32_Half st_shndx; - # } Elf32_Sym; - symbol_name_offset = unpack('< L', symtab_entry)[0] - - # symbol name offset from start of elf file - global_name_offset = sections[symtab.link].data_offset + symbol_name_offset - - name = elf_data[global_name_offset : elf_data.find(b'\x00', global_name_offset)].decode() - symbol_size = symbol_sizes.get(name) - if symbol_size: - # patch st_size in Elf64_Sym/Elf32_Sym - if elf64: - elf_data[symtab_entry_offset + 16 : symtab_entry_offset + 24] = struct.pack('< Q', symbol_size) - else: - elf_data[symtab_entry_offset + 8 : symtab_entry_offset + 12] = struct.pack('< L', symbol_size) - - -def mangle_elf(elf_data): - elf_data = bytearray(elf_data) - - ei_mag, ei_class = unpack('4s B', elf_data) - assert ei_mag == b'\x7fELF' - if ei_class == 1: # ELFCLASS32 - elf64 = False - elif ei_class == 2: # ELFCLASS64 - elf64 = True - else: - raise Exception('unknown ei_class: ' + str(ei_class)) - - sections = read_elf_sections(elf_data, elf64) - - symbol_sizes = mangle_elf_typeinfo_names(elf_data, elf64, sections) - - if len(symbol_sizes) != 0: - patch_elf_symbol_sizes(elf_data, elf64, sections, symbol_sizes) - - return elf_data - - -def read_ar_object(ar): - # ar format: https://docs.oracle.com/cd/E36784_01/html/E36873/ar.h-3head.html - # - # #define ARFMAG "`\n" /* header trailer string */ - # - # struct ar_hdr /* file member header */ - # { - # char ar_name[16]; /* '/' terminated file member name */ - # char ar_date[12]; /* file member date */ - # char ar_uid[6] /* file member user identification */ - # char ar_gid[6] /* file member group identification */ - # char ar_mode[8] /* file member mode (octal) */ - # char ar_size[10]; /* file member size */ - # char ar_fmag[2]; /* header trailer string */ - # }; - - header = ar.read(60) - if len(header) == 0: - return None - assert header[58:] == b'`\n' - - size = int(bytes(header[48:58]).decode().rstrip(' ')) - data = ar.read(size) - return ArObject(header, data) - - -def is_elf_data(data): - return data[:4] == b'\x7fELF' - - -def mangle_ar_impl(ar, out): - ar_magic = ar.read(8) - if ar_magic != b'!<arch>\n': - raise Exception('bad ar magic: {}'.format(ar_magic)) - - out.write(ar_magic) - - string_table = None - - while True: - obj = read_ar_object(ar) - if not obj: - break - - data = mangle_elf(obj.data) if is_elf_data(obj.data) else obj.data - - out.write(obj.header) - out.write(data) - - -def mangle_ar(path): - out_path = path + '.mangled' - with open(path, 'rb') as ar: - try: - with open(out_path, 'wb') as out: - mangle_ar_impl(ar, out) - except: - os.unlink(out_path) - raise - - os.rename(out_path, path) - - -def main(): - for arg in sys.argv[1:]: - if not ((arg.endswith('.o') or arg.endswith('.a')) and os.path.exists(arg)): - continue - - if arg.endswith('.o'): - with open(arg, 'rb') as o: - data = o.read() - mangled = mangle_elf(data) if is_elf_data(data) else None - - if mangled: - os.unlink(arg) - with open(arg, 'wb') as o: - o.write(mangled) - elif arg.endswith('.a'): - mangle_ar(arg) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/merge_coverage_data.py b/build/scripts/merge_coverage_data.py deleted file mode 100644 index b7fa3c6a86..0000000000 --- a/build/scripts/merge_coverage_data.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys -import tarfile -import copy -import os -import uuid - - -def main(args): - output_file, args = args[0], args[1:] - # heretic@: Splits files on which could be merged( files ) and which should not be merged( expendables ) - # expendables will be in output_file in form {name}{ordinal number of archive in args[]}.{extension} - try: - split_i = args.index('-no-merge') - except ValueError: - split_i = len(args) - files, expendables = args[:split_i], args[split_i + 1:] - - with tarfile.open(output_file, 'w') as outf: - for x in files: - with tarfile.open(x) as tf: - for tarinfo in tf: - new_tarinfo = copy.deepcopy(tarinfo) - if new_tarinfo.name in expendables: - dirname, basename = os.path.split(new_tarinfo.name) - basename_parts = basename.split('.', 1) - new_basename = '.'.join([basename_parts[0] + str(uuid.uuid4())] + basename_parts[1:]) - new_tarinfo.name = os.path.join(dirname, new_basename) - outf.addfile(new_tarinfo, tf.extractfile(tarinfo)) - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/merge_files.py b/build/scripts/merge_files.py deleted file mode 100644 index d42d6a2139..0000000000 --- a/build/scripts/merge_files.py +++ /dev/null @@ -1,8 +0,0 @@ -import sys - - -if __name__ == "__main__": - with open(sys.argv[1], "w") as f: - for appended in sys.argv[2:]: - with open(appended) as a: - f.write(a.read()) diff --git a/build/scripts/mkdir.py b/build/scripts/mkdir.py deleted file mode 100755 index a326b29300..0000000000 --- a/build/scripts/mkdir.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -import os -import sys - - -def mkdir_p(directory): - if not os.path.exists(directory): - os.makedirs(directory) - -if __name__ == "__main__": - for directory in sys.argv[1:]: - mkdir_p(directory) diff --git a/build/scripts/mkdocs_builder_wrapper.py b/build/scripts/mkdocs_builder_wrapper.py deleted file mode 100644 index 7a0df04190..0000000000 --- a/build/scripts/mkdocs_builder_wrapper.py +++ /dev/null @@ -1,36 +0,0 @@ -from __future__ import unicode_literals -import os -import subprocess -import sys - - -def main(): - cmd = [] - build_root = sys.argv[1] - length = len(build_root) - is_dep = False - for arg in sys.argv[2:]: - if is_dep: - is_dep = False - if not arg.endswith('.tar.gz'): - continue - basename = os.path.basename(arg) - assert arg.startswith(build_root) and len(arg) > length + len(basename) and arg[length] in ('/', '\\') - cmd.extend([str('--dep'), str('{}:{}:{}'.format(build_root, os.path.dirname(arg[length+1:]), basename))]) - elif arg == '--dep': - is_dep = True - else: - cmd.append(arg) - assert not is_dep - p = subprocess.Popen(cmd, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - if p.returncode: - if out: - sys.stderr.write('stdout:\n{}\n'.format(out.decode('utf-8'))) - if err: - sys.stderr.write('stderr:\n{}\n'.format(err.decode('utf-8'))) - sys.exit(p.returncode) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/mkver.py b/build/scripts/mkver.py deleted file mode 100755 index 321cdaade1..0000000000 --- a/build/scripts/mkver.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -if __name__ == '__main__': - with open(sys.argv[1], 'r') as f: - data = f.readline() - - beg = data.find('(') + 1 - end = data.find(')') - version = data[beg:end] - - print '#pragma once' - print '#define DEBIAN_VERSION "%s"' % version diff --git a/build/scripts/move.py b/build/scripts/move.py deleted file mode 100644 index 3f611fbc2e..0000000000 --- a/build/scripts/move.py +++ /dev/null @@ -1,15 +0,0 @@ -import os -import sys - -# /script/move.py <src-1> <tgt-1> <src-2> <tgt-2> ... <src-n> <tgt-n> -# renames src-1 to tgt-1, src-2 to tgt-2, ..., src-n to tgt-n. - - -def main(): - assert len(sys.argv) % 2 == 1 - for index in range(1, len(sys.argv), 2): - os.rename(sys.argv[index], sys.argv[index + 1]) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/pack_ios.py b/build/scripts/pack_ios.py deleted file mode 100644 index 37c36d1f95..0000000000 --- a/build/scripts/pack_ios.py +++ /dev/null @@ -1,48 +0,0 @@ -import argparse -import os -import shutil -import subprocess -import sys -import tarfile - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument("--binary", required=True, help="executable file") - parser.add_argument("--target", required=True, help="target archive path") - parser.add_argument("--temp-dir", required=True, help="temp dir") - parser.add_argument("peers", nargs='*') - args = parser.parse_args() - app_tar = [p for p in args.peers if p.endswith('.ios.interface')] - if not app_tar: - print >> sys.stderr, 'No one IOS_INTERFACE module found' - shutil.copyfile(args.binary, os.path.join(args.temp_dir, 'bin')) - if os.path.exists(args.target): - os.remove(args.target) - with tarfile.open(args.target, 'w') as tf: - tf.add(os.path.join(args.temp_dir, 'bin'), arcname=os.path.join(os.path.basename(args.binary) + '.app', 'bin')) - return - if len(app_tar) > 1: - app_tar = [p for p in args.peers if not p.endswith('.default.ios.interface')] - if len(app_tar) > 1: - print >> sys.stderr, 'Many IOS_INTERFACE modules found, {} will be used'.format(app_tar[-1]) - app_tar = app_tar[-1] - with tarfile.open(app_tar) as tf: - tf.extractall(args.temp_dir) - tar_suffix = '.default.ios.interface' if app_tar.endswith('.default.ios.interface') else '.ios.interface' - app_unpacked_path = os.path.join(args.temp_dir, os.path.basename(app_tar)[:-len(tar_suffix)] + '.app') - if not os.path.exists(app_unpacked_path): - raise Exception('Bad IOS_INTERFACE resource: {}'.format(app_tar)) - shutil.copyfile(args.binary, os.path.join(app_unpacked_path, 'bin')) - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', app_unpacked_path]) - if os.path.exists(args.target): - os.remove(args.target) - binary_origin_name = os.path.basename(args.binary) - while os.path.splitext(binary_origin_name)[1]: - binary_origin_name = os.path.splitext(binary_origin_name)[0] - with tarfile.open(args.target, 'w') as tf: - tf.add(app_unpacked_path, arcname=binary_origin_name + '.app', recursive=True) - - -if __name__ == '__main__': - just_do_it() diff --git a/build/scripts/pack_jcoverage_resources.py b/build/scripts/pack_jcoverage_resources.py deleted file mode 100644 index f6e181067a..0000000000 --- a/build/scripts/pack_jcoverage_resources.py +++ /dev/null @@ -1,24 +0,0 @@ -import sys -import tarfile -import os -import subprocess - - -def main(args): - output_file = args[0] - report_file = args[1] - - res = subprocess.call(args[args.index('-end') + 1:]) - - if not os.path.exists(report_file): - print>>sys.stderr, 'Can\'t find jacoco exec file' - return res - - with tarfile.open(output_file, 'w') as outf: - outf.add(report_file, arcname=os.path.basename(report_file)) - - return res - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/build/scripts/perl_wrapper.py b/build/scripts/perl_wrapper.py deleted file mode 100644 index cb4027f1d3..0000000000 --- a/build/scripts/perl_wrapper.py +++ /dev/null @@ -1,24 +0,0 @@ -import os -import sys -import shutil - -if __name__ == '__main__': - path = sys.argv[1] - to = sys.argv[-1] - fr = sys.argv[-2] - to_dir = os.path.dirname(to) - - os.chdir(to_dir) - - f1 = os.path.basename(fr) - fr_ = os.path.dirname(fr) - f2 = os.path.basename(fr_) - fr_ = os.path.dirname(fr_) - - os.makedirs(f2) - shutil.copyfile(fr, os.path.join(f2, f1)) - - if path[0] != '/': - path = os.path.join(os.path.dirname(__file__), path) - - os.execv(path, [path] + sys.argv[2:]) diff --git a/build/scripts/postprocess_go_fbs.py b/build/scripts/postprocess_go_fbs.py deleted file mode 100644 index e6d5184a5e..0000000000 --- a/build/scripts/postprocess_go_fbs.py +++ /dev/null @@ -1,72 +0,0 @@ -import argparse -import re -import os - - -# very simple regexp to find go import statement in the source code -# NOTE! only one-line comments are somehow considered -IMPORT_DECL=re.compile(r''' - \bimport - ( - \s+((\.|\w+)\s+)?"[^"]+" ( \s+//[^\n]* )? - | \s* \( \s* ( ( \s+ ((\.|\w+)\s+)? "[^"]+" )? ( \s* //[^\n]* )? )* \s* \) - )''', re.MULTILINE | re.DOTALL | re.VERBOSE) - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--input-dir', required=True) - parser.add_argument('--map', nargs='*', default=None) - - return parser.parse_args() - - -def process_go_file(file_name, import_map): - content = '' - with open(file_name, 'r') as f: - content = f.read() - - start = -1 - end = -1 - for it in IMPORT_DECL.finditer(content): - if start < 0: - start = it.start() - end = it.end() - - if start < 0: - return - - imports = content[start:end] - for namespace, path in import_map.items(): - ns = namespace.split('.') - name = '__'.join(ns) - import_path = '/'.join(ns) - imports = imports.replace('{} "{}"'.format(name, import_path), '{} "a.yandex-team.ru/{}"'.format(name, path)) - - if imports != content[start:end]: - with open(file_name, 'w') as f: - f.write(content[:start]) - f.write(imports) - f.write(content[end:]) - - -def main(): - args = parse_args() - - if not args.map: - return - - raw_import_map = sorted(set(args.map)) - import_map = dict(z.split('=', 1) for z in raw_import_map) - if len(raw_import_map) != len(import_map): - for k, v in (z.split('=', 1) for z in raw_import_map): - if v != import_map[k]: - raise Exception('import map [{}] contains different values for key [{}]: [{}] and [{}].'.format(args.map, k, v, import_map[k])) - - for root, _, files in os.walk(args.input_dir): - for src in (f for f in files if f.endswith('.go')): - process_go_file(os.path.join(root, src), import_map) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/preprocess.py b/build/scripts/preprocess.py deleted file mode 100644 index 4657bef732..0000000000 --- a/build/scripts/preprocess.py +++ /dev/null @@ -1,48 +0,0 @@ -import sys -import os - - -def load_file(p): - with open(p, 'r') as f: - return f.read() - - -def step(base, data, hh): - def flt(): - for l in data.split('\n'): - if l in hh: - pp = os.path.join(base, hh[l]) - - yield '\n\n' + load_file(pp) + '\n\n' - - os.unlink(pp) - else: - yield l - - return '\n'.join(flt()) - - -def subst_headers(path, headers): - hh = dict() - - for h in headers: - hh['# include "' + h + '"'] = h - - data = load_file(path) - prev = data - - while True: - ret = step(os.path.dirname(path), prev, hh) - - if ret == prev: - break - - prev = ret - - if data != prev: - with open(path, 'w') as f: - f.write(prev) - - -if __name__ == '__main__': - subst_headers(sys.argv[1], ['stack.hh', 'position.hh', 'location.hh']) diff --git a/build/scripts/process_whole_archive_option.py b/build/scripts/process_whole_archive_option.py deleted file mode 100644 index a9c4ef676a..0000000000 --- a/build/scripts/process_whole_archive_option.py +++ /dev/null @@ -1,176 +0,0 @@ -import os -import sys - -import process_command_files as pcf - - -class ProcessWholeArchiveOption(): - def __init__(self, arch, peers=None, libs=None): - self.arch = arch.upper() - self.peers = { x : 0 for x in peers } if peers else None - self.libs = { x : 0 for x in libs } if libs else None - self.start_wa_marker = '--start-wa' - self.end_wa_marker = '--end-wa' - - def _match_peer_lib(self, arg, ext): - key = None - if arg.endswith(ext): - key = os.path.dirname(arg) - return key if key and self.peers and key in self.peers else None - - def _match_lib(self, arg): - return arg if self.libs and arg in self.libs else None - - def _process_arg(self, arg, ext='.a'): - peer_key = self._match_peer_lib(arg, ext) - lib_key = self._match_lib(arg) - if peer_key: - self.peers[peer_key] += 1 - if lib_key: - self.libs[lib_key] += 1 - return peer_key if peer_key else lib_key - - def _check_peers(self): - if self.peers: - for key, value in self.peers.items(): - assert value > 0, '"{}" specified in WHOLE_ARCHIVE() macro is not used on link command'.format(key) - - def _construct_cmd_apple(self, args): - force_load_flag = '-Wl,-force_load,' - is_inside_wa_markers = False - - cmd = [] - for arg in args: - if arg.startswith(force_load_flag): - cmd.append(arg) - elif arg == self.start_wa_marker: - is_inside_wa_markers = True - elif arg == self.end_wa_marker: - is_inside_wa_markers = False - elif is_inside_wa_markers: - cmd.append(force_load_flag + arg) - else: - key = self._process_arg(arg) - cmd.append(force_load_flag + arg if key else arg) - - self._check_peers() - - return cmd - - def _construct_cmd_win(self, args): - whole_archive_prefix = '/WHOLEARCHIVE:' - is_inside_wa_markers = False - - def add_prefix(arg, need_check_peers_and_libs): - key = self._process_arg(arg, '.lib') if need_check_peers_and_libs else arg - return whole_archive_prefix + arg if key else arg - - def add_whole_archive_prefix(arg, need_check_peers_and_libs): - if not pcf.is_cmdfile_arg(arg): - return add_prefix(arg, need_check_peers_and_libs) - - cmd_file_path = pcf.cmdfile_path(arg) - cf_args = pcf.read_from_command_file(cmd_file_path) - with open(cmd_file_path, 'w') as afile: - for cf_arg in cf_args: - afile.write(add_prefix(cf_arg, need_check_peers_and_libs) + "\n") - return arg - - cmd = [] - for arg in args: - if arg == self.start_wa_marker: - is_inside_wa_markers = True - elif arg == self.end_wa_marker: - is_inside_wa_markers = False - elif is_inside_wa_markers: - cmd.append(add_whole_archive_prefix(arg, False)) - continue - elif self.peers or self.libs: - cmd.append(add_whole_archive_prefix(arg, True)) - else: - cmd.append(arg) - - self._check_peers() - - return cmd - - def _construct_cmd_linux(self, args): - whole_archive_flag = '-Wl,--whole-archive' - no_whole_archive_flag = '-Wl,--no-whole-archive' - - def replace_markers(arg): - if arg == self.start_wa_marker: - return whole_archive_flag - if arg == self.end_wa_marker: - return no_whole_archive_flag - return arg - - args = [replace_markers(arg) for arg in args] - - cmd = [] - is_inside_whole_archive = False - is_whole_archive = False - # We are trying not to create excessive sequences of consecutive flags - # -Wl,--no-whole-archive -Wl,--whole-archive ('externally' specified - # flags -Wl,--[no-]whole-archive are not taken for consideration in this - # optimization intentionally) - for arg in args: - if arg == whole_archive_flag: - is_inside_whole_archive = True - is_whole_archive = False - elif arg == no_whole_archive_flag: - is_inside_whole_archive = False - is_whole_archive = False - else: - key = self._process_arg(arg) - if not is_inside_whole_archive: - if key: - if not is_whole_archive: - cmd.append(whole_archive_flag) - is_whole_archive = True - elif is_whole_archive: - cmd.append(no_whole_archive_flag) - is_whole_archive = False - - cmd.append(arg) - - if is_whole_archive: - cmd.append(no_whole_archive_flag) - - self._check_peers() - - return cmd - - def construct_cmd(self, args): - if self.arch in ('DARWIN', 'IOS', 'IOSSIM'): - return self._construct_cmd_apple(args) - - if self.arch == 'WINDOWS': - return self._construct_cmd_win(args) - - return self._construct_cmd_linux(args) - - -def get_whole_archive_peers_and_libs(args): - remaining_args = [] - peers = [] - libs = [] - peers_flag = '--whole-archive-peers' - libs_flag = '--whole-archive-libs' - - next_is_peer = False - next_is_lib = False - for arg in args: - if arg == peers_flag: - next_is_peer = True - elif arg == libs_flag: - next_is_lib = True - elif next_is_peer: - peers.append(arg) - next_is_peer = False - elif next_is_lib: - libs.append(arg) - next_is_lib = False - else: - remaining_args.append(arg) - return remaining_args, peers, libs diff --git a/build/scripts/py_compile.py b/build/scripts/py_compile.py deleted file mode 100755 index 936dbe8816..0000000000 --- a/build/scripts/py_compile.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from __future__ import print_function, absolute_import, division - -import marshal -import sys - - -def main(): - srcpathx, in_fname, out_fname = sys.argv[1:] - srcpath = srcpathx[:-1] - - with open(in_fname, 'r') as in_file: - source = in_file.read() - - code = compile(source, srcpath, 'exec', dont_inherit=True) - - with open(out_fname, 'wb') as out_file: - marshal.dump(code, out_file) - - -if __name__ == "__main__": - main() diff --git a/build/scripts/python_yndexer.py b/build/scripts/python_yndexer.py deleted file mode 100644 index 3180665387..0000000000 --- a/build/scripts/python_yndexer.py +++ /dev/null @@ -1,53 +0,0 @@ -import os -import sys -import threading -import subprocess - - -def _try_to_kill(process): - try: - process.kill() - except Exception: - pass - - -def touch(path): - if not os.path.exists(path): - with open(path, 'w') as _: - pass - - -class Process(object): - def __init__(self, args): - self._process = subprocess.Popen(args) - self._event = threading.Event() - self._result = None - thread = threading.Thread(target=self._run) - thread.setDaemon(True) - thread.start() - - def _run(self): - self._process.communicate() - self._result = self._process.returncode - self._event.set() - - def wait(self, timeout): - self._event.wait(timeout=timeout) - _try_to_kill(self._process) - return self._result - - -if __name__ == '__main__': - yndexer = sys.argv[1] - timeout = int(sys.argv[2]) - output_file = sys.argv[3] - input_file = sys.argv[4] - partition_count = sys.argv[5] - partition_index = sys.argv[6] - - process = Process([yndexer, '-f', input_file, '-y', output_file, '-c', partition_count, '-i', partition_index]) - result = process.wait(timeout=timeout) - - if result != 0: - print >> sys.stderr, 'Yndexing process finished with code', result - touch(output_file) diff --git a/build/scripts/resolve_java_srcs.py b/build/scripts/resolve_java_srcs.py deleted file mode 100644 index a2e6c20012..0000000000 --- a/build/scripts/resolve_java_srcs.py +++ /dev/null @@ -1,106 +0,0 @@ -import os -import argparse -import re -import sys - - -def list_all_files(directory, prefix='/', hidden_files=False): - result = [] - if os.path.exists(directory): - for i in os.listdir(directory): - abs_path = os.path.join(directory, i) - result += list_all_files(os.path.join(directory, abs_path), prefix + i + '/', hidden_files) \ - if os.path.isdir(abs_path) else ([prefix + i] if (hidden_files or not i.startswith('.')) else []) - return result - - -def pattern_to_regexp(p): - return '^' + \ - ('/' if not p.startswith('**') else '') + \ - re.escape(p).replace( - r'\*\*\/', '[_DIR_]' - ).replace( - r'\*', '[_FILE_]' - ).replace( - '[_DIR_]', '(.*/)?' - ).replace( - '[_FILE_]', '([^/]*)' - ) + '$' - - -def resolve_java_srcs(srcdir, include_patterns, exclude_patterns, all_resources, resolve_kotlin=False, resolve_groovy=False): - result = {'java': [], 'not_java': [], 'kotlin': [], 'groovy': []} - include_patterns_normal, include_patterns_hidden, exclude_patterns_normal, exclude_patterns_hidden = [], [], [], [] - for vis, hid, patterns in ((include_patterns_normal, include_patterns_hidden, include_patterns), (exclude_patterns_normal, exclude_patterns_hidden, exclude_patterns),): - for pattern in patterns: - if (pattern if pattern.find('/') == -1 else pattern.rsplit('/', 1)[1]).startswith('.'): - hid.append(pattern) - else: - vis.append(pattern) - re_patterns = map(pattern_to_regexp, vis + hid) - if sys.platform in ('win32', 'darwin'): - re_patterns = [re.compile(i, re.IGNORECASE) for i in re_patterns] - else: - re_patterns = [re.compile(i) for i in re_patterns] - vis[:], hid[:] = re_patterns[:len(vis)], re_patterns[len(vis):] - - for inc_patterns, exc_patterns, with_hidden_files in ( - (include_patterns_normal, exclude_patterns_normal, False), - (include_patterns_hidden, exclude_patterns_hidden, True), - ): - for f in list_all_files(srcdir, hidden_files=with_hidden_files): - excluded = False - - for exc_re in exc_patterns: - if exc_re.match(f): - excluded = True - break - - if excluded: - continue - - for inc_re in inc_patterns: - if inc_re.match(f): - s = os.path.normpath(f[1:]) - if all_resources or not (f.endswith('.java') or f.endswith('.kt') or f.endswith('.groovy')): - result['not_java'].append(s) - elif f.endswith('.java'): - result['java'].append(os.path.join(srcdir, s)) - elif f.endswith('.kt') and resolve_kotlin: - result['kotlin'].append(os.path.join(srcdir, s)) - elif f.endswith('.groovy') and resolve_groovy: - result['groovy'].append(os.path.join(srcdir, s)) - else: - result['not_java'].append(s) - break - - return sorted(result['java']), sorted(result['not_java']), sorted(result['kotlin']), sorted(result['groovy']) - - -def do_it(directory, sources_file, resources_file, kotlin_sources_file, groovy_sources_file, include_patterns, exclude_patterns, resolve_kotlin, resolve_groovy, append, all_resources): - j, r, k, g = resolve_java_srcs(directory, include_patterns, exclude_patterns, all_resources, resolve_kotlin, resolve_groovy) - mode = 'a' if append else 'w' - open(sources_file, mode).writelines(i + '\n' for i in j) - open(resources_file, mode).writelines(i + '\n' for i in r) - if kotlin_sources_file: - open(kotlin_sources_file, mode).writelines(i + '\n' for i in k + j) - if groovy_sources_file: - open(groovy_sources_file, mode).writelines(i + '\n' for i in g + j) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('-d', '--directory', required=True) - parser.add_argument('-s', '--sources-file', required=True) - parser.add_argument('-r', '--resources-file', required=True) - parser.add_argument('-k', '--kotlin-sources-file', default=None) - parser.add_argument('-g', '--groovy-sources-file', default=None) - parser.add_argument('--append', action='store_true', default=False) - parser.add_argument('--all-resources', action='store_true', default=False) - parser.add_argument('--resolve-kotlin', action='store_true', default=False) - parser.add_argument('--resolve-groovy', action='store_true', default=False) - parser.add_argument('--include-patterns', nargs='*', default=[]) - parser.add_argument('--exclude-patterns', nargs='*', default=[]) - args = parser.parse_args() - - do_it(**vars(args)) diff --git a/build/scripts/retry.py b/build/scripts/retry.py deleted file mode 100644 index d14170bfec..0000000000 --- a/build/scripts/retry.py +++ /dev/null @@ -1,29 +0,0 @@ -import time -import functools - - -# Partly copy-pasted from contrib/python/retry -def retry_func(f, exceptions=Exception, tries=-1, delay=1, max_delay=None, backoff=1): - _tries, _delay = tries, delay - while _tries: - try: - return f() - except exceptions as e: - _tries -= 1 - if not _tries: - raise - - time.sleep(_delay) - _delay *= backoff - - if max_delay is not None: - _delay = min(_delay, max_delay) - - -def retry(**retry_kwargs): - def decorator(func): - @functools.wraps(func) - def wrapper(*args, **kwargs): - return retry_func(lambda: func(*args, **kwargs), **retry_kwargs) - return wrapper - return decorator diff --git a/build/scripts/rodata2asm.py b/build/scripts/rodata2asm.py deleted file mode 100644 index 555639499f..0000000000 --- a/build/scripts/rodata2asm.py +++ /dev/null @@ -1,31 +0,0 @@ -import os -import argparse - - -def main(): - parser = argparse.ArgumentParser(description='Convert rodata into asm source with embedded file content') - parser.add_argument('symbol', help='symvol name exported from generated filr') - parser.add_argument('rodata', help='input .rodata file path') - parser.add_argument('asm', type=argparse.FileType('w', encoding='UTF-8'), help='destination .asm file path') - parser.add_argument('--elf', action='store_true') - - args = parser.parse_args() - - file_size = os.path.getsize(args.rodata) - - args.asm.write('global ' + args.symbol + '\n') - args.asm.write('global ' + args.symbol + 'Size' + '\n') - args.asm.write('SECTION .rodata ALIGN=16\n') - args.asm.write(args.symbol + ':\nincbin "' + args.rodata + '"\n') - args.asm.write('align 4, db 0\n') - args.asm.write(args.symbol + 'Size:\ndd ' + str(file_size) + '\n') - - if args.elf: - args.asm.write('size ' + args.symbol + ' ' + str(file_size) + '\n') - args.asm.write('size ' + args.symbol + 'Size 4\n') - - args.asm.close() - - -if __name__ == '__main__': - main() diff --git a/build/scripts/run_ios_simulator.py b/build/scripts/run_ios_simulator.py deleted file mode 100644 index 052c855b77..0000000000 --- a/build/scripts/run_ios_simulator.py +++ /dev/null @@ -1,79 +0,0 @@ -import argparse -import json -import os -import subprocess -import sys - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument("--action", choices=["create", "spawn", "kill"]) - parser.add_argument("--simctl", help="simctl binary path") - parser.add_argument("--profiles", help="profiles path") - parser.add_argument("--device-dir", help="devices directory") - parser.add_argument("--device-name", help="temp device name") - args, tail = parser.parse_known_args() - if args.action == 'create': - action_create(args.simctl, args.profiles, args.device_dir, args.device_name, tail) - elif args.action == "spawn": - action_spawn(args.simctl, args.profiles, args.device_dir, args.device_name, tail) - elif args.action == "kill": - action_kill(args.simctl, args.profiles, args.device_dir, args.device_name) - - -def action_create(simctl, profiles, device_dir, name, args): - parser = argparse.ArgumentParser() - parser.add_argument("--device-type", default="com.apple.CoreSimulator.SimDeviceType.iPhone-X") - parser.add_argument("--device-runtime", default="com.apple.CoreSimulator.SimRuntime.iOS-12-1") - args = parser.parse_args(args) - all_devices = list(get_all_devices(simctl, profiles, device_dir)) - if filter(lambda x: x["name"] == name, all_devices): - raise Exception("Device named {} already exists".format(name)) - subprocess.check_call([simctl, "--profiles", profiles, "--set", device_dir, "create", name, args.device_type, args.device_runtime]) - created = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not created: - raise Exception("Creation error: temp device named {} not found".format(name)) - created = created[0] - if created["availability"] != "(available)": - raise Exception("Creation error: temp device {} status is {} ((available) expected)".format(name, created["availability"])) - - -def action_spawn(simctl, profiles, device_dir, name, args): - device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not device: - raise Exception("Can't spawn process: device named {} not found".format(name)) - if len(device) > 1: - raise Exception("Can't spawn process: too many devices named {} found".format(name)) - device = device[0] - os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "spawn", device["udid"]] + args) - - -def action_kill(simctl, profiles, device_dir, name): - device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not device: - print >> sys.stderr, "Device named {} not found; do nothing".format(name) - return - if len(device) > 1: - raise Exception("Can't remove: too many devices named {}:\n{}".format(name, '\n'.join(i for i in device))) - device = device[0] - os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "delete", device["udid"]]) - - -def get_all_devices(simctl, profiles, device_dir): - p = subprocess.Popen([simctl, "--profiles", profiles, "--set", device_dir, "list", "--json", "devices"], stdout=subprocess.PIPE) - out, _ = p.communicate() - rc = p.wait() - if rc: - raise Exception("Devices list command return code is {}\nstdout:\n{}".format(rc, out)) - raw_object = json.loads(out) - if "devices" not in raw_object: - raise Exception("Devices not found in\n{}".format(json.dumps(raw_object))) - raw_object = raw_object["devices"] - for os_name, devices in raw_object.items(): - for device in devices: - device["os_name"] = os_name - yield device - - -if __name__ == '__main__': - just_do_it() diff --git a/build/scripts/run_javac.py b/build/scripts/run_javac.py deleted file mode 100644 index c35546e0fe..0000000000 --- a/build/scripts/run_javac.py +++ /dev/null @@ -1,122 +0,0 @@ -import sys -import subprocess -import optparse -import re - - -def parse_args(): - parser = optparse.OptionParser() - parser.disable_interspersed_args() - parser.add_option('--sources-list') - parser.add_option('--verbose', default=False, action='store_true') - parser.add_option('--remove-notes', default=False, action='store_true') - parser.add_option('--ignore-errors', default=False, action='store_true') - parser.add_option('--kotlin', default=False, action='store_true') - return parser.parse_args() - - -COLORING = { - r'^(?P<path>.*):(?P<line>\d*): error: (?P<msg>.*)': lambda m: '[[unimp]]{path}[[rst]]:[[alt2]]{line}[[rst]]: [[c:light-red]]error[[rst]]: [[bad]]{msg}[[rst]]'.format( - path=m.group('path'), - line=m.group('line'), - msg=m.group('msg'), - ), - r'^(?P<path>.*):(?P<line>\d*): warning: (?P<msg>.*)': lambda m: '[[unimp]]{path}[[rst]]:[[alt2]]{line}[[rst]]: [[c:light-yellow]]warning[[rst]]: {msg}'.format( - path=m.group('path'), - line=m.group('line'), - msg=m.group('msg'), - ), - r'^warning: ': lambda m: '[[c:light-yellow]]warning[[rst]]: ', - r'^error: (?P<msg>.*)': lambda m: '[[c:light-red]]error[[rst]]: [[bad]]{msg}[[rst]]'.format(msg=m.group('msg')), - r'^Note: ': lambda m: '[[c:light-cyan]]Note[[rst]]: ', -} - - -def colorize(err): - for regex, sub in COLORING.iteritems(): - err = re.sub(regex, sub, err, flags=re.MULTILINE) - return err - - -def remove_notes(err): - return '\n'.join([line for line in err.split('\n') if not line.startswith('Note:')]) - - -def find_javac(cmd): - if not cmd: - return None - if cmd[0].endswith('javac') or cmd[0].endswith('javac.exe'): - return cmd[0] - if len(cmd) > 2 and cmd[1].endswith('build_java_with_error_prone.py'): - for javas in ('java', 'javac'): - if cmd[2].endswith(javas) or cmd[2].endswith(javas + '.exe'): - return cmd[2] - return None - - -# temporary, for jdk8/jdk9+ compatibility -def fix_cmd(cmd): - if not cmd: - return cmd - javac = find_javac(cmd) - if not javac: - return cmd - p = subprocess.Popen([javac, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - out, err = out.strip(), err.strip() - for prefix in ('javac 1.8', 'java version "1.8'): - for raw_out in ((out or ''), (err or '')): - for line in raw_out.split('\n'): - if line.startswith(prefix): - res = [] - i = 0 - while i < len(cmd): - for option in ('--add-exports', '--add-modules'): - if cmd[i] == option: - i += 1 - break - elif cmd[i].startswith(option + '='): - break - else: - res.append(cmd[i]) - i += 1 - return res - return cmd - - -def main(): - opts, cmd = parse_args() - - with open(opts.sources_list) as f: - input_files = f.read().strip().split() - - if opts.kotlin: - input_files = [i for i in input_files if i.endswith('.kt')] - - if not input_files: - if opts.verbose: - sys.stderr.write('No files to compile, javac is not launched.\n') - - else: - p = subprocess.Popen(fix_cmd(cmd), stderr=subprocess.PIPE) - _, err = p.communicate() - rc = p.wait() - - if opts.remove_notes: - err = remove_notes(err) - - try: - err = colorize(err) - - except Exception: - pass - - if opts.ignore_errors and rc: - sys.stderr.write('error: javac actually failed with exit code {}\n'.format(rc)) - rc = 0 - sys.stderr.write(err) - sys.exit(rc) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/run_junit.py b/build/scripts/run_junit.py deleted file mode 100644 index 089f149f72..0000000000 --- a/build/scripts/run_junit.py +++ /dev/null @@ -1,65 +0,0 @@ -import os -import sys - -SHUTDOWN_SIGNAL = 'SIGUSR1' - - -class SignalInterruptionError(Exception): - pass - - -def on_shutdown(s, f): - raise SignalInterruptionError() - - -def main(): - args = sys.argv[1:] - - def execve(): - os.execve(args[0], args, os.environ) - - jar_binary = args[args.index('--jar-binary') + 1] - java_bin_dir = os.path.dirname(jar_binary) - jstack_binary = os.path.join(java_bin_dir, 'jstack') - - if not os.path.exists(jstack_binary): - sys.stderr.write("jstack is missing: {}\n".format(jstack_binary)) - execve() - - import signal - - signum = getattr(signal, SHUTDOWN_SIGNAL, None) - - if signum is None: - execve() - - import subprocess - - proc = subprocess.Popen(args) - signal.signal(signum, on_shutdown) - timeout = False - - try: - proc.wait() - except SignalInterruptionError: - sys.stderr.write("\nGot {} signal: going to shutdown junit\n".format(signum)) - # Dump stack traces - subprocess.call([jstack_binary, str(proc.pid)], stdout=sys.stderr) - # Kill junit - for more info see DEVTOOLS-7636 - os.kill(proc.pid, signal.SIGKILL) - proc.wait() - timeout = True - - if proc.returncode: - sys.stderr.write('java exit code: {}\n'.format(proc.returncode)) - if timeout: - # In case of timeout return specific exit code - # https://a.yandex-team.ru/arc/trunk/arcadia/devtools/ya/test/const/__init__.py?rev=r8578188#L301 - proc.returncode = 10 - sys.stderr.write('java exit code changed to {}\n'.format(proc.returncode)) - - return proc.returncode - - -if __name__ == '__main__': - exit(main()) diff --git a/build/scripts/run_llvm_dsymutil.py b/build/scripts/run_llvm_dsymutil.py deleted file mode 100644 index 4f43362ad9..0000000000 --- a/build/scripts/run_llvm_dsymutil.py +++ /dev/null @@ -1,11 +0,0 @@ -import os -import sys -import subprocess - - -if __name__ == '__main__': - with open(os.devnull, 'w') as fnull: - p = subprocess.Popen(sys.argv[1:], shell=False, stderr=fnull, stdout=sys.stdout) - - p.communicate() - sys.exit(p.returncode) diff --git a/build/scripts/run_msvc_wine.py b/build/scripts/run_msvc_wine.py deleted file mode 100644 index eb5ed3eba5..0000000000 --- a/build/scripts/run_msvc_wine.py +++ /dev/null @@ -1,586 +0,0 @@ -import sys -import os -import re -import subprocess -import signal -import time -import json -import argparse -import errno - -import process_command_files as pcf -import process_whole_archive_option as pwa - - -procs = [] -build_kekeke = 45 - - -def stringize(s): - return s.encode('utf-8') if isinstance(s, unicode) else s - - -def run_subprocess(*args, **kwargs): - if 'env' in kwargs: - kwargs['env'] = {stringize(k): stringize(v) for k, v in kwargs['env'].iteritems()} - - p = subprocess.Popen(*args, **kwargs) - - procs.append(p) - - return p - - -def run_subprocess_with_timeout(timeout, args): - attempts_remaining = 5 - delay = 1 - p = None - while True: - try: - p = run_subprocess(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = p.communicate(timeout=timeout) - return p, stdout, stderr - except subprocess.TimeoutExpired as e: - print >>sys.stderr, 'timeout running {0}, error {1}, delay {2} seconds'.format(args, str(e), delay) - if p is not None: - try: - p.kill() - p.wait(timeout=1) - except Exception: - pass - attempts_remaining -= 1 - if attempts_remaining == 0: - raise - time.sleep(delay) - delay = min(2 * delay, 4) - - -def terminate_slaves(): - for p in procs: - try: - p.terminate() - except Exception: - pass - - -def sig_term(sig, fr): - terminate_slaves() - sys.exit(sig) - - -def subst_path(l): - if len(l) > 3: - if l[:3].lower() in ('z:\\', 'z:/'): - return l[2:].replace('\\', '/') - - return l - - -def call_wine_cmd_once(wine, cmd, env, mode): - p = run_subprocess(wine + cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env, close_fds=True, shell=False) - - output = find_cmd_out(cmd) - error = None - if output is not None and os.path.exists(output): - try: - os.remove(output) - except OSError as e: - if e.errno != errno.ENOENT: - error = e - except Exception as e: - error = e - - if error is not None: - print >> sys.stderr, 'Output {} already exists and we have failed to remove it: {}'.format(output, error) - - # print >>sys.stderr, cmd, env, wine - - stdout_and_stderr, _ = p.communicate() - - return_code = p.returncode - if not stdout_and_stderr: - if return_code != 0: - raise Exception('wine did something strange') - - return return_code - elif ' : fatal error ' in stdout_and_stderr: - return_code = 1 - elif ' : error ' in stdout_and_stderr: - return_code = 2 - - lines = [x.strip() for x in stdout_and_stderr.split('\n')] - - prefixes = [ - 'Microsoft (R)', - 'Copyright (C)', - 'Application tried to create a window', - 'The graphics driver is missing', - 'Could not load wine-gecko', - 'wine: configuration in', - 'wine: created the configuration directory', - 'libpng warning:' - ] - - suffixes = [ - '.c', - '.cxx', - '.cc', - '.cpp', - '.masm', - ] - - substrs = [ - 'Creating library Z:', - 'err:heap', - 'err:menubuilder:', - 'err:msvcrt', - 'err:ole:', - 'err:wincodecs:', - 'err:winediag:', - ] - - def good_line(l): - for x in prefixes: - if l.startswith(x): - return False - - for x in suffixes: - if l.endswith(x): - return False - - for x in substrs: - if x in l: - return False - - return True - - def filter_lines(): - for l in lines: - if good_line(l): - yield subst_path(l.strip()) - - stdout_and_stderr = '\n'.join(filter_lines()).strip() - - if stdout_and_stderr: - print >>sys.stderr, stdout_and_stderr - - return return_code - - -def prepare_vc(fr, to): - for p in os.listdir(fr): - fr_p = os.path.join(fr, p) - to_p = os.path.join(to, p) - - if not os.path.exists(to_p): - print >>sys.stderr, 'install %s -> %s' % (fr_p, to_p) - - os.link(fr_p, to_p) - - -def run_slave(): - args = json.loads(sys.argv[3]) - wine = sys.argv[1] - - signal.signal(signal.SIGTERM, sig_term) - - if args.get('tout', None): - signal.signal(signal.SIGALRM, sig_term) - signal.alarm(args['tout']) - - tout = 0.1 - - while True: - try: - return call_wine_cmd_once([wine], args['cmd'], args['env'], args['mode']) - except Exception as e: - print >>sys.stderr, '%s, will retry in %s' % (str(e), tout) - - time.sleep(tout) - tout = min(2 * tout, 4) - - -def find_cmd_out(args): - for arg in args: - if arg.startswith('/Fo'): - return arg[3:] - - if arg.startswith('/OUT:'): - return arg[5:] - - -def calc_zero_cnt(data): - zero_cnt = 0 - - for ch in data: - if ch == chr(0): - zero_cnt += 1 - - return zero_cnt - - -def is_good_file(p): - if not os.path.isfile(p): - return False - - if os.path.getsize(p) < 300: - return False - - asm_pattern = re.compile(r'asm(\.\w+)?\.obj$') - if asm_pattern.search(p): - pass - elif p.endswith('.obj'): - with open(p, 'rb') as f: - prefix = f.read(200) - - if ord(prefix[0]) != 0: - return False - - if ord(prefix[1]) != 0: - return False - - if ord(prefix[2]) != 0xFF: - return False - - if ord(prefix[3]) != 0xFF: - return False - - if calc_zero_cnt(prefix) > 195: - return False - - f.seek(-100, os.SEEK_END) - last = f.read(100) - - if calc_zero_cnt(last) > 95: - return False - - if last[-1] != chr(0): - return False - elif p.endswith('.lib'): - with open(p, 'rb') as f: - if f.read(7) != '!<arch>': - return False - - return True - - -RED = '\x1b[31;1m' -GRAY = '\x1b[30;1m' -RST = '\x1b[0m' -MGT = '\x1b[35m' -YEL = '\x1b[33m' -GRN = '\x1b[32m' -CYA = '\x1b[36m' - - -def colorize_strings(l): - p = l.find("'") - - if p >= 0: - yield l[:p] - - l = l[p + 1:] - - p = l.find("'") - - if p >= 0: - yield CYA + "'" + subst_path(l[:p]) + "'" + RST - - for x in colorize_strings(l[p + 1:]): - yield x - else: - yield "'" + l - else: - yield l - - -def colorize_line(l): - lll = l - - try: - parts = [] - - if l.startswith('(compiler file'): - return ''.join(colorize_strings(l)) - - if l.startswith('/'): - p = l.find('(') - parts.append(GRAY + l[:p] + RST) - l = l[p:] - - if l and l.startswith('('): - p = l.find(')') - parts.append(':' + MGT + l[1:p] + RST) - l = l[p + 1:] - - if l: - if l.startswith(' : '): - l = l[1:] - - if l.startswith(': error'): - parts.append(': ' + RED + 'error' + RST) - l = l[7:] - elif l.startswith(': warning'): - parts.append(': ' + YEL + 'warning' + RST) - l = l[9:] - elif l.startswith(': note'): - parts.append(': ' + GRN + 'note' + RST) - l = l[6:] - elif l.startswith('fatal error'): - parts.append(RED + 'fatal error' + RST) - l = l[11:] - - if l: - parts.extend(colorize_strings(l)) - - return ''.join(parts) - except Exception: - return lll - - -def colorize(out): - return '\n'.join(colorize_line(l) for l in out.split('\n')) - - -def trim_path(path, winepath): - p1, p1_stdout, p1_stderr = run_subprocess_with_timeout(60, [winepath, '-w', path]) - win_path = p1_stdout.strip() - - if p1.returncode != 0 or not win_path: - # Fall back to only winepath -s - win_path = path - - p2, p2_stdout, p2_stderr = run_subprocess_with_timeout(60, [winepath, '-s', win_path]) - short_path = p2_stdout.strip() - - check_path = short_path - if check_path.startswith(('Z:', 'z:')): - check_path = check_path[2:] - - if not check_path[1:].startswith((path[1:4], path[1:4].upper())): - raise Exception( - 'Cannot trim path {}; 1st winepath exit code: {}, stdout:\n{}\n stderr:\n{}\n 2nd winepath exit code: {}, stdout:\n{}\n stderr:\n{}'.format( - path, p1.returncode, p1_stdout, p1_stderr, p2.returncode, p2_stdout, p2_stderr - )) - - return short_path - - -def downsize_path(path, short_names): - flag = '' - if path.startswith('/Fo'): - flag = '/Fo' - path = path[3:] - - for full_name, short_name in short_names.items(): - if path.startswith(full_name): - path = path.replace(full_name, short_name) - - return flag + path - - -def make_full_path_arg(arg, bld_root, short_root): - if arg[0] != '/' and len(os.path.join(bld_root, arg)) > 250: - return os.path.join(short_root, arg) - return arg - - -def fix_path(p): - topdirs = ['/%s/' % d for d in os.listdir('/')] - - def abs_path_start(path, pos): - if pos < 0: - return False - return pos == 0 or path[pos - 1] == ':' - - pp = None - for pr in topdirs: - pp2 = p.find(pr) - if abs_path_start(p, pp2) and (pp is None or pp > pp2): - pp = pp2 - if pp is not None: - return p[:pp] + 'Z:' + p[pp:].replace('/', '\\') - if p.startswith('/Fo'): - return '/Fo' + p[3:].replace('/', '\\') - return p - - -def process_free_args(args, wine, bld_root, mode): - whole_archive_prefix = '/WHOLEARCHIVE:' - short_names = {} - winepath = os.path.join(os.path.dirname(wine), 'winepath') - short_names[bld_root] = trim_path(bld_root, winepath) - # Slow for no benefit. - # arc_root = args.arcadia_root - # short_names[arc_root] = trim_path(arc_root, winepath) - - free_args, wa_peers, wa_libs = pwa.get_whole_archive_peers_and_libs(pcf.skip_markers(args)) - - process_link = lambda x: make_full_path_arg(x, bld_root, short_names[bld_root]) if mode in ('link', 'lib') else x - - def process_arg(arg): - with_wa_prefix = arg.startswith(whole_archive_prefix) - prefix = whole_archive_prefix if with_wa_prefix else '' - without_prefix_arg = arg[len(prefix):] - return prefix + fix_path(process_link(downsize_path(without_prefix_arg, short_names))) - - result = [] - for arg in free_args: - if pcf.is_cmdfile_arg(arg): - cmd_file_path = pcf.cmdfile_path(arg) - cf_args = pcf.read_from_command_file(cmd_file_path) - with open(cmd_file_path, 'w') as afile: - for cf_arg in cf_args: - afile.write(process_arg(cf_arg) + "\n") - result.append(arg) - else: - result.append(process_arg(arg)) - return pwa.ProcessWholeArchiveOption('WINDOWS', wa_peers, wa_libs).construct_cmd(result) - - -def run_main(): - parser = argparse.ArgumentParser() - parser.add_argument('wine', action='store') - parser.add_argument('-v', action='store', dest='version', default='120') - parser.add_argument('-I', action='append', dest='incl_paths') - parser.add_argument('mode', action='store') - parser.add_argument('arcadia_root', action='store') - parser.add_argument('arcadia_build_root', action='store') - parser.add_argument('binary', action='store') - parser.add_argument('free_args', nargs=argparse.REMAINDER) - # By now just unpack. Ideally we should fix path and pack arguments back into command file - args = parser.parse_args() - - wine = args.wine - mode = args.mode - binary = args.binary - version = args.version - incl_paths = args.incl_paths - bld_root = args.arcadia_build_root - free_args = args.free_args - - wine_dir = os.path.dirname(os.path.dirname(wine)) - bin_dir = os.path.dirname(binary) - tc_dir = os.path.dirname(os.path.dirname(os.path.dirname(bin_dir))) - if not incl_paths: - incl_paths = [tc_dir + '/VC/include', tc_dir + '/include'] - - cmd_out = find_cmd_out(free_args) - - env = os.environ.copy() - - env.pop('DISPLAY', None) - - env['WINEDLLOVERRIDES'] = 'msvcr{}=n'.format(version) - env['WINEDEBUG'] = 'fixme-all' - env['INCLUDE'] = ';'.join(fix_path(p) for p in incl_paths) - env['VSINSTALLDIR'] = fix_path(tc_dir) - env['VCINSTALLDIR'] = fix_path(tc_dir + '/VC') - env['WindowsSdkDir'] = fix_path(tc_dir) - env['LIBPATH'] = fix_path(tc_dir + '/VC/lib/amd64') - env['LIB'] = fix_path(tc_dir + '/VC/lib/amd64') - env['LD_LIBRARY_PATH'] = ':'.join(wine_dir + d for d in ['/lib', '/lib64', '/lib64/wine']) - - cmd = [binary] + process_free_args(free_args, wine, bld_root, mode) - - for x in ('/NOLOGO', '/nologo', '/FD'): - try: - cmd.remove(x) - except ValueError: - pass - - def run_process(sleep, tout): - if sleep: - time.sleep(sleep) - - args = { - 'cmd': cmd, - 'env': env, - 'mode': mode, - 'tout': tout - } - - slave_cmd = [sys.executable, sys.argv[0], wine, 'slave', json.dumps(args)] - p = run_subprocess(slave_cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=False) - out, _ = p.communicate() - return p.wait(), out - - def print_err_log(log): - if not log: - return - if mode == 'cxx': - log = colorize(log) - print >>sys.stderr, log - - tout = 200 - - while True: - rc, out = run_process(0, tout) - - if rc in (-signal.SIGALRM, signal.SIGALRM): - print_err_log(out) - print >>sys.stderr, '##append_tag##time out' - elif out and ' stack overflow ' in out: - print >>sys.stderr, '##append_tag##stack overflow' - elif out and 'recvmsg: Connection reset by peer' in out: - print >>sys.stderr, '##append_tag##wine gone' - elif out and 'D8037' in out: - print >>sys.stderr, '##append_tag##repair wine' - - try: - os.unlink(os.path.join(os.environ['WINEPREFIX'], '.update-timestamp')) - except Exception as e: - print >>sys.stderr, e - - else: - print_err_log(out) - - # non-zero return code - bad, return it immediately - if rc: - print >>sys.stderr, '##win_cmd##' + ' '.join(cmd) - print >>sys.stderr, '##args##' + ' '.join(free_args) - return rc - - # check for output existence(if we expect it!) and real length - if cmd_out: - if is_good_file(cmd_out): - return 0 - else: - # retry! - print >>sys.stderr, '##append_tag##no output' - else: - return 0 - - tout *= 3 - - -def main(): - prefix_suffix = os.environ.pop('WINEPREFIX_SUFFIX', None) - if prefix_suffix is not None: - prefix = os.environ.pop('WINEPREFIX', None) - if prefix is not None: - os.environ['WINEPREFIX'] = os.path.join(prefix, prefix_suffix) - - # just in case - signal.alarm(2000) - - if sys.argv[2] == 'slave': - func = run_slave - else: - func = run_main - - try: - try: - sys.exit(func()) - finally: - terminate_slaves() - except KeyboardInterrupt: - sys.exit(4) - except Exception as e: - print >>sys.stderr, str(e) - - sys.exit(3) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/run_sonar.py b/build/scripts/run_sonar.py deleted file mode 100644 index 761cc34b78..0000000000 --- a/build/scripts/run_sonar.py +++ /dev/null @@ -1,121 +0,0 @@ -import os -import sys -import zipfile -import tarfile -import subprocess as sp -import optparse -import shutil -import xml.etree.ElementTree as et - - -def parse_args(): - parser = optparse.OptionParser() - parser.add_option( - '--classes-jar-path', - dest='classes_jar_paths', - action='append', - default=[], - ) - parser.add_option('--sources-jar-path') - parser.add_option('--sonar-scanner-jar-path') - parser.add_option('--sonar-scanner-main-class') - parser.add_option('--java-coverage-merged-tar') - parser.add_option('--java-binary-path') - parser.add_option('--log-path') - parser.add_option('--gcov-report-path') - parser.add_option('--source-root') - parser.add_option('--java-args', action='append', default=[]) - return parser.parse_args() - - -def extract_zip_file(zip_file_path, dest_dir): - with zipfile.ZipFile(zip_file_path) as arch: - arch.extractall(dest_dir) - - -def get_source_real_path(source_root, path): - parts = os.path.normpath(path).split(os.path.sep) - for i in xrange(len(parts)): - if os.path.exists(os.path.join(source_root, *parts[i:])): - return os.path.join(*parts[i:]) - return None - - -def collect_cpp_sources(report, source_root, destination): - sources = set() - with open(report) as f: - root = et.fromstring(f.read()) - for f in root.findall('.//class[@filename]'): - real_filename = get_source_real_path(source_root, f.attrib['filename']) - if real_filename: - f.attrib['filename'] = real_filename - sources.add(real_filename) - with open(report, 'w') as f: - pref = '''<?xml version="1.0" ?> -<!DOCTYPE coverage - SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>\n''' - f.write(pref + et.tostring(root, encoding='utf-8') + '\n\n') - for src in sources: - dst = os.path.join(destination, src) - src = os.path.join(source_root, src) - if os.path.isfile(src): - if not os.path.exists(os.path.dirname(dst)): - os.makedirs(os.path.dirname(dst)) - os.link(src, dst) - - -def main(opts, props_args): - sources_dir = os.path.abspath('src') - base_props_args = ['-Dsonar.sources=' + sources_dir] - os.mkdir(sources_dir) - if opts.sources_jar_path: - extract_zip_file(opts.sources_jar_path, sources_dir) - if opts.gcov_report_path: - collect_cpp_sources(opts.gcov_report_path, opts.source_root, sources_dir) - base_props_args += ['-Dsonar.projectBaseDir=' + sources_dir, '-Dsonar.cxx.coverage.reportPath=' + opts.gcov_report_path] - - if opts.classes_jar_paths: - classes_dir = os.path.abspath('cls') - os.mkdir(classes_dir) - - for classes_jar_path in opts.classes_jar_paths: - extract_zip_file(classes_jar_path, classes_dir) - - base_props_args.append('-Dsonar.java.binaries=' + classes_dir) - - if opts.java_coverage_merged_tar: - jacoco_report_path = os.path.abspath('jacoco.exec') - with open(jacoco_report_path, 'w') as dest: - with tarfile.open(opts.java_coverage_merged_tar) as tar: - for src in tar: - extracted = tar.extractfile(src) - if extracted is not None: - shutil.copyfileobj(extracted, dest) - - base_props_args += [ - '-Dsonar.core.codeCoveragePlugin=jacoco', - '-Dsonar.jacoco.reportPath=' + jacoco_report_path - ] - java_args = ['-{}'.format(i) for i in opts.java_args] + ['-Djava.net.preferIPv6Addresses=true', '-Djava.net.preferIPv4Addresses=false'] - - sonar_cmd = [ - opts.java_binary_path, - ] + java_args + [ - '-classpath', - opts.sonar_scanner_jar_path, - ] + base_props_args + props_args + [opts.sonar_scanner_main_class, '-X'] - - p = sp.Popen(sonar_cmd, stdout=sp.PIPE, stderr=sp.STDOUT) - out, _ = p.communicate() - - sys.stderr.write(out) - with open(opts.log_path, 'a') as f: - f.write(out) - - sys.exit(p.returncode) - - -if __name__ == '__main__': - opts, args = parse_args() - props_args = ['-D' + arg for arg in args] - main(opts, props_args) diff --git a/build/scripts/setup_java_tmpdir.py b/build/scripts/setup_java_tmpdir.py deleted file mode 100644 index e478d4aa96..0000000000 --- a/build/scripts/setup_java_tmpdir.py +++ /dev/null @@ -1,40 +0,0 @@ -import os -import sys -import platform -import subprocess - - -def fix_tmpdir(cmd): - if not cmd: - return cmd - java_id, option_name = None, None - for i, java in enumerate(cmd): - if java.endswith('java') or java.endswith('java.exe'): - java_id = i - option_name = '-Djava.io.tmpdir=' - break - if java.endswith('javac') or java.endswith('javac.exe'): - java_id = i - option_name = '-J-Djava.io.tmpdir=' - break - if java_id is None: - return cmd - for arg in cmd[java_id:]: - if arg.startswith(option_name): - return cmd - tmpdir = os.environ.get('TMPDIR') or os.environ.get('TEMPDIR') - if not tmpdir: - return cmd - return cmd[:java_id + 1] + ['{}{}'.format(option_name, tmpdir)] + cmd[java_id + 1:] - - -def just_do_it(): - args = fix_tmpdir(sys.argv[1:]) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) - - -if __name__ == '__main__': - just_do_it() diff --git a/build/scripts/sky.py b/build/scripts/sky.py deleted file mode 100644 index b703af7ed1..0000000000 --- a/build/scripts/sky.py +++ /dev/null @@ -1,43 +0,0 @@ -import logging -import os -import subprocess - -import fetch_from - - -class UnsupportedProtocolException(Exception): - pass - - -def executable_path(): - return "/usr/local/bin/sky" - - -def is_avaliable(): - if not os.path.exists(executable_path()): - return False - try: - subprocess.check_output([executable_path(), "--version"]) - return True - except subprocess.CalledProcessError: - return False - except OSError: - return False - - -def fetch(skynet_id, file_name, timeout=None): - if not is_avaliable(): - raise UnsupportedProtocolException("Skynet is not available") - - target_dir = os.path.abspath(fetch_from.uniq_string_generator()) - os.mkdir(target_dir) - - cmd_args = [executable_path(), "get", "-N", "Backbone", "--user", "--wait", "--dir", target_dir, skynet_id] - if timeout is not None: - cmd_args += ["--timeout", str(timeout)] - - logging.info("Call skynet with args: %s", cmd_args) - stdout = subprocess.check_output(cmd_args).strip() - logging.debug("Skynet call with args %s is finished, result is %s", cmd_args, stdout) - - return os.path.join(target_dir, file_name) diff --git a/build/scripts/stderr2stdout.py b/build/scripts/stderr2stdout.py deleted file mode 100644 index 0e510da373..0000000000 --- a/build/scripts/stderr2stdout.py +++ /dev/null @@ -1,6 +0,0 @@ -import subprocess -import sys - -if __name__ == '__main__': - assert len(sys.argv) > 1 - sys.exit(subprocess.Popen(sys.argv[1:], stderr=sys.stdout).wait()) diff --git a/build/scripts/stdout2stderr.py b/build/scripts/stdout2stderr.py deleted file mode 100644 index d7861fdda3..0000000000 --- a/build/scripts/stdout2stderr.py +++ /dev/null @@ -1,6 +0,0 @@ -import subprocess -import sys - -if __name__ == '__main__': - assert len(sys.argv) > 1 - sys.exit(subprocess.Popen(sys.argv[1:], stdout=sys.stderr).wait()) diff --git a/build/scripts/symlink.py b/build/scripts/symlink.py deleted file mode 100755 index 9e30a25065..0000000000 --- a/build/scripts/symlink.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python - -import sys -import os -import platform -from subprocess import call - - -def symlink(): - if len(sys.argv) < 3: - print >>sys.stderr, "Usage: symlink.py <source> <target>" - sys.exit(1) - - source = sys.argv[1] - target = sys.argv[2] - - print("Making a symbolic link from {0} to {1}".format(source, target)) - - sysName = platform.system() - if sysName == "Windows": # and not os.path.exists(target) - if os.path.isdir(source): - call(["mklink", "/D", target, source], shell=True) - else: - call(["mklink", target, source], shell=True) - else: - call(["ln", "-f", "-s", "-n", source, target]) - -if __name__ == '__main__': - symlink() diff --git a/build/scripts/tar_directory.py b/build/scripts/tar_directory.py deleted file mode 100644 index a91889fa22..0000000000 --- a/build/scripts/tar_directory.py +++ /dev/null @@ -1,45 +0,0 @@ -import os -import sys -import tarfile - - -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def main(args): - if len(args) < 2 or len(args) > 3: - raise Exception("Illegal usage: `tar_directory.py archive.tar directory [skip prefix]` or `tar_directory.py archive.tar output_directory --extract`") - tar, directory, prefix, extract = args[0], args[1], None, False - if len(args) == 3: - if args[2] == '--extract': - extract = True - else: - prefix = args[2] - for tar_exe in ('/usr/bin/tar', '/bin/tar'): - if not is_exe(tar_exe): - continue - if extract: - dest = os.path.abspath(directory) - if not os.path.exists(dest): - os.makedirs(dest) - os.execv(tar_exe, [tar_exe, '-xf', tar, '-C', dest]) - else: - source = os.path.relpath(directory, prefix) if prefix else directory - os.execv(tar_exe, [tar_exe, '-cf', tar] + (['-C', prefix] if prefix else []) + [source]) - break - else: - if extract: - dest = os.path.abspath(directory) - if not os.path.exists(dest): - os.makedirs(dest) - with tarfile.open(tar, 'r') as tar_file: - tar_file.extractall(dest) - else: - source = directory - with tarfile.open(tar, 'w') as out: - out.add(os.path.abspath(source), arcname=os.path.relpath(source, prefix) if prefix else source) - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/tar_sources.py b/build/scripts/tar_sources.py deleted file mode 100644 index 54e2839a69..0000000000 --- a/build/scripts/tar_sources.py +++ /dev/null @@ -1,41 +0,0 @@ -import argparse -import os -import tarfile - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument('--exts', nargs='*', default=None) - parser.add_argument('--flat', action='store_true') - parser.add_argument('--input', required=True) - parser.add_argument('--output', required=True) - parser.add_argument('--prefix', default=None) - - return parser.parse_args() - - -def main(): - args = parse_args() - - py_srcs = [] - for root, _, files in os.walk(args.input): - for f in files: - if not args.exts or f.endswith(tuple(args.exts)): - py_srcs.append(os.path.join(root, f)) - - compression_mode = '' - if args.output.endswith(('.tar.gz', '.tgz')): - compression_mode = 'gz' - elif args.output.endswith('.bzip2'): - compression_mode = 'bz2' - - with tarfile.open(args.output, 'w:{}'.format(compression_mode)) as out: - for f in py_srcs: - arcname = os.path.basename(f) if args.flat else os.path.relpath(f, args.input) - if args.prefix: - arcname = os.path.join(args.prefix, arcname) - out.add(f, arcname=arcname) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/tared_protoc.py b/build/scripts/tared_protoc.py deleted file mode 100644 index 7643e1dbfe..0000000000 --- a/build/scripts/tared_protoc.py +++ /dev/null @@ -1,31 +0,0 @@ -import os -import optparse -import tarfile -import contextlib -import subprocess as sp - - -def parse_args(): - parser = optparse.OptionParser() - parser.disable_interspersed_args() - parser.add_option('--tar-output') - parser.add_option('--protoc-out-dir') - return parser.parse_args() - - -def main(): - opts, args = parse_args() - assert opts.tar_output - assert opts.protoc_out_dir - - if not os.path.exists(opts.protoc_out_dir): - os.makedirs(opts.protoc_out_dir) - - sp.check_call(args) - - with contextlib.closing(tarfile.open(opts.tar_output, 'w')) as tf: - tf.add(opts.protoc_out_dir, arcname='') - - -if __name__ == '__main__': - main() diff --git a/build/scripts/touch.py b/build/scripts/touch.py deleted file mode 100755 index e01ba7f86b..0000000000 --- a/build/scripts/touch.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python - -import optparse -import os -import sys -import time - - -def main(argv): - parser = optparse.OptionParser(add_help_option=False) - parser.disable_interspersed_args() - - parser.add_option('-?', '--help', dest='help', - action='store_true', default=None, help='print help') - parser.add_option('-t', dest='t', action='store', default=None) - - opts, argv_rest = parser.parse_args(argv) - if getattr(opts, 'help', False): - parser.print_help() - return 0 - - tspec = opts.t - if tspec is None: - times = None - else: - head, sep, tail = tspec.partition('.') - if 8 > len(head): - raise Exception("time spec must follow format [[CC]YY]MMDDhhmm[.SS]: " + tspec + '; ' + head) - tfmt = '' - if 12 == len(head): - tfmt += '%Y' - elif 10 == len(head): - tfmt += '%y' - tfmt += '%m%d%H%M' - if 2 == len(tail): - tfmt += '.%S' - mtime = time.mktime(time.strptime(tspec, tfmt)) - times = (mtime, mtime) - - for file in argv_rest: - try: - os.utime(file, times) - except: - open(file, 'w').close() - if times is not None: - os.utime(file, times) - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) diff --git a/build/scripts/unpacking_jtest_runner.py b/build/scripts/unpacking_jtest_runner.py deleted file mode 100644 index 9730dcd711..0000000000 --- a/build/scripts/unpacking_jtest_runner.py +++ /dev/null @@ -1,148 +0,0 @@ -import io -import json -import optparse -import os -import sys -import subprocess -import time -import zipfile -import platform - -# This script changes test run classpath by unpacking tests.jar -> tests-dir. The goal -# is to launch tests with the same classpath as maven does. - - -def parse_args(): - parser = optparse.OptionParser() - parser.disable_interspersed_args() - parser.add_option('--trace-file') - parser.add_option('--jar-binary') - parser.add_option('--tests-jar-path') - parser.add_option('--classpath-option-type', choices=('manifest', 'command_file', 'list'), default='manifest') - return parser.parse_args() - - -# temporary, for jdk8/jdk9+ compatibility -def fix_cmd(cmd): - if not cmd: - return cmd - java = cmd[0] - if not java.endswith('java') and not java.endswith('java.exe'): - return cmd - p = subprocess.Popen([java, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - out, err = out.strip(), err.strip() - if ((out or '').strip().startswith('java version "1.8') or (err or '').strip().startswith('java version "1.8')): - res = [] - i = 0 - while i < len(cmd): - for option in ('--add-exports', '--add-modules'): - if cmd[i] == option: - i += 1 - break - elif cmd[i].startswith(option + '='): - break - else: - res.append(cmd[i]) - i += 1 - return res - return cmd - - -def dump_event(etype, data, filename): - event = { - 'timestamp': time.time(), - 'value': data, - 'name': etype, - } - - with io.open(filename, 'a', encoding='utf8') as afile: - afile.write(unicode(json.dumps(event) + '\n')) - - -def dump_chunk_event(data, filename): - return dump_event('chunk-event', data, filename) - - -def extract_jars(dest, archive): - os.makedirs(dest) - with zipfile.ZipFile(archive) as zf: - zf.extractall(dest) - - -def make_bfg_from_cp(class_path, out): - class_path = ' '.join( - map(lambda path: ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path, class_path) - ) - with zipfile.ZipFile(out, 'w') as zf: - lines = [] - while class_path: - lines.append(class_path[:60]) - class_path = class_path[60:] - if lines: - zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') - - -def make_command_file_from_cp(class_path, out): - with open(out, 'w') as cp_file: - cp_file.write(os.pathsep.join(class_path)) - - -def main(): - s = time.time() - opts, args = parse_args() - - # unpack tests jar - try: - build_root = args[args.index('--build-root') + 1] - dest = os.path.join(build_root, 'test-classes') - except Exception: - build_root = '' - dest = os.path.abspath('test-classes') - - extract_jars(dest, opts.tests_jar_path) - - metrics = { - 'suite_jtest_extract_jars_(seconds)': time.time() - s, - } - - s = time.time() - # fix java classpath - cp_idx = args.index('-classpath') - if args[cp_idx + 1].startswith('@'): - real_name = args[cp_idx + 1][1:] - mf = os.path.join(os.path.dirname(real_name), 'fixed.bfg.jar') - with open(real_name) as origin: - class_path = [os.path.join(build_root, i.strip()) for i in origin] - if opts.tests_jar_path in class_path: - class_path.remove(opts.tests_jar_path) - if opts.classpath_option_type == 'manifest': - make_bfg_from_cp(class_path, mf) - mf = os.pathsep.join([dest, mf]) - elif opts.classpath_option_type == 'command_file': - mf = os.path.splitext(mf)[0] + '.txt' - make_command_file_from_cp([dest] + class_path, mf) - mf = "@" + mf - elif opts.classpath_option_type == 'list': - mf = os.pathsep.join([dest] + class_path) - else: - raise Exception("Unexpected classpath option type: " + opts.classpath_option_type) - args = fix_cmd(args[:cp_idx + 1]) + [mf] + args[cp_idx + 2:] - else: - args[cp_idx + 1] = args[cp_idx + 1].replace(opts.tests_jar_path, dest) - args = fix_cmd(args[:cp_idx]) + args[cp_idx:] - - metrics['suite_jtest_fix_classpath_(seconds)'] = time.time() - s - - if opts.trace_file: - dump_chunk_event({'metrics': metrics}, opts.trace_file) - - # run java cmd - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) - - -if __name__ == '__main__': - main() diff --git a/build/scripts/with_coverage.py b/build/scripts/with_coverage.py deleted file mode 100644 index d62435c3b8..0000000000 --- a/build/scripts/with_coverage.py +++ /dev/null @@ -1,40 +0,0 @@ -# TODO prettyboy remove after ya-bin release - -import os -import sys -import subprocess -import tarfile -import random -import shutil - - -def mkdir_p(path): - try: - os.makedirs(path) - except OSError: - pass - - -def main(args): - coverage_path = os.path.abspath(args[0]) - coverage_dir = coverage_path + '.' + str(random.getrandbits(64)) - - mkdir_p(coverage_dir) - - env = os.environ.copy() - env['GCOV_PREFIX'] = coverage_dir - - subprocess.check_call(args[1:], env=env) - - arch_path = coverage_dir + '.archive' - - with tarfile.open(arch_path, 'w:') as tar: - tar.add(coverage_dir, arcname='.') - - os.rename(arch_path, coverage_path) - - shutil.rmtree(coverage_dir) - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/with_crash_on_timeout.py b/build/scripts/with_crash_on_timeout.py deleted file mode 100644 index bde864ed29..0000000000 --- a/build/scripts/with_crash_on_timeout.py +++ /dev/null @@ -1,22 +0,0 @@ -# TODO prettyboy remove after ya-bin release - -import os -import sys -import subprocess -import json - - -def main(args): - meta_path = os.path.abspath(args[0]) - timeout_code = int(args[1]) - subprocess.check_call(args[2:]) - with open(meta_path) as f: - meta_info = json.loads(f.read()) - if meta_info["exit_code"] == timeout_code: - print >> sys.stderr, meta_info["project"], 'crashed by timeout, use --test-disable-timeout option' - return 1 - return 0 - - -if __name__ == '__main__': - main(sys.argv[1:]) diff --git a/build/scripts/with_kapt_args.py b/build/scripts/with_kapt_args.py deleted file mode 100644 index eb7438a4c9..0000000000 --- a/build/scripts/with_kapt_args.py +++ /dev/null @@ -1,35 +0,0 @@ -import sys -import os -import subprocess -import platform -import argparse -import re - - -def parse_args(args): - parser = argparse.ArgumentParser() - parser.add_argument('--ap-classpath', nargs='*', type=str, dest='classpath') - cmd_start = args.index('--') - return parser.parse_args(args[:cmd_start]), args[cmd_start+1:] - - -def get_ap_classpath(directory): - jar_re = re.compile(r'.*(?<!-sources)\.jar') - found_jars = [os.path.join(address, name) for address, dirs, files in os.walk(directory) for name in files if jar_re.match(name)] - if len(found_jars) != 1: - raise Exception("found %d JAR files in directory %s" % (len(found_jars), directory)) - arg = 'plugin:org.jetbrains.kotlin.kapt3:apclasspath=' + found_jars[0] - return '-P', arg - - -def create_extra_args(args): - cp_opts = [arg for d in args.classpath for arg in get_ap_classpath(d)] - return cp_opts - -if __name__ == '__main__': - args, cmd = parse_args(sys.argv[1:]) - res = cmd + create_extra_args(args) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(res).wait()) - else: - os.execv(res[0], res) diff --git a/build/scripts/with_pathsep_resolve.py b/build/scripts/with_pathsep_resolve.py deleted file mode 100644 index 37c8c598ae..0000000000 --- a/build/scripts/with_pathsep_resolve.py +++ /dev/null @@ -1,23 +0,0 @@ -import sys -import os -import subprocess -import platform - - -def fix_args(args): - just_replace_it = False - for arg in args: - if arg == '--fix-path-sep': - just_replace_it = True - continue - if just_replace_it: - arg = arg.replace('::', os.pathsep) - just_replace_it = False - yield arg - -if __name__ == '__main__': - res = list(fix_args(sys.argv[1:])) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(res).wait()) - else: - os.execv(res[0], res) diff --git a/build/scripts/wrap_groovyc.py b/build/scripts/wrap_groovyc.py deleted file mode 100644 index 068b73fd87..0000000000 --- a/build/scripts/wrap_groovyc.py +++ /dev/null @@ -1,23 +0,0 @@ -import platform -import sys -import os -import subprocess - - -def fix_windows(args): - for arg in args: - if os.path.basename(arg) == 'groovyc' and os.path.basename(os.path.dirname(arg)) == 'bin': - yield arg + '.bat' - else: - yield arg - - -if __name__ == '__main__': - env = os.environ.copy() - jdk = sys.argv[1] - env['JAVA_HOME'] = jdk - args = sys.argv[2:] - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(list(fix_windows(args)), env=env).wait()) - else: - os.execve(args[0], args, env) diff --git a/build/scripts/wrapper.py b/build/scripts/wrapper.py deleted file mode 100644 index 1e9d7955a5..0000000000 --- a/build/scripts/wrapper.py +++ /dev/null @@ -1,11 +0,0 @@ -import os -import sys - - -if __name__ == '__main__': - path = sys.argv[1] - - if path[0] != '/': - path = os.path.join(os.path.dirname(__file__), path) - - os.execv(path, [path] + sys.argv[2:]) diff --git a/build/scripts/write_file_size.py b/build/scripts/write_file_size.py deleted file mode 100644 index 880fb90644..0000000000 --- a/build/scripts/write_file_size.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -import sys -import os.path - -if __name__ == '__main__': - output = sys.argv[1] - size_sum = 0 - for filename in sys.argv[2:]: - if os.path.exists(filename): - size_sum += os.path.getsize(filename) - else: - sys.stderr.write('write_file_size.py: {0}: No such file or directory\n'.format(filename)) - sys.exit(1) - with open(output, 'w') as f: - f.write(str(size_sum)) diff --git a/build/scripts/writer.py b/build/scripts/writer.py deleted file mode 100644 index 21bb3006e5..0000000000 --- a/build/scripts/writer.py +++ /dev/null @@ -1,40 +0,0 @@ -import sys -import argparse - -import process_command_files as pcf - - -def parse_args(): - args = pcf.get_args(sys.argv[1:]) - parser = argparse.ArgumentParser() - parser.add_argument('-f', '--file', dest='file_path') - parser.add_argument('-a', '--append', action='store_true', default=False) - parser.add_argument('-Q', '--quote', action='store_true', default=False) - parser.add_argument('-s', '--addspace', action='store_true', default=False) - parser.add_argument('-c', '--content', action='append', dest='content') - parser.add_argument('-m', '--content-multiple', nargs='*', dest='content') - parser.add_argument('-P', '--path-list', action='store_true', default=False) - return parser.parse_args(args) - - -def smart_shell_quote(v): - if v is None: - return None - if ' ' in v or '"' in v or "'" in v: - return "\"{0}\"".format(v.replace('"', '\\"')) - return v - -if __name__ == '__main__': - args = parse_args() - open_type = 'a' if args.append else 'w' - - content = args.content - if args.quote: - content = [smart_shell_quote(ln) for ln in content] if content is not None else None - content = '\n'.join(content) - - with open(args.file_path, open_type) as f: - if args.addspace: - f.write(' ') - if content is not None: - f.write(content) diff --git a/build/scripts/xargs.py b/build/scripts/xargs.py deleted file mode 100644 index 5d68929ecc..0000000000 --- a/build/scripts/xargs.py +++ /dev/null @@ -1,18 +0,0 @@ -import sys -import os -import subprocess - -if __name__ == '__main__': - pos = sys.argv.index('--') - fname = sys.argv[pos + 1] - cmd = sys.argv[pos + 2:] - - with open(fname, 'r') as f: - args = [x.strip() for x in f] - - os.remove(fname) - - p = subprocess.Popen(cmd + args, shell=False, stderr=sys.stderr, stdout=sys.stdout) - p.communicate() - - sys.exit(p.returncode) diff --git a/build/scripts/ya.make b/build/scripts/ya.make deleted file mode 100644 index 837f0e0494..0000000000 --- a/build/scripts/ya.make +++ /dev/null @@ -1,110 +0,0 @@ -OWNER(g:ymake) - -PY23_TEST() - -IF (PY2) - TEST_SRCS( - build_dll_and_java.py - build_java_codenav_index.py - build_java_with_error_prone.py - build_java_with_error_prone2.py - build_mn.py - build_pln_header.py - cat.py - cgo1_wrapper.py - check_config_h.py - collect_java_srcs.py - compile_cuda.py - compile_java.py - compile_jsrc.py - compile_pysrc.py - configure_file.py - copy_docs_files.py - copy_docs_files_to_dir.py - copy_files_to_dir.py - copy_to_dir.py - coverage-info.py - cpp_flatc_wrapper.py - create_jcoverage_report.py - extract_asrc.py - extract_docs.py - extract_jacoco_report.py - f2c.py - fail_module_cmd.py - fetch_from.py - fetch_from_external.py - fetch_from_mds.py - fetch_from_npm.py - fetch_from_sandbox.py - fetch_resource.py - filter_zip.py - find_and_tar.py - fix_msvc_output.py - fs_tools.py - gen_aar_gradle_script.py - gen_java_codenav_entry.py - gen_java_codenav_protobuf.py - gen_mx_table.py - gen_py3_reg.py - gen_py_reg.py - gen_test_apk_gradle_script.py - gen_ub.py - generate_pom.py - go_proto_wrapper.py - go_tool.py - ios_wrapper.py - java_pack_to_file.py - link_asrc.py - link_dyn_lib.py - link_exe.py - link_fat_obj.py - link_lib.py - llvm_opt_wrapper.py - merge_coverage_data.py - merge_files.py - mkdir.py - mkdocs_builder_wrapper.py - mkver.py - pack_ios.py - pack_jcoverage_resources.py - perl_wrapper.py - postprocess_go_fbs.py - preprocess.py - py_compile.py - run_ios_simulator.py - run_javac.py - run_junit.py - run_llvm_dsymutil.py - run_msvc_wine.py - run_tool.py - sky.py - stdout2stderr.py - symlink.py - tar_directory.py - tar_sources.py - tared_protoc.py - touch.py - unpacking_jtest_runner.py - vcs_info.py - with_coverage.py - with_crash_on_timeout.py - with_pathsep_resolve.py - wrap_groovyc.py - wrapper.py - writer.py - write_file_size.py - xargs.py - yield_line.py - yndexer.py - ) -ELSEIF(PY3) - TEST_SRCS( - build_info_gen.py - ) -ENDIF() - -PEERDIR( - ydb/library/yql/public/udf -) - -END() diff --git a/build/scripts/yield_line.py b/build/scripts/yield_line.py deleted file mode 100644 index c7087e521e..0000000000 --- a/build/scripts/yield_line.py +++ /dev/null @@ -1,8 +0,0 @@ -import sys - - -if __name__ == '__main__': - pos = sys.argv.index('--') - - with open(sys.argv[pos + 1], 'a') as f: - f.write(' '.join(sys.argv[pos + 2:]) + '\n') diff --git a/build/scripts/yndexer.py b/build/scripts/yndexer.py deleted file mode 100644 index a38e28ba99..0000000000 --- a/build/scripts/yndexer.py +++ /dev/null @@ -1,79 +0,0 @@ -import sys -import subprocess -import threading -import os -import re - - -rx_resource_dir = re.compile(r'libraries: =([^:]*)') - - -def _try_to_kill(process): - try: - process.kill() - except Exception: - pass - - -def touch(path): - if not os.path.exists(path): - with open(path, 'w'): - pass - - -class Process(object): - def __init__(self, args): - self._process = subprocess.Popen(args) - self._event = threading.Event() - self._result = None - thread = threading.Thread(target=self._run) - thread.setDaemon(True) - thread.start() - - def _run(self): - self._process.communicate() - self._result = self._process.returncode - self._event.set() - - def wait(self, timeout): - self._event.wait(timeout=timeout) - _try_to_kill(self._process) - return self._result - - -if __name__ == '__main__': - args = sys.argv - - yndexer = args[1] - timeout = int(args[2]) - arc_root = args[3] - build_root = args[4] - input_file = args[5] - output_file = args[-1] - tail_args = args[6:-1] - - subprocess.check_call(tail_args) - - clang = tail_args[0] - out = subprocess.check_output([clang, '-print-search-dirs']) - resource_dir = rx_resource_dir.search(out).group(1) - - yndexer_args = [ - yndexer, input_file, - '-pb2', - '-i', 'arc::{}'.format(arc_root), - '-i', 'build::{}'.format(build_root), - '-i', '.IGNORE::/', - '-o', os.path.dirname(output_file), - '-n', os.path.basename(output_file).rsplit('.ydx.pb2', 1)[0], - '--' - ] + tail_args + [ - '-resource-dir', resource_dir, - ] - - process = Process(yndexer_args) - result = process.wait(timeout=timeout) - - if result != 0: - print >> sys.stderr, 'Yndexing process finished with code', result - touch(output_file) diff --git a/build/sysincl.lst b/build/sysincl.lst deleted file mode 100644 index e69de29bb2..0000000000 --- a/build/sysincl.lst +++ /dev/null diff --git a/build/sysincl/android.yml b/build/sysincl/android.yml deleted file mode 100644 index 1dae6e1d85..0000000000 --- a/build/sysincl/android.yml +++ /dev/null @@ -1,31 +0,0 @@ -- includes: - - aaudio/AAudio.h - - android/asset_manager.h - - android/asset_manager_jni.h - - android/dlext.h - - android/log.h - - android/native_window_jni.h - - cpu-features.h: contrib/libs/android_cpufeatures/cpu-features.h - - ifaddrs.h: contrib/libs/libc_compat/include/ifaddrs/ifaddrs.h - - jni.h - - vulkan/vulkan.h - - vulkan/vk_sdk_platform.h - - EGL/egl.h - - EGL/eglext.h - - GLES2/gl2.h - - GLES2/gl2ext.h - - GLES3/gl31.h - - SLES/OpenSLES.h - - SLES/OpenSLES_Android.h - - SLES/OpenSLES_AndroidConfiguration.h - - SLES/OpenSLES_AndroidMetadata.h - - SLES/OpenSLES_Platform.h - - linux/ashmem.h - -- source_filter: "^contrib/libs/breakpad/src" - includes: - - elf.h: contrib/libs/breakpad/src/common/android/include/elf.h - - link.h: contrib/libs/breakpad/src/common/android/include/link.h - - sys/procfs.h: contrib/libs/breakpad/src/common/android/include/sys/procfs.h - - sys/signal.h: contrib/libs/breakpad/src/common/android/include/sys/signal.h - - sys/user.h: contrib/libs/breakpad/src/common/android/include/sys/user.h diff --git a/build/sysincl/check/cxx.c b/build/sysincl/check/cxx.c deleted file mode 100644 index 2945560f8e..0000000000 --- a/build/sysincl/check/cxx.c +++ /dev/null @@ -1,20 +0,0 @@ -#include <complex.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fenv.h>
-#include <float.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <locale.h>
-#include <math.h>
-#include <setjmp.h>
-#include <stdatomic.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <tgmath.h>
-#include <wchar.h>
-#include <wctype.h>
diff --git a/build/sysincl/check/ya.make b/build/sysincl/check/ya.make deleted file mode 100644 index af09f4695d..0000000000 --- a/build/sysincl/check/ya.make +++ /dev/null @@ -1,11 +0,0 @@ -OWNER(g:ymake)
-
-LIBRARY()
-
-# This library if configured independently will show issues with C++ resolving in pure C modules
-
-NO_RUNTIME()
-
-SRCS(cxx.c)
-
-END()
\ No newline at end of file diff --git a/build/sysincl/darwin.yml b/build/sysincl/darwin.yml deleted file mode 100644 index b3f3b6b3b5..0000000000 --- a/build/sysincl/darwin.yml +++ /dev/null @@ -1,243 +0,0 @@ -- includes: - # These headers actually exist in arcadia, so we either should use them and - # add proper PEERDIR, or should #error them if they are not really used: - # - bzlib.h - # - db.h - # - expat.h - # - expat_external.h - # - libunwind.h - # - libxslt/documents.h - # - libxslt/extensions.h - # - libxslt/transform.h - # - libxslt/xsltutils.h - # - pcap-bpf.h - # - pcap-namedb.h - # - pcap.h - # - pcap/bpf.h - # - pcap/namedb.h - # - pcap/pcap.h - # - sasl/sasl.h - # - sasl/saslutil.h - # - uuid/uuid.h - # - zconf.h - - - Availability.h - - AvailabilityMacros.h - - Block.h - - CommonCrypto/CommonCrypto.h - - CommonCrypto/CommonCryptoError.h - - CommonCrypto/CommonCryptor.h - - CommonCrypto/CommonDigest.h - - CommonCrypto/CommonHMAC.h - - CommonCrypto/CommonKeyDerivation.h - - CommonCrypto/CommonRandom.h - - ConditionalMacros.h - - DiskArbitration/DiskArbitration.h - - Endian.h - - MacTypes.h - - TargetConditionals.h - - architecture/byte_order.h - - asl.h - - copyfile.h - - crt_externs.h - - curses.h - - dispatch/dispatch.h - - editline/readline.h - - ffi/ffi.h - - form.h - - gssapi.h - - gssapi/gssapi.h - - gssapi/gssapi_generic.h - - gssapi/gssapi_krb5.h - - histedit.h - - krb5.h - - launch.h - - libkern/OSAtomic.h - - libkern/OSByteOrder.h - - libkern/OSCacheControl.h - - libproc.h - - mach-o/dyld.h - - mach-o/fixup-chains.h - - mach-o/getsect.h - - mach-o/loader.h - - mach/clock.h - - mach/clock_types.h - - mach/error.h - - mach/host_info.h - - mach/kern_return.h - - mach/mach.h - - mach/mach_error.h - - mach/mach_host.h - - mach/mach_init.h - - mach/mach_port.h - - mach/mach_time.h - - mach/mach_traps.h - - mach/mach_types.h - - mach/mach_vm.h - - mach/machine.h - - mach/machine/vm_param.h - - mach/processor_info.h - - mach/semaphore.h - - mach/shared_memory_server.h - - mach/shared_region.h - - mach/task.h - - mach/thread_act.h - - mach/thread_info.h - - mach/thread_policy.h - - mach/vm_map.h - - mach/vm_page_size.h - - mach/vm_param.h - - mach/vm_statistics.h - - machine/_limits.h - - machine/_types.h - - machine/byte_order.h - - machine/endian.h - - machine/limits.h - - machine/param.h - - machine/signal.h - - machine/vmparam.h - - malloc/malloc.h - - menu.h - - ndbm.h - - net/bpf.h - - net/if_dl.h - - net/if_media.h - - net/if_types.h - - net/if_var.h - - netinet/in_pcb.h - - netinet/ip_var.h - - netinet/tcp_fsm.h - - netinet/tcp_timer.h - - netinet/tcp_var.h - - netinet/tcpip.h - - netinet/udp_var.h - - netinet6/in6.h - - nlist.h - - objc/objc-sync.h - - objc/runtime.h - - os/lock.h - - os/log.h - - os/proc.h - - os/trace.h - - panel.h - - pthread_spis.h - - readline/history.h - - readline/readline.h - - readpassphrase.h - - runetype.h - - simd/simd.h - - strhash.h - - sys/_types.h - - sys/acl.h - - sys/aio.h - - sys/attr.h - - sys/clonefile.h - - sys/dirent.h - - sys/disk.h - - sys/domain.h - - sys/event.h - - sys/filio.h - - sys/ioccom.h - - sys/kauth.h - - sys/kern_control.h - - sys/lock.h - - sys/malloc.h - - sys/mbuf.h - - sys/msgbuf.h - - sys/paths.h - - sys/posix_shm.h - - sys/proc.h - - sys/proc_info.h - - sys/protosw.h - - sys/sdt.h - - sys/sockio.h - - sys/sys_domain.h - - sys/syslimits.h - - sys/ttycom.h - - sys/ucred.h - - sys/unpcb.h - - sys/vmmeter.h - - sys/vnode.h - - tcl.h - - term.h - - termcap.h - - timeconv.h - - tzfile.h - - util.h - - vis.h - - xpc/xpc.h - - # OSX frameworks - - Accelerate/Accelerate.h - - AppKit/AppKit.h - - AppKit/NSView.h - - ApplicationServices/ApplicationServices.h - - AudioToolbox/AudioToolbox.h - - AVFoundation/AVFoundation.h - - CFNetwork/CFNetwork.h - - Cocoa/Cocoa.h - - CoreFoundation/CFArray.h - - CoreFoundation/CFBase.h - - CoreFoundation/CFBundle.h - - CoreFoundation/CFData.h - - CoreFoundation/CFDictionary.h - - CoreFoundation/CFLocale.h - - CoreFoundation/CFNumber.h - - CoreFoundation/CFPreferences.h - - CoreFoundation/CFRunLoop.h - - CoreFoundation/CFString.h - - CoreFoundation/CFTimeZone.h - - CoreFoundation/CFUUID.h - - CoreFoundation/CoreFoundation.h - - CoreGraphics/CoreGraphics.h - - CoreLocation/CoreLocation.h - - CoreMedia/CoreMedia.h - - CoreMotion/CoreMotion.h - - CoreServices/CoreServices.h - - CoreTelephony/CTCarrier.h - - CoreTelephony/CTTelephonyNetworkInfo.h - - CoreText/CoreText.h - - CoreVideo/CoreVideo.h - - Foundation/Foundation.h - - Foundation/NSException.h - - Foundation/NSString.h - - Foundation/NSKeyValueObserving.h - - Foundation/NSObject.h - - GLKit/GLKit.h - - IOKit/IOBSD.h - - IOKit/IOKitLib.h - - IOKit/kext/KextManager.h - - IOKit/ps/IOPSKeys.h - - IOKit/ps/IOPSKeys.h - - IOKit/ps/IOPowerSources.h - - IOKit/ps/IOPowerSources.h - - IOKit/ps/IOPowerSources.h - - IOKit/storage/IOBlockStorageDriver.h - - IOKit/storage/IOMedia.h - - IOSurface/IOSurfaceRef.h - - Metal/Metal.h - - metal_stdlib - - OpenCL/cl.h - - OpenCL/cl_gl.h - - OpenCL/opencl.h - - OpenGLES/ES2/gl.h - - Speech/Speech.h - - QuartzCore/QuartzCore.h - - QuartzCore/CAEAGLLayer.h - - QuartzCore/CAMetalLayer.h - - Security/SecCertificate.h - - Security/SecKey.h - - Security/SecRandom.h - - Security/SecureTransport.h - - Security/Security.h - - SystemConfiguration/SystemConfiguration.h - - SystemConfiguration/SCDynamicStoreCopySpecific.h - - UIKit/UIImage.h - - UIKit/UIKit.h - - UIKit/UIScreen.h - - UIKit/UIWebView.h - - UIKit/UIView.h - - VideoDecodeAcceleration/VDADecoder.h - - VideoToolbox/VideoToolbox.h - - XCTest/XCTest.h - - CoreFoundation/CFByteOrder.h diff --git a/build/sysincl/esp-idf.yml b/build/sysincl/esp-idf.yml deleted file mode 100644 index 736166396e..0000000000 --- a/build/sysincl/esp-idf.yml +++ /dev/null @@ -1,55 +0,0 @@ -- includes: - # freertos - - freertos/FreeRTOS.h: contrib/libs/esp-idf/components/freertos/include/freertos/FreeRTOS.h - - freertos/semphr.h: contrib/libs/esp-idf/components/freertos/include/freertos/semphr.h - - freertos/task.h: contrib/libs/esp-idf/components/freertos/include/freertos/task.h - # lwip - - lwip/def.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/def.h - - lwip/err.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/err.h - - lwip/inet.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/inet.h - - lwip/init.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/init.h - - lwip/ip4_addr.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/ip4_addr.h - - lwip/ip_addr.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/ip_addr.h - - lwip/mem.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/mem.h - - lwip/memp.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/memp.h - - lwip/netif.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/netif.h - - lwip/opt.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/opt.h - - lwip/pbuf.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/pbuf.h - - lwip/stats.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/stats.h - - lwip/sys.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/sys.h - - lwip/tcpip.h: contrib/libs/esp-idf/components/lwip/lwip/src/include/lwip/tcpip.h - # newlib - - assert.h: contrib/libs/esp-idf/components/newlib/platform_include/assert.h - - endian.h: contrib/libs/esp-idf/components/newlib/platform_include/endian.h - - errno.h: contrib/libs/esp-idf/components/newlib/platform_include/errno.h - - esp_newlib.h: contrib/libs/esp-idf/components/newlib/platform_include/esp_newlib.h - - net/if.h: contrib/libs/esp-idf/components/newlib/platform_include/net/if.h - - pthread.h: contrib/libs/esp-idf/components/newlib/platform_include/pthread.h - - sys/dirent.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/dirent.h - - sys/ioctl.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/ioctl.h - - sys/lock.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/lock.h - - sys/poll.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/poll.h - - sys/random.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/random.h - - sys/reent.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/reent.h - - sys/select.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/select.h - - sys/termios.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/termios.h - - sys/time.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/time.h - - sys/uio.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/uio.h - - sys/un.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/un.h - - sys/unistd.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/unistd.h - - sys/utime.h: contrib/libs/esp-idf/components/newlib/platform_include/sys/utime.h - - time.h: contrib/libs/esp-idf/components/newlib/platform_include/time.h - # wpa_supplicant - - byteswap.h: contrib/libs/esp-idf/components/wpa_supplicant/port/include/byteswap.h - - endian.h: contrib/libs/esp-idf/components/wpa_supplicant/port/include/endian.h - # espcoredump - - elf.h: contrib/libs/esp-idf/components/espcoredump/include_core_dump/elf.h - -- source_filter: "^contrib/libs/esp-idf(?!/components/cbor)|contrib/libs/connectedhomeip" - includes: - # lwip - - arpa/inet.h: contrib/libs/esp-idf/components/lwip/port/esp32/include/arpa/inet.h - - netinet/in.h: contrib/libs/esp-idf/components/lwip/port/esp32/include/netinet/in.h - - netinet/tcp.h: contrib/libs/esp-idf/components/lwip/port/esp32/include/netinet/tcp.h - - sys/socket.h: contrib/libs/esp-idf/components/lwip/port/esp32/include/sys/socket.h - - netdb.h: contrib/libs/esp-idf/components/lwip/port/esp32/include/netdb.h diff --git a/build/sysincl/ibdrv.yml b/build/sysincl/ibdrv.yml deleted file mode 100644 index 5cf2c36078..0000000000 --- a/build/sysincl/ibdrv.yml +++ /dev/null @@ -1,12 +0,0 @@ -# This file is conditionally included from ymake.core.conf to ensure -# that contrib/libs/ibdrv/include/{infiniband/verbs.h,rdma/rdma_cma.h} -# are the only ibdrv headers needed for opensource catboost -# (transitively from library/cpp/netliba). They are replaced by empty -# files in put_arcadia_to_git.sh. - -- source_filter: "^contrib/libs/ibdrv" - includes: - - infiniband/sa.h - - infiniband/verbs.h - - infiniband/verbs_api.h - - rdma/rdma_cma.h diff --git a/build/sysincl/intrinsic.yml b/build/sysincl/intrinsic.yml deleted file mode 100644 index 5567565ebc..0000000000 --- a/build/sysincl/intrinsic.yml +++ /dev/null @@ -1,54 +0,0 @@ -- includes: - - Intrin.h - - ammintrin.h - - arm_acle.h - - arm_neon.h - - arm64_neon.h - - armintr.h - - avx2intrin.h - - avx512fintrin.h - - avx512dqintrin.h - - avx512cdintrin.h - - avx512bwintrin.h - - avx512vlintrin.h - - avx512vbmiintrin.h - - avx512vbmi2intrin.h - - avxintrin.h - - bmi2intrin.h - - bmiintrin.h - - cmnintrin.h - - e2kbuiltin.h - - emmintrin.h - - f16cintrin.h - - fma4intrin.h - - fmaintrin.h - - ia32intrin.h - - ia64intrin.h - - immintrin.h - - intrin.h - - intrinsics.h - - lzcntintrin.h - - mm3dnow.h - - mmintrin.h - - msa.h - - nmmintrin.h - - pmmintrin.h - - popcntintrin.h - - prfchwintrin.h - - rdseedintrin.h - - rtmintrin.h - - s390intrin.h - - sanitizer/asan_interface.h - - sanitizer/common_interface_defs.h - - sanitizer/coverage_interface.h - - sanitizer/lsan_interface.h - - sanitizer/msan_interface.h - - sanitizer/tsan_interface.h - - sanitizer/tsan_interface_atomic.h - - smmintrin.h - - tbmintrin.h - - tmmintrin.h - - wmmintrin.h - - x86intrin.h - - xmmintrin.h - - xopintrin.h diff --git a/build/sysincl/libc-musl-libcxx.yml b/build/sysincl/libc-musl-libcxx.yml deleted file mode 100644 index 539ce8e9aa..0000000000 --- a/build/sysincl/libc-musl-libcxx.yml +++ /dev/null @@ -1,6 +0,0 @@ -- source_filter: "^contrib/libs/musl" - includes: - - inttypes.h: contrib/libs/cxxsupp/libcxx/include/inttypes.h - - string.h: contrib/libs/cxxsupp/libcxx/include/string.h - - stddef.h: contrib/libs/cxxsupp/libcxx/include/stddef.h - - stdint.h: contrib/libs/cxxsupp/libcxx/include/stdint.h diff --git a/build/sysincl/libc-to-compat.yml b/build/sysincl/libc-to-compat.yml deleted file mode 100644 index 19ec9a2d09..0000000000 --- a/build/sysincl/libc-to-compat.yml +++ /dev/null @@ -1,6 +0,0 @@ -# We want musl to resolve itself without these sysincls, but its test must have them -- source_filter: "^(?!contrib/libs/musl).*|^contrib/libs/musl/tests" - includes: - - sys/random.h: "contrib/libs/libc_compat/random/sys/random.h" - - readpassphrase.h: "contrib/libs/libc_compat/include/readpassphrase/readpassphrase.h" - - stdlib.h: "contrib/libs/libc_compat/reallocarray/stdlib.h" diff --git a/build/sysincl/libc-to-musl.yml b/build/sysincl/libc-to-musl.yml deleted file mode 100644 index 5778acefdd..0000000000 --- a/build/sysincl/libc-to-musl.yml +++ /dev/null @@ -1,253 +0,0 @@ -# libc & stl common headers should be resolved to either -# * system libc (e.g. nothing in our repo) -# * system libc++ (e.g. nothing in our repo) -# * libcxx -# * musl -# or some combination of them depending on the build flags. - -# Musl has some internal header replacements. We will just resolve to both. -- source_filter: "^(contrib/libs/musl|contrib/libs/cxxsupp/libcxx/include/__config)" - includes: - - arpa/inet.h: - - contrib/libs/musl/include/arpa/inet.h - - contrib/libs/musl/src/include/arpa/inet.h - - crypt.h: - - contrib/libs/musl/include/crypt.h - - contrib/libs/musl/src/include/crypt.h - - errno.h: - - contrib/libs/musl/include/errno.h - - contrib/libs/musl/src/include/errno.h - - features.h: - - contrib/libs/musl/include/features.h - - contrib/libs/musl/src/include/features.h - - langinfo.h: - - contrib/libs/musl/include/langinfo.h - - contrib/libs/musl/src/include/langinfo.h - - pthread.h: - - contrib/libs/musl/include/pthread.h - - contrib/libs/musl/src/include/pthread.h - - resolv.h: - - contrib/libs/musl/include/resolv.h - - contrib/libs/musl/src/include/resolv.h - - signal.h: - - contrib/libs/musl/include/signal.h - - contrib/libs/musl/src/include/signal.h - - stdio.h: - - contrib/libs/musl/include/stdio.h - - contrib/libs/musl/src/include/stdio.h - - stdlib.h: - - contrib/libs/musl/include/stdlib.h - - contrib/libs/musl/src/include/stdlib.h - - string.h: - - contrib/libs/musl/include/string.h - - contrib/libs/musl/src/include/string.h - - sys/auxv.h: - - contrib/libs/musl/include/sys/auxv.h - - contrib/libs/musl/src/include/sys/auxv.h - - sys/membarrier.h: - - contrib/libs/musl/include/sys/membarrier.h - - contrib/libs/musl/src/include/sys/membarrier.h - - sys/mman.h: - - contrib/libs/musl/include/sys/mman.h - - contrib/libs/musl/src/include/sys/mman.h - - sys/sysinfo.h: - - contrib/libs/musl/include/sys/sysinfo.h - - contrib/libs/musl/src/include/sys/sysinfo.h - - sys/time.h: - - contrib/libs/musl/include/sys/time.h - - contrib/libs/musl/src/include/sys/time.h - - time.h: - - contrib/libs/musl/include/time.h - - contrib/libs/musl/src/include/time.h - - unistd.h: - - contrib/libs/musl/include/unistd.h - - contrib/libs/musl/src/include/unistd.h - - wchar.h: - - contrib/libs/musl/include/wchar.h - - contrib/libs/musl/src/include/wchar.h - - - inttypes.h: contrib/libs/musl/include/inttypes.h - - stddef.h: contrib/libs/musl/include/stddef.h - - stdint.h: contrib/libs/musl/include/stdint.h - - -# We want musl to resolve itself without these sysincls, but its test must have them -- source_filter: "^(?!contrib/libs/musl)|^contrib/libs/musl/tests" - includes: - # libc & stl common headers - - complex.h: contrib/libs/musl/include/complex.h - - ctype.h: contrib/libs/musl/include/ctype.h - - errno.h: contrib/libs/musl/include/errno.h - - float.h: contrib/libs/musl/include/float.h - - inttypes.h: contrib/libs/musl/include/inttypes.h - - limits.h: contrib/libs/musl/include/limits.h - - locale.h: contrib/libs/musl/include/locale.h - - math.h: contrib/libs/musl/include/math.h - - setjmp.h: contrib/libs/musl/include/setjmp.h - - stdbool.h: contrib/libs/musl/include/stdbool.h - - stddef.h: contrib/libs/musl/include/stddef.h - - stdint.h: contrib/libs/musl/include/stdint.h - - stdio.h: contrib/libs/musl/include/stdio.h - - stdlib.h: contrib/libs/musl/include/stdlib.h - - string.h: contrib/libs/musl/include/string.h - - tgmath.h: contrib/libs/musl/include/tgmath.h - - threads.h: contrib/libs/musl/include/threads.h - - wchar.h: contrib/libs/musl/include/wchar.h - - wctype.h: contrib/libs/musl/include/wctype.h - - # Rest of libc headers - - aio.h: contrib/libs/musl/include/aio.h - - alloca.h: contrib/libs/musl/include/alloca.h - - ar.h: contrib/libs/musl/include/ar.h - - arpa/inet.h: contrib/libs/musl/include/arpa/inet.h - - arpa/nameser_compat.h: contrib/libs/musl/include/arpa/nameser_compat.h - - arpa/nameser.h: contrib/libs/musl/include/arpa/nameser.h - - arpa/telnet.h: contrib/libs/musl/include/arpa/telnet.h - - arpa/tftp.h: contrib/libs/musl/include/arpa/tftp.h - - assert.h: contrib/libs/musl/include/assert.h - - byteswap.h: contrib/libs/musl/include/byteswap.h - - cpio.h: contrib/libs/musl/include/cpio.h - - crypt.h: contrib/libs/musl/include/crypt.h - - dirent.h: contrib/libs/musl/include/dirent.h - - dlfcn.h: contrib/libs/musl/include/dlfcn.h - - elf.h: contrib/libs/musl/include/elf.h - - endian.h: contrib/libs/musl/include/endian.h - - err.h: contrib/libs/musl/include/err.h - - fcntl.h: contrib/libs/musl/include/fcntl.h - - features.h: contrib/libs/musl/include/features.h - - fenv.h: contrib/libs/musl/include/fenv.h - - fmtmsg.h: contrib/libs/musl/include/fmtmsg.h - - fnmatch.h: contrib/libs/musl/include/fnmatch.h - - ftw.h: contrib/libs/musl/include/ftw.h - - getopt.h: contrib/libs/musl/include/getopt.h - - glob.h: contrib/libs/musl/include/glob.h - - grp.h: contrib/libs/musl/include/grp.h - - ifaddrs.h: contrib/libs/musl/include/ifaddrs.h - - iso646.h: contrib/libs/musl/include/iso646.h - - langinfo.h: contrib/libs/musl/include/langinfo.h - - lastlog.h: contrib/libs/musl/include/lastlog.h - - libgen.h: contrib/libs/musl/include/libgen.h - - libintl.h: contrib/libs/musl/include/libintl.h - - link.h: contrib/libs/musl/include/link.h - - malloc.h: contrib/libs/musl/include/malloc.h - - memory.h: contrib/libs/musl/include/memory.h - - mntent.h: contrib/libs/musl/include/mntent.h - - monetary.h: contrib/libs/musl/include/monetary.h - - mqueue.h: contrib/libs/musl/include/mqueue.h - - netdb.h: contrib/libs/musl/include/netdb.h - - net/ethernet.h: contrib/libs/musl/include/net/ethernet.h - - net/if_arp.h: contrib/libs/musl/include/net/if_arp.h - - net/if.h: contrib/libs/musl/include/net/if.h - - netinet/ether.h: contrib/libs/musl/include/netinet/ether.h - - netinet/icmp6.h: contrib/libs/musl/include/netinet/icmp6.h - - netinet/if_ether.h: contrib/libs/musl/include/netinet/if_ether.h - - netinet/igmp.h: contrib/libs/musl/include/netinet/igmp.h - - netinet/in.h: contrib/libs/musl/include/netinet/in.h - - netinet/in_systm.h: contrib/libs/musl/include/netinet/in_systm.h - - netinet/ip6.h: contrib/libs/musl/include/netinet/ip6.h - - netinet/ip.h: contrib/libs/musl/include/netinet/ip.h - - netinet/ip_icmp.h: contrib/libs/musl/include/netinet/ip_icmp.h - - netinet/tcp.h: contrib/libs/musl/include/netinet/tcp.h - - netinet/udp.h: contrib/libs/musl/include/netinet/udp.h - - netpacket/packet.h: contrib/libs/musl/include/netpacket/packet.h - - net/route.h: contrib/libs/musl/include/net/route.h - - nl_types.h: contrib/libs/musl/include/nl_types.h - - paths.h: contrib/libs/musl/include/paths.h - - poll.h: contrib/libs/musl/include/poll.h - - pthread.h: contrib/libs/musl/include/pthread.h - - pty.h: contrib/libs/musl/include/pty.h - - pwd.h: contrib/libs/musl/include/pwd.h - - regex.h: contrib/libs/musl/include/regex.h - - resolv.h: contrib/libs/musl/include/resolv.h - - sched.h: contrib/libs/musl/include/sched.h - - scsi/scsi.h: contrib/libs/musl/include/scsi/scsi.h - - search.h: contrib/libs/musl/include/search.h - - semaphore.h: contrib/libs/musl/include/semaphore.h - - shadow.h: contrib/libs/musl/include/shadow.h - - signal.h: contrib/libs/musl/include/signal.h - - spawn.h: contrib/libs/musl/include/spawn.h - - stdalign.h: contrib/libs/musl/include/stdalign.h - - stdarg.h: contrib/libs/musl/include/stdarg.h - - stdio_ext.h: contrib/libs/musl/include/stdio_ext.h - - stdnoreturn.h: contrib/libs/musl/include/stdnoreturn.h - - strings.h: contrib/libs/musl/include/strings.h - - stropts.h: contrib/libs/musl/include/stropts.h - - sys/acct.h: contrib/libs/musl/include/sys/acct.h - - sys/auxv.h: contrib/libs/musl/include/sys/auxv.h - - sys/cachectl.h: contrib/libs/musl/include/sys/cachectl.h - - syscall.h: contrib/libs/musl/include/syscall.h - - sys/dir.h: contrib/libs/musl/include/sys/dir.h - - sys/epoll.h: contrib/libs/musl/include/sys/epoll.h - - sys/errno.h: contrib/libs/musl/include/sys/errno.h - - sys/eventfd.h: contrib/libs/musl/include/sys/eventfd.h - - sysexits.h: contrib/libs/musl/include/sysexits.h - - sys/fcntl.h: contrib/libs/musl/include/sys/fcntl.h - - sys/file.h: contrib/libs/musl/include/sys/file.h - - sys/fsuid.h: contrib/libs/musl/include/sys/fsuid.h - - sys/inotify.h: contrib/libs/musl/include/sys/inotify.h - - sys/ioctl.h: contrib/libs/musl/include/sys/ioctl.h - - sys/io.h: contrib/libs/musl/include/sys/io.h - - sys/ipc.h: contrib/libs/musl/include/sys/ipc.h - - sys/kd.h: contrib/libs/musl/include/sys/kd.h - - syslog.h: contrib/libs/musl/include/syslog.h - - sys/mman.h: contrib/libs/musl/include/sys/mman.h - - sys/mount.h: contrib/libs/musl/include/sys/mount.h - - sys/msg.h: contrib/libs/musl/include/sys/msg.h - - sys/mtio.h: contrib/libs/musl/include/sys/mtio.h - - sys/param.h: contrib/libs/musl/include/sys/param.h - - sys/personality.h: contrib/libs/musl/include/sys/personality.h - - sys/poll.h: contrib/libs/musl/include/sys/poll.h - - sys/prctl.h: contrib/libs/musl/include/sys/prctl.h - - sys/procfs.h: contrib/libs/musl/include/sys/procfs.h - - sys/ptrace.h: contrib/libs/musl/include/sys/ptrace.h - - sys/quota.h: contrib/libs/musl/include/sys/quota.h - - sys/random.h: contrib/libs/musl/include/sys/random.h - - sys/reboot.h: contrib/libs/musl/include/sys/reboot.h - - sys/resource.h: contrib/libs/musl/include/sys/resource.h - - sys/select.h: contrib/libs/musl/include/sys/select.h - - sys/sem.h: contrib/libs/musl/include/sys/sem.h - - sys/sendfile.h: contrib/libs/musl/include/sys/sendfile.h - - sys/shm.h: contrib/libs/musl/include/sys/shm.h - - sys/signalfd.h: contrib/libs/musl/include/sys/signalfd.h - - sys/signal.h: contrib/libs/musl/include/sys/signal.h - - sys/socket.h: contrib/libs/musl/include/sys/socket.h - - sys/soundcard.h: contrib/libs/musl/include/sys/soundcard.h - - sys/statfs.h: contrib/libs/musl/include/sys/statfs.h - - sys/stat.h: contrib/libs/musl/include/sys/stat.h - - sys/statvfs.h: contrib/libs/musl/include/sys/statvfs.h - - sys/stropts.h: contrib/libs/musl/include/sys/stropts.h - - sys/syscall.h: contrib/libs/musl/include/sys/syscall.h - - sys/sysinfo.h: contrib/libs/musl/include/sys/sysinfo.h - - sys/syslog.h: contrib/libs/musl/include/sys/syslog.h - - sys/sysmacros.h: contrib/libs/musl/include/sys/sysmacros.h - - sys/termios.h: contrib/libs/musl/include/sys/termios.h - - sys/timeb.h: contrib/libs/musl/include/sys/timeb.h - - sys/time.h: contrib/libs/musl/include/sys/time.h - - sys/timerfd.h: contrib/libs/musl/include/sys/timerfd.h - - sys/times.h: contrib/libs/musl/include/sys/times.h - - sys/timex.h: contrib/libs/musl/include/sys/timex.h - - sys/ttydefaults.h: contrib/libs/musl/include/sys/ttydefaults.h - - sys/types.h: contrib/libs/musl/include/sys/types.h - - sys/ucontext.h: contrib/libs/musl/include/sys/ucontext.h - - sys/uio.h: contrib/libs/musl/include/sys/uio.h - - sys/un.h: contrib/libs/musl/include/sys/un.h - - sys/user.h: contrib/libs/musl/include/sys/user.h - - sys/utsname.h: contrib/libs/musl/include/sys/utsname.h - - sys/vfs.h: contrib/libs/musl/include/sys/vfs.h - - sys/vt.h: contrib/libs/musl/include/sys/vt.h - - sys/wait.h: contrib/libs/musl/include/sys/wait.h - - sys/xattr.h: contrib/libs/musl/include/sys/xattr.h - - tar.h: contrib/libs/musl/include/tar.h - - termios.h: contrib/libs/musl/include/termios.h - - threads.h: contrib/libs/musl/include/threads.h - - time.h: contrib/libs/musl/include/time.h - - uchar.h: contrib/libs/musl/include/uchar.h - - ucontext.h: contrib/libs/musl/include/ucontext.h - - ulimit.h: contrib/libs/musl/include/ulimit.h - - unistd.h: contrib/libs/musl/include/unistd.h - - utime.h: contrib/libs/musl/include/utime.h - - utmp.h: contrib/libs/musl/include/utmp.h - - utmpx.h: contrib/libs/musl/include/utmpx.h - - values.h: contrib/libs/musl/include/values.h - - wait.h: contrib/libs/musl/include/wait.h - - wordexp.h: contrib/libs/musl/include/wordexp.h diff --git a/build/sysincl/libc-to-nothing.yml b/build/sysincl/libc-to-nothing.yml deleted file mode 100644 index ad4ef9375d..0000000000 --- a/build/sysincl/libc-to-nothing.yml +++ /dev/null @@ -1,161 +0,0 @@ -# We want musl to resolve itself without these sysincls, but its test must have them -- source_filter: "^(?!contrib/libs/musl).*|^contrib/libs/musl/tests" - includes: - - aio.h - - alloca.h - - ar.h - - arpa/inet.h - - arpa/nameser_compat.h - - arpa/nameser.h - - arpa/telnet.h - - arpa/tftp.h - - assert.h - - byteswap.h - - cpio.h - - crypt.h - - dirent.h - - dlfcn.h - - elf.h - - endian.h - - err.h - - fcntl.h - - features.h - - fenv.h - - fmtmsg.h - - fnmatch.h - - ftw.h - - getopt.h - - glob.h - - grp.h - - iconv.h - - ifaddrs.h - - iso646.h - - langinfo.h - - lastlog.h - - libgen.h - - libintl.h - - link.h - - malloc.h - - memory.h - - mntent.h - - monetary.h - - mqueue.h - - netdb.h - - net/ethernet.h - - net/if_arp.h - - net/if_ppp.h - - net/if.h - - netinet/ether.h - - netinet/icmp6.h - - netinet/if_ether.h - - netinet/igmp.h - - netinet/in.h - - netinet/in_systm.h - - netinet/ip6.h - - netinet/ip.h - - netinet/ip_icmp.h - - netinet/tcp.h - - netinet/udp.h - - netpacket/packet.h - - netrom/netrom.h - - net/route.h - - nl_types.h - - paths.h - - poll.h - - pthread.h - - pty.h - - pwd.h - - regex.h - - resolv.h - - sched.h - - scsi/scsi.h - - search.h - - semaphore.h - - shadow.h - - signal.h - - spawn.h - - stdalign.h - - stdarg.h - - stdatomic.h - - stdio_ext.h - - stdnoreturn.h - - strings.h - - stropts.h - - sys/acct.h - - sys/auxv.h - - sys/cachectl.h - - syscall.h - - sys/dir.h - - sys/epoll.h - - sys/errno.h - - sys/eventfd.h - - sysexits.h - - sys/fcntl.h - - sys/file.h - - sys/fsuid.h - - sys/inotify.h - - sys/ioctl.h - - sys/io.h - - sys/ipc.h - - sys/kd.h - - syslog.h - - sys/mman.h - - sys/mount.h - - sys/msg.h - - sys/mtio.h - - sys/param.h - - sys/personality.h - - sys/poll.h - - sys/prctl.h - - sys/procfs.h - - sys/ptrace.h - - sys/quota.h - - sys/reboot.h - - sys/resource.h - - sys/select.h - - sys/sem.h - - sys/sendfile.h - - sys/shm.h - - sys/signalfd.h - - sys/signal.h - - sys/socket.h - - sys/soundcard.h - - sys/statfs.h - - sys/stat.h - - sys/statvfs.h - - sys/stropts.h - - sys/syscall.h - - sys/sysinfo.h - - sys/syslog.h - - sys/sysmacros.h - - sys/termios.h - - sys/timeb.h - - sys/time.h - - sys/timerfd.h - - sys/times.h - - sys/timex.h - - sys/ttydefaults.h - - sys/types.h - - sys/ucontext.h - - sys/uio.h - - sys/un.h - - sys/user.h - - sys/utsname.h - - sys/vfs.h - - sys/vt.h - - sys/wait.h - - sys/xattr.h - - tar.h - - termios.h - - threads.h - - time.h - - uchar.h - - ucontext.h - - ulimit.h - - unistd.h - - utime.h - - utmp.h - - utmpx.h - - values.h - - wait.h - - wordexp.h diff --git a/build/sysincl/linux-headers.yml b/build/sysincl/linux-headers.yml deleted file mode 100644 index 2b1d548175..0000000000 --- a/build/sysincl/linux-headers.yml +++ /dev/null @@ -1,1122 +0,0 @@ -# Generated by devtools/yamaker. -- includes: - - asm-generic/auxvec.h - - asm-generic/bitsperlong.h - - asm-generic/bpf_perf_event.h - - asm-generic/errno-base.h - - asm-generic/errno.h - - asm-generic/fcntl.h - - asm-generic/hugetlb_encode.h - - asm-generic/int-l64.h - - asm-generic/int-ll64.h - - asm-generic/ioctl.h - - asm-generic/ioctls.h - - asm-generic/ipcbuf.h - - asm-generic/kvm_para.h - - asm-generic/mman-common.h - - asm-generic/mman.h - - asm-generic/msgbuf.h - - asm-generic/param.h - - asm-generic/poll.h - - asm-generic/posix_types.h - - asm-generic/resource.h - - asm-generic/sembuf.h - - asm-generic/setup.h - - asm-generic/shmbuf.h - - asm-generic/siginfo.h - - asm-generic/signal-defs.h - - asm-generic/signal.h - - asm-generic/socket.h - - asm-generic/sockios.h - - asm-generic/stat.h - - asm-generic/statfs.h - - asm-generic/swab.h - - asm-generic/termbits.h - - asm-generic/termios.h - - asm-generic/types.h - - asm-generic/ucontext.h - - asm-generic/unistd.h - - asm/a.out.h - - asm/a.out_x86.h - - asm/auxvec.h - - asm/auxvec_arm.h - - asm/auxvec_arm64.h - - asm/auxvec_powerpc.h - - asm/auxvec_x86.h - - asm/bitsperlong.h - - asm/bitsperlong_arm.h - - asm/bitsperlong_arm64.h - - asm/bitsperlong_powerpc.h - - asm/bitsperlong_x86.h - - asm/boot.h - - asm/boot_x86.h - - asm/bootparam.h - - asm/bootparam_x86.h - - asm/bootx.h - - asm/bootx_powerpc.h - - asm/bpf_perf_event.h - - asm/bpf_perf_event_arm.h - - asm/bpf_perf_event_arm64.h - - asm/bpf_perf_event_powerpc.h - - asm/bpf_perf_event_x86.h - - asm/byteorder.h - - asm/byteorder_arm.h - - asm/byteorder_arm64.h - - asm/byteorder_powerpc.h - - asm/byteorder_x86.h - - asm/cputable.h - - asm/cputable_powerpc.h - - asm/debugreg.h - - asm/debugreg_x86.h - - asm/e820.h - - asm/e820_x86.h - - asm/eeh.h - - asm/eeh_powerpc.h - - asm/elf.h - - asm/elf_powerpc.h - - asm/epapr_hcalls.h - - asm/epapr_hcalls_powerpc.h - - asm/errno.h - - asm/errno_arm.h - - asm/errno_arm64.h - - asm/errno_powerpc.h - - asm/errno_x86.h - - asm/fcntl.h - - asm/fcntl_arm.h - - asm/fcntl_arm64.h - - asm/fcntl_powerpc.h - - asm/fcntl_x86.h - - asm/hw_breakpoint.h - - asm/hw_breakpoint_x86.h - - asm/hwcap.h - - asm/hwcap2.h - - asm/hwcap2_x86.h - - asm/hwcap_arm.h - - asm/hwcap_arm64.h - - asm/ioctl.h - - asm/ioctl_arm.h - - asm/ioctl_arm64.h - - asm/ioctl_powerpc.h - - asm/ioctl_x86.h - - asm/ioctls.h - - asm/ioctls_arm.h - - asm/ioctls_arm64.h - - asm/ioctls_powerpc.h - - asm/ioctls_x86.h - - asm/ipcbuf.h - - asm/ipcbuf_arm.h - - asm/ipcbuf_arm64.h - - asm/ipcbuf_powerpc.h - - asm/ipcbuf_x86.h - - asm/ist.h - - asm/ist_x86.h - - asm/kvm.h - - asm/kvm_arm64.h - - asm/kvm_para.h - - asm/kvm_para_arm.h - - asm/kvm_para_arm64.h - - asm/kvm_para_powerpc.h - - asm/kvm_para_x86.h - - asm/kvm_perf.h - - asm/kvm_perf_x86.h - - asm/kvm_powerpc.h - - asm/kvm_x86.h - - asm/ldt.h - - asm/ldt_x86.h - - asm/mce.h - - asm/mce_x86.h - - asm/mman.h - - asm/mman_arm.h - - asm/mman_arm64.h - - asm/mman_powerpc.h - - asm/mman_x86.h - - asm/msgbuf.h - - asm/msgbuf_arm.h - - asm/msgbuf_arm64.h - - asm/msgbuf_powerpc.h - - asm/msgbuf_x86.h - - asm/msr.h - - asm/msr_x86.h - - asm/mtrr.h - - asm/mtrr_x86.h - - asm/nvram.h - - asm/nvram_powerpc.h - - asm/opal-prd.h - - asm/opal-prd_powerpc.h - - asm/param.h - - asm/param_arm.h - - asm/param_arm64.h - - asm/param_powerpc.h - - asm/param_x86.h - - asm/perf_event.h - - asm/perf_event_powerpc.h - - asm/perf_regs.h - - asm/perf_regs_arm.h - - asm/perf_regs_arm64.h - - asm/perf_regs_powerpc.h - - asm/perf_regs_x86.h - - asm/poll.h - - asm/posix_types.h - - asm/posix_types_32.h - - asm/posix_types_32_x86.h - - asm/posix_types_64.h - - asm/posix_types_64_x86.h - - asm/posix_types_arm.h - - asm/posix_types_arm64.h - - asm/posix_types_powerpc.h - - asm/posix_types_x32.h - - asm/posix_types_x32_x86.h - - asm/posix_types_x86.h - - asm/prctl.h - - asm/prctl_x86.h - - asm/processor-flags.h - - asm/processor-flags_x86.h - - asm/ps3fb.h - - asm/ps3fb_powerpc.h - - asm/ptrace-abi.h - - asm/ptrace-abi_x86.h - - asm/ptrace.h - - asm/ptrace_arm.h - - asm/ptrace_arm64.h - - asm/ptrace_powerpc.h - - asm/ptrace_x86.h - - asm/resource.h - - asm/sembuf.h - - asm/sembuf_arm.h - - asm/sembuf_arm64.h - - asm/sembuf_powerpc.h - - asm/sembuf_x86.h - - asm/setup.h - - asm/setup_arm.h - - asm/setup_arm64.h - - asm/setup_powerpc.h - - asm/setup_x86.h - - asm/shmbuf.h - - asm/shmbuf_arm.h - - asm/shmbuf_arm64.h - - asm/shmbuf_powerpc.h - - asm/shmbuf_x86.h - - asm/sigcontext.h - - asm/sigcontext32.h - - asm/sigcontext32_x86.h - - asm/sigcontext_arm.h - - asm/sigcontext_arm64.h - - asm/sigcontext_powerpc.h - - asm/sigcontext_x86.h - - asm/siginfo.h - - asm/siginfo_arm.h - - asm/siginfo_arm64.h - - asm/siginfo_powerpc.h - - asm/siginfo_x86.h - - asm/signal.h - - asm/signal_arm.h - - asm/signal_arm64.h - - asm/signal_powerpc.h - - asm/signal_x86.h - - asm/socket.h - - asm/socket_arm.h - - asm/socket_arm64.h - - asm/socket_powerpc.h - - asm/socket_x86.h - - asm/sockios.h - - asm/spu_info.h - - asm/spu_info_powerpc.h - - asm/stat.h - - asm/stat_arm.h - - asm/stat_arm64.h - - asm/stat_powerpc.h - - asm/stat_x86.h - - asm/statfs.h - - asm/statfs_arm.h - - asm/statfs_arm64.h - - asm/statfs_powerpc.h - - asm/statfs_x86.h - - asm/sve_context.h - - asm/sve_context_arm64.h - - asm/svm.h - - asm/svm_x86.h - - asm/swab.h - - asm/swab_arm.h - - asm/swab_arm64.h - - asm/swab_powerpc.h - - asm/swab_x86.h - - asm/termbits.h - - asm/termbits_arm.h - - asm/termbits_arm64.h - - asm/termbits_powerpc.h - - asm/termbits_x86.h - - asm/termios.h - - asm/termios_arm.h - - asm/termios_arm64.h - - asm/termios_powerpc.h - - asm/termios_x86.h - - asm/tm.h - - asm/tm_powerpc.h - - asm/types.h - - asm/types_arm.h - - asm/types_arm64.h - - asm/types_powerpc.h - - asm/types_x86.h - - asm/ucontext.h - - asm/ucontext_arm64.h - - asm/ucontext_powerpc.h - - asm/ucontext_x86.h - - asm/unistd-common.h - - asm/unistd-common_arm.h - - asm/unistd-eabi.h - - asm/unistd-eabi_arm.h - - asm/unistd-oabi.h - - asm/unistd-oabi_arm.h - - asm/unistd.h - - asm/unistd_32.h - - asm/unistd_32_powerpc.h - - asm/unistd_32_x86.h - - asm/unistd_64.h - - asm/unistd_64_powerpc.h - - asm/unistd_64_x86.h - - asm/unistd_arm.h - - asm/unistd_arm64.h - - asm/unistd_powerpc.h - - asm/unistd_x32.h - - asm/unistd_x32_x86.h - - asm/unistd_x86.h - - asm/vm86.h - - asm/vm86_x86.h - - asm/vmx.h - - asm/vmx_x86.h - - asm/vsyscall.h - - asm/vsyscall_x86.h - - drm/amdgpu_drm.h - - drm/armada_drm.h - - drm/drm.h - - drm/drm_fourcc.h - - drm/drm_mode.h - - drm/drm_sarea.h - - drm/etnaviv_drm.h - - drm/exynos_drm.h - - drm/i810_drm.h - - drm/i915_drm.h - - drm/lima_drm.h - - drm/mga_drm.h - - drm/msm_drm.h - - drm/nouveau_drm.h - - drm/omap_drm.h - - drm/panfrost_drm.h - - drm/qxl_drm.h - - drm/r128_drm.h - - drm/radeon_drm.h - - drm/savage_drm.h - - drm/sis_drm.h - - drm/tegra_drm.h - - drm/v3d_drm.h - - drm/vc4_drm.h - - drm/vgem_drm.h - - drm/via_drm.h - - drm/virtgpu_drm.h - - drm/vmwgfx_drm.h - - linux/a.out.h - - linux/a.out_x86.h - - linux/acct.h - - linux/adb.h - - linux/adfs_fs.h - - linux/affs_hardblocks.h - - linux/agpgart.h - - linux/aio_abi.h - - linux/am437x-vpfe.h - - linux/android/binder.h - - linux/android/binderfs.h - - linux/apm_bios.h - - linux/arcfb.h - - linux/arm_sdei.h - - linux/aspeed-lpc-ctrl.h - - linux/aspeed-p2a-ctrl.h - - linux/atalk.h - - linux/atm.h - - linux/atm_eni.h - - linux/atm_he.h - - linux/atm_idt77105.h - - linux/atm_nicstar.h - - linux/atm_tcp.h - - linux/atm_zatm.h - - linux/atmapi.h - - linux/atmarp.h - - linux/atmbr2684.h - - linux/atmclip.h - - linux/atmdev.h - - linux/atmioc.h - - linux/atmlec.h - - linux/atmmpc.h - - linux/atmppp.h - - linux/atmsap.h - - linux/atmsvc.h - - linux/audit.h - - linux/auto_dev-ioctl.h - - linux/auto_fs.h - - linux/auto_fs4.h - - linux/auxvec.h - - linux/ax25.h - - linux/batadv_packet.h - - linux/batman_adv.h - - linux/baycom.h - - linux/bcache.h - - linux/bcm933xx_hcs.h - - linux/bfs_fs.h - - linux/binfmts.h - - linux/blkpg.h - - linux/blktrace_api.h - - linux/blkzoned.h - - linux/bpf.h - - linux/bpf_common.h - - linux/bpf_perf_event.h - - linux/bpfilter.h - - linux/bpqether.h - - linux/bsg.h - - linux/bt-bmc.h - - linux/btf.h - - linux/btrfs.h - - linux/btrfs_tree.h - - linux/byteorder/big_endian.h - - linux/byteorder/little_endian.h - - linux/caif/caif_socket.h - - linux/caif/if_caif.h - - linux/can.h - - linux/can/bcm.h - - linux/can/error.h - - linux/can/gw.h - - linux/can/j1939.h - - linux/can/netlink.h - - linux/can/raw.h - - linux/can/vxcan.h - - linux/capability.h - - linux/capi.h - - linux/cciss_defs.h - - linux/cciss_ioctl.h - - linux/cdrom.h - - linux/cec-funcs.h - - linux/cec.h - - linux/cgroupstats.h - - linux/chio.h - - linux/cifs/cifs_mount.h - - linux/cm4000_cs.h - - linux/cn_proc.h - - linux/coda.h - - linux/coff.h - - linux/connector.h - - linux/const.h - - linux/coresight-stm.h - - linux/cramfs_fs.h - - linux/cryptouser.h - - linux/cuda.h - - linux/cyclades.h - - linux/cycx_cfm.h - - linux/dcbnl.h - - linux/dccp.h - - linux/devlink.h - - linux/dlm.h - - linux/dlm_device.h - - linux/dlm_netlink.h - - linux/dlm_plock.h - - linux/dlmconstants.h - - linux/dm-ioctl.h - - linux/dm-log-userspace.h - - linux/dma-buf.h - - linux/dma-heap.h - - linux/dn.h - - linux/dns_resolver.h - - linux/dqblk_xfs.h - - linux/dvb/audio.h - - linux/dvb/ca.h - - linux/dvb/dmx.h - - linux/dvb/frontend.h - - linux/dvb/net.h - - linux/dvb/osd.h - - linux/dvb/version.h - - linux/dvb/video.h - - linux/edd.h - - linux/efs_fs_sb.h - - linux/elf-em.h - - linux/elf-fdpic.h - - linux/elf.h - - linux/elfcore.h - - linux/errno.h - - linux/errqueue.h - - linux/erspan.h - - linux/ethtool.h - - linux/ethtool_netlink.h - - linux/eventpoll.h - - linux/fadvise.h - - linux/falloc.h - - linux/fanotify.h - - linux/fb.h - - linux/fcntl.h - - linux/fd.h - - linux/fdreg.h - - linux/fib_rules.h - - linux/fiemap.h - - linux/filter.h - - linux/firewire-cdev.h - - linux/firewire-constants.h - - linux/fou.h - - linux/fpga-dfl.h - - linux/fs.h - - linux/fscrypt.h - - linux/fsi.h - - linux/fsl_hypervisor.h - - linux/fsmap.h - - linux/fsverity.h - - linux/fuse.h - - linux/futex.h - - linux/gameport.h - - linux/gen_stats.h - - linux/genetlink.h - - linux/genwqe/genwqe_card.h - - linux/gfs2_ondisk.h - - linux/gpio.h - - linux/gsmmux.h - - linux/gtp.h - - linux/hash_info.h - - linux/hdlc.h - - linux/hdlc/ioctl.h - - linux/hdlcdrv.h - - linux/hdreg.h - - linux/hid.h - - linux/hiddev.h - - linux/hidraw.h - - linux/hpet.h - - linux/hsi/cs-protocol.h - - linux/hsi/hsi_char.h - - linux/hsr_netlink.h - - linux/hw_breakpoint.h - - linux/hyperv.h - - linux/i2c-dev.h - - linux/i2c.h - - linux/i2o-dev.h - - linux/i8k.h - - linux/icmp.h - - linux/icmpv6.h - - linux/idxd.h - - linux/if.h - - linux/if_addr.h - - linux/if_addrlabel.h - - linux/if_alg.h - - linux/if_arcnet.h - - linux/if_arp.h - - linux/if_bonding.h - - linux/if_bridge.h - - linux/if_cablemodem.h - - linux/if_eql.h - - linux/if_ether.h - - linux/if_fc.h - - linux/if_fddi.h - - linux/if_frad.h - - linux/if_hippi.h - - linux/if_infiniband.h - - linux/if_link.h - - linux/if_ltalk.h - - linux/if_macsec.h - - linux/if_packet.h - - linux/if_phonet.h - - linux/if_plip.h - - linux/if_ppp.h - - linux/if_pppol2tp.h - - linux/if_pppox.h - - linux/if_slip.h - - linux/if_team.h - - linux/if_tun.h - - linux/if_tunnel.h - - linux/if_vlan.h - - linux/if_x25.h - - linux/if_xdp.h - - linux/ife.h - - linux/igmp.h - - linux/iio/events.h - - linux/iio/types.h - - linux/ila.h - - linux/in.h - - linux/in6.h - - linux/in_route.h - - linux/inet_diag.h - - linux/inotify.h - - linux/input-event-codes.h - - linux/input.h - - linux/io_uring.h - - linux/ioctl.h - - linux/iommu.h - - linux/ip.h - - linux/ip6_tunnel.h - - linux/ip_vs.h - - linux/ipc.h - - linux/ipmi.h - - linux/ipmi_bmc.h - - linux/ipmi_msgdefs.h - - linux/ipsec.h - - linux/ipv6.h - - linux/ipv6_route.h - - linux/ipx.h - - linux/irqnr.h - - linux/isdn/capicmd.h - - linux/iso_fs.h - - linux/isst_if.h - - linux/ivtv.h - - linux/ivtvfb.h - - linux/jffs2.h - - linux/joystick.h - - linux/kcm.h - - linux/kcmp.h - - linux/kcov.h - - linux/kd.h - - linux/kdev_t.h - - linux/kernel-page-flags.h - - linux/kernel.h - - linux/kernelcapi.h - - linux/kexec.h - - linux/keyboard.h - - linux/keyctl.h - - linux/kfd_ioctl.h - - linux/kvm.h - - linux/kvm_arm64.h - - linux/kvm_para.h - - linux/kvm_powerpc.h - - linux/kvm_x86.h - - linux/l2tp.h - - linux/libc-compat.h - - linux/lightnvm.h - - linux/limits.h - - linux/lirc.h - - linux/llc.h - - linux/loop.h - - linux/lp.h - - linux/lwtunnel.h - - linux/magic.h - - linux/major.h - - linux/map_to_7segment.h - - linux/matroxfb.h - - linux/max2175.h - - linux/mdio.h - - linux/media-bus-format.h - - linux/media.h - - linux/mei.h - - linux/membarrier.h - - linux/memfd.h - - linux/mempolicy.h - - linux/meye.h - - linux/mic_common.h - - linux/mic_ioctl.h - - linux/mii.h - - linux/minix_fs.h - - linux/mman.h - - linux/mmc/ioctl.h - - linux/mmtimer.h - - linux/module.h - - linux/mount.h - - linux/mpls.h - - linux/mpls_iptunnel.h - - linux/mptcp.h - - linux/mqueue.h - - linux/mroute.h - - linux/mroute6.h - - linux/msdos_fs.h - - linux/msg.h - - linux/mtio.h - - linux/n_r3964.h - - linux/nbd-netlink.h - - linux/nbd.h - - linux/ncsi.h - - linux/ndctl.h - - linux/neighbour.h - - linux/net.h - - linux/net_dropmon.h - - linux/net_namespace.h - - linux/net_tstamp.h - - linux/netconf.h - - linux/netdevice.h - - linux/netfilter.h - - linux/netfilter/ipset/ip_set.h - - linux/netfilter/ipset/ip_set_bitmap.h - - linux/netfilter/ipset/ip_set_hash.h - - linux/netfilter/ipset/ip_set_list.h - - linux/netfilter/nf_conntrack_common.h - - linux/netfilter/nf_conntrack_ftp.h - - linux/netfilter/nf_conntrack_sctp.h - - linux/netfilter/nf_conntrack_tcp.h - - linux/netfilter/nf_conntrack_tuple_common.h - - linux/netfilter/nf_log.h - - linux/netfilter/nf_nat.h - - linux/netfilter/nf_synproxy.h - - linux/netfilter/nf_tables.h - - linux/netfilter/nf_tables_compat.h - - linux/netfilter/nfnetlink.h - - linux/netfilter/nfnetlink_acct.h - - linux/netfilter/nfnetlink_compat.h - - linux/netfilter/nfnetlink_conntrack.h - - linux/netfilter/nfnetlink_cthelper.h - - linux/netfilter/nfnetlink_cttimeout.h - - linux/netfilter/nfnetlink_log.h - - linux/netfilter/nfnetlink_osf.h - - linux/netfilter/nfnetlink_queue.h - - linux/netfilter/x_tables.h - - linux/netfilter/xt_AUDIT.h - - linux/netfilter/xt_CHECKSUM.h - - linux/netfilter/xt_CLASSIFY.h - - linux/netfilter/xt_CONNMARK.h - - linux/netfilter/xt_CONNSECMARK.h - - linux/netfilter/xt_CT.h - - linux/netfilter/xt_DSCP.h - - linux/netfilter/xt_HMARK.h - - linux/netfilter/xt_IDLETIMER.h - - linux/netfilter/xt_LED.h - - linux/netfilter/xt_LOG.h - - linux/netfilter/xt_MARK.h - - linux/netfilter/xt_NFLOG.h - - linux/netfilter/xt_NFQUEUE.h - - linux/netfilter/xt_RATEEST.h - - linux/netfilter/xt_SECMARK.h - - linux/netfilter/xt_SYNPROXY.h - - linux/netfilter/xt_TCPMSS.h - - linux/netfilter/xt_TCPOPTSTRIP.h - - linux/netfilter/xt_TEE.h - - linux/netfilter/xt_TPROXY.h - - linux/netfilter/xt_addrtype.h - - linux/netfilter/xt_bpf.h - - linux/netfilter/xt_cgroup.h - - linux/netfilter/xt_cluster.h - - linux/netfilter/xt_comment.h - - linux/netfilter/xt_connbytes.h - - linux/netfilter/xt_connlabel.h - - linux/netfilter/xt_connlimit.h - - linux/netfilter/xt_connmark.h - - linux/netfilter/xt_conntrack.h - - linux/netfilter/xt_cpu.h - - linux/netfilter/xt_dccp.h - - linux/netfilter/xt_devgroup.h - - linux/netfilter/xt_dscp.h - - linux/netfilter/xt_ecn.h - - linux/netfilter/xt_esp.h - - linux/netfilter/xt_hashlimit.h - - linux/netfilter/xt_helper.h - - linux/netfilter/xt_ipcomp.h - - linux/netfilter/xt_iprange.h - - linux/netfilter/xt_ipvs.h - - linux/netfilter/xt_l2tp.h - - linux/netfilter/xt_length.h - - linux/netfilter/xt_limit.h - - linux/netfilter/xt_mac.h - - linux/netfilter/xt_mark.h - - linux/netfilter/xt_multiport.h - - linux/netfilter/xt_nfacct.h - - linux/netfilter/xt_osf.h - - linux/netfilter/xt_owner.h - - linux/netfilter/xt_physdev.h - - linux/netfilter/xt_pkttype.h - - linux/netfilter/xt_policy.h - - linux/netfilter/xt_quota.h - - linux/netfilter/xt_rateest.h - - linux/netfilter/xt_realm.h - - linux/netfilter/xt_recent.h - - linux/netfilter/xt_rpfilter.h - - linux/netfilter/xt_sctp.h - - linux/netfilter/xt_set.h - - linux/netfilter/xt_socket.h - - linux/netfilter/xt_state.h - - linux/netfilter/xt_statistic.h - - linux/netfilter/xt_string.h - - linux/netfilter/xt_tcpmss.h - - linux/netfilter/xt_tcpudp.h - - linux/netfilter/xt_time.h - - linux/netfilter/xt_u32.h - - linux/netfilter_arp.h - - linux/netfilter_arp/arp_tables.h - - linux/netfilter_arp/arpt_mangle.h - - linux/netfilter_bridge.h - - linux/netfilter_bridge/ebt_802_3.h - - linux/netfilter_bridge/ebt_among.h - - linux/netfilter_bridge/ebt_arp.h - - linux/netfilter_bridge/ebt_arpreply.h - - linux/netfilter_bridge/ebt_ip.h - - linux/netfilter_bridge/ebt_ip6.h - - linux/netfilter_bridge/ebt_limit.h - - linux/netfilter_bridge/ebt_log.h - - linux/netfilter_bridge/ebt_mark_m.h - - linux/netfilter_bridge/ebt_mark_t.h - - linux/netfilter_bridge/ebt_nat.h - - linux/netfilter_bridge/ebt_nflog.h - - linux/netfilter_bridge/ebt_pkttype.h - - linux/netfilter_bridge/ebt_redirect.h - - linux/netfilter_bridge/ebt_stp.h - - linux/netfilter_bridge/ebt_vlan.h - - linux/netfilter_bridge/ebtables.h - - linux/netfilter_decnet.h - - linux/netfilter_ipv4.h - - linux/netfilter_ipv4/ip_tables.h - - linux/netfilter_ipv4/ipt_CLUSTERIP.h - - linux/netfilter_ipv4/ipt_ECN.h - - linux/netfilter_ipv4/ipt_LOG.h - - linux/netfilter_ipv4/ipt_REJECT.h - - linux/netfilter_ipv4/ipt_TTL.h - - linux/netfilter_ipv4/ipt_ah.h - - linux/netfilter_ipv4/ipt_ecn.h - - linux/netfilter_ipv4/ipt_ttl.h - - linux/netfilter_ipv6.h - - linux/netfilter_ipv6/ip6_tables.h - - linux/netfilter_ipv6/ip6t_HL.h - - linux/netfilter_ipv6/ip6t_LOG.h - - linux/netfilter_ipv6/ip6t_NPT.h - - linux/netfilter_ipv6/ip6t_REJECT.h - - linux/netfilter_ipv6/ip6t_ah.h - - linux/netfilter_ipv6/ip6t_frag.h - - linux/netfilter_ipv6/ip6t_hl.h - - linux/netfilter_ipv6/ip6t_ipv6header.h - - linux/netfilter_ipv6/ip6t_mh.h - - linux/netfilter_ipv6/ip6t_opts.h - - linux/netfilter_ipv6/ip6t_rt.h - - linux/netfilter_ipv6/ip6t_srh.h - - linux/netlink.h - - linux/netlink_diag.h - - linux/netrom.h - - linux/nexthop.h - - linux/nfc.h - - linux/nfs.h - - linux/nfs2.h - - linux/nfs3.h - - linux/nfs4.h - - linux/nfs4_mount.h - - linux/nfs_fs.h - - linux/nfs_idmap.h - - linux/nfs_mount.h - - linux/nfsacl.h - - linux/nfsd/cld.h - - linux/nfsd/debug.h - - linux/nfsd/export.h - - linux/nfsd/nfsfh.h - - linux/nfsd/stats.h - - linux/nilfs2_api.h - - linux/nilfs2_ondisk.h - - linux/nl80211.h - - linux/nsfs.h - - linux/nubus.h - - linux/nvme_ioctl.h - - linux/nvram.h - - linux/omap3isp.h - - linux/omapfb.h - - linux/oom.h - - linux/openat2.h - - linux/openvswitch.h - - linux/packet_diag.h - - linux/param.h - - linux/parport.h - - linux/patchkey.h - - linux/pci.h - - linux/pci_regs.h - - linux/pcitest.h - - linux/perf_event.h - - linux/personality.h - - linux/pfkeyv2.h - - linux/pg.h - - linux/phantom.h - - linux/phonet.h - - linux/pkt_cls.h - - linux/pkt_sched.h - - linux/pktcdvd.h - - linux/pmu.h - - linux/poll.h - - linux/posix_acl.h - - linux/posix_acl_xattr.h - - linux/posix_types.h - - linux/ppdev.h - - linux/ppp-comp.h - - linux/ppp-ioctl.h - - linux/ppp_defs.h - - linux/pps.h - - linux/pr.h - - linux/prctl.h - - linux/psample.h - - linux/psci.h - - linux/psp-sev.h - - linux/ptp_clock.h - - linux/ptrace.h - - linux/qemu_fw_cfg.h - - linux/qnx4_fs.h - - linux/qnxtypes.h - - linux/qrtr.h - - linux/quota.h - - linux/radeonfb.h - - linux/raid/md_p.h - - linux/raid/md_u.h - - linux/random.h - - linux/raw.h - - linux/rds.h - - linux/reboot.h - - linux/reiserfs_fs.h - - linux/reiserfs_xattr.h - - linux/resource.h - - linux/rfkill.h - - linux/rio_cm_cdev.h - - linux/rio_mport_cdev.h - - linux/romfs_fs.h - - linux/rose.h - - linux/route.h - - linux/rpl.h - - linux/rpl_iptunnel.h - - linux/rpmsg.h - - linux/rseq.h - - linux/rtc.h - - linux/rtnetlink.h - - linux/rxrpc.h - - linux/scc.h - - linux/sched.h - - linux/sched/types.h - - linux/scif_ioctl.h - - linux/screen_info.h - - linux/sctp.h - - linux/sdla.h - - linux/seccomp.h - - linux/securebits.h - - linux/sed-opal.h - - linux/seg6.h - - linux/seg6_genl.h - - linux/seg6_hmac.h - - linux/seg6_iptunnel.h - - linux/seg6_local.h - - linux/selinux_netlink.h - - linux/sem.h - - linux/serial.h - - linux/serial_core.h - - linux/serial_reg.h - - linux/serio.h - - linux/shm.h - - linux/signal.h - - linux/signalfd.h - - linux/smc.h - - linux/smc_diag.h - - linux/smiapp.h - - linux/snmp.h - - linux/sock_diag.h - - linux/socket.h - - linux/sockios.h - - linux/sonet.h - - linux/sonypi.h - - linux/sound.h - - linux/soundcard.h - - linux/spi/spidev.h - - linux/stat.h - - linux/stddef.h - - linux/stm.h - - linux/string.h - - linux/sunrpc/debug.h - - linux/suspend_ioctls.h - - linux/swab.h - - linux/switchtec_ioctl.h - - linux/sync_file.h - - linux/synclink.h - - linux/sysctl.h - - linux/sysinfo.h - - linux/target_core_user.h - - linux/taskstats.h - - linux/tc_act/tc_bpf.h - - linux/tc_act/tc_connmark.h - - linux/tc_act/tc_csum.h - - linux/tc_act/tc_ct.h - - linux/tc_act/tc_ctinfo.h - - linux/tc_act/tc_defact.h - - linux/tc_act/tc_gact.h - - linux/tc_act/tc_ife.h - - linux/tc_act/tc_ipt.h - - linux/tc_act/tc_mirred.h - - linux/tc_act/tc_mpls.h - - linux/tc_act/tc_nat.h - - linux/tc_act/tc_pedit.h - - linux/tc_act/tc_sample.h - - linux/tc_act/tc_skbedit.h - - linux/tc_act/tc_skbmod.h - - linux/tc_act/tc_tunnel_key.h - - linux/tc_act/tc_vlan.h - - linux/tc_ematch/tc_em_cmp.h - - linux/tc_ematch/tc_em_ipt.h - - linux/tc_ematch/tc_em_meta.h - - linux/tc_ematch/tc_em_nbyte.h - - linux/tc_ematch/tc_em_text.h - - linux/tcp.h - - linux/tcp_metrics.h - - linux/tee.h - - linux/termios.h - - linux/thermal.h - - linux/time.h - - linux/time_types.h - - linux/timerfd.h - - linux/times.h - - linux/timex.h - - linux/tiocl.h - - linux/tipc.h - - linux/tipc_config.h - - linux/tipc_netlink.h - - linux/tipc_sockets_diag.h - - linux/tls.h - - linux/toshiba.h - - linux/tty.h - - linux/tty_flags.h - - linux/types.h - - linux/udf_fs_i.h - - linux/udmabuf.h - - linux/udp.h - - linux/uhid.h - - linux/uinput.h - - linux/uio.h - - linux/uleds.h - - linux/ultrasound.h - - linux/um_timetravel.h - - linux/un.h - - linux/unistd.h - - linux/unix_diag.h - - linux/usb/audio.h - - linux/usb/cdc-wdm.h - - linux/usb/cdc.h - - linux/usb/ch11.h - - linux/usb/ch9.h - - linux/usb/charger.h - - linux/usb/functionfs.h - - linux/usb/g_printer.h - - linux/usb/g_uvc.h - - linux/usb/gadgetfs.h - - linux/usb/midi.h - - linux/usb/raw_gadget.h - - linux/usb/tmc.h - - linux/usb/video.h - - linux/usbdevice_fs.h - - linux/usbip.h - - linux/userfaultfd.h - - linux/userio.h - - linux/utime.h - - linux/utsname.h - - linux/uuid.h - - linux/uvcvideo.h - - linux/v4l2-common.h - - linux/v4l2-controls.h - - linux/v4l2-dv-timings.h - - linux/v4l2-mediabus.h - - linux/v4l2-subdev.h - - linux/vbox_err.h - - linux/vbox_vmmdev_types.h - - linux/vboxguest.h - - linux/version.h - - linux/veth.h - - linux/vfio.h - - linux/vfio_ccw.h - - linux/vhost.h - - linux/vhost_types.h - - linux/videodev2.h - - linux/virtio_9p.h - - linux/virtio_balloon.h - - linux/virtio_blk.h - - linux/virtio_config.h - - linux/virtio_console.h - - linux/virtio_crypto.h - - linux/virtio_fs.h - - linux/virtio_gpu.h - - linux/virtio_ids.h - - linux/virtio_input.h - - linux/virtio_iommu.h - - linux/virtio_mmio.h - - linux/virtio_net.h - - linux/virtio_pci.h - - linux/virtio_pmem.h - - linux/virtio_ring.h - - linux/virtio_rng.h - - linux/virtio_scsi.h - - linux/virtio_types.h - - linux/virtio_vsock.h - - linux/vm_sockets.h - - linux/vm_sockets_diag.h - - linux/vmcore.h - - linux/vsockmon.h - - linux/vt.h - - linux/vtpm_proxy.h - - linux/wait.h - - linux/watchdog.h - - linux/wimax.h - - linux/wimax/i2400m.h - - linux/wireguard.h - - linux/wireless.h - - linux/wmi.h - - linux/x25.h - - linux/xattr.h - - linux/xdp_diag.h - - linux/xfrm.h - - linux/xilinx-v4l2-controls.h - - linux/zorro.h - - linux/zorro_ids.h - - misc/cxl.h - - misc/fastrpc.h - - misc/habanalabs.h - - misc/ocxl.h - - misc/pvpanic.h - - misc/uacce/hisi_qm.h - - misc/uacce/uacce.h - - misc/xilinx_sdfec.h - - mtd/inftl-user.h - - mtd/mtd-abi.h - - mtd/mtd-user.h - - mtd/nftl-user.h - - mtd/ubi-user.h - - rdma/bnxt_re-abi.h - - rdma/cxgb4-abi.h - - rdma/efa-abi.h - - rdma/hfi/hfi1_ioctl.h - - rdma/hfi/hfi1_user.h - - rdma/hns-abi.h - - rdma/i40iw-abi.h - - rdma/ib_user_ioctl_cmds.h - - rdma/ib_user_ioctl_verbs.h - - rdma/ib_user_mad.h - - rdma/ib_user_sa.h - - rdma/ib_user_verbs.h - - rdma/mlx4-abi.h - - rdma/mlx5-abi.h - - rdma/mlx5_user_ioctl_cmds.h - - rdma/mlx5_user_ioctl_verbs.h - - rdma/mthca-abi.h - - rdma/ocrdma-abi.h - - rdma/qedr-abi.h - - rdma/rdma_netlink.h - - rdma/rdma_user_cm.h - - rdma/rdma_user_ioctl.h - - rdma/rdma_user_ioctl_cmds.h - - rdma/rdma_user_rxe.h - - rdma/rvt-abi.h - - rdma/siw-abi.h - - rdma/vmw_pvrdma-abi.h - - scsi/cxlflash_ioctl.h - - scsi/fc/fc_els.h - - scsi/fc/fc_fs.h - - scsi/fc/fc_gs.h - - scsi/fc/fc_ns.h - - scsi/scsi_bsg_fc.h - - scsi/scsi_bsg_ufs.h - - scsi/scsi_netlink.h - - scsi/scsi_netlink_fc.h - - sound/asequencer.h - - sound/asoc.h - - sound/asound.h - - sound/asound_fm.h - - sound/compress_offload.h - - sound/compress_params.h - - sound/emu10k1.h - - sound/firewire.h - - sound/hdsp.h - - sound/hdspm.h - - sound/sb16_csp.h - - sound/sfnt_info.h - - sound/skl-tplg-interface.h - - sound/snd_sst_tokens.h - - sound/sof/abi.h - - sound/sof/fw.h - - sound/sof/header.h - - sound/sof/tokens.h - - sound/tlv.h - - sound/usb_stream.h - - video/edid.h - - video/sisfb.h - - video/uvesafb.h - - xen/evtchn.h - - xen/gntalloc.h - - xen/gntdev.h - - xen/privcmd.h diff --git a/build/sysincl/linux-musl.yml b/build/sysincl/linux-musl.yml deleted file mode 100644 index 2c7a11bf06..0000000000 --- a/build/sysincl/linux-musl.yml +++ /dev/null @@ -1,18 +0,0 @@ -- includes: - - bits/alltypes.h: contrib/libs/musl/arch/x86_64/bits/alltypes.h - - bits/errno.h: contrib/libs/musl/arch/generic/bits/errno.h - - bits/fenv.h: contrib/libs/musl/arch/x86_64/bits/fenv.h - - bits/limits.h: - - contrib/libs/musl/arch/generic/bits/limits.h - - contrib/libs/musl/arch/x86_64/bits/limits.h - - bits/posix.h: contrib/libs/musl/arch/x86_64/bits/posix.h - - bits/reg.h: contrib/libs/musl/arch/x86_64/bits/reg.h - - bits/stat.h: contrib/libs/musl/arch/x86_64/bits/stat.h - - bits/stdint.h: contrib/libs/musl/arch/x86_64/bits/stdint.h - - sys/cdefs.h: contrib/libs/musl/extra/sys/cdefs.h - - sys/sysctl.h: contrib/libs/musl/extra/sys/sysctl.h - - xlocale.h: contrib/libs/musl/extra/xlocale.h - -- source_filter: "^contrib/restricted/boost" - includes: - - ../include/fenv.h: contrib/libs/musl/include/fenv.h diff --git a/build/sysincl/linux-ubuntu-12.yml b/build/sysincl/linux-ubuntu-12.yml deleted file mode 100644 index b310250e6b..0000000000 --- a/build/sysincl/linux-ubuntu-12.yml +++ /dev/null @@ -1,3 +0,0 @@ -- source_filter: "^contrib/libs/systemd" - includes: - - uchar.h: contrib/libs/libc_compat/include/uchar/uchar.h diff --git a/build/sysincl/linux.yml b/build/sysincl/linux.yml deleted file mode 100644 index c98d7100fa..0000000000 --- a/build/sysincl/linux.yml +++ /dev/null @@ -1,66 +0,0 @@ -- includes: - - _G_config.h - - a.out.h - - aliases.h - - ansidecl.h - - argp.h - - argz.h - - bfd.h - - bits/endian.h - - bits/fenv.h - - bits/libc-lock.h - - bits/reg.h - - bits/types.h - - bits/wordsize.h - - error.h - - execinfo.h - - fpu_control.h - - fstab.h - - fts.h - - gconv.h - - gnu-versions.h - - gnu/libc-version.h - - gshadow.h - - ieee754.h - - libio.h - - linux/compiler.h - - linux/irda.h - - linux/smb.h - - mcheck.h - - netash/ash.h - - netatalk/at.h - - netax25/ax25.h - - neteconet/ec.h - - netipx/ipx.h - - netrose/rose.h - - nss.h - - obstack.h - - printf.h - - regexp.h - - rpcsvc/yp_prot.h - - rpcsvc/ypclnt.h - - sgtty.h - - sys/bitypes.h - - sys/cdefs.h - - sys/memfd.h - - sys/queue.h - - sys/platform/ppc.h - - sys/socketvar.h - - sys/sysctl.h - - sys/unistd.h - - termio.h - - ttyent.h - - ustat.h - - xlocale.h - -- source_filter: "^contrib/libs/webrtc/modules" - includes: - - jni.h - - aaudio/AAudio.h - - SLES/OpenSLES.h - - SLES/OpenSLES_Android.h - - SLES/OpenSLES_AndroidConfiguration.h - -- source_filter: "^contrib/python/(coverage|gevent|greenlet)" - includes: - - internal/pycore_frame.h: contrib/libs/python/Include/internal/pycore_frame.h diff --git a/build/sysincl/macro.yml b/build/sysincl/macro.yml deleted file mode 100644 index e4d78fda96..0000000000 --- a/build/sysincl/macro.yml +++ /dev/null @@ -1,223 +0,0 @@ -# This file contains the most frequently used macros from the whole arcadia -- includes: - - OPENSSL_UNISTD: - - $U/unistd.h - - HASH_MAP_H: - - $U/unordered_map - - HASH_SET_H: - - $U/unordered_set - - STR_STREAM: - - $U/sstream - - $U/strstream - - BACKTRACE_HEADER: - - $U/execinfo.h -# - IMPL_GENERATOR: -# FIXME: these 2 resolvings require further dependencies to work properly -# this is ugly design that we don't support currently -# - ads/autobudget/libs/mr_io/yql/converter_impl_generator.h -# - ads/autobudget/libs/mr_io/yt/converter_impl_generator.h - - PMIX_EVENT_HEADER: - - contrib/libs/openmpi/opal/mca/event/external/external.h - - PMIX_EVENT2_THREAD_HEADER: - - contrib/libs/openmpi/opal/mca/event/external/external.h - - FT_CONFIG_CONFIG_H: - - contrib/libs/freetype/include/freetype/config/ftconfig.h - - FT_CONFIG_STANDARD_LIBRARY_H: - - contrib/libs/freetype/include/freetype/config/ftstdlib.h - - FT_CONFIG_OPTIONS_H: - - contrib/libs/freetype/include/freetype/config/ftoption.h - - FT_CONFIG_MODULES_H: - - contrib/libs/freetype/include/freetype/config/ftmodule.h - - FT_FREETYPE_H: - - contrib/libs/freetype/include/freetype/freetype.h - - FT_OUTLINE_H: - - contrib/libs/freetype/include/freetype/ftoutln.h - - FT_MODULE_H: - - contrib/libs/freetype/include/freetype/ftmodapi.h - - FT_GLYPH_H: - - contrib/libs/freetype/include/freetype/ftglyph.h - - FT_BBOX_H: - - contrib/libs/freetype/include/freetype/ftbbox.h - - FT_XFREE86_H: - - contrib/libs/freetype/include/freetype/ftfntfmt.h - - FT_SYNTHESIS_H: - - contrib/libs/freetype/include/freetype/ftsynth.h - - FT_IMAGE_H: - - contrib/libs/freetype/include/freetype/ftimage.h - - FT_BITMAP_H: - - contrib/libs/freetype/include/freetype/ftbitmap.h - - FT_TRUETYPE_TABLES_H: - - contrib/libs/freetype/include/freetype/tttables.h - - FT_MULTIPLE_MASTERS_H: - - contrib/libs/freetype/include/freetype/ftmm.h - - FT_LCD_FILTER_H: - - contrib/libs/freetype/include/freetype/ftlcdfil.h - - FT_STROKER_H: - - contrib/libs/freetype/include/freetype/ftstroke.h - - FT_ERRORS_H: - - contrib/libs/freetype/include/freetype/fterrors.h - - FT_MODULE_ERRORS_H: - - contrib/libs/freetype/include/freetype/ftmoderr.h - - FT_SYSTEM_H: - - contrib/libs/freetype/include/freetype/ftsystem.h - - FT_TYPES_H: - - contrib/libs/freetype/include/freetype/fttypes.h - - FT_LIST_H: - - contrib/libs/freetype/include/freetype/ftlist.h - - FT_SIZES_H: - - contrib/libs/freetype/include/freetype/ftsizes.h - - FT_RENDER_H: - - contrib/libs/freetype/include/freetype/ftrender.h - - FT_TYPE1_TABLES_H: - - contrib/libs/freetype/include/freetype/t1tables.h - - FT_TRUETYPE_IDS_H: - - contrib/libs/freetype/include/freetype/ttnameid.h - - FT_TRUETYPE_TAGS_H: - - contrib/libs/freetype/include/freetype/tttags.h - - FT_BDF_H: - - contrib/libs/freetype/include/freetype/ftbdf.h - - FT_CID_H: - - contrib/libs/freetype/include/freetype/ftcid.h - - FT_GZIP_H: - - contrib/libs/freetype/include/freetype/ftgzip.h - - FT_LZW_H: - - contrib/libs/freetype/include/freetype/ftlzw.h - - FT_BZIP2_H: - - contrib/libs/freetype/include/freetype/ftbzip2.h - - FT_WINFONTS_H: - - contrib/libs/freetype/include/freetype/ftwinfnt.h - - FT_GLYPH_H: - - contrib/libs/freetype/include/freetype/ftglyph.h - - FT_WINFONTS_H: - - contrib/libs/freetype/include/freetype/ftwinfnt.h - - FT_CACHE_H: - - contrib/libs/freetype/include/freetype/ftcache.h - - FT_WINFONTS_H: - - contrib/libs/freetype/include/freetype/ftwinfnt.h - - FT_MAC_H: - - contrib/libs/freetype/include/freetype/ftmac.h - - FT_SFNT_NAMES_H: - - contrib/libs/freetype/include/freetype/ftsnames.h - - FT_OPENTYPE_VALIDATE_H: - - contrib/libs/freetype/include/freetype/ftotval.h - - FT_GX_VALIDATE_H: - - contrib/libs/freetype/include/freetype/ftgxval.h - - FT_PFR_H: - - contrib/libs/freetype/include/freetype/ftpfr.h - - FT_STROKER_H: - - contrib/libs/freetype/include/freetype/ftstroke.h - - FT_SYNTHESIS_H: - - contrib/libs/freetype/include/freetype/ftsynth.h - - FT_FONT_FORMATS_H: - - contrib/libs/freetype/include/freetype/ftfntfmt.h - - FT_TRIGONOMETRY_H: - - contrib/libs/freetype/include/freetype/fttrigon.h - - FT_LCD_FILTER_H: - - contrib/libs/freetype/include/freetype/ftlcdfil.h - - FT_INCREMENTAL_H: - - contrib/libs/freetype/include/freetype/ftincrem.h - - FT_GASP_H: - - contrib/libs/freetype/include/freetype/ftgasp.h - - FT_ADVANCES_H: - - contrib/libs/freetype/include/freetype/ftadvanc.h - - FT_COLOR_H: - - contrib/libs/freetype/include/freetype/ftcolor.h - - FT_OTSVG_H: - - contrib/libs/freetype/include/freetype/otsvg.h - -- source_filter: "^contrib/restricted/abseil-cpp-tstring/y_absl/debugging" - includes: - - Y_ABSL_STACKTRACE_INL_HEADER: - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_win32-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_generic-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_emscripten-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_x86-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_powerpc-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_aarch64-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_riscv-inl.inc - - contrib/restricted/abseil-cpp-tstring/y_absl/debugging/internal/stacktrace_unimplemented-inl.inc - -- source_filter: "^contrib/restricted/abseil-cpp/absl/debugging" - includes: - - ABSL_STACKTRACE_INL_HEADER: - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc - - contrib/restricted/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc - -- source_filter: "^contrib/restricted/boost" - includes: - - BOOST_ABI_PREFIX: - - contrib/restricted/boost/config/include/boost/config/abi/msvc_prefix.hpp - - BOOST_ABI_SUFFIX: - - contrib/restricted/boost/config/include/boost/config/abi/msvc_suffix.hpp - - BOOST_USER_CONFIG: - - contrib/restricted/boost/config/include/boost/config/user.hpp - - BOOST_COMPILER_CONFIG: - - contrib/restricted/boost/config/include/boost/config/compiler/intel.hpp - - contrib/restricted/boost/config/include/boost/config/compiler/clang.hpp - - contrib/restricted/boost/config/include/boost/config/compiler/gcc.hpp - - BOOST_REGEX_USER_CONFIG: - - contrib/restricted/boost/regex/include/boost/regex/user.hpp - -- source_filter: "^contrib/libs/gperftools" - includes: - - STACKTRACE_INL_HEADER: - - contrib/libs/gperftools/srcstacktrace_win32-inl.inc - - contrib/libs/gperftools/srcstacktrace_generic-inl.inc - - contrib/libs/gperftools/srcstacktrace_emscripten-inl.inc - - contrib/libs/gperftools/srcstacktrace_x86-inl.inc - - contrib/libs/gperftools/srcstacktrace_powerpc-inl.inc - - contrib/libs/gperftools/srcstacktrace_aarch64-inl.inc - - contrib/libs/gperftools/srcstacktrace_riscv-inl.inc - - contrib/libs/gperftools/srcstacktrace_unimplemented-inl.inc - -- source_filter: "^contrib/restricted/boost/phoenix" - includes: - - BOOST_PHOENIX_UNORDERED_MAP_HEADER: $U/unordered_map - - BOOST_PHOENIX_UNORDERED_SET_HEADER: $U/unordered_set - -- source_filter: "^contrib/restricted/boost/atomic/include/boost/atomic" - includes: - - BOOST_ATOMIC_DETAIL_FP_BACKEND_HEADER(boost/atomic/detail/fp_ops_): - - contrib/restricted/boost/atomic/include/boost/atomic/detail/fp_ops_emulated.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/fp_ops_generic.hpp - - BOOST_ATOMIC_DETAIL_BACKEND_HEADER(boost/atomic/detail/caps_): - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_aarch32.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_aarch64.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_alpha.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_arm.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_ppc.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_sparc.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_gcc_x86.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_msvc_arm.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_arch_msvc_x86.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_gcc_atomic.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_gcc_sync.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_linux_arm.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/caps_windows.hpp - - BOOST_ATOMIC_DETAIL_EXTRA_FP_BACKEND_HEADER(boost/atomic/detail/extra_fp_ops_): - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_fp_operations.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_fp_operations_fwd.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_fp_ops_emulated.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_fp_ops_generic.hpp - - BOOST_ATOMIC_DETAIL_EXTRA_BACKEND_HEADER(boost/atomic/detail/extra_ops_): - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_emulated.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_gcc_aarch32.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_gcc_aarch64.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_gcc_arm.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_gcc_ppc.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_gcc_x86.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_generic.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_msvc_arm.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/extra_ops_msvc_x86.hpp - - BOOST_ATOMIC_DETAIL_BACKEND_HEADER(boost/atomic/detail/ops_): - - contrib/restricted/boost/atomic/include/boost/atomic/detail/ops_gcc_aarch32_common.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/ops_gcc_aarch64_common.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/ops_gcc_arm_common.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/ops_gcc_ppc_common.hpp - - contrib/restricted/boost/atomic/include/boost/atomic/detail/ops_msvc_common.hpp diff --git a/build/sysincl/misc-win.yml b/build/sysincl/misc-win.yml deleted file mode 100644 index e0567f28f9..0000000000 --- a/build/sysincl/misc-win.yml +++ /dev/null @@ -1,72 +0,0 @@ -- source_filter: "^(contrib/libs/(ImageMagick|ffmpeg-3|libraw|pthreads_win32|zookeeper))|^contrib/restricted/boost" - includes: - - pthread.h: contrib/libs/pthreads_win32/include/pthread.h - - sched.h: contrib/libs/pthreads_win32/include/sched.h - -- source_filter: "^contrib/libs/jemalloc" - includes: - - strings.h: contrib/libs/jemalloc/include/msvc_compat/strings.h - -- source_filter: "^contrib/libs/libpq/src" - includes: - - arpa/inet.h: contrib/libs/libpq/src/include/port/win32/arpa/inet.h - - netdb.h: contrib/libs/libpq/src/include/port/win32/netdb.h - - netinet/in.h: contrib/libs/libpq/src/include/port/win32/netinet/in.h - - pwd.h: contrib/libs/libpq/src/include/port/win32/pwd.h - - sys/file.h: contrib/libs/libpq/src/include/port/win32_msvc/sys/file.h - - sys/param.h: contrib/libs/libpq/src/include/port/win32_msvc/sys/param.h - - sys/socket.h: contrib/libs/libpq/src/include/port/win32/sys/socket.h - - sys/time.h: contrib/libs/libpq/src/include/port/win32_msvc/sys/time.h - - unistd.h: contrib/libs/libpq/src/include/port/win32_msvc/unistd.h - -- source_filter: "^contrib/libs/postgresql/src|^ydb/library/yql/parser/pg_wrapper/postgresql/src" - includes: - - arpa/inet.h: contrib/libs/postgresql/src/include/port/win32/arpa/inet.h - - dirent.h: contrib/libs/postgresql/src/include/port/win32_msvc/dirent.h - - grp.h: contrib/libs/postgresql/src/include/port/win32/grp.h - - netdb.h: contrib/libs/postgresql/src/include/port/win32/netdb.h - - netinet/in.h: contrib/libs/postgresql/src/include/port/win32/netinet/in.h - - pwd.h: contrib/libs/postgresql/src/include/port/win32/pwd.h - - sys/file.h: contrib/libs/postgresql/src/include/port/win32_msvc/sys/file.h - - sys/param.h: contrib/libs/postgresql/src/include/port/win32_msvc/sys/param.h - - sys/socket.h: contrib/libs/postgresql/src/include/port/win32/sys/socket.h - - sys/time.h: contrib/libs/postgresql/src/include/port/win32_msvc/sys/time.h - - sys/wait.h: contrib/libs/postgresql/src/include/port/win32/sys/wait.h - - unistd.h: contrib/libs/postgresql/src/include/port/win32_msvc/unistd.h - - utime.h: contrib/libs/postgresql/src/include/port/win32_msvc/utime.h - -- source_filter: "^contrib/libs/libx264" - includes: - - inttypes.h: contrib/libs/libx264/extras/inttypes.h - - stdint.h: contrib/libs/libx264/extras/stdint.h - -- source_filter: "^contrib/tools/bison" - includes: - - alloca.h: contrib/tools/bison/gnulib/platform/win64/alloca.h - - getopt.h: contrib/tools/bison/gnulib/platform/win64/getopt.h - - fcntl.h: contrib/tools/bison/gnulib/platform/win64/fcntl.h - - langinfo.h: contrib/tools/bison/gnulib/platform/win64/langinfo.h - - locale.h: contrib/tools/bison/gnulib/platform/win64/locale.h - - math.h: contrib/tools/bison/gnulib/platform/win64/math.h - - sched.h: contrib/tools/bison/gnulib/platform/win64/sched.h - - signal.h: contrib/tools/bison/gnulib/platform/win64/signal.h - - spawn.h: contrib/tools/bison/gnulib/platform/win64/spawn.h - - stdbool.h: contrib/tools/bison/gnulib/platform/win64/stdbool.h - - sys/stat.h: contrib/tools/bison/gnulib/platform/win64/sys/stat.h - - sys/time.h: contrib/tools/bison/gnulib/platform/win64/sys/time.h - - sys/wait.h: contrib/tools/bison/gnulib/platform/win64/sys/wait.h - - unistd.h: contrib/tools/bison/gnulib/platform/win64/unistd.h - -- source_filter: "^contrib/libs/libpq" - includes: - - dirent.h: contrib/libs/libpq/src/include/port/win32_msvc/dirent.h - - sys/wait.h: contrib/libs/libpq/src/include/port/win32/sys/wait.h - - win32.h: contrib/libs/libpq/src/include/port/win32.h - -- source_filter: "^contrib/libs/curl" - includes: - - nghttp2/nghttp2.h - -- includes: - - sys/queue.h: contrib/libs/libc_compat/include/windows/sys/queue.h - - sys/uio.h: contrib/libs/libc_compat/include/windows/sys/uio.h diff --git a/build/sysincl/misc.yml b/build/sysincl/misc.yml deleted file mode 100644 index 15f35c3ed2..0000000000 --- a/build/sysincl/misc.yml +++ /dev/null @@ -1,646 +0,0 @@ -- includes: - # Valgrind PEERDIR and ADDINCL are added only in --valgrind builds, - # but we should resolve headers anyway. - - valgrind/callgrind.h - - valgrind/memcheck.h - - valgrind/valgrind.h - # DB2_ODBC_CLI - - sqlcli1.h - - -- includes: - - gelf.h: contrib/restricted/libelf/include/libelf/gelf.h - - libelf.h: contrib/restricted/libelf/include/libelf/libelf.h - - libelf/libelf.h: contrib/restricted/libelf/include/libelf/libelf.h - - libelf/sys_elf.h: contrib/restricted/libelf/include/libelf/sys_elf.h - -# We have lots of ADDINCLs to contrib/libs/libiconv all around the repo -# so we need to add it to sysincl for consistent resolving. -# We can go the other way here and remove iconv.h from all sysincl configs -# and try to fix all places where we really need iconv.h from libc -# Btw: seems that this ADDINCL should be made global and removed from projects -# that use this header -- includes: - - iconv.h: contrib/libs/libiconv/include/iconv.h - -- includes: - - cudnn.h: contrib/libs/nvidia/cudnn/cudnn.h - -# _cgo_export.h is generated into build dir of go package which uses cgo -# and we are unable to resolve it correctly to whcih build dir to resolve -# in the case when tests are also built for this package -- includes: - - _cgo_export.h - -# Resolve jni.h from swig/Lib/java/javahead.swg when building non-java .swg -# since they do not peerdir contrib/libs/jdk. -# Resolve Python.h from swig/Lib/python/pyruntime.swg when building non-python .swg -# since they do not peerdir contrib/libs/python. -- source_filter: "[.]swg([.](h|c(c|pp|xx)?))?$" - includes: - - jni.h: contrib/libs/jdk/include/jni.h - - Python.h: contrib/libs/python/Include/Python.h -- source_filter: "^contrib/libs/jdk/include/jni[.]h$" - includes: - - jni_md.h: - - contrib/libs/jdk/include/darwin/jni_md.h - - contrib/libs/jdk/include/linux/jni_md.h - - contrib/libs/jdk/include/win32/jni_md.h - -# libunistring, libidn and libidn2 -# have its own libc header wrappers that are added to ADDINCL -# and need to be added here for consistensy between ADDINCL and sysincl resolving. -# Btw: we don't parse include_next, so we might lose real dependency to musl, -# but sysincl resolving will save us here, as it will resolve to both of them. -- source_filter: "^contrib/libs/libunistring" - includes: - - alloca.h: contrib/libs/libunistring/alloca.h - - langinfo.h: contrib/libs/libunistring/langinfo.h - - minmax.h: contrib/libs/libunistring/minmax.h - -- source_filter: "^contrib/libs/libidn/" - includes: - - alloca.h: contrib/libs/libidn/gl/alloca.h - - error.h: contrib/libs/libidn/gl/error.h - - iconv.h: contrib/libs/libidn/lib/gl/iconv.h - -- source_filter: "^contrib/libs/libidn2/" - includes: - - alloca.h: contrib/libs/libidn2/gl/alloca.h - - error.h: contrib/libs/libidn2/gl/error.h - -# Same as libunistring - lftp has own libc header wrappers/replacements. -# However here we have GLOBAL ADDINCL to contrib/libs/lftp{,/trio,/lib} -# that can poison resolving in PEERDIRing projects. -# Fortunately lftp is used only in contrib/tools/lftp. -# Probably we should add PEERDIR restriction rule to it. -- source_filter: "^contrib/libs/lftp" - includes: - - alloca.h: contrib/libs/lftp/alloca.h - - error.h: contrib/libs/lftp/lib/error.h - - fnmatch.h: contrib/libs/lftp/lib/fnmatch.h - - regex.h: contrib/libs/lftp/lib/regex.h - - sys/socket.h: contrib/libs/lftp/lib/sys/socket.h - - sys/stat.h: contrib/libs/lftp/lib/sys/stat.h - - sys/time.h: contrib/libs/lftp/lib/sys/time.h - -# Another sysincl/addincl clash. Here we also have GLOBAL ADDINCL that will -# produce sysincl/addincl mismatch configure errors when someone writes -# #include <math.h> and enables USE_ARCADIA_LIBM. Now we have no instances of this. -- source_filter: "^contrib/libs/libm/.*\\.c" - includes: - - complex.h: contrib/libs/libm/include/complex.h - - math.h: contrib/libs/libm/include/math.h - -# Some more sysincl/addincl clashes. -- source_filter: "^contrib/tools/bison/(bison|gnulib|m4)/src" - includes: - - error.h: contrib/tools/bison/gnulib/src/error.h - - fcntl.h: contrib/tools/bison/gnulib/platform/posix/fcntl.h - - getopt.h: contrib/tools/bison/gnulib/platform/posix/getopt.h - - obstack.h: contrib/tools/bison/gnulib/src/obstack.h - - regex.h: contrib/tools/bison/gnulib/src/regex.h - - system.h - - unlocked-io.h: contrib/tools/bison/gnulib/src/unlocked-io.h -- source_filter: "^contrib/tools/make" - includes: - - fnmatch.h: contrib/tools/make/glob/fnmatch.h - - glob.h: contrib/tools/make/glob/glob.h -- source_filter: "^contrib/tools/tre" - includes: - - regex.h: contrib/tools/tre/lib/regex.h - -- source_filter: "^contrib/libs/cppkafka" - includes: - - error.h: contrib/libs/cppkafka/include/cppkafka/error.h - -- source_filter: "^contrib/libs/clang12-rt" - includes: - - xray/xray_interface.h: contrib/libs/clang12-rt/include/xray/xray_interface.h - -- source_filter: "^contrib/libs/clang14-rt" - includes: - - xray/xray_interface.h: contrib/libs/clang14-rt/include/xray/xray_interface.h - -- source_filter: "^contrib/libs/llvm" - includes: - - plugin-api.h # GNU linker plugin API. - -- source_filter: "^contrib/libs/musl" - includes: - - atomic.h: contrib/libs/musl/src/internal/atomic.h - - bits/fenv.h: contrib/libs/musl/arch/x86_64/bits/fenv.h - -- source_filter: "^contrib/libs/zbar" - includes: - - error.h: contrib/libs/zbar/zbar/error.h - -- source_filter: "^contrib/libs/curl" - includes: - - http.h: contrib/libs/curl/lib/http.h - - inet_ntop.h: contrib/libs/curl/lib/inet_ntop.h - - share.h: contrib/libs/curl/lib/share.h - -- source_filter: "^contrib/libs/zeromq" - includes: - - atomic.h: contrib/libs/zeromq/missing_includes/atomic.h - - Mstcpip.h: contrib/libs/zeromq/missing_includes/Mstcpip.h - -- source_filter: "^contrib/restricted/openal-soft" - includes: - - atomic.h: contrib/restricted/openal-soft/common/atomic.h - -- source_filter: "^contrib/libs/ffmpeg-3/" - includes: - - fontconfig/fontconfig.h - - fribidi.h - - stdatomic.h: contrib/libs/ffmpeg-3/compat/atomics/win32/stdatomic.h - - atomic.h: contrib/libs/ffmpeg-3/libavutil/atomic.h - -- source_filter: "^contrib/libs/ffmpeg-3.4.1/" - includes: - - fontconfig/fontconfig.h - - fribidi.h - - stdatomic.h: contrib/libs/ffmpeg-3.4.1/compat/atomics/win32/stdatomic.h - - atomic.h: contrib/libs/ffmpeg-3.4.1/libavutil/atomic.h - -- source_filter: "^contrib/libs/glog" - includes: - - port.h: contrib/libs/glog/missing_includes/port.h - -- source_filter: "^contrib/libs/postgresql" - includes: - - port.h: contrib/libs/postgresql/src/include/port.h - -- source_filter: "^contrib/(deprecated/onednn|libs/intel/onednn)" - - includes: - - mkl_cblas.h: contrib/libs/intel/mkl/include/mkl_cblas.h - - mkl_version.h: contrib/libs/intel/mkl/include/mkl_version.h - - mkl_vml_defines.h: contrib/libs/intel/mkl/include/mkl_vml_defines.h - - mkl_vml_functions.h: contrib/libs/intel/mkl/include/mkl_vml_functions.h - -- source_filter: "^contrib/libs/nsync" - includes: - - atomic.h: contrib/libs/nsync/platform/c++11/atomic.h - -- source_filter: "^contrib/python/numpy/py3" - includes: - - numpy/random.pxd - - alloc.h: contrib/python/numpy/include/numpy/core/src/multiarray/alloc.h - -- source_filter: "^contrib/tools/python/src/Objects/exceptions.c" - includes: - - errmap.h: contrib/tools/python/src/PC/errmap.h - -- source_filter: "^contrib/libs/(speex|tf)" - includes: - - mkl.h: contrib/libs/intel/mkl/include/mkl.h - -# deprecated contrib with ADDINCL to libintl -- source_filter: "^contrib/(deprecated/glib/glib|libs/gdk-pixbuf)" - includes: - - libintl.h: contrib/deprecated/libintl/libintl.h - -- source_filter: "^contrib/libs/poco/Data/ODBC" - includes: - - sql.h: contrib/libs/unixodbc/include/sql.h - - sqlext.h: contrib/libs/unixodbc/include/sqlext.h - - sqltypes.h: contrib/libs/unixodbc/include/sqltypes.h - - sqlucode.h: contrib/libs/unixodbc/include/sqlucode.h - -- source_filter: "^contrib/libs/icu" - includes: - - util.h: contrib/libs/icu/common/util.h - -- source_filter: "^contrib/tools/yasm" - includes: - - util.h: contrib/tools/yasm/util.h - -- source_filter: "^contrib/libs/libgit2" - includes: - - alloc.h: contrib/libs/libgit2/src/util/alloc.h - - thread.h: contrib/libs/libgit2/src/util/thread.h - - regexp.h: contrib/libs/libgit2/src/util/regexp.h - - util.h: contrib/libs/libgit2/src/util/util.h - -- source_filter: "^contrib/libs/nodejs_12" - includes: - - util.h: contrib/libs/nodejs_12/src/util.h - -- source_filter: "^contrib/libs/numa" - includes: - - util.h: contrib/libs/numa/internal/util.h - -- source_filter: "^contrib/libs/systemd" - includes: - - util.h: contrib/libs/systemd/src/basic/util.h - -- source_filter: "^contrib/libs/nvidia/nccl" - includes: - - alloc.h: contrib/libs/nvidia/nccl/src/include/alloc.h - - socket.h: contrib/libs/nvidia/nccl/src/include/socket.h - -- source_filter: "^contrib/libs/tf/tensorflow" - includes: - - cuda.h: contrib/libs/tf/tensorflow/core/platform/cuda.h - -# unused legacy include in boost -- source_filter: "^contrib/restricted/boost" - includes: - - fstream.h - - ../include/fenv.h - -# windows sdk includes that we do not want to apply for whole arcadia -- source_filter: "^contrib" - includes: - - process.h -- source_filter: "^contrib/tools/tpce-benchmark" - includes: - - sql.h - - sqlext.h - - sqltypes.h - - sqlucode.h - -- source_filter: "^contrib/libs/libmemcached" - includes: - - sasl/sasl.h - - sasl/saslutil.h - -- source_filter: "^contrib/libs/(apache/apr|httpd|llvm)" - includes: - - uuid.h - - uuid/uuid.h - -- source_filter: "^contrib/libs/(kenlm|libxml|re2|sqlite3)" - includes: - - unicode/ucnv.h - - unicode/ucol.h - - unicode/uniset.h - - unicode/unistr.h - - unicode/ustring.h - - unicode/utf16.h - - unicode/utypes.h - - unicode/uversion.h - -- source_filter: "^contrib/deprecated/glib" - includes: - - configmake.h - -- source_filter: "^contrib/libs/authparser" - includes: - - settings.h - -- source_filter: "^contrib/libs/ceres-solver" - includes: - - tbb/tbb_stddef.h - -- source_filter: "^contrib/libs/deprecated" - includes: - - hdf5.h - -- source_filter: "^contrib/libs/freetype" - includes: - - hb-ot.h - - hb-ft.h - - hb.h - -- source_filter: "^contrib/libs/httpd" - includes: - - nginx.h - - ngx_config.h - - ngx_core.h - - ngx_http.h - - ngx_log.h - -- source_filter: "^contrib/libs/leptonica-1.70" - includes: - - gif_lib.h - - webp/decode.h - - webp/encode.h - -- source_filter: "^contrib/libs/libpcap" - includes: - - strerror.h - -- source_filter: "^contrib/libs/libxml" - includes: - - lzma.h - - win32config.h - -- source_filter: "^contrib/libs/mod_perl2" - includes: - - config.h - -- source_filter: "^contrib/libs/(apache/apr|httpd|openssl)" - includes: - - netinet/sctp.h - -- source_filter: "^contrib/libs/subversion" - includes: - - magic.h - - xmlparse.h - -- source_filter: "^contrib/python/scipy" - includes: - - matrix.h - -- source_filter: "^contrib/python/uWSGI" - includes: - - libxml/parser.h - - libxml/tree.h - - uuid/uuid.h - -- source_filter: "^contrib/tools/python" - includes: - - ioctl.h - - utils.h - -- source_filter: "^(contrib/libs/cxxsupp/openmp|catboost/cuda/cuda_lib)" - includes: - - hwloc.h - - hwloc/cudart.h - -- source_filter: "^contrib/libs/(deprecated|tf)" - includes: - - cblas.h - -- source_filter: "^contrib/libs/(aws-sdk-cpp|c-ares|proj)" - includes: - - jni.h - -- source_filter: "^contrib/(libs/(ffmpeg-3|kyotocabinet)|tools/ag)" - includes: - - lzma.h - -- source_filter: "^contrib/libs/(kyotocabinet|minilzo)" - includes: - - lzo/lzo1x.h - -- source_filter: "^contrib/libs/(gtest|libpng|opencv)" - includes: - - mem.h - -- source_filter: "^contrib/libs/(authparser|libcoro-perl|libev-perl|libevent-perl)" - includes: - - patchlevel.h - -- source_filter: "^metrika/uatraits" - includes: - - note.h - - could_not_find_Perl_patchlevel.h - - patchlevel.h - -- source_filter: "^contrib/libs/(freetype|leptonica-1.70|libtheora|zbar)" - includes: - - png.h - -- source_filter: "^(contrib/restricted/boost/boost/mpi|catboost/cuda/cuda_lib/mpi)" - includes: - - mpi.h - -- source_filter: "^contrib/libs/libf2c" - includes: - - local.h - -- source_filter: "^contrib/libs/libpq" - includes: - - local.h - -- source_filter: "^contrib/libs/breakpad" - includes: - - stab.h - -- source_filter: "^contrib/tools/fluent-bit-(full|minimal)" - includes: - - backtrace.h: contrib/libs/backtrace/backtrace.h - -- source_filter: "^contrib/restricted/boost/stacktrace/include/boost/stacktrace/detail" - includes: - - backtrace.h: contrib/libs/backtrace/backtrace.h - -- source_filter: "^contrib/restricted/libelf" - includes: - - byteswap.h: contrib/restricted/libelf/lib/byteswap.h - - gelf.h: contrib/restricted/libelf/lib/gelf.h - - libelf.h: contrib/restricted/libelf/lib/libelf.h - - nlist.h: contrib/restricted/libelf/lib/nlist.h - - sys_elf.h: contrib/restricted/libelf/lib/sys_elf.h - -- source_filter: "^contrib/libs/dpdk/" - includes: - - process.h: contrib/libs/dpdk/drivers/bus/dpaa/include/process.h - -- source_filter: "^contrib/libs/dpdk_arm64/" - includes: - - process.h: contrib/libs/dpdk_arm64/drivers/bus/dpaa/include/process.h - -- source_filter: "^contrib/libs/usrsctp/" - includes: - - netinet/sctp_uio.h: contrib/libs/usrsctp/usrsctplib/netinet/sctp_uio.h - -- source_filter: "^contrib/libs/libsrtp/" - includes: - - alloc.h: contrib/libs/libsrtp/crypto/include/alloc.h - - err.h: contrib/libs/libsrtp/crypto/include/err.h - - stat.h: contrib/libs/libsrtp/crypto/include/stat.h - -- source_filter: "^contrib/restricted/openal-soft" - includes: - - threads.h: contrib/restricted/openal-soft/common/threads.h - -- source_filter: "^contrib/python/pymqi" - includes: - # IBM MQ - - cmqc.h - - cmqxc.h - - cmqcfc.h - - cmqbc.h - -- source_filter: "^contrib/libs/h3" - includes: - - alloc.h: contrib/libs/h3/h3lib/include/alloc.h -- source_filter: "^cloud/iam/token_agent/daemon" - includes: - - contrib/libs/grpc/include/grpcpp/impl/codegen/server_context_impl.h - -- source_filter: "^contrib/libs/libyang" - includes: - - in.h: contrib/libs/libyang/libyang/in.h - -- source_filter: "^contrib/restricted/noc/frr" - includes: - - bfd.h: contrib/restricted/noc/frr/lib/bfd.h - - getopt.h: contrib/restricted/noc/frr/lib/getopt.h - - filter.h: contrib/restricted/noc/frr/lib/filter.h - - memory.h: contrib/restricted/noc/frr/lib/memory.h - - thread.h: contrib/restricted/noc/frr/lib/thread.h - -- source_filter: "^contrib/libs/cxxsupp/libcxxrt" - includes: - - atomic.h: contrib/libs/cxxsupp/libcxxrt/atomic.h - -- source_filter: "^contrib/libs/util-linux" - includes: - - procfs.h: contrib/libs/util-linux/include/procfs.h - -- source_filter: "^contrib/libs/gdal" - includes: - - io.h: contrib/libs/gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h - -# disable checks for Python 3.11-specific files -# needed to allow to use Arcadia's Cython with non-Arcadia python in open source builds -- source_filter: "^contrib/tools/cython/Cython/Utility" - includes: - - internal/pycore_frame.h: contrib/libs/python/Include/internal/pycore_frame.h - -- source_filter: "^contrib/libs/connectedhomeip" - includes: - - freertos/FreeRTOS.h - - freertos/semphr.h - - freertos/task.h - - lwip/def.h - - lwip/err.h - - lwip/inet.h - - lwip/init.h - - lwip/ip4_addr.h - - lwip/ip_addr.h - - lwip/mem.h - - lwip/memp.h - - lwip/netif.h - - lwip/opt.h - - lwip/pbuf.h - - lwip/stats.h - - lwip/sys.h - - lwip/tcpip.h - -- source_filter: "^contrib/libs/glibcasm" - includes: - - alloca.h: contrib/libs/glibcasm/glibc/include/alloca.h - - assert.h: contrib/libs/glibcasm/glibc/include/assert.h - - bits/atomic_wide_counter.h: - - contrib/libs/glibcasm/glibc/bits/atomic_wide_counter.h - - contrib/libs/glibcasm/glibc/include/bits/atomic_wide_counter.h - - bits/dl_find_object.h: - - contrib/libs/glibcasm/glibc/include/bits/dl_find_object.h - - contrib/libs/glibcasm/glibc/sysdeps/x86/bits/dl_find_object.h - - bits/endian.h: contrib/libs/glibcasm/glibc/include/bits/endian.h - - bits/libc-header-start.h: contrib/libs/glibcasm/glibc/bits/libc-header-start.h - - bits/long-double.h: contrib/libs/glibcasm/glibc/sysdeps/ieee754/ldbl-96/bits/long-double.h - - bits/sigstack.h: - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/bits/sigstack.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86/include/bits/sigstack.h - - contrib/libs/glibcasm/glibc/include/bits/sigstack.h - - bits/stdint-intn.h: contrib/libs/glibcasm/glibc/bits/stdint-intn.h - - bits/stdint-uintn.h: contrib/libs/glibcasm/glibc/bits/stdint-uintn.h - - bits/time64.h: contrib/libs/glibcasm/glibc/bits/time64.h - - bits/timesize.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86/bits/timesize.h - - bits/typesizes.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86/bits/typesizes.h - - bits/types.h: contrib/libs/glibcasm/glibc/include/bits/types.h - - bits/unistd_ext.h: - - contrib/libs/glibcasm/glibc/include/bits/unistd_ext.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/bits/unistd_ext.h - - bits/wchar.h: contrib/libs/glibcasm/glibc/bits/wchar.h - - bits/wordsize.h: contrib/libs/glibcasm/glibc/sysdeps/x86/bits/wordsize.h - - cpu-features.h: contrib/libs/glibcasm/glibc/sysdeps/x86/include/cpu-features.h - - dl-lookupcfg.h: - - contrib/libs/glibcasm/glibc/sysdeps/generic/dl-lookupcfg.h - - contrib/libs/glibcasm/glibc/sysdeps/x86/dl-lookupcfg.h - - dl-sysdep.h: - - contrib/libs/glibcasm/glibc/sysdeps/generic/dl-sysdep.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/dl-sysdep.h - - dlfcn.h: contrib/libs/glibcasm/glibc/include/dlfcn.h - - elf.h: contrib/libs/glibcasm/glibc/include/elf.h - - endian.h: contrib/libs/glibcasm/glibc/include/endian.h - - errno.h: contrib/libs/glibcasm/glibc/include/errno.h - - features.h: contrib/libs/glibcasm/glibc/include/features.h - - features-time64.h: - - contrib/libs/glibcasm/glibc/include/features-time64.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/features-time64.h - - fpu_control.h: - - contrib/libs/glibcasm/glibc/include/fpu_control.h - - contrib/libs/glibcasm/glibc/sysdeps/x86/fpu_control.h - - hp-timing.h: contrib/libs/glibcasm/glibc/sysdeps/x86/hp-timing.h - - inttypes.h: contrib/libs/glibcasm/glibc/include/inttypes.h - - kernel-features.h: - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86_64/kernel-features.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/kernel-features.h - - ldsodefs.h: - - contrib/libs/glibcasm/glibc/sysdeps/generic/ldsodefs.h - - contrib/libs/glibcasm/glibc/sysdeps/gnu/ldsodefs.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/ldsodefs.h - - contrib/libs/glibcasm/glibc/sysdeps/x86/ldsodefs.h - - limits.h: contrib/libs/glibcasm/glibc/include/limits.h - - link.h: contrib/libs/glibcasm/glibc/include/link.h - - locale.h: contrib/libs/glibcasm/glibc/include/locale.h - - misc/sys/cdefs.h: contrib/libs/glibcasm/glibc/misc/sys/cdefs.h - - netinet/in.h: contrib/libs/glibcasm/glibc/include/netinet/in.h - - posix/bits/types.h: contrib/libs/glibcasm/glibc/posix/bits/types.h - - pthread.h: contrib/libs/glibcasm/glibc/include/pthread.h - - single-thread.h: - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86_64/single-thread.h - - contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/single-thread.h - - sched.h: contrib/libs/glibcasm/glibc/include/sched.h - - setjmp.h: contrib/libs/glibcasm/glibc/include/setjmp.h - - shlib-compat.h: contrib/libs/glibcasm/glibc/include/shlib-compat.h - - signal.h: contrib/libs/glibcasm/glibc/include/signal.h - - stdint.h: - - contrib/libs/glibcasm/glibc/include/stdint.h - - contrib/libs/cxxsupp/libcxx/include/stdint.h - - stdlib.h: contrib/libs/glibcasm/glibc/include/stdlib.h - - stackinfo.h: - - contrib/libs/glibcasm/glibc/include/stackinfo.h - - contrib/libs/glibcasm/glibc/sysdeps/x86_64/stackinfo.h - - stdlib.h: contrib/libs/glibcasm/glibc/include/stdlib.h - - stdlib/stdint.h: contrib/libs/glibcasm/glibc/stdlib/stdint.h - - string.h: contrib/libs/glibcasm/glibc/include/string.h - - strings.h: contrib/libs/glibcasm/glibc/include/strings.h - - sys/cdefs.h: contrib/libs/glibcasm/glibc/include/sys/cdefs.h - - sys/mman.h: contrib/libs/glibcasm/glibc/include/sys/mman.h - - sys/param.h: contrib/libs/glibcasm/glibc/include/sys/param.h - - sys/procfs.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/sys/procfs.h - - sys/select.h: contrib/libs/glibcasm/glibc/include/sys/select.h - - sys/socket.h: contrib/libs/glibcasm/glibc/include/sys/socket.h - - sys/stat.h: contrib/libs/glibcasm/glibc/include/sys/stat.h - - sys/syscall.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/include/sys/syscall.h - - sys/time.h: contrib/libs/glibcasm/glibc/include/sys/time.h - - sys/types.h: contrib/libs/glibcasm/glibc/include/sys/types.h - - sys/ucontext.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86/sys/ucontext.h - - sys/user.h: contrib/libs/glibcasm/glibc/sysdeps/unix/sysv/linux/x86/sys/user.h - - time.h: contrib/libs/glibcasm/glibc/include/time.h - - tls.h: contrib/libs/glibcasm/glibc/sysdeps/x86_64/nptl/tls.h - - unistd.h: contrib/libs/glibcasm/glibc/include/unistd.h - - unwind.h: contrib/libs/glibcasm/glibc/sysdeps/generic/unwind.h - # includes under ifdef - - bits/select2.h: contrib/libs/glibcasm/dummy.h - - bits/setjmp2.h: contrib/libs/glibcasm/dummy.h - - bits/socket2.h: contrib/libs/glibcasm/dummy.h - - bits/socket-constants.h: contrib/libs/glibcasm/dummy.h - - bits/stdlib.h: contrib/libs/glibcasm/dummy.h - - bits/stdlib-ldbl.h: contrib/libs/glibcasm/dummy.h - - bits/string_fortified.h: contrib/libs/glibcasm/dummy.h - - bits/strings_fortified.h: contrib/libs/glibcasm/dummy.h - - bits/struct_stat_time64_helper.h: contrib/libs/glibcasm/dummy.h - - bits/unistd.h: contrib/libs/glibcasm/dummy.h - - dl-cet.h: contrib/libs/glibcasm/dummy.h - - dl-mman.h: contrib/libs/glibcasm/dummy.h - - dl-unistd.h: contrib/libs/glibcasm/dummy.h - - elf/dl-tunables.h: contrib/libs/glibcasm/dummy.h - - linux/close_range.h: contrib/libs/glibcasm/dummy.h - - sysdeps/i386/dl-procinfo.c: contrib/libs/glibcasm/dummy.h - - sysdeps/generic/hp-timing.h: contrib/libs/glibcasm/dummy.h - - sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h: contrib/libs/glibcasm/dummy.h - - sysdeps/unix/sysv/linux/sys/syscall.h: contrib/libs/glibcasm/dummy.h - -- source_filter: "^contrib/libs/libunwind/include/unwind.h" - includes: - - stdint.h: - - contrib/libs/glibcasm/glibc/include/stdint.h - - contrib/libs/cxxsupp/libcxx/include/stdint.h - -- source_filter: "^contrib/libs/cxxsupp/libcxx/include/inttypes.h" - includes: - - stdint.h: - - contrib/libs/glibcasm/glibc/include/stdint.h - - contrib/libs/cxxsupp/libcxx/include/stdint.h - diff --git a/build/sysincl/nds32.yml b/build/sysincl/nds32.yml deleted file mode 100644 index c8842c993d..0000000000 --- a/build/sysincl/nds32.yml +++ /dev/null @@ -1,2 +0,0 @@ -- includes: - - nds_intrinsic.h diff --git a/build/sysincl/newlib.yml b/build/sysincl/newlib.yml deleted file mode 100644 index f141075339..0000000000 --- a/build/sysincl/newlib.yml +++ /dev/null @@ -1,5 +0,0 @@ -- includes: - - _ansi.h - - bits/functexcept.h - - reent.h - - sys/features.h diff --git a/build/sysincl/nvidia.yml b/build/sysincl/nvidia.yml deleted file mode 100644 index 92452877a2..0000000000 --- a/build/sysincl/nvidia.yml +++ /dev/null @@ -1,69 +0,0 @@ -# build/platform/cuda (include/ and extras/CUPTI/include/) -- includes: - - cooperative_groups.h - - cooperative_groups/reduce.h - - cuComplex.h - # Though cub is provided as a part of CUDA HPC SDK, - # we would like to be updatable independently. - # Hence we are using it directly from Arcadia. - # This sysincl enforces such usage. - - cub/cub.cuh: contrib/libs/nvidia/cub/cub/cub.cuh - - cublas.h - - cublasLt.h - - cublas_v2.h - - cuda.h - - cudaProfiler.h - - cudaTypedefs.h - - cuda_bf16.h - - cuda_fp16.h - - cuda_gl_interop.h - - cuda_occupancy.h - - cuda_profiler_api.h - - cuda_runtime.h - - cuda_runtime_api.h - - cufft.h - - cufftXt.h - - cupti.h - - curand.h - - curand_kernel.h - - curand_mtgp32_host.h - - curand_mtgp32dc_p_11213.h - - cusolverDn.h - - cusolverSp.h - - cusparse.h - - cusparseLt.h - - device_atomic_functions.h - - device_types.h - - driver_types.h - - host_defines.h - - library_types.h - - math_constants.h - - nvrtc.h - - nvToolsExtCuda.h - - npp.h - - nppi.h - - nvToolsExt.h - - surface_types.h - - texture_types.h - - vector_types.h - # Though thrust is provided as a part of CUDA HPC SDK, - # we would like to be updatable independently. - # Hence we are using it directly from Arcadia. - # This sysincl enforces such usage. - - thrust/iterator/iterator_traits.h: contrib/libs/nvidia/thrust/thrust/iterator/iterator_traits.h - - thrust/iterator/iterator_facade.h: contrib/libs/nvidia/thrust/thrust/iterator/iterator_facade.h - - thrust/system/cuda/detail/core/triple_chevron_launch.h: contrib/libs/nvidia/thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h - - thrust/version.h: contrib/libs/nvidia/thrust/thrust/version.h -# These headers should be provided by TensorRT. -# Proper solution must be found in DTCC-171 -- source_filter: "^contrib/libs/tf-2.4/.*" - includes: - - NvInfer.h - - NvInferPlugin.h -# Add support nvrtc -- source_filter: "^contrib/libs/nvidia/cutlass/.*" - includes: - - cuda/std/cassert - - cuda/std/cmath - - cuda/std/cstdint - - mma.h diff --git a/build/sysincl/opensource.yml b/build/sysincl/opensource.yml deleted file mode 100644 index b7f3527648..0000000000 --- a/build/sysincl/opensource.yml +++ /dev/null @@ -1,5 +0,0 @@ -# libimagequant is GPL-licensed. -# We would like to prevent our open source projects from depending on GPL-licensed software. -- source_filter: "^contrib/python/Pillow/py3" - includes: - - libimagequant.h diff --git a/build/sysincl/python.yml b/build/sysincl/python.yml deleted file mode 100644 index 32e8d7ff76..0000000000 --- a/build/sysincl/python.yml +++ /dev/null @@ -1,104 +0,0 @@ -- source_filter: "^(?!(contrib/tools/python|library/python/runtime|library/python/symbols))" - includes: - - Python-ast.h - - Python.h - - abstract.h - - accu.h - - asdl.h - - bltinmodule.h - - boolobject.h - - bufferobject.h - - bytearrayobject.h - - bytes_methods.h - - bytesobject.h - - cStringIO.h - - cellobject.h - - ceval.h - - classobject.h - - cobject.h - - codecs.h - - compile.h - - complexobject.h - - config_platform.h - - datetime.h - - descrobject.h - - dictobject.h - - dtoa.h - - dynamic_annotations.h - - enumobject.h - - errcode.h - - fileobject.h - - floatobject.h - - frameobject.h - - funcobject.h - - genobject.h - - graminit.h - - grammar.h - - import.h - - intobject.h - - intrcheck.h - - iterobject.h - - listobject.h - - longintrepr.h - - longobject.h - - marshal.h - - memoryobject.h - - metagrammar.h - - methodobject.h - - modsupport.h - - moduleobject.h - - namespaceobject.h - - object.h - - objimpl.h - - odictobject.h - - opcode.h - - osdefs.h - - osmodule.h - - parsetok.h - - patchlevel.h - - pgen.h - - pgenheaders.h - - py_curses.h - - pyarena.h - - pyatomic.h - - pycapsule.h - - pyconfig.h - - pyctype.h - - pydebug.h - - pydtrace.h - - pyerrors.h - - pyexpat.h - - pyfpe.h - - pygetopt.h - - pyhash.h - - pylifecycle.h - - pymacconfig.h - - pymacro.h - - pymactoolbox.h - - pymath.h - - pymem.h - - pyport.h - - pystate.h - - pystrcmp.h - - pystrhex.h - - pystrtod.h - - pythonrun.h - - pythread.h - - pytime.h - - rangeobject.h - - setobject.h - - sliceobject.h - - stringobject.h - - structmember.h - - structseq.h - - symtable.h - - sysmodule.h - - timefuncs.h - - token.h - - traceback.h - - tupleobject.h - - typeslots.h - - ucnhash.h - - unicodeobject.h - - warnings.h - - weakrefobject.h diff --git a/build/sysincl/stl-to-libcxx.yml b/build/sysincl/stl-to-libcxx.yml deleted file mode 100644 index ee8f99ae6d..0000000000 --- a/build/sysincl/stl-to-libcxx.yml +++ /dev/null @@ -1,448 +0,0 @@ -# libc & stl common headers should be resolved to either -# * system libc (e.g. nothing in our repo) -# * system libc++ (e.g. nothing in our repo) -# * libcxx -# * musl -# or some combination of them depending on the build flags. - -# We want musl to resolve itself without these sysincls, but its test must have them -# When these resolved in pure C modules, their own includes should be also resolved via sysincl (the list at the bottom) -# If you add something here, please also add include to it into build/sysincl/check/cxx.c for proper testing -- source_filter: "^(?!(contrib/libs/libunistring|contrib/libs/musl|contrib/tools/yasm)).*|^contrib/libs/musl/tests" - includes: - - complex.h: contrib/libs/cxxsupp/libcxx/include/complex.h - - ctype.h: contrib/libs/cxxsupp/libcxx/include/ctype.h - - errno.h: contrib/libs/cxxsupp/libcxx/include/errno.h - - fenv.h: contrib/libs/cxxsupp/libcxx/include/fenv.h - - float.h: contrib/libs/cxxsupp/libcxx/include/float.h - - inttypes.h: contrib/libs/cxxsupp/libcxx/include/inttypes.h - - limits.h: contrib/libs/cxxsupp/libcxx/include/limits.h - - locale.h: contrib/libs/cxxsupp/libcxx/include/locale.h - - math.h: contrib/libs/cxxsupp/libcxx/include/math.h - - stdatomic.h: contrib/libs/cxxsupp/libcxx/include/stdatomic.h - - setjmp.h: contrib/libs/cxxsupp/libcxx/include/setjmp.h - - stdbool.h: contrib/libs/cxxsupp/libcxx/include/stdbool.h - - stddef.h: contrib/libs/cxxsupp/libcxx/include/stddef.h - - stdint.h: contrib/libs/cxxsupp/libcxx/include/stdint.h - - stdio.h: contrib/libs/cxxsupp/libcxx/include/stdio.h - - stdlib.h: contrib/libs/cxxsupp/libcxx/include/stdlib.h - - string.h: contrib/libs/cxxsupp/libcxx/include/string.h - - tgmath.h: contrib/libs/cxxsupp/libcxx/include/tgmath.h - - wchar.h: contrib/libs/cxxsupp/libcxx/include/wchar.h - - wctype.h: contrib/libs/cxxsupp/libcxx/include/wctype.h - -- includes: - - cxxabi.h: - - contrib/libs/cxxsupp/libcxxrt/include/cxxabi.h - - omp.h: - - contrib/libs/cxxsupp/openmp/omp.h - - unwind.h: - - contrib/libs/cxxsupp/libcxx/include/unwind.h - - contrib/libs/cxxsupp/libcxxrt/unwind.h - - contrib/libs/libunwind/include/unwind.h - -- source_filter: "^contrib/libs/cxxsupp/libcxxabi/" - includes: - - cxxabi.h: contrib/libs/cxxsupp/libcxxabi/include/cxxabi.h - -- includes: - - algorithm: contrib/libs/cxxsupp/libcxx/include/algorithm - - any: contrib/libs/cxxsupp/libcxx/include/any - - array: contrib/libs/cxxsupp/libcxx/include/array - - atomic: contrib/libs/cxxsupp/libcxx/include/atomic - - bit: contrib/libs/cxxsupp/libcxx/include/bit - - bitset: contrib/libs/cxxsupp/libcxx/include/bitset - - cassert: contrib/libs/cxxsupp/libcxx/include/cassert - - ccomplex: contrib/libs/cxxsupp/libcxx/include/ccomplex - - cctype: contrib/libs/cxxsupp/libcxx/include/cctype - - cerrno: contrib/libs/cxxsupp/libcxx/include/cerrno - - cfenv: contrib/libs/cxxsupp/libcxx/include/cfenv - - cfloat: contrib/libs/cxxsupp/libcxx/include/cfloat - - charconv: contrib/libs/cxxsupp/libcxx/include/charconv - - chrono: contrib/libs/cxxsupp/libcxx/include/chrono - - cinttypes: contrib/libs/cxxsupp/libcxx/include/cinttypes - - ciso646: contrib/libs/cxxsupp/libcxx/include/ciso646 - - climits: contrib/libs/cxxsupp/libcxx/include/climits - - clocale: contrib/libs/cxxsupp/libcxx/include/clocale - - cmath: contrib/libs/cxxsupp/libcxx/include/cmath - - codecvt: contrib/libs/cxxsupp/libcxx/include/codecvt - - compare: contrib/libs/cxxsupp/libcxx/include/compare - - complex: contrib/libs/cxxsupp/libcxx/include/complex - - concepts: contrib/libs/cxxsupp/libcxx/include/concepts - - condition_variable: contrib/libs/cxxsupp/libcxx/include/condition_variable - - coroutine: contrib/libs/cxxsupp/libcxx/include/coroutine - - csetjmp: contrib/libs/cxxsupp/libcxx/include/csetjmp - - csignal: contrib/libs/cxxsupp/libcxx/include/csignal - - cstdarg: contrib/libs/cxxsupp/libcxx/include/cstdarg - - cstdbool: contrib/libs/cxxsupp/libcxx/include/cstdbool - - cstddef: contrib/libs/cxxsupp/libcxx/include/cstddef - - cstdint: contrib/libs/cxxsupp/libcxx/include/cstdint - - cstdio: contrib/libs/cxxsupp/libcxx/include/cstdio - - cstdlib: contrib/libs/cxxsupp/libcxx/include/cstdlib - - cstring: contrib/libs/cxxsupp/libcxx/include/cstring - - ctgmath: contrib/libs/cxxsupp/libcxx/include/ctgmath - - ctime: contrib/libs/cxxsupp/libcxx/include/ctime - - cwchar: contrib/libs/cxxsupp/libcxx/include/cwchar - - cwctype: contrib/libs/cxxsupp/libcxx/include/cwctype - - deque: contrib/libs/cxxsupp/libcxx/include/deque - - exception: contrib/libs/cxxsupp/libcxx/include/exception - - filesystem: contrib/libs/cxxsupp/libcxx/include/filesystem - - forward_list: contrib/libs/cxxsupp/libcxx/include/forward_list - - fstream: contrib/libs/cxxsupp/libcxx/include/fstream - - functional: contrib/libs/cxxsupp/libcxx/include/functional - - future: contrib/libs/cxxsupp/libcxx/include/future - - initializer_list: contrib/libs/cxxsupp/libcxx/include/initializer_list - - iomanip: contrib/libs/cxxsupp/libcxx/include/iomanip - - ios: contrib/libs/cxxsupp/libcxx/include/ios - - iosfwd: contrib/libs/cxxsupp/libcxx/include/iosfwd - - iostream: contrib/libs/cxxsupp/libcxx/include/iostream - - istream: contrib/libs/cxxsupp/libcxx/include/istream - - iterator: contrib/libs/cxxsupp/libcxx/include/iterator - - limits: contrib/libs/cxxsupp/libcxx/include/limits - - list: contrib/libs/cxxsupp/libcxx/include/list - - locale: contrib/libs/cxxsupp/libcxx/include/locale - - map: contrib/libs/cxxsupp/libcxx/include/map - - memory: contrib/libs/cxxsupp/libcxx/include/memory - - mutex: contrib/libs/cxxsupp/libcxx/include/mutex - - new: contrib/libs/cxxsupp/libcxx/include/new - - numeric: contrib/libs/cxxsupp/libcxx/include/numeric - - optional: contrib/libs/cxxsupp/libcxx/include/optional - - ostream: contrib/libs/cxxsupp/libcxx/include/ostream - - queue: contrib/libs/cxxsupp/libcxx/include/queue - - random: contrib/libs/cxxsupp/libcxx/include/random - - ranges: contrib/libs/cxxsupp/libcxx/include/ranges - - ratio: contrib/libs/cxxsupp/libcxx/include/ratio - - regex: contrib/libs/cxxsupp/libcxx/include/regex - - scoped_allocator: contrib/libs/cxxsupp/libcxx/include/scoped_allocator - - set: contrib/libs/cxxsupp/libcxx/include/set - - shared_mutex: contrib/libs/cxxsupp/libcxx/include/shared_mutex - - span: contrib/libs/cxxsupp/libcxx/include/span - - sstream: contrib/libs/cxxsupp/libcxx/include/sstream - - stack: contrib/libs/cxxsupp/libcxx/include/stack - - stdexcept: contrib/libs/cxxsupp/libcxx/include/stdexcept - - stlfwd: contrib/libs/cxxsupp/libcxx/include/stlfwd - - streambuf: contrib/libs/cxxsupp/libcxx/include/streambuf - - string: contrib/libs/cxxsupp/libcxx/include/string - - string_view: contrib/libs/cxxsupp/libcxx/include/string_view - - strstream: contrib/libs/cxxsupp/libcxx/include/strstream - - system_error: contrib/libs/cxxsupp/libcxx/include/system_error - - thread: contrib/libs/cxxsupp/libcxx/include/thread - - tuple: contrib/libs/cxxsupp/libcxx/include/tuple - - typeindex: contrib/libs/cxxsupp/libcxx/include/typeindex - - typeinfo: contrib/libs/cxxsupp/libcxx/include/typeinfo - - type_traits: contrib/libs/cxxsupp/libcxx/include/type_traits - - unordered_map: contrib/libs/cxxsupp/libcxx/include/unordered_map - - unordered_set: contrib/libs/cxxsupp/libcxx/include/unordered_set - - use_ansi.h: contrib/libs/cxxsupp/libcxx/include/use_ansi.h - - utility: contrib/libs/cxxsupp/libcxx/include/utility - - valarray: contrib/libs/cxxsupp/libcxx/include/valarray - - variant: contrib/libs/cxxsupp/libcxx/include/variant - - vector: contrib/libs/cxxsupp/libcxx/include/vector - - version: contrib/libs/cxxsupp/libcxx/include/version - -# Though these are headers provided by libcxx, we do not want to allow them to be included. -# We are using non-existent filename to generate error instead, as there is no specific syntax for this case. -- includes: - - ext/hash_map: DO_NOT_INCLUDE_NON_STANDARD_EXT_HASH_MAP - - ext/hash_set: DO_NOT_INCLUDE_NON_STANDARD_EXT_HASH_SET - - experimental/any: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_ANY - - experimental/chrono: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_CHRONO - - experimental/filesystem: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_FILESYSTEM - - experimental/numeric: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_NUMERIC - - experimental/optional: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_OPTIONAL - - experimental/ratio: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_RATIO - - experimental/source_location: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_SOURCE_LOCATION - - experimental/string_view: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_STRING_VIEW - - experimental/system_error: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_SYSTEM_ERROR - - experimental/tuple: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_TUPLE - - # TODO: Forbid including <experimental/coroutine> upon migration to clang14 - - experimental/coroutine: contrib/libs/cxxsupp/libcxx/include/experimental/coroutine - -- source_filter: "^contrib/restricted/boost" - includes: - - ../include/fenv.h: contrib/libs/cxxsupp/libcxx/include/fenv.h - -# This includes all headers needed to resolve includes in c-headers from libcxx listed avove -- includes: - - __assert: contrib/libs/cxxsupp/libcxx/include/__assert - - __availability: contrib/libs/cxxsupp/libcxx/include/__availability - - __bsd_locale_fallbacks.h: contrib/libs/cxxsupp/libcxx/include/__bsd_locale_fallbacks.h - - __locale: contrib/libs/cxxsupp/libcxx/include/__locale - - __bit_reference: contrib/libs/cxxsupp/libcxx/include/__bit_reference - - __bits: contrib/libs/cxxsupp/libcxx/include/__bits - - __config: contrib/libs/cxxsupp/libcxx/include/__config - - __debug: contrib/libs/cxxsupp/libcxx/include/__debug - - __errc: contrib/libs/cxxsupp/libcxx/include/__errc - - __locale: contrib/libs/cxxsupp/libcxx/include/__locale - - __mbstate_t.h: contrib/libs/cxxsupp/libcxx/include/__mbstate_t.h - - __mutex_base: contrib/libs/cxxsupp/libcxx/include/__mutex_base - - __string: contrib/libs/cxxsupp/libcxx/include/__string - - __threading_support: contrib/libs/cxxsupp/libcxx/include/__threading_support - - __tuple: contrib/libs/cxxsupp/libcxx/include/__tuple - - __undef_macros: contrib/libs/cxxsupp/libcxx/include/__undef_macros - - __wrappers_config: contrib/libs/cxxsupp/libcxx/include/__wrappers_config - - __algorithm/adjacent_find.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/adjacent_find.h - - __algorithm/all_of.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/all_of.h - - __algorithm/any_of.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/any_of.h - - __algorithm/binary_search.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/binary_search.h - - __algorithm/clamp.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h - - __algorithm/comp.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/comp.h - - __algorithm/comp_ref_type.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h - - __algorithm/copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/copy.h - - __algorithm/copy_backward.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/copy_backward.h - - __algorithm/copy_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/copy_if.h - - __algorithm/copy_n.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/copy_n.h - - __algorithm/count.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/count.h - - __algorithm/count_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/count_if.h - - __algorithm/equal.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/equal.h - - __algorithm/equal_range.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/equal_range.h - - __algorithm/fill.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/fill.h - - __algorithm/fill_n.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/fill_n.h - - __algorithm/find.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/find.h - - __algorithm/find_end.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/find_end.h - - __algorithm/find_first_of.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/find_first_of.h - - __algorithm/find_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/find_if.h - - __algorithm/find_if_not.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/find_if_not.h - - __algorithm/for_each.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/for_each.h - - __algorithm/for_each_n.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/for_each_n.h - - __algorithm/generate.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/generate.h - - __algorithm/generate_n.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/generate_n.h - - __algorithm/half_positive.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/half_positive.h - - __algorithm/in_fun_result.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/in_fun_result.h - - __algorithm/in_in_out_result.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h - - __algorithm/in_in_result.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_result.h - - __algorithm/in_out_out_result.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_out_result.h - - __algorithm/in_out_result.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h - - __algorithm/includes.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/includes.h - - __algorithm/inplace_merge.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/inplace_merge.h - - __algorithm/is_heap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_heap.h - - __algorithm/is_heap_until.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_heap_until.h - - __algorithm/is_partitioned.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_partitioned.h - - __algorithm/is_permutation.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_permutation.h - - __algorithm/is_sorted.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_sorted.h - - __algorithm/is_sorted_until.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/is_sorted_until.h - - __algorithm/iter_swap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/iter_swap.h - - __algorithm/lexicographical_compare.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/lexicographical_compare.h - - __algorithm/lower_bound.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/lower_bound.h - - __algorithm/make_heap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/make_heap.h - - __algorithm/max.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/max.h - - __algorithm/max_element.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/max_element.h - - __algorithm/merge.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/merge.h - - __algorithm/min.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/min.h - - __algorithm/min_element.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/min_element.h - - __algorithm/minmax.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/minmax.h - - __algorithm/minmax_element.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/minmax_element.h - - __algorithm/mismatch.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/mismatch.h - - __algorithm/move.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/move.h - - __algorithm/move_backward.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/move_backward.h - - __algorithm/next_permutation.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/next_permutation.h - - __algorithm/none_of.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/none_of.h - - __algorithm/nth_element.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/nth_element.h - - __algorithm/partial_sort.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/partial_sort.h - - __algorithm/partial_sort_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/partial_sort_copy.h - - __algorithm/partition.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/partition.h - - __algorithm/partition_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/partition_copy.h - - __algorithm/partition_point.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/partition_point.h - - __algorithm/pop_heap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/pop_heap.h - - __algorithm/prev_permutation.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/prev_permutation.h - - __algorithm/push_heap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/push_heap.h - - __algorithm/ranges_min_element.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h - - __algorithm/ranges_swap_ranges.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_swap_ranges.h - - __algorithm/remove.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/remove.h - - __algorithm/remove_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/remove_copy.h - - __algorithm/remove_copy_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/remove_copy_if.h - - __algorithm/remove_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/remove_if.h - - __algorithm/replace.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/replace.h - - __algorithm/replace_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/replace_copy.h - - __algorithm/replace_copy_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/replace_copy_if.h - - __algorithm/replace_if.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/replace_if.h - - __algorithm/reverse.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/reverse.h - - __algorithm/reverse_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/reverse_copy.h - - __algorithm/rotate.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/rotate.h - - __algorithm/rotate_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/rotate_copy.h - - __algorithm/sample.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h - - __algorithm/search.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/search.h - - __algorithm/search_n.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/search_n.h - - __algorithm/set_difference.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/set_difference.h - - __algorithm/set_intersection.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/set_intersection.h - - __algorithm/set_symmetric_difference.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/set_symmetric_difference.h - - __algorithm/set_union.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/set_union.h - - __algorithm/shift_left.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/shift_left.h - - __algorithm/shift_right.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/shift_right.h - - __algorithm/shuffle.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/shuffle.h - - __algorithm/sift_down.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/sift_down.h - - __algorithm/sort.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/sort.h - - __algorithm/sort_heap.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/sort_heap.h - - __algorithm/stable_partition.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/stable_partition.h - - __algorithm/stable_sort.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/stable_sort.h - - __algorithm/swap_ranges.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/swap_ranges.h - - __algorithm/transform.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/transform.h - - __algorithm/unique.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/unique.h - - __algorithm/unique_copy.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/unique_copy.h - - __algorithm/unwrap_iter.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/unwrap_iter.h - - __algorithm/upper_bound.h: contrib/libs/cxxsupp/libcxx/include/__algorithm/upper_bound.h - - __bit/bit_cast.h: contrib/libs/cxxsupp/libcxx/include/__bit/bit_cast.h - - __bit/byteswap.h: contrib/libs/cxxsupp/libcxx/include/__bit/byteswap.h - - __chrono/calendar.h: contrib/libs/cxxsupp/libcxx/include/__chrono/calendar.h - - __chrono/convert_to_timespec.h: contrib/libs/cxxsupp/libcxx/include/__chrono/convert_to_timespec.h - - __chrono/duration.h: contrib/libs/cxxsupp/libcxx/include/__chrono/duration.h - - __chrono/file_clock.h: contrib/libs/cxxsupp/libcxx/include/__chrono/file_clock.h - - __chrono/high_resolution_clock.h: contrib/libs/cxxsupp/libcxx/include/__chrono/high_resolution_clock.h - - __chrono/steady_clock.h: contrib/libs/cxxsupp/libcxx/include/__chrono/steady_clock.h - - __chrono/system_clock.h: contrib/libs/cxxsupp/libcxx/include/__chrono/system_clock.h - - __chrono/time_point.h: contrib/libs/cxxsupp/libcxx/include/__chrono/time_point.h - - __compare/common_comparison_category.h: contrib/libs/cxxsupp/libcxx/include/__compare/common_comparison_category.h - - __compare/compare_partial_order_fallback.h: contrib/libs/cxxsupp/libcxx/include/__compare/compare_partial_order_fallback.h - - __compare/compare_strong_order_fallback.h: contrib/libs/cxxsupp/libcxx/include/__compare/compare_strong_order_fallback.h - - __compare/compare_three_way.h: contrib/libs/cxxsupp/libcxx/include/__compare/compare_three_way.h - - __compare/compare_three_way_result.h: contrib/libs/cxxsupp/libcxx/include/__compare/compare_three_way_result.h - - __compare/compare_weak_order_fallback.h: contrib/libs/cxxsupp/libcxx/include/__compare/compare_weak_order_fallback.h - - __compare/is_eq.h: contrib/libs/cxxsupp/libcxx/include/__compare/is_eq.h - - __compare/ordering.h: contrib/libs/cxxsupp/libcxx/include/__compare/ordering.h - - __compare/partial_order.h: contrib/libs/cxxsupp/libcxx/include/__compare/partial_order.h - - __compare/strong_order.h: contrib/libs/cxxsupp/libcxx/include/__compare/strong_order.h - - __compare/synth_three_way.h: contrib/libs/cxxsupp/libcxx/include/__compare/synth_three_way.h - - __compare/three_way_comparable.h: contrib/libs/cxxsupp/libcxx/include/__compare/three_way_comparable.h - - __compare/weak_order.h: contrib/libs/cxxsupp/libcxx/include/__compare/weak_order.h - - __concepts/arithmetic.h: contrib/libs/cxxsupp/libcxx/include/__concepts/arithmetic.h - - __concepts/assignable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/assignable.h - - __concepts/boolean_testable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/boolean_testable.h - - __concepts/class_or_enum.h: contrib/libs/cxxsupp/libcxx/include/__concepts/class_or_enum.h - - __concepts/common_reference_with.h: contrib/libs/cxxsupp/libcxx/include/__concepts/common_reference_with.h - - __concepts/common_with.h: contrib/libs/cxxsupp/libcxx/include/__concepts/common_with.h - - __concepts/constructible.h: contrib/libs/cxxsupp/libcxx/include/__concepts/constructible.h - - __concepts/convertible_to.h: contrib/libs/cxxsupp/libcxx/include/__concepts/convertible_to.h - - __concepts/copyable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/copyable.h - - __concepts/derived_from.h: contrib/libs/cxxsupp/libcxx/include/__concepts/derived_from.h - - __concepts/destructible.h: contrib/libs/cxxsupp/libcxx/include/__concepts/destructible.h - - __concepts/different_from.h: contrib/libs/cxxsupp/libcxx/include/__concepts/different_from.h - - __concepts/equality_comparable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/equality_comparable.h - - __concepts/invocable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/invocable.h - - __concepts/movable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/movable.h - - __concepts/predicate.h: contrib/libs/cxxsupp/libcxx/include/__concepts/predicate.h - - __concepts/regular.h: contrib/libs/cxxsupp/libcxx/include/__concepts/regular.h - - __concepts/relation.h: contrib/libs/cxxsupp/libcxx/include/__concepts/relation.h - - __concepts/same_as.h: contrib/libs/cxxsupp/libcxx/include/__concepts/same_as.h - - __concepts/semiregular.h: contrib/libs/cxxsupp/libcxx/include/__concepts/semiregular.h - - __concepts/swappable.h: contrib/libs/cxxsupp/libcxx/include/__concepts/swappable.h - - __concepts/totally_ordered.h: contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h - - __functional/binary_function.h: contrib/libs/cxxsupp/libcxx/include/__functional/binary_function.h - - __functional/binary_negate.h: contrib/libs/cxxsupp/libcxx/include/__functional/binary_negate.h - - __functional/bind.h: contrib/libs/cxxsupp/libcxx/include/__functional/bind.h - - __functional/bind_back.h: contrib/libs/cxxsupp/libcxx/include/__functional/bind_back.h - - __functional/bind_front.h: contrib/libs/cxxsupp/libcxx/include/__functional/bind_front.h - - __functional/binder1st.h: contrib/libs/cxxsupp/libcxx/include/__functional/binder1st.h - - __functional/binder2nd.h: contrib/libs/cxxsupp/libcxx/include/__functional/binder2nd.h - - __functional/compose.h: contrib/libs/cxxsupp/libcxx/include/__functional/compose.h - - __functional/default_searcher.h: contrib/libs/cxxsupp/libcxx/include/__functional/default_searcher.h - - __functional/function.h: contrib/libs/cxxsupp/libcxx/include/__functional/function.h - - __functional/hash.h: contrib/libs/cxxsupp/libcxx/include/__functional/hash.h - - __functional/identity.h: contrib/libs/cxxsupp/libcxx/include/__functional/identity.h - - __functional/invoke.h: contrib/libs/cxxsupp/libcxx/include/__functional/invoke.h - - __functional/mem_fn.h: contrib/libs/cxxsupp/libcxx/include/__functional/mem_fn.h - - __functional/mem_fun_ref.h: contrib/libs/cxxsupp/libcxx/include/__functional/mem_fun_ref.h - - __functional/not_fn.h: contrib/libs/cxxsupp/libcxx/include/__functional/not_fn.h - - __functional/operations.h: contrib/libs/cxxsupp/libcxx/include/__functional/operations.h - - __functional/perfect_forward.h: contrib/libs/cxxsupp/libcxx/include/__functional/perfect_forward.h - - __functional/pointer_to_binary_function.h: contrib/libs/cxxsupp/libcxx/include/__functional/pointer_to_binary_function.h - - __functional/pointer_to_unary_function.h: contrib/libs/cxxsupp/libcxx/include/__functional/pointer_to_unary_function.h - - __functional/ranges_operations.h: contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h - - __functional/reference_wrapper.h: contrib/libs/cxxsupp/libcxx/include/__functional/reference_wrapper.h - - __functional/unary_function.h: contrib/libs/cxxsupp/libcxx/include/__functional/unary_function.h - - __functional/unary_negate.h: contrib/libs/cxxsupp/libcxx/include/__functional/unary_negate.h - - __functional/unwrap_ref.h: contrib/libs/cxxsupp/libcxx/include/__functional/unwrap_ref.h - - __functional/weak_result_type.h: contrib/libs/cxxsupp/libcxx/include/__functional/weak_result_type.h - - __ios/fpos.h: contrib/libs/cxxsupp/libcxx/include/__ios/fpos.h - - __iterator/access.h: contrib/libs/cxxsupp/libcxx/include/__iterator/access.h - - __iterator/advance.h: contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h - - __iterator/back_insert_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/back_insert_iterator.h - - __iterator/common_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h - - __iterator/concepts.h: contrib/libs/cxxsupp/libcxx/include/__iterator/concepts.h - - __iterator/counted_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h - - __iterator/data.h: contrib/libs/cxxsupp/libcxx/include/__iterator/data.h - - __iterator/default_sentinel.h: contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h - - __iterator/distance.h: contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h - - __iterator/empty.h: contrib/libs/cxxsupp/libcxx/include/__iterator/empty.h - - __iterator/erase_if_container.h: contrib/libs/cxxsupp/libcxx/include/__iterator/erase_if_container.h - - __iterator/front_insert_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/front_insert_iterator.h - - __iterator/incrementable_traits.h: contrib/libs/cxxsupp/libcxx/include/__iterator/incrementable_traits.h - - __iterator/indirectly_comparable.h: contrib/libs/cxxsupp/libcxx/include/__iterator/indirectly_comparable.h - - __iterator/insert_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h - - __iterator/istream_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h - - __iterator/istreambuf_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h - - __iterator/iter_move.h: contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h - - __iterator/iter_swap.h: contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h - - __iterator/iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/iterator.h - - __iterator/iterator_traits.h: contrib/libs/cxxsupp/libcxx/include/__iterator/iterator_traits.h - - __iterator/move_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/move_iterator.h - - __iterator/next.h: contrib/libs/cxxsupp/libcxx/include/__iterator/next.h - - __iterator/ostream_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/ostream_iterator.h - - __iterator/ostreambuf_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/ostreambuf_iterator.h - - __iterator/permutable.h: contrib/libs/cxxsupp/libcxx/include/__iterator/permutable.h - - __iterator/prev.h: contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h - - __iterator/projected.h: contrib/libs/cxxsupp/libcxx/include/__iterator/projected.h - - __iterator/readable_traits.h: contrib/libs/cxxsupp/libcxx/include/__iterator/readable_traits.h - - __iterator/reverse_access.h: contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h - - __iterator/reverse_iterator.h: contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_iterator.h - - __iterator/size.h: contrib/libs/cxxsupp/libcxx/include/__iterator/size.h - - __iterator/unreachable_sentinel.h: contrib/libs/cxxsupp/libcxx/include/__iterator/unreachable_sentinel.h - - __iterator/wrap_iter.h: contrib/libs/cxxsupp/libcxx/include/__iterator/wrap_iter.h - - __memory/addressof.h: contrib/libs/cxxsupp/libcxx/include/__memory/addressof.h - - __memory/allocation_guard.h: contrib/libs/cxxsupp/libcxx/include/__memory/allocation_guard.h - - __memory/allocator.h: contrib/libs/cxxsupp/libcxx/include/__memory/allocator.h - - __memory/allocator_arg_t.h: contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h - - __memory/allocator_traits.h: contrib/libs/cxxsupp/libcxx/include/__memory/allocator_traits.h - - __memory/auto_ptr.h: contrib/libs/cxxsupp/libcxx/include/__memory/auto_ptr.h - - __memory/compressed_pair.h: contrib/libs/cxxsupp/libcxx/include/__memory/compressed_pair.h - - __memory/concepts.h: contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h - - __memory/construct_at.h: contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h - - __memory/pointer_traits.h: contrib/libs/cxxsupp/libcxx/include/__memory/pointer_traits.h - - __memory/ranges_construct_at.h: contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h - - __memory/ranges_uninitialized_algorithms.h: contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h - - __memory/raw_storage_iterator.h: contrib/libs/cxxsupp/libcxx/include/__memory/raw_storage_iterator.h - - __memory/shared_ptr.h: contrib/libs/cxxsupp/libcxx/include/__memory/shared_ptr.h - - __memory/temporary_buffer.h: contrib/libs/cxxsupp/libcxx/include/__memory/temporary_buffer.h - - __memory/uninitialized_algorithms.h: contrib/libs/cxxsupp/libcxx/include/__memory/uninitialized_algorithms.h - - __memory/unique_ptr.h: contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h - - __memory/uses_allocator.h: contrib/libs/cxxsupp/libcxx/include/__memory/uses_allocator.h - - __memory/voidify.h: contrib/libs/cxxsupp/libcxx/include/__memory/voidify.h - - __random/log2.h: contrib/libs/cxxsupp/libcxx/include/__random/log2.h - - __random/uniform_int_distribution.h: contrib/libs/cxxsupp/libcxx/include/__random/uniform_int_distribution.h - - __ranges/access.h: contrib/libs/cxxsupp/libcxx/include/__ranges/access.h - - __ranges/concepts.h: contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h - - __ranges/dangling.h: contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h - - __ranges/data.h: contrib/libs/cxxsupp/libcxx/include/__ranges/data.h - - __ranges/enable_borrowed_range.h: contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h - - __ranges/enable_view.h: contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h - - __ranges/size.h: contrib/libs/cxxsupp/libcxx/include/__ranges/size.h - - __support/ibm/locale_mgmt_zos.h: contrib/libs/cxxsupp/libcxx/include/__support/ibm/locale_mgmt_zos.h - - __support/xlocale/__posix_l_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__posix_l_fallback.h - - __support/xlocale/__posix_l_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__posix_l_fallback.h - - __support/xlocale/__strtonum_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__strtonum_fallback.h - - __support/xlocale/__nop_locale_mgmt.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__nop_locale_mgmt.h - - __support/xlocale/__posix_l_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__posix_l_fallback.h - - __support/xlocale/__strtonum_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__strtonum_fallback.h - - __support/xlocale/__strtonum_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__strtonum_fallback.h - - __support/xlocale/__posix_l_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__posix_l_fallback.h - - __support/xlocale/__strtonum_fallback.h: contrib/libs/cxxsupp/libcxx/include/__support/xlocale/__strtonum_fallback.h - - __thread/poll_with_backoff.h: contrib/libs/cxxsupp/libcxx/include/__thread/poll_with_backoff.h - - __thread/timed_backoff_policy.h: contrib/libs/cxxsupp/libcxx/include/__thread/timed_backoff_policy.h - - __utility/as_const.h: contrib/libs/cxxsupp/libcxx/include/__utility/as_const.h - - __utility/auto_cast.h: contrib/libs/cxxsupp/libcxx/include/__utility/auto_cast.h - - __utility/cmp.h: contrib/libs/cxxsupp/libcxx/include/__utility/cmp.h - - __utility/declval.h: contrib/libs/cxxsupp/libcxx/include/__utility/declval.h - - __utility/exchange.h: contrib/libs/cxxsupp/libcxx/include/__utility/exchange.h - - __utility/forward.h: contrib/libs/cxxsupp/libcxx/include/__utility/forward.h - - __utility/in_place.h: contrib/libs/cxxsupp/libcxx/include/__utility/in_place.h - - __utility/integer_sequence.h: contrib/libs/cxxsupp/libcxx/include/__utility/integer_sequence.h - - __utility/move.h: contrib/libs/cxxsupp/libcxx/include/__utility/move.h - - __utility/pair.h: contrib/libs/cxxsupp/libcxx/include/__utility/pair.h - - __utility/piecewise_construct.h: contrib/libs/cxxsupp/libcxx/include/__utility/piecewise_construct.h - - __utility/priority_tag.h: contrib/libs/cxxsupp/libcxx/include/__utility/priority_tag.h - - __utility/rel_ops.h: contrib/libs/cxxsupp/libcxx/include/__utility/rel_ops.h - - __utility/swap.h: contrib/libs/cxxsupp/libcxx/include/__utility/swap.h - - __utility/to_underlying.h: contrib/libs/cxxsupp/libcxx/include/__utility/to_underlying.h - - __utility/transaction.h: contrib/libs/cxxsupp/libcxx/include/__utility/transaction.h - - __utility/unreachable.h: contrib/libs/cxxsupp/libcxx/include/__utility/unreachable.h - - __variant/monostate.h: contrib/libs/cxxsupp/libcxx/include/__variant/monostate.h diff --git a/build/sysincl/stl-to-nothing.yml b/build/sysincl/stl-to-nothing.yml deleted file mode 100644 index 52bd76b009..0000000000 --- a/build/sysincl/stl-to-nothing.yml +++ /dev/null @@ -1,147 +0,0 @@ -# libc & stl common headers should be resolved to either -# * system libc (e.g. nothing in our repo) -# * system libc++ (e.g. nothing in our repo) -# * libcxx -# * musl -# or some combination of them depending on the build flags. - -# We want musl to resolve itself without these sysincls, but its test must have them -- source_filter: "^(?!contrib/libs/musl).*|^contrib/libs/musl/tests" - includes: - - complex.h - - ctype.h - - errno.h - - float.h - - inttypes.h - - limits.h - - locale.h - - math.h - - setjmp.h - - stdbool.h - - stddef.h - - stdint.h - - stdio.h - - stdlib.h - - string.h - - tgmath.h - - wchar.h - - wctype.h - -- includes: - - __config - - __undef_macros - - algorithm - - any - - array - - atomic - - bit - - bitset - - cassert - - ccomplex - - cctype - - cerrno - - cfenv - - cfloat - - charconv - - chrono - - cinttypes - - ciso646 - - climits - - clocale - - cmath - - codecvt - - compare - - complex - - concepts - - condition_variable - - coroutine - - csetjmp - - csignal - - cstdarg - - cstdbool - - cstddef - - cstdint - - cstdio - - cstdlib - - cstring - - ctgmath - - ctime - - cwchar - - cwctype - - cxxabi.h - - deque - - exception - - filesystem - - forward_list - - fstream - - functional - - future - - initializer_list - - iomanip - - ios - - iosfwd - - iostream - - istream - - iterator - - limits - - list - - locale - - map - - memory - - mutex - - new - - numeric - - optional - - ostream - - queue - - random - - ranges - - ratio - - regex - - scoped_allocator - - set - - shared_mutex - - span - - sstream - - stack - - stdexcept - - streambuf - - string - - string_view - - strstream - - system_error - - thread - - tuple - - typeindex - - typeinfo - - type_traits - - unordered_map - - unordered_set - - use_ansi.h - - utility - - valarray - - variant - - vector - - version - - unwind.h: - - contrib/libs/libunwind/include/unwind.h - - -# Though these are headers provided by libcxx, we do not want to allow them to be included. -# We are using non-existent filename to generate error instead, as there is no specific syntax for this case. -- includes: - - ext/hash_map: DO_NOT_INCLUDE_NON_STANDARD_EXT_HASH_MAP - - ext/hash_set: DO_NOT_INCLUDE_NON_STANDARD_EXT_HASH_SET - - experimental/any: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_ANY - - experimental/chrono: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_CHRONO - - experimental/filesystem: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_FILESYSTEM - - experimental/numeric: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_NUMERIC - - experimental/optional: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_OPTIONAL - - experimental/ratio: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_RATIO - - experimental/source_location: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_SOURCE_LOCATION - - experimental/string_view: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_STRING_VIEW - - experimental/system_error: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_SYSTEM_ERROR - - experimental/tuple: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_TUPLE - - # TODO: Forbid including <experimental/coroutine> upon migration to clang14 - - experimental/coroutine diff --git a/build/sysincl/swig-to-nothing.yml b/build/sysincl/swig-to-nothing.yml deleted file mode 100644 index 1d3f987371..0000000000 --- a/build/sysincl/swig-to-nothing.yml +++ /dev/null @@ -1,235 +0,0 @@ -- includes: -# (cd $S/contrib/tools/swig/Lib; find * '(' -not -path '*/*' -or -path 'typemaps/*' ')' -and '(' -name '*.i' -or -name '*.swg' ')' ) | awk '{print " - "$0}' - - allkw.swg - - attribute.i - - carrays.i - - cdata.i - - cmalloc.i - - constraints.i - - cpointer.i - - cstring.i - - cwstring.i - - director_common.swg - - exception.i - - intrusive_ptr.i - - inttypes.i - - math.i - - pointer.i - - runtime.swg - - shared_ptr.i - - std_except.i - - stdint.i - - stl.i - - swigarch.i - - swigerrors.swg - - swigfragments.swg - - swiginit.swg - - swiglabels.swg - - swigrun.i - - swigrun.swg - - swig.swg - - swigwarnings.swg - - swigwarn.swg - - typemaps/attribute.swg - - typemaps/carrays.swg - - typemaps/cdata.swg - - typemaps/cmalloc.swg - - typemaps/cpointer.swg - - typemaps/cstring.swg - - typemaps/cstrings.swg - - typemaps/cwstring.swg - - typemaps/enumint.swg - - typemaps/exception.swg - - typemaps/factory.swg - - typemaps/fragments.swg - - typemaps/implicit.swg - - typemaps/inoutlist.swg - - typemaps/misctypes.swg - - typemaps/primtypes.swg - - typemaps/ptrtypes.swg - - typemaps/std_except.swg - - typemaps/std_string.swg - - typemaps/std_strings.swg - - typemaps/std_wstring.swg - - typemaps/string.swg - - typemaps/strings.swg - - typemaps/swigmacros.swg - - typemaps/swigobject.swg - - typemaps/swigtype.swg - - typemaps/swigtypemaps.swg - - typemaps/typemaps.swg - - typemaps/valtypes.swg - - typemaps/void.swg - - typemaps/wstring.swg - - wchar.i - - windows.i -# (cd $S/contrib/tools/swig/Lib/python; find * '(' -not -path '*/*' -or -path 'typemaps/*' ')' -and '(' -name '*.i' -or -name '*.swg' ')' ) | awk '{print " - "$0}' - - argcargv.i - - attribute.i - - boost_shared_ptr.i - - builtin.swg - - carrays.i - - ccomplex.i - - cdata.i - - cmalloc.i - - complex.i - - cpointer.i - - cstring.i - - cwstring.i - - defarg.swg - - director.swg - - embed.i - - exception.i - - factory.i - - file.i - - implicit.i - - pyabc.i - - pyapi.swg - - pybackward.swg - - pybuffer.i - - pyclasses.swg - - pycomplex.swg - - pycontainer.swg - - pydocs.swg - - pyerrors.swg - - pyfragments.swg - - pyhead.swg - - pyinit.swg - - pyiterators.swg - - pymacros.swg - - pyname_compat.i - - pyopers.swg - - pyprimtypes.swg - - pyrun.swg - - pyruntime.swg - - pystdcommon.swg - - pystrings.swg - - pythonkw.swg - - python.swg - - pythreads.swg - - pytuplehlp.swg - - pytypemaps.swg - - pyuserdir.swg - - pywstrings.swg - - std_alloc.i - - std_array.i - - std_auto_ptr.i - - std_basic_string.i - - std_carray.i - - std_char_traits.i - - std_common.i - - std_complex.i - - std_container.i - - std_deque.i - - std_except.i - - std_ios.i - - std_iostream.i - - std_list.i - - std_map.i - - std_multimap.i - - std_multiset.i - - std_pair.i - - std_set.i - - std_shared_ptr.i - - std_sstream.i - - std_streambuf.i - - std_string.i - - std_unordered_map.i - - std_unordered_multimap.i - - std_unordered_multiset.i - - std_unordered_set.i - - std_vectora.i - - std_vector.i - - std_wios.i - - std_wiostream.i - - std_wsstream.i - - std_wstreambuf.i - - std_wstring.i - - stl.i - - typemaps.i - - wchar.i -# (cd $S/contrib/tools/swig/Lib/java; find * '(' -not -path '*/*' -or -path 'typemaps/*' ')' -and '(' -name '*.i' -or -name '*.swg' ')' ) | awk '{print " - "$0}' - - arrays_java.i - - boost_intrusive_ptr.i - - boost_shared_ptr.i - - director.swg - - enumsimple.swg - - enums.swg - - enumtypesafe.swg - - enumtypeunsafe.swg - - javahead.swg - - javakw.swg - - java.swg - - std_array.i - - std_auto_ptr.i - - std_common.i - - std_deque.i - - std_except.i - - std_list.i - - std_map.i - - std_pair.i - - std_set.i - - std_shared_ptr.i - - std_string.i - - std_unordered_map.i - - std_unordered_set.i - - std_vector.i - - std_wstring.i - - stl.i - - swiginterface.i - - typemaps.i - - various.i -# (cd $S/contrib/tools/swig/Lib/go; find * '(' -not -path '*/*' -or -path 'typemaps/*' ')' -and '(' -name '*.i' -or -name '*.swg' ')' ) | awk '{print " - "$0}' - - cdata.i - - director.swg - - exception.i - - gokw.swg - - goruntime.swg - - gostring.swg - - go.swg - - std_common.i - - std_deque.i - - std_except.i - - std_list.i - - std_map.i - - std_pair.i - - std_string.i - - std_vector.i - - stl.i - - typemaps.i -# (cd $S/contrib/tools/swig/Lib/perl5; find * '(' -not -path '*/*' -or -path 'typemaps/*' ')' -and '(' -name '*.i' -or -name '*.swg' ')' ) | awk '{print " - "$0}' - - attribute.i - - carrays.i - - cdata.i - - cmalloc.i - - cpointer.i - - cstring.i - - director.swg - - exception.i - - factory.i - - perl5.swg - - perlerrors.swg - - perlfragments.swg - - perlhead.swg - - perlinit.swg - - perlkw.swg - - perlmacros.swg - - perlmain.i - - perlopers.swg - - perlprimtypes.swg - - perlrun.swg - - perlruntime.swg - - perlstrings.swg - - perltypemaps.swg - - perluserdir.swg - - reference.i - - std_common.i - - std_deque.i - - std_except.i - - std_list.i - - std_map.i - - std_pair.i - - std_string.i - - std_vector.i - - stl.i - - typemaps.i diff --git a/build/sysincl/swig.yml b/build/sysincl/swig.yml deleted file mode 100644 index 9931a15e3c..0000000000 --- a/build/sysincl/swig.yml +++ /dev/null @@ -1,292 +0,0 @@ -# Generated by devtools/yamaker. -- includes: - - argcargv.i: - - contrib/tools/swig/Lib/python/argcargv.i - - arrays_java.i: - - contrib/tools/swig/Lib/java/arrays_java.i - - attribute.i: - - contrib/tools/swig/Lib/attribute.i - - contrib/tools/swig/Lib/perl5/attribute.i - - contrib/tools/swig/Lib/python/attribute.i - - boost_intrusive_ptr.i: - - contrib/tools/swig/Lib/java/boost_intrusive_ptr.i - - boost_shared_ptr.i: - - contrib/tools/swig/Lib/java/boost_shared_ptr.i - - contrib/tools/swig/Lib/python/boost_shared_ptr.i - - builtin.swg: - - contrib/tools/swig/Lib/python/builtin.swg - - carrays.i: - - contrib/tools/swig/Lib/carrays.i - - contrib/tools/swig/Lib/perl5/carrays.i - - contrib/tools/swig/Lib/python/carrays.i - - ccomplex.i: - - contrib/tools/swig/Lib/python/ccomplex.i - - cdata.i: - - contrib/tools/swig/Lib/cdata.i - - contrib/tools/swig/Lib/go/cdata.i - - contrib/tools/swig/Lib/perl5/cdata.i - - contrib/tools/swig/Lib/python/cdata.i - - cmalloc.i: - - contrib/tools/swig/Lib/cmalloc.i - - contrib/tools/swig/Lib/perl5/cmalloc.i - - contrib/tools/swig/Lib/python/cmalloc.i - - complex.i: - - contrib/tools/swig/Lib/python/complex.i - - cpointer.i: - - contrib/tools/swig/Lib/cpointer.i - - contrib/tools/swig/Lib/perl5/cpointer.i - - contrib/tools/swig/Lib/python/cpointer.i - - cstring.i: - - contrib/tools/swig/Lib/cstring.i - - contrib/tools/swig/Lib/perl5/cstring.i - - contrib/tools/swig/Lib/python/cstring.i - - cwstring.i: - - contrib/tools/swig/Lib/cwstring.i - - contrib/tools/swig/Lib/python/cwstring.i - - defarg.swg: - - contrib/tools/swig/Lib/python/defarg.swg - - director.swg: - - contrib/tools/swig/Lib/go/director.swg - - contrib/tools/swig/Lib/java/director.swg - - contrib/tools/swig/Lib/perl5/director.swg - - contrib/tools/swig/Lib/python/director.swg - - embed.i: - - contrib/tools/swig/Lib/python/embed.i - - enums.swg: - - contrib/tools/swig/Lib/java/enums.swg - - enumsimple.swg: - - contrib/tools/swig/Lib/java/enumsimple.swg - - enumtypesafe.swg: - - contrib/tools/swig/Lib/java/enumtypesafe.swg - - enumtypeunsafe.swg: - - contrib/tools/swig/Lib/java/enumtypeunsafe.swg - - exception.i: - - contrib/tools/swig/Lib/exception.i - - contrib/tools/swig/Lib/go/exception.i - - contrib/tools/swig/Lib/perl5/exception.i - - contrib/tools/swig/Lib/python/exception.i - - factory.i: - - contrib/tools/swig/Lib/perl5/factory.i - - contrib/tools/swig/Lib/python/factory.i - - file.i: - - contrib/tools/swig/Lib/python/file.i - - go.swg: - - contrib/tools/swig/Lib/go/go.swg - - gokw.swg: - - contrib/tools/swig/Lib/go/gokw.swg - - goruntime.swg: - - contrib/tools/swig/Lib/go/goruntime.swg - - gostring.swg: - - contrib/tools/swig/Lib/go/gostring.swg - - implicit.i: - - contrib/tools/swig/Lib/python/implicit.i - - java.swg: - - contrib/tools/swig/Lib/java/java.swg - - javahead.swg: - - contrib/tools/swig/Lib/java/javahead.swg - - javakw.swg: - - contrib/tools/swig/Lib/java/javakw.swg - - perl5.swg: - - contrib/tools/swig/Lib/perl5/perl5.swg - - perlerrors.swg: - - contrib/tools/swig/Lib/perl5/perlerrors.swg - - perlfragments.swg: - - contrib/tools/swig/Lib/perl5/perlfragments.swg - - perlhead.swg: - - contrib/tools/swig/Lib/perl5/perlhead.swg - - perlinit.swg: - - contrib/tools/swig/Lib/perl5/perlinit.swg - - perlkw.swg: - - contrib/tools/swig/Lib/perl5/perlkw.swg - - perlmacros.swg: - - contrib/tools/swig/Lib/perl5/perlmacros.swg - - perlmain.i: - - contrib/tools/swig/Lib/perl5/perlmain.i - - perlopers.swg: - - contrib/tools/swig/Lib/perl5/perlopers.swg - - perlprimtypes.swg: - - contrib/tools/swig/Lib/perl5/perlprimtypes.swg - - perlrun.swg: - - contrib/tools/swig/Lib/perl5/perlrun.swg - - perlruntime.swg: - - contrib/tools/swig/Lib/perl5/perlruntime.swg - - perlstrings.swg: - - contrib/tools/swig/Lib/perl5/perlstrings.swg - - perltypemaps.swg: - - contrib/tools/swig/Lib/perl5/perltypemaps.swg - - perluserdir.swg: - - contrib/tools/swig/Lib/perl5/perluserdir.swg - - pyabc.i: - - contrib/tools/swig/Lib/python/pyabc.i - - pyapi.swg: - - contrib/tools/swig/Lib/python/pyapi.swg - - pybackward.swg: - - contrib/tools/swig/Lib/python/pybackward.swg - - pybuffer.i: - - contrib/tools/swig/Lib/python/pybuffer.i - - pyclasses.swg: - - contrib/tools/swig/Lib/python/pyclasses.swg - - pycomplex.swg: - - contrib/tools/swig/Lib/python/pycomplex.swg - - pycontainer.swg: - - contrib/tools/swig/Lib/python/pycontainer.swg - - pydocs.swg: - - contrib/tools/swig/Lib/python/pydocs.swg - - pyerrors.swg: - - contrib/tools/swig/Lib/python/pyerrors.swg - - pyfragments.swg: - - contrib/tools/swig/Lib/python/pyfragments.swg - - pyhead.swg: - - contrib/tools/swig/Lib/python/pyhead.swg - - pyinit.swg: - - contrib/tools/swig/Lib/python/pyinit.swg - - pyiterators.swg: - - contrib/tools/swig/Lib/python/pyiterators.swg - - pymacros.swg: - - contrib/tools/swig/Lib/python/pymacros.swg - - pyname_compat.i: - - contrib/tools/swig/Lib/python/pyname_compat.i - - pyopers.swg: - - contrib/tools/swig/Lib/python/pyopers.swg - - pyprimtypes.swg: - - contrib/tools/swig/Lib/python/pyprimtypes.swg - - pyrun.swg: - - contrib/tools/swig/Lib/python/pyrun.swg - - pyruntime.swg: - - contrib/tools/swig/Lib/python/pyruntime.swg - - pystdcommon.swg: - - contrib/tools/swig/Lib/python/pystdcommon.swg - - pystrings.swg: - - contrib/tools/swig/Lib/python/pystrings.swg - - python.swg: - - contrib/tools/swig/Lib/python/python.swg - - pythonkw.swg: - - contrib/tools/swig/Lib/python/pythonkw.swg - - pythreads.swg: - - contrib/tools/swig/Lib/python/pythreads.swg - - pytuplehlp.swg: - - contrib/tools/swig/Lib/python/pytuplehlp.swg - - pytypemaps.swg: - - contrib/tools/swig/Lib/python/pytypemaps.swg - - pyuserdir.swg: - - contrib/tools/swig/Lib/python/pyuserdir.swg - - pywstrings.swg: - - contrib/tools/swig/Lib/python/pywstrings.swg - - reference.i: - - contrib/tools/swig/Lib/perl5/reference.i - - std_alloc.i: - - contrib/tools/swig/Lib/python/std_alloc.i - - std_array.i: - - contrib/tools/swig/Lib/java/std_array.i - - contrib/tools/swig/Lib/python/std_array.i - - std_auto_ptr.i: - - contrib/tools/swig/Lib/java/std_auto_ptr.i - - contrib/tools/swig/Lib/python/std_auto_ptr.i - - std_basic_string.i: - - contrib/tools/swig/Lib/python/std_basic_string.i - - std_carray.i: - - contrib/tools/swig/Lib/python/std_carray.i - - std_char_traits.i: - - contrib/tools/swig/Lib/python/std_char_traits.i - - std_common.i: - - contrib/tools/swig/Lib/go/std_common.i - - contrib/tools/swig/Lib/java/std_common.i - - contrib/tools/swig/Lib/perl5/std_common.i - - contrib/tools/swig/Lib/python/std_common.i - - std_complex.i: - - contrib/tools/swig/Lib/python/std_complex.i - - std_container.i: - - contrib/tools/swig/Lib/python/std_container.i - - std_deque.i: - - contrib/tools/swig/Lib/go/std_deque.i - - contrib/tools/swig/Lib/java/std_deque.i - - contrib/tools/swig/Lib/perl5/std_deque.i - - contrib/tools/swig/Lib/python/std_deque.i - - std_except.i: - - contrib/tools/swig/Lib/go/std_except.i - - contrib/tools/swig/Lib/java/std_except.i - - contrib/tools/swig/Lib/perl5/std_except.i - - contrib/tools/swig/Lib/python/std_except.i - - std_ios.i: - - contrib/tools/swig/Lib/python/std_ios.i - - std_iostream.i: - - contrib/tools/swig/Lib/python/std_iostream.i - - std_list.i: - - contrib/tools/swig/Lib/go/std_list.i - - contrib/tools/swig/Lib/java/std_list.i - - contrib/tools/swig/Lib/perl5/std_list.i - - contrib/tools/swig/Lib/python/std_list.i - - std_map.i: - - contrib/tools/swig/Lib/go/std_map.i - - contrib/tools/swig/Lib/java/std_map.i - - contrib/tools/swig/Lib/perl5/std_map.i - - contrib/tools/swig/Lib/python/std_map.i - - std_multimap.i: - - contrib/tools/swig/Lib/python/std_multimap.i - - std_multiset.i: - - contrib/tools/swig/Lib/python/std_multiset.i - - std_pair.i: - - contrib/tools/swig/Lib/go/std_pair.i - - contrib/tools/swig/Lib/java/std_pair.i - - contrib/tools/swig/Lib/perl5/std_pair.i - - contrib/tools/swig/Lib/python/std_pair.i - - std_set.i: - - contrib/tools/swig/Lib/java/std_set.i - - contrib/tools/swig/Lib/python/std_set.i - - std_shared_ptr.i: - - contrib/tools/swig/Lib/java/std_shared_ptr.i - - contrib/tools/swig/Lib/python/std_shared_ptr.i - - std_sstream.i: - - contrib/tools/swig/Lib/python/std_sstream.i - - std_streambuf.i: - - contrib/tools/swig/Lib/python/std_streambuf.i - - std_string.i: - - contrib/tools/swig/Lib/go/std_string.i - - contrib/tools/swig/Lib/java/std_string.i - - contrib/tools/swig/Lib/perl5/std_string.i - - contrib/tools/swig/Lib/python/std_string.i - - std_unordered_map.i: - - contrib/tools/swig/Lib/java/std_unordered_map.i - - contrib/tools/swig/Lib/python/std_unordered_map.i - - std_unordered_multimap.i: - - contrib/tools/swig/Lib/python/std_unordered_multimap.i - - std_unordered_multiset.i: - - contrib/tools/swig/Lib/python/std_unordered_multiset.i - - std_unordered_set.i: - - contrib/tools/swig/Lib/java/std_unordered_set.i - - contrib/tools/swig/Lib/python/std_unordered_set.i - - std_vector.i: - - contrib/tools/swig/Lib/go/std_vector.i - - contrib/tools/swig/Lib/java/std_vector.i - - contrib/tools/swig/Lib/perl5/std_vector.i - - contrib/tools/swig/Lib/python/std_vector.i - - std_vectora.i: - - contrib/tools/swig/Lib/python/std_vectora.i - - std_wios.i: - - contrib/tools/swig/Lib/python/std_wios.i - - std_wiostream.i: - - contrib/tools/swig/Lib/python/std_wiostream.i - - std_wsstream.i: - - contrib/tools/swig/Lib/python/std_wsstream.i - - std_wstreambuf.i: - - contrib/tools/swig/Lib/python/std_wstreambuf.i - - std_wstring.i: - - contrib/tools/swig/Lib/java/std_wstring.i - - contrib/tools/swig/Lib/python/std_wstring.i - - stl.i: - - contrib/tools/swig/Lib/go/stl.i - - contrib/tools/swig/Lib/java/stl.i - - contrib/tools/swig/Lib/perl5/stl.i - - contrib/tools/swig/Lib/python/stl.i - - swiginterface.i: - - contrib/tools/swig/Lib/java/swiginterface.i - - typemaps.i: - - contrib/tools/swig/Lib/go/typemaps.i - - contrib/tools/swig/Lib/java/typemaps.i - - contrib/tools/swig/Lib/perl5/typemaps.i - - contrib/tools/swig/Lib/python/typemaps.i - - various.i: - - contrib/tools/swig/Lib/java/various.i - - wchar.i: - - contrib/tools/swig/Lib/python/wchar.i - - contrib/tools/swig/Lib/wchar.i diff --git a/build/sysincl/system-jdk.yml b/build/sysincl/system-jdk.yml deleted file mode 100644 index d894941ad4..0000000000 --- a/build/sysincl/system-jdk.yml +++ /dev/null @@ -1,2 +0,0 @@ -- includes: - - jni.h
\ No newline at end of file diff --git a/build/sysincl/unsorted.yml b/build/sysincl/unsorted.yml deleted file mode 100644 index cd33d60f5a..0000000000 --- a/build/sysincl/unsorted.yml +++ /dev/null @@ -1,984 +0,0 @@ -- source_filter: "^contrib(?!/restricted/gstreamer/gst/parse)" - includes: - - types.h - - stat.h - -- source_filter: ".*contrib.*" - includes: - - stat.h - - libutf8.h - #if defined(_OS_QNX) && CONTRIB - - devctl.h - #endif - - CrashReporterClient.h - - Eigen/Array - - Errors.h - - ICSupport.h - - LPdir.h - - LzFindMt.h - - MD5.h - - SIOUX.h - - TFileSpec.h - - TLS.h - - XMP.incl_cpp - - XMPSDK.hpp - - _mingw.h - - abi_mutex.h - - afxcmn.h - - afxdao.h - - afxdb.h - - afxdisp.h - - afxext.h - - afxodlgs.h - - afxole.h - - afxwin.h - - alpha/builtins.h - - apr_iconv.h - - atheos/atomic.h - - atheos/semaphore.h - - atheos/threads.h - - atomic_ops.h - - auth-client-parser/parser.h - - bluetooth/bluetooth.h - - bluetooth/hci.h - - bluetooth/l2cap.h - - bluetooth/rfcomm.h - - bluetooth/sco.h - - bstring.h - - builtins.h - - c_asm.h - - config-mac.h - - console.h - - could_not_find_Perl_patchlevel.h - - cpml.h - - crtl.h - - cthreads.h - - ctime.h - - db_provider.h - - dbmalloc.h - - dir.h - - dither.h - - dl.h - - doc/doc_dynamic.h - - doc/doc_nan.h - - doc/doc_printf.h - - doc/doc_register.h - - doc/doc_scanf.h - - doc/doc_static.h - - dvidef.h - - fastmath.h - - fcntl--.h - - fftw3.h - - file.h - - flags.h - - floatingpoint.h - - fp.h - - fp_class.h - - fsio.h - - fwriteerror.h - - gdbm.h - - ghostscript/iapi.h - - ghostscript/ierrors.h - - glibtop.h - - glibtop/close.h - - glibtop/open.h - - glibtop/parameter.h - - glibtop/sysdeps.h - - glibtop/union.h - - glibtop/xmalloc.h - - gmp.h - - gnutls/x509.h - - hp-timing.h - - httpd_wrap.h - - i86.h - - ieeedef.h - - in.h - - inet.h - - intl.h - - iperlsys.h - - ipl.h - - ipl/ipl.h - - ipp.h - - ippcp.h - - kfuncs.h - - l12_integer_tables.h - - l3_integer_tables.h - - lcms.h - - libavcodec/aacps_tables.h - - libavcodec/cbrt_tables.h - - libavcodec/dv_tables.h - - libavcodec/motionpixels_tables.h - - libavcodec/mpegaudio_tables.h - - libavcodec/pcm_tables.h - - libavcodec/qdm2_tables.h - - libavcodec/sinewin_tables.h - - libio/iolibio.h - - libio/libioP.h - - libs/regex/test/config_info/regex_config_info.cpp - - locale/coll-lookup.h - - locale/elem-hash.h - - locale/localeinfo.h - - locale/weight.h - - locale/weightwc.h - - lqr.h - - lwp/lwp.h - - lwp/stackdep.h - - m68881.h - - mach/cthreads.h - - mathimf.h - - matrixos.h - - mfx/mfxvideo.h - - mingw.h - - mips64/sysarch.h - - ms/uplink.h - - msl_utility - - namdef.h - - ncurses/curses.h - - ncurses/term.h - - ndir.h - - net/netdb.h - - net/socket.h - - net/uio.h - - nks/dirio.h - - nks/plat.h - - nks/thread.h - - nonblocking.h - - note.h - - opcdef.h - - openssl/applink.c - - os2def.h - - oslib/osfscontrol.h - - paper.h - - pcre_printint.src - - pire/config.h - - pngusr.h - - probes_mysql_dtrace.h - - pth.h - - relocatable.h - - rtl.h - - semLib.h - - shlib-compat.h - - sigsegv.h - - sockLib.h - - socket.h - - socketshr.h - - socklib.h - - socks.h - - strdef.h - - streams/un.h - - stropts - - swill.h - - sysLib.h - - taskLib.h - - tcp.h - - tdep-ia64/dwarf-config.h - - thread.h - - thread_plan9.h - - tickLib.h - - ttdef.h - - type_traits.h - - udplite.h - - ulocks.h - - unchecked.h - - unixlib.h - - unixstuff.h - - validator/validator.h - - vasnwprintf.h - - vld.h - - win32lib.h - - wincecompat.h - - wprintf-parse.h - - wsockcompat.h - - xdelta3-python.h - - xml/xmlparse.h - - xmlparse/xmlparse.h - - xmltok/xmlparse.h - - yca/yca.h - - zzip-1.h - - zzip-2.h - - zzip-3.h - - zzip-4.h - - zzip-5.h - #if CONTRIB && defined(_HAVE_LIBIDSA) - - idsa.h - #endif - - ../lib/memdebug.h - - ../../VC/include/math.h - - ../../VC/include/cfloat - - ../extra/yassl/taocrypt/include/sha.hpp - - prof.h - - ll_alloc_hook.c - - cpptl/config.h - - cpptl/conststring.h - - cpptl/forwards.h - - cpptl/smallmap.h - - forwards.h - - json_valueiterator.inl - - value.h - - pthread/mit/sys/timers.h - - sljit/sljitLir.c - - pcre_printint.c - #ifdef defined(emacs) && CONTRIB && TRASH - - blockinput.h - #endif - #if defined(__atmos__) && CONTRIB - - kernel.h - #endif - #if defined(_LIBC) && CONTRIB && TRASH - - not-cancel.h - - local-setxid.h - - vasprintf.h - #endif - -- case_sensitive: false - includes: - #if defined(WINDOWS) && CONTRIB && TRASH - - ../include/locale.h - - ../include/signal.h - - ../include/sys/stat.h - - ../include/fcntl.h - - ../include/math.h - - vcruntime_exception.h - - vcruntime_new.h - - vcruntime_typeinfo.h - #endif - - PowrProf.h - - BaseTsd.h - - iphlpapi.h - -- source_filter: "^contrib/(libs/(apache|httpd|libuv)|python/uWSGI)" - includes: - - port.h - -- source_filter: "^contrib/libs/poco" - includes: - - timers.h - -- source_filter: "^(contrib/libs/curl|taxi/external/curl)" - includes: - - lwip/init.h - - lwip/netdb.h - - lwip/sockets.h - -- includes: - - cpu-features.h - - cuda/include/cuComplex.h - - cuda/include/cublas_v2.h - - cuda/include/cuda.h - - cuda/include/cudnn.h - - cuda/include/cufft.h - - cuda/include/curand.h - - cpuid.h - - nan.h - - omp.h - - unlocked-io.h - - cygwin/version.h - - zircon/syscalls.h - - zircon/types.h - - zircon/process.h - - sys/linux-syscalls.h - - tr1/memory - - android/log.h - - ompt.h - # vvvvv ____ because in [geobase/perl/dynamic] does not work ignoring via "// Y_IGNORE" - - geobase6/service_getter.hpp - - geobase6/timezone_getter.hpp - # ^^^^^ ---- - #if defined(__FreeBSD__) - - bluetooth.h - - bsdxml.h - - devstat.h - - ieeefp.h - - jail.h - - kvm.h - - libutil.h - - machine/atomic.h - - machine/cpu.h - - machine/fpu.h - - malloc_np.h - - netinet/sctp_uio.h - - netinet/ip_options.h - - netinet/sctp_kdtrace.h - - netinet/sctp_lock_bsd.h - - netinet/sctp_lock_empty.h - - netinet/sctp_os_bsd.h - - netinet6/in6_pcb.h - - netinet6/ip6_var.h - - netinet6/ip6protosw.h - - netinet6/scope6_var.h - - netipsec/ipsec.h - - netipsec/ipsec6.h - - netipsec/key.h - - opie.h - - osreldate.h - - opt_sctp.h - - pthread_np.h - - ripemd.h - - sha.h - - sha256.h - - sha512.h - - sys/cpuctl.h - - sys/cpuset.h - - sys/disklabel.h - - sys/endian.h - - sys/eventhandler.h - - sys/exec.h - - sys/extattr.h - - sys/filedesc.h - - sys/gsb_crc32.h - - sys/jail.h - - sys/ktrace.h - - sys/machine.h - - sys/module.h - - sys/mpctl.h - - sys/mutex.h - - sys/rwlock.h - - sys/semaphore.h - - sys/smp.h - - sys/stdint.h - - sys/systm.h - - sys/thr.h - - sys/timespec.h - - sys/umtx.h - - sys/uuid.h - - ucred.h - - varargs.h - - vm/vm_param.h - #endif - #if defined(__GNUC__) - - varargs.h - - stdfix.h - - mm_malloc.h - - quadmath.h - #endif - #if defined(_MSC_VER) - - comdef.h - - comutil.h - - concrt.h - - crtdefs.h - - crtversion.h - - eh.h - - excpt.h - - hash_map - - hash_set - - ppl.h - - ppltasks.h - - rtcapi.h - - vadefs.h - - varargs.h - - xlocinfo.h - - xstddef - - xutility - - ymath.h - - crtassem.h - #endif - #if defined(_unix_) && TODO - - bits/types/mbstate_t.h - - sys/atomic.h - - sys/atomic_op.h - - sys/bsdskt.h - - sys/bsdtty.h - - sys/builtin.h - - sys/cygwin.h - - sys/dcmd_blk.h - - sys/devpoll.h - - sys/fmutex.h - - sys/int_types.h - - sys/loadavg.h - - sys/localedef.h - - sys/machlock.h - - sys/mkdev.h - - sys/modem.h - - sys/ndir.h - - sys/port_impl.h - - sys/processor.h - - sys/pstat.h - - sys/system_properties.h - - sys/termio.h - - sys/timeval.h - - machine/bswap.h - - machine/sys/inline.h - #endif - #if defined(_PERL_) - - EXTERN.h - - perl.h - - XSUB.h - #endif - #if defined(_darwin_) - - AEObjects.h - - AEPackObject.h - - AERegistry.h - - AppleEvents.h - - Files.h - - Gestalt.h - - ImageCompression.h - - Palettes.h - - PictUtils.h - - Processes.h - - QDOffscreen.h - - QuickDraw.h - - TextUtils.h - - Types.h - - sys/_types/_mbstate_t.h - #endif - #if defined(_OS2_) - - os2.h - #endif - #if defined(_arm_) - - arm/limits.h - #endif - #if defined(_VMS_) && TODO - - atrdef.h - - dcdef.h - - descrip.h - - dvsdef.h - - fab.h - - fibdef.h - - gen64def.h - - iledef.h - - iodef.h - - lib$routines.h - - libfildef.h - - libfisdef.h - - lnmdef.h - - nam.h - - rms.h - - rmsdef.h - - ssdef.h - - starlet.h - - str$routines.h - - stsdef.h - - syidef.h - - times.h - - unixio.h - - tcpSocketVaxRoutines.h - #endif - #if defined(_SOLARIS_) && TODO - - synch.h - - sys/byteorder.h - #endif - #if defined(__MSL__) && TODO && WTF - - unix.h - #endif - #if defined(__sgi) - - sgidefs.h - #endif - #if defined(__BEOS__) - - ByteOrder.h - - OS.h - - support/SupportDefs.h - - kernel/OS.h - - kernel/image.h - #endif - #if defined(_sun_) - - procfs.h - #endif - #if defined(__sun) - - sys/port.h - #endif - #if defined(__sun__) - - sys/isa_defs.h - #endif - #if defined(__X11__) - - X11/XKBlib.h - - X11/keysym.h - - X11/extensions/shape.h - - X11/extensions/XShm.h - - X11/cursorfont.h - - X11/Xutil.h - - X11/Xresource.h - - X11/Xproto.h - - X11/Xos.h - - X11/Xlocale.h - - X11/Xlib.h - - X11/Xatom.h - - X11/Intrinsic.h - #endif - #if defined(HAVE_DMALLOC) - - dmalloc.h - #endif - #if defined(HAVE_ALTIVEC) - - altivec.h - #endif - #if defined(__vxWorks__) - - vxCpuLib.h - - vxWorks.h - - sockLib.h - - hostLib.h - - ioLib.h - - iosLib.h - - resolvLib.h - - rtpLib.h - - pipeDrv.h - - selectLib.h - #endif - #if defined(_LIBC) && TRASH - - ../locale/localeinfo.h - - ../locale/elem-hash.h - - ../locale/coll-lookup.h - #endif - #if defined(_LINUX_ANDROID) - - android/api-level.h - - android/ndk-version.h - #endif - #if defined(HAVE_CONFIG_H) && TODO - - config_auto.h - #endif - #if defined(_TRASH_) && TODO - - openssl/fips.h - - tr1/unordered_map - - tr1/unordered_set - - tr1/type_traits - - ext/atomicity.h - - bits/c++config.h - - bits/atomicity.h - - gcrypt.h - - gnutls/gnutls.h - - gdwmfapi.h - - winmmap.h - - sf_unistd.h - #endif - #if defined(__TURBOC__) || defined(__BORLANDC__) - - alloc.h - #endif - #if defined (__DECC) || defined (__DECCXX) - - machine/builtins.h - #endif - #if defined(USE_PERL) && TODO - - perliol.h - #endif - #if defined(__NetBSD__) - - lwp.h - - perfuse.h - #endif - #if V8_OS_QNX - - sys/syspage.h - #endif - #if V8_OS_AIX - - sys/systemcfg.h - - sys/thread.h - #endif - - iostream.h - - streambuf.h - - ostream.h - - slist - - nacl/nacl_random.h - - jemalloc/jemalloc.h - - tr1/tuple - - sys/inttypes.h - - lockdep.h - - memfault.h - - memcheck.h - - msvc.h - - sqlite3userauth.h - - linenoise.h - - sunmath.h - - sys/fpu.h - - win32.h - - bsd/stdlib.h - - bsd/unistd.h - - sys/videoio.h - - libv4l2.h - - soundcard.h - - ../ucrt/fcntl.h - - ../ucrt/locale.h - - ../ucrt/math.h - - ../ucrt/signal.h - - ../ucrt/sys/stat.h - #if defined (CUDA) - - math_constants.h - #endif - #if defined(BUILDING_LIBCURL) - - amitcp/socketbasetags.h - - clib.h - - exec/execbase.h - - exec/types.h - - extra/strdup.h - - extra/stricmp.h - - fabdef.h - - floss.h - - gnutls/crypto.h - - gskssl.h - - gss.h - - hasht.h - - ldap_ssl.h - - librtmp/rtmp.h - - nettle/des.h - - nettle/md4.h - - nettle/md5.h - - pk11pub.h - - proto/dos.h - - proto/exec.h - - qsoasync.h - - stabs.h - - tpf/sysapi.h - #endif - - asm/page.h - - asm/sgidefs.h - - wrl\client.h - - wrl\event.h - - wrl\wrappers\corewrappers.h - - wrl\ftm.h - - bits/char_traits.h - - bits/stl_algobase.h - - bits/stl_move.h - - bits/stl_pair.h - - bits/stl_function.h - - bits/move.h - - ndir.h - - ext/rope - - sunmedia_types.h - - clidef.h - - credef.h - - dos/dos.h - - lbrdef.h - - lbr$routines.h - - libclidef.h - - libguile.h - - mhddef.h - - pathstuff.h - - perror.h - - processes.h - - sub_proc.h - - w32err.h - - procinfo.h - #if defined(__HAIKU__) - - FindDirectory.h - - StorageDefs.h - #endif - - fpxcp.h - - fptrap.h - - fortran.h - - agg_allocator.h - - SIOUX.h - - sys/siginfo.h - #ifdef HAVE_LIBGIMLI_H - - libgimli.h - #endif - #if MATLAB_MEX_FILE - - mex.h - #else - - lzmalib.h - # ICU - - uconfig_local.h - - ucln_local_hook.c - - unistrm.h - - udbgutil.h - - dll.h - - ascii_a.h - - qusec.h - - qusrjobi.h - - qliept.h - - mih/testptr.h - - sys/neutrino.h - - cics.h - - tr1/cmath - - tr1/complex - - tbb/scalable_allocator.h - - libmemcached/dtrace_probes.h - # unknown - - win_stdint.h - - probes.h - - thread.h - # mongoc-driver unused includes - - tls.h - #if metrika then skip bad includes from metrika - - boost/thread/detail/lock.hpp - #endif metrika - - xti.h - # libgit2 unused includes - - proto/timer.h - - mbsupport.h - # end of libgit2 unused includes - # xray includes - - xray/xray_interface.h - - attr/xattr.h - - fshelp.h - - mlib_image.h - - selinux/selinux.h - - sys/mntctl.h - - sys/mnttab.h - - sys/systeminfo.h - - sys/vfstab.h - - sys/vmount.h - - CL/sycl.hpp - # libpcap files - - os-proto.h - - pc.h - - pharlap.h - - msdos/pm_drvr/lock.h - - TcApi.h - - net/pfvar.h - - net/if_pflog.h - - netdnet/dnetdb.h - - sys/ethernet.h - - sys/stream.h - - netlink/genl/genl.h - - netlink/genl/family.h - - netlink/genl/ctrl.h - - netlink/msg.h - - netlink/attr.h - # end libpcap files - -# These includes are not used in autocheck builds, but might be necessary for -# some external builds with exotic settings - -- case_sensitive: false - includes: - - bemapiset.h - - cor.h - - fusion.h - - IPHlpApi.h - - metahost.h - #if defined(WINDOWS) && defined (_USE_MFC_) - - afx.h - #endif - #if defined(WINDOWS) && CONTRIB && TRASH - - ../include/stdint.h - #endif - -- source_filter: ".*contrib.*" - includes: - #if defined (__OpenBSD__) && CONTRIB - - spinlock.h - #endif - #if CONTRIB && TODO - - MSTcpIP.h - - MacSocket.h - - WinIoCtl.h - - WinPDFCore.h - - Winsock2.h - - Xm/XmAll.h - - aep.h - - atalla.h - - crypto/cryptodev.h - - cswift.h - - cxcore.h - - efndef - - exiv2/types.hpp - - hw_4758_cca.h - - hw_ubsec.h - - hwcryptohook.h - - jpidef.h - - lckdef.h - - libdtdef.h - - novsock2.h - - openssl/fips_rand.h - - openssl/fipssyms.h - - openssl/jpake.h - - rld_interface.h - - screen.h - - sureware.h - - t_ctype.h - - tr1/unordered_map.hpp - - typedefs.h - - winmain.h - - wintext.h - - yandex/http/curl_wrapper.hpp - - yandex/threads/boost_threaded.hpp - - yasm-plugin.h - #endif - #if CONTRIB && TRASH - - macconfig.h - - amigaconfig.h - - json_batchallocator.h - - json_internalarray.inl - - json_internalmap.inl - - mysql/mysql_version.h - - libiberty.h - #endif - -- includes: - - Aclapi.h - - tr1/functional - - time64.h - - extern.h - #if defined(__FreeBSD__) - - _ctype.h - - alias.h - - calendar.h - - fetch.h - - gelf.h - - gnuregex.h - - kafs.h - - login_cap.h - - machine/_inttypes.h - - machine/_stdint.h - - machine/asm.h - - machine/in_cksum.h - - machine/sigframe.h - - machine/sysarch.h - - machine/trap.h - - md2.h - - md4.h - - mp.h - - pcap-int.h - - sys/_iovec.h - - sys/_null.h - - sys/_pthreadtypes.h - - sys/_sigset.h - - sys/_timeval.h - - sys/devicestat.h - - sys/fnv_hash.h - - sys/limits.h - - sys/priv.h - - sys/sched.h - - sys/sema.h - - sys/stack.h - - sys/timers.h - - sys/tree.h - - tcpd.h - - ypclnt.h - #endif - #if defined (__linux__) - - asm/fpu.h - - i386/fpu_control.h - - zlibdefs.h - #endif - #if defined(_MSC_VER) - - agents.h - - allocators - - amp.h - - collection.h - - ConcurrencySal.h - - concurrent_priority_queue.h - - concurrent_queue.h - - concurrent_unordered_map.h - - concurrent_unordered_set.h - - concurrent_vector.h - - vcruntime_new_debug.h - - dvec.h - - setjmpex.h - - srv.h - - typeinfo.h - - xcomplex - - xdebug - - xhash - - xiosbase - - xkeycheck.h - - xlocale - - xlocinfo - - xlocnum - - xmemory - - xmemory0 - - xstring - - xtr1common - - xtree - - yvals.h - #endif - #if defined(_unix_) && TODO - - sys/feature_tests.h - #endif - #if defined(_darwin_) - - libkern/version.h - - System/pthread_machdep.h - #endif - #if defined(_VMS_) && TODO - - chfdef.h - - libdef.h - #endif - #if defined(__sgi) - - sigfpe.h - #endif - #if defined(__MWERKS__) - - nwfileio.h - - nwthread.h - #endif - #if defined(_TRASH_) && TODO - - ext/slist - - google/profiler.h - #endif - #if defined(__QNXNTO__) - - sys/cpuinline.h - #endif - - yabs_mx_calc_table.h - - net/errno.h - - sys/mode.h - - nwstdio.h - - os2ish.h - - vmsish.h - - ./plan9/plan9ish.h - - ./vos/vosish.h - - vos/vosish.h - - symbian/symbianish.h - - haiku/haikuish.h - - nw5thread.h - - os2thread.h - - netware.h - - perldtrace.h - - win32thread.h - - wince.h - - symbian/symbian_proto.h - - xconfig.h - - bsd/ctypes.h - - objc/NXCType.h - - appkit/NXCType.h - - sfio.h - - vmesa/vmesaish.h - - sys\stat.h - - mpeix/mpeixish.h - - epocish.h - - beos/beosish.h - - WinNT.h - - ../../VC/include/stdio.h - - ../ucrt/stdio.h - #if defined(BUILDING_LIBCURL) - - axTLS/ssl.h - - certdb.h - - cert.h - - cyassl/error.h - - cyassl/openssl/ssl.h - - cyassl/ssl.h - - nspr.h - - polarssl/certs.h - - polarssl/ctr_drbg.h - - polarssl/entropy.h - - polarssl/error.h - - polarssl/havege.h - - polarssl/net.h - - polarssl/ssl.h - - polarssl/version.h - - polarssl/x509.h - - prerror.h - - prio.h - - prtypes.h - - qsossl.h - - secerr.h - - secitem.h - - secmod.h - - secport.h - - spnegohelp.h - - sslerr.h - - sslproto.h - #endif - - Activation.h - - android/native_window.h - - Windows.System.Threading.h - #if defined(__MINGW32__) || defined(_MSC_VER) - - inet_net_pton.h - - inet_ntop.h - #endif - #if EV_USE_IOCP - - ev_iocp.c - #endif - - zend_exceptions.h - #if MATLAB_MEX_FILE - # unknown - - GL/glx.h - - CL/va_ext.h - - sys/sysconf.h - - ivx.hpp - - clAmdBlas.h - - clAmdFft.h - - va/va.h - #if metrika then skip bad includes from metrika - - yandex/lbs/LBSLocator.hpp - #endif metrika - # libpcap files - - sys/sysconfig.h - - sys/device.h - - sys/cfgodm.h - - cf.h - - zone.h - - netpacket/if_packet.h - # end libpcap files diff --git a/build/sysincl/valgrind.yml b/build/sysincl/valgrind.yml deleted file mode 100644 index de9c6b9f5d..0000000000 --- a/build/sysincl/valgrind.yml +++ /dev/null @@ -1,4 +0,0 @@ -- includes: - - valgrind/callgrind.h: contrib/libs/valgrind/valgrind/callgrind.h - - valgrind/memcheck.h: contrib/libs/valgrind/valgrind/memcheck.h - - valgrind/valgrind.h: contrib/libs/valgrind/valgrind/valgrind.h diff --git a/build/sysincl/windows.yml b/build/sysincl/windows.yml deleted file mode 100644 index 2fd495beea..0000000000 --- a/build/sysincl/windows.yml +++ /dev/null @@ -1,317 +0,0 @@ -- case_sensitive: false - includes: - - accctrl.h - - aclapi.h - - activation.h - - activscp.h - - adhoc.h - - apiset.h - - apisetcconv.h - - atltime.h - - audioclient.h - - authz.h - - basetyps.h - - bcrypt.h - - bits.h - - capi.h - - cet.h - - cfg.h - - comdef.h - - commctrl.h - - commdlg.h - - common.ver - - compressapi.h - - concurrencysal.h - - conio.h - - consoleapi.h - - corecrt.h - - corecrt_terminate.h - - cpl.h - - crtdbg.h - - cryptuiapi.h - - d2d1.h - - d2d1_2.h - - d3d10.h - - d3d10_1.h - - d3d11.h - - d3d11_1.h - - d3d9.h - - d3dcompiler.h - - datetimeapi.h - - dbgeng.h - - dbghelp.h - - dbt.h - - dcomp.h - - debugapi.h - - devguid.h - - direct.h - - dispex.h - - dos.h - - downloadmgr.h - - driverspecs.h - - dshow.h - - dsound.h - - dsparse.h - - dv.h - - dvdmedia.h - - dwrite.h - - dxgi.h - - dxgi1_2.h - - dxgi1_3.h - - dxgidebug.h - - dxprogrammablecapture.h - - dxva.h - - dxva2api.h - - effects.h - - encdec.h - - errhandlingapi.h - - eventtoken.h - - evntprov.h - - evntrace.h - - exdisp.h - - exdispid.h - - fci.h - - fibersapi.h - - fileapi.h - - filter.h - - fltuser.h - - fltuserstructures.h - - fttypes.h - - fwpmu.h - - gb18030.h - - gdiplus.h - - gdiplusimagecodec.h - - gl/gl.h - - gl/glu.h - - guiddef.h - - handleapi.h - - heapapi.h - - htmlhelp.h - - http.h - - imagehlp.h - - ime_cmodes.h - - imm.h - - in6addr.h - - inaddr.h - - initguid.h - - inspectable.h - - instance.h - - interlockedapi.h - - intsafe.h - - io.h - - ioapiset.h - - ipexport.h - - ipifcons.h - - iptypes.h - - iwscapi.h - - jobapi.h - - journal.h - - kbd.h - - kernelspecs.h - - ksmedia.h - - ktmtypes.h - - libloaderapi.h - - lm.h - - lmcons.h - - lmerr.h - - lmstats.h - - mbctype.h - - mbstring.h - - mcx.h - - memoryapi.h - - mfapi.h - - mi.h - - minmax.h - - minwinbase.h - - minwindef.h - - mlang.h - - mmdeviceapi.h - - mmsystem.h - - mq.h - - mshtmdid.h - - mshtmhst.h - - mshtml.h - - msi.h - - msidefs.h - - msiquery.h - - msp.h - - msputils.h - - mstcpip.h - - mswsock.h - - mtx.h - - namedpipeapi.h - - namespaceapi.h - - netioapi.h - - new.h - - npapi.h - - ntdddisk.h - - ntddk.h - - ntddndis.h - - ntdef.h - - ntsecapi.h - - ntstatus.h - - ntverp.h - - oaidl.idl - - objbase.h - - objectarray.h - - objidl.h - - objsafe.h - - ocidl.h - - ocidl.idl - - odbcss.h - - ole.h - - ole2.h - - oleacc.h - - oleauto.h - - olectl.h - - packon.h - - packoff.h - - pathcch.h - - p2p.h - - pdh.h - - pdhmsg.h - - perflib.h - - persist.h - - poppack.h - - powerbase.h - - process.h - - processenv.h - - processthreadsapi.h - - processtopologyapi.h - - profileapi.h - - provider.h - - psapi.h - - pshpack1.h - - pshpack2.h - - pshpack4.h - - pshpack8.h - - qos.h - - ratings.h - - realtimeapiset.h - - reason.h - - richedit.h - - roapi.h - - robuffer.h - - rpc.h - - rpcdce.h - - rpcndr.h - - safeint.h - - sal.h - - sapi.h - - schannel.h - - schedule.h - - schnlsp.h - - scsi.h - - sddl.h - - sdkddkver.h - - sdv_driverspecs.h - - security.h - - securityappcontainer.h - - securitybaseapi.h - - sensors.h - - sfc.h - - share.h - - shellapi.h - - shlguid.h - - shlobj.h - - shlwapi.h - - shobjidl.h - - specstrings.h - - specstrings_strict.h - - specstrings_undef.h - - spellcheck.h - - sperror.h - - sspi.h - - stralign.h - - stringapiset.h - - strsafe.h - - suppress.h - - synchapi.h - - sys/locking.h - - sys/utime.h - - sysinfoapi.h - - systemtopologyapi.h - - tbs.h - - tchar.h - - tdi.h - - threadpoolapiset.h - - threadpoollegacyapiset.h - - timezoneapi.h - - tlhelp32.h - - traffic.h - - tune.h - - tvout.h - - unknwn.h - - unknwn.idl - - upnp.h - - urlmon.h - - urlmon.idl - - usb.h - - userenv.h - - usp10.h - - utilapiset.h - - uxtheme.h - - verrsrc.h - - versionhelpers.h - - vfw.h - - wbemidl.h - - websocket.h - - winapifamily.h - - winbase.h - - winber.h - - wincon.h - - wincrypt.h - - windef.h - - windns.h - - windows.applicationmodel.core.h - - windows.graphics.display.h - - windows.h - - windows.storage.h - - windows.storage.streams.h - - windows.system.threading.h - - windows.ui.xaml.h - - windows.ui.xaml.media.dxinterop.h - - windowsx.h - - winerror.h - - wingdi.h - - winhttp.h - - wininet.h - - winioctl.h - - winldap.h - - winnetwk.h - - winnls.h - - winnt.h - - winperf.h - - winreg.h - - winres.h - - winresrc.h - - winsdkver.h - - winsock.h - - winsock2.h - - winstring.h - - winsvc.h - - winternl.h - - winuser.h - - winver.h - - winwlx.h - - wnnc.h - - wow64apiset.h - - wrl.h - - wrl/async.h - - wrl/client.h - - wrl/event.h - - wrl/ftm.h - - wrl/implements.h - - wrl/wrappers/corewrappers.h - - ws2bth.h - - ws2def.h - - ws2ipdef.h - - ws2spi.h - - ws2tcpip.h - - wscapi.h - - wspiapi.h - - wtsapi32.h - - wtypes.h - - xa.h - - xaudio2.h - - xmllite.h diff --git a/build/ymake.core.conf b/build/ymake.core.conf deleted file mode 100644 index 55b31f8a05..0000000000 --- a/build/ymake.core.conf +++ /dev/null @@ -1,10564 +0,0 @@ -# !!! DISCLAIMER! PLEASE DON'T IGNORE !!! -# The FAKEID value is huge hammer. It affects UIDs of all nodes in build graph including, but not limited to -# any resource fetch (think java contrib), build on any language (C++, Python, Java, Go), any code generation. -# Any build after this change will pay the price: -# - Local builds and Sandbox builds will reload all resources from Sandbox and cached data from YT (if ready). -# - Distributed (YT) cache warmup will take significant time to catch up and will need to recache everything. -# - Autocheck will rebuild and recache everything. -# Use this with extreme care and only change if it is ultimately needed. Consider more specific XXX_FAKEIDs below instead. -FAKEID=3141592653 - -SANDBOX_FAKEID=${FAKEID}.7600000 -CPP_FAKEID=10157985 -GO_FAKEID=11100371 -ANDROID_FAKEID=10102639 -CLANG_TIDY_FAKEID=9990571 -CYTHON_FAKE_ID=10784829 -JAVA_FAKEID=10849009 - -REPORT_ALL_DUPSRC=yes - -CURDIR=. -MODDIR=. -BINDIR=bin:/ -SRCDIR= -YMAKE=ymake -ECHO=echo -INCLUDE_EXTS=.h .hh .hpp .rli .cuh .inc .i .ipp .ixx -CPP_EXT=.cpp -OBJ_SUF= -CFLAGS= -EXTRA_C_FLAGS= -SFLAGS= - -AUTOCHECK_BALANCING_OPTIONS= -SO_OTPUTS=no - -@import "${CONF_ROOT}/conf/settings.conf" -@import "${CONF_ROOT}/conf/opensource.conf" -@import "${CONF_ROOT}/conf/rules.conf" -@import "${CONF_ROOT}/conf/sysincl.conf" -@import "${CONF_ROOT}/conf/license.conf" -@import "${CONF_ROOT}/conf/ts.conf" -@import "${CONF_ROOT}/conf/docs.conf" - -@import "${CONF_ROOT}/conf/project_specific/other.conf" -@import "${CONF_ROOT}/conf/project_specific/uservices.conf" -@import "${CONF_ROOT}/conf/project_specific/yt.conf" - -USE_GLOBAL_CMD=no -when ($OS_WINDOWS != "yes") { - USE_GLOBAL_CMD=yes -} - -when ($USE_PYTHON) { - C_DEFINES+= -DUSE_PYTHON -} - -YMAKE_RESOURCE_BIN=${YMAKE_RESOURCE_GLOBAL}/ymake -YMAKE_RESOURCE_DIR=build/external_resources/ymake -when ($USE_YMAKE_RESOURCE == "yes") { - PEERDIR+=${YMAKE_RESOURCE_DIR} -} - -__COMMA__=${comma:""} - -ARCADIA_TEST_ROOT=../arcadia_tests_data/ -DEFAULT_REQUIREMENTS=network:restricted cpu:1 ram:32 - -FAIL_PY2=no - -_PREBUILT_TOOLS_ROOT=build/prebuilt -_TOOL_PROTOC_GEN_GO=vendor/github.com/golang/protobuf/protoc-gen-go -_TOOL_RESCOMPILER=tools/rescompiler -_TOOL_RESCOMPRESSOR=tools/rescompressor -_TOOL_RORESCOMPILER=tools/rorescompiler - -when ($HOST_ARCH_X86_64 == "yes") { - when ($HOST_OS_DARWIN == "yes" || $HOST_OS_LINUX == "yes" || $HOST_OS_WINDOWS == "yes") { - VALID_HOST_PLATFORM_FOR_COMMON_PREBUILT_TOOLS=yes - - when ($USE_PREBUILT_TOOLS == "yes" && $ARCH_X86_64 == "yes") { - _TOOL_PROTOC_GEN_GO=${_PREBUILT_TOOLS_ROOT}/vendor/github.com/golang/protobuf/protoc-gen-go - } - } -} - -FAIL_MODULE_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/fail_module_cmd.py"} $TARGET ${kv;hide:"p ER"} ${kv;hide:"pc red"} -DEFAULT_TIDY_CONFIG=build/config/tests/clang_tidy/config.yaml -PROJECT_TIDY_CONFIG=build/config/tests/clang_tidy/config.yaml -TIDY= -TIDY_ENABLED= -when($TIDY == "yes") { - TIDY_ENABLED=yes -} - -when ($TIDY_ENABLED == "yes") { - when ($TIDY_EXPORT_FIXES=="") { - TIDY_EXPORT_FIXES="no" - } - - CLANG_TIDY_ARGS=${hide:CLANG_TIDY_FAKEID} $YMAKE_PYTHON ${input:"build/scripts/clang_tidy.py"} "--ymake-python" $YMAKE_PYTHON "--clang-tidy-bin" "$(CLANG_TIDY_BIN)/bin/clang-tidy" "--config-validation-script" ${input:"build/tests/config/clang_tidy/tidy_config_validation.py"} "--testing-src" ${input:SRC} "--source-root" $(SOURCE_ROOT) "--build-root" $(BUILD_ROOT) "--tidy-json" ${output;noauto;suf=${OBJ_CROSS_SUF}${COMPILE_OUT_SUFFIX}.tidyjson:SRC} "--export-fixes" $TIDY_EXPORT_FIXES - CLANG_TIDY_ARGS+="--default-config-file" ${input:DEFAULT_TIDY_CONFIG} - CLANG_TIDY_ARGS+="--project-config-file" ${input:PROJECT_TIDY_CONFIG} - when ($TIDY_CHECKS) { - CLANG_TIDY_ARGS+="--checks=$TIDY_CHECKS" - } - - when ($TIDY_HEADER_FILTER) { - CLANG_TIDY_ARGS+="--header-filter=$TIDY_HEADER_FILTER" - } - - TIDY_VALUE=USE_CONDITIONAL_SRCS -} -otherwise { - CLANG_TIDY_ARGS= - TIDY_VALUE= -} - -# tag:codenav -when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") { - PY_PROGRAM_LINK_EXE=$LINK_EXE ${kv;hide:"pyndex $TARGET"} - YNDEXER_ARGS=$YMAKE_PYTHON ${input:"build/scripts/yndexer.py"} $CPPYNDEXER_RESOURCE_GLOBAL/yndexer 1500 $(SOURCE_ROOT) $ARCADIA_BUILD_ROOT ${input:SRC} - YNDEXER_OUTPUT=${output;noauto;suf=${OBJ_CROSS_SUF}${COMPILE_OUT_SUFFIX}.ydx.pb2:SRC} -} -otherwise { - PY_PROGRAM_LINK_EXE=$LINK_EXE - YNDEXER_ARGS= - YNDEXER_OUTPUT= -} - -COVERAGE_FLAGS= -EXTRA_OUTPUT= -when ($CLANG == "yes" || $GCC == "yes") { - when ($BUILD_TYPE == "COVERAGE" || $GCOV_COVERAGE) { - COVERAGE_FLAGS=-fprofile-arcs -ftest-coverage - EXTRA_OUTPUT=${output;noauto;hide;suf=${OBJ_CROSS_SUF}${COMPILE_OUT_SUFFIX}.gcno:SRC} - } -} - -when ($OS_CYGWIN == "yes") { - CFLAGS+=-D_LDBL_EQ_DBL=1 -U__STRICT_ANSI__ - USE_ASMLIB=no - FSTACK= -} - -CFLAGS+=$COVERAGE_FLAGS -LDFLAGS+=$COVERAGE_FLAGS - -CHECKFLAG= -NO_MAPREDUCE= - -when ($NO_MAPREDUCE == "yes") { - C_DEFINES+=-DNO_MAPREDUCE -} - -when ($OS_ANDROID == "yes") { - PIE=yes -} - -# TODO: extract to conf/maps/maps.conf -when ($MAPSMOBI_BUILD_TARGET == "yes" && $OS_LINUX != "yes") { - USE_STL_SYSTEM=yes - ARCADIA_CURL_DNS_RESOLVER=MULTITHREADED -} -when ($MAPSMOBI_BUILD_TARGET == "yes" && $OS_IOS == "yes") { - BUILD_IOS_APP=yes - when ($ARCH_ARM7 || $ARCH_ARM64) { - BOOSTTEST_IS_FAT_OBJECT=yes - } -} - -when ($OS_NONE == "yes") { - USE_STL_SYSTEM=yes -} - -# USE_INTERNAL_STL is an internal flag (set on by default) but may be used externally to -# select system standard C++ library when USE_INTERNAL_STL=no is set. -# -# USE_STL_SYSTEM=yes is a regular way to select system standard C++ library. -# -when ($USE_STL_SYSTEM == "yes") { - USE_INTERNAL_STL=no -} - -when ($USE_INTERNAL_STL == "no") { - USE_STL_SYSTEM=yes -} -otherwise { - USE_INTERNAL_STL=yes - # TODO: Extract to conf/sysincl.conf - # This trigger doesn't work for module level since SYSINCL is processed at - # configuration stage (This means that NO_RUNTIME() macro called in ya.make - # won't affect SYSINCL and the only way to make this trigger work correctly - # is to define configuration variable NORUNTIME (-DNORUNTIME) on the command - # line when `ya make ...` is invoked. - when ($NORUNTIME != "yes") { - SYSINCL+=build/sysincl/stl-to-libcxx.yml - when ($MUSL == "yes") { - SYSINCL+=build/sysincl/libc-musl-libcxx.yml - } - } -} - -# tag:linux-specific -when ($OS_LINUX && $OS_SDK == "ubuntu-14" && $MUSL != "yes") { - USE_UBUNTU_COMPATIBILITY=yes -} - -USE_ARCADIA_PYTHON=yes -USE_ARCADIA_LIBM=no -USE_EAT_MY_DATA=no - -HAVE_MKL= -when ($HAVE_MKL == "") { - when ($OS_LINUX && $ARCH_X86_64 && !$SANITIZER_TYPE) { - HAVE_MKL=yes - } - otherwise { - HAVE_MKL=no - } -} - -SFDL_TMP_OUT= ${output;tmp:SRC.tmp} - -# tag:perl-specific -when ($USE_LOCAL_TOOLS == "yes") { - PERL=$LOCAL_PERL - PERL_VERSION=$LOCAL_PERL_VERSION - PERL_PRIVLIB=$LOCAL_PERL_PRIVLIB - PERL_ARCHLIB=$LOCAL_PERL_ARCHLIB - when ($LOCAL_PERL_LIBS) { - PERL_LIBS=$LOCAL_PERL_LIBS - } -} -otherwise { - PERL=NO-PERL-SELECTED - PERL_VERSION=NO-PERL-SELECTED-VERSION - PERL_PRIVLIB=NO-PERL-SELECTED-PRIVLIB - PERL_ARCHLIB=NO-PERL-SELECTED-ARCHLIB -} - -# tag:perl-specific -PERL_LD_LIBRARY_PATH= -PERL_INCLUDE= -USE_PERL_SYSTEM=yes -when ($USE_PERL_SYSTEM == "yes") { - select ($PERL_SDK) { - "ubuntu-12" ? { - PERL_VERSION=5.14 - PERL_ROOT=${SYSTEM_PERL_514_RESOURCE_GLOBAL}/perl${PERL_VERSION} - PERL_LIB_ARCH= - } - "ubuntu-14" ? { - PERL_VERSION=5.18 - PERL_ROOT=${SYSTEM_PERL_518_RESOURCE_GLOBAL}/perl${PERL_VERSION} - PERL_LIB_ARCH= - } - "ubuntu-16" ? { - PERL_VERSION=5.22 - PERL_ROOT=${SYSTEM_PERL_522_RESOURCE_GLOBAL}/perl${PERL_VERSION} - PERL_LIB_ARCH=/x86_64-linux-gnu - } - "ubuntu-18" ? { - PERL_VERSION=5.26 - PERL_ROOT=${SYSTEM_PERL_526_RESOURCE_GLOBAL}/perl${PERL_VERSION} - PERL_LIB_ARCH=/x86_64-linux-gnu - } - "ubuntu-20" ? { - PERL_VERSION=5.30 - PERL_ROOT=${SYSTEM_PERL_530_RESOURCE_GLOBAL}/usr - PERL_LIB_ARCH=/x86_64-linux-gnu - } - } - - PERL=${PERL_ROOT}/bin/perl - PERL_ARCHLIB=${PERL_ROOT}/lib$PERL_LIB_ARCH/perl/${PERL_VERSION} - PERL_PRIVLIB=${PERL_ROOT}/share/perl/${PERL_VERSION} - PERL_LIBS=${PERL_ROOT}/lib${PERL_LIB_ARCH} - PERL_LD_LIBRARY_PATH=${env:"LD_LIBRARY_PATH=${PERL_ROOT}/lib"} - - # Perl searches it's modules in INC@ paths. They can not be sysrooted or disabled (at least I haven't found a way), - # so default Perl module directories should be prepended to perl command lines when using non-local perl. - PERL_INCLUDE=-I${PERL_ARCHLIB} -I${PERL_PRIVLIB} -} -PERL_DEFAULT_PEERDIR=yes - -# tag:perl-specific -PERLSUFFIX=-csuffix .cpp -PERLOUTPUT=${stdout;output:SRC.cpp} -when ($PERLC == "yes") { - PERLSUFFIX=-csuffix .c - PERLOUTPUT=${stdout;output:SRC.c} -} -XSUBPPFLAGS= -_XSTYPEMAPS= - -macro XSTYPEMAPS(Names...) { - SET_APPEND(_XSTYPEMAPS $Names) -} - - -# tag:tool-specific -ARCH_TOOL=${tool:"tools/archiver"} - -# tag:tool-specific tag:proto -PROTOC=${tool:"contrib/tools/protoc"} -PROTOC_STYLEGUIDE_OUT=--cpp_styleguide_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE -PROTOC_PLUGIN_STYLEGUIDE=--plugin=protoc-gen-cpp_styleguide=${tool:"contrib/tools/protoc/plugins/cpp_styleguide"} -PROTOBUF_PATH=${ARCADIA_ROOT}/contrib/libs/protobuf/src -USE_VANILLA_PROTOC=no -PROTOC_TRANSITIVE_HEADERS=yes -_PROTOC_FLAGS= - -# tag:tool-specific -FML_TOOL=${tool:"tools/relev_fml_codegen"} -FML_UNUSED_TOOL=${tool:"tools/relev_fml_unused"} -LUA_TOOL=${tool:"tools/lua"} -ENUM_PARSER_TOOL=${tool:"tools/enum_parser/enum_parser"} - -# tag:python-specific tag:cython-specific -CYTHON_SCRIPT=${input:"${ARCADIA_ROOT}/contrib/tools/cython/cython.py"} ${hide:CYTHON_FAKE_ID} $CYTHON_PREDEFINED_INCLUDES -RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT -RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT -PYTHON_TYPE_FOR_CYTHON=PY2 -CYTHON_OUTPUT_INCLUDES=\ -${output_include;hide:"contrib/libs/python/Include/compile.h"} \ -${output_include;hide:"contrib/libs/python/Include/frameobject.h"} \ -${output_include;hide:"contrib/libs/python/Include/longintrepr.h"} \ -${output_include;hide:"contrib/libs/python/Include/pyconfig.h"} \ -${output_include;hide:"contrib/libs/python/Include/Python.h"} \ -${output_include;hide:"contrib/libs/python/Include/pythread.h"} \ -${output_include;hide:"contrib/libs/python/Include/structmember.h"} \ -${output_include;hide:"contrib/libs/python/Include/traceback.h"} \ -${output_include;hide:"contrib/tools/cython/generated_c_headers.h"} \ -${output_include;hide:"omp.h"} - -# tag:cython-specific -CYTHON_CPP_OUTPUT_INCLUDES=${output_include;hide:"contrib/tools/cython/generated_cpp_headers.h"} - -# tag:cython-specific -CYTHON_PREDEFINED_INCLUDES=\ - ${input;hide:"contrib/tools/cython/Cython/Utility/Buffer.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Builtins.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/CMath.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Capsule.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/CommonTypes.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Complex.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Coroutine.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/CythonFunction.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Embed.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Exceptions.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/ExtensionTypes.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/FunctionArguments.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/ImportExport.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/MemoryView_C.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/ModuleSetupCode.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/ObjectHandling.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Optimize.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Overflow.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Printing.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/Profile.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/StringTools.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/TestUtilityLoader.c"} \ - ${input;hide:"contrib/tools/cython/Cython/Utility/TypeConversion.c"} - -# tag:cython-specific -CYTHON_PREDEFINED_INDUCED=\ - contrib/libs/python/Include/Python.h - -# tag:cython-specific -CYTHON_OPTIONS= -when ($OS_LINUX) { - CYTHON_OPTIONS += -E UNAME_SYSNAME=Linux -} -elsewhen ($OS_DARWIN) { - CYTHON_OPTIONS += -E UNAME_SYSNAME=Darwin -} -elsewhen ($OS_WINDOWS) { - CYTHON_OPTIONS += -E UNAME_SYSNAME=Windows -} - -when ($USE_LOCAL_SWIG != "yes") { - _SWIG_TOOL=${tool:"contrib/tools/swig"} - _SWIG_LIBRARY=contrib/tools/swig/Lib - _SWIG_LIBRARY_ABS=$ARCADIA_ROOT/$_SWIG_LIBRARY -} -otherwise { - _SWIG_TOOL=$SWIG_TOOL - _SWIG_LIBRARY=$SWIG_LIBRARY - _SWIG_LIBRARY_ABS=$SWIG_LIBRARY -} -SWIG_IMPLICIT_INCLUDES = swig.swg go.swg java.swg perl5.swg python.swg - -FATAL_ERROR_MODULE=no -FATAL_ERROR_MESSAGE= - -# tag:python-specific -# PYTHON_DISTR={ "default" | "macos-brew" } determine python system supply -# see build/platform/python/ya.make -PYTHON_DISTR="default" -when ($USE_SYSTEM_PYTHON) { - USE_ARCADIA_PYTHON=no - select ($USE_SYSTEM_PYTHON) { - "2.7" ? { - _SYSTEM_PYTHON27=yes - PY_VERSION=2.7 - PY_FRAMEWORK_VERSION=2.7 - } - "3.4" ? { - _SYSTEM_PYTHON34=yes - PY_VERSION=3.4m - PY_FRAMEWORK_VERSION=3.4 - } - "3.5" ? { - _SYSTEM_PYTHON35=yes - PY_VERSION=3.5m - PY_FRAMEWORK_VERSION=3.5 - } - "3.6" ? { - _SYSTEM_PYTHON36=yes - PY_VERSION=3.6m - PY_FRAMEWORK_VERSION=3.6 - } - "3.7" ? { - _SYSTEM_PYTHON37=yes - PY_VERSION=3.7m - PY_FRAMEWORK_VERSION=3.7 - } - "3.8" ? { - _SYSTEM_PYTHON38=yes - PY_VERSION=3.8 - PY_FRAMEWORK_VERSION=3.8 - } - "3.9" ? { - _SYSTEM_PYTHON39=yes - PY_VERSION=3.9 - PY_FRAMEWORK_VERSION=3.9 - } - "3.10" ? { - _SYSTEM_PYTHON310=yes - PY_VERSION=3.10 - PY_FRAMEWORK_VERSION=3.10 - } - "3.11" ? { - _SYSTEM_PYTHON311=yes - PY_VERSION=3.11 - PY_FRAMEWORK_VERSION=3.11 - } - default ? { - FATAL_ERROR_MESSAGE+=invalid USE_SYSTEM_PYTHON value - } - } -} - -ANTLR_PYTHON=Python2 - -### @usage: NO_LTO() -### -### Disable any lto (link-time optimizations) for the module. -### This will compile module source files as usual (without LTO) but will not prevent lto-enabled -### linking of entire program if global settings say so. -macro NO_LTO() { - DISABLE(USE_LTO) - DISABLE(USE_THINLTO) -} - -when ($USE_LTO == "yes" && $OS_LINUX != "yes" && $OS_ANDROID != "yes") { - FATAL_ERROR_MESSAGE+=lto is only supported for linux -} - -when ($BUILD_PYTHON3_BIN) { - YMAKE_PYTHON3=${BUILD_PYTHON3_BIN} - YMAKE_PYTHON3_PEERDIR= -} -otherwise { - YMAKE_PYTHON3=${YMAKE_PYTHON3_RESOURCE_GLOBAL}/python3 -} - -# tag:python-specific -when ($USE_ARCADIA_PYTHON == "no") { - SYSINCL+=build/sysincl/python.yml -} - -# tag:allocator -DEFAULT_ALLOCATOR=LF - -# tag:allocator -when ($OS_ANDROID == "yes" || $MSVC == "yes" || $ARCH_TYPE_32 == "yes" || $ARCH_AARCH64 == "yes") { - DEFAULT_ALLOCATOR=J -} - -# tag:allocator -when ($OS_CYGWIN == "yes" || $ARCH_PPC64LE == "yes") { - DEFAULT_ALLOCATOR=SYSTEM -} - -# tag:allocator -when ($OS_DARWIN == "yes") { - DEFAULT_ALLOCATOR=SYSTEM -} - -# tag:allocator -when ($OS_LINUX == "yes") { - when ($GCC) { - # tcmalloc broken build - } - elsewhen ($SANDBOXING) { - # broken - } - elsewhen ($ARCH_X86_64) { - DEFAULT_ALLOCATOR=TCMALLOC_TC - } -} - -# tag:allocator -when ($SANITIZER_TYPE) { - when ($SANITIZER_TYPE != "no") { - DEFAULT_ALLOCATOR=SYSTEM - } -} - -# tag:internal -### @usage: CHECK_CONFIG_H(<conf_header>) # internal -### -### This internal macro adds checking code for configuration header in external (contrib) library. -### The check is needed to avoid conflicts on certain types and functions available in arcadia. -### -### @see https://a.yandex-team.ru/arc/trunk/arcadia/build/scripts/check_config_h.py for exact details -macro CHECK_CONFIG_H(Conf) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/check_config_h.py"} ${input;rootrel:Conf} ${output;nopath;noext:Conf.config.cpp} ${kv;hide:"p CH"} ${kv;hide:"pc yellow"} - OUTPUT_INCLUDES=$Conf -} - -REQUIRED_TRANSITIVE_PEERS= -### @usage REQUIRES(dirs...) -### -### Specify list of dirs which this module must depend on indirectly. -### -### This macro can be used if module depends on the directories specified but they can't be listed -### as direct PEERDIR dependencies (due to public include order or link order issues). -macro REQUIRES(DIRS[]) { - SET_APPEND(REQUIRED_TRANSITIVE_PEERS $DIRS) -} - -CHECK_DEPENDENT_DIRS_TYPES= -CHECK_DEPENDENT_DIRS_RESTRICTIONS= -### @usage CHECK_DEPENDENT_DIRS(DENY|ALLOW_ONLY ([ALL|PEERDIRS|GLOB] dir)...) -### -### Specify project transitive dependencies constraints. -### -### @params: -### 1. DENY: current module can not depend on module from any specified directory neither directly nor transitively. -### 2. ALLOW_ONLY: current module can not depend on module from a dir not specified in the directory list neither directly nor transitively. -### 3. ALL: directory constraints following after this modifier are applied to both transitive PEERDIR dependencies and tool dependencies. -### 4. PEERDIRS: directory constraints following after this modifier are applied to transitive PEERDIR dependencies only. -### 5. GLOB: next directory constraint is an ANT glob pattern. -### 6. EXCEPT: next constraint is an exception for the rest of other rules. -### -### Directory constraints added before either ALL or PEERDIRS modifier is used are treated as ALL directory constraints. -### -### Note: Can be used multiple times on the same module all specified constraints will be checked. -### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) -macro CHECK_DEPENDENT_DIRS(TYPE, ALL?"UNUSED":"", PEERDIRS?"PEERDIRS":"ALL", RESTRICTIONS...) { - SET_APPEND(CHECK_DEPENDENT_DIRS_RESTRICTIONS $PEERDIRS $RESTRICTIONS) - SET_APPEND(CHECK_DEPENDENT_DIRS_TYPES $TYPE) -} - -# tag:proto -PY_PROTOS_FOR=no -BUILD_PROTO_AS_EVLOG=no - -# tag:proto -PROTO_NAMESPACE= - -# tag:proto tag:python-specific -GEN_PY_PROTOS=$YMAKE_PYTHON ${input:"build/scripts/gen_py_protos.py"} - -# tag:proto tag:cpp-specific -PROTO_HEADER_EXTS=.pb.h -CPP_PROTO_CMDLINE= -CPP_PROTO_OPTS= -CPP_PROTO_OUTS= -CPP_PROTO_OUTS_SEM= -CPP_PROTO_SUFFIXES=.pb.h .pb.cc -CPP_PROTO_PLUGINS= - -# tag:proto tag:cpp-specific -CPP_EV_OPTS=--plugin=protoc-gen-event2cpp=${tool:"tools/event2cpp"} --event2cpp_out=$ARCADIA_BUILD_ROOT -I=$ARCADIA_ROOT/library/cpp/eventlog -CPP_EV_OUTS= - -# tag:proto tag:python-specific -PY_PROTO_OPTS= -PY_PROTO_OUTS= -PY_PROTO_OUTS_INTERNAL= -PY_PROTO_DEPS= -PY_PROTO_SUFFIXES=_pb2.py -PY_EVLOG_SUFFIXES=_ev_pb2.py - -# tag:proto tag:java-specific -JAVA_PROTO_ARGS= - -# tag:proto tag:python-specific -OPTIMIZE_PY_PROTOS_FLAG=no - -macro _RESOURCE_SEM(INPUTS[], KEYS[]) { - SET(RESOURCE_OUTPUT ${hash:INPUTS}.cpp) - .SEM=resources ${output;global:RESOURCE_OUTPUT} INPUTS ${input:INPUTS} KEYS $KEYS ${tool;hide:"tools/rescompiler/bin"} -} - -# tag:built-in -### @usage: RESOURCE([FORCE_TEXT ][Src Key]* [- Key=Value]*) # built-in -### Add data (resources, random files, strings) to the program) -### The common usage is to place Src file into binary. The Key is used to access it using library/cpp/resource or library/python/resource. -### Alternative syntax with '- Key=Value' allows placing Value string as resource data into binary and make it accessible by Key. -### -### This is a simpler but less flexible option than ARCHIVE(), because in the case of ARCHIVE(), you have to use the data explicitly, -### and in the case of RESOURCE(), the data will fall through SRCS() or SRCS(GLOBAL) to binary linking. -### -### Use the FORCE_TEXT parameter to explicitly mark all Src files as text files: they will not be parsed unless used elsewhere. -### -### @example: https://wiki.yandex-team.ru/yatool/howtowriteyamakefiles/#a2ispolzujjtekomanduresource -### -### @example: -### -### LIBRARY() -### OWNER(user1) -### -### RESOURCE( -### path/to/file1 /key/in/program/1 -### path/to/file2 /key2 -### ) -### END() -### -macro RESOURCE(Args...) { - PEERDIR(library/cpp/resource) -} - -# tag:internal -### @usage: _ORDER_ADDINCL([BUILD ...] [SOURCE ...] Args...) # internal -### -### Order and filter ADDINCLs (Args - is intentionally omitted in ADDINCL macro) -macro _ORDER_ADDINCL(BUILD[], SOURCE[], ARGS...) { - ADDINCL($BUILD $SOURCE) -} - -# tag:proto -### @usage: PROTO_ADDINCL([GLOBAL] [WITH_GEN] Path) -### -### This macro introduces proper ADDINCLs for .proto-files found in sources and -### .cpp/.h generated files, supplying them to appropriate commands and allowing -### proper dependency resolution at configure-time. -### -### Note: you normally shouldn't use this macro. ADDINCLs should be sent to user -### from dependency via PROTO_NAMESPACE macro -macro PROTO_ADDINCL(GLOBAL?"GLOBAL":"", Path, WITH_GEN?"BUILD":"") { - _ORDER_ADDINCL($WITH_GEN $GLOBAL FOR proto ${ARCADIA_BUILD_ROOT}/$Path SOURCE $GLOBAL FOR proto ${ARCADIA_ROOT}/$Path) - ADDINCL($GLOBAL ${ARCADIA_BUILD_ROOT}/$Path) -} - -# tag:proto -### @usage: PROTO_NAMESPACE([GLOBAL] [WITH_GEN] Namespace) -### -### Defines protobuf namespace (import/export path prefix) which should be used for imports and -### which defines output path for .proto generation. -### -### For proper importing and configure-time dependency management it sets ADDINCLs -### for both .cpp headers includes and .proto imports. If .proto expected to be used outside of the -### processing module use GLOBAL to send proper ADDINCLs to all (transitive) users. PEERDIR to -### PROTO_LIBRARY with PROTO_NAMESPACE(GLOBAL ) is enough at user side to correctly use the library. -### If generated .proto files are going to be used for building a module than use of WITH_GEN -### parameter will add appropriate dir from the build root for .proto files search. -macro PROTO_NAMESPACE(GLOBAL?"GLOBAL":"", WITH_GEN?"WITH_GEN":"", Namespace) { - SET(PROTO_NAMESPACE $Namespace) - PROTO_ADDINCL($GLOBAL $WITH_GEN $Namespace) -} - -# tag:proto -### @usage PROTOC_FATAL_WARNINGS() -### -### Treat protoc warnings as fatal errors that break the build, for example, unused imports -### Adds `--fatal_warnings` argument to protoc -macro PROTOC_FATAL_WARNINGS() { - SET_APPEND(_PROTOC_FLAGS --fatal_warnings) -} - -# tag:proto tag:internal tag:python-specific -### @usage: OPTIMIZE_PY_PROTOS() # internal -### -### Enable Python proto optimization by embedding corresponding C++ code into binary. -### Python protobuf runtime will use C++ implementation instead of Python one if former is available. -### This is default mode for most PROTO_LIBRARY's and PY2_LIBRARY's, some system ones being exceptions. -macro OPTIMIZE_PY_PROTOS() { - SET(OPTIMIZE_PY_PROTOS_FLAG yes) -} - -# tag:proto tag:python-specific -### @usage: NO_OPTIMIZE_PY_PROTOS() -### -### Disable Python proto optimization using embedding corresponding C++ code into binary. -### Python protobuf runtime will use C++ implementation instead of Python one if former is available. -### This is default mode only for some system libraries. -macro NO_OPTIMIZE_PY_PROTOS() { - SET(OPTIMIZE_PY_PROTOS_FLAG no) -} - -# tag:proto tag:python-specific -macro _PROTO_PLUGIN_ARGS_BASE(Name, Tool, OutParm...) { - .CMD=--plugin=protoc-gen-${Name}=\${tool:"$Tool"} --${Name}_out=$OutParm$ARCADIA_BUILD_ROOT/\$PROTO_NAMESPACE - .SEM=IGNORED -} - -# tag:proto tag:python-specific -macro _ADD_PY_PROTO_OUT(Suf) { - SET_APPEND(PY_PROTO_OUTS \${output;hide;noauto;norel;nopath;noext;suf=$Suf:File}) - SET_APPEND(PY_PROTO_OUTS_INTERNAL \${output;hide;noauto;norel;nopath;noext;suf=__int__$Suf:File} \${hide;kv:"ext_out_name_for_\${nopath;noext;suf=__int__$Suf:File} \${nopath;noext;suf=$Suf:File}"}) - # XXX fix variable expansion in plugins - SET(PY_PROTO_SUFFIXES $PY_PROTO_SUFFIXES $Suf) -} - -# tag:proto tag:python-specific -### @usage: PY_PROTO_PLUGIN(Name Ext Tool DEPS <Dependencies>) -### -### Define protoc plugin for python with given Name that emits extra output with provided Extension -### using Tool. Extra dependencies are passed via DEPS -macro PY_PROTO_PLUGIN(NAME, EXT, TOOL, DEPS[]) { - SET_APPEND(PY_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL)) - _ADD_PY_PROTO_OUT($EXT) - # XXX fix variable expansion in plugins - SET(PY_PROTO_DEPS $PY_PROTO_DEPS $DEPS) -} - -# tag:proto tag:python-specific -### @usage: PY_PROTO_PLUGIN2(Name Ext1 Ext2 Tool DEPS <Dependencies>) -### -### Define protoc plugin for python with given Name that emits 2 extra outputs with provided Extensions -### using Tool. Extra dependencies are passed via DEPS -macro PY_PROTO_PLUGIN2(NAME, EXT1, EXT2, TOOL, DEPS[]) { - PY_PROTO_PLUGIN($NAME $EXT1 $TOOL DEPS $DEPS) - _ADD_PY_PROTO_OUT($EXT2) -} - -# tag:proto tag:java-specific -macro _JAVA_PROTO_PLUGIN_ARGS_BASE(Name, Tool, OutParm...) { - .CMD=--plugin=protoc-gen-${Name}=\${tool:"$Tool"} --${Name}_out=$ARCADIA_BUILD_ROOT/java_out -} - -# tag:proto tag:java-specific -### @usage: JAVA_PROTO_PLUGIN(Name Tool DEPS <Dependencies>) -### -### Define protoc plugin for Java with given Name that emits extra outputs -### using Tool. Extra dependencies are passed via DEPS -macro JAVA_PROTO_PLUGIN(NAME, TOOL, DEPS[]) { - SET_APPEND(JAVA_PROTO_ARGS $_JAVA_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL)) - # XXX fix variable expansion in plugins - SET(JAVA_PROTOBUF_PEERS $JAVA_PROTOBUF_PEERS $DEPS) -} - -macro _ADD_SEM_PROP_IF_NON_EMPTY(Prop, Args...) { - .SEM=${pre=&& set_target_property $Prop :Args} -} - -# tag:proto tag:cpp-specific -macro _ADD_CPP_PROTO_OUT(Suf) { - .SEM=append_target_property PROTOC_EXTRA_OUTS $Suf ${output;hide;suf=.o:Suf} $_ADD_SEM_PROP_IF_NON_EMPTY(PROTO_NAMESPACE $PROTO_NAMESPACE) - SET_APPEND(CPP_PROTO_OUTS \${output;hide;norel;nopath;noext;suf=$Suf:File}) - - # XXX fix variable expansion in plugins - SET(CPP_PROTO_SUFFIXES $CPP_PROTO_SUFFIXES $Suf) -} - -# tag:proto tag:cpp-specific -HAS_CPP_PROTOBUF_PEERS=no -CPP_PROTOBUF_PEERS= - -# tag:proto tag:cpp-specific -### @usage: CPP_PROTO_PLUGIN0(Name Tool DEPS <Dependencies>) -### -### Define protoc plugin for C++ with given Name that emits code into regular outputs -### using Tool. Extra dependencies are passed via DEPS. -macro CPP_PROTO_PLUGIN0(NAME, TOOL, DEPS[]) { - .SEM=target_proto_plugin $NAME ${tool;rootrel:TOOL} ${output;hide;suf=.fake.o:NAME} - SET_APPEND(CPP_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL)) - - # XXX fix variable expansion in plugins - ENABLE(HAS_CPP_PROTOBUF_PEERS) - SET(CPP_PROTOBUF_PEERS $CPP_PROTOBUF_PEERS $DEPS) -} - -# tag:proto tag:cpp-specific -### @usage: CPP_PROTO_PLUGIN(Name Tool Suf DEPS <Dependencies>) -### -### Define protoc plugin for C++ with given Name that emits code into 1 extra output -### using Tool. Extra dependencies are passed via DEPS. -macro CPP_PROTO_PLUGIN(NAME, TOOL, SUF, DEPS[]) { - CPP_PROTO_PLUGIN0($NAME $TOOL DEPS $DEPS) - - _ADD_CPP_PROTO_OUT($SUF) -} - -# tag:proto tag:cpp-specific -### @usage: CPP_PROTO_PLUGIN2(Name Tool Suf1 Suf2 DEPS <Dependencies>) -### -### Define protoc plugin for C++ with given Name that emits code into 2 extra outputs -### using Tool. Extra dependencies are passed via DEPS. -macro CPP_PROTO_PLUGIN2(NAME, TOOL, SUF1, SUF2, DEPS[]) { - CPP_PROTO_PLUGIN($NAME $TOOL $SUF1 DEPS $DEPS) - - _ADD_CPP_PROTO_OUT($SUF2) - SET_APPEND(CPP_PROTO_OUTS_SEM \${output;hide;norel;nopath;noext;suf=$SUF2:File}) -} - -# tag:proto -### @usage: USE_SKIFF() #wip, do not use -### -### Use mapreduce/yt/skiff_proto/plugin for C++ -macro USE_SKIFF() { - # Move extra includes to INDUCED_DEPS macro in mapreduce/yt/skiff_proto/plugin/ya.make - CPP_PROTO_PLUGIN0(skiff mapreduce/yt/skiff_proto/plugin DEPS mapreduce/yt/skiff_proto/lib) -} - -# tag:go-specific -_GO_COMMON_GOOGLE_APIS = \ -vendor/google.golang.org/genproto/googleapis/api/annotations \ -vendor/google.golang.org/genproto/googleapis/api/configchange \ -vendor/google.golang.org/genproto/googleapis/api/distribution \ -vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1 \ -vendor/google.golang.org/genproto/googleapis/api/expr/v1beta1 \ -vendor/google.golang.org/genproto/googleapis/api/httpbody \ -vendor/google.golang.org/genproto/googleapis/api/label \ -vendor/google.golang.org/genproto/googleapis/api/metric \ -vendor/google.golang.org/genproto/googleapis/api/monitoredres \ -vendor/google.golang.org/genproto/googleapis/api/serviceconfig \ -vendor/google.golang.org/genproto/googleapis/api/servicecontrol/v1 \ -vendor/google.golang.org/genproto/googleapis/api/servicemanagement/v1 \ -vendor/google.golang.org/genproto/googleapis/iam/admin/v1 \ -vendor/google.golang.org/genproto/googleapis/iam/credentials/v1 \ -vendor/google.golang.org/genproto/googleapis/iam/v1 \ -vendor/google.golang.org/genproto/googleapis/iam/v1/logging \ -vendor/google.golang.org/genproto/googleapis/logging/type \ -vendor/google.golang.org/genproto/googleapis/logging/v2 \ -vendor/google.golang.org/genproto/googleapis/rpc/code \ -vendor/google.golang.org/genproto/googleapis/rpc/errdetails \ -vendor/google.golang.org/genproto/googleapis/rpc/status \ -vendor/google.golang.org/genproto/googleapis/type/calendarperiod \ -vendor/google.golang.org/genproto/googleapis/type/color \ -vendor/google.golang.org/genproto/googleapis/type/date \ -vendor/google.golang.org/genproto/googleapis/type/dayofweek \ -vendor/google.golang.org/genproto/googleapis/type/expr \ -vendor/google.golang.org/genproto/googleapis/type/fraction \ -vendor/google.golang.org/genproto/googleapis/type/latlng \ -vendor/google.golang.org/genproto/googleapis/type/money \ -vendor/google.golang.org/genproto/googleapis/type/postaladdress \ -vendor/google.golang.org/genproto/googleapis/type/quaternion \ -vendor/google.golang.org/genproto/googleapis/type/timeofday - -# tag:go-specific -_COMMON_GOOGLE_APIS=None - -# tag:go-specific -### @usage: USE_COMMON_GOOGLE_APIS([apis...]) -### -### Use common-google-apis library set. Pass optional apis list to be used or use them all. -### This macro is properly handled for all languages including Go, where apis come in -## pregenerated form. In other languages apis are generated from sources in Arcadia. -macro USE_COMMON_GOOGLE_APIS(APIS...) { - SET(_COMMON_GOOGLE_APIS ${pre=vendor/google.golang.org/genproto/googleapis/:APIS}) -} - -# tag:go-specific tag:proto -GO_PROTO_GEN_PLUGINS= -GO_PROTO_OPTS= -GO_PROTO_OUTS= - -# tag:go-specific tag:proto -GO_PROTOBUF_IMPORTS=\ - ${GOSTD}/sync \ - ${GOSTD}/reflect \ - ${GOSTD}/fmt \ - ${GOSTD}/math \ - vendor/github.com/golang/protobuf/proto \ - vendor/google.golang.org/protobuf/types/descriptorpb \ - vendor/google.golang.org/protobuf/runtime/protoimpl \ - vendor/google.golang.org/protobuf/runtime/protoiface \ - vendor/google.golang.org/protobuf/reflect/protoreflect - -# tag:go-specific tag:proto -GO_PROTOBUF_WELLKNOWN_TYPES=\ - vendor/google.golang.org/protobuf/types/known/anypb \ - vendor/google.golang.org/protobuf/types/known/apipb \ - vendor/google.golang.org/protobuf/types/known/durationpb \ - vendor/google.golang.org/protobuf/types/known/emptypb \ - vendor/google.golang.org/protobuf/types/known/fieldmaskpb \ - vendor/google.golang.org/protobuf/types/known/sourcecontextpb \ - vendor/google.golang.org/protobuf/types/known/structpb \ - vendor/google.golang.org/protobuf/types/known/timestamppb \ - vendor/google.golang.org/protobuf/types/known/typepb \ - vendor/google.golang.org/protobuf/types/known/wrapperspb - -# tag:go-specific tag:proto -### @usage: GO_PROTO_PLUGIN(Name Ext Tool [DEPS dependencies...]) -### -### Define protoc plugin for GO with given Name that emits extra output with provided extension -### Ext using Tool. Extra dependencies are passed via DEPS. -macro GO_PROTO_PLUGIN(NAME, EXT, TOOL, DEPS[]) { - SET_APPEND(GO_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL)) - SET_APPEND(GO_PROTO_OUTS \${output;hide;noauto;norel;nopath;noext;suf=$EXT:File}) - PEERDIR(${DEPS}) -} - -# tag:go-specific tag:proto -GO_PROTO_CMDLINE=${cwd;rootdir;input:File} $YMAKE_PYTHON3 ${input:"build/scripts/go_proto_wrapper.py"} $GO_ARCADIA_PROJECT_PREFIX $GO_CONTRIB_PROJECT_PREFIX ./$PROTO_NAMESPACE $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH $_PROTOC_FLAGS ${input;rootrel:File} - -# tag:go-specific tag:proto -macro _GO_PROTO_CMD_IMPL(File, OPTS...) { - .CMD=$GO_PROTO_CMDLINE $OPTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .PEERDIR=${GO_PROTOBUF_IMPORTS} ${GO_PROTOBUF_WELLKNOWN_TYPES} - .ADDINCL=FOR proto contrib/libs/protobuf/src -} - -# tag:go-specific tag:proto -macro _GO_PROTO_CMD(File) { - .CMD=$_GO_PROTO_CMD_IMPL($File $GO_PROTO_OPTS $GO_PROTO_OUTS) -} - -# tag:proto -### @usage: YP_PROTO_YSON(Files... OUT_OPTS Opts...) -### -### Generate .yson.go from .proto using yp/go/yson/internal/proto-yson-gen/cmd/proto-yson-gen -macro YP_PROTO_YSON(OUT_OPTS[], Files...) { - .CMD=${cwd:BINDIR} $PROTOC --plugin=protoc-gen-custom=${tool:"yp/go/yson/internal/proto-yson-gen/cmd/proto-yson-gen"} -I=${ARCADIA_ROOT}/${PROTO_NAMESPACE} ${pre=-I=:_PROTO__INCLUDE} -I=${ARCADIA_ROOT} --custom_out="$OUT_OPTS paths=base_name:." --custom_opt="goroot=${GO_TOOLS_ROOT}" $_PROTOC_FLAGS ${input:Files} ${output;hide;noauto;nopath;noext;suf=.yson.go:Files} - .ADDINCL=FOR proto ${ARCADIA_ROOT}/${MODDIR} FOR proto ${ARCADIA_ROOT}/${GO_TEST_IMPORT_PATH} FOR proto yt ${ARCADIA_BUILD_ROOT}/yt FOR proto contrib/libs/protobuf/src - .PEERDIR=$GOSTD/strings $GOSTD/fmt $GOSTD/errors $GOSTD/encoding/json library/go/core/xerrors yt/go/yson yt/go/yterrors yp/go/yson/ytypes contrib/libs/protobuf - -} - -_SEM_CPP_PROTO_CMD=target_proto_messages PRIVATE ${input:File} $CPP_PROTO_OUTS_SEM ${output;hide;suf=${OBJ_SUF}.pb.o:File} ${hide;tool:"contrib/tools/protoc/bin"} ${hide;tool:"contrib/tools/protoc/plugins/cpp_styleguide"} \ - && set_global_flags COMMON_PROTOC_FLAGS \ - && target_proto_outs --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT \ - && target_proto_addincls ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH - -# tag:proto -macro _CPP_PROTO_CMD(File) { - .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .SEM=$_SEM_CPP_PROTO_CMD - .PEERDIR=contrib/libs/protobuf -} - -# tag:proto -macro _CPP_VANILLA_PROTO_CMD(File) { - .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .PEERDIR=contrib/libs/protobuf_std -} - -# tag:proto -macro _CPP_EVLOG_CMD(File) { - .CMD=$CPP_PROTO_CMDLINE $CPP_EV_OPTS $CPP_EV_OUTS ${kv;hide:"p EV"} ${kv;hide:"pc yellow"} - .PEERDIR=library/cpp/eventlog contrib/libs/protobuf -} - -# tag:proto -macro _CPP_PROTO_EVLOG_CMD(File) { - # process .proto as .ev - .CMD=$CPP_PROTO_CMDLINE $CPP_EV_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .PEERDIR=library/cpp/eventlog contrib/libs/protobuf -} - -# tag:proto -macro _CPP_CFGPROTO_CMD(File) { - # keep extension in output just as in EV: this is hard-coded behaviour of protoc for non-.proto extensions - .CMD=$CPP_PROTO_CMDLINE --plugin=protoc-gen-config=${tool:"library/cpp/proto_config/plugin"} --config_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $CPP_EV_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .PEERDIR=library/cpp/proto_config/codegen library/cpp/proto_config/protos contrib/libs/protobuf -} - -# tag:proto -PY_PROTO_MYPY_ENABLED=yes -PY_PROTO_MYPY_PLUGIN_BASE=--plugin=protoc-gen-mypy=${tool:"contrib/python/mypy-protobuf/bin/protoc-gen-mypy"} --mypy_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE - -# tag:proto tag:python-specific -PY_PROTO_MYPY_SUFFIX= -PY_PROTO_MYPY_PLUGIN= -PY_PROTO_MYPY_PLUGIN_INTERNAL= - -# tag:proto tag:python-specific -macro NO_MYPY() { - DISABLE(PY_PROTO_MYPY_ENABLED) -} - -# tag:proto tag:python-specific -macro _PY_PROTO_CMD_BASE(File, Suf, Args...) { - .CMD=$PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --python_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $_PROTOC_FLAGS ${input;rootrel:File} ${output;hide;noauto;norel;nopath;noext;suf=$Suf:File} ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} $Args -} - -# tag:proto tag:python-specific -macro _PY_PROTO_CMD(File) { - .CMD=${cwd;rootdir;input:File} $_PY_PROTO_CMD_BASE($File _pb2.py $PY_PROTO_OPTS $PY_PROTO_OUTS $PY_PROTO_MYPY_PLUGIN) -} - -# tag:proto tag:python-specific -macro _PY_PROTO_CMD_INTERNAL(File) { - .CMD=${cwd;rootdir;input:File} $GEN_PY_PROTOS --suffixes $PY_PROTO_SUFFIXES $PY_PROTO_MYPY_SUFFIX -- $_PY_PROTO_CMD_BASE($File __int___pb2.py $PY_PROTO_OPTS $PY_PROTO_OUTS_INTERNAL ${hide;kv:"ext_out_name_for_${nopath;noext;suf=__int___pb2.py:File} ${nopath;noext;suf=_pb2.py:File}"} $PY_PROTO_MYPY_PLUGIN_INTERNAL) -} - -# tag:proto tag:java-specific -JAVA_PROTO_RUNTIME= - -# tag:proto tag:java-specific -### @usage: USE_JAVALITE() -### Use protobuf-javalite for Java -macro USE_JAVALITE() { - SET(JAVA_PROTO_RUNTIME javalite) -} - -# tag:proto tag:java-specific -JAVA_PROTO_RUNTIME_VERSION = 3.21.12 -JAVA_PROTO_COMMON_VERSION = 1.12.0 -KOTLIN_PROTO=no -KOTLIN_PROTO_PEERS= -when ($JAVA_PROTO_RUNTIME == "javalite") { - _JAVA_PROTO_LITE_ARG=lite: - JAVA_PROTOBUF_PEERS=contrib/java/com/google/protobuf/protobuf-javalite/${JAVA_PROTO_RUNTIME_VERSION} ${KOTLIN_PROTO_PEERS} - JAVA_GRPC_STUB=contrib/java/io/grpc/grpc-stub/1.43.2 - JAVA_GRPC_PROTOBUF=contrib/java/io/grpc/grpc-protobuf/1.43.2 -} -otherwise { - _JAVA_PROTO_LITE_ARG= - JAVA_PROTOBUF_PEERS=contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION} ${KOTLIN_PROTO_PEERS} - JAVA_GRPC_STUB=contrib/java/io/grpc/grpc-stub/1.43.2 - JAVA_GRPC_PROTOBUF=contrib/java/io/grpc/grpc-protobuf/1.43.2 -} - -KOTLIN_PROTO_FLAGS= -# tag:proto tag:java-specific -macro _JAVA_PROTO_CMD(File) { - .CMD=${cwd;rootdir;input:File} $YMAKE_PYTHON ${input:"build/scripts/tared_protoc.py"} --tar-output ${output;norel;nopath;noext;suf=.jsrc:File} --protoc-out-dir $ARCADIA_BUILD_ROOT/java_out $PROTOC -I=./$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_ROOT --java_out=${_JAVA_PROTO_LITE_ARG}$ARCADIA_BUILD_ROOT/java_out ${KOTLIN_PROTO_FLAGS} $_PROTOC_FLAGS ${input;rootrel:File} ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} $JAVA_PROTO_ARGS - .SEM=proto_files ${input;rootrel:File} ${hide;output:File.jsrc} -} - - -# tag:proto tag:perl-specific tag:deprecated -### @usage: XS_PROTO(InputProto Dir Outputs...) # deprecated -### -### Generate Perl code from protobuf. -### In order to use this macro one should predict all outputs protoc will emit from input_proto file and enlist those as outputs. -macro XS_PROTO(File, Dir, Outputs...) { - .CMD=$PROTOC -I=${ARCADIA_ROOT}/${Dir} ${pre=-I=:_PROTO__INCLUDE} -I=${ARCADIA_ROOT} -I=${PROTOBUF_PATH} --perlxs_out=${BINDIR} $_PROTOC_FLAGS ${input:File} ${hide;output:Outputs} ${induced_deps=h+cpp;hide;nopath;noext;suf=.pb.h:File} - PEERDIR(${Dir}) - ADDINCL(${ARCADIA_BUILD_ROOT}/${Dir}) -} - -# tag:proto tag:fbs -### @usage: PROTO2FBS(InputProto) -### -### Produce flatbuf schema out of protobuf description. -macro PROTO2FBS(File) { - .CMD=${cwd:BINDIR} ${tool:"contrib/tools/flatc"} -I . -I ${ARCADIA_ROOT} --proto ${input:File} ${output;hide;nopath;noext:File.fbs} ${kv;hide:"p FBS"} ${kv;hide:"pc yellow"} -} - -# tag:proto tag:python-specific -when ($PY_PROTOS_FOR == "yes") { - PEERDIR+=contrib/libs/protobuf/python -} - -# tag:python-specific -macro _PY_EVLOG_CMD_BASE(File, Suf, Args...) { - .CMD=$_PY_PROTO_CMD_BASE($File $Suf $Args) - .PEERDIR=library/cpp/eventlog/proto -} - -# tag:python-specific tag:proto -macro _PY_EVLOG_CMD(File) { - .CMD=${cwd;rootdir;input:File} $_PY_EVLOG_CMD_BASE($File _ev_pb2.py) -} - -# tag:python-specific tag:proto -macro _PY_EVLOG_CMD_INTERNAL(File) { - .CMD=${cwd;rootdir;input:File} $GEN_PY_PROTOS --suffixes $PY_EVLOG_SUFFIXES -- $_PY_EVLOG_CMD_BASE($File __int___ev_pb2.py ${hide;kv:"ext_out_name_for_${nopath;noext;suf=__int___ev_pb2.py:File} ${nopath;noext;suf=_ev_pb2.py:File}"}) -} - -# tag:java-specific tag:proto -macro _JAVA_EVLOG_CMD(File) { - .CMD=$COPY_CMD ${input:File} ${output;nopath;noext;norel;suf=_ev.proto:File} ${kv;hide:"p EV"} ${kv;hide:"pc yellow"} - .PEERDIR=library/cpp/eventlog/proto -} - -# tag:sanitize -RUN_NO_SANITIZE=$YMAKE_PYTHON ${input:"build/scripts/run_tool.py"} -- - -# tag:sanitize -when ($IS_CROSS_SANITIZE) { - RUN_NO_SANITIZE= -} - -YIELD=$YMAKE_PYTHON ${input:"build/scripts/yield_line.py"} -- ${BINDIR}/__args -XARGS=$YMAKE_PYTHON ${input:"build/scripts/xargs.py"} -- ${BINDIR}/__args - -WRITER_PY=$YMAKE_PYTHON ${input:"build/scripts/writer.py"} ${input;hide:"build/scripts/process_command_files.py"} -FS_TOOLS=$YMAKE_PYTHON ${input:"build/scripts/fs_tools.py"} ${input;hide:"build/scripts/process_command_files.py"} -FIX_MSVC_OUTPUT=${YMAKE_PYTHON} ${input:"build/scripts/fix_msvc_output.py"} ${input;hide:"build/scripts/process_command_files.py"} - -COPY_CMD=$FS_TOOLS copy -LINK_OR_COPY_CMD=$FS_TOOLS link_or_copy -REMOVE_FILE=$FS_TOOLS remove -MOVE_FILE=$FS_TOOLS rename - -# tag:allocator tag:windows-specific -MSVC_DYNAMICBASE=/DYNAMICBASE -when ($ALLOCATOR == "LF") { - MSVC_DYNAMICBASE=/DYNAMICBASE:NO -} - -# tag:sanitize -SANITIZER_CFLAGS= - -# tag:proto tag:grpc -_GRPC_ENABLED=no - -# tag:proto tag:grpc -### @usage: GRPC() -### -### Emit GRPC code for all .proto files in a PROTO_LIBRARY. -### This works for all available PROTO_LIBRARY versions (C++, Python 2.x, Python 3.x, Java and Go). -macro GRPC() { - ENABLE(_GRPC_ENABLED) - - # C++ - CPP_PROTO_PLUGIN2(grpc_cpp contrib/tools/protoc/plugins/grpc_cpp .grpc.pb.cc .grpc.pb.h DEPS contrib/libs/grpc) - - # Python - PY_PROTO_PLUGIN(grpc_py _pb2_grpc.py contrib/tools/protoc/plugins/grpc_python DEPS contrib/python/grpcio) - - # Java - JAVA_PROTO_PLUGIN(grpc_java contrib/tools/protoc/plugins/grpc_java DEPS $JAVA_GRPC_STUB $JAVA_GRPC_PROTOBUF) - SET_APPEND(JAVA_PROTOBUF_PEERS contrib/java/javax/annotation/javax.annotation-api/1.3.1) -} - -# tag:fbs -FLATC_FLAGS_VALUE= -### @usage: FLATC_FLAGS(flags...) -### -### Add flags to flatc command line -macro FLATC_FLAGS(FLAGS...) { - SET_APPEND(FLATC_FLAGS_VALUE $FLAGS) -} - -# tag:fbs -_PY_FBS_DEPS=contrib/python/flatbuffers - -# tag:fbs tag:internal -### @usage: FBS_TO_PYSRC(output_base_name fbs_files...) # internal -### -### Create a tar archive of .py files generated by flatc for Python. Output tar -### archive will have .fbs.pysrc extension. This .fbs.pysrc extension is specially -### processed when --add-flatbuf-result flag is specified on the command line -### for 'ya make ...' (tar archive is extracted to output directory). -macro FBS_TO_PYSRC(OUT_NAME, IN_FBS_FILES...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} ${tool:"contrib/tools/flatc"} --python --gen-mutable ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${BINDIR} ${input:IN_FBS_FILES} && $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --exts .py --input $BINDIR --output ${output;noauto;tared:OUT_NAME.fbs.pysrc} ${kv;hide:"p FP"} ${kv;hide:"pc light-green"} ${kv;hide:"tared_kind nodir"} -} - -# tag:fbs tag:go-specific -# Implicit dependencies of generated code for Go -_GO_FLATC_IMPORTS=\ - ${GOSTD}/strconv \ - vendor/github.com/google/flatbuffers/go - -# tag:fbs tag:cpp-specific -macro _CPP_FLATC_CMD(SRC, SRCFLAGS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/cpp_flatc_wrapper.py"} ${tool:"contrib/tools/flatc"} --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${output;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${input:SRC} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${kv;hide:"p FL"} ${kv;hide:"pc light-green"} - .SEM=target_fbs_source PRIVATE ${input:SRC} ${pre=-I :_FLATC__INCLUDE} ${output;hide;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${hide;tool:"contrib/tools/flatc/bin"} && set_global_flags FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs ${FLATC_FLAGS_VALUE} ${input;hide:"build/scripts/cpp_flatc_wrapper.py"} - .PEERDIR=contrib/libs/flatbuffers -} - -# tag:fbs tag:cpp-specific -macro _CPP_FLATC64_CMD(SRC, SRCFLAGS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/cpp_flatc_wrapper.py"} ${tool:"contrib/tools/flatc64"} --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --filename-suffix .fbs64 ${FLATC_FLAGS_VALUE} -I ${ARCADIA_ROOT} -I ${ARCADIA_BUILD_ROOT} -o ${output;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${input:SRC} ${output;noauto;hide;noext;norel:SRC.bfbs64} ${kv;hide:"p FL64"} ${kv;hide:"pc light-green"} - .PEERDIR=contrib/libs/flatbuffers64 -} - -# tag:fbs tag:go-specific tag:internal -### @usage: _GO_FLATC_CMD(fbs_file flags...) # internal -### -### Create a tar archive of .go files generated by flatc for Go. Output tar archive -### will have .fbs.gosrc extension. This .fbs.gosrc is specially processed when -### --add-protobuf-result flag is specified on the command line for 'ya make ...' -### (tar archive is extracted to output directory). -macro _GO_FLATC_CMD(SRC, PACKAGE_NAME) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} ${tool:"contrib/tools/flatc"} --go --gen-mutable --go-namespace ${PACKAGE_NAME} ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${BINDIR}/_generated ${input:SRC} && $YMAKE_PYTHON3 ${input:"build/scripts/postprocess_go_fbs.py"} --input-dir ${BINDIR} --map $_FBS_NAMESPACE_MAP_GLOBAL && $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --flat --input ${BINDIR}/_generated --output ${output;noext;tared:SRC.fbs.gosrc} --exts .go ${kv;hide:"p FG"} ${kv;hide:"pc light-green"} ${kv;hide:"tared_kind nodir"} - .PEERDIR=${_GO_FLATC_IMPORTS} -} - -# tag:fbs tag:java-specific tag:internal -### @usage: _JAVA_FLATC_CMD(fbs_file) # internal -### -### Create a tar archive of .java files generated by flatc for Java. Output tar -### acrchive will have .fbs.jsrc extension. Files with .fbs.jsrc extension will -### be added to results when --add-flatbuf-result flag is specified on the command -### line for 'ya make ...' -macro _JAVA_FLATC_CMD(SRC) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} ${tool:"contrib/tools/flatc"} --java --gen-mutable ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${BINDIR} ${input:SRC} && $YMAKE_PYTHON3 ${input:"build/scripts/tar_sources.py"} --input $BINDIR --output ${output;nopath;noext:SRC.fbs.jsrc} --exts .java ${kv;hide:"p FJ"} ${kv;hide:"pc light-green"} - .PEERDIR=contrib/java/com/google/flatbuffers/flatbuffers-java/${JAVA_FLATBUFFERS_VERSION} -} - -# variables must be defined for all module types to make generate_mf.py work -MODULE_PREFIX= -MODULE_SUFFIX= -NEED_PLATFORM_PEERDIRS=yes -PEERDIR_TEST_TOOL=yes - -# tag:python-specific -PYTHON2=no -PYTHON3=no - -# tag:python-specific -when (!$ARCADIA_PYTHON_UNICODE_SIZE) { - when ($OS_WINDOWS) { - ARCADIA_PYTHON_UNICODE_SIZE=2 - } - otherwise { - ARCADIA_PYTHON_UNICODE_SIZE=4 - } -} - -YMAKE_PYTHON3_PEERDIR=build/platform/python/ymake_python3 -macro NO_YMAKE_PYTHON3() { - SET(YMAKE_PYTHON3_PEERDIR) -} - -### @usage: _BARE_UNIT # internal -### -### The base of all modules describing default bare minimum for all modules. -### To avoid surprises, all buildable modules are better to be inherited from it or its descendants. -module _BARE_UNIT { - .EXTS=.* - .CMD=TOUCH_UNIT - .IGNORED=GO_PROTO_PLUGIN - .NODE_TYPE=Bundle - .PEERDIR_POLICY=as_include - .RESTRICTED=GRPC USE_SKIFF INDUCED_DEPS FUZZ_DICTS FUZZ_OPTS PACK DOCS_DIR DOCS_CONFIG DOCS_VARS YT_SPEC USE_CXX USE_UTIL WHOLE_ARCHIVE PRIMARY_OUTPUT SECONDARY_OUTPUT DEPENDENCY_MANAGEMENT EXCLUDE NO_DOCTESTS EMBED_JAVA_VCS_INFO RESOURCE_FILES PACK_GLOBALS_IN_LIBRARY _EXPOSE GLOBAL_DEPS LIST_PROTO - .FINAL_TARGET=no - - PEERDIR_TAGS=__EMPTY__ - PEERDIR+=$YMAKE_PYTHON3_PEERDIR - - when ($FATAL_ERROR_MESSAGE && $FATAL_ERROR_MODULE != "yes") { - PEERDIR+=build/conf_fatal_error - } - - DEFAULT(MODULE_VERSION) - DEFAULT(MODULE_PREFIX) - DEFAULT(MODULE_SUFFIX) -} - -### @usage: GEN_LIBRARY() -### -### Definition of a module that brings generated artefacts. This module can PEERDIRed -### from any module. The resulted module is empty and cleaned up during construction -### of the build graph. -### -### NOTE! SRCS macro is not supported for this library. -module GEN_LIBRARY: _BARE_UNIT { - .PROXY=yes - .RESTRICTED=SRCS SRC - .SEM=IGNORED - - # ENABLE(_FAKE_MODULE) - SET(MODULE_SUFFIX .pkg.fake) -} - -### @usage: _BASE_UNIT # internal -### -### The base of all LIBRARY/PROGRAM modules describing common logic for all modules. -### To avoid surprises, all buildable modules are better to be inherited from it or its descendants. -module _BASE_UNIT: _BARE_UNIT { - .GLOBAL=_FBS_NAMESPACE_MAP - - PEERDIR_TAGS=CPP_PROTO CPP_FBS CPP_SSQLS H_IDL PY2 PY2_NATIVE YQL_UDF_STATIC __EMPTY__ DLL_LIB - - CPP_PROTO_CMDLINE=${cwd;rootdir;input:File} $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --cpp_out=${CPP_PROTO_PLUGINS}$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $_PROTOC_FLAGS $PROTOC_STYLEGUIDE_OUT $PROTOC_PLUGIN_STYLEGUIDE ${input;rootrel:File} - CPP_PROTO_OUTS+=${output;hide;norel;nopath;noext:File.pb.cc} ${output;main;hide;norel;nopath;noext:File.pb.h} - CPP_PROTO_OUTS_SEM+=${output;main;hide;norel;nopath;noext:File.pb.h} - CPP_EV_OUTS+=${output;hide;norel:File.pb.cc} ${output;hide;norel:File.pb.h} - - when ($SWIG_LANG == "perl") { - _SWIG_CMD=$_SWIG_PERL_CMD - _SWIG_ADDINCLS=$_SWIG_PERL_ADDINCLS - _SWIG_PEERDIR=$_SWIG_PERL_PEERDIR - } - elsewhen ($SWIG_LANG == "python") { - _SWIG_CMD=$_SWIG_PYTHON_CMD - _SWIG_ADDINCLS=$_SWIG_PYTHON_ADDINCLS - _SWIG_PEERDIR=$_SWIG_PYTHON_PEERDIR - } - elsewhen ($SWIG_LANG == "jni_cpp") { - _SWIG_CMD=$_SWIG_JNI_CPP_CMD - _SWIG_ADDINCLS=$_SWIG_JNI_ADDINCLS - _SWIG_PEERDIR=$_SWIG_JNI_PEERDIR - } - elsewhen ($SWIG_LANG == "java") { - _SWIG_CMD=$_SWIG_JNI_CMD - _SWIG_ADDINCLS=$_SWIG_JNI_ADDINCLS - _SWIG_PEERDIR=$_SWIG_JNI_PEERDIR - } - - when ($PY_PROTOS_FOR == "yes") { - MACRO_ALIAS(EVLOG_CMD _PY_EVLOG_CMD) - MACRO_ALIAS(PROTO_CMD _PY_PROTO_CMD) - } - otherwise { - MACRO_ALIAS(EVLOG_CMD _CPP_EVLOG_CMD) - MACRO_ALIAS(FBS_CMD _CPP_FLATC_CMD) - when ($BUILD_PROTO_AS_EVLOG == "yes") { - MACRO_ALIAS(PROTO_CMD _CPP_PROTO_EVLOG_CMD) - } - otherwise { - MACRO_ALIAS(PROTO_CMD _CPP_PROTO_CMD) - } - when ($USE_VANILLA_PROTOC == "yes") { - PROTOC=${tool:"contrib/tools/protoc_std"} - PROTOC_STYLEGUIDE_OUT= - PROTOC_PLUGIN_STYLEGUIDE= - PROTOBUF_PATH=${ARCADIA_ROOT}/contrib/libs/protobuf_std - MACRO_ALIAS(PROTO_CMD _CPP_VANILLA_PROTO_CMD) - } - when ($PROTOC_TRANSITIVE_HEADERS == "no") { - CPP_PROTO_PLUGINS=transitive_pb_h=false:${CPP_PROTO_PLUGINS} - } - } - - SANITIZER_DEFINED=no - - when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - CFLAGS+=-fsanitize=$SANITIZER_TYPE -D${SANITIZER_TYPE}_sanitizer_enabled $SANITIZER_CFLAGS -fno-omit-frame-pointer - LDFLAGS+=-fsanitize=$SANITIZER_TYPE - SANITIZER_DEFINED=yes - - when ($CLANG) { - CFLAGS+=-fsanitize-blacklist=${input:"build/sanitize-blacklist.txt"} - LDFLAGS+=-fsanitize-blacklist=${input:"build/sanitize-blacklist.txt"} - } - } - - when ($SANITIZE_COVERAGE && $SANITIZE_COVERAGE != "no") { - CFLAGS+=-fsanitize-coverage=$SANITIZE_COVERAGE - LDFLAGS+=-fsanitize-coverage=$SANITIZE_COVERAGE - } - - POPULATE_CPP_COVERAGE_FLAGS() - - when ($NLG_COVERAGE && $NLG_COVERAGE != "no") { - CFLAGS+=-DNLG_COVERAGE - } - - when ($GCC) { - select ($SANITIZER_TYPE) { - "address" ? { - LDFLAGS+=-static-libasan - } - "undefined" ? { - LDFLAGS+=-static-libubsan - } - "thread" ? { - PIE=yes - LDFLAGS+=-static-libtsan - } - } - } - - when ($HARDENING == "yes") { - when ($CLANG) { - CFLAGS+=-fstack-protector-all -D_hardening_enabled_ - LDFLAGS+=-z relro -z now -z noexecstack - PIE=yes - } - } - - when ($USE_LTO == "yes") { - when ($GCC) { - CFLAGS+=-flto -fno-fat-lto-objects - LDFLAGS+=-flto - NO_LTO_CFLAGS=-fno-lto - } - when ($CLANG) { - CFLAGS+=-flto - LDFLAGS+=-flto - NO_LTO_CFLAGS=-fno-lto - } - } - - when ($USE_THINLTO == "yes") { - when ($GCC) { - CFLAGS+=-flto=thin - LDFLAGS+=-flto=thin - NO_LTO_CFLAGS=-fno-lto - } - when ($CLANG) { - CFLAGS+=-flto=thin - LDFLAGS+=-flto=thin - NO_LTO_CFLAGS=-fno-lto - } - } - - - when ($CLANG) { - when ($PGO_ADD == "yes") { - CFLAGS+=-fprofile-instr-generate - LDFLAGS+=-fprofile-instr-generate - } - when ($PGO_PATH) { - CFLAGS+=-fprofile-instr-use=$PGO_PATH -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date - LDFLAGS+=-fprofile-instr-use=$PGO_PATH - } - } - - when ($COMPILER_PLATFORM && $NEED_PLATFORM_PEERDIRS == "yes") { - PEERDIR+=$COMPILER_PLATFORM - } - - when ($OS_LINUX && $NEED_PLATFORM_PEERDIRS == "yes") { - PEERDIR+=contrib/libs/linux-headers - } - - # Adding PEERDIR from trigger doesn't always work. In this case it - # cause troubles in contrib/libs/libc_compat/ubuntu_14 under musl - # Workaround this issue by setting variable with PEERDIR in trigger - # and then adding PEERDIR to it's value unconditionally. - when ($USE_UBUNTU_COMPATIBILITY == "yes" && $NEED_PLATFORM_PEERDIRS == "yes") { - _UBUNTU_COMPAT_PEERDIR=contrib/libs/libc_compat/ubuntu_14 - } - otherwise { - _UBUNTU_COMPAT_PEERDIR= - } - PEERDIR+=$_UBUNTU_COMPAT_PEERDIR - - when ($NORUNTIME != "yes") { - PEERDIR+=contrib/libs/cxxsupp - when ($MAPSMOBI_BUILD_TARGET == "yes") { - PEERDIR+=build/platform/mapkit - } - } - - when ($NOUTIL != "yes") { - PEERDIR+=util - } - - when ($MUSL == "yes") { - CFLAGS += -D_musl_ - LINK_DYN_LIB_FLAGS += --musl - LINK_SCRIPT_EXE_FLAGS += --musl - PEERDIR+=contrib/libs/musl/include - } - - # g++ has proxy C-headers which are incompatible with libc++ proxy C-headers. - # The same problem exists for clang toolchain. On the other hand, the problem - # doesn't affect cl since it has united C/C++ library and doesn't need - # proxy C-headers. - # Disable all C++ headers including proxy C-headers when we use libc++. - when ($USE_INTERNAL_STL == "yes" && $MSVC != "yes") { - CXXFLAGS += -nostdinc++ - } - otherwise { - CFLAGS += -DUSE_STL_SYSTEM - } - - when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") { - PEERDIR += build/external_resources/codenavigation - } - - when ($CYTHON_COVERAGE && $CYTHON_COVERAGE == "yes") { - CFLAGS+=-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1 - } - - DEFAULT(USE_SSE4 yes) - - when ($NOSSE != "yes") { - CFLAGS+=$SSE_CFLAGS - C_DEFINES+=$SSE_DEFINES - when ($USE_SSE4 == "yes") { - CFLAGS+=$SSE4_CFLAGS - C_DEFINES+=$SSE4_DEFINES - } - } - elsewhen ($MSVC != "yes") { - CFLAGS += -mno-sse - } - - when ($LIPO == "yes" && $NEED_PLATFORM_PEERDIRS != "no") { - when ($OS_DARWIN == "yes" || $OS_IOS == "yes") { - PEERDIR += build/platform/cctools - } - } - - POPULATE_CPP_COVERAGE_FLAGS() - _REGISTER_NO_CHECK_IMPORTS() - - DEFAULT(PACKAGE_PREFIX_ARGS) - - DEFAULT(SWIG_LANG python) - DEFAULT(GP_FLAGS -CtTLANSI-C -Dk* -c) - - when ($NEED_BINUTILS_PEERDIR && $BINUTILS_USED && $NEED_PLATFORM_PEERDIRS == "yes") { - PEERDIR+=build/platform/binutils - } -} - -_LINKER_ID= -# GCC does not support -fuse-ld with an executable path, -# only -fuse-ld=gold or -fuse-ld=lld. -when ($_LINKER_ID != "" && $_DEFAULT_LINKER_ID != "" && $CLANG == "yes" && $NEED_PLATFORM_PEERDIRS == "yes") { - when ($_LINKER_ID in [ "gold", "lld" ]) { - PEERDIR+=build/platform/${_LINKER_ID} - } -} - -macro _USE_LINKER_IMPL(LINKER_ID...) { - SET(_LINKER_ID $LINKER_ID) -} - -macro _USE_LINKER() { - _USE_LINKER_IMPL($_DEFAULT_LINKER_ID) -} - -### @usage: USE_LINKER_GOLD() -### Use gold linker for a program. This doesn't work in libraries -macro USE_LINKER_GOLD() { - _USE_LINKER_IMPL(gold) -} - -COMMON_LINK_SETTINGS= -LINK_ADDITIONAL_SECTIONS= -LINK_ADDITIONAL_SECTIONS_COMMAND= - -when ($COMMON_LINK_SETTINGS == "yes") { - when ($_LINKER_ID == "lld" || $_LINKER_ID == "gold") { - LDFLAGS += -Wl,--gdb-index - } - - when ($EMBED_LINKER_CREF == "yes") { - LDFLAGS+=-Wl,--cref ${tmp;stdout;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME} -Wl,--no-demangle - LINK_ADDITIONAL_SECTIONS+=--add-section=.ya.linker_cref=${tmp;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME} - } - elsewhen ($DUMP_LINKER_CREF == "yes") { - LDFLAGS+=-Wl,--cref ${output;stdout;pre=$MODULE_PREFIX;suf=.ldcref:REALPRJNAME} -Wl,--no-demangle - } - - when ($EMBED_LINKER_MAP == "yes") { - LDFLAGS+=-Wl,-Map=${tmp;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME} - LINK_ADDITIONAL_SECTIONS+=--add-section=.ya.linker_map.${_LINKER_ID}=${tmp;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME} - } - elsewhen ($DUMP_LINKER_MAP == "yes") { - LDFLAGS+=-Wl,-Map=${output;rootrel;pre=$MODULE_PREFIX;suf=.map.$_LINKER_ID:REALPRJNAME} - } - - when ($USE_MKL == "yes") { - NOPLATFORM=yes - } - - when (($USE_EAT_MY_DATA == "yes") && ($WIN32 != "yes") && ($DARWIN != "yes") && ($OS_ANDROID != "yes") && ($OS_IOS != "yes")) { - PEERDIR+=contrib/libs/libeatmydata/autocheck_wrapper - } - - when ($USE_ARCADIA_LIBM == "yes") { - PEERDIR+=contrib/libs/libm - } - when ($USE_ARCADIA_LIBM == "no") { - C_SYSTEM_LIBRARIES+=-lm - } - - when (($MUSL != "yes" && $WITH_VALGRIND == "yes") || $SANITIZER_DEFINED == "yes") { - when ($ALLOCATOR in [ "TCMALLOC", "TCMALLOC_SMALL_BUT_SLOW", "TCMALLOC_NUMA_256K", "TCMALLOC_NUMA_LARGE_PAGES", "TCMALLOC_256K", "TCMALLOC_TC", "GOOGLE", "J", "LF", "LF_YT", "LF_DBG", "B", "BM", "C", "LOCKLESS", "YT", "MIM", "HU", "PROFILED_HU" ]) { - PEERDIR+=library/cpp/malloc/system - } - } - otherwise { - select ($ALLOCATOR) { - "MIM" ? { - PEERDIR+=library/cpp/malloc/mimalloc - } - "HU" ? { - PEERDIR+=library/cpp/malloc/hu - } - "PROFILED_HU" ? { - PEERDIR+=library/cpp/malloc/profiled_hu - } - "TCMALLOC_256K" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc - } - "TCMALLOC_SMALL_BUT_SLOW" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc/small_but_slow - } - "TCMALLOC_NUMA_256K" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc/numa_256k - } - "TCMALLOC_NUMA_LARGE_PAGES" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc/numa_large_pages - } - "TCMALLOC" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc/default - } - "TCMALLOC_TC" ? { - PEERDIR+=library/cpp/malloc/tcmalloc - PEERDIR+=contrib/libs/tcmalloc/no_percpu_cache - } - "GOOGLE" ? { - PEERDIR+=library/cpp/malloc/galloc - } - "J" ? { - when ($WIN32 == "yes") { - PEERDIR+=library/cpp/malloc/system - } - otherwise { - PEERDIR+=library/cpp/malloc/jemalloc - } - } - "LF" ? { - PEERDIR+=library/cpp/lfalloc - } - "LF_YT" ? { - PEERDIR+=library/cpp/lfalloc/yt - } - "LF_DBG" ? { - PEERDIR+=library/cpp/lfalloc/dbg - } - "B" ? { - PEERDIR+=library/cpp/balloc - } - "BM" ? { - PEERDIR+=library/cpp/balloc_market - } - "C" ? { - PEERDIR+=library/cpp/malloc/calloc - } - "LOCKLESS" ? { - PEERDIR+=library/cpp/malloc/lockless - } - "YT" ? { - PEERDIR+=library/cpp/ytalloc/impl - } - } - } - - when ($ALLOCATOR == "SYSTEM") { - PEERDIR+=library/cpp/malloc/system - } - when ($WERROR != "no") { - when ($WERROR_MODE == "all" || ($WERROR_MODE == "compiler_specific" && $WERROR == "yes")) { - C_WARNING_OPTS += $WERROR_FLAG - } - } - - when ($ICC == "yes") { - PEERDIR+=contrib/libs/intel/core - } - when ($WITH_VALGRIND == "yes") { - PEERDIR+=contrib/libs/valgrind - # https://st.yandex-team.ru/DTCC-122 - CFLAGS+=-fdebug-default-version=4 - } -} - -when ($EMBED_LINKER_MAP == "yes" || $EMBED_LINKER_CREF == "yes") { - LINK_ADDITIONAL_SECTIONS_COMMAND+= \ - $OBJCOPY_TOOL $LINK_ADDITIONAL_SECTIONS $TARGET -} - -_SO_EXT_FILTER=${ext=.so:PEERS} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/:PEERS} -when ($OS_WINDOWS == "yes") { - _SO_EXT_FILTER=${ext=.dll:PEERS} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/:PEERS} -} -elsewhen ($OS_DARWIN == "yes" || $OS_IOS == "yes") { - _SO_EXT_FILTER=${ext=.dylib:PEERS} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/:PEERS} -} - -LINK_OR_COPY_SO_CMD= -when ($SO_OUTPUTS == "yes") { - LINK_OR_COPY_SO_CMD=$FS_TOOLS link_or_copy_to_dir --no-check $_SO_EXT_FILTER ${BINDIR} - LDFLAGS+=$RPATH_GLOBAL -} - -# tag:restricted tag:DLL -### $usage: WITH_DYNAMIC_LIBS() # restricted -### -### Include dynamic libraries as extra PROGRAM/DLL outputs -macro WITH_DYNAMIC_LIBS() { - ENABLE(SO_OUTPUTS) -} - -# tag:internal -### $usage: REAL_LINK_EXE_IMPL(peers...) # internal -macro REAL_LINK_EXE_IMPL(WHOLE_ARCHIVE_PEERS...) { - .CMD=$REAL_LINK_EXE_CMDLINE && $LINK_OR_COPY_SO_CMD -} - -# tag:internal -### $usage: REAL_LINK_EXEC_DYN_LIB_IMPL(peers...) # internal -macro REAL_LINK_EXEC_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) { - .CMD=$REAL_LINK_EXEC_DYN_LIB_CMDLINE -} - -# tag:internal -### $usage: REAL_LINK_DYN_LIB_IMPL(peers...) # internal -macro REAL_LINK_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) { - .CMD=$REAL_LINK_DYN_LIB_CMDLINE && $LINK_OR_COPY_SO_CMD -} - -# tag:internal -### $usage: LINK_EXE_IMPL(peers...) # internal -macro LINK_EXE_IMPL(WHOLE_ARCHIVE_PEERS...) { - .CMD=$LINK_EXE_CMDLINE && $LINK_OR_COPY_SO_CMD -} - -# tag:internal -### $usage: LINK_EXEC_DYN_LIB_IMPL(peers...) # internal -macro LINK_EXEC_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) { - .CMD=$LINK_EXEC_DYN_LIB_CMDLINE -} - -# tag:internal -### @usage: _LINK_UNIT # internal -### -### The base of all linkable modules: programs, DLLs etc. Describes common linking logic. -module _LINK_UNIT: _BASE_UNIT { - .EXTS=.o .obj .supp .tidyjson .ld - .CMD=LINK_EXE - .ALLOWED=EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES - .NODE_TYPE=Program - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - .DEFAULT_NAME_GENERATOR=DirName - .ARGS_PARSER=Base - - DEFAULT(ALLOCATOR $DEFAULT_ALLOCATOR) - _USE_LINKER() - - #link with libunwind manually - when ($DARWIN == "yes" && $NOPLATFORM != "yes") { - PEERDIR += contrib/libs/cxxsupp - } - - when ($USE_LIBCXXRT == "yes") { - PEERDIR += contrib/libs/cxxsupp/libcxxrt - } - - when ($USE_DYNAMIC_CUDA == "yes") { - LINK_DYN_LIB_FLAGS += --dynamic-cuda - LINK_SCRIPT_EXE_FLAGS += --dynamic-cuda - } - - ENABLE(COMMON_LINK_SETTINGS) - CHECK_PROVIDES() -} - -MODULE_TYPE=UNKNOWN - -macro ADD_CLANG_TIDY() { - ADD_YTEST($MODULE_PREFIX$REALPRJNAME clang_tidy) - when ($TIDY_ENABLED == "yes") { - _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_project_map.json - _MAKEFILE_INCLUDE_LIKE_DEPS+=${ARCADIA_ROOT}/build/yandex_specific/config/clang_tidy/tidy_default_map.json - } -} - -# tag:internal -### @usage: _BASE_PROGRAM # internal -### -### The base of all programs. It adds dependencies to make final artefact complete and runnable. -module _BASE_PROGRAM: _LINK_UNIT { - .SYMLINK_POLICY=EXE - .ALLOWED=INDUCED_DEPS WHOLE_ARCHIVE - .GLOBAL=LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH - SET(MODULE_TYPE PROGRAM) - SET(MODULE_LANG CPP) - - when ($OS_IOS == "yes") { - EXTS+=.ios.interface - } - - when ($WIN32 == "yes" || $OS_CYGWIN == "yes") { - MODULE_SUFFIX=.exe - } - - when ($TIDY_ENABLED == "yes") { - MODULE_SUFFIX=.tidyjson - } - - when ($MSVC != "yes" && $NOPLATFORM != "yes" && $WITH_VALGRIND != "yes" && $USE_ASMLIB != "no" && $MIC_ARCH != "yes" && $PIC != "yes" && $PIE != "yes") { - when ($OS_LINUX == "yes" && $ARCH_X86_64 == "yes" && $MUSL != "yes" && $SANITIZER_DEFINED != "yes" && $USE_THINLTO != "yes") { - PEERDIR+=contrib/libs/glibcasm - } - otherwise { - PEERDIR+=contrib/libs/asmlib - } - } - - when ($MUSL == "yes") { - when ($MUSL_LITE == "yes") { - PEERDIR += contrib/libs/musl - } - otherwise { - PEERDIR += contrib/libs/musl/full - } - } - - DEFAULT(CPU_CHECK yes) - when ($USE_SSE4 != "yes" || $NOUTIL == "yes" || $ALLOCATOR == "FAKE") { - CPU_CHECK = no - } - - when ($CPU_CHECK == "yes") { - PEERDIR += library/cpp/cpuid_check - } - - when ($USE_ARC_PROFILE == "yes" && $NOUTIL != "yes") { - PEERDIR += library/cpp/execprofile/autostart - } - - when ($SANITIZER_DEFINED == "yes") { - PEERDIR += contrib/libs/cxxsupp/libsan - when ($CLANG && $TARGET_PLATFORM == "LINUX") { - select ($SANITIZER_TYPE) { - "address" ? { - PEERDIR += contrib/libs/clang14-rt/lib/asan - PEERDIR += contrib/libs/clang14-rt/lib/asan_cxx - PEERDIR += contrib/libs/clang14-rt/lib/asan_static - } - "memory" ? { - PEERDIR += contrib/libs/clang14-rt/lib/msan - PEERDIR += contrib/libs/clang14-rt/lib/msan_cxx - } - "leak" ? { - PEERDIR += contrib/libs/clang14-rt/lib/lsan - } - "undefined" ? { - PEERDIR += contrib/libs/clang14-rt/lib/ubsan_standalone - PEERDIR += contrib/libs/clang14-rt/lib/ubsan_standalone_cxx - } - "thread" ? { - PEERDIR += contrib/libs/clang14-rt/lib/tsan - PEERDIR += contrib/libs/clang14-rt/lib/tsan_cxx - } - } - } - } - - when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") { - PEERDIR+=library/cpp/testing/dump_clang_coverage - } - - when ($IDE_MSVS == "yes") { - PEERDIR+=build/scripts/c_templates - } - - when ($_CUSTOM_LINK_STEP_SCRIPT) { - LINK_SCRIPT_EXE_FLAGS+=--python=$YMAKE_PYTHON --custom-step=${input:_CUSTOM_LINK_STEP_SCRIPT} - } -} - -VCS_INFO_SEM=vcs_info ${input;hide:"build/scripts/vcs_info.py"} ${input;hide:"build/scripts/c_templates/svn_interface.c"} ${input;hide:"build/scripts/c_templates/svnversion.h"} -CPP_PROGRAM_SEM=add_executable $MODDIR $CMAKE_TARGET_NAME ${hide:TARGET} ${hide:AUTO_INPUT} $CMAKE_TARGET_ARTEFACT_RENAME_RULES \ - && ${VCS_INFO_SEM} \ - && target_link_options PRIVATE $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \ - && target_compile_options PRIVATE $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW -### @usage: PROGRAM([progname]) -### -### Regular program module. -### If name is not specified it will be generated from the name of the containing project directory. -module PROGRAM: _BASE_PROGRAM { - .SEM=CPP_PROGRAM_SEM - - ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor) - ADD_CLANG_TIDY() -} - -# tag:python-specific tag:deprecated tag:internal -module _PY2_PROGRAM: _BASE_PY_PROGRAM { - SET(MODULE_LANG PY2) - - # Looks like we cannot avoid copy-paste util ymake supports multiple inheritance - # We need to attach coverage.extractor to every py_program target, except pytest targets - ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor) -} - -# tag:python-specific tag:deprecated -### @usage: PY2_PROGRAM([progname]) # deprecated -### -### Deprecated. Use PY3_PROGRAM instead. -### Python 2.x binary program. Links all Python 2.x libraries and Python 2.x interpreter into itself to form regular executable. -### If name is not specified it will be generated from the name of the containing project directory. -### This only compatible with PYTHON2-tagged modules and selects those from multimodules. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY2_PROGRAM: _PY2_PROGRAM { - .RESTRICTED=STYLE_PYTHON - when ($FAIL_PY2 == "yes") { - _OK=no - } - elsewhen ($OPENSOURCE != "yes") { - PEERDIR+=build/rules/py2_deprecation - } - ASSERT(_OK You are using deprecated Python2-only code (PY2_PROGRAM). Please consider rewriting to Python 3.) -} - -# tag:python-specific -### @usage: NO_EXTENDED_SOURCE_SEARCH() -### -### Prevent module using in extended python source search. -### Use the macro if module contains python2-only files (or other python sources which shouldn't be imported by python3 interpreter) -### which resides in the same directories with python 3 useful code. contrib/python/future is a example. -### Anyway, preferred way is to move such files into separate dir and don't use this macro at all. -### -### Also see: https://docs.yandex-team.ru/ya-make/manual/python/vars#y_python_extended_source_search for details -macro NO_EXTENDED_SOURCE_SEARCH() { - SET(NO_EXTENDED_SOURCE_SEARCH yes) -} - -# tag:python-specific -### @usage: PY3_PROGRAM([progname]) -### -### Python 3.x binary program. Links all Python 3.x libraries and Python 3.x interpreter into itself to form regular executable. -### If name is not specified it will be generated from the name of the containing project directory. -### This only compatible with PYTHON3-tagged modules and selects those from multimodules. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -multimodule PY3_PROGRAM { - module PY3_BIN: PY3_PROGRAM_BIN { - .PEERDIRSELF=PY3_BIN_LIB - .IGNORED=RESOURCE RESOURCE_FILES PEERDIR TASKLET_REG RUN_ANTLR4_PYTHON BUILDWITH_CYTHON_CPP _BUILDWITH_CYTHON_CPP_DEP _BUILDWITH_CYTHON_CPP_H BUILDWITH_CYTHON_C _BUILDWITH_CYTHON_C_DEP _BUILDWITH_CYTHON_C_H _BUILDWITH_CYTHON_C_API_H - # Notify pybuild to skip almost all PY_SRCS arguments except MAIN - ENABLE(PROCESS_PY_MAIN_ONLY) - _PY_PROGRAM() - } - - module PY3_BIN_LIB: PY3_LIBRARY { - .IGNORED=RESTRICT_LICENSES - # Notify pybuild to skip all python main function definitions - ENABLE(IGNORE_PY_MAIN) - _REQUIRE_EXPLICIT_LICENSE() - } -} - -### @usage: EXPORTS_SCRIPT(exports_file) -### -### Specify exports script within PROGRAM, DLL and DLL-derived modules. -### This accepts 2 kind of files: .exports with <lang symbol> pairs and JSON-line .symlist files. -### The other option use EXPORTS parameter of the DLL module itself. -### -### @see: [DLL](#module_DLL) -macro EXPORTS_SCRIPT(Arg) { - SET(EXPORTS_FILE $Arg) -} - -### @usage: NO_EXPORT_DYNAMIC_SYMBOLS() -### -### Disable exporting all non-hidden symbols as dynamic when linking a PROGRAM. -macro NO_EXPORT_DYNAMIC_SYMBOLS() { - ENABLE(NO_EXPORT_DYNAMIC_SYMBOLS) -} - -### @usage: EXPORT_ALL_DYNAMIC_SYMBOLS() -### -### Export all non-hidden symbols as dynamic when linking a PROGRAM. -macro EXPORT_ALL_DYNAMIC_SYMBOLS() { - # Dummy: default behaviour - ENABLE(EXPORT_ALL_DYNAMIC_SYMBOLS) -} - -### @usage: USE_DYNAMIC_CUDA() -### -### Enable linking of PROGRAM with dynamic CUDA. By default CUDA uses static linking -macro USE_DYNAMIC_CUDA() { - LDFLAGS(-Wl,-rpath,$ORIGIN) - ENABLE(USE_DYNAMIC_CUDA) -} - -### @usage: CUSTOM_LINK_STEP_SCRIPT(name) -### -### Specifies name of a script for custom link step. The scripts -### should be placed in the build/scripts directory and are subject to -### review by devtools@. -macro CUSTOM_LINK_STEP_SCRIPT(Name) { - SET(_CUSTOM_LINK_STEP_SCRIPT build/scripts/$Name) -} - -### @usage: _BASE_UNITTEST # internal -### -### Module with base logic for all unit-test modules: it makes code runnable as unit-test by Arcadia testing machinery. -module _BASE_UNITTEST: _BASE_PROGRAM { - .FINAL_TARGET=no - .NODE_TYPE=Program - .ALLOWED=YT_SPEC - when ($UT_SKIP_EXCEPTIONS == "yes") { - C_DEFINES+=-DUT_SKIP_EXCEPTIONS - } - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -_TEST_SPLIT_FACTOR_SEM=1 -_TEST_TIMEOUT_SEM= -UNITTEST_SEM=$CPP_PROGRAM_SEM \ - && set_property TARGET $REALPRJNAME PROPERTY SPLIT_FACTOR $_TEST_SPLIT_FACTOR_SEM \ - && add_yunittest NAME $REALPRJNAME TEST_TARGET $REALPRJNAME TEST_ARG --print-before-suite --print-before-test --fork-tests --print-times --show-fails \ - && set_yunittest_property TEST $REALPRJNAME PROPERTY LABELS $TEST_SIZE_NAME \ - && add_ytest_requirements $REALPRJNAME $DEFAULT_REQUIREMENTS $TEST_REQUIREMENTS_VALUE \ - $_TEST_TIMEOUT_SEM - -# tag:test -### @usage: UNITTEST([name]) -### -### Unit test module based on library/cpp/testing/unittest. -### It is recommended not to specify the name. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#opisanievya.make1 -module UNITTEST: _BASE_UNITTEST { - .SEM=UNITTEST_SEM - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - PEERDIR(library/cpp/testing/unittest_main) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py) - - when ($TEST_FORK_MODE != "none") { - when ($TEST_SPLIT_FACTOR) { - _TEST_SPLIT_FACTOR_SEM=$TEST_SPLIT_FACTOR - } - otherwise { - _TEST_SPLIT_FACTOR_SEM=10 - } - } - when ($TEST_TIMEOUT) { - _TEST_TIMEOUT_SEM=&& set_yunittest_property TEST $REALPRJNAME PROPERTY TIMEOUT $TEST_TIMEOUT - } -} - -# tag:yt-specific tag:test -### @usage: YT_UNITTEST([name]) -### -### YT Unit test module based on library/cpp/testing/unittest with NYT::Initialize hook -module YT_UNITTEST: _BASE_UNITTEST { - PEERDIR(library/cpp/testing/unittest_main mapreduce/yt/tests/yt_initialize_hook) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py) -} - -# tag:test -### @usage: UNITTEST_WITH_CUSTOM_ENTRY_POINT([name]) -### -### Generic unit test module. -module UNITTEST_WITH_CUSTOM_ENTRY_POINT: _BASE_UNITTEST { - ADD_YTEST($MODULE_PREFIX$REALPRJNAME unittest.py) -} - -GTEST_SEM=$CPP_PROGRAM_SEM \ - && add_test NAME $REALPRJNAME COMMAND $REALPRJNAME \ - && set_property TEST $REALPRJNAME PROPERTY LABELS $TEST_SIZE_NAME \ - && add_test_requirements $REALPRJNAME $DEFAULT_REQUIREMENTS $TEST_REQUIREMENTS_VALUE \ - $_TEST_TIMEOUT_SEM - -# tag:cpp-specific tag:test -### @usage: GTEST([name]) -### -### Unit test module based on library/cpp/testing/gtest. -### It is recommended not to specify the name. -### -### Documentation: https://docs.yandex-team.ru/arcadia-cpp/cpp_test -module GTEST: _BASE_UNITTEST { - .SEM=GTEST_SEM - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - PEERDIR(library/cpp/testing/gtest library/cpp/testing/gtest_main) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME gunittest) - - when ($TEST_TIMEOUT) { - _TEST_TIMEOUT_SEM=&& set_property TEST $REALPRJNAME PROPERTY TIMEOUT $TEST_TIMEOUT - } -} - -USE_AFL=no - -# tag:fuzzing -### @usage: FUZZ() -### -### In order to start using Fuzzing in Arcadia, you need to create a FUZZ module with the implementation of the function LLVMFuzzerTestOneInput(). -### This module should be reachable by RECURSE from /autocheck project in order for the corpus to be regularly updated. -### AFL and Libfuzzer are supported in Arcadia via a single interface, but the automatic fuzzing still works only through Libfuzzer. -### -### Example: https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/re2/re2/fuzzing/re2_fuzzer.cc?rev=2919463#L58 -### -### Documentation: https://wiki.yandex-team.ru/yatool/fuzzing/ -module FUZZ: _BASE_PROGRAM { - .NODE_TYPE=Program - .FINAL_TARGET=no - .ALLOWED=FUZZ_DICTS FUZZ_OPTS - - SET(LIBFUZZER_PATH contrib/libs/libfuzzer) - when ($USE_AFL == "no") { - PEERDIR+=$LIBFUZZER_PATH - } - when ($USE_AFL == "yes") { - PEERDIR+=$LIBFUZZER_PATH/afl - } - - when (!$SANITIZER_TYPE || $SANITIZER_TYPE == "no") { - PEERDIR+=devtools/nofuzz - } - - ADD_YTEST($MODULE_PREFIX$REALPRJNAME fuzz.test) -} - -# tag:ios-specific -PACK_IOS_CMD= -when ($OS_IOS && $BUILD_IOS_APP) { - PACK_IOS_CMD=$YMAKE_PYTHON ${input:"build/scripts/pack_ios.py"} --binary $TARGET --target $TARGET --temp-dir $BINDIR $PEERS -} - -LINK_BOOSTTEST_CMD= -BOOST_TEST_TYPE_STRING= - -when ($BOOSTTEST_IS_FAT_OBJECT) { - LINK_BOOSTTEST_CMD=$LINK_RECURSIVE_LIBRARY - BOOST_TEST_TYPE_STRING=no.test -} -otherwise { - LINK_BOOSTTEST_CMD=$LINK_EXE - BOOST_TEST_TYPE_STRING=boost.test -} - -# tag:deprecated -### @usage: BOOSTTEST([name]) #deprecated -### -### Test module based on boost/test/unit_test.hpp. -### As with entire boost library usage of this technology is deprecated in Arcadia and restricted with configuration error in most of projects. -### No new module of this type should be introduced unless it is explicitly approved by C++ committee. -module BOOSTTEST: _BASE_PROGRAM { - .NODE_TYPE=Program - .FINAL_TARGET=no - .CMD=LINK_BOOSTTEST_CMD - PEERDIR(library/cpp/testing/boost_test) - when ($BOOSTTEST_IS_FAT_OBJECT) { - MODULE_SUFFIX=.a - } - elsewhen ($OS_IOS && $BUILD_IOS_APP) { - PEERDIR+=devtools/boosttest_ios_wrapper/library - MODULE_SUFFIX=.ios.tar - } - ADD_YTEST($MODULE_PREFIX$REALPRJNAME $BOOST_TEST_TYPE_STRING) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -# tag:deprecated -### @usage BOOSTTEST_WITH_MAIN([name]) #deprecated -### -### Same as BOOSTTEST (see above), but comes with builtin int main(argc, argv) implementation -module BOOSTTEST_WITH_MAIN: BOOSTTEST { - PEERDIR(library/cpp/testing/boost_test_main) -} - -FUZZ_DICTS_VALUE= -### @usage: FUZZ_DICTS(path1 [path2...]) -### -### Allows you to specify dictionaries, relative to the root of Arcadia, which will be used in Fuzzing. -### Libfuzzer and AFL use a single syntax for dictionary descriptions. -### Should only be used in FUZZ modules. -### -### Documentation: https://wiki.yandex-team.ru/yatool/fuzzing/ -macro FUZZ_DICTS(Data...) { - SET_APPEND(FUZZ_DICTS_VALUE $Data) -} - -FUZZ_OPTS_VALUE= -### @usage: FUZZ_OPTS(opt1 [Opt2...]) -### -### Overrides or adds options to the corpus mining and fuzzer run. -### Currently supported only Libfuzzer, so you should use the options for it. -### Should only be used in FUZZ modules. -### -### @example: -### -### FUZZ_OPTS ( -### -max_len=1024 -### -rss_limit_mb=8192 -### ) -### -### Documentation: https://wiki.yandex-team.ru/yatool/fuzzing/ -macro FUZZ_OPTS(Data...) { - SET_APPEND(FUZZ_OPTS_VALUE $Data) -} - -# tag:yt-specific tag:test -TEST_YT_SPEC_VALUE= -### @usage: YT_SPEC(path1 [path2...]) -### -### Allows you to specify json-files with YT task and operation specs, -### which will be used to run test node in the YT. -### Test must be marked with ya:yt tag. -### Files must be relative to the root of Arcadia. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/ -macro YT_SPEC(Data...) { - SET_APPEND(TEST_YT_SPEC_VALUE $Data) -} - -# tag:test -TEST_SRCS_VALUE= -### @usage: TEST_SRCS(Files...) -### -### In PY2TEST, PY3TEST and PY*_LIBRARY modules used as PY_SRCS macro and additionally used to mine test cases to be executed by testing framework. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynapytest -macro TEST_SRCS(Tests...) { - SET_APPEND(TEST_SRCS_VALUE $Tests) -} - -macro DISABLE_DATA_VALIDATION() { - DISABLE(VALIDATE_DATA) -} - -# tag:test -TEST_DATA_VALUE= -### @usage: DATA([path...]) -### -### Specifies the path to the data necessary test. -### Valid values are: arcadia/<path> , arcadia_tests_data/<path> and sbr://<resource_id>. -### In the latter case resource will be brought to the working directory of the test before it is started -### -### Used only inside TEST modules. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#dannyeizrepozitorija -macro DATA(Data...) { - SET_APPEND(TEST_DATA_VALUE $Data) - ADD_CHECK(check.data $Data) -} - -# tag:test -### @usage: DATA_FILES([path...]) -### -### Specifies the path to the arcadia source data necessary test. -### Used only inside TEST modules. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#dannyeizrepozitorija -macro DATA_FILES(Paths...) { - SET_APPEND(TEST_DATA_VALUE ${pre=arcadia/:Paths}) - _DATA_FILES($Paths) -} - -# tag:test -ADD_SRCDIR_TO_TEST_DATA=yes -macro EXPLICIT_DATA() { - SET(ADD_SRCDIR_TO_TEST_DATA no) -} - -# tag:test -TEST_TAGS_VALUE= -### @usage: TAG ([tag...]) -### -### Each test can have one or more tags used to filter tests list for running. -### There are also special tags affecting test behaviour, for example ya:external, sb:ssd. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#obshhieponjatija -macro TAG(Tags...) { - SET_APPEND(TEST_TAGS_VALUE $Tags) -} - -# tag:test -TEST_REQUIREMENTS_VALUE= -### @usage: REQUIREMENTS([cpu:<count>] [disk_usage:<size>] [ram:<size>] [ram_disk:<size>] [container:<id>] [network:<restricted|full>] [dns:dns64]) -### -### Allows you to specify the requirements of the test. -### -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -macro REQUIREMENTS(Tags...) { - SET_APPEND(TEST_REQUIREMENTS_VALUE $Tags) -} - -# tag:test -TEST_ENV_VALUE= -### @usage: ENV(key[=value]) -### -### Sets env variable key to value (gets value from system env by default). -macro ENV(Data...) { - SET_APPEND(TEST_ENV_VALUE ${quo:Data}) -} - -### @usage: CONFTEST_LOAD_POLICY_LOCAL() -### -### Loads conftest.py files in a way that pytest does it -macro CONFTEST_LOAD_POLICY_LOCAL() { - SET_APPEND(TEST_ENV_VALUE "CONFTEST_LOAD_POLICY=LOCAL") -} - -# tag:test -TEST_RECIPES_VALUE= -### @usage: USE_RECIPE(path [arg1 arg2...]) -### -### Provides prepared environment via recipe for test. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/recipes -macro USE_RECIPE(Data...) { - SET_APPEND(TEST_RECIPES_VALUE $Data) - SET_APPEND(TEST_RECIPES_VALUE "USE_RECIPE_DELIM") -} - -# tag:python-specific tag:test -TEST_PYTHON_PATH_VALUE= - -# tag:python-specific tag:test -### @usage: PYTHON_PATH(Path) -### -### Set path to Python that will be used to runs scripts in tests -macro PYTHON_PATH(Path) { - SET(TEST_PYTHON_PATH_VALUE $Path) -} - -# tag:test -SKIP_TEST_VALUE= -### @usage: SKIP_TEST(Reason) -### -### Skip the suite defined by test module. Provide a reason to be output in test execution report. -macro SKIP_TEST(Reason...) { - SET(SKIP_TEST_VALUE $Reason) -} - -# tag:test -LINT_LEVEL_VALUE=extended -_NO_LINT_VALUE= -### @usage: NO_LINT([ktlint]) -### -### Do not check for style files included in PY_SRCS, TEST_SRCS, JAVA_SRCS. -### Ktlint can be disabled using NO_LINT(ktlint) explicitly. -macro NO_LINT(ktlint?"ktlint":"none") { - SET(_NO_LINT_VALUE ${ktlint}) -} - -### @usage: LINT(<none|base|strict>) -### -### Set linting level for sources of the module -macro LINT(level) { - SET(LINT_LEVEL_VALUE $level) -} - -# tag:python-specific tag:test -STYLE_PYTHON_VALUE=no -STYLE_PYTHON_PYPROJECT_VALUE= -### @usage: STYLE_PYTHON([pyproject]) -### -### Check python3 sources for style issues using black. -macro STYLE_PYTHON(pyproject...) { - SET(STYLE_PYTHON_VALUE yes) - SET(STYLE_PYTHON_PYPROJECT_VALUE ${pyproject}) -} - -# tag:python-specific tag:test -### @usage: NO_DOCTESTS() -### -### Disable doctests in PY[|3|23_]TEST -macro NO_DOCTESTS() { - ENV(YA_PYTEST_DISABLE_DOCTEST="yes") -} - -# tag:python-specific tag:test -### @usage: _BASE_PYTEST # internal -### -### Base logic of Python 2.x py.test modules: common module properties and dependencies. -module _BASE_PYTEST: _BASE_PY_PROGRAM { - .NODE_TYPE=Program - .FINAL_TARGET=no - .ALLOWED=YT_SPEC NO_DOCTESTS - when ($USE_ARCADIA_PYTHON == "yes") { - PEERDIR+=library/python/pytest - } - when ($USE_ARCADIA_PYTHON == "no") { - MODULE_SUFFIX=.pkg.fake - PEERDIR+=library/python/pytest/empty - } - - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -# tag:python-specific tag:deprecated tag:test -### @usage: PYTEST_BIN() #deprecated -### -### Same as PY2TEST. Don't use this, use PY2TEST instead. -module PYTEST_BIN: _BASE_PYTEST { - .NODE_TYPE=Program - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - SETUP_PYTEST_BIN() -} - -# tag:python-specific tag:test -### @usage: PY2TEST([name]) -### -### The test module for Python 2.x based on py.test -### -### This module is compatible only with PYTHON2-tagged modules and selects peers from multimodules accordingly. -### This module is compatible with non-Arcadia Python builds. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#python -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -module PY2TEST: PYTEST_BIN { - .RESTRICTED=STYLE_PYTHON - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - when ($FAIL_PY2 == "yes") { - _OK=no - } - elsewhen ($OPENSOURCE != "yes") { - PEERDIR+=build/rules/py2_deprecation - } - SET(MODULE_LANG PY2) - ASSERT(_OK You are using deprecated Python2-only code (PY2TEST). Please consider rewriting to Python 3.) -} - -# tag:python-specific tag:deprecated tag:test -### @usage: PY3TEST_BIN() #deprecated -### -### Same as PY3TEST. Don't use this, use PY3TEST instead. -module PY3TEST_BIN: _BASE_PY3_PROGRAM { - .NODE_TYPE=Program - .FINAL_TARGET=no - .ALLOWED=YT_SPEC NO_DOCTESTS - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) - SET(MODULE_LANG PY3) - SETUP_PYTEST_BIN() - PEERDIR+=library/python/pytest -} - -# tag:python-specific tag:test -### Disable submodules with the specified name(s). -### Unlike EXCLUDE_TAGS this variable: -### - affects all projects in the build; -### - filter by module name and ignore MODULE_TAG. -EXCLUDE_SUBMODULES=PY3TEST_LIBRARY - -# tag:python-specific tag:test -### @usage: PY3TEST([name]) -### -### The test module for Python 3.x based on py.test -### -### This module is compatible only with PYTHON3-tagged modules and selects peers from multimodules accordingly. -### This module is only compatible with Arcadia Python build (to avoid tests duplication from Python2/3-tests). For non-Arcadia python use PYTEST. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynapytest -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -multimodule PY3TEST { - module PY3TEST_PROGRAM: PY3TEST_BIN { - .IGNORED=RUN_ANTLR4_PYTHON - .FINAL_TARGET=yes - } - - module PY3TEST_LIBRARY: PY3_LIBRARY { - PEERDIR+=library/python/pytest - _REQUIRE_EXPLICIT_LICENSE() - } -} - -# tag:cpp-specific tag:test -module CPP_STYLE_TEST: PY3TEST_BIN { - DEPENDS(contrib/libs/clang12/tools/clang-format) - PEERDIR+=library/python/cpp_test -} - -# tag:cpp-specific tag:test -module CPP_STYLE_TEST_14: PY3TEST_BIN { - DEPENDS(contrib/libs/clang14/tools/clang-format) - PEERDIR+=library/python/cpp_test -} - -macro STYLE(Globs...) { - _GLOB(STYLE_SRCS_GLOB ${pre=${ARCADIA_ROOT}:Globs}) - _STYLE(${STYLE_SRCS_GLOB}) -} - -# tag:cpp-specific tag:deprecated tag:test -### @usage: GTEST_UGLY([name]) -### -### Deprecated, do not use in new projects. Use GTEST instead. -### -### The test module based on gtest (contrib/libs/gtest contrib/libs/gmock). -### Use public documentation on gtest for details. -### -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -module GTEST_UGLY: _BASE_PROGRAM { - .NODE_TYPE=Program - .FINAL_TARGET=no - PEERDIR(contrib/restricted/googletest/googlemock contrib/restricted/googletest/googletest) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME gtest) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -# tag:test -### @usage: EXECTEST() -### -### Module definition of generic test that executes a binary. -### Use macro RUN to specify binary to run. -### -### @example: -### -### EXECTEST() -### OWNER(g:yatool) -### -### RUN( -### cat input.txt -### ) -### DATA( -### arcadia/devtools/ya/test/tests/exectest/data -### ) -### DEPENDS( -### devtools/dummy_arcadia/cat -### ) -### TEST_CWD(devtools/ya/test/tests/exectest/data) -### END() -### -### More examples: https://wiki.yandex-team.ru/yatool/test/#exec-testy -### -### @see: [RUN()](#macro_RUN) -module EXECTEST: _BARE_UNIT { - .NODE_TYPE=Program - .FINAL_TARGET=no - .ALLOWED=YT_SPEC - .RESTRICTED=FORK_TEST_FILES - .DEFAULT_NAME_GENERATOR=FullPath - .ARGS_PARSER=Base - SET(MODULE_SUFFIX .pkg.fake) - SETUP_EXECTEST() - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -# tag:cpp-specific tag:test -### @usage: Y_BENCHMARK([benchmarkname]) -### -### Benchmark test based on the library/cpp/testing/benchmark. -### -### For more details see: https://wiki.yandex-team.ru/yatool/test/#zapuskbenchmark -module Y_BENCHMARK: PROGRAM { - .SEM=CPP_PROGRAM_SEM - PEERDIR(library/cpp/testing/benchmark/main) -} - -# tag:cpp-specific tag:test -### @usage: G_BENCHMARK([benchmarkname]) -### -### Benchmark test based on the google benchmark. -### -### For more details see: https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/benchmark/README.md -module G_BENCHMARK: _BASE_PROGRAM { - PEERDIR(library/cpp/testing/gbenchmark_main) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME g_benchmark) -} - -# tag:test -TEST_ROOT=$(TESTS_DATA_ROOT) -RESULT_MAX_FILE=0 -STRIP_FILES=--dont-strip-files -VERIFY_RESULTS=--verify-results -ADDITIONAL_PATH= - -# set for tests variables to fill it by YA_DEV or YA -YA_ROOT=ya -when ($YA_DEV == "yes") { - YA_ROOT=ya-dev -} - - -# tag:test -### @usage: UNITTEST_FOR(path/to/lib) -### -### Convenience extension of UNITTEST module. -### The UNINTTEST module with additional SRCDIR + ADDINCL + PEERDIR on path/to/lib. -### path/to/lib is the path to the directory with the LIBRARY project. -### -### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ -module UNITTEST_FOR: UNITTEST { - .SEM=UNITTEST_SEM - PEERDIR(ADDINCL $UNITTEST_DIR) - SRCDIR($UNITTEST_DIR) -} - -### @usage: _LIBRARY # internal -### -### Base module definition for all libraries. -### Contains basic logic like module properties, default variable values etc. -### All libraries similar to C++-libraries should be inherited from it. -module _LIBRARY: _BASE_UNIT { - .CMD=LINK_LIB - .NODE_TYPE=Library - .PEERDIR_POLICY=as_include - .EXTS=.o .obj .a .mf .supp .tidyjson .ld .lib - .ALLOWED=GRPC USE_SKIFF EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES - .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS SRCS _WHOLE_ARCHIVE_LIBS_VALUE RPATH - .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SPLIT_DWARF - .FINAL_TARGET=no - .GLOBAL_CMD=GLOBAL_LINK_LIB - .GLOBAL_EXTS=.o .obj .tidyjson - - GLOBAL_SUFFIX=.global$MODULE_SUFFIX - #TODO: Remove this hack (really we do not need add fake src at all) - ENABLE(NEED_ADD_FAKE_SRC) - _REQUIRE_EXPLICIT_LICENSE(contrib/deprecated contrib/libs contrib/restricted contrib/python) - CHECK_CONTRIB_CREDITS(contrib/clickhouse contrib/libs contrib/deprecated EXCEPT contrib/deprecated/python) - - when ($USE_MKL == "yes") { - NOPLATFORM=yes - } - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX= - MODULE_SUFFIX=.lib - } - otherwise { - when ($TIDY_ENABLED == "yes") { - MODULE_PREFIX= - MODULE_SUFFIX=.tidyjson - } - otherwise { - MODULE_PREFIX=lib - MODULE_SUFFIX=.a - } - } - - when ($WERROR != "no") { - when ($WERROR_MODE == "all" || ($WERROR_MODE == "compiler_specific" && $WERROR == "yes")) { - C_WARNING_OPTS += $WERROR_FLAG - } - } - - when ($WITH_VALGRIND == "yes") { - PEERDIR+=contrib/libs/valgrind - # https://st.yandex-team.ru/DTCC-1227 - CFLAGS+=-fdebug-default-version=4 - } - - when ($USE_ARCADIA_LIBM == "yes") { - PEERDIR+=contrib/libs/libm - } -} - -CPP_LIBRARY_SEM=add_library ${MODDIR} $CMAKE_TARGET_NAME ${hide:TARGET} ${hide:AUTO_INPUT} $CMAKE_TARGET_ARTEFACT_RENAME_RULES \ - && library_fake_marker FAKE_MODULE ${FAKE_MODULE} \ - && consumer_link_library PUBLIC $CMAKE_LINK_TARGET \ - && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \ - && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW \ - && target_link_options INTERFACE $LDFLAGS_GLOBAL_RAW \ - && add_language C && add_language CXX -CPP_OBJ_LIBRARY_SEM=add_global_library_for ${MODDIR} ${suf=.global:CMAKE_TARGET_NAME} $CMAKE_TARGET_NAME ${hide:GLOBAL_TARGET} ${hide:AUTO_INPUT} \ - && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \ - && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW - -CMAKE_FIND_PKG= -CMAKE_LINK_TARGET=$REALPRJNAME -CMAKE_FIND_PKG_COMP= -CONAN_REQUIRE= -CONAN_OPTS_SEM= - -### @usage: LIBRARY() -### -### The regular static library module. -### -### The LIBRARY() is intermediate module, so when built directly it won't build its dependencies. -### It transitively provides its PEERDIRs to ultimate final target, where all LIBRARY() modules are built and linked together. -### -### This is C++ library, and it selects peers from multimodules accordingly. -### -### It makes little sense to mention LIBRARY in DEPENDS or BUNDLE, package and deploy it since it is not a standalone entity. -### In order to use library in tests PEERDIR it to link into tests. -### If you think you need to distribute static library please contact devtools@ for assistance. -module LIBRARY: _LIBRARY { - .GLOBAL=_AARS _PROGUARD_RULES - .SEM=CPP_LIBRARY_SEM - .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM - .DEFAULT_NAME_GENERATOR=ThreeDirNames - .ARGS_PARSER=Base - - when ($CMAKE_PACKAGE_COMPONENT != "") { - CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT - } - when ($CMAKE_PACKAGE != "") { - CMAKE_FIND_PKG=find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP - CPP_LIBRARY_SEM=$CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_REFERENCE != "") { - CONAN_REQUIRE=&& conan_require $CONAN_REFERENCE - CPP_LIBRARY_SEM=$CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_PKG_OPTS != "") { - CONAN_OPTS_SEM=&& conan_options $CONAN_PKG_OPTS - } - when ($OPENSOURCE_EXPORT == "no") { - CPP_LIBRARY_SEM=IGNORED - } - - when ($HAS_CPP_PROTOBUF_PEERS == "yes") { - PEERDIR+=$CPP_PROTOBUF_PEERS - } - SET(MODULE_TYPE LIBRARY) - SET(MODULE_LANG CPP) - - ADD_CLANG_TIDY() -} - -# tag:internal -### @usage: _BARE_MODULE() # internal -### -### Remove unwanted dependencies for "empty" library module -macro _BARE_MODULE() { - SET(NEED_PLATFORM_PEERDIRS no) - SET(PEERDIR_TEST_TOOL no) - DISABLE(WITH_VALGRIND) - NO_CODENAVIGATION() - NO_PLATFORM() - NO_RUNTIME() - NO_UTIL() - NO_CLANG_TIDY() -} - -# tag:internal -### @usage: _BARE_LINK_MODULE() # internal -### -### Remove unwanted dependencies for "empty" link module -macro _BARE_LINK_MODULE() { - _BARE_MODULE() - DISABLE(COMMON_LINK_SETTINGS) - ALLOCATOR(FAKE) -} - -# tag:internal -### @usage: _CONDITIONAL_SRCS([USE_CONDITIONAL_SRCS] Files...) # internal -### -### Adds Files... to SRCS if first word is `USE_CONDITIONAL_SRCS` -### To be used with some variable which is set to `USE_CONDITIONAL_SRCS` under condition -macro _CONDITIONAL_SRCS(USE_CONDITIONAL_SRCS[], DYMMY...) { - SRCS($USE_CONDITIONAL_SRCS) -} - -# XXX: dirty hack for correct LDFLAGS passing -RESOURCES_LIBRARY_LINK=$TOUCH_UNIT ${hide:LDFLAGS_GLOBAL} ${hide:LDFLAGS} -RESOURCES_LIBRARY_SEM=IGNORED - -### @usage: RESOURCES_LIBRARY() -### -### Definition of a module that brings its content from external source (Sandbox) via DECLARE_EXTERNAL_RESOURCE macro. -### This can participate in PEERDIRs of others as library but it cannot have own sources and PEERDIRs. -### -### @see: [DECLARE_EXTERNAL_RESOURCE()](#macro_DECLARE_EXTERNAL_RESOURCE) -module RESOURCES_LIBRARY: _BARE_UNIT { - .CMD=RESOURCES_LIBRARY_LINK - .SEM=RESOURCES_LIBRARY_SEM - .ALLOWED=DECLARE_EXTERNAL_RESOURCE EXTRALIBS OBJADDE_GLOBAL - .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SRC SRCS PEERDIR SPLIT_DWARF - .NODE_TYPE=Library - .PEERDIR_POLICY=as_include - .EXTS=.o .obj .a .mf .supp .tidyjson .ld .lib - .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH - - when ($CMAKE_PACKAGE_COMPONENT != "") { - CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT - } - when ($CMAKE_PACKAGE != "") { - CMAKE_FIND_PKG=find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP - RESOURCES_LIBRARY_SEM=$CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_REFERENCE != "") { - CONAN_REQUIRE=&& conan_require $CONAN_REFERENCE - RESOURCES_LIBRARY_SEM=$CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET $CONAN_REQUIRE $CONAN_OPTS_SEM && IGNORED - } - when ($CONAN_PKG_OPTS != "") { - CONAN_OPTS_SEM=&& conan_options $CONAN_PKG_OPTS - } - - MODULE_SUFFIX=.pkg.fake - ENABLE(NEED_ADD_FAKE_SRC) - WITHOUT_LICENSE_TEXTS() -} - -FAT_OBJECT_ARGS= -FAT_OBJECT_OUTS= - -macro _FAT_OBJECT_ARGS_BASE(Flag, Lib) { - .CMD=$Flag=$Lib -} - -macro PACK_GLOBALS_IN_LIBRARY() { - SET_APPEND(FAT_OBJECT_ARGS $_FAT_OBJECT_ARGS_BASE(--globals-lib, ${BINDIR}/${pre=$MODULE_PREFIX:REALPRJNAME.globals.a})) - SET_APPEND(FAT_OBJECT_OUTS \${output;hide;noauto;norel;nopath;noext;pre=$MODULE_PREFIX;suf=$BINDIR:REALPRJNAME.globals.a}) -} - -when ($OS_ANDROID != "yes") { - LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT -} -otherwise { - LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT_LIBRARY -} - -FAT_OBJECT_SEM=add_fat_object ${MODDIR} ${CMAKE_TARGET_NAME} ${hide:TARGET} ${hide:AUTO_INPUT} ${CMAKE_TARGET_ARTEFACT_RENAME_RULES} \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \ - && set_global_flags FAT_OBJECT_PREFIX ${MODULE_PREFIX} \ - && set_global_flags FAT_OBJECT_SUFFIX ${MODULE_SUFFIX} - -### Do not turn visibility=hidden symbos into static symbos of partially linked object file -### -### Note: This variable do not have any effect on platforms other than MacOS and iOS. -KEEP_FAT_OBJECT_SYMBOLS=no - -### @usage: FAT_OBJECT() -### -### The "fat" object module. It will contain all its transitive dependencies reachable by PEERDIRs: -### static libraries, local (from own SRCS) and global (from peers') object files. -### -### Designed for use in XCode projects for iOS. -module FAT_OBJECT: LIBRARY { - .ALLOWED=PACK_GLOBALS_IN_LIBRARY - .CMD=LINK_FAT_OBJECT_CMD - .SEM=FAT_OBJECT_SEM - .PEERDIR_POLICY=as_build_from - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.global.lib - } - elsewhen ($OS_ANDROID == "yes") { - MODULE_SUFFIX=.a - } - otherwise { - MODULE_SUFFIX=.o - } - - when (($OS_DARWIN == "yes" || $OS_IOS == "yes") && $KEEP_FAT_OBJECT_SYMBOLS == "yes") { - LDFLAGS_GLOBAL += -keep_private_externs - } - - _USE_LINKER() - - # This module requires at least one .o which is not subject to removal so just add _fake_src.cpp as SRCS - # ymake's handling of NEED_ADD_FAKE_SRC may insert arbitrary command, not necessarily compilation - DISABLE(NEED_ADD_FAKE_SRC) - SRCS(build/scripts/_fake_src.cpp) -} - -RECURSIVE_LIBRARY_SEM=add_recursive_library ${MODDIR} ${CMAKE_TARGET_NAME} ${hide:TARGET} ${hide:AUTO_INPUT} ${CMAKE_TARGET_ARTEFACT_RENAME_RULES} \ - && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS \ - && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW \ - && target_link_options INTERFACE $LDFLAGS_GLOBAL_RAW - -### @usage: RECURSIVE_LIBRARY() -### -### The recursive ("fat") library module. It will contain all its transitive dependencies reachable by PEERDIRs: -### from static libraries, local (from own SRCS) and global (from peers') object files. -### -### Designed for use in XCode projects for iOS. -module RECURSIVE_LIBRARY: LIBRARY { - .CMD=LINK_RECURSIVE_LIBRARY - .SEM=RECURSIVE_LIBRARY_SEM - .PEERDIR_POLICY=as_build_from - - # This module requires at least one .o which is not subject to removal so just add _fake_src.cpp as SRCS - # ymake's handling of NEED_ADD_FAKE_SRC may insert arbitrary command, not necessarily compilation - DISABLE(NEED_ADD_FAKE_SRC) - SRCS(build/scripts/_fake_src.cpp) -} - -_SONAME= -_EXPORT_SCRIPT_SEM= -_CLEAN_TEXTREL= -macro _ADD_DYNLYB_SEM(Libname) { - .SEM=add_library ${MODDIR} ${Libname} SHARED ${hide:TARGET} ${hide:AUTO_INPUT} && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL && target_include_directories PRIVATE $_C__INCLUDE_OWNED && target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && target_link_options PRIVATE $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE && ${VCS_INFO_SEM} $_EXPORT_SCRIPT_SEM -} -CPP_DYN_LIBRARY_SEM=$_ADD_DYNLYB_SEM($CMAKE_TARGET_NAME) $CMAKE_TARGET_ARTEFACT_RENAME_RULES - -macro CLEAN_TEXTREL() { - SET(_CLEAN_TEXTREL yes) -} -### @usage: DLL_UNIT # internal -### -### Base module for all dynamically linked libraries as final artifacts. -### Contains all general logic for such kind of modules. Supports versioning and export files. -### Cannot participate in linking to programs, intended to be used as final artifact (packaged and deployed). -module DLL_UNIT: _LINK_UNIT { - .CMD=LINK_DYN_LIB - .SEM=CPP_DYN_LIBRARY_SEM - .NODE_TYPE=Library - .SYMLINK_POLICY=SO - .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH - .ALLOWED=WHOLE_ARCHIVE - .DEFAULT_NAME_GENERATOR=TwoDirNames - .ARGS_PARSER=DLL - DYNAMIC_LINK=yes - ALLOCATOR(FAKE) - SET(MODULE_TYPE DLL) - SET(MODULE_TAG DLL) - SET(MODULE_LANG CPP) - ADD_CLANG_TIDY() - - when ($EXPORTS_FILE) { - _EXPORT_SCRIPT_SEM=&& use_export_script ${input:EXPORTS_FILE} - } - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.dll - } - elsewhen ($DARWIN == "yes" || $OS_IOS == "yes") { - MODULE_PREFIX=lib - MODULE_SUFFIX=.dylib - } - elsewhen ($TIDY_ENABLED == "yes") { - MODULE_PREFIX= - MODULE_SUFFIX=.tidyjson - } - otherwise { - MODULE_PREFIX=lib - MODULE_SUFFIX=.so - } - - # This by now replicates ymake's behavior. We'll get rid of SONAME setting in ymake and fix this code altogether - SONAME=${pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX:REALPRJNAME} - when ($MODULE_VERSION) { - LINK_DYN_LIB_FLAGS=--soname ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX$MODULE_VERSION:REALPRJNAME} - } - _SONAME=$SONAME$MODULE_VERSION - - when ($LINUX == "yes") { - # '-z notext' is needed for linking mkl into shared libraries - when ($_CLEAN_TEXTREL != "yes") { - LDFLAGS += -Wl,-z,notext - } - } - - when ($OS_LINUX == "yes" && $ARCH_X86_64 == "yes") { - when ($_NO_FIX_ELF != "yes") { - LINK_DYN_LIB_FLAGS+=--fix-elf ${tool:"tools/fix_elf"} - } - } - - when ($DARWIN == "yes") { - LDFLAGS += -undefined dynamic_lookup - } - - when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no") { - PEERDIR+=library/cpp/testing/dump_clang_coverage - } - - when ($IDE_MSVS == "yes") { - PEERDIR+=build/scripts/c_templates - } - - when ($_CUSTOM_LINK_STEP_SCRIPT) { - LINK_DYN_LIB_FLAGS+=--python=$YMAKE_PYTHON --custom-step=${input:_CUSTOM_LINK_STEP_SCRIPT} - } -} - -# tag:python-specific -### @usage: PY_ANY_MODULE(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### The Python external module for any versio of Arcadia or system Python. -### 1. major_ver and minor_ver must be integers. -### 2. The resulting .so will have the prefix "lib". -### 3. Processing EXPORTS and PREFIX is the same as for DLL module -### This is native DLL, so it will select C++ version from PROTO_LIBRARY. -### -### Note: Use PYTHON2_MODULE()/PYTHON3_MODULE() in order to PEERDIR proper version of PY23_NATIVE_LIBRARY. -### Do not PEERDIR any PY*_LIBRARY: this will link Python in and render artifact unusable as Python module. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY_ANY_MODULE: DLL_UNIT { - .SEM=CPP_DYN_LIBRARY_SEM - when ($MSVC != "yes" && $DARWIN != "yes") { - LDFLAGS+= -Wl,-Bsymbolic - } - - when ($USE_ARCADIA_PYTHON == "no") { - when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python - } - otherwise { - when ($MSVC == "yes" || $CYGWIN == "yes") { - LDFLAGS+=$PYTHON_LIBRARIES - } - } - } - - # This by now replicates ymake's behavior. We'll get rid of SONAME setting in ymake and fix this code altogether - SONAME=${pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX:REALPRJNAME} - when ($MODULE_VERSION) { - LINK_DYN_LIB_FLAGS=--soname ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX$MODULE_VERSION:REALPRJNAME} - } - _SONAME=$SONAME$MODULE_VERSION - - # -bundle - when ($DARWIN == "yes") { - LDFLAGS+=-flat_namespace - } - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX= - MODULE_SUFFIX=.pyd - } - otherwise { - MODULE_PREFIX= - MODULE_SUFFIX=.so - } - .RESTRICTED=USE_PYTHON2 USE_PYTHON3 PY_SRCS PY_MAIN -} - -# tag:python-specific -### @usage: PY2MODULE(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### The Python external module for Python2 and any system Python -### 1. major_ver and minor_ver must be integers. -### 2. The resulting .so will have the prefix "lib". -### 3. Processing EXPORTS and PREFIX is the same as for DLL module -### This is native DLL, so it will select C++ version from PROTO_LIBRARY. -### -### Note: this module will always PEERDIR Python2 version of PY23_NATIVE_LIBRARY. -### Do not PEERDIR PY2_LIBRARY or PY23_LIBRARY: this will link Python in and render artifact unusable as Python module. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY2MODULE: PY_ANY_MODULE { - PYTHON2_MODULE() - SET(MODULE_LANG PY2) - .RESTRICTED=PYTHON3_MODULE PYTHON3_ADDINCL -} - -# tag:python-specific -### @usage: PY3MODULE(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### The Python external module for Python3 and any system Python -### 1. major_ver and minor_ver must be integers. -### 2. The resulting .so will have the prefix "lib". -### 3. Processing EXPORTS and PREFIX is the same as for DLL module -### This is native DLL, so it will select C++ version from PROTO_LIBRARY. -### -### Note: this module will always PEERDIR Python3 version of PY23_NATIVE_LIBRARY. -### Do not PEERDIR PY3_LIBRARY or PY23_LIBRARY: this will link Python in and render artifact unusable as Python module. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY3MODULE: PY_ANY_MODULE { - PYTHON3_MODULE() - SET(MODULE_LANG PY3) - .RESTRICTED=PYTHON2_MODULE PYTHON2_ADDINCL -} - -# tag:python-specific -### @usage: PYTHON2_MODULE() -### -### Use in PY_ANY_MODULE to set it up for Python 2.x. -macro PYTHON2_MODULE() { - when ($USE_ARCADIA_PYTHON == "yes" && $MSVC == "yes" || $IS_CROSS_TOOLS == "yes") { - PEERDIR+=contrib/tools/python/lib - } - SET(ANTLR_PYTHON Python2) - PYTHON2_ADDINCL() -} - -# tag:python-specific -### @usage: PYTHON3_MODULE() -### -### Use in PY_ANY_MODULE to set it up for Python 3.x. -macro PYTHON3_MODULE() { - when ($USE_ARCADIA_PYTHON == "yes" && $MSVC == "yes" || $IS_CROSS_TOOLS == "yes") { - PEERDIR+=contrib/tools/python3/lib - } - - SET(ANTLR_PYTHON Python3) - PYTHON3_ADDINCL() -} - -# tag:r-specific -### @usage: R_MODULE(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### The external module for R language. -### 1. major_ver and minor_ver must be integers. -### 2. The resulting .so will have the prefix "lib". -### 3. Processing EXPORTS and PREFIX is the same as for DLL module -### This is native DLL, so it will select C++ version from PROTO_LIBRARY. -module R_MODULE: DLL_UNIT { - .SEM=CPP_DYN_LIBRARY_SEM - when ($DARWIN == "yes") { - LDFLAGS+=-flat_namespace -dynamiclib - } - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=lib - MODULE_SUFFIX=.dll - } - - ADDINCL(contrib/libs/r-lang) -} - -### @usage: DYNAMIC_LIBRARY_FROM(Paths) -### -### Use specified libraries as sources of DLL -macro DYNAMIC_LIBRARY_FROM(Path...) { - PEERDIR($Path) - WHOLE_ARCHIVE($Path) -} - - -### @usage: DLL(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### Dynamic library module definition. -### 1. major_ver and minor_ver must be integers. -### 2. EXPORTS allows you to explicitly specify the list of exported functions. This accepts 2 kind of files: .exports with <lang symbol> pairs and JSON-line .symlist files -### 3. PREFIX allows you to change the prefix of the output file (default DLL has the prefix "lib"). -### -### DLL cannot participate in linking to programs but can be used from Java or as final artifact (packaged and deployed). -module DLL: DLL_UNIT { - .SEM=CPP_DYN_LIBRARY_SEM - SET(MAKE_ONLY_SHARED_LIB yes) - when ($OS_WINDOWS) { - MODULE_SUFFIX=.dll - } - - # TODO: Make it possible to use this syntax - # DEFAULT(DLL_FOR_DIR no) - ### FIXME: XXX - ###when ($DLL_FOR_DIR != "no") { - ### SRCDIR($DLL_FOR_DIR) - ### ADDINCL($DLL_FOR_DIR) - ###} -} - -### DLL_TOOL is a DLL that can be used as a LD_PRELOAD tool. -module DLL_TOOL: DLL { - .SEM=CPP_DYN_LIBRARY_SEM - # ymake resolves only program nodes as tools. - .NODE_TYPE=Program -} - -### @usage: SO_PROGRAM(name major_ver [minor_ver] [EXPORTS symlist_file] [PREFIX prefix]) -### -### Executable dynamic library module definition. -### 1. major_ver and minor_ver must be integers. -### 2. EXPORTS allows you to explicitly specify the list of exported functions. This accepts 2 kind of files: .exports with <lang symbol> pairs and JSON-line .symlist files -### 3. PREFIX allows you to change the prefix of the output file. -module SO_PROGRAM: DLL { - .CMD=LINK_EXEC_DYN_LIB - SET(MODULE_TYPE PROGRAM) - - MODULE_PREFIX= - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.exe - } - otherwise { - MODULE_SUFFIX= - } -} - -DLL_PROXY_CMD_MF=$GENERATE_MF && $COPY_CMD $AUTO_INPUT $TARGET - -# tag:internal -### @usage: DEV_DLL_PROXY() # internal -### -### The use of this module is strictly prohibited!!! -### This is a temporary and project-specific solution. -module DEV_DLL_PROXY: _BARE_UNIT { - .NODE_TYPE=Library - .EXTS=.so .dll .dylib .mf - .CMD=DLL_PROXY_CMD_MF - DYNAMIC_LINK=yes - - when ($OS_WINDOWS == "yes") { - MODULE_SUFFIX=.dll - } - elsewhen ($DARWIN == "yes" || $OS_IOS == "yes") { - MODULE_PREFIX=lib - MODULE_SUFFIX=.dylib$MODULE_VERSION - } - otherwise { - MODULE_PREFIX=lib - MODULE_SUFFIX=.so$MODULE_VERSION - } -} - -# tag:internal -### @usage: DLL_PROXY() # internal -### -### The use of this module is strictly prohibited!!! -### This is a temporary and project-specific solution. -module DLL_PROXY: DEV_DLL_PROXY { - .EXTS=.so .dylib .lib .mf - .PROXY=yes - .PEERDIR_POLICY=as_build_from - SET(PEERDIR_TAGS DLL __EMPTY__) - - when ($OS_WINDOWS == "yes") { - MODULE_SUFFIX=.lib - } -} - -# tag:internal -### @usage: DYNAMIC_DEPS(Path...) # internal, temporary -### -### Enlist paths to all DYNAMIC_LIBRARY dependencies of the DYNAMIC_LIBRARY -### This it needed to transfer their outputs through the library to PROGRAM -### or dependent DLL/DYNAMIC_LIBRARY. -### -### Note: this is temporary solution until support of `super-global` variables come -### which will enable transfer of some properties though final targets like DLLs. -macro DYNAMIC_DEPS(Path...) { - # PEERDIR as macro completely ignored in place where this macro applies - SET_APPEND(PEERDIR $Path) -} - -# tag:internal -### @usage: DYNAMIC_LIBRARY() # internal -### -### The use of this module is strictly prohibited except LGPL-related opensourcing -### This provides linkable DLL module which brings its results to programs and tests -### for seamless testing and packaging -multimodule DYNAMIC_LIBRARY { - module DLL_BIN: DLL { - .PROXY=yes - .IGNORED=PROVIDES - SET(MODULE_TAG DLL) - } - module DLL_LIB: _DLL_COMPATIBLE_LIBRARY { - .CMD=TOUCH_UNIT_MF - .PEERDIRSELF=DLL_BIN - .IGNORED=SRCS PEERDIR RUN_PROGRAM PYTHON DYNAMIC_LIBRARY_FROM GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_PYTHON2 USE_PYTHON3 - .ALLOWED=DYNAMIC_DEPS - - SET(PEERDIR_TAGS DLL_LIB __EMPTY__) - - _BARE_MODULE() - DYNAMIC_LINK=yes - MODULE_SUFFIX=.pkg.fake - PEERDIR+=build/platform/local_so - - # disable credits generation for static library - SET(CREDITS_FLAGS) - } -} - -### @usage: GLOBAL_SRCS(filenames...) -### -### Make all source files listed as GLOBAL. -### Call to GLOBAL_SRCS macro is equivalent to call to SRCS macro when each source file is marked with GLOBAL keyword. -### Arcadia root relative or project dir relative paths are supported for filenames arguments. GLOBAL keyword is not -### recognized for GLOBAL_SRCS in contrast to SRCS macro. -### -### @example: -### Consider the file to ya.make: -### -### LIBRARY() -### GLOBAL_SRCS(foo.cpp bar.cpp) -### END() -### -### @see: [SRCS()](#macro_SRCS) -macro GLOBAL_SRCS(Files...) { - SRCS(${pre=GLOBAL :Files}) -} - -### @usage: ALL_SRCS([GLOBAL] filenames...) -### -### Make all source files listed as GLOBAL or not depending on the keyword GLOBAL -### Call to ALL_SRCS macro is equivalent to call to GLOBAL_SRCS macro when GLOBAL keyword is specified -### as the first argument and is equivalent to call to SRCS macro otherwise. -### -### @example: -### -### LIBRARY() -### SET(MAKE_IT_GLOBAL GLOBAL) -### ALL_SRCS(${MAKE_IT_GLOBAL} foo.cpp bar.cpp) -### END() -### -### @see: [GLOBAL_SRCS()](#macro_GLOBAL_SRCS), [SRCS()](#macro_SRCS) -macro ALL_SRCS(GLOBAL?"GLOBAL":"", Files...) { - SRCS(${pre=$GLOBAL :Files}) -} - -### @usage: _DLL_COMPATIBLE_LIBRARY # internal -### -### Base module to place DLLs into multimodules back to back with libraries. -### In order to function properly all modules in multimodule shall have the -### same set of arguments. So this module is just library that accepts but -### ignores all DLL arguments. -module _DLL_COMPATIBLE_LIBRARY: LIBRARY { - .DEFAULT_NAME_GENERATOR=TwoDirNames - .ARGS_PARSER=DLL -} - -@import "${CONF_ROOT}/conf/project_specific/yql_udf.conf" - -# as SRCS in packages use macro BUNDLE_SRCS! - -PACKED_PACKAGE_ARGS= -PACKED_PACKAGE_EXT= -### @usage: PACK(archive_type) -### -### When placed inside the PACKAGE module, packs the build results tree to the archive with specified extension. Currently supported extensions are `tar` and `tar.gz` -### -### Is not allowed other module types than PACKAGE(). -### -### @see: [PACKAGE()](#module_PACKAGE) -macro PACK(Ext) { - SET(PACKED_PACKAGE_EXT $Ext) -} - -PACKAGE_STRICT_VALUE= -macro PACKAGE_STRICT() { - SET(PACKAGE_STRICT_VALUE yes) -} - -### @usage: PACKAGE(name) -### -### Module collects what is described directly inside it, builds and collects all its transitively available PEERDIRs. -### As a result, build directory of the project gets the structure of the accessible part of Arcadia, where the build result of each PEERDIR is placed to relevant Arcadia subpath. -### The data can be optionally packed if macro PACK() is used. -### -### Is only used together with the macros FILES(), PEERDIR(), COPY(), FROM_SANDBOX(), RUN_PROGRAM or BUNDLE(). Don't use SRCS inside a PACKAGE. -### -### Documentation: https://wiki.yandex-team.ru/yatool/large-data/ -### -### @see: [PACK()](#macro_PACK) -multimodule PACKAGE { - module PACKAGE_FINAL: _BASE_UNIT { - .CMD=TOUCH_PACKAGE_MF - .ALIASES=SRCS=FILES - .ALLOWED=PACK - .PEERDIRSELF=PACKAGE_UNION - .USE_PEERS_LATE_OUTS=yes - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - SET(PEERDIR_TAGS CPP_PROTO CPP_FBS PY2 PY3 PY2_NATIVE YQL_UDF_SHARED __EMPTY__ DOCSBOOK JAR_RUNNABLE PY3_BIN PY3TEST_PROGRAM DLL GO PACKAGE_UNION) - - SET(MODULE_SUFFIX .final.pkg.fake) - SET(DONT_RESOLVE_INCLUDES yes) - NO_PLATFORM() - when ($PACKED_PACKAGE_EXT) { - PACKED_PACKAGE_ARGS+=--dest-arch ${output;pre=$MODULE_PREFIX;suf=.$PACKED_PACKAGE_EXT:REALPRJNAME} - } - SET(NEED_PLATFORM_PEERDIRS no) - } - module PACKAGE_UNION: UNION { - .CMD=UNION_CMD - .FINAL_TARGET=no - .ALLOWED=PACK - - SET(MODULE_SUFFIX .pkg.fake) - SET(PEERDIR_TAGS CPP_PROTO CPP_FBS PY2 PY3 PY2_NATIVE YQL_UDF_SHARED __EMPTY__ DOCSBOOK JAR_RUNNABLE PY3_BIN PY3TEST_PROGRAM DLL GO PACKAGE_UNION) - - DISABLE(START_TARGET) - } -} - -TOUCH_GROUP=$TOUCH_PACKAGE ${kv;hide:"p CI"} - -### @usage: CI_GROUP() -### -### Module collects what is described directly inside it transitively by PEERDIRs. -### No particular layout of built artifacts is implied. This module is needed primarily for CI dependency analysis and may not trigger builds at all. -### -### Is only used together with the macro PEERDIR() and FILES(). Don't use SRCS inside CI_GROUP(). -module CI_GROUP: _BARE_UNIT { - .CMD=TOUCH_GROUP - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - .RESTRICTED=SRCS - .USE_PEERS_LATE_OUTS=yes - MODULE_SUFFIX=.ci.pkg.fake - PEERDIR_TAGS=CPP_PROTO PY3 PY3_NATIVE PY3_BIN PY3TEST_PROGRAM YQL_UDF_SHARED __EMPTY__ DOCSBOOK JAR_RUNNABLE DLL -} - -# tag:generic tag:internal -TOUCH_UNIT_MF=$TOUCH_UNIT && $GENERATE_MF - -# tag:proto -### @usage: RESOLVE_PROTO() -### -### Enable include resolving within UNIONs and let system .proto being resolved -### among .proto/.gztproto imports -### -### Note: it is currently impossible to enable resolving only for .proto, so resolving is enabled for all supported files -### also we only add ADDINCL for stock protobuf. So use this macro with care: it may cause resolving problems those are -### to be addressed by either ADDINCLs or marking them as TEXT. Please contact devtools for details. -macro RESOLVE_PROTO() { - SET(DONT_RESOLVE_INCLUDES no) - ADDINCL(FOR proto $PROTOBUF_PATH) -} - -### @usage: UNION(name) -### -### Collection of PEERDIR dependencies, files and artifacts. -### UNION doesn't build its peers, just provides those to modules depending on it. -### When specified in DEPENDS() macro the UNION is transitively closed, building all its peers and providing those by own paths (without adding this module path like PACKAGE does). -### -### Is only used together with the macros like FILES(), PEERDIR(), COPY(), FROM_SANDBOX(), RUN_PROGRAM or BUNDLE(). Don't use SRCS inside a UNION. -### -### Documentation: https://wiki.yandex-team.ru/yatool/large-data/ -module UNION: _BASE_UNIT { - .CMD=UNION_CMD_MF - .FINAL_TARGET=no - .ALIASES=SRCS=FILES - NO_PLATFORM() - SET(MODULE_SUFFIX .pkg.fake) - SET(DONT_RESOLVE_INCLUDES yes) - SET(NEED_PLATFORM_PEERDIRS no) - PEERDIR_TAGS=CPP_PROTO CPP_FBS PY2 PY2_NATIVE YQL_UDF_SHARED __EMPTY__ DOCSBOOK JAR_RUNNABLE PY3_BIN DLL PACKAGE_UNION -} - -# tag:python-specific -module _PY_PACKAGE: UNION { - .EXTS=.py - .ALLOWED=GRPC USE_SKIFF - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - ENABLE(PY_PROTOS_FOR) - SET(PEERDIR_TAGS PY_PROTO) - SET(DONT_RESOLVE_INCLUDES no) -} - -# tag:python-specific tag:deprecated tag:internal -### @usage: PY_PACKAGE(name) # internal, deprecated -### -### This is module created via PY_PROTOS_FOR() macro -module PY_PACKAGE: _PY_PACKAGE { - .ALIASES=SRCS=SRCS - .FINAL_TARGET=yes -} - -# tag:internal -### @usage: _SET_FIRST_VALUE(name args...) # internal -### -### This macro sets the value of `name` variable to the value of next argument -macro _SET_FIRST_VALUE(NAME, VALUE, OTHER...) { - SET($NAME $VALUE) -} - -# tag:python-specific -PY_NAMESPACE_VALUE= - -# tag:python-specific -### @usage: PY_NAMESPACE(prefix) -### -### Sets default Python namespace for all python sources in the module. -### Especially suitable in PROTO_LIBRARY where Python sources are generated and there is no PY_SRCS to place NAMESPACE parameter. -macro PY_NAMESPACE(Arg) { - SET(PY_NAMESPACE_VALUE $Arg) -} - -# tag:internal -### @usage: _SRCS_NO_GLOBAL(files...) # internal -### -### Proxy macro to SRCS macro which filters out GLOBAL keyword from the list of source files. -### Useful for modules like EXTERNAL_JAVA_LIBRARY, where GLOBAL keyword cannot be applied properly. -### Note: this macro changes order of source files. -macro _SRCS_NO_GLOBAL(GLOBAL[], FILES...) { - SRCS($GLOBAL $FILES) -} - -# tag:java-specific -JAVA_VCS_MF_ARG= -COMPILE_JAVA_MF=${hide:JAVA_FAKEID} $COMPILE_JAVA $MAVEN_EXPORT_CMD - -# tag:java-specific -when ($EXT_JAVA_VCS_INFO == "yes") { - JAVA_VCS_MF_ARG=--vcs-mf $VCS_JAVA - COMPILE_JAVA_MF=${hide:JAVA_FAKEID} $GENERATE_VCS_JAVA_INFO_NODEP && $COMPILE_JAVA $MAVEN_EXPORT_CMD -} - -# tag:java-specific -EXT_JAVA_VCS_INFO=no -### @usage: EMBED_JAVA_VCS_INFO() -### -### Embed manifest with vcs info into `EXTERNAL_JAVA_LIBRARY` -### By default this is disabled. -macro EMBED_JAVA_VCS_INFO() { - .SEM=add_vcs_info_to_mf ${hide;output:"VcsInfoMfDummy.java"} - ENABLE(EXT_JAVA_VCS_INFO) -} - -# tag:java-specific tag:internal -### @usage: EXTERNAL_JAVA_LIBRARY() #internal -### -### EXTERNAL_JAVA_LIBRARY() is a module for creating a .jar file using non-Java code (generators etc.) -### Unlike regular JAVA_LIBRARY this module doesn't produce .pom file, so it cannot be exported to Maven itself. -### PEERDIR it from JAVA_LIBRARY or JAVA_PROGRAM for export to Maven. -module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT { - .EXTS=.jsrc .java .jar .mf - .NODE_TYPE=Bundle - .CMD=COMPILE_JAVA_MF - # TODO(YMAKE-27) all contribs involved into opensource export must be JAVA_CONTRIB modules - # and this module must not be intended for export. Such hange will break JBUILD and thus is - # blocked on YMAKE-27 - .SEM=JAVA_CONTRIB_SEM - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=no - .ALIASES=SRCS=_SRCS_NO_GLOBAL - .ALLOWED=EMBED_JAVA_VCS_INFO - .RESTRICTED=EXTERNAL_JAR - .GLOBAL=MAVEN_EXPORT_COORDS - - PEERDIR(build/platform/java/jdk) - PEERDIR+=$JDK_RESOURCE_PEERDIR $EXTERNAL_JAVA_EXTRA_PEERDIR - when ($KOTLIN_PROTO == "yes") { - PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION} - } - - when ($MAVEN_EXPORT == "yes" && $YMAKE_JAVA_MODULES == "yes") { - when ($MAVEN_DEPLOY == "yes") { - PEERDIR+=build/external_resources/maven - MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM && $MAVEN_DEPLOY_CMD - } - otherwise { - MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM - } - MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GOUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}: - } - - PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL PACKAGE_UNION - HAS_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes - MACRO_ALIAS(PROTO_CMD _JAVA_PROTO_CMD) - MACRO_ALIAS(EVLOG_CMD _JAVA_EVLOG_CMD) - MACRO_ALIAS(FBS_CMD _JAVA_FLATC_CMD) - - when ($PACKAGE_PREFIX) { - PACKAGE_PREFIX_ARGS=--package-prefix=$PACKAGE_PREFIX - } - - DISABLE(NEED_PLATFORM_PEERDIRS) - NO_PLATFORM() - SET(MODULE_SUFFIX .jar) - SET(MODULE_LANG JAVA) - - _WHEN_EXPORT_GRADLE() -} - -# tag:java-specific -ALL_JAR_SOURCES= -LINT_JAVA_SOURCES= -ALL_SRCDIRS= -LINK_JAR_RESOURCES= -LINK_JAR_JSOURCES= -JAR_GEN_SRCS= -JAR_GEN_JSRCS= -macro _JAR_SRCS(SRCDIR=".", PACKAGE_PREFIX="", EXCLUDE[], FILES[], RESOURCES?"yes":"no", Globs...) { - _CHECK_JAVA_SRCDIR($SRCDIR) - SET_APPEND(ALL_SRCDIRS $SRCDIR) - SET(VAR_SALT $SRCDIR $Globs $EXCLUDE $PACKAGE_PREFIX $RESOURCES $FILES) - SET(JAR_SRCS_GLOB uniq_${hash:VAR_SALT}) - _LATE_GLOB(${JAR_SRCS_GLOB} ${pre=${SRCDIR}/:Globs} EXCLUDE ${EXCLUDE}) - SET_APPEND(LINT_JAVA_SOURCES \${input;rootrel;ext=.java:${JAR_SRCS_GLOB}}) - SET_APPEND(ALL_JAR_SOURCES --jsources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt --resources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt --srcdir ${quo:SRCDIR} \${input:${JAR_SRCS_GLOB}} ${pre=\$\{input\:\";suf=\"\}:FILES}) - _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_RESOURCES ${quo:SRCDIR} ${BINDIR}/cls ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt) - _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_JSOURCES ${quo:SRCDIR} ${BINDIR}/src ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt) - _FILL_JAR_GEN_SRCS(JAR_GEN_SRCS JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst $KT_SRCLIST ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt $Globs EXCLUDE $EXCLUDE) - _FILL_JAR_GEN_SRCS(JAR_GEN_JSRCS SRC_JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst $KT_SRCLIST ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt $Globs EXCLUDE $EXCLUDE) -} - -macro IDEA_JAR_SRCS(Args...) { - _JAR_SRCS($Args) - SET_APPEND(JAVA_SRCS_VALUE $ARGS_DELIM $Args) -} - -macro _HASH_HELPER(Args...) { - .CMD=${hash:Args} - .SEM=${hash:Args} -} - -macro _GENTAR_HELPER(OUT_DIR[], Args...) { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --pack ${OUT_DIR} --outs ${output;tared;suf=.$_HASH_HELPER($Args).gentar:OUT_DIR} ${kv;hide:"tared_kind nodir"} -} - -# tag:java-specific -RUN_JAR_PROG_CP_PRE=@ -RUN_JAR_PROG_CP_SUF=.cplst -when($JDK_VERSION == "8") { - RUN_JAR_PROG_CP_PRE= - RUN_JAR_PROG_CP_SUF= -} - -# tag:java-specific -JDK_LATEST_VERSION=19 -JDK_LATEST_PEERDIR=build/platform/java/jdk/jdk${JDK_LATEST_VERSION} - -# tag:java-specific -macro _DO_2_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq_", IN_DIRS_INPUTS[], IN{input}[], IN_NOPARSE{input}[], IN_DIR[], OUT_NOAUTO{output}[], OUT{output}[], TOOL{tool}[], OUT_DIR[], CLASSPATH[], ADD_SRCS_TO_CLASSPATH?"yes":"no", CWD="${ARCADIA_BUILD_ROOT}", Args...) { - _LATE_GLOB(${IN_DIRS_VAR} ${suf=/**/*:IN_DIR}) - _CHECK_RUN_JAVA_PROG_CLASSPATH($CLASSPATH) - .PEERDIR=build/platform/java/jdk $JDK_RESOURCE_PEERDIR - .CMD=${kv;hide:"p RJ"} ${kv;hide:"pc blue"} ${hide:JAVA_FAKEID} ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} ${OUT_DIR} && ${cwd:CWD} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} $YMAKE_PYTHON ${input:"build/scripts/fix_java_command_file_cp.py"} --build-root ${ARCADIA_BUILD_ROOT} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:CLASSPATH}${RUN_JAR_PROG_CP_SUF} ${Args} && $_GENTAR_HELPER($CLASSPATH $IN_DIR $IN $IN_NOPARSE $TOOL $Args OUT_DIR $OUT_DIR) ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output;noauto;hide:OUT_NOAUTO} ${output;hide:OUT} ${tool;hide:TOOL} ${IN_DIRS_INPUTS} -} - -# tag:java-specific -macro _DO_1_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq", Args...) { - _DO_2_RUN_JAR_PROGRAM($Args IN_DIRS_VAR $IN_DIRS_VAR IN_DIRS_INPUTS ${"$"}{input;hide:$IN_DIRS_VAR}) -} - -# tag:java-specific -macro RUN_JAVA_PROGRAM(Args...) { - _DO_1_RUN_JAR_PROGRAM($Args IN_DIRS_VAR uniq_${hash:Args}) -} - -# tag:java-specific -_JAR_ANN_PROCESSORS= -_JAR_ANN_PROC_OPT_PREFIX= -macro JAR_ANNOTATION_PROCESSOR(Classes...) { - SET_APPEND(_JAR_ANN_PROCESSORS $Classes) - SET(_JAR_ANN_PROC_OPT_PREFIX -processor) - - # for ya ide idea only - SET_APPEND(ANNOTATION_PROCESSOR_VALUE $ARGS_DELIM $Classes) -} - -# tag:java-specific -macro _JAR_ANN_PROC_OPTS(Classes...) { - .CMD=$_JAR_ANN_PROC_OPT_PREFIX ${join=,:Classes} -} - -# tag:java-specific -macro _NOOP_MACRO(Args...) { - ENABLE(UNUSED_MACRO) -} - -# tag:java-specific -module _JAR_BASE: _BARE_UNIT { - .NODE_TYPE=Bundle - .CMD=TOUCH_UNIT - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=no - .ALIASES=SRCS=_SRCS_NO_GLOBAL - .ALLOWED=EMBED_JAVA_VCS_INFO DEPENDENCY_MANAGEMENT EXCLUDE - .DEFAULT_NAME_GENERATOR=TwoDirNames - .RESTRICTED=WITH_JDK RESOURCE RESOURCE_FILES - - PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL DLL JAR_COMPILATION __EMPTY__ - - HAS_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes - MACRO_ALIAS(PROTO_CMD _JAVA_PROTO_CMD) - MACRO_ALIAS(EVLOG_CMD _JAVA_EVLOG_CMD) - MACRO_ALIAS(FBS_CMD _JAVA_FLATC_CMD) - - DISABLE(NEED_PLATFORM_PEERDIRS) - NO_PLATFORM() - VCS_JAVA=${suf=.__vcs_version__.mf:TARGET} - SET(MODULE_LANG JAVA) - - _WHEN_EXPORT_GRADLE() -} - -JAVA_CONTRIB_PROXY_SEM=IGNORED -# tag:java-specific -module JAVA_CONTRIB_PROXY: _JAR_BASE { - .SEM=JAVA_CONTRIB_PROXY_SEM -} - -# tag:java-specific -macro _FETCH_CONTRIB(Id, Out, SBR="sbr:") { - .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$SBR:Id} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_sandbox.py"} --resource-file $(RESOURCE_ROOT)/sbr/$Id/resource --resource-id $Id --copy-to ${output:Out} ${input;hide:"build/scripts/fetch_from.py"} ${requirements;hide:"network:full"} ${kv;hide:"p SB"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - ADD_CHECK(check.resource $Id) -} - -# tag:java-specific -LOCAL_JAR_PATH= -LOCAL_SOURCES_JAR_PATH= -JAR_RESOURCE_ID= -SRC_RESOURCE_ID= -FETCH_SRCS_JAR= -FETCH_TARGET_JAR= -FETCH_CONTRIB_JAR=${hide:JAVA_FAKEID} $FETCH_TARGET_JAR $FETCH_SRCS_JAR - -# tag:java-specific -macro JAR_RESOURCE(Id) { - SET(JAR_RESOURCE_ID $Id) -} - -# tag:java-specific -macro SRC_RESOURCE(Id) { - SET(SRC_RESOURCE_ID $Id) -} - -# tag:java-specific -macro LOCAL_JAR(File) { - SET(LOCAL_JAR_PATH $File) -} - -# tag:java-specific -macro LOCAL_SOURCES_JAR(File) { - SET(LOCAL_SOURCES_JAR_PATH $File) -} - -JAVA_CONTRIB_SEM=consumer_classpath $_EXPORT_GRADLE_PROJECT_COORDS ${hide:TARGET} ${hide:AUTO_INPUT} && IGNORED -# tag:java-specific -module JAVA_CONTRIB: _JAR_BASE { - .CMD=FETCH_CONTRIB_JAR - .SEM=JAVA_CONTRIB_SEM - .FINAL_TARGET=yes - .GLOBAL=MAVEN_EXPORT_COORDS - - when ($JAR_RESOURCE_ID) { - FETCH_TARGET_JAR= && $_FETCH_CONTRIB($JAR_RESOURCE_ID ${BINDIR}/${MODULE_PREFIX}${REALPRJNAME}${MODULE_SUFFIX}) - } - otherwise { - when ($LOCAL_JAR_PATH) { - FETCH_TARGET_JAR= && $FS_TOOLS copy ${input:LOCAL_JAR_PATH} $TARGET - } - otherwise { - FETCH_TARGET_JAR= && $GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:BINDIR} $JDK_RESOURCE/bin/jar cfvm $TARGET $VCS_JAVA . - PEERDIR+=build/platform/java/jdk - PEERDIR+=$JDK_RESOURCE_PEERDIR - } - } - when ($SRC_RESOURCE_ID) { - FETCH_SRCS_JAR= && $_FETCH_CONTRIB($SRC_RESOURCE_ID ${BINDIR}/${REALPRJNAME}-sources.jar) - } - otherwise { - when ($LOCAL_SOURCES_JAR_PATH) { - FETCH_SRCS_JAR= && $FS_TOOLS copy ${input:LOCAL_SOURCES_JAR_PATH} {output;pre=${BINDIR}/;suf=-sources.jar:REALPRJNAME} - } - otherwise { - FETCH_SRCS_JAR= && $GENERATE_VCS_JAVA_INFO_NODEP && $FS_TOOLS md ${BINDIR}/fake-src && ${cwd;suf=/fake-src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/;suf=-sources.jar:REALPRJNAME} $VCS_JAVA . - PEERDIR+=build/platform/java/jdk - PEERDIR+=$JDK_RESOURCE_PEERDIR - } - } - when ($MAVEN_EXPORT == "yes") { - _MAKEFILE_INCLUDE_LIKE_DEPS+=pom.xml - FETCH_CONTRIB_JAR+= && $MAVEN_EXPORT_GEN_DEPLST - } - - SET(MODULE_SUFFIX .jar) - _SETUP_MAVEN_EXPORT_COORDS_IF_NEED($MODDIR) -} - -MAKE_JAVA_CLASSPATH_FILE=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} ${input;hide:"build/scripts/process_command_files.py"} - -# tag:kotlin-specific -KOTLINC_OPTS_VALUE= - -# tag:kotlin-specific -KT_SRCLIST=${BINDIR}/misc/all-kt-sources.txt -KT_SRSCLIST_FLAG=--kotlin $KT_SRCLIST -KT_CLASSES_DIR=${BINDIR}/kt_cls -KT_CLASSPATH=${BINDIR}/kt_cp.txt -COLLECT_KT_CLASSPATH=${WRITER_PY} --file ${BINDIR}/kt_bfg.txt -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file -LINK_KT_CLASSPATH=${MAKE_JAVA_CLASSPATH_FILE} ${BINDIR}/kt_bfg.txt $KT_CLASSPATH && $FS_TOOLS md $KT_CLASSES_DIR -COMPILE_KT= \ - ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/with_pathsep_resolve.py"} $YMAKE_PYTHON ${input:"build/scripts/run_javac.py"} --kotlin --sources-list $KT_SRCLIST \ - $JDK_RESOURCE/bin/java -jar $KOTLIN_COMPILER_RESOURCE_GLOBAL/kotlin-compiler.jar -no-stdlib -module-name $REALPRJNAME -jvm-target ${KOTLIN_JVM_TARGET} \ - @$KT_SRCLIST -classpath @$KT_CLASSPATH $KOTLINC_FLAGS_VALUE -d $KT_CLASSES_DIR $KOTLINC_OPTS_VALUE -ALL_KT_COMMANDS= -KT_CLASSPATH_ITEM= - -# tag:kotlin-specific -KT_KAPT_SOURCES_DIR=${BINDIR}/kapt_gen_src -KT_KAPT_STUBS_DIR=${BINDIR}/kapt_gen_stubs -KT_KAPT_AP_CLASSPATH= -KT_KAPT_PLUGIN_OPTS=-P plugin:org.jetbrains.kotlin.kapt3:sources=${KT_KAPT_SOURCES_DIR} -P plugin:org.jetbrains.kotlin.kapt3:classes=${KT_CLASSES_DIR} -P plugin:org.jetbrains.kotlin.kapt3:stubs=${KT_KAPT_STUBS_DIR} -P plugin:org.jetbrains.kotlin.kapt3:aptMode=stubsAndApt -### @usage: KAPT_OPTS(opts...) -### -### Used to specify annotation processor qualified class names. -### If specified multiple times, only last specification is used. -macro KAPT_OPTS(Args...) { - SET_APPEND(KT_KAPT_PLUGIN_OPTS ${pre=-P :Args}) -} -### @usage: KAPT_ANNOTATION_PROCESSOR(processors...) -### -### Used to specify annotation processor qualified class names. -### If specified multiple times, only last specification is used. -macro KAPT_ANNOTATION_PROCESSOR(Args...) { - KAPT_OPTS(${pre="plugin:org.jetbrains.kotlin.kapt3:processors=":Args}) -} -### @usage: KAPT_ANNOTATION_PROCESSOR_CLASSPATH(jars...) -### -### Used to specify classpath for annotation processors. -### If specified multiple times, all specifications are used. -macro KAPT_ANNOTATION_PROCESSOR_CLASSPATH(Args...) { - PEERDIR($Args) - SET_APPEND(KT_KAPT_AP_CLASSPATH $Args) -} - -# tag:java-specific -JAVAC_CMD=$JDK_RESOURCE/bin/javac -ERROR_PRONE_JAVAC_CMD=${YMAKE_PYTHON} ${input:"build/scripts/build_java_with_error_prone2.py"} $JDK_RESOURCE/bin/java $JDK_RESOURCE/bin/javac $ERROR_PRONE_RESOURCE/error_prone.jar - -# tag:java-specific tag:codenav -JAVA_YNDEXING=no - -# tag:java-specific -when ($USE_SYSTEM_KYTHE) { - KYTHE_RESOURCE=$USE_SYSTEM_KYTHE -} -otherwise { - KYTHE_RESOURCE=$KYTHE_RESOURCE_GLOBAL -} - -# tag:java-specific tag:codenav -_JAVA_YNDEXING_CMD=$YMAKE_PYTHON ${input:"build/scripts/build_java_codenav_index.py"} $TARGET $ARCADIA_BUILD_ROOT $ARCADIA_ROOT ${BINDIR}/all-java.srclst $JDK_RESOURCE/bin/java -jar $KYTHE_RESOURCE/kythe/extractors/javac_extractor.jar -_DO_JAVA_YNDEXING= - -# tag:java-specific -SOURCES_JAR=no -_PACK_SRC_JAR_IMPL=&& $FS_TOOLS md ${BINDIR}/src $JAR_GEN_JSRCS $LINK_JAR_JSOURCES && ${cwd;suf=/src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} $VCS_JAVA . -_PACK_SRC_JAR= - -# tag:java-specific -_PACK_JNI= -_PACK_JNI_CMD= && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} --ya-end-command-file ${BINDIR}/cls - -# tag:java-specific -_MAKE_JSTYLE_FILE_LIST= - -# tag:java-specific -_LINK_UBERJAR= -_UBERJAR_SELF= -_DO_LINK_UBERJAR= && $JDK_RESOURCE/bin/java -cp $UBERJAR_RESOURCE/devtools-java_shader.jar ru.yandex.devtools.emigrante.Main --out-jar $TARGET $_UBERJAR_SELF ${ext=.jar;pre=--jar :MANAGED_PEERS_CLOSURE} ${UBERJAR_PREFIX_FLAG} ${UBERJAR_HIDE_EXCLUDE_FLAGS} $UBERJAR_PATH_EXCLUDES ${UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG} ${UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS} ${UBERJAR_APPENDING_TRANSFORMER_FLAGS} ${UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG} \ - && $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} $BINDIR/_empty/META-INF \ - && $YMAKE_PYTHON ${input:"build/scripts/touch.py"} $BINDIR/_empty/META-INF/MANIFEST.MF \ - && $UPDATE_VCS_JAVA_INFO_NODEP($TARGET) \ - && ${cwd;suf=/_empty:BINDIR} ${JDK_RESOURCE}/bin/jar ufv ${TARGET} META-INF/MANIFEST.MF \ - && $JDK_RESOURCE/bin/jar ufvm $TARGET $VCS_JAVA - -# tag:java-specific -macro _PACK_JAR_HELPER(Out) { - .CMD=${cwd;suf=/cls:BINDIR} $JDK_RESOURCE/bin/jar cfvm $Out $VCS_JAVA . -} - -# tag:java-specific -macro _JAVAC_RUN_HELPER(JAVAC_CMD_WITH_ARGS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/with_pathsep_resolve.py"} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/run_javac.py"} --sources-list ${BINDIR}/all-java.srclst ${JAVAC_CMD_WITH_ARGS} @${BINDIR}/all-java.srclst -classpath ${ARCADIA_BUILD_ROOT}/bfg.jar -Xpkginfo:always ${JAVAC_OPTS} $_JAR_ANN_PROC_OPTS($_JAR_ANN_PROCESSORS) -d ${BINDIR}/cls -g -encoding UTF-8 -} -macro _ADD_HIDDEN_INPUTS(Inputs...) { - .CMD=${input;hide:Inputs} -} - -# tag:java-specific -ERROR_PRONE_JDK16_ADD_OPENS=-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -ERROR_PRONE_2_7_1_FORCED_OPTS=-Xep:InlineMeInliner:OFF -Xep:SameNameButDifferent:OFF - -# tag:java-specific -macro _ADD_OPTS_IF_NON_EMPTY(Opt, Args...) { - .CMD=${pre=$Opt :Args} -} -macro _ADD_GEN_POM_FROM_COORD_FILES_ARGS(Deps...) { - .CMD=${pre=--deps-coords ;ext=.jar;suf=.mvn_coords:Deps} -} -MAVEN_EXPORT_OUT_DIR_FLAG=$_ADD_OPTS_IF_NON_EMPTY(--output-dir ${MAVEN_EXPORT_OUT_DIR}) -MAVEN_EXPORT_SOURCE_DIRS=$_ADD_OPTS_IF_NON_EMPTY(--source-dirs ${ALL_SRCDIRS}) -MAVEN_EXPORT_DEPS_COORS=$_ADD_GEN_POM_FROM_COORD_FILES_ARGS(${MANAGED_PEERS_CLOSURE}) -MAVEN_EXPORT_OUT_DIR= - -MAVEN_EXPORT=no -MAVEN_DEPLOY=no -MAVEN_DEPLOY_SOURCES= -MAVEN_EXPORT_VERSION={vcs_revision} -MAVEN_EXPORT_GEN_DEPLST= \ - $WRITER_PY \ - --file ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mvn_coords:REALPRJNAME} \ - --ya-start-command-file -m ${pre=D=:MAVEN_EXPORT_COORDS_GLOBAL} ${pre=E=:EXCLUDED_MAVEN_EXPORT_COORDS_GLOBAL} --ya-end-command-file \ - ${hide:APPLIED_EXCLUDES} -MAVEN_EXPORT_GEN_POM=${kv;hide:"mvn_export yes"} \ - $YMAKE_PYTHON ${input:"build/scripts/generate_pom.py"} \ - --from-coord-files \ - --vcs-info $(VCS)/vcs.json \ - --target-path $MODDIR \ - $MAVEN_EXPORT_SOURCE_DIRS \ - $MAVEN_EXPORT_DEPS_COORS \ - $MAVEN_EXPORT_OUT_DIR_FLAG \ - --target-coords ${suf=.mvn_coords:TARGET} \ - --pom-path ${output:"pom.xml"} - -MAVEN_DEPLOY_CMD=$YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} $MAVEN_BIN \ - deploy:deploy-file -DpomFile=$BINDIR/pom.xml \ - -Dfile=$TARGET -DrepositoryId=$MAVEN_REPO_ID -Durl=$MAVEN_REPO_URL -Djava.net.preferIPv4Addresses=false -Djava.net.preferIPv6Addresses=true \ - ${MAVEN_DEPLOY_SOURCES} \ - $_ADD_OPTS_IF_NON_EMPTY(-gs $MAVEN_EXPORT_SETTINGS) \ - $_ADD_OPTS_IF_NON_EMPTY(-s $MAVEN_EXPORT_SETTINGS) -MAVEN_EXPORT_CMD= - -# tag:java-specific -JAVA_COVERAGE_SRCLIST_FLAG=--coverage ${output;pre=${MODULE_PREFIX};suf=.cpsf:REALPRJNAME} --source-root ${ARCADIA_ROOT} -JAVA_COVERAGE_SRCLIST= -PREPARE_JAVA_BUILD_DIRS=$FS_TOOLS md ${BINDIR}/cls && $FS_TOOLS md ${BINDIR}/misc -EXTRACT_GENDIRS=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --unpack --ext .gentar ${ext=.gentar:AUTO_INPUT} -COLLECT_JAVA_SRCLIST=${YMAKE_PYTHON} ${input:"build/scripts/make_java_srclists.py"} ${input;hide:"build/scripts/process_command_files.py"} ${input;hide:"build/scripts/java_pack_to_file.py"} --moddir ${CURDIR} --java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} --ya-start-command-file ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file -COLLECT_CLASSPATH=${WRITER_PY} --file ${BINDIR}/bfg.txt -m --ya-start-command-file ${rootrel:MANAGED_PEERS_CLOSURE} $KT_CLASSPATH_ITEM --ya-end-command-file -LINK_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/bfg.txt ${ARCADIA_BUILD_ROOT}/bfg.jar -COMPILE_JAVA_SRCLIST=$_JAVAC_RUN_HELPER($JAVAC_CMD) -PACK_JAR=$_PACK_JAR_HELPER($TARGET) -# NOTE: No && before LINK_JAR_RESOURCES, ALL_KT_COMMANDS and JAR_GEN_SRCS needed since those vars either empty or starts with && -LINK_JAR=${hide:JAVA_FAKEID} ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} ${requirements;hide:"cpu:2"} \ - $PREPARE_JAVA_BUILD_DIRS \ - && $EXTRACT_GENDIRS \ - && $COLLECT_JAVA_SRCLIST \ - $JAR_GEN_SRCS \ - $ALL_KT_COMMANDS \ - && $COLLECT_CLASSPATH \ - && $LINK_CLASSPATH \ - && $COMPILE_JAVA_SRCLIST \ - $LINK_JAR_RESOURCES \ - && ${cwd;suf=/cls:BINDIR} $GENERATE_VCS_JAVA_INFO_NODEP . \ - $_PACK_SRC_JAR \ - $_PACK_JNI \ - && $PACK_JAR \ - $_DO_JAVA_YNDEXING \ - $_MAKE_JSTYLE_FILE_LIST \ - $_LINK_UBERJAR \ - $MAVEN_EXPORT_CMD \ - $_ADD_HIDDEN_INPUTS($JAVA_EXTERNAL_DEPENDENCIES_VALUE) - -# tag:java-specific -_EXT_SRC_JAR= -_EXT_JAR= -_COPY_EXT_SRC_JAR= && $FS_TOOLS md ${BINDIR}/empty && ${cwd;suf=/empty:BINDIR} $JDK_RESOURCE/bin/jar cfvM ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} . -_DO_USE_EXT_JAR=${hide:JAVA_FAKEID} $FS_TOOLS copy ${input:_EXT_JAR} $TARGET $_COPY_EXT_SRC_JAR $MAVEN_EXPORT_CMD -_DO_COPY_EXT_SRC_JAR= && $FS_TOOLS copy $_EXT_SRC_JAR ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} -macro JAVA_RESOURCE(JAR, SOURCES="") { - SET(_EXT_SRC_JAR $SOURCES) - SET(_EXT_JAR $JAR) -} - -# tag:java-specific tag:fbs -JAVA_FLATBUFFERS_VERSION = 2.0.0 - -# tag:java-specific -module _COMPILABLE_JAR_BASE : _JAR_BASE { - # flatbuffers-java - DEPENDENCY_MANAGEMENT(contrib/java/com/google/flatbuffers/flatbuffers-java/${JAVA_FLATBUFFERS_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/flatbuffers/flatbuffers-java EXCEPT contrib/java/com/google/flatbuffers/flatbuffers-java/${JAVA_FLATBUFFERS_VERSION}) - - # protobuf-java - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-java EXCEPT contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION}) - - # protobuf-javalite - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-javalite/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-javalite EXCEPT contrib/java/com/google/protobuf/protobuf-javalite/${JAVA_PROTO_RUNTIME_VERSION}) - - # protobuf-java-util - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-java-util/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-java-util EXCEPT contrib/java/com/google/protobuf/protobuf-java-util/${JAVA_PROTO_RUNTIME_VERSION}) -} - -_JAR_MAIN_CLASS= -macro JAR_MAIN_CLASS(Class) { - SET(_JAR_MAIN_CLASS ${Class}) -} - -_JAR_MAIN_SEM= -_ADD_JAR_MAIN_SEM= && app_main_class ${_JAR_MAIN_CLASS} - -GRADLE_EXPORT_PUBLISHING=no -_GRADLE_EXPORT_PUBLISHING_SEM= -_DO_GRADLE_EXPORT_PUBLISHING_SEM= && publish True && publish_group $MAVEN_EXPORT_GOUP_ID && publish_version $MAVEN_EXPORT_VERSION - -BUILD_JAR_SEM=jar $MODDIR $REALPRJNAME ${hide:TARGET} ${hide:AUTO_INPUT} && consumer_classpath $_EXPORT_GRADLE_PROJECT_COORDS $_JAR_MAIN_SEM $_GRADLE_EXPORT_PUBLISHING_SEM - -### _EXPORT_GRADLE_TARGET_ATTR(NAME, VALUE...) -### -### Add target attribute `NAME` for .SEM if `VALUE` is non-empty -### ` && $Name $Value -macro _EXPORT_GRADLE_TARGET_ATTR(NAME, VALUE...) { - .SEM=${pre= && $NAME :VALUE} -} - -BUILD_PROTO_JAR_SEM=jar_proto $MODDIR $REALPRJNAME ${hide:target} ${hide:AUTO_INPUT} && consumer_classpath $_EXPORT_GRADLE_PROJECT_COORDS $_EXPORT_GRADLE_TARGET_ATTR(proto_namespace $PROTO_NAMESPACE) $_EXPORT_GRADLE_TARGET_ATTR(proto_grpc ${ext=yes:_GRPC_ENABLED}) - -# tag:java-specific tag:internal -### @usage: JAR_LIBRARY() #internal -### -### Reimplementation of the JAVA_LIBRARY with ymake.core.conf and ymake based dependency management -module JAR_LIBRARY: _COMPILABLE_JAR_BASE { - .EXTS=.jsrc .java .jar .mf .gentar .kt - .CMD=LINK_JAR - .SEM=BUILD_JAR_SEM - .FINAL_TARGET=yes - .ALIASES=JAVA_SRCS=IDEA_JAR_SRCS ANNOTATION_PROCESSOR=JAR_ANNOTATION_PROCESSOR - .RESTRICTED=EXTERNAL_JAR - .GLOBAL=MAVEN_EXPORT_COORDS - MODULE_SUFFIX=.jar - - PEERDIR(build/platform/java/jdk) - PEERDIR+=$JDK_RESOURCE_PEERDIR - - when ($_EXT_SRC_JAR) { - _COPY_EXT_SRC_JAR=_DO_COPY_EXT_SRC_JAR - } - when ($_EXT_JAR) { - LINK_JAR=$_DO_USE_EXT_JAR - } - when ($OPENSOURCE_EXPORT == "no") { - BUILD_JAR_SEM=IGNORED - } - when ($_JAR_MAIN_CLASS) { - _JAR_MAIN_SEM=$_ADD_JAR_MAIN_SEM - } - when ($GRADLE_EXPORT_PUBLISHING == "yes") { - _GRADLE_EXPORT_PUBLISHING_SEM=$_DO_GRADLE_EXPORT_PUBLISHING_SEM - } - - # in the ideal world this statement must be under condition bellow - DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) - when ($WITH_KOTLIN_VALUE) { - KT_SRSCLIST=$KT_SRSCLIST_FLAG - _MAKE_LINT_KT_FILES_LIST = $YMAKE_PYTHON ${input:"build/scripts/kt_copy.py"} $KT_SRCLIST ${output;noauto:"all-kt-sources.txt"} $(SOURCE_ROOT) $(BUILD_ROOT) - ALL_KT_COMMANDS=&& $COLLECT_KT_CLASSPATH && $LINK_KT_CLASSPATH - when ($WITH_KAPT_VALUE == "yes") { - # For Kapt usage see: https://kotlinlang.org/docs/kapt.html#using-in-cli - # See for kapt.kotlin.generated: https://github.com/JetBrains/kotlin/blob/master/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt - _KAPT_OPTS=-Xplugin=${tool:"contrib/java/org/jetbrains/kotlin/kotlin-annotation-processing/1.8.10"} $KT_KAPT_PLUGIN_OPTS - _RUN_KAPT=${YMAKE_PYTHON} ${input:"build/scripts/with_kapt_args.py"} ${pre=--ap-classpath :KT_KAPT_AP_CLASSPATH} -- $COMPILE_KT $_KAPT_OPTS - _APPEND_KAPT_GENERATED_SRCS=$YMAKE_PYTHON ${input:"build/scripts/resolve_java_srcs.py"} -d $KT_KAPT_SOURCES_DIR --include-patterns '**/*.java' '**/*.kt' --resolve-kotlin --append -s ${BINDIR}/all-java.srclst -k $KT_SRCLIST -r ${BINDIR}/not-used.txt - - ALL_KT_COMMANDS+=&& $_RUN_KAPT && $_APPEND_KAPT_GENERATED_SRCS - } - ALL_KT_COMMANDS+=&& $COMPILE_KT && $_MAKE_LINT_KT_FILES_LIST - LINK_JAR_RESOURCES+=&& $FS_TOOLS copy_all_files ${KT_CLASSES_DIR} ${BINDIR}/cls - PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 - when($WITH_KOTLINC_PLUGIN_ALLOPEN) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-allopen-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_LOMBOK) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-lombok-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_NOARG) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-noarg-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_SERIALIZATION) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-serialization-plugin.jar - } - # Must be in sync with KT_CLASSES_DIR! - # There are problems in JDK13 with abs paths in classpath baked into jar file manifest. Using relative path - # here assumes that jar file with classpath for javac located in the $ARCADIA_BUILD_ROOT - KT_CLASSPATH_ITEM=$MODDIR/kt_cls - } - otherwise { - KT_SRSCLIST= - ALL_KT_COMMANDS= - KT_CLASSES= - } - - when ($MAVEN_EXPORT == "yes" && $YMAKE_JAVA_MODULES == "yes") { - when ($MAVEN_DEPLOY == "yes") { - PEERDIR+=build/external_resources/maven - MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM && $MAVEN_DEPLOY_CMD - } - otherwise { - MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM - } - MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GOUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}: - } - - when ($SOURCES_JAR == "yes") { - _PACK_SRC_JAR=$_PACK_SRC_JAR_IMPL - MAVEN_DEPLOY_SOURCES=-Dsources=${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} - } - - when ($JAVA_COVERAGE == "yes") { - JAVA_COVERAGE_SRCLIST=$JAVA_COVERAGE_SRCLIST_FLAG - } - - when ($MAKE_UBERJAR_VALUE == "yes") { - _LINK_UBERJAR=$_DO_LINK_UBERJAR - PACK_JAR=$_PACK_JAR_HELPER(${BINDIR}/${REALPRJNAME}.lib.jar) - # TODO: This condition is incorrect in case of autoinputs _UBERJAR_SELF should be empty only for - # modules without AUTO_INPUT and without JAVA_SRCS added inputs. - when($ALL_JAR_SOURCES) { - _UBERJAR_SELF=--jar ${BINDIR}/${REALPRJNAME}.lib.jar - } - PEERDIR+=build/platform/java/uberjar - PEERDIR+=$UBERJAR_RESOURCE_PEERDIR - } - - when($JAVA_YNDEXING == "yes") { - PEERDIR+=build/platform/java/kythe - _DO_JAVA_YNDEXING=&& $_JAVAC_RUN_HELPER($_JAVA_YNDEXING_CMD) && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} kindex.tar .kzip ${output;hide;tared:"kindex.tar"} - } - - when($ERROR_PRONE_VALUE) { - PEERDIR+=$ERROR_PRONE_PEERDIR - JAVAC_CMD=$ERROR_PRONE_JAVAC_CMD - } - - when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "16") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "17") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "18") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "19") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS - JAVAC_OPTS+=$ERROR_PRONE_2_7_1_FORCED_OPTS - } - - when ($JAVA_ADD_DLLS_VALUE == "yes") { - CONSUME_NON_MANAGEABLE_PEERS=yes - _PACK_JNI=$_PACK_JNI_CMD - } - - when ($LINT_LEVEL_VALUE != "none") { - _MAKE_JSTYLE_FILE_LIST= && ${WRITER_PY} --file ${output;noauto:"lint-java.srclst"} -m --ya-start-command-file $LINT_JAVA_SOURCES --ya-end-command-file - } - - SET(MODULE_TYPE JAVA_LIBRARY) - ENABLE(YMAKE_JAVA_TEST) - _ADD_KOTLIN_STYLE_CHECKS($(BUILD_ROOT)/$MODDIR/all-kt-sources.txt REQUIREMENTS cpu:2) - _ADD_JAVA_STYLE_CHECKS($(BUILD_ROOT)/$MODDIR/lint-java.srclst::$(SOURCE_ROOT)) - _ADD_CLASSPATH_CLASH_CHECK() - JAVA_MODULE(IDEA_ONLY) -} - -# tag:java-specific -_SCRIPTGEN_FLAGS= -macro _GEN_JAVA_SCRIPT_IMPL(Out, Template, Props...) { - .CMD=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:Out} --template ${input:Template} ${_SCRIPTGEN_FLAGS} -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;ext=.jar;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${MODDIR} -D JAR_BASENAME=${REALPRJNAME} $Props -} - -# tag:java-specific -_GEN_USERSCRIPTS= -macro _ADD_GEN_JAVA_SCRIPT(Out, Template, Props...) { - SET_APPEND(_GEN_USERSCRIPTS && \$_GEN_JAVA_SCRIPT_IMPL($Out $Template $Props)) -} - -# tag:java-specific -_PACK_JDK= - -# tag:java-specific -DO_GEN_JAVA_RUN_SH= -_SOURCE_JARS= -_SOURCE_JARS_CPLIST= -GEN_JAVA_RUN_SH=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:"run.sh"} -D GENERATE_DEFAULT_RUNNER=yes -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${REALPRJNAME} -D JAR_BASENAME=${REALPRJNAME} -GEN_RUN_CP=${WRITER_PY} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${nopath;qe;pre=$REALPRJNAME/:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} -COLLECT_JAR_PROGRAM_CP=$FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;late_out;nopath;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} -MAKE_JAR_PROGRAM_CPLST=${MAKE_JAVA_CLASSPATH_FILE} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} --ya-start-command-file ${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS_CPLIST} --ya-end-command-file -TAR_CLASSPATH= && $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} ${output;pre=$MODULE_PREFIX;suf=.tar:REALPRJNAME} ${cwd;pre=$BINDIR/:REALPRJNAME} -DO_TAR_CLASSPATH= -LINK_JAR_PROGRAM=${hide:JAVA_FAKEID} $FS_TOOLS md ${BINDIR}/${REALPRJNAME} && $COLLECT_JAR_PROGRAM_CP && $DO_GEN_JAVA_RUN_SH && $GEN_RUN_CP && $MAKE_JAR_PROGRAM_CPLST $DO_TAR_CLASSPATH $_GEN_USERSCRIPTS $_PACK_JDK ${kv;hide:"p JP"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - -# tag:java-specific -# UBERJAR program link command -LINK_UBERJAR_PROGRAM=${hide:JAVA_FAKEID} ${kv;hide:"p UJ"} ${MAKE_JAVA_CLASSPATH_FILE} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} $TARGET \ - && $FS_TOOLS md ${BINDIR}/${REALPRJNAME} \ - && $FS_TOOLS link_or_copy ${BINDIR}/${REALPRJNAME}.jar $TARGET \ - && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${BINDIR}/${REALPRJNAME}.jar ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;output;ext=.jar;pre=$BINDIR/$REALPRJNAME/:REALPRJNAME} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} \ - $DO_TAR_CLASSPATH \ - $_GEN_USERSCRIPTS \ - $_PACK_JDK - -# tag:java-specific -RUN_WITH_SOURCES=no -# TODO jbuild creates tar with all classpath deps by default and some projects rely on this. In ymake build this tar file creation is not needed and should be disabled by default in future -TARED_CLASSPATH=yes -_JAR_SRCS_CALLED=no - -# tag:java-specific -macro _MARK_JAVA_PROG_WITH_SOURCES(Args...) { - ENABLE(_JAR_SRCS_CALLED) -} - -# tag:java-specific -module _JAR_RUNNABLE: _COMPILABLE_JAR_BASE { - .FINAL_TARGET=yes - .CMD=LINK_JAR_PROGRAM - .SEM=IGNORED - .ALIASES=JAVA_SRCS=_MARK_JAVA_PROG_WITH_SOURCES GENERATE_SCRIPT=_YMAKE_GENERATE_SCRIPT - .ALLOWED=WITH_JDK - MODULE_SUFFIX=.run.cp.jar - CONSUME_NON_MANAGEABLE_PEERS=yes - - when ($RUN_WITH_SOURCES == "yes") { - _SOURCE_JARS=${ext=.jar;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} ${hide;late_out;ext=.jar;nopath;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} - _SOURCE_JARS_CPLIST=${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} - } - - when ($TARED_CLASSPATH == "yes") { - DO_TAR_CLASSPATH=$TAR_CLASSPATH - } - - when ($DISABLE_SCRIPTGEN) { - DO_GEN_JAVA_RUN_SH= - } - otherwise { - DO_GEN_JAVA_RUN_SH=$GEN_JAVA_RUN_SH - PEERDIR+=build/platform/java/scriptgen - } - - when ($WITH_JDK_VALUE) { - _PACK_JDK= && ${YMAKE_PYTHON} ${input:"build/scripts/tar_directory.py"} ${output;tared:"jdk.tar"} $WITH_JDK_RESOURCE $WITH_JDK_RESOURCE - } - - when ($MAKE_UBERJAR_VALUE == "yes") { - LINK_JAR_PROGRAM=$LINK_UBERJAR_PROGRAM - DYNAMIC_LINK=no - _SCRIPTGEN_FLAGS=-D IS_UBERJAR=yes - } - otherwise { - _SCRIPTGEN_FLAGS=-D IS_UBERJAR=no - } - CHECK_PROVIDES() -} - -# tag:java-specific -multimodule JAR_PROGRAM { - module JAR_RUNNABLE: _JAR_RUNNABLE { - .ALLOWED=JAVA_RUNTIME_PEERDIR JAVA_RUNTIME_EXCLUDE - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_RUNTIME_PEERDIR=PEERDIR JAVA_RUNTIME_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JAVA_PROGRAM) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALIASES=JAVA_RUNTIME_PEERDIR=_NOOP_MACRO JAVA_RUNTIME_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - SET(MODULE_TYPE JAVA_PROGRAM) - } -} - -# tag:java-specific -LINK_JAR_TEST=${hide:JAVA_FAKEID} ${WRITER_PY} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} ${kv;hide:"p JT"} -YMAKE_JAVA_TEST= -module _JAR_TEST: _COMPILABLE_JAR_BASE { - .FINAL_TARGET=yes - .CMD=LINK_JAR_TEST - .DEFAULT_NAME_GENERATOR=FullPath - CONSUME_NON_MANAGEABLE_PEERS=yes - - SET(MODULE_SUFFIX .test.cp.jar) - ENABLE(YMAKE_JAVA_TEST) - JAVA_TEST() - CHECK_PROVIDES() -} - -# tag:java-specific -multimodule JUNIT5_YMAKE { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=JAVA_TEST_PEERDIR - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JUNIT5) - } - module JAR_COMPILATION: JAR_LIBRARY { - .IGNORED=JAVA_TEST_PEERDIR - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO - .FINAL_TARGET=no - - PEERDIR(devtools/junit5-runner build/platform/java/jacoco-agent) - } -} - -# tag:java-specific -multimodule JTEST_YMAKE { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=YT_SPEC - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JTEST) - PEERDIR(devtools/junit-runner) - DEPENDENCY_MANAGEMENT(contrib/java/org/hamcrest/hamcrest-core/1.3 contrib/java/com/google/code/gson/gson/2.8.6 contrib/java/com/beust/jcommander/1.72 contrib/java/junit/junit/4.12) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO - .ALLOWED=YT_SPEC - .FINAL_TARGET=no - - DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) - PEERDIR(build/platform/java/jacoco-agent) - } -} - -# tag:python-specific tag:deprecated -### @usage: PY2_LIBRARY() # deprecated -### -### Deprecated. Use PY23_LIBRARY or PY3_LIBRARY instead. -### Python 2.x binary built library. Builds sources from PY_SRCS to data suitable for PY2_PROGRAM. -### Adds dependencies to Python 2.x runtime library from Arcadia. -### This module is only compatible with PYTHON2-tagged modules and selects those from multimodules. -### This module is only compatible with Arcadia Python build. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY2_LIBRARY: _LIBRARY { - _ARCADIA_PYTHON_ADDINCL() - - when ($NO_PYTHON_INCLS != "yes") { - PEERDIR+=contrib/libs/python - } - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py - } - otherwise { - MODULE_PREFIX=libpy - } - .ALLOWED=FORK_TESTS - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_PYTHON2 - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS STYLE_PYTHON - USE_GLOBAL_CMD=yes - - when ($PY_PROTO_MYPY_ENABLED == "yes") { - PY_PROTO_MYPY_SUFFIX=_pb2.pyi - PY_PROTO_MYPY_PLUGIN=$PY_PROTO_MYPY_PLUGIN_BASE ${output;hide;noauto;norel;nopath;noext;suf=_pb2.pyi:File} - PY_PROTO_MYPY_PLUGIN_INTERNAL=$PY_PROTO_MYPY_PLUGIN_BASE ${output;hide;noauto;norel;nopath;noext;suf=__int___pb2.pyi:File} ${hide;kv:"ext_out_name_for_${nopath;noext;suf=__int___pb2.pyi:File} ${nopath;noext;suf=_pb2.pyi:File}"}) - } - SET(MODULE_LANG PY2) - ADD_CLANG_TIDY() -} - - -# tag:python-specific -### @usage: PY3_LIBRARY() -### -### Python 3.x binary library. Builds sources from PY_SRCS to data suitable for PY2_PROGRAM -### Adds dependencies to Python 2.x runtime library from Arcadia. -### This module is only compatible with PYTHON3-tagged modules and selects those from multimodules. -### This module is only compatible with Arcadia Python build. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module PY3_LIBRARY: _LIBRARY { - _ARCADIA_PYTHON3_ADDINCL() - - when ($NO_PYTHON_INCLS != "yes") { - PEERDIR+=contrib/libs/python - } - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py - } - otherwise { - MODULE_PREFIX=libpy - } - .ALLOWED=FORK_TESTS - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL USE_PYTHON2 OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS - USE_GLOBAL_CMD=yes - - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON3 $CYTHON_SCRIPT - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON3 $CYTHON_SCRIPT - PYTHON_TYPE_FOR_CYTHON=PY3 - ANTLR_PYTHON=Python3 - - when ($PY_PROTO_MYPY_ENABLED == "yes") { - PY_PROTO_MYPY_SUFFIX=_pb2.pyi - PY_PROTO_MYPY_PLUGIN=$PY_PROTO_MYPY_PLUGIN_BASE ${output;hide;noauto;norel;nopath;noext;suf=_pb2.pyi:File} - PY_PROTO_MYPY_PLUGIN_INTERNAL=$PY_PROTO_MYPY_PLUGIN_BASE ${output;hide;noauto;norel;nopath;noext;suf=__int___pb2.pyi:File} ${hide;kv:"ext_out_name_for_${nopath;noext;suf=__int___pb2.pyi:File} ${nopath;noext;suf=_pb2.pyi:File}"}) - } - SET(MODULE_LANG PY3) - ADD_CLANG_TIDY() -} - - -# tag:python-specific -### @usage: _BASE_PY_PROGRAM #internal -### -### The base module for all Python 2.x binary programs. Adds linking logic, relevant module properties and -### dependency on Python 2.x interpreter. Also adds import tests on all sources including PEERDIR'ed libraries. -### Links all Python 2.x libraries and Python 2.x interpreter into itself to form regular executable. -### This only compatible with PYTHON2-tagged modules and selects those from multimodules. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module _BASE_PY_PROGRAM: _BASE_PROGRAM { - .CMD=PY_PROGRAM_LINK_EXE - _ARCADIA_PYTHON_ADDINCL() - - when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - NO_CHECK_IMPORTS_FOR_VALUE= - } - ADD_CHECK_PY_IMPORTS() - - when ($NO_PYTHON_INCLS != "yes") { - PEERDIR += contrib/libs/python - } - when ($USE_ARCADIA_PYTHON == "yes") { - PEERDIR += library/python/runtime/main - PEERDIR += contrib/deprecated/python/subprocess32 - when ($PYTHON_SQLITE3 != "no") { - PEERDIR += contrib/tools/python/src/Modules/_sqlite - } - } - when ($PYTHON_COVERAGE == "yes") { - PEERDIR+=library/python/coverage - } - - when ($ARCH_PPC64LE == "yes") { - _MY_ALLOCATOR=SYSTEM - } - otherwise { - _MY_ALLOCATOR=J - } - ALLOCATOR($_MY_ALLOCATOR) - STRIP() - - when ($BUILD_TYPE == "DEBUG") { - NO_STRIP=yes - } - when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - NO_STRIP=yes - } - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_PYTHON2 - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS - SET(MODULE_LANG PY2) -} - -# tag:python-specific tag:codenav -when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") { - PY3_PROGRAM_LINK_EXE=$LINK_EXE ${kv;hide:"py3yndex $TARGET"} -} -otherwise { - PY3_PROGRAM_LINK_EXE=$LINK_EXE -} - - -# tag:python-specific -### @usage: _BASE_PY_PROGRAM #internal -### -### The base module for all Python 3.x binary programs. Adds linking logic, relevant module properties and -### dependency on Python 3.x interpreter. Also adds import tests on all sources including libraries. -### Links all Python 3.x libraries and Python 3.x interpreter into itself to form regular executable. -### This only compatible with PYTHON3-tagged modules and selects those from multimodules -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs/ -module _BASE_PY3_PROGRAM: _BASE_PROGRAM { - .CMD=PY3_PROGRAM_LINK_EXE - _ARCADIA_PYTHON3_ADDINCL() - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON3 $CYTHON_SCRIPT - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON3 $CYTHON_SCRIPT - PYTHON_TYPE_FOR_CYTHON=PY3 - PEERDIR(library/python/runtime_py3/main) - when ($PYTHON_SQLITE3 != "no") { - PEERDIR += contrib/tools/python3/src/Modules/_sqlite - } - - when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - NO_CHECK_IMPORTS_FOR_VALUE= - } - ADD_CHECK_PY_IMPORTS() - - when ($ARCH_PPC64LE == "yes") { - _MY_ALLOCATOR=SYSTEM - } - otherwise { - _MY_ALLOCATOR=J - } - ALLOCATOR($_MY_ALLOCATOR) - STRIP() - - when ($NO_PYTHON_INCLS != "yes") { - PEERDIR+=contrib/libs/python - } - when ($BUILD_TYPE == "DEBUG") { - NO_STRIP=yes - } - when ($SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - NO_STRIP=yes - } - when ($PYTHON_COVERAGE == "yes") { - PEERDIR+=library/python/coverage - } - when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") { - PEERDIR += contrib/python/six - } - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL USE_PYTHON2 - SET(MODULE_LANG PY3) - SET(ANTLR_PYTHON Python3) -} - -# tag:python-specific -### @usage: PY3_PROGRAM_BIN([progname]) -### Use instead of PY3_PROGRAM only if ya.make with PY3_PROGRAM() included in another ya.make -### In all other cases use PY3_PROGRAM -module PY3_PROGRAM_BIN: _BASE_PY3_PROGRAM { - # Look's like we cannot avoid copy-paste util ymake supports multiple inheritance - # We need to attach coverage.extractor to every py_program target, except pytest targets - ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor) -} - -# tag:java-specific -JAVA_SWIG_DELIM=JAVA_SWIG_DELIM - -# tag:java-specific -JDK_REAL_VERSION= -JDK_VERSION= - -when ($JDK_VERSION == "19") { - JDK_REAL_VERSION=19 -} -elsewhen ($JDK_VERSION == "18") { - JDK_REAL_VERSION=18 -} -elsewhen ($JDK_VERSION == "17") { - JDK_REAL_VERSION=17 -} -elsewhen ($JDK_VERSION == "16") { - JDK_REAL_VERSION=16 -} -elsewhen ($JDK_VERSION == "15") { - JDK_REAL_VERSION=15 -} -elsewhen ($JDK_VERSION == "11") { - JDK_REAL_VERSION=11 -} -elsewhen ($JDK_VERSION == "10") { - JDK_REAL_VERSION=10 -} -elsewhen ($JDK_VERSION == "8") { - JDK_REAL_VERSION=8 -} -elsewhen ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { - JDK_REAL_VERSION=11 -} -otherwise { - JDK_REAL_VERSION=17 -} - - -# tag:java-specific -# remove extra peerdir to jdk11 after https://st.yandex-team.ru/DEVTOOLS-8851 is done -when ($USE_SYSTEM_JDK) { - JDK_RESOURCE_PEERDIR= -} -otherwise { - when ($JDK_REAL_VERSION == "19") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk19 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "18") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk18 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "17") { - # need jdk11 for spare parts in "host" platform - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk17 build/platform/java/jdk/jdk11 - } - when ($JDK_REAL_VERSION == "16") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk16 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "15") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk15 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "11") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk11 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "10") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk10 build/platform/java/jdk/jdk17 - } - when ($JDK_REAL_VERSION == "8") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk8 build/platform/java/jdk/jdk17 - } -} - -# tag:java-specific -when ($JDK_REAL_VERSION == "19") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar18 -} -when ($JDK_REAL_VERSION == "18") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar18 -} -when ($JDK_REAL_VERSION == "17") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar17 -} -when ($JDK_REAL_VERSION == "16") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar16 -} -when ($JDK_REAL_VERSION == "15") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar15 -} -when ($JDK_REAL_VERSION == "11") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar11 -} -when ($JDK_REAL_VERSION == "10") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar10 -} -when ($JDK_REAL_VERSION == "8") { - UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar8 -} - -# tag:java-specific -JAVAC_OPTS= -when ($USE_SYSTEM_JDK) { - JDK_RESOURCE=$USE_SYSTEM_JDK -} -otherwise { - when ($JDK_REAL_VERSION == "19") { - JDK_RESOURCE=$JDK19_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "18") { - JDK_RESOURCE=$JDK18_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "17") { - JDK_RESOURCE=$JDK17_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "16") { - JDK_RESOURCE=$JDK16_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "15") { - JDK_RESOURCE=$JDK15_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "11") { - JDK_RESOURCE=$JDK11_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "10") { - JDK_RESOURCE=$JDK10_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "8") { - JDK_RESOURCE=$JDK8_RESOURCE_GLOBAL - } -} - -# tag:java-specific -when (!$USE_SYSTEM_ERROR_PRONE) { - # Still not done: DTCC-667 - when ($JDK_REAL_VERSION == "8" || $JDK_REAL_VERSION == "10") { - ERROR_PRONE_VERSION=2.3.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.3.1 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_3_1_RESOURCE_GLOBAL - } - elsewhen ($JDK_REAL_VERSION == "11" || $JDK_REAL_VERSION == "15" || $JDK_REAL_VERSION == "16") { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.7.1 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_7_1_RESOURCE_GLOBAL - } - elsewhen ($JDK_REAL_VERSION == "17") { - ERROR_PRONE_VERSION=2.10.0 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.10.0 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_10_0_RESOURCE_GLOBAL - } - elsewhen ($JDK_REAL_VERSION == "18") { - ERROR_PRONE_VERSION=2.14.0 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.14.0 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_14_0_RESOURCE_GLOBAL - } - elsewhen ($JDK_REAL_VERSION == "19") { - ERROR_PRONE_VERSION=2.18.0 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.18.0 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_18_0_RESOURCE_GLOBAL - } - otherwise { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone - ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL - } -} -otherwise { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone - ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL -} - -# tag:java-specific -when ($USE_SYSTEM_UBERJAR) { - UBERJAR_RESOURCE=$USE_SYSTEM_UBERJAR -} -otherwise { - when ($JDK_REAL_VERSION == "19") { - UBERJAR_RESOURCE=$UBERJAR18_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "18") { - UBERJAR_RESOURCE=$UBERJAR18_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "17") { - UBERJAR_RESOURCE=$UBERJAR17_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "16") { - UBERJAR_RESOURCE=$UBERJAR16_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "15") { - UBERJAR_RESOURCE=$UBERJAR15_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "11") { - UBERJAR_RESOURCE=$UBERJAR11_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "10") { - UBERJAR_RESOURCE=$UBERJAR10_RESOURCE_GLOBAL - } - when ($JDK_REAL_VERSION == "8") { - UBERJAR_RESOURCE=$UBERJAR8_RESOURCE_GLOBAL - } -} - -# tag:java-specific -when ($JDK_REAL_VERSION == "19") { - WITH_JDK_RESOURCE=$WITH_JDK19_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "18") { - WITH_JDK_RESOURCE=$WITH_JDK18_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "17") { - WITH_JDK_RESOURCE=$WITH_JDK17_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "16") { - WITH_JDK_RESOURCE=$WITH_JDK16_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "15") { - WITH_JDK_RESOURCE=$WITH_JDK15_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "11") { - WITH_JDK_RESOURCE=$WITH_JDK11_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "10") { - WITH_JDK_RESOURCE=$WITH_JDK10_RESOURCE_GLOBAL -} -when ($JDK_REAL_VERSION == "8") { - WITH_JDK_RESOURCE=$WITH_JDK8_RESOURCE_GLOBAL -} - -# tag:java-specific -EXTERNAL_JAVA_JDK_RESOURCE= -EXTERNAL_JAVA_EXTRA_PEERDIR= -when ($USE_SYSTEM_JDK) { - EXTERNAL_JAVA_EXTRA_PEERDIR= - EXTERNAL_JAVA_JDK_RESOURCE=$USE_SYSTEM_JDK -} -elsewhen ($JDK_VERSION == "") { - EXTERNAL_JAVA_JDK_RESOURCE=$JDK11_RESOURCE_GLOBAL - EXTERNAL_JAVA_EXTRA_PEERDIR=build/platform/java/jdk/jdk11 -} -otherwise { - EXTERNAL_JAVA_JDK_RESOURCE=$JDK_RESOURCE -} -COMPILE_JAVA=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/compile_java.py"} --java-bin $EXTERNAL_JAVA_JDK_RESOURCE/bin/java --javac-bin $EXTERNAL_JAVA_JDK_RESOURCE/bin/javac --jar-bin $JDK_RESOURCE/bin/jar --kotlin-compiler $KOTLIN_COMPILER_RESOURCE_GLOBAL/kotlin-compiler.jar $JAVA_VCS_MF_ARG $PACKAGE_PREFIX_ARGS --jar-output $TARGET --srcs-jar-output ${output;suf=-sources.jar:REALPRJNAME} $AUTO_INPUT DELIM $JAVAC_OPTS DELIM $MANAGED_PEERS_CLOSURE DELIM -no-stdlib -module-name $REALPRJNAME -jvm-target ${KOTLIN_JVM_TARGET} ${KOTLINC_OPTS_VALUE} ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} ${requirements;hide:"cpu:2"} -REAL_SWIG_DLL_JAR_CMD=$GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/build_dll_and_java.py"} $JAVA_SWIG_DELIM $REAL_LINK_DYN_LIB $JAVA_SWIG_DELIM $COMPILE_JAVA $JAVA_SWIG_DELIM $AUTO_INPUT $JAVA_SWIG_DELIM $TARGET $JAVA_SWIG_DELIM ${output;suf=.jar:REALPRJNAME} $JAVA_SWIG_DELIM ${output;suf=-sources.jar:REALPRJNAME} $JAVA_SWIG_DELIM $ARCADIA_BUILD_ROOT $ARCADIA_ROOT - -ARGS_DELIM="MACRO_CALLS_DELIM" - -SYSTEM_PROPERTIES_VALUE= -### @usage: SYSTEM_PROPERTIES([<Key Value>...] [<File Path>...]) -### -### List of Key,Value pairs that will be available to test via System.getProperty(). -### FILE means that parst should be read from file specifies as Path. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/ -macro SYSTEM_PROPERTIES(Args...) { - SET_APPEND(SYSTEM_PROPERTIES_VALUE $Args) -} - -# tag:java-specific -JVM_ARGS_VALUE= -### @usage: JVM_ARGS(Args...) -### -### Arguments to run Java programs in tests. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/ -macro JVM_ARGS(Args...) { - SET_APPEND(JVM_ARGS_VALUE $Args) -} - -# tag:java-specific -CHECK_JAVA_DEPS_VALUE= -### @usage: CHECK_JAVA_DEPS(<yes|no>) -### -### Check for different classes with duplicate name in classpath. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/ -macro CHECK_JAVA_DEPS(Arg) { - SET(CHECK_JAVA_DEPS_VALUE $Arg) -} - -ERROR_PRONE_VALUE= -### @usage: USE_ERROR_PRONE() -### -### Use errorprone instead of javac for .java compilation. -macro USE_ERROR_PRONE() { - SET(ERROR_PRONE_VALUE yes) -} - -TEST_CWD_VALUE= -### @usage: TEST_CWD(path) -### -### Defines working directory for test runs. Often used in conjunction with DATA() macro. -### Is only used inside of the TEST modules. -### -### Documentation: https://wiki.yandex-team.ru/yatool/test/ -macro TEST_CWD(Arg) { - SET(TEST_CWD_VALUE $Arg) -} - -# tag:java-specific -MAKE_UBERJAR_VALUE= -### @usage: UBERJAR() -### -### UBERJAR is a single all-in-one jar-archive that includes all its Java dependencies (reachable PEERDIR). -### It also supports shading classes inside the archive by moving them to a different package (similar to the maven-shade-plugin). -### Use UBERJAR inside JAVA_PROGRAM module. -### -### You can use the following macros to configure the archive: -### 1. UBERJAR_HIDING_PREFIX prefix for classes to shade (classes remain in their packages by default) -### 2. UBERJAR_HIDE_EXCLUDE_PATTERN exclude classes matching this patterns from shading (if enabled). -### 3. UBERJAR_PATH_EXCLUDE_PREFIX the prefix for classes that should not get into the jar archive (all classes are placed into the archive by default) -### 4. UBERJAR_MANIFEST_TRANSFORMER_MAIN add ManifestResourceTransformer class to uberjar processing and specify main-class -### 5. UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE add ManifestResourceTransformer class to uberjar processing and specify some attribute -### 6. UBERJAR_APPENDING_TRANSFORMER add AppendingTransformer class to uberjar processing -### 7. UBERJAR_SERVICES_RESOURCE_TRANSFORMER add ServicesResourceTransformer class to uberjar processing -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -### -### @see: [JAVA_PROGRAM](#module_JAVA_PROGRAM), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX), [UBERJAR_HIDE_EXCLUDE_PATTERN](#macro_UBERJAR_HIDE_EXCLUDE_PATTERN), [UBERJAR_PATH_EXCLUDE_PREFIX](#macro_UBERJAR_PATH_EXCLUDE_PREFIX) -macro UBERJAR() { - SET(MAKE_UBERJAR_VALUE yes) - DISABLE(PASS_PEERS) -} - -# tag:java-specific -UBERJAR_PREFIX_VALUE= -UBERJAR_PREFIX_FLAG= -### @usage: UBERJAR_HIDING_PREFIX(Arg) -### -### Set prefix for classes to shade. All classes in UBERJAR will be moved into package prefixed with Arg. -### Classes remain in their packages by default. -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_HIDING_PREFIX(Arg) { - SET(UBERJAR_PREFIX_VALUE $Arg) - SET(UBERJAR_PREFIX_FLAG ${pre=--shade-prefix :Arg}) -} - -# tag:java-specific -UBERJAR_HIDE_EXCLUDE_VALUE= -UBERJAR_HIDE_EXCLUDE_FLAGS= -### @usage: UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) -### -### Exclude classes matching this patterns from shading (if enabled). -### Pattern may contain '*' and '**' globs. -### Shading is enabled for UBERJAR program using UBERJAR_HIDING_PREFIX macro. If this macro is not specified all classes are shaded. -### -### @see: [UBERJAR](#macro_UBERJAR), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX) -macro UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) { - SET_APPEND(UBERJAR_HIDE_EXCLUDE_VALUE $ARGS_DELIM $Args) - SET_APPEND(UBERJAR_HIDE_EXCLUDE_FLAGS ${pre=--shade-exclude :Args}) -} - -# tag:java-specific -UBERJAR_PATH_EXCLUDES= -UBERJAR_PATH_EXCLUDE_VALUE= -### @usage: UBERJAR_PATH_EXCLUDE_PREFIX(Args...) -### -### Exclude classes matching this patterns from UBERJAR. -### By default all dependencies of UBERJAR program will lend in a .jar archive. -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_PATH_EXCLUDE_PREFIX(Args...) { - SET_APPEND(UBERJAR_PATH_EXCLUDE_VALUE $ARGS_DELIM $Args) - SET_APPEND(UBERJAR_PATH_EXCLUDES ${pre=--uber-exclude :Args}) -} - -# tag:java-specific -UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE= -UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG= -### @usage: UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) -### -### Transform manifest.mf for UBERJAR() java programs, set main-class attribute -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) { - SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE $Main) - SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG --manifest-main $Main) -} - -# tag:java-specific -UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE= -UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS= -### @usage: UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) -### -### Transform manifest.mf for UBERJAR() java programs, set attribute -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) { - SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE $ARGS_DELIM $Key : $Value) - SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS --manifest-attribute ${Key}:${Value}) -} - -# tag:java-specific -UBERJAR_APPENDING_TRANSFORMER_VALUE= -UBERJAR_APPENDING_TRANSFORMER_FLAGS= -### @usage: UBERJAR_APPENDING_TRANSFORMER(Resource) -### -### Add AppendingTransformer for UBERJAR() java programs -### -### Parameters: -### - Resource - Resource name -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_APPENDING_TRANSFORMER(Resources...) { - SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_VALUE $ARGS_DELIM $Resources) - SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_FLAGS ${pre=--append-transformer :Resources}) -} - -# tag:java-specific -UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE= -UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG= -### @usage: UBERJAR_SERVICES_RESOURCE_TRANSFORMER() -### -### Add ServicesResourceTransformer for UBERJAR() java programs -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_SERVICES_RESOURCE_TRANSFORMER() { - SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE yes) - SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG --service-transformer) -} - -# tag:idea-specific -IDEA_EXCLUDE_DIRS_VALUE= -### @usage: IDEA_EXCLUDE_DIRS(<excluded dirs>) -### -### Exclude specified directories from an idea project generated by ya ide idea -### Have no effect on regular build. -macro IDEA_EXCLUDE_DIRS(Args...) { - SET_APPEND(IDEA_EXCLUDE_DIRS_VALUE $Args) -} - -# tag:idea-specific -IDEA_RESOURCE_DIRS_VALUE= -### @usage: IDEA_RESOURCE_DIRS(<additional dirs>) -### -### Set specified resource directories in an idea project generated by ya ide idea -### Have no effect on regular build. -macro IDEA_RESOURCE_DIRS(Args...) { - SET_APPEND(IDEA_RESOURCE_DIRS_VALUE $Args) -} - -# tag:idea-specific -IDEA_MODULE_NAME_VALUE= -### @usage: IDEA_MODULE_NAME(module_name) -### -### Set module name in an idea project generated by ya ide idea -### Have no effect on regular build. -macro IDEA_MODULE_NAME(Name) { - SET(IDEA_MODULE_NAME_VALUE $Name) -} - -# tag:java-specific -JAVAC_FLAGS_VALUE= -### @usage: JAVAC_FLAGS(Args...) -### -### Set additional Java compilation flags. -macro JAVAC_FLAGS(Args...) { - SET_APPEND(JAVAC_OPTS $Args) - SET_APPEND(JAVAC_FLAGS_VALUE $ARGS_DELIM $Args) -} - -# tag:java-specific -ENABLE_PREVIEW_VALUE= -### @usage: ENABLE_PREVIEW() -### -### Enable java preview features. -macro ENABLE_PREVIEW() { - SET_APPEND(JVM_ARGS_VALUE --enable-preview) - SET_APPEND(JAVAC_OPTS --enable-preview --release $JDK_REAL_VERSION) - SET_APPEND(JAVAC_FLAGS_VALUE --enable-preview --release $JDK_REAL_VERSION) - SET(ENABLE_PREVIEW_VALUE yes) -} - -# tag:java-specific -SAVE_JAVAC_GENERATED_SRCS= -SAVE_JAVAC_GENERATED_SRCS_DIR= -SAVE_JAVAC_GENERATED_SRCS_TAR= -when ($SAVE_JAVAC_GENERATED_SRCS) { - SAVE_JAVAC_GENERATED_SRCS_DIR=${BINDIR}/__javac_generated_srcs__ - SAVE_JAVAC_GENERATED_SRCS_TAR=${BINDIR}/javac_generated.tar - JAVAC_FLAGS_VALUE+=-s $SAVE_JAVAC_GENERATED_SRCS_DIR -} - -# tag:java-specific -# TODO: MAVEN_GROUP_ID_VALUE is only used by jbuild remove it after YMAKE-45 and YMAKE-46 -MAVEN_GROUP_ID_VALUE= -MAVEN_EXPORT_VERSION=no -MAVEN_EXPORT_GOUP_ID=ru.yandex -### @usage: MAVEN_GROUP_ID(group_id_for_maven_export) -### -### Set maven export group id for JAVA_PROGRAM() and JAVA_LIBRARY(). -### Have no effect on regular build. -macro MAVEN_GROUP_ID(Arg, VERSION="no") { - SET(MAVEN_GROUP_ID_VALUE $Arg) - SET(MAVEN_EXPORT_GOUP_ID $Arg) - SET(MAVEN_EXPORT_VERSION $VERSION) -} - -# tag:java-specific -ANNOTATION_PROCESSOR_VALUE= -### @usage: ANNOTATION_PROCESSOR(processors...) -### -### The macro is in development. -### Used to specify annotation processors to build JAVA_PROGRAM() and JAVA_LIBRARY(). -macro ANNOTATION_PROCESSOR(Args...) { - SET_APPEND(ANNOTATION_PROCESSOR_VALUE $ARGS_DELIM $Args) -} - -EXCLUDE_VALUE= -### EXCLUDE(prefixes) -### -### The macro is in development. -### Specifies which libraries should be excluded from the classpath. -macro EXCLUDE(Args...) { - SET_APPEND(EXCLUDE_VALUE $ARGS_DELIM $Args) -} - -# tag:java-specific -JAVA_SRCS_VALUE= -### @usage: JAVA_SRCS(srcs) -### -### Specify java source files and resources. A macro can be contained in any of four java modules. -### Keywords: -### 1. X SRCDIR - specify the directory x is performed relatively to search the source code for these patterns. If there is no SRCDIR, the source will be searched relative to the module directory. -### 2. PACKAGE_PREFIX x - use if source paths relative to the SRCDIR does not coincide with the full class names. For example, if all sources of module are in the same package, you can create a directory package/name , and just put the source code in the SRCDIR and specify PACKAGE_PREFIX package.name. -### -### @example: -### - example/ya.make -### -### JAVA_PROGRAM() -### JAVA_SRCS(SRCDIR src/main/java **/*) -### END() -### -### - example/src/main/java/ru/yandex/example/HelloWorld.java -### -### package ru.yandex.example; -### public class HelloWorld { -### public static void main(String[] args) { -### System.out.println("Hello, World!"); -### } -### } -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/#javasrcs -macro JAVA_SRCS(Args...) { - SET_APPEND(JAVA_SRCS_VALUE $ARGS_DELIM $Args) -} - -# tag:java-specific -JAVA_ADD_DLLS_VALUE=no -macro ADD_DLLS_TO_JAR() { - SET(JAVA_ADD_DLLS_VALUE yes) -} - -# tag:java-specific -MANAGED_PEERS= -MANAGED_PEERS_CLOSURE= -RUN_JAVA_PROGRAM_MANAGED= -MANAGEABLE_PEERS_ROOTS=contrib/java -HAS_MANAGEABLE_PEERS=no -PROPAGATES_MANAGEABLE_PEERS=no -# All items of this list must be PEERS, GHOST PEERS or TOOLS of the test module or module itself. -# All items of this list must has at least one of HAS_MANAGEABLE_PEERS or PROPAGATES_MANAGEABLE_PEERS flags set yes. -# This variable is used by JUnit tests but not TestNG. -TEST_CLASSPATH_VALUE= -# Calculated and replaced by ymake can be used in DART DATA -TEST_CLASSPATH_MANAGED= - -# tag:java-specific -DEPENDENCY_MANAGEMENT_VALUE= -### @usage: DEPENDENCY_MANAGEMENT(path/to/lib1 path/to/lib2 ...) -### -### Lock version of the library from the contrib/java at some point, so that all unversioned PEERDIRs to this library refer to the specified version. -### -### For example, if the module has PEERDIR (contrib/java/junit/junit), and -### 1. specifies DEPENDENCY_MANAGEMENT(contrib/java/junit/junit/4.12), -### the PEERDIR is automatically replaced by contrib/java/junit/junit/4.12; -### 2. doesn't specify DEPENDENCY_MANAGEMENT, PEERDIR automatically replaced -### with the default from contrib/java/junit/junit/ya.make. -### These defaults are always there and are supported by maven-import, which puts -### there the maximum version available in contrib/java. -### -### The property is transitive. That is, if module A PEERDIRs module B, and B has PEERDIR(contrib/java/junit/junit), and this junit was replaced by junit-4.12, then junit-4.12 will come to A through B. -### -### If some module has both DEPENDENCY_MANAGEMENT(contrib/java/junit/junit/4.12) and PERDIR(contrib/java/junit/junit/4.11), the PEERDIR wins. -### -### Documentation: https://wiki.yandex-team.ru/yatool/java/ -macro DEPENDENCY_MANAGEMENT(Args...) { - SET_APPEND(DEPENDENCY_MANAGEMENT_VALUE $ARGS_DELIM $Args) - _GHOST_PEERDIR($Args) -} - -# tag:java-specific -WITH_JDK_VALUE= -### @usage: WITH_JDK() -### -### Add directory with JDK to JAVA_PROGRAM output -macro WITH_JDK() { - SET(WITH_JDK_VALUE yes) -} - -# tag:kotlin-specific -WITH_KOTLIN_VALUE= -### @usage: WITH_KOTLIN() -### -### Compile kotlin source code in this java module -macro WITH_KOTLIN() { - SET(WITH_KOTLIN_VALUE yes) -} - -# tag:kotlin-specific -WITH_KAPT_VALUE= -### @usage: WITH_KAPT() -### -### Use kapt for as annotation processor -macro WITH_KAPT() { - SET(WITH_KAPT_VALUE yes) -} - -# tag:java-specific -WITH_GROOVY_VALUE= -### @usage: WITH_GROOVY() -### -### Compile groovy source code in this java module -macro WITH_GROOVY() { - SET(WITH_GROOVY_VALUE yes) -} - -# tag:kotlin-specific -KOTLINC_FLAGS_VALUE=-Xjvm-default=all -### @usage: KOTLINC_FLAGS(-flags) -### -### Set additional Kotlin compilation flags. -macro KOTLINC_FLAGS(Args...) { - SET_APPEND(KOTLINC_OPTS_VALUE $Args) -} - - -# tag:kotlin-sppecific -WITH_KOTLINC_PLUGIN_ALLOPEN= -macro _WITH_KOTLINC_ALLOPEN(Options...) { - SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.allopen\::Options}) - SET(WITH_KOTLINC_PLUGIN_ALLOPEN yes) -} - -# tag:kotlin-specific -### @usage: WITH_KOTLINC_ALLOPEN(-flags) -### -### Enable allopen kotlin compiler plugin https://kotlinlang.org/docs/all-open-plugin.html -macro WITH_KOTLINC_ALLOPEN(HEAD, TAIL...) { - _WITH_KOTLINC_ALLOPEN($HEAD $TAIL) -} - - -# tag:kotlin-specific -WITH_KOTLINC_PLUGIN_LOMBOK= -### @usage: WITH_KOTLINC_LOMBOK(-flags) -### -### Enable lombok kotlin compiler plugin https://kotlinlang.org/docs/lombok.html -macro WITH_KOTLINC_LOMBOK(Options...) { - SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.lombok\::Options}) - SET(WITH_KOTLINC_PLUGIN_LOMBOK yes) -} - -# tag:kotlin-specific -WITH_KOTLINC_PLUGIN_NOARG= -### @usage: WITH_KOTLINC_NOARG(-flags) -### -### Enable noarg kotlin compiler plugin https://kotlinlang.org/docs/no-arg-plugin.html -macro WITH_KOTLINC_NOARG(Options...) { - SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.noarg\::Options}) - SET(WITH_KOTLINC_PLUGIN_NOARG yes) -} - -# tag:kotlin-specific -WITH_KOTLINC_PLUGIN_SERIALIZATION= -### @usage: WITH_KOTLINC_SERIALIZATION() -### -### Enable serialization kotlin compiler plugin https://kotlinlang.org/docs/serialization.html -macro WITH_KOTLINC_SERIALIZATION() { - SET(WITH_KOTLINC_PLUGIN_SERIALIZATION yes) -} - -# tag:kotlin-specific -### Also search for _KAPT_OPTS and change version there -KOTLIN_VERSION=1.8.10 -KOTLIN_BOM_FILE=${ARCADIA_ROOT}/contrib/java/org/jetbrains/kotlin/kotlin-bom/1.8.10/ya.dependency_management.inc -GROOVY_VERSION=3.0.5 - -# tag:java-specific -DIRECT_DEPS_ONLY_VALUE= -### @usage: DIRECT_DEPS_ONLY -### -### Add direct PEERDIR's only in java compile classpath -macro DIRECT_DEPS_ONLY() { - SET(DIRECT_DEPS_ONLY_VALUE yes) -} - -# tag:java-specific -JAVA_EXTERNAL_DEPENDENCIES_VALUE= -### @usage: JAVA_EXTERNAL_DEPENDENCIES(file1 file2 ...) -### -### Add non-source java external build dependency (like lombok config file) -macro JAVA_EXTERNAL_DEPENDENCIES(Args...) { - SET_APPEND(JAVA_EXTERNAL_DEPENDENCIES_VALUE $Args) -} - -# tag:java-specific -### @usage _JAVA_PLACEHOLDER #internal -### The base module for all Java modules. Defines common properties and dependencies. -module _JAVA_PLACEHOLDER: _BASE_UNIT { - .CMD=TOUCH_JAVA_UNIT - .FINAL_TARGET=yes - .ALLOWED=DEPENDENCY_MANAGEMENT EXCLUDE - .ALIASES=RUN_JAVA_PROGRAM=_RUN_JBUILD_PROGRAM - HAS_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes - PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL JAR_COMPILATION - PEERDIR(build/platform/java/jdk) - PEERDIR+=$JDK_RESOURCE_PEERDIR - when($MAKE_UBERJAR_VALUE) { - PEERDIR+=build/platform/java/uberjar - PEERDIR+=$UBERJAR_RESOURCE_PEERDIR - } - when($ERROR_PRONE_VALUE) { - # Jbuild assumes hardcoded resource name https://a.yandex-team.ru/arc_vcs/devtools/ya/jbuild/gen/consts/__init__.py?rev=1739368ed5aaa585b8300b84e5dea708a2bedd3a#L130 - # adding default peerdir as a hack to make `ya ide idea` and `ya maven-export` work for now - PEERDIR+=build/platform/java/error_prone - PEERDIR+=$ERROR_PRONE_PEERDIR - } - # in the ideal world this statement must be under condition bellow - - DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) - when($WITH_KOTLIN_VALUE) { - PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 - when($WITH_KOTLINC_PLUGIN_ALLOPEN) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-allopen-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_LOMBOK) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-lombok-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_NOARG) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-noarg-plugin.jar - } - when($WITH_KOTLINC_PLUGIN_SERIALIZATION) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-serialization-plugin.jar - } - } - when($WITH_GROOVY_VALUE) { - PEERDIR+=build/platform/java/groovy contrib/java/org/codehaus/groovy/groovy/${GROOVY_VERSION} - } - - when($ERROR_PRONE_VALUE && $JDK_REAL_VERSION == "16") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS - } - - JAVA_DEPENDENCIES_CONFIGURATION(FORBID_DEFAULT_VERSIONS) - DISABLE(NEED_PLATFORM_PEERDIRS) - NO_PLATFORM() - JAVA_MODULE() - - # flatbuffers-java - DEPENDENCY_MANAGEMENT(contrib/java/com/google/flatbuffers/flatbuffers-java/${JAVA_FLATBUFFERS_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/flatbuffers/flatbuffers-java EXCEPT contrib/java/com/google/flatbuffers/flatbuffers-java/${JAVA_FLATBUFFERS_VERSION}) - - # protobuf-java - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-java EXCEPT contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION}) - - # protobuf-javalite - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-javalite/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-javalite EXCEPT contrib/java/com/google/protobuf/protobuf-javalite/${JAVA_PROTO_RUNTIME_VERSION}) - - # protobuf-java-util - DEPENDENCY_MANAGEMENT(contrib/java/com/google/protobuf/protobuf-java-util/${JAVA_PROTO_RUNTIME_VERSION}) - CHECK_DEPENDENT_DIRS(DENY PEERDIRS contrib/java/com/google/protobuf/protobuf-java-util EXCEPT contrib/java/com/google/protobuf/protobuf-java-util/${JAVA_PROTO_RUNTIME_VERSION}) - SET(MODULE_LANG JAVA) -} - -# tag:java-specific -JAVA_CLASSPATH_CMD_TYPE_VALUE= - -# tag:java-specific -### @usage:TEST_JAVA_CLASSPATH_CMD_TYPE(Type) -### Available types: MANIFEST(default), COMMAND_FILE, LIST -### Method for passing a classpath value to a java command line -### MANIFEST via empty jar file with manifest that contains Class-Path attribute -### COMMAND_FILE via @command_file -### LIST via flat args -macro TEST_JAVA_CLASSPATH_CMD_TYPE(Type) { - SET(JAVA_CLASSPATH_CMD_TYPE_VALUE $Type) -} - -# tag:java-specific -IGNORE_JAVA_DEPENDENCIES_CONFIGURATION=no -JAVA_DEPENDENCIES_CONFIGURATION_VALUE= - -# tag:java-specific -### @usage JAVA_DEPENDENCIES_CONFIGURATION(Vetos...) -### Validate contrib/java dependencies -### Valid arguments -### FORBID_DIRECT_PEERDIRS - fail when module have direct PEERDIR (with version) (non-transitive) -### FORBID_DEFAULT_VERSIONS - fail when module have PEERDIR to library with default (last) version (transitive) -### FORBID_CONFLICT - fail when module have resolved without DEPENDENCY_MANAGEMENT version conflict (transitive) -### FORBID_CONFLICT_DM - fail when module have resolved with DEPENDENCY_MANAGEMENT version conflict (transitive) -### FORBID_CONFLICT_DM_RECENT - like FORBID_CONFLICT_DM but fail only when dependency have more recent version than specified in DEPENDENCY_MANAGEMENT -### REQUIRE_DM - all dependencies must be specified in DEPENDENCY_MANAGEMENT (transitive) -macro JAVA_DEPENDENCIES_CONFIGURATION(Args...) { - SET_APPEND(JAVA_DEPENDENCIES_CONFIGURATION_VALUE $Args) -} - -# tag:java-specific -# TODO(DEVTOOLS-6901): remove this variable when there are no more references to it in jbuild -JAVA_FORBIDDEN_LIBRARIES_VALUE= - -# tag:java-specific -JAR_INCLUDE_FILTER_VALUE= -JAR_EXCLUDE_FILTER_VALUE= - -# tag:java-specific -### @usage:JAR_INCLUDE(Filters...) -### Filter .jar file content: keep only matched files -### * and ** patterns are supported (like JAVA_SRCS) -macro JAR_INCLUDE(Filters...) { - SET_APPEND(JAR_INCLUDE_FILTER_VALUE $Filters) -} - -# tag:java-specific -### @usage:JAR_EXCLUDE(Filters...) -### Filter .jar file content: remove matched files -### * and ** patterns are supported (like JAVA_SRCS) -macro JAR_EXCLUDE(Filters...) { - SET_APPEND(JAR_EXCLUDE_FILTER_VALUE $Filters) -} - -# tag:sandbox-specific -### @usage: SANDBOX_TASK([Name]) -### -### Multimodule describing Sandbox task (Python code that can be executed by Sandbox system). -### -### When being a final target, this multimodule builds Sandbox binary task. It may PEERDIR other SANDBOX_TASKs as libraries. -### The final artifact is provided when SANDBOX_TASK is referred to by DEPENDS and BUNDLE macros. -### As PEERDIR target, it works like regular PY2_LIBRARY with predefined dependencies on Sandbox SDK to allow code reuse among SANDBOX_TASKs. -### -### Currently Sandbox supports only Python 2.x, so both variants will be compatible only with Python 2.x modules -### and will select multimodule variants accordingly. -### -### Documentation: https://wiki.yandex-team.ru/sandbox/tasks/binary -multimodule SANDBOX_TASK { - module SB_TASK_BIN: _PY2_PROGRAM { - PY_MAIN(sandbox.taskbox.binary) - PEERDIR(sandbox/bin sandbox/sdk2 sandbox/sandboxsdk sandbox/taskbox/worker) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE api.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE kernel.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE library.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE sky*) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - when ($FAIL_PY2 == "yes") { - _OK=no - } - elsewhen ($OPENSOURCE != "yes") { - PEERDIR+=build/rules/py2_deprecation - } - - ASSERT(_OK You are using deprecated Python2-only code (SANDBOX_TASK). Please consider rewriting to 2/3-compatible code.) - } - module PY2: PY2_LIBRARY { - PEERDIR(sandbox/sdk2 sandbox/sandboxsdk) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - } -} - -# tag:sandbox-specific -multimodule SANDBOX_PY23_TASK { - module SB_TASK_BIN: _PY2_PROGRAM { - .RESTRICTED=RUN_ANTLR4_PYTHON - PY_MAIN(sandbox.taskbox.binary) - PEERDIR(sandbox/bin sandbox/sdk2 sandbox/sandboxsdk sandbox/taskbox/worker) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE api.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE kernel.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE library.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE sky*) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - } - module PY2: PY2_LIBRARY { - .RESTRICTED=RUN_ANTLR4_PYTHON - PEERDIR(sandbox/sdk2 sandbox/sandboxsdk) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - OBJ_SUF=.py2 - } - module PY3: PY3_LIBRARY { - .RESTRICTED=RUN_ANTLR4_PYTHON - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3 - } - otherwise { - MODULE_PREFIX=libpy3 - } - OBJ_SUF=.py3 - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT - PEERDIR(sandbox/sdk2) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - } -} - -# tag:sandbox-specific -### @usage: SANDBOX_PY3_TASK([Name]) -### -### Multimodule describing Sandbox task (Python3 code that can be executed by Sandbox system). -### -### When being a final target, this multimodule builds Sandbox binary task. It may PEERDIR other SANDBOX_PY3_TASKs as libraries. -### The final artifact is provided when SANDBOX_PY3_TASK is referred to by DEPENDS and BUNDLE macros. -### As PEERDIR target, it works like regular PY3_LIBRARY with predefined dependencies on Sandbox SDK to allow code reuse among SANDBOX_PY3_TASKs. -### -### Currently Sandbox supports Python 3.x only in binary tasks, both variants will be compatible only with Python 3.x and py23 libraries -### and will select multimodule variants accordingly. -### -### Documentation: https://wiki.yandex-team.ru/sandbox/tasks/binary -multimodule SANDBOX_PY3_TASK { - module SB_TASK_BIN: PY3_PROGRAM_BIN { - .IGNORED=RUN_ANTLR4_PYTHON - PY_MAIN(sandbox.taskbox.binary) - PEERDIR(sandbox/bin sandbox/sdk2 sandbox/taskbox/worker) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE api.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE kernel.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE library.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE sky*) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - } - module PY3: PY3_LIBRARY { - PEERDIR(sandbox/sdk2) - REGISTER_SANDBOX_IMPORT(${MODDIR}) - } -} - -# tag:python-specific tag:internal -NO_PYTHON_INCLS=no -### @usage: NO_PYTHON_INCLUDES() # internal -### -### Disable dependencies on libraries providing Python headers. -### This is only used in Python libraries themselves to avoid PEERDIR loops. -macro NO_PYTHON_INCLUDES() { - ENABLE(NO_PYTHON_INCLS) -} - -# tag:python-specific -### @usage: PYTHON2_ADDINCL() -### -### This macro adds include path for Python headers (Python 2.x variant) without PEERDIR. -### This should be used in 2 cases only: -### - In PY2MODULE since it compiles into .so and uses external Python runtime; -### - In system Python libraries themselves since proper PEERDIR there may create a loop; -### In all other cases use USE_PYTHON2 macro instead. -### -### Never use this macro in PY2_PROGRAM, PY2_LIBRARY and PY23_LIBRARY: they have everything needed by default. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs -macro PYTHON2_ADDINCL() { - _PYTHON_ADDINCL() - SET(MODULE_TAG PY2_NATIVE) - SET(PEERDIR_TAGS CPP_PROTO CPP_FBS PY2_NATIVE YQL_UDF_STATIC __EMPTY__ DLL_LIB) -} - -# tag:python-specific tag:internal -### @usage: _ARCADIA_PYTHON_ADDINCL() # internal -### This macro sets up Python headers for modules with Arcadia python (e.g. PY2_LIBRARY) and configures module as Python 2.x. -macro _ARCADIA_PYTHON_ADDINCL() { - _PYTHON_ADDINCL() - SET(MODULE_TAG PY2) - SET(PEERDIR_TAGS PY2 PY2_NATIVE PY_PROTO PY2_FBS YQL_UDF_STATIC __EMPTY__ DLL_LIB) -} - -# tag:python-specific tag:internal -### @usage: _PYTHON_ADDINCL() # internal -### This macro sets up Python 2.x headers for both Arcadia and non-Arcadia python. -macro _PYTHON_ADDINCL() { - SET(PYTHON2 yes) - SET(PYTHON3 no) - when ($USE_ARCADIA_PYTHON == "yes") { - ADDINCL+=GLOBAL contrib/libs/python/Include - CFLAGS+=-DARCADIA_PYTHON_UNICODE_SIZE=$ARCADIA_PYTHON_UNICODE_SIZE - } - otherwise { - when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python - } - otherwise { - CFLAGS+=$PYTHON_INCLUDE - } - } -} - -# tag:python-specific -### @usage: PYTHON3_ADDINCL() -### -### This macro adds include path for Python headers (Python 3.x variant). -### This should be used in 2 cases only: -### - In PY2MODULE since it compiles into .so and uses external Python runtime; -### - In system Python libraries themselves since peerdir there may create a loop; -### In all other cases use USE_PYTHON3() macro instead. -### -### Never use this macro in PY3_PROGRAM and PY3_LIBRARY and PY23_LIBRARY: they have everything by default. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/py_srcs -macro PYTHON3_ADDINCL() { - _PYTHON3_ADDINCL() - SET(MODULE_TAG PY3_NATIVE) - SET(PEERDIR_TAGS CPP_PROTO CPP_FBS PY3_NATIVE YQL_UDF_STATIC __EMPTY__ DLL_LIB) -} - -# tag:python-specific tag:internal -### @usage: _ARCADIA_PYTHON3_ADDINCL() # internal -### -### This macro sets up Python3 headers for modules with Arcadia python (e.g. PY3_LIBRARY) and configures module as Python 3.x. -macro _ARCADIA_PYTHON3_ADDINCL() { - _PYTHON3_ADDINCL() - SET(MODULE_TAG PY3) - SET(MODULE_LANG PY3) - SET(PEERDIR_TAGS PY3 PY3_BIN_LIB PY3TEST_LIBRARY PY3_NATIVE PY3_PROTO PY3_FBS PY3_SSQLS YQL_UDF_STATIC __EMPTY__ DLL_LIB) -} - -# tag:python-specific tag:internal -### @usage: _PYTHON_ADDINCL() # internal -### -### This macro sets up Python 3.x headers for both Arcadia and non-Arcadia python. -macro _PYTHON3_ADDINCL() { - SET(PYTHON3 yes) - SET(PYTHON2 no) - when ($USE_ARCADIA_PYTHON == "yes") { - CFLAGS+=-DUSE_PYTHON3 - ADDINCL+=GLOBAL contrib/libs/python/Include - } - otherwise { - when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python - } - otherwise { - CFLAGS+=$PYTHON_INCLUDE - } - } -} - -# tag:python-specific -### @usage: USE_PYTHON2() -### -### This adds Python 2.x runtime library to your LIBRARY and makes it Python2-compatible. -### Compatibility means proper PEERDIRs, ADDINCLs and variant selection on PEERDIRs to multimodules. -### -### If you'd like to use #include <Python.h> with Python2 specify USE_PYTHON2 or better make it PY2_LIBRARY. -### If you'd like to use #include <Python.h> with Python3 specify USE_PYTHON3 or better make it PY3_LIBRARY. -### If you'd like to use #include <Python.h> with both Python2 and Python3 convert your LIBRARY to PY23_LIBRARY. -### -### @see: [PY2_LIBRARY](#module_PY2_LIBRARY), [PY3_LIBRARY](#module_PY3_LIBRARY), [PY23_LIBRARY](#multimodule_PY23_LIBRARY) -macro USE_PYTHON2() { - _ARCADIA_PYTHON_ADDINCL() - SET(PEERDIR_TAGS PY2 PY2_NATIVE CPP_PROTO CPP_FBS YQL_UDF_STATIC __EMPTY__ DLL_LIB) - PEERDIR(contrib/libs/python) -} - -# tag:python-specific -### @usage: USE_PYTHON3() -### -### This adds Python3 library to your LIBRARY and makes it Python3-compatible. -### Compatibility means proper PEERDIRs, ADDINCLs and variant selection on PEERDIRs to multimodules. -### -### If you'd like to use #include <Python.h> with Python3 specify USE_PYTHON3 or better make it PY3_LIBRARY. -### If you'd like to use #include <Python.h> with Python2 specify USE_PYTHON2 or better make it PY2_LIBRARY. -### If you'd like to use #include <Python.h> with both Python2 and Python3 convert your LIBRARY to PY23_LIBRARY. -### -### @see: [PY2_LIBRARY](#module_PY2_LIBRARY), [PY3_LIBRARY](#module_PY3_LIBRARY), [PY23_LIBRARY](#multimodule_PY23_LIBRARY) -macro USE_PYTHON3() { - _ARCADIA_PYTHON3_ADDINCL() - SET(PEERDIR_TAGS PY3 PY3_BIN_LIB PY3TEST_LIBRARY PY3_NATIVE CPP_PROTO CPP_FBS YQL_UDF_STATIC __EMPTY__ DLL_LIB) - PEERDIR(contrib/libs/python) - - when ($USE_ARCADIA_PYTHON == "yes") { - PEERDIR+=library/python/runtime_py3 - } -} - -# tag:python-specific -when ($PERL_DEFAULT_PEERDIR == "yes") { - when (($PERLXS == "yes") || ($PERLXSCPP == "yes") || ($USE_PERL == "yes")) { - PEERDIR+=build/platform/perl - } -} - -# tag:perl-specific -### @usage: USE_PERL_LIB() -### Add dependency on Perl to your LIBRARY -macro USE_PERL_LIB() { - PEERDIR(build/platform/perl) -} - -# tag:perl-specific -### @usage: USE_PERL_514_LIB() -### Add dependency on Perl 5.14 to your LIBRARY -macro USE_PERL_514_LIB() { - SET(PERL_SDK ubuntu-12) - SET(PERL_DEFAULT_PEERDIR no) - PEERDIR(build/platform/perl/5.14) -} - -# tag:perl-specific -### @usage: ADD_PERL_MODULE(Dir ModuleName) -### Add dependency on specified Perl module to the library -macro ADD_PERL_MODULE(Dir, Module) { - PEERDIR($Dir) - SET_APPEND(modules $Module) -} - -# tag:allocator -### @usage: ALLOCATOR(Alloc) # Default: LF -### -### Set memory allocator implementation for the PROGRAM()/DLL() module. -### This may only be specified for programs and dlls, use in other modules leads to configuration errors. -### -### Available allocators are: "LF", "LF_YT", "LF_DBG", "YT", "J", "B", "BM", "C", "TCMALLOC", "GOOGLE", "LOCKLESS", "SYSTEM", "FAKE", "MIM", "HU", "PROFILED_HU". -### - LF - lfalloc (https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/lfalloc) -### - LF_YT - Allocator selection for YT (https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/lfalloc/yt/ya.make) -### - LF_DBG - Debug allocator selection (https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/lfalloc/dbg/ya.make) -### - YT - The YTAlloc allocator (https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/ytalloc/impl/ya.make) -### - J - The JEMalloc allocator (https://a.yandex-team.ru/arc/trunk/arcadia/library/malloc/jemalloc) -### - B - The balloc allocator named Pyotr Popov and Anton Samokhvalov -### - Discussion: https://ironpeter.at.yandex-team.ru/replies.xml?item_no=126 -### - Code: https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/balloc -### - BM - The balloc for market (agri@ commits from july 2018 till November 2018 saved) -### - C - Like B, but can be disabled for each thread to LF or SYSTEM one (B can be disabled only to SYSTEM) -### - MIM - Microsoft's mimalloc (actual version) (https://a.yandex-team.ru/arc/trunk/arcadia/library/malloc/mimalloc) -### - TCMALLOC - Google TCMalloc (actual version) (https://a.yandex-team.ru/arc/trunk/arcadia/library/malloc/tcmalloc) -### - GOOGLE - Google TCMalloc (https://a.yandex-team.ru/arc/trunk/arcadia/library/malloc/galloc) -### - LOCKLESS - Allocator based upon lockless queues (https://a.yandex-team.ru/arc/trunk/arcadia/library/malloc/lockless) -### - SYSTEM - Use target system allocator -### - FAKE - Don't link with any allocator -### - HU - Huge page allocator by @gulin. -### - PROFILED_HU - patched HU. It is a bit slower but has metrics of memory consumption. -### -### More about allocators in Arcadia: https://wiki.yandex-team.ru/arcadia/allocators/ -macro ALLOCATOR(Alloc) { - SET(ALLOCATOR $Alloc) - - when ($ALLOCATOR in [ "LF", "LF_YT", "LF_DBG", "YT", "J", "B", "BM", "C", "TCMALLOC", "TCMALLOC_SMALL_BUT_SLOW", "TCMALLOC_NUMA_256K", "TCMALLOC_NUMA_LARGE_PAGES", "TCMALLOC_256K", "TCMALLOC_TC", "GOOGLE", "LOCKLESS", "SYSTEM", "FAKE", "MIM", "HU", "PROFILED_HU" ]) { - } - otherwise { - PEERDIR+=___configure_error___unknown_allocator_type___$ALLOCATOR - } -} - -when ($MIC_ARCH == "yes") { - CFLAGS+=-mmic - LDFLAGS+=-mmic -} -when ($USE_OPENMP == "yes") { - PEERDIR+=contrib/libs/openmp -} - -when ($STRIP == "yes" && $NO_STRIP != "yes") { - STRIP_FLAG=$LD_STRIP_FLAG - DWARF_COMMAND= - GO_LINK_FLAGS_VALUE+=-s -} - -when ($NO_LINKER_DCE != "yes") { - DCE_FLAG=$LD_DCE_FLAG -} - -when ($BT_MINSIZEREL == "yes" || $LINKER_ICF == "yes") { - ICF_FLAG=$LD_ICF_FLAG -} - -OBJCOPY_TOOL=$OBJCOPY_TOOL_VENDOR -OBJDUMP_TOOL=$OBJDUMP_TOOL_VENDOR -STRIP_TOOL=$STRIP_TOOL_VENDOR -NEED_BINUTILS_PEERDIR= -BINUTILS_USED= - -when (!$OBJCOPY_TOOL_VENDOR) { - OBJCOPY_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objcopy - NEED_BINUTILS_PEERDIR=yes -} -when (!$OBJDUMP_TOOL_VENDOR) { - OBJDUMP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objdump - NEED_BINUTILS_PEERDIR=yes -} -when (!$STRIP_TOOL_VENDOR) { - STRIP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/strip - NEED_BINUTILS_PEERDIR=yes -} - -SPLIT_DWARF_VALUE=no -NO_SPLIT_DWARF=no - -when ($OS_DARWIN) { - SPLIT_DWARF_VALUE=yes -} - -when ($STRIP_DEBUG_INFO) { - SPLIT_DWARF_VALUE=yes - NO_SPLIT_DWARF=no -} - -### @usage: SPLIT_DWARF() -### -### Emit debug info for the PROGRAM/DLL as a separate file <module_name>.debug. -### NB: It does not help you to save process RSS but can add problems (see e.g. BEGEMOT-2147). -macro SPLIT_DWARF() { - SET(SPLIT_DWARF_VALUE yes) -} - -### @usage: NO_SPLIT_DWARF() -### -### Do NOT emit debug info for the PROGRAM/DLL as a separate file. -### On macOS this also means do NOT generate dSym files (faster linkage) -macro NO_SPLIT_DWARF() { - SET(SPLIT_DWARF_VALUE no) -} - -SPLIT_DWARF_OUTPUT=${output;tobindir;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.debug:REALPRJNAME} -when ($SPLIT_DWARF_VALUE == "yes" && $NO_SPLIT_DWARF != "yes" && $NO_DEBUGINFO != "yes" && $HOST_OS_LINUX == "yes" && $TARGET_PLATFORM == "LINUX") { - DWARF_COMMAND+= \ - $OBJCOPY_TOOL --only-keep-debug $TARGET $SPLIT_DWARF_OUTPUT && \ - $STRIP_TOOL --strip-debug $TARGET && \ - $OBJCOPY_TOOL --remove-section=.gnu_debuglink --add-gnu-debuglink $SPLIT_DWARF_OUTPUT $TARGET - BINUTILS_USED=yes -} - -### @usage: EXTRALIBS_STATIC(Libs...) -### -### Add the specified external static libraries to the program link -macro EXTRALIBS_STATIC(Args...) { - LDFLAGS(-Wl,-Bstatic ${Args} -Wl,-Bdynamic) -} - -### @usage ADD_COMPILABLE_TRANSLATE(Dict Name Options...) -### -### Generate translation dictionary code to transdict.LOWER(Name).cpp that will than be compiled into library -macro ADD_COMPILABLE_TRANSLATE(Dict, Name, MakeTransDictOptions...) { - __translatename_lower=${tolower:Name} - __translate_dict=${BINDIR}/transdict.${__translatename_lower}.cpp - RUN_PROGRAM(dict/tools/maketransdict -i ${Dict} ${MakeTransDictOptions} ${Name} STDOUT_NOAUTO ${__translate_dict} IN ${Dict}) -} - -### @usage ADD_COMPILABLE_TRANSLIT(TranslitTable NGrams Name Options...) -### -### Generate transliteration dictionary code -### This will emit both translit, untranslit and ngrams table codes those will be than further compiled into library -macro ADD_COMPILABLE_TRANSLIT(TranslitTable, NGrams, Name, Options...) { - __translitname_lower=${tolower:Name} - __translit_table=${BINDIR}/translit_trie_${__translitname_lower}.cpp - __untranslit_table=${BINDIR}/untranslit_trie_${__translitname_lower}.cpp - __ngrams_table=${BINDIR}/ngr_arr_${__translitname_lower}.cpp - __gentrie_dir=dict/tools/make_untranslit_trie - - RUN_PROGRAM(${__gentrie_dir} -i ${TranslitTable} ${Options} ${__translitname_lower} IN ${TranslitTable} STDOUT ${__untranslit_table}) - RUN_PROGRAM(${__gentrie_dir} -i ${TranslitTable} -n ${Options} ${__translitname_lower} IN ${TranslitTable} STDOUT ${__translit_table}) - RUN_PROGRAM(dict/tools/make_ngrams -i ${NGrams} ${Options} ${__translitname_lower} IN ${NGrams} STDOUT ${__ngrams_table}) -} - - -# tag:python-specific tag:proto tag:deprecated -### @usage GENERATE_PY_PROTOS(ProtoFiles...) # deprecated -### -### Generate python bindings for protobuf files. -### Macro is obsolete and not recommended for use! -macro GENERATE_PY_PROTOS(FILES...) { - foreach (FILE : $FILES) { - _PY_PROTO_CMD($FILE) - } -} - -# tag:python-specific tag:proto -macro _GENERATE_PY_PROTOS_INTERNAL(FILES...) { - foreach (FILE : $FILES) { - _PY_PROTO_CMD_INTERNAL($FILE) - } -} - -# tag:python-specific -macro _GENERATE_PY_EVS_INTERNAL(FILES...) { - foreach (FILE : $FILES) { - _PY_EVLOG_CMD_INTERNAL($FILE) - } -} - -macro _COPY_FILE_IMPL(FILE, AUTO_DST="", NOAUTO_DST="", OUTPUT_INCLUDES[], INDUCED_DEPS[], OUTPUT_INCLUDES_INP[]) { - .CMD=$COPY_CMD ${input:FILE} ${output:AUTO_DST} ${output;noauto:NOAUTO_DST} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;from_input;hide:OUTPUT_INCLUDES_INP} $INDUCED_DEPS ${kv;hide:"p CP"} ${kv;hide:"pc light-cyan"} - .SEM=copy_file ${input:FILE} ${output:AUTO_DST} ${output;noauto:NOAUTO_DST} -} - -### @usage: COPY_FILE(File Destination [AUTO] [OUTPUT_INCLUDES Deps...]) -### -### Copy file to build root. It is possible to change both location and the name. -### -### Parameters: -### - File - Source file name. -### - Destination - Output file name. -### - AUTO - Consider copied file for further processing automatically. -### - OUTPUT_INCLUDES output_includes... - Output file dependencies. -### - INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) -### and set of dependencies -### -### The file will be just copied if AUTO boolean parameter is not specified. You should explicitly -### mention it in SRCS under new name (or specify AUTO boolean parameter) for further processing. -macro COPY_FILE(File, Destination, AUTO?"AUTO_DST":"NOAUTO_DST", OUTPUT_INCLUDES[], INDUCED_DEPS[]) { - .CMD=$_COPY_FILE_IMPL($File $AUTO $Destination OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS) - .SEM=$_COPY_FILE_IMPL($File $AUTO $Destination) -} - -### @usage: COPY_FILE_WITH_CONTEXT(FILE DEST [AUTO] [OUTPUT_INCLUDES DEPS...]) -### -### Copy file to build root the same way as it is done for COPY_FILE, but also -### propagates the context of the source file. -macro COPY_FILE_WITH_CONTEXT(FILE, DEST, AUTO?"AUTO_DST":"NOAUTO_DST", OUTPUT_INCLUDES[], INDUCED_DEPS[]) { - .CMD=$_COPY_FILE_IMPL($FILE $AUTO $DEST OUTPUT_INCLUDES_INP $FILE OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS) -} - -### This is to join $ALL_RES_ and $EXT -macro _ARF_HELPER(Args...) { - RESOURCE_FILES($Args) -} - -### @usage ALL_RESOURCE_FILES(Ext [PREFIX {prefix}] [STRIP {strip}] Dirs...) -### -### This macro collects all files with extension `Ext` and -### Passes them to `RESOURCE_FILES` macro as relative to current directory -### -### `PREFIX` and `STRIP` have the same meaning as in `ROURCES_FILES`, both are applied over moddir-relative paths -### -### Note: This macro can be used multiple times per ya.make, but only once for each Ext value -### Note: Wildcards are not allowed neither as Ext nor in Dirs -macro ALL_RESOURCE_FILES(EXT, PREFIX="", STRIP="", DIRS...) { - _GLOB(ALL_RES_$EXT ${suf=/*.$EXT:DIRS}) - _ARF_HELPER(${pre=PREFIX :PREFIX} STRIP ${ARCADIA_ROOT}/${MODDIR}/${STRIP} ${pre=$ALL_RES_:EXT}) -} - - -macro _BUNDLE_TARGET(Target, Destination) { - .CMD=$MOVE_FILE ${result:Target} ${output;noauto:Destination} ${kv;hide:"p BN"} ${kv;hide:"pc light-cyan"} $VCS_INFO_DISABLE_CACHE__NO_UID__ -} - -### @usage: TIMEOUT(TIMEOUT) -### -### Sets a timeout on test execution -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro TIMEOUT(Time) { - SET(TEST_TIMEOUT $Time) -} - -SBR_UID_EXT="" -# tag:test -### @usage: VALIDATE_DATA_RESTART(ext) -### -### Change uid for resource validation tests. May be useful when sandbox resource ttl is changed, but test status is cached in CI. -### You can change ext to change test's uid. For example VALIDATE_DATA_RESTART(X), where is X is current revision. -macro VALIDATE_DATA_RESTART(Ext) { - SET(SBR_UID_EXT $Ext) -} - -# tag:test -TEST_FORK_MODE=none -TEST_PARTITION=SEQUENTIAL - -# tag:test -### @usage: FORK_TESTS() -### -### Splits a test run on chunks by test classes. -### The number of chunks can be overridden using the macro SPLIT_FACTOR. -### -### Allows to run tests in parallel. Supported in UNITTEST, JTEST/JUNIT5 and PY2TEST/PY3TEST modules. -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro FORK_TESTS(MODE...) { - SET(TEST_FORK_MODE tests) - SET(TEST_PARTITION $MODE) -} - -# tag:test -### @usage: FORK_SUBTESTS() -### -### Splits the test run in chunks on subtests. -### The number of chunks can be overridden using the macro SPLIT_FACTOR. -### -### Allows to run tests in parallel. Supported in UNITTEST, JTEST/JUNIT5 and PY2TEST/PY3TEST modules. -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro FORK_SUBTESTS(MODE...) { - SET(TEST_FORK_MODE subtests) - SET(TEST_PARTITION $MODE) -} - -# tag:test -### @usage: SPLIT_FACTOR(x) -### -### Sets the number of chunks for parallel run tests when used in test module with FORK_TESTS() or FORK_SUBTESTS(). -### If none of those is specified this macro implies FORK_TESTS(). -### -### Supports C++ ut and PyTest. -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro SPLIT_FACTOR(Factor) { - SET(TEST_SPLIT_FACTOR $Factor) -} - -# tag:test -FORK_TEST_FILES_MODE= -### @usage: FORK_TEST_FILES() -### -### Only for PY2TEST and PY3TEST: splits a file executable with the tests on chunks in the files listed in TEST_SRCS -### Compatible with FORK_(SUB)TESTS. -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro FORK_TEST_FILES() { - SET(FORK_TEST_FILES_MODE on) -} - -# tag:test -TEST_SIZE_NAME=SMALL -### @usage: SIZE(SMALL/MEDIUM/LARGE) -### -### Set the 'size' for the test. Each 'size' has own set of resrtictions, SMALL bein the most restricted and LARGE being the list. -### See documentation on test system for more details. -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro SIZE(Type) { - SET(TEST_SIZE_NAME $Type) -} - -### @usage: JOIN_SRCS(Out Src...) -### -### Join set of sources into single file named Out and send it for further processing. -### This macro doesn't place all file into Out, it emits #include<Src>... Use the for C++ source files only. -### You should specify file name with the extension as Out. Further processing will be done according this extension. -macro JOIN_SRCS(Out, Src...) { - .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/gen_join_srcs.py"} ${input;hide:"build/scripts/process_command_files.py"} ${output:Out} --ya-start-command-file ${input;rootrel:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${kv;hide:"p JS"} ${kv;hide:"pc magenta"} - .SEM=target_joined_source $Out ${input:Src} ${output;hide;suf=.o:Out} ${input;hide:"build/scripts/gen_join_srcs.py"} ${input;hide:"build/scripts/process_command_files.py"} - _CONDITIONAL_SRCS($TIDY_VALUE $Src) -} - -### @usage: JOIN_SRCS_GLOBAL(Out Src...) -### -### Join set of sources into single file named Out and send it for further processing as if it were listed as SRCS(GLOBAL Out). -### This macro doesn't place all file into Out, it emits #include<Src>... Use the for C++ source files only. -### You should specify file name with the extension as Out. Further processing will be done according to this extension. -macro JOIN_SRCS_GLOBAL(Out, Src...) { - .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/gen_join_srcs.py"} ${input;hide:"build/scripts/process_command_files.py"} ${output;noauto:Out} --ya-start-command-file ${input;rootrel:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${kv;hide:"p JS"} ${kv;hide:"pc magenta"} - SRCS(GLOBAL $Out) -} - -### @usage: FLAT_JOIN_SRCS_GLOBAL(Out Src...) -### -### Join set of sources into single file named Out and send it for further processing as if it were listed as SRCS(GLOBAL Out). -### This macro places all files into single file, so will work with any sources. -### You should specify file name with the extension as Out. Further processing will be done according to this extension. -macro FLAT_JOIN_SRCS_GLOBAL(Out, Src...) { - .CMD=$FS_TOOLS cat ${output;noauto:Out} --ya-start-command-file ${input:Src} --ya-end-command-file ${output_include;from_input;hide:Src} ${kv;hide:"p JS"} ${kv;hide:"pc magenta"} - SRCS(GLOBAL $Out) -} - -# tag:cpu -PIC_CFLAGS= -SSE2_CFLAGS= -SSE3_CFLAGS= -SSSE3_CFLAGS= -SSE41_CFLAGS= -SSE42_CFLAGS= -POPCNT_CFLAGS= -PCLMUL_CFLAGS= -CX16_FLAGS= -AVX_CFLAGS= -AVX2_CFLAGS= -AVX512_CFLAGS= -AMX_CFLAGS= - -# tag:cpu -SSE_DEFINES= -SSE_CFLAGS= -SSE4_DEFINES= -SSE4_CFLAGS= -XOP_CFLAGS= - -NO_LTO_CFLAGS= - -# tag:cpu -when (($ARCH_X86_64 || $ARCH_I386) && $DISABLE_INSTRUCTION_SETS != "yes") { - when ($CLANG || $CLANG_CL || $GCC) { - PIC_CFLAGS=-fPIC - SSE2_CFLAGS=-msse2 - SSE3_CFLAGS=-msse3 - SSSE3_CFLAGS=-mssse3 - SSE41_CFLAGS=-msse4.1 - SSE42_CFLAGS=-msse4.2 - XOP_CFLAGS=-mxop - POPCNT_CFLAGS=-mpopcnt - PCLMUL_CFLAGS=-mpclmul - AVX_CFLAGS=-mavx - - # On Intel BMI1, BMI2 and FMA3 instruction sets come together with AVX-2 extension starting with Broadwell / Haswell. - # See: - # https://en.wikipedia.org/wiki/FMA_instruction_set - # https://en.wikipedia.org/wiki/X86_Bit_manipulation_instruction_set - # - # AMD implemented FMA3 in Piledriver architecture over AVX (that is, prior to AVX-2 which was introduced in Zen). - # BMI2 implementation was released by AMD along with AVX-2 support. - # See: - # https://en.wikipedia.org/wiki/Template:AMD_x86_CPU_features - # - # Due to the above, it looks safe to enable all three extensions whenever AVX-2 is enabled. - AVX2_CFLAGS=-mavx2 -mfma -mbmi -mbmi2 - - # All Intel CPUS with AVX-512 have these instructions except for the Knights Landing / Knights Mill - # (these are Xeon Phi) - # See: - # https://en.wikichip.org/wiki/x86/avx-512 - AVX512_CFLAGS=-mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl - - # AMX stands Advanced Matrix Extension supported by modern Intel architectures - # See: - # https://en.wikipedia.org/wiki/Advanced_Matrix_Extensions - # https://en.wikichip.org/wiki/x86/amx - AMX_CFLAGS=-mamx-tile -mamx-int8 ${AVX512_CFLAGS} - - when ($ARCH_X86_64 && $OS_ANDROID != "yes") { - CX16_FLAGS=-mcx16 - } - SSE_DEFINES=-DSSE_ENABLED=1 -DSSE3_ENABLED=1 -DSSSE3_ENABLED=1 - SSE4_DEFINES=-DSSE41_ENABLED=1 -DSSE42_ENABLED=1 -DPOPCNT_ENABLED=1 -DCX16_ENABLED=1 - } - elsewhen ($MSVC) { - SSE2_CFLAGS=/D__SSE2__=1 - SSE3_CFLAGS=/D__SSE3__=1 - SSSE3_CFLAGS=/D__SSSE3__=1 - SSE41_CFLAGS=/D__SSE4_1__=1 - SSE42_CFLAGS=/D__SSE4_2__=1 - POPCNT_CFLAGS=/D__POPCNT__=1 - PCLMUL_CFLAGS=/D__PCLMUL__=1 - AVX_CFLAGS=/arch:AVX /DAVX_ENABLED=1 - AVX2_CFLAGS=/arch:AVX2 /DAVX2_ENABLED=1 - AVX512_CFLAGS=/arch:AVX512 /DAVX512_ENABLED=1 - SSE_DEFINES=/DSSE_ENABLED=1 /DSSE3_ENABLED=1 /DSSSE3_ENABLED=1 - SSE4_DEFINES=/DSSE41_ENABLED=1 /DSSE42_ENABLED=1 /DPOPCNT_ENABLED=1 /DCX16_ENABLED=1 - } - SSE_CFLAGS=$SSE2_CFLAGS $SSE3_CFLAGS $SSSE3_CFLAGS - SSE4_CFLAGS=$SSE41_CFLAGS $SSE42_CFLAGS $POPCNT_CFLAGS $CX16_FLAGS - when ($ARCH_I386 && $OS_ANDROID == "yes") { - USE_SSE4=no - } -} -otherwise { - USE_SSE4=no - CPU_CHECK=no -} - -# tag:cpu -when ($NOSSE == "yes") { - USE_SSE4=no -} - -# tag:cpu -### @usage: NO_SSE4() -### -### Compile module without SSE4 -macro NO_SSE4() { - SET(USE_SSE4 no) -} - -# tag:cpu -### @usage: NO_CPU_CHECK() -### -### Compile module without startup CPU features check -macro NO_CPU_CHECK() { - SET(CPU_CHECK no) -} - -### @usage: ADDINCLSELF() -### -### The macro adds the -I<project source path> flag to the source compilation flags of the current project. -macro ADDINCLSELF(FOR="") { - when($FOR) { - ADDINCL+=FOR $FOR ${MODDIR} - } - otherwise { - ADDINCL+=${MODDIR} - } -} - -COMPILE_OUT_SUFFIX= -_COMPILE_OUTPUTS=${output;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}:SRC} -_COMPILE_TIME_TRACE_OUTPUTS=${output;noauto;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}.time_trace.json:SRC} - -macro SET_COMPILE_OUTPUTS_MODIFIERS(NOREL?";norel":"") { - SET(_COMPILE_OUTPUTS \${output;suf=\${OBJECT_SUF}$NOREL:SRC}) - SET(_COMPILE_TIME_TRACE_OUTPUTS \${output;noauto;suf=\${OBJECT_SUF}.time_trace.json$NOREL:SRC}) -} - -# tag:internal -### @usage: _ADD_EXTRA_FLAGS_IMPL([GENERATE] Args...) # internal -### Generate prefix = " && set_property SOURCE ${input:SRC} APPEND PROPERTY COMPILE_OPTIONS " before $Args when GENERATE -### is specified in the list of actual arguments -macro _ADD_EXTRA_FLAGS_IMPL(GENERATE?" && set_property SOURCE ${input:SRC} APPEND PROPERTY COMPILE_OPTIONS ":"", Args...) { - .SEM=$GENERATE $Args -} - -# tag:internal -### @usage: _ADD_EXTRA_FLAGS([GENERATE] Args...) # internal -### Generate prefix = " && set_property SOURCE ${input:SRC} APPEND PROPERTY COMPILE_OPTIONS " if Args is not empty -macro _ADD_EXTRA_FLAGS(COMPILE_OUT_SUFFIX="", Args...) { - .SEM=$_ADD_EXTRA_FLAGS_IMPL(${pre=GENERATE :Args}) -} - -_EMPTY_CMD= - -# tag:src-processing tag:internal -### @usage: _SRC(Ext Src Flags) # internal -### -### Basic building block of extension-based command dispatching -### To enable specific extension processing define _SRC() macro with fixed first argument (Ext). -### Internal logic will apply this macro to all files with this Ext listed in SRC/SRCS macros or outputs -### of other commands (except ones marked as noauto) -macro _SRC(EXT, SRC, SRCFLAGS...) { - # Generic macro definition for _SRC (just a placeholder, it does nothing) -} - -_SWIG_CMD=$_SWIG_PYTHON_CMD -_SWIG_ADDINCLS=$_SWIG_PYTHON_ADDINCLS -_SWIG_PEERDIR=$_SWIG_PYTHON_PEERDIR -_SWIG_SEM_TO_MODULE_LINK=${output;hide;suf=.o:SRC} - -_SWIG_PYTHON_CMD=${_SWIG_TOOL} -module ${REALPRJNAME} -cpperraswarn -c++ -python -interface ${MODULE_PREFIX}${REALPRJNAME} -o ${output;noext;main;suf=_wrap.swg.cpp:SRC} ${output;noauto;add_to_outs;hide;tobindir;suf=.py:REALPRJNAME} -outdir ${BINDIR} ${pre=-I:_SWIG__INCLUDE} ${input:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_PYTHON_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/python FOR swig ${_SWIG_LIBRARY} -_SWIG_PYTHON_PEERDIR= - -_SWIG_PERL_CMD=${_SWIG_TOOL} -c++ -cpperraswarn -module ${REALPRJNAME} -shadow -perl -o ${output;noext;main;suf=_wrap.swg.cpp:SRC} ${output;noauto;add_to_outs;hide;tobindir;suf=.pm:REALPRJNAME} -outdir ${ARCADIA_BUILD_ROOT}/${MODDIR} ${pre=-I:_SWIG__INCLUDE} ${input:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_PERL_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/perl5 FOR swig ${_SWIG_LIBRARY} -_SWIG_PERL_PEERDIR=build/platform/perl - -_SWIG_JNI_CPP_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --out-header ${output;main;noext;suf=_wrap.swg.h:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${output;noext;suf=_wrap.swg.cpp:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_JNI_JAVA_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} --jsrc ${output;main;suf=.jsrc:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${BINDIR}/unused.cpp ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_JNI_CMD=$YMAKE_PYTHON3 ${input:"build/scripts/jni_swig.py"} --swig ${_SWIG_TOOL} --default-module ${nopath;noext:SRC} --src ${input:SRC} --out-header ${output;main;noext;suf=_wrap.swg.h:SRC} --package-by-file ru/yandex/${input;rootrel:SRC} --jsrc ${output;suf=.jsrc:SRC} -- ${pre=-I:_SWIG__INCLUDE} -o ${output;noext;suf=_wrap.swg.cpp:SRC} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} -_SWIG_JNI_ADDINCLS=FOR swig ${_SWIG_LIBRARY}/java FOR swig $_SWIG_LIBRARY -_SWIG_JNI_PEERDIR=contrib/libs/jdk - -when ($USE_LOCAL_SWIG == "yes") { - _SWIG_JNI_ADDINCLS= -} -when ($USE_SYSTEM_JDK == "yes" || $OS_ANDROID == "yes") { - _SWIG_JNI_PEERDIR= -} - -# tag:src-processing -macro _SRC("swg", SRC, SRCFLAGS...) { - .CMD=${_SWIG_CMD} - .ADDINCL=${_SWIG_ADDINCLS} - .PEERDIR=${_SWIG_PEERDIR} - .SEM=conan_require_tool swig/4.0.2 && conan_import '"bin, *swig* -> ./bin"' ${input;hide:SRC} ${_SWIG_SEM_TO_MODULE_LINK} -} - -RODATA_SYMBOL_PREFIX= -when ($DARWIN == "yes" || $IOS == "yes" || ($WINDOWS == "yes" && $ARCH_TYPE_32 == "yes")) { - RODATA_SYMBOL_PREFIX=_ -} - -RODATA_ELF_FLAGS= -when($LINUX == "yes" || $ANDROID == "yes") { - RODATA_ELF_FLAGS=--elf -} - -RODATA_COMPILE=$YMAKE_PYTHON3 ${input:"build/scripts/rodata2asm.py"} $RODATA_ELF_FLAGS ${RODATA_SYMBOL_PREFIX}${noext;nopath:SRC} ${input:SRC} ${tmp;suf=.asm:SRC} ${hide:OBJECT_SUF} && $_SRC_yasm_helper(${tmp;suf=.asm:SRC}) -when (($ARCH_AARCH64 || $ARCH_ARM || $ARCH_PPC64LE) == "yes") { - RODATA_COMPILE=$YMAKE_PYTHON3 ${input:"build/scripts/rodata2cpp.py"} ${noext;nopath:SRC} ${input:SRC} ${output;suf=.cpp:SRC} -} - -# tag:src-processing -macro _SRC("rodata", SRC, SRCFLAGS...) { - .CMD=$RODATA_COMPILE ${hide;kv:"p RD"} ${hide;kv:"pc light-green"} - .SEM=target_rodata_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input;hide:"build/scripts/rodata2cpp.py"} -} - -# tag:src-processing -macro _SRC("S", SRC, SRCFLAGS...) { - .CMD=$C_COMPILER $C_FLAGS_PLATFORM $CFLAGS $SFLAGS $SRCFLAGS -c -o ${output:SRC.o} ${input:SRC} ${pre=-I:_C__INCLUDE} - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS) && add_language ASM -} - -# tag:src-processing -macro _SRC("s", SRC, SRCFLAGS...) { - .CMD=$_SRC(S, $SRC $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("s79", SRC, SRCFLAGS...) { - .CMD=$_SRC(S, $SRC $SRCFLAGS -x assembler-with-cpp) -} - -# tag:src-processing -macro _SRC("mm", SRC, SRCFLAGS...) { - .CMD=$C_COMPILER $C_FLAGS_PLATFORM -x objective-c++ -fobjc-arc -fobjc-abi-version=2 -c -o ${output:SRC.o} ${input:SRC} $CXXFLAGS ${pre=-I:_C__INCLUDE} ${SRCFLAGS} ${kv;hide:"p CC"} ${kv;hide:"pc light-green"} $TOOLCHAIN_ENV -} - -# tag:src-processing -macro _SRC("fml", SRC, SRCFLAGS...) { - .CMD=$FML_TOOL $CHECKFLAG -b -o ${output:SRC.inc} -T ${input:SRC} ${SRCFLAGS} ${kv;hide:"p FM"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("fml2", SRC, SRCFLAGS...) { - .CMD=$FML_TOOL $CHECKFLAG -b -o ${output;nopath;noext:SRC.fml.inc} -2 -O ${output;nopath;noext:SRC.fml.cpp} -T ${input:SRC} ${SRCFLAGS} ${kv;hide:"p FM"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("fml3", SRC, SRCFLAGS...) { - .CMD=$FML_TOOL $CHECKFLAG -b -o ${output;nopath;noext:SRC.fml.inc} -3 -O ${output;nopath;noext:SRC.fml.cpp} -L ${input;nopath;noext:SRC.list} -P ${nopath;noext:SRC} -T ${input:SRC} ${SRCFLAGS} ${kv;hide:"p FM"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("sfdl", SRC, SRCFLAGS...) { - .CMD=$CXX_COMPILER $C_FLAGS_PLATFORM $CXXFLAGS $SFDL_FLAG ${SRCFLAGS} ${input:SRC} && ${tool:"tools/calcstaticopt"} -i ${tmp:SRC.tmp} -a $ARCADIA_ROOT ${output;stdout;nopath;noext;defext=.inc:SRC} ${kv;hide:"p SF"} ${kv;hide:"pc yellow"} $TOOLCHAIN_ENV -} - -macro _XS_SRCS(SRC, TYPEMAPS[], SRCFLAGS...) { - .CMD=$PERL_LD_LIBRARY_PATH $PERL $PERL_INCLUDE ${suf=/ExtUtils/xsubpp:PERL_PRIVLIB} -typemap ${suf=/ExtUtils/typemap:PERL_PRIVLIB} $PERLSUFFIX $XSUBPPFLAGS ${pre=-typemap :TYPEMAPS} ${input;hide:TYPEMAPS} ${SRCFLAGS} ${input:SRC} ${PERLOUTPUT} ${kv;hide:"p XS"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("xs", SRC, SRCFLAGS...) { - .CMD=$_XS_SRCS($SRC TYPEMAPS $_XSTYPEMAPS $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("gperf", SRC, SRCFLAGS...) { - .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/gperf"} $GP_FLAGS ${SRCFLAGS} ${pre=-Nin_;suf=_set;nopath;noallext:SRC} ${input:SRC} ${output;stdout;nopath;noext;defext=.gperf.cpp:SRC} ${kv;hide:"p GP"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("rl", SRC, SRCFLAGS...) { - .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel5/ragel"} $RAGEL_FLAGS ${SRCFLAGS} -o ${tmp:SRC.tmp} ${input:SRC} && $RUN_NO_SANITIZE ${tool:"contrib/tools/ragel5/rlgen-cd"} $RLGEN_FLAGS -o ${output;nopath;noext;defext=.rl5.cpp:SRC} ${tmp:SRC.tmp} ${kv;hide:"p R5"} ${kv;hide:"pc yellow"} -} - -macro _SRC("xsyn", SRC, SRCFLAGS...) { - .CMD=$YMAKE_PYTHON ${input:"library/cpp/xml/parslib/xsyn2ragel.py"} ${input:SRC} ${input:"library/cpp/xml/parslib/xmlpars.xh"} dontuse ${output;stdout;suf=.h.rl5:SRC} ${kv;hide:"p XN"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("rl5", SRC, SRCFLAGS...) { - .CMD=$_SRC(rl $SRC $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("asp", SRC, SRCFLAGS...) { - .CMD=$RUN_NO_SANITIZE ${tool:"tools/html2cpp"} ${input:SRC} ${output:SRC.cpp} ${kv;hide:"p HT"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("rl6", SRC, SRCFLAGS...) { - .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel6"} $RAGEL6_FLAGS ${SRCFLAGS} -L -I${ARCADIA_ROOT} -o ${output;nopath;noext;defext=.rl6.cpp:SRC} ${input:SRC} ${kv;hide:"p R6"} ${kv;hide:"pc yellow"} - .SEM=target_ragel_lexers PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $RAGEL6_FLAGS ${SRCFLAGS} && set_global_flags RAGEL_FLAGS -L -I $S/ && conan_require_tool ragel/6.10 && conan_import '"bin, ragel* -> ./bin"' ${input;hide:"build/scripts/run_tool.py"} -} - -# tag:src-processing -macro _SRC("pln", SRC, SRCFLAGS...) { - .CMD=$FML_TOOL -b -o ${output;pre=pln.;nopath;noext:SRC.cpp} -f ${input:SRC} ${SRCFLAGS} ${kv;hide:"p FM"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("xsyn", SRC, SRCFLAGS...) { - .CMD=$YMAKE_PYTHON ${input:"library/cpp/xml/parslib/xsyn2ragel.py"} ${input:SRC} ${input:"library/cpp/xml/parslib/xmlpars.xh"} dontuse ${output;stdout:SRC.h.rl5} ${kv;hide:"p XN"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("ev", SRC, SRCFLAGS...) { - .CMD=$EVLOG_CMD($SRC) -} - -# tag:src-processing -macro _SRC("proto", SRC, SRCFLAGS...) { - .CMD=$PROTO_CMD($SRC) - .SEM=$PROTO_CMD($SRC) -} - -# tag:src-processing -macro _SRC("gztproto", SRC, SRCFLAGS...) { - # _PROTO__INCLUDE is before ARCADIA_ROOT in includes because in gazetteer we don't use builtins now and paths' canonization (resolving) depends on order of roots. - # descriptor.proto must be resolved as google/protobuf/descriptor.proto - .CMD=${tool:"dict/gazetteer/converter"} -I$PROTOBUF_PATH ${pre="-I":_PROTO__INCLUDE} -I$ARCADIA_ROOT ${SRCFLAGS} ${input:SRC} ${output;nopath;noext;norel:SRC.proto} ${kv;hide:"p GZ"} ${kv;hide:"pc yellow"} - .PEERDIR=kernel/gazetteer/proto -} - -# tag:src-processing -macro _SRC("cfgproto", SRC, SRCFLAGS...) { - .CMD=$_CPP_CFGPROTO_CMD($SRC) -} - -# tag:src-processing -macro _SRC("pyx", SRC, SRCFLAGS...) { - # Copy-paste from BUILDWITH_CYTHON - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:SRC} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:SRC} $CYTHON_OUTPUT_INCLUDES ${SRCFLAGS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - .SEM=target_cython_sources PRIVATE ${input:Src} ${output;hide;tobindir:Src.fake.o} && target_cython_options $CYTHON_OPTIONS --cplus ${SRCFLAGS} ${CYTHON_CPP_OUTPUT_INCLUDES} && target_cython_include_directories $_CYTHON__INCLUDE && set_python_type_for_cython $PYTHON_TYPE_FOR_CYTHON - .ADDINCL=FOR cython contrib/tools/cython/Cython/Includes -} - -# tag:src-processing -macro _SRC("in", SRC, SRCFLAGS...) { - .CMD=$CONFIGURE_FILE(${SRC} ${nopath;noext:SRC}) - .SEM=$CONFIGURE_FILE(${SRC} ${nopath;noext:SRC}) -} - -macro MANUAL_GENERATION(Outs...) { - .SEM=IGNORED ${output;hide;noauto:Outs} -} - -# tag:src-processing -macro _SRC("sc", SRC, SRCFLAGS...) { - .CMD=${tool:"tools/domschemec"} --in ${input:SRC} --out ${output;norel:SRC.h} ${output_include;hide:"util/generic/strbuf.h"} ${output_include;hide:"array"} ${output_include;hide:"util/generic/string.h"} ${output_include;hide:"util/generic/vector.h"} ${output_include;hide:"util/string/cast.h"} ${SRCFLAGS} ${kv;hide:"p SC"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("ssqls", SRC, SRCFLAGS...) { - .CMD=${tool:"metrika/core/tools/ssqls"} ${input;notransformbuilddir:SRC} -S $ARCADIA_ROOT -B $ARCADIA_BUILD_ROOT $SRCFLAGS ${output;noext;hide:SRC.cpp} ${output;noext;hide:SRC.h} ${kv;hide:"p SS"} ${kv;hide:"pc yellow"} -} - -# tag:src-processing -macro _SRC("f", SRC, SRCFLAGS...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/f2c.py"} -t ${tool:"contrib/tools/f2c"} -c ${input:SRC} -o ${output:SRC.c} ${kv;hide:"p FT"} ${kv;hide:"pc light-green"} - .PEERDIR=contrib/libs/libf2c - .ADDINCL=contrib/libs/libf2c -} - -# tag:src-processing -macro _SRC("cpp", SRC, SRCFLAGS...) { - .CMD=$_SRC_cpp($SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS) -} - -# tag:src-processing -macro _SRC("cxx", SRC, SRCFLAGS...) { - .CMD=$_SRC(cpp $SRC $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("cc", SRC, SRCFLAGS...) { - .CMD=$_SRC(cpp $SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS) -} - -# tag:src-processing -macro _SRC("auxcpp", SRC, SRCFLAGS...) { - .CMD=$_SRC_cpp($SRC $_FORCE_CPP_FLAGS $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($_FORCE_CPP_FLAGS $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("C", SRC, SRCFLAGS...) { - .CMD=$_SRC(cpp $SRC $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("c", SRC, SRCFLAGS...) { - .CMD=$_SRC_c($SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $_ADD_EXTRA_FLAGS($SRCFLAGS $USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL) -} - -# tag:src-processing -macro _SRC("m", SRC, SRCFLAGS...) { - .CMD=$_SRC(c $SRC $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("masm", SRC, SRCFLAGS...) { - .CMD=$_SRC_masm($SRC $SRCFLAGS) -} - -YASM_SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${pre=-P :PREINCLUDES} ${input;hide:"build/scripts/run_tool.py"} \ - && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE \ - && add_language ASM \ - && conan_require_tool yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' -ASM_SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${input;hide:"build/scripts/run_tool.py"} \ - && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE \ - && add_language ASM \ - && conan_require_tool yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' -# tag:src-processing -macro _SRC("yasm", SRC, SRCFLAGS...) { - .CMD=$_SRC_yasm($SRC $SRCFLAGS PREINCLUDES $YASM_PREINCLUDES_VALUE) - .SEM=$YASM_SEM -} - -# tag:src-processing -macro _SRC("asm", SRC, SRCFLAGS...) { - .CMD=$_SRC(yasm $SRC $SRCFLAGS) - .SEM=$ASM_SEM -} - -# tag:src-processing -macro _SRC("lua", SRC, SRCFLAGS...) { - .CMD=${cwd:LUAJIT_PATH} ${tool:"contrib/libs/luajit/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${kv;hide:"p LJ"} ${kv;hide:"pc light-cyan"} - .PEERDIR=$LUAJIT_PATH -} - -NVCC_CFLAGS= -when ($IDE_MSVS_CALL == "yes") { - # This is to avoid issues with .pdb from MSVC calling nvcc calling cl - NVCC_CFLAGS+=/Fd$(TEMP) -} - -NVCC_STD_VER=14 -when ($MSVC == "yes") { - NVCC_STD=/std:c++${NVCC_STD_VER} -} -otherwise { - NVCC_STD=-std=c++${NVCC_STD_VER} -} - -# tag:src-processing -macro _SRC("cu", SRC, SRCFLAGS...) { - .CMD=$_SRC_CU_CMD - .SEM=target_cuda_sources PRIVATE ${input:SRC} ${output;hide;suf=${OBJ_SUF}.o:SRC} && set_global_flags CMAKE_CUDA_STANDARD ${NVCC_STD_VER} && target_cuda_flags $CUDA_NVCC_FLAGS && target_cuda_cflags $USER_CXXFLAGS $SRCFLAGS $_SEM_EXTRA_CXX_FLAGS - .PEERDIR=$_SRC_CU_PEERDIR -} - -# tag:src-processing -macro _SRC("fbs", SRC, SRCFLAGS...) { - .CMD=$FBS_CMD($SRC, $SRCFLAGS) - .SEM=$FBS_CMD($SRC, $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("fbs64", SRC, SRCFLAGS...) { - .CMD=$_CPP_FLATC64_CMD($SRC, $SRCFLAGS) -} - -# tag:src-processing -macro _SRC("pysrc", SRC, SRCFLAGS...) { - .CMD=$_SRC_PYSRC($SRC, $SRCFLAGS) -} - -@import "${CONF_ROOT}/conf/bison_lex.conf" - -# tag:src-processing -macro _SRC_py2src(SRC, SRCFLAGS...) { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON3 ${input:"build/scripts/compile_pysrc.py"} --input ${input:SRC} --output ${output;noext;suf=.py2_raw.cpp:SRC} --rescompiler ${tool:"tools/rescompiler"} py2 --python $(PYTHON)/python --py_compile ${input:"build/scripts/py_compile.py"} ${kv;hide:"p P2"} ${kv;hide:"pc light-green"} -} - -# tag:src-processing -macro _SRC_py3src(SRC, SRCFLAGS...) { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON3 ${input:"build/scripts/compile_pysrc.py"} --input ${input:SRC} --output ${output;noext;suf=.py3_raw.cpp:SRC} --rescompiler ${tool:"tools/rescompiler"} py3 --pycc ${tool:"contrib/tools/python3/pycc"} ${kv;hide:"p P3"} ${kv;hide:"pc light-green"} -} - -# tag:src-processing python-specific -when ($PYTHON3 == "yes") { - MACRO_ALIAS(_SRC_PYSRC _SRC_py3src) -} -otherwise { - MACRO_ALIAS(_SRC_PYSRC _SRC_py2src) -} - -# tag:src-processing -macro _SRC_c_nodeps(SRC, OUTFILE, INC...) { - .CMD=$_SRC_C_NODEPS_CMD -} - -# Custom flags for generated cpp-files. To support another generator: -# - insert additional file extension before .cpp into generated cpp-file name -# - update _LANG_CFLAGS_FILTER variable. Don't forget to add ' SKIP ' after flag list -# -# ragel5 and ragel6 generated terrible code which makes use of goto's in switch statements. -# This triggers -Werror-implicit-fallthrough due to `unannotated fall-through between switch labels`. -# -# cython generated code also fails to pass this diagnostics due to `fallthrough annotation in unreachable code`. -# We use cython==0.29.26 at the time. This issue might be fixed in further versions. - -## tag:src-processing -_LANG_CFLAGS_FILTER=\ - ${pre=-Wno-implicit-fallthrough SKIP ;ext=.rl5:SRC} \ - ${pre=-Wno-implicit-fallthrough SKIP ;ext=.rl6:SRC} \ - ${pre=-Wno-implicit-fallthrough SKIP ;ext=.pyx:SRC} - -# tag:src-processing -# Magic macro for removing file name from result (file name is passed as unused SKIP parameter) -macro _FILTER_EXTS(SKIP="", FLAGS...) { - .CMD=$FLAGS -} - -# tag:src-processing -macro _LANG_CFLAGS(SRC) { - .CMD=$_FILTER_EXTS($_LANG_CFLAGS_FILTER) -} - -# tag:src-processing -# ymake bug workaround: variables followed a macros call in .CMD are not substituted and are placed in result as is -# Pack macro call into a variable and use it in _SRC_CPP_CMD instead of macro call -_LANG_CFLAGS_VALUE= -when ($CLANG == "yes" || $CLANG_CL == "yes" || $GCC == "yes") { - _LANG_CFLAGS_VALUE=$_LANG_CFLAGS(${noext:SRC}) -} - -# Allows to add single compilation unit name to the node's 'kv' section. -# This is used by the coverage machinery to instrument only the necessary sources -# when --coverage-prefix-filter <rootrelpath> is specified. For more info see DEVTOOLSSUPPORT-16891 -SCU_NAME_KV= -when ($CLANG_COVERAGE && $CLANG_COVERAGE != "no" && $USE_SCU_VALUE == "yes") { - SCU_NAME_KV=${hide;kv:"scu_name $KV_VAL"} -} - -macro _ADD_SCU_NAME(KV_VAL) { - .CMD=$SCU_NAME_KV -} - -# tag:src-processing -macro _SRC_cpp(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { - .CMD=$_SRC_CPP_CMD $_ADD_SCU_NAME(${input:SRC}) -} - -# tag:src-processing -macro _SRC_c(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { - .CMD=$_SRC_C_CMD $_ADD_SCU_NAME(${input:SRC}) -} - -# tag:src-processing -macro _SRC_m(SRC, SRCFLAGS...) { - .CMD=$_SRC_M_CMD -} - -# tag:src-processing -macro _SRC_masm(SRC, SRCFLAGS...) { - .CMD=$_SRC_MASM_CMD -} - -# tag:lua-specific -### @usage: COMPILE_LUA(Src, [NAME <import_name>]) -### -### Compile LUA source file to object code using LUA 2.0 -### Optionally override import name which is by default reflects Src name -macro COMPILE_LUA(Src, NAME="") { - .CMD=$_SRC(lua, $Src, ${pre=-n :NAME}) -} - -# tag:lua-specific -### @usage: _SRC_lua_21(SRC [SRCFLAGS...]) # internal -### -### Compile LUA source file to object code using LUA 2.1 -macro _SRC_lua_21(SRC, SRCFLAGS...) { - .CMD=${cwd:LUAJIT_21_PATH} ${tool:"contrib/libs/luajit_21/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${kv;hide:"p LJ"} ${kv;hide:"pc light-cyan"} - .PEERDIR=$LUAJIT_21_PATH -} - -# tag:lua-specific -### @usage: COMPILE_LUA_21(Src, [NAME <import_name>]) -### -### Compile LUA source file to object code using LUA 2.1 -### Optionally override import name which is by default reflects Src name -macro COMPILE_LUA_21(Src, NAME="") { - .CMD=$_SRC_lua_21($Src, ${pre=-n :NAME}) -} - -GETTEXT_KEEP_PATH=no -_MO_OUTPUT= -when ($GETTEXT_KEEP_PATH == "yes") { - _MO_OUTPUT=${output;noauto;norel;noext:SRC.mo} -} -otherwise { - _MO_OUTPUT=${output;noauto;nopath;noext;tobindir:SRC.mo} -} - -# tag:src-processing -macro _SRC("po", SRC, SRCFLAGS...) { - .CMD=$YMAKE_PYTHON ${input:"contrib/tools/python/src/Tools/i18n/msgfmt.py"} -o $_MO_OUTPUT ${input:SRC} -} - -# tag:ydl-specific -YDL_FLAGS= --force-color -I ${ARCADIA_ROOT} -YDL_DESC_FLAGS= - -# tag:src-processing tag:ydl-specific -macro _SRC("ydl", SRC, SRCFLAGS...) { - .CMD=${tool:"statbox/ydl/compiler/tooling/ydl/bin"} c $YDL_FLAGS --cpp-output-header ${output;suf=.h:SRC} --cpp-output-source ${output;suf=.cpp:SRC} ${input:SRC} ${output_include;hide:"statbox/ydl/runtime/cpp/gen_support/standard_includes.h"} ${kv;hide:"p YDL"} ${kv;hide:"pc yellow"} - .PEERDIR+=statbox/ydl/runtime/cpp -} - -# tag:ydl-specific -### @usage BUILD_YDL_DESC(Input Symbol Output) -### -### Generate a descriptor for a Symbol located in a ydl module Input, and put it to the file Output. -### -### @example: -### -### PACKAGE() -### BUILD_YDL_DESC(../types.ydl Event Event.ydld) -### END() -### -### This will parse file ../types.ydl, generate a descriptor for a symbol Event defined in the said file, and put the descriptor to the Event.ydld. -macro BUILD_YDL_DESC(Input, Symbol, Output) { - .CMD=${tool:"statbox/ydl/compiler/tooling/ydl/bin"} ti $YDL_FLAGS $YDL_DESC_FLAGS -o ${output;noauto:Output} ${input:Input} ${Symbol} ${kv;hide:"p YDL"} ${kv;hide:"pc yellow"} -} - -# tag:ydl-specific -### @usage: YDL_DESC_USE_BINARY() -### -### Used in conjunction with BUILD_YDL_DESC. When enabled, all generated descriptors are binary. -### -### @example: -### -### PACKAGE() -### YDL_DESC_USE_BINARY() -### BUILD_YDL_DESC(../types.ydl Event Event.ydld) -### END() -### -### This will generate descriptor Event.ydld in a binary format. -macro YDL_DESC_USE_BINARY() { - YDL_DESC_FLAGS_BINARY= --binary - SET_APPEND(YDL_DESC_FLAGS $YDL_DESC_FLAGS_BINARY) -} - -### @usage SRC(File Flags...) -### -### Compile single file with extra Flags. -### Compilation is driven by the last extension of the File and Flags are specific to corresponding compilation command -macro SRC(FILE, FLAGS...) { - _SRC(${lastext:FILE} $FILE $FLAGS) -} - -### @usage: SRCS(<[GLOBAL] File> ...) -### -### Source files of the project. Files are built according to their extension and put int module output or fed to ultimate PROGRAM/DLL depending on GLOBAL presence. -### Arcadia Paths from the root and is relative to the project's LIST are supported -### -### GLOBAL marks next file as direct input to link phase of the program/shared library project built into. This prevents symbols of the file to be excluded by linker as unused. -### The scope of the GLOBAL keyword is the following file (that is, in the case of SRCS(GLOBAL foo.cpp bar.cpp) global will be only foo.cpp) -### -### @example: -### -### LIBRARY(test_global) -### SRCS(GLOBAL foo.cpp) -### END() -### -### This will produce foo.o and feed it to any PROGRAM/DLL module transitively depending on test_global library. The library itself will be empty and won't produce .a file. -macro SRCS(FILES...) { - foreach (FILE : $FILES) { - _SRC(${lastext:FILE} $FILE) - } -} - -# tag:c-specific -macro _SRC_C_CUSTOM_FLAGS(SRC, COMPILE_OUT_SUFFIX, CUSTOM_FLAGS...) { - .CMD=$_SRC_c($SRC COMPILE_OUT_SUFFIX ${COMPILE_OUT_SUFFIX} ${CUSTOM_FLAGS}) - .SEM=target_sources_custom $COMPILE_OUT_SUFFIX SRCS ${input:SRC} ${hide;output;suf=${COMPILE_OUT_SUFFIX}.o:SRC} CUSTOM_FLAGS $CUSTOM_FLAGS $USER_CONLYFLAGS $USER_CONLYFLAGS_GLOBAL -} - -macro _SRC_CPP_CUSTOM_FLAGS(SRC, COMPILE_OUT_SUFFIX, CUSTOM_FLAGS...) { - .CMD=$_SRC_cpp($SRC COMPILE_OUT_SUFFIX ${COMPILE_OUT_SUFFIX} ${CUSTOM_FLAGS}) - .SEM=target_sources_custom $COMPILE_OUT_SUFFIX SRCS ${input:SRC} ${hide;output;suf=${COMPILE_OUT_SUFFIX}.o:SRC} CUSTOM_FLAGS $CUSTOM_FLAGS -} - - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Defenition of generic macro. Report an error that the File with Ext is not -### supported by macro MacroName if no appropriate macro specialization is found. -macro _SRC_CUSTOM_C_CPP(EXT, MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - MESSAGE(FATAL_ERROR macro [[alt1]]$MACRO_NAME[[rst]] does not support files with [[imp]].$EXT[[rst]] extension) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_CUSTOM_C_CPP which compiles a single C file (with .c extension) -macro _SRC_CUSTOM_C_CPP("c", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - _SRC_C_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_CUSTOM_C_CPP which compiles a single Cpp file (with .cpp extension) -macro _SRC_CUSTOM_C_CPP("cpp", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_CUSTOM_C_CPP which compiles a single Cpp file (with .cxx extension) -macro _SRC_CUSTOM_C_CPP("cxx", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_CUSTOM_C_CPP which compiles a single Cpp file (with .cc extension) -macro _SRC_CUSTOM_C_CPP("cc", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_CUSTOM_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_CUSTOM_C_CPP which compiles a single Cpp file (with .C extension) -macro _SRC_CUSTOM_C_CPP("C", MACRO_NAME, FILE, COMPILE_OUT_SUFFIX, FLAGS...) { - _SRC_CPP_CUSTOM_FLAGS($FILE $COMPILE_OUT_SUFFIX $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_SSE2(File Flags...) -### -### Compile a single C/C++ file with SSE2 and additional Flags -macro SRC_C_SSE2(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE2 $FILE .sse2 $SSE2_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_SSE3(File Flags...) -### -### Compile a single C/C++ file with SSE3 and additional Flags -macro SRC_C_SSE3(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE3 $FILE .sse3 $SSE3_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_SSSE3(File Flags...) -### -### Compile a single C/C++ file with SSSE3 and additional Flags -macro SRC_C_SSSE3(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSSE3 $FILE .ssse3 $SSSE3_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_SSE4(File Flags...) -### -### Compile a single C/C++ file with SSE4 and additional Flags -macro SRC_C_SSE4(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE4 $FILE .sse4 $SSE4_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_SSE41(File Flags...) -### -### Compile a single C/C++ file with SSE4.1 and additional Flags -macro SRC_C_SSE41(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_SSE41 $FILE .sse41 $SSE41_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_AVX(File Flags...) -### -### Compile a single C/C++ file with AVX and additional Flags -macro SRC_C_AVX(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX $FILE .avx $AVX_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_AVX2(File Flags...) -### -### Compile a single C/C++ file with AVX2 and additional Flags -macro SRC_C_AVX2(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX2 $FILE .avx2 $AVX2_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_AVX512(File Flags...) -### -### Compile a single C/C++ file with AVX512 and additional Flags -macro SRC_C_AVX512(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AVX512 $FILE .avx512 $AVX512_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_AVX512(File Flags...) -### -### Compile a single C/C++ file with AVX512 and additional Flags -macro SRC_C_AMX(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_AMX $FILE .amx $AMX_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_XOP(File Flags...) -### -### Compile a single C/C++ file with (an AMD-specific instruction set, -### see https://en.wikipedia.org/wiki/XOP_instruction_set) and additional Flags -macro SRC_C_XOP(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_XOP $FILE .xop $XOP_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific tag:cpu -### @uasge SRC_C_PCLMUL(File Flags...) -### -### Compile a single C/C++ file with PCLMUL and additional Flags -macro SRC_C_PCLMUL(FILE, FLAGS...) { - _SRC_CUSTOM_C_CPP(${lastext:FILE} SRC_C_PCLMUL $FILE .pclmul $PCLMUL_CFLAGS $FLAGS ) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Defenition of generic macro. Report an error that the File with Ext is not -### supported by macro MacroName if no appropriate macro specialization is found. -macro _SRC_STRICT_C_CPP(EXT, MACRO_NAME, FILE, FLAGS...) { - MESSAGE(FATAL_ERROR macro [[alt1]]$MACRO_NAME[[rst]] does not support files with [[imp]].$EXT[[rst]] extension) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_STRICT_C_CPP which compiles a single C file (with .c extension) -macro _SRC_STRICT_C_CPP("c", MACRO_NAME, FILE, FLAGS...) { - _SRC(c $FILE $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_STRICT_C_CPP which compiles a single Cpp file (with .cpp extension) -macro _SRC_STRICT_C_CPP("cpp", MACRO_NAME, FILE, FLAGS...) { - _SRC(cpp $FILE $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_STRICT_C_CPP which compiles a single Cpp file (with .cxx extension) -macro _SRC_STRICT_C_CPP("cxx", MACRO_NAME, FILE, FLAGS...) { - _SRC(cpp $FILE $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_STRICT_C_CPP which compiles a single Cpp file (with .cc extension) -macro _SRC_STRICT_C_CPP("cc", MACRO_NAME, FILE, FLAGS...) { - _SRC(cpp $FILE $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @usage: _SRC_STRICT_C_CPP(Ext MacroName File Flags...) # internal -### -### Specialization of genreric macro _SRC_STRICT_C_CPP which compiles a single Cpp file (with .C extension) -macro _SRC_STRICT_C_CPP("C", MACRO_NAME, FILE, FLAGS...) { - _SRC(cpp $FILE $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @uasge SRC_C_PIC(File Flags...) -### -### Compile a single C/C++ file with -fPIC and additional Flags -macro SRC_C_PIC(FILE, FLAGS...) { - _SRC_STRICT_C_CPP(${lastext:FILE} SRC_C_PIC $FILE $PIC_CFLAGS $FLAGS) -} - -# tag:src-specific tag:cpp-specific -### @uasge SRC_C_NO_LTO(File Flags...) -### -### Compile a single C/C++ file with link-time-optimization disabling and additional Flags -macro SRC_C_NO_LTO(FILE, FLAGS...) { - _SRC_STRICT_C_CPP(${lastext:FILE} SRC_C_NO_LTO $FILE $NO_LTO_CFLAGS $FLAGS) -} - -# tag:python-processing tag:cython -# TODO: use it in [.pyx] cmd -### @usage: BUILDWITH_CYTHON_CPP(Src Options...) -### -### Generates .cpp file from .pyx. -macro BUILDWITH_CYTHON_CPP(Src, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:Src} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - .SEM=target_cython_sources PRIVATE ${input:Src} ${output;hide;tobindir:Src.fake.o} && target_cython_options $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} && target_cython_include_directories $_CYTHON__INCLUDE && set_python_type_for_cython $PYTHON_TYPE_FOR_CYTHON - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:cython tag:internal -### @usage: _BUILDWITH_CYTHON_CPP_DEP(Src Dep Options...) # internal -### -### Generates .cpp file from .pyx and attach extra input Dep. -### If Dep changes the .cpp file will be re-generated. -macro _BUILDWITH_CYTHON_CPP_DEP(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir;suf=${OBJ_SUF}.cpp:Src} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - .SEM=target_cython_sources PRIVATE ${input:Src} ${input;hide:Dep} ${output;hide;tobindir:Src.fake.o} && target_cython_options $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} && target_cython_include_directories $_CYTHON__INCLUDE && set_python_type_for_cython $PYTHON_TYPE_FOR_CYTHON - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:cython tag:internal -### @usage: _BUILDWITH_CYTHON_CPP_H(Src Dep Options...) # internal -### -### BUILDWITH_CYTHON_CPP without .pyx infix and with cdef public .h file. -macro _BUILDWITH_CYTHON_CPP_H(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.cpp} ${output;hide;addincl;noext;tobindir:Src.h} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - - -# tag:python-processing tag:cython -### @usage: BUILDWITH_CYTHON_C(Src Options...) -### -### Generates .c file from .pyx. -macro BUILDWITH_CYTHON_C(Src, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir;suf=${OBJ_SUF}.c:Src} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - .SEM=target_cython_sources PRIVATE ${input:Src} ${output;hide;tobindir:Src.fake.o} && target_cython_options $CYTHON_OPTIONS ${Options} ${CYTHON_OUTPUT_INCLUDES} && target_cython_include_directories $_CYTHON__INCLUDE && set_python_type_for_cython $PYTHON_TYPE_FOR_CYTHON - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:cython tag:internal -### @usage: _BUILDWITH_CYTHON_C_DEP(Src Dep Options...) # internal -### -### Generates .c file from .pyx and attach extra input Dep. -### If Dep changes the .c file will be re-generated. -macro _BUILDWITH_CYTHON_C_DEP(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir;suf=${OBJ_SUF}.c:Src} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - .SEM=target_cython_sources PRIVATE ${input:Src} ${input;hide:Dep} ${output;hide;tobindir:Src.fake.o} && target_cython_options $CYTHON_OPTIONS ${Options} ${CYTHON_OUTPUT_INCLUDES} && target_cython_include_directories $_CYTHON__INCLUDE && set_python_type_for_cython $PYTHON_TYPE_FOR_CYTHON - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:cython tag:internal -### @usage: _BUILDWITH_CYTHON_C_H(Src Dep Options...) # internal -### -### BUILDWITH_CYTHON_C without .pyx infix and with cdef public .h file. -macro _BUILDWITH_CYTHON_C_H(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:cython tag:internal -### @usage: _BUILDWITH_CYTHON_C_API_H(Src Dep Options...) # internal -### -### BUILDWITH_CYTHON_C_H with cdef api _api.h file. -macro _BUILDWITH_CYTHON_C_API_H(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT_H $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} ${output;hide;addincl;noext;defext=_api.h;tobindir:Src} $CYTHON_OUTPUT_INCLUDES ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} - ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) -} - -# tag:python-processing tag:internal -### @usage: _SWIG_PYTHON_CPP(Src, DstSubPrefix) # internal -### -### Run swig on Src to produce DstSubPrefix.py and DstSubPrefix_swg.cpp that -### provides DstSubPrefix_swg python module. -macro _SWIG_PYTHON_CPP(Src, DstSubPrefix) { - .CMD=$_SWIG_TOOL -I$ARCADIA_BUILD_ROOT -I$ARCADIA_ROOT -I$_SWIG_LIBRARY_ABS/python -I$_SWIG_LIBRARY_ABS -c++ -python -module ${nopath:DstSubPrefix} -interface ${nopath;suf=_swg:DstSubPrefix} -o ${output;suf=.swg.cpp:DstSubPrefix} ${input:Src} ${output;noauto;hide;suf=.py:DstSubPrefix} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} - ADDINCL(FOR swig $_SWIG_LIBRARY/python FOR swig $_SWIG_LIBRARY) -} - -# tag:python-processing tag:internal -### @usage: _SWIG_PYTHON_C(Src, DstSubPrefix) # internal -### -### Like _SWIG_PYTHON_CPP but generate DstSubPrefix_swg.c. -macro _SWIG_PYTHON_C(Src, DstSubPrefix) { - .CMD=$_SWIG_TOOL -I$ARCADIA_BUILD_ROOT -I$ARCADIA_ROOT -I$_SWIG_LIBRARY_ABS/python -I$_SWIG_LIBRARY_ABS -python -module ${nopath:DstSubPrefix} -interface ${nopath;suf=_swg:DstSubPrefix} -o ${output;suf=.swg.c:DstSubPrefix} ${input:Src} ${output;noauto;hide;suf=.py:DstSubPrefix} ${kv;hide:"p SW"} ${kv;hide:"pc yellow"} - ADDINCL(FOR swig $_SWIG_LIBRARY/python FOR swig $_SWIG_LIBRARY) -} - -### @usage: BUILDWITH_RAGEL6(Src Options...) -### -### Compile .rl file using Ragel6. -macro BUILDWITH_RAGEL6(Src, Options...) { - .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel6"} $RAGEL6_FLAGS ${Options} -I${ARCADIA_ROOT} -o ${output;nopath;noext;defext=.rl6.cpp:Src} ${input:Src} ${kv;hide:"p R6"} ${kv;hide:"pc yellow"} -} - -# tag:python-processing tag:internal -# TODO: use it in [.pyx] cmd -### @usage: _PY_REGISTER() # internal -### -### Register Python 2.x module in internal resource file system. Arcadia Python 2.x importer will be retrieve these on import directive. -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/pysrcs/#makrospyregister -macro _PY_REGISTER(Func) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_py_reg.py"} $Func ${output;noauto:Func.reg.cpp} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} - SRCS(GLOBAL $Func.reg.cpp) -} - -# tag:python-processing tag:internal -### @usage: _PY3_REGISTER() # internal -### -### Register Python 3.x module in internal resource file system. Arcadia Python 3.x importer will be retrieve these on import directive -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/pysrcs/#makrospyregister -macro _PY3_REGISTER(Func) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_py3_reg.py"} $Func ${output;noauto:Func.reg3.cpp} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} - SRCS(GLOBAL $Func.reg3.cpp) -} - -# tag:python-processing tag:internal -### @usage: _PY_COMPILE_BYTECODE(SrcX Src) # internal -### -### Compile Python 2.x .py source file into Arcadia binary form suitable for PY2_PROGRAM -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/pysrcs/#makrospyregister -macro _PY_COMPILE_BYTECODE(SrcX, Src, Dst) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/py_compile.py"} $SrcX ${input:Src} ${output;noauto:Dst.yapyc} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} -} - -# tag:python-processing tag:internal -### @usage: _PY3_COMPILE_BYTECODE(SrcX Src) # internal -### -### Compile Python 3.x .py source file into Arcadia binary form suitable for PY3_PROGRAM -### -### Documentation: https://wiki.yandex-team.ru/devtools/commandsandvars/pysrcs/#makrospyregister -macro _PY3_COMPILE_BYTECODE(SrcX, Src, Dst) { - .CMD=${env:"PYTHONHASHSEED=0"} ${tool:"contrib/tools/python3/pycc"} $SrcX ${input:Src} ${output;noauto:Dst.yapyc3} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} -} - -macro _ARCHIVE_SEM_HELPER(FLAGS[], OUT, Files...) { - .SEM=add_custom_command OUTPUT ${OUT} DEPENDS $ARCH_TOOL ${join= :Files} COMMAND $ARCH_TOOL $FLAGS ${join=\: :Files}: -o ${OUT} -} - -### @usage: ARCHIVE_ASM(NAME archive_name files...) -### -### Similar to the macro ARCHIVE, but: -### 1. works faster and it is better to use for large files. -### 2. Different syntax (see examples in codesearch or users/pg/tests/archive_test) -macro ARCHIVE_ASM(NAME="", DONTCOMPRESS?"-p":"", Files...) { - .CMD=$ARCH_TOOL -q $DONTCOMPRESS ${input;join=\: :Files}: -o ${output;chksum;suf=$OBJ_SUF.rodata:NAME} ${kv;hide:"p AR"} ${kv;hide:"pc light-cyan"} - .SEM=$_ARCHIVE_SEM_HELPER(${output;suf=$OBJ_SUF.rodata:NAME} ${input:Files} FLAGS -q $DONTCOMPRESS) -} - -# tag:yweb-specific -macro PIRE_INLINE_CMD(SRC) { - .CMD=${tool:"library/cpp/regex/pire/inline"} -o ${output:SRC} ${input:SRC} ${output_include;hide:SRC} ${kv;hide:"p PI"} ${kv;hide:"pc yellow"} -} - -# tag:yweb-specific -macro PIRE_INLINE(FILES...) { - foreach (FILE : $FILES) { - PIRE_INLINE_CMD($FILE) - } -} - -### @usage: ARCHIVE(archive_name [DONT_COMPRESS] files...) -### -### Add arbitrary data to a modules. Unlike RESOURCE macro the result should be futher processed by othet macros in the module. -### -### Example: https://wiki.yandex-team.ru/yatool/howtowriteyamakefiles/#a1ispolzujjtekomanduarchive -macro ARCHIVE(NAME="", DONTCOMPRESS?"-p":"", Files...) { - .CMD=$ARCH_TOOL -q -x $DONTCOMPRESS ${input;join=\: :Files}: -o ${output;chksum;addincl;noauto:NAME} ${kv;hide:"p AR"} ${kv;hide:"pc light-red"} - .SEM=$_ARCHIVE_SEM_HELPER(${output;addincl;noauto:NAME} ${input:Files} FLAGS -q -x $DONTCOMPRESS) && target_sources PRIVATE $BINDIR/$NAME -} - -### @usage: ARCHIVE_BY_KEYS(archive_name key [DONT_COMPRESS] files...) -### -### Add arbitrary data to a module be accessible by specified key. -### Unlike RESOURCE macro the result should be futher processed by othet macros in the module. -### -### Example: https://wiki.yandex-team.ru/yatool/howtowriteyamakefiles/#a1ispolzujjtekomanduarchive -macro ARCHIVE_BY_KEYS(NAME="", KEYS="", DONTCOMPRESS?"-p":"", Files...) { - .CMD=$ARCH_TOOL -q -x $DONTCOMPRESS ${input:Files} -k $KEYS -o ${output;chksum;addincl;noauto:NAME} ${kv;hide:"p AR"} ${kv;hide:"pc light-red"} -} - -#scripts - -#special commands -BUILDVERSION_SCRIPT=build/scripts/build_info_gen.py -SVNVERSION_JAVA_MARKER=output-java-class -SVNVERSION_GO_MARKER=output-go -VCS_C_OBJ=$BINDIR/__vcs_version__.c$OBJECT_SUF -VCS_C_OBJ_RR=$MODDIR/__vcs_version__.c$OBJECT_SUF -VCS_C=$BINDIR/__vcs_version__.c -VCS_GO=$BINDIR/__vcs_version__.go -VCS_JAVA=$BINDIR/__vcs_version__.mf -VCS_INFO_DISABLE_CACHE__NO_UID__= -YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__= -CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__= -CL_MACRO_INFO_DISABLE_CACHE__NO_UID__= -YASM_DEBUG_INFO= -CL_DEBUG_INFO= -CL_MACRO_INFO= -when ($FORCE_VCS_INFO_UPDATE == "yes") { - VCS_INFO_DISABLE_CACHE__NO_UID__=${hide;kv:"disable_cache"} -} -### Works for pyton too. -GENERATE_VCS_C_INFO_NODEP=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} $(VCS)/vcs.json $VCS_C ${input:"build/scripts/c_templates/svn_interface.c"} $VCS_INFO_DISABLE_CACHE__NO_UID__ && $_SRC_c_nodeps($VCS_C, $VCS_C_OBJ, $(SOURCE_ROOT)) -GENERATE_VCS_GO_INFO_NODEP=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-go $(VCS)/vcs.json $VCS_GO $VCS_INFO_DISABLE_CACHE__NO_UID__ -GENERATE_VCS_JAVA_INFO_NODEP=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $VCS_INFO_DISABLE_CACHE__NO_UID__ -macro UPDATE_VCS_JAVA_INFO_NODEP(Jar) { - .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $Jar $VCS_INFO_DISABLE_CACHE__NO_UID__ -} - -### @usage: CREATE_BUILDINFO_FOR(GenHdr) -### -### Creates header file to access some information about build specified via configuration variables. -### Unlike CREATE_SVNVERSION_FOR() it doesn't take revion information from VCS, it uses revision and SandboxTaskId passed via -D options to ya make -macro CREATE_BUILDINFO_FOR(GenHdr) { - .CMD=$YIELD $CXX_COMPILER && $YIELD $CXXFLAGS && $XARGS $YMAKE_PYTHON3 ${input:BUILDVERSION_SCRIPT} ${output:GenHdr} ${kv;hide:"p BI"} ${kv;hide:"pc yellow"} ${hide;kv:"show_out"} $SVN_DEPENDS_CACHE__NO_UID__ - .SEM=$RUN_PYTHON3($BUILDVERSION_SCRIPT $GenHdr \\\"${CMAKE_CXX_COMPILER}\\\" \\\"${CMAKE_CXX_FLAGS}\\\" OUT $GenHdr) -} - -DECIMAL_MD5_SCRIPT=build/scripts/decimal_md5.py -DECIMAL_MD5_FIXED= - -### @usage: DECIMAL_MD5_LOWER_32_BITS(<fileName> [FUNCNAME funcName] [inputs...]) -### -### Generates .cpp file <fileName> with one defined function 'const char* <funcName>() { return "<calculated_md5_hash>"; }'. -### <calculated_md5_hash> will be md5 hash for all inputs passed to this macro. -macro DECIMAL_MD5_LOWER_32_BITS(File, FUNCNAME="", Opts...) { - .CMD=$YMAKE_PYTHON ${input:DECIMAL_MD5_SCRIPT} --fixed-output=${DECIMAL_MD5_FIXED} --func-name=${FUNCNAME} --lower-bits 32 --source-root=$ARCADIA_ROOT ${input;context=TEXT:Opts} ${output;stdout;chksum:File} ${kv;hide:"p SV"} ${kv;hide:"pc yellow"} ${hide;kv:"show_out"} -} - -# tag:internal -### @usage $CFG_VARS # internal -### -### Mark commands that embed Configuration variables into files -macro CFG_VARS() { - .GEN_FROM_FILE=yes -} - -### @usage: CONFIGURE_FILE(from to) -### -### Copy file with the replacement of configuration variables in form of @ANY_CONF_VAR@ with their values. -### The values are collected during configure stage, while replacement itself happens during build stage. -### Used implicitly for .in-files processing. -macro CONFIGURE_FILE(Src, Dst) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/configure_file.py"} ${input:Src} ${output;addincl:Dst} $CFG_VARS ${kv;hide:"p CF"} ${kv;hide:"pc yellow"} - .SEM=set_vars ${CFG_VARS} && configure_file $S/${input;rootrel:Src} $B/${output;addincl;rootrel:Dst} -} - -### @usage: BASE_CODEGEN(tool_path prefix) -### -### Generator ${prefix}.cpp + ${prefix}.h files based on ${prefix}.in. -macro BASE_CODEGEN(Tool, Prefix, Opts...) { - .CMD=${tool:Tool} ${input:Prefix.in} ${output;nopath;noauto:Prefix.cpp} ${output;nopath:Prefix.h} $Opts ${kv;hide:"p BC"} ${kv;hide:"pc yellow"} -} - -# tag:internal -### @usage: _SPLIT_CODEGEN_BASE(tool prefix OUTS[] OUTPUT_INCLUDES[]) # internal -### -### Generator of a certain number .the. cpp file + one header .h file from .in. -### This is the call of the generator. Python macro SPLIT_CODEGEN() is defined in order to properly fill command outputs from OUT_NUM argument. -macro _SPLIT_CODEGEN_BASE(Tool, Prefix, OUT[], OPTS[], OUTPUT_INCLUDES[]) { - .CMD=${tool:Tool} ${input:Prefix.in} ${output;hide:OUT} ${output;nopath;noauto:Prefix.cpp} ${output;nopath:Prefix.h} $OPTS ${output_include;hide:OUTPUT_INCLUDES} ${kv;hide:"p SC"} ${kv;hide:"pc yellow"} -} - -STRUCT_CODEGEN_OUTPUT_INCLUDES=${output_include;hide:"util/generic/singleton.h"} \ -${output_include;hide:"util/generic/strbuf.h"} \ -${output_include;hide:"util/generic/vector.h"} \ -${output_include;hide:"util/generic/ptr.h"} \ -${output_include;hide:"util/generic/yexception.h"} \ -${output_include;hide:"kernel/struct_codegen/reflection/reflection.h"} \ -${output_include;hide:"kernel/struct_codegen/reflection/floats.h"} - -### @usage: STRUCT_CODEGEN(Prefix) -### A special case BASE_CODEGEN, in which the kernel/struct_codegen/codegen_tool tool is used. -macro STRUCT_CODEGEN(Prefix) { - .CMD=$BASE_CODEGEN(kernel/struct_codegen/codegen_tool, $Prefix, $STRUCT_CODEGEN_OUTPUT_INCLUDES) - .PEERDIR=kernel/struct_codegen/metadata kernel/struct_codegen/reflection -} - -### @usage: DUMPERF_CODEGEN(Prefix) -### A special case BASE_CODEGEN, in which the extsearch/images/robot/tools/dumperf/codegen tool is used -macro DUMPERF_CODEGEN(Prefix) { - .CMD=$BASE_CODEGEN(extsearch/images/robot/tools/dumperf/codegen, $Prefix, ${output_include;hide:"extsearch/images/kernel/erf/erf_format.h"}) -} - -# tag:flags -### @usage: LDFLAGS(LinkerFlags...) -### -### Add flags to the link command line of executable or shared library/dll. -### Note: LDFLAGS are always global. When set in the LIBRARY module they will affect all programs/dlls/tests the library is linked into. -### Note: remember about the incompatibility of flags for gcc and cl. -macro LDFLAGS(Flags...) { - SET_APPEND(LDFLAGS_GLOBAL $Flags) -} - -# tag:flags -### @usage: CFLAGS([GLOBAL compiler_flag]* compiler_flags) -### -### Add the specified flags to the compilation command of C and C++ files. -### @params: GLOBAL - Propagates these flags to dependent projects -### Note: remember about the incompatibility flags for clang and cl (to set flags specifically for cl.exe use MSVC_FLAGS). -macro CFLAGS(Flags...) { - SET_APPEND_WITH_GLOBAL(USER_CFLAGS $Flags) -} - -# tag:flags -### @usage: MASMFLAGS(compiler flags) -### Add the specified flags to the compilation command of .masm files. -macro MASMFLAGS(Flags...) { - SET_APPEND(MASMFLAGS $Flags) -} - -# tag:flags -### @usage: CONLYFLAGS([GLOBAL compiler_flag]* compiler_flags) -### Add the specified flags to the compilation command of .c (but not .cpp) files. -### @params: GLOBAL - Distributes these flags on dependent projects -macro CONLYFLAGS(Flags...) { - SET_APPEND_WITH_GLOBAL(USER_CONLYFLAGS $Flags) -} - -# tag:flags -### @usage: CXXFLAGS(compiler_flags) -### Add the specified flags to the compilation command of .cpp (but not .c) files. -macro CXXFLAGS(Flags...) { - SET_APPEND_WITH_GLOBAL(USER_CXXFLAGS $Flags) -} - -# tag:flags -### @usage: CUDA_NVCC_FLAGS(compiler flags) -### Add the specified flags to the compile line .cu-files. -macro CUDA_NVCC_FLAGS(Flags...) { - SET_APPEND(CUDA_NVCC_FLAGS $Flags) -} - -# tag:flags -### @usage: NVCC_DEVICE_LINK(file.cu...) -### Run nvcc --device-link on objects compiled from srcs with --device-c. -### This generates a stub object devlink.o that supplies missing pieces for the -### host linker to link relocatable device objects into the final executable. -macro NVCC_DEVICE_LINK(Srcs...) { - .CMD=$NVCC $NVCC_FLAGS -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:"devlink"} -dlink ${input;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:Srcs} ${kv;hide:"p DL"} ${kv;hide:"pc light-blue"} -} - -# tag:flags -### @usage: CYTHON_FLAGS(compiler_flags) -### Add the specified flags to the compilation command of .pyx files. -macro CYTHON_FLAGS(Flags...) { - SET_APPEND(CYTHON_OPTIONS $Flags) -} - -### @usage: STRIP() -### Strip debug info from a PROGRAM, DLL or TEST. -### This macro doesn't work in LIBRARY's, UNION's and PACKAGE's. -macro STRIP() { - ENABLE(STRIP) -} - -### @usage: NO_OPTIMIZE() -### Build code without any optimizations (-O0 mode). -macro NO_OPTIMIZE() { - ENABLE(NO_OPTIMIZE) -} - -#TODO(YMAKE-91) read proper compile flags instead of sending explicit flags to semgraph directly -_SEM_EXTRA_CXX_FLAGS= - -### @usage: NO_COMPILER_WARNINGS() -### Disable all compiler warnings in the module. -### Priorities: NO_COMPILER_WARNINGS > NO_WERROR > WERROR_MODE > WERROR. -macro NO_COMPILER_WARNINGS() { - ENABLE(NO_COMPILER_WARNINGS) - SET(_SEM_EXTRA_CXX_FLAGS "$<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>") -} - -### @usage: WERROR() -### Consider warnings as errors in the current module. -### In the bright future will be removed, since WERROR is the default. -### Priorities: NO_COMPILER_WARNINGS > NO_WERROR > WERROR_MODE > WERROR. -macro WERROR() { - ENABLE(WERROR) -} - -### @usage: NO_WERROR() -### Override WERROR() behavior -### Priorities: NO_COMPILER_WARNINGS > NO_WERROR > WERROR_MODE > WERROR. -macro NO_WERROR() { - DISABLE(WERROR) -} - -### @usage: NO_WSHADOW() -### Disable C++ shadowing warnings. -macro NO_WSHADOW() { - ENABLE(NO_WSHADOW) -} - -# tag:internal -### @usage: NO_PLATFORM_RESOURCES() # internal -### Exclude dependency on platform resources libraries. -### Most probably you'll never need this. If you think you need, please contact devtools@ for assistance. -macro NO_PLATFORM_RESOURCES() { - ENABLE(NOPLATFORM_RESOURCES) -} - -# tag:internal tag:codenav -### @usage: NO_CODENAVIGATION() # internal -### Disable codenaviagtion for a module. Needed to avoid PEERDIR loops in codenavigation support. -### Most probably you'll never need this. If you think you need, please contact devtools@ for assistance. -macro NO_CODENAVIGATION() { - ENABLE(NOCODENAVIGATION) -} - -### @usage: NO_UTIL() -### Build module without dependency on util. -### Note: use this with care. Util most likely will be linked into executable anyway, -### so using util headers/functions/classes may not be detected at build time and may lead to unpredictable behavors at configure time. -macro NO_UTIL() { - ENABLE(NOUTIL) -} - -### @usage: NO_RUNTIME() -### -### This macro: -### 1. Sets the ENABLE(NOUTIL) + DISABLE(USE_INTERNAL_STL); -### 2. If the project that contains the macro NO_RUNTIME(), peerdir-it project does not contain NO_RUNTIME() => Warning. -### Note: use this with care. Arcadia STL most likely will be linked into executable anyway, so using STL headers/functions/classes -### may not be detected at build time and may lead to unpredictable behavors at configure time. -macro NO_RUNTIME() { - SET(USE_ARCADIA_LIBM no) - NO_UTIL() - ENABLE(NORUNTIME) -} - -### @usage: NO_LIBC() -### -### Exclude dependencies on C++ and C runtimes (including util, musl and libeatmydata). -### Note: use this with care. libc most likely will be linked into executable anyway, -### so using libc headers/functions may not be detected at build time and may lead to unpredictable behavors at configure time. -macro NO_LIBC() { - NO_RUNTIME() - DISABLE(MUSL) -} - -### @usage: NO_PLATFORM() -### -### Exclude dependencies on C++ and C runtimes (including util, musl and libeatmydata) and set NO_PLATFORM variable for special processing. -### Note: use this with care. libc most likely will be linked into executable anyway, -### so using libc headers/functions may not be detected at build time and may lead to unpredictable behavors at configure time. -macro NO_PLATFORM() { - NO_LIBC() - ENABLE(NOPLATFORM) -} - -# tag:cpp-specific -### @usage: USE_CXX() -### -### Add dependency on C++ runtime -### Note: This macro is inteneded for use in _GO_BASE_UNIT like module when the module is built without C++ runtime by default -macro USE_CXX() { - DISABLE(NORUNTIME) -} - -### @usage: USE_UTIL() -### -### Add dependency on util and C++ runtime -### Note: This macro is intended for use in _GO_BASE_UNIT like module when the module is build without util by default -macro USE_UTIL() { - USE_CXX() - DISABLE(NOUTIL) -} - -# tag:deprecated -### @usage: NO_JOIN_SRC() # deprecated, does-nothing -### This macro currently does nothing. This is default behavior which cannot be overridden at module level. -macro NO_JOIN_SRC() { - ENABLE(UNUSED_MACRO) -} - -# tag:sanitize -### @usage: NO_SANITIZE() -### -### Disable all sanitizers for the module. -macro NO_SANITIZE() { - DISABLE(SANITIZER_TYPE) -} - -# tag:coverage tag:sanitize -### @usage: NO_SANITIZE_COVERAGE() -### -### Disable lightweight coverage (-fsanitize-coverage) for the module. -### Sanitize coverage is commonly used with fuzzing. -### It might be useful to disable it for libraries that should never -### be the main targets for fuzzing, like libfuzzer library itself. -### Sanitize coverage instrumentation is enabled by the --sanitize-coverage option. -macro NO_SANITIZE_COVERAGE() { - DISABLE(SANITIZE_COVERAGE) -} - -# tag:coverage -### @usage: NO_CLANG_COVERAGE() -### -### Disable heavyweight clang coverage for the module. Clang coverage instrumentation is enabled by the --clang-coverage option. -macro NO_CLANG_COVERAGE() { - DISABLE(CLANG_COVERAGE) -} - -macro NO_CLANG_TIDY() { - DISABLE(TIDY_ENABLED) -} - -# tag:python-specific tag:coverage -### @usage: NO_PYTHON_COVERAGE() -### -### Disable python coverage for module -macro NO_PYTHON_COVERAGE() { - DISABLE(PYTHON_COVERAGE) -} - -# tag:python-specific tag:coverage tag:cython -### @usage: NO_CYTHON_COVERAGE() -### -### Disable cython and cythonized python coverage (CYTHONIZE_PY) -### Implies NO_CLANG_COVERAGE() - right now, we can't disable instrumentation for .py.cpp files, but enable for .cpp -macro NO_CYTHON_COVERAGE() { - DISABLE(CYTHON_COVERAGE) - NO_CLANG_COVERAGE() -} - -# tag:lua-specific -LUAJIT_PATH=${ARCADIA_ROOT}/contrib/libs/luajit -macro _LUAJIT_OBJDUMP(Src, OUT="") { - .CMD=${cwd:LUAJIT_PATH} ${tool:"contrib/libs/luajit/compiler"} -b -g ${input:Src} ${output;noauto:OUT} ${kv;hide:"p LJ"} ${kv;hide:"pc light-cyan"} -} - -# tag:lua-specific -LUAJIT_21_PATH=${ARCADIA_ROOT}/contrib/libs/luajit_21 -macro _LUAJIT_21_OBJDUMP(Src, OUT="") { - .CMD=${cwd:LUAJIT_21_PATH} ${tool:"contrib/libs/luajit_21/compiler"} -b -g ${input:Src} ${output;noauto:OUT} ${kv;hide:"p LJ"} ${kv;hide:"pc light-cyan"} -} - -macro _MX_BIN_TO_INFO(Src) { - .CMD=${tool:"tools/mx_bin2info"} ${input:Src} ${output;nopath;noext;noauto:Src.info} ${kv;hide:"p MX"} ${kv;hide:"pc yellow"} -} - -MX_GEN_TABLE_INCLS=${output_include;hide:"yabs_mx_calc_table.h"} \ -${output_include;hide:"kernel/matrixnet/mn_sse.h"} \ -${output_include;hide:"library/cpp/archive/yarchive.h"} \ -${output_include;hide:"util/memory/blob.h"} \ -${output_include;hide:"util/generic/hash.h"} \ -${output_include;hide:"util/generic/ptr.h"} \ -${output_include;hide:"util/generic/singleton.h"} - -macro _MX_GEN_TABLE(Srcs...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_mx_table.py"} $Srcs ${output;stdout:"mx_tables.cpp"} $MX_GEN_TABLE_INCLS ${kv;hide:"p MX"} ${kv;hide:"pc yellow"} - PEERDIR(kernel/matrixnet) - PEERDIR(library/cpp/archive) -} - -RELEV_FML_CODEGEN_INCLS=${output_include;hide:"kernel/relevfml/relev_fml.h"} ${output_include;hide:"library/cpp/sse/sse.h"} - -### @usage: GENERATE_ENUM_SERIALIZATION(File.h) -### -### Create serialization support for enumeration members defined in the header (String <-> Enum conversions) and compile it into the module. -### -### Documentation: https://wiki.yandex-team.ru/yatool/HowToWriteYaMakeFiles/ -macro GENERATE_ENUM_SERIALIZATION(File) { - .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;chksum;suf=_serialized.cpp:File} ${output_include;from_input;hide:File} ${output_include;hide:"util/generic/serialized_enum.h"} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} - .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser"} - PEERDIR(tools/enum_parser/enum_serialization_runtime) -} - -### @usage: GENERATE_ENUM_SERIALIZATION_WITH_HEADER(File.h) -### -### Create serialization support for enumeration members defined in the header (String <-> Enum conversions) and compile it into the module -### Provide access to serialization functions via generated header File_serialized.h -### -### Documentation: https://wiki.yandex-team.ru/yatool/HowToWriteYaMakeFiles/ -macro GENERATE_ENUM_SERIALIZATION_WITH_HEADER(File) { - .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;chksum;suf=_serialized.cpp:File} --header ${output;chksum;suf=_serialized.h:File} ${output_include;from_input;hide:File} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} - .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} GEN_HEADER ${output;suf=_serialized.h:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser"} - PEERDIR(tools/enum_parser/enum_serialization_runtime) -} - -### @usage: DEB_VERSION(File) -### -### Creates a header file DebianVersion.h define the DEBIAN_VERSION taken from the File. -macro DEB_VERSION(File) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/mkver.py"} ${input:File} ${output;stdout:"DebianVersion.h"} ${kv;hide:"p CL"} ${kv;hide:"pc yellow"} -} - -BUILD_MN_SCRIPT=build/scripts/build_mn.py - -# tag:matrixnet -### @usage: BUILD_MN([CHECK] [PTR] [MULTI] mninfo mnname) # matrixnet -### -### Generate MatrixNet data and access code using single command. -### Alternative macro BUILD_MNS() works faster and better for large files. -macro BUILD_MN(MnInfo, MnName, CHECK?"fml_tool=$FML_UNUSED_TOOL CHECK":"", MULTI?, PTR?, RANKING_SUFFIX="") { - .CMD=$YMAKE_PYTHON ${input:BUILD_MN_SCRIPT} BuildMnF $ARCADIA_ROOT $ARCH_TOOL ${input:MnInfo} $MnName ranking_suffix=$RANKING_SUFFIX ${output;chksum;pre=mn.:MnName.cpp} ${output;hide;pre=MN_External_;suf=.rodata:MnName} ${output_include;hide:"kernel/matrixnet/mn_sse.h"} $CHECK $MULTI $PTR ${kv;hide:"p MN"} ${kv;hide:"pc yellow"} -} - -macro _BUILD_MNS_FILE(Input, Name, Output, Suffix, Check, Fml_tool, AsmDataName) { - .CMD=$YMAKE_PYTHON ${input:BUILD_MN_SCRIPT} BuildMnsFilesF $ARCADIA_ROOT $BINDIR $ARCH_TOOL fml_tool=$Fml_tool $Name ranking_suffix=$Suffix ${input:Input} ${output;hide:Output} ${output;hide;pre=MN_External_;suf=.rodata:AsmDataName} ${output_include;hide:"kernel/matrixnet/mn_sse.h"} ${kv;hide:"p MN"} ${kv;hide:"pc yellow"} -} - -MNS_OUTPUT=mnmodels - -macro _BUILD_MNS_CPP(NAME="", CHECK?, RANKING_SUFFIX="", Files...) { - .CMD=$YMAKE_PYTHON ${input:BUILD_MN_SCRIPT} BuildMnsCppF $NAME ranking_suffix=$RANKING_SUFFIX ${input:MNS_OUTPUT.h} ${output:MNS_OUTPUT.cpp} ${input:Files} ${output_include;hide:MNS_OUTPUT.h} ${output_include;hide:"kernel/matrixnet/mn_sse.h"} ${kv;hide:"p MN"} ${kv;hide:"pc yellow"} -} - -macro _BUILD_MNS_HEADER(NAME="", CHECK?, RANKING_SUFFIX="", Files...) { - .CMD=$YMAKE_PYTHON ${input:BUILD_MN_SCRIPT} BuildMnsHeaderF $NAME ranking_suffix=$RANKING_SUFFIX ${output:MNS_OUTPUT.h} ${input:Files} ${output_include;hide:"kernel/matrixnet/mn_sse.h"} ${output_include;hide:"kernel/matrixnet/mn_multi_categ.h"} ${kv;hide:"p MN"} ${kv;hide:"pc yellow"} -} - -# TODO: support foreach_in and keywords simultaneous usage (look at BUILD_MNS_FILES) - -# tag:matrixnet -### @usage: BUILD_MNS([CHECK] NAME listname mninfos...) # matrixnet -### -### Generate MatrixNet data and access code using separate commands for support code, interface and data. -### Faster version of BUILD_MN() macro for large files. -macro BUILD_MNS(Files...) { - _BUILD_MNS_HEADER($Files) - _BUILD_MNS_CPP($Files) - _BUILD_MNS_FILES($Files) -} - -### @usage: COMPILE_NLG(nlg_config.json, [TRANSLATIONS_JSON translations.json], Src...) -### -### Generate and compile .nlg templates (Jinja2-based) and interface for megamind runtime in localized mode. -### -### Alice-specific macro -macro COMPILE_NLG(NLG_CONFIG_JSON, TRANSLATIONS_JSON="", Src...) { - when ($TRANSLATIONS_JSON) { - TRANSLATIONS_JSON_ARG=--translations-json - } - otherwise { - TRANSLATIONS_JSON_ARG= - } - PEERDIR(alice/nlg/library/runtime) - RUN_PROGRAM(alice/nlg/tools/codegen compile-cpp --import-dir ${ARCADIA_ROOT} --out-dir ${ARCADIA_BUILD_ROOT} --include-prefix ${MODDIR} --nlg-config-json ${NLG_CONFIG_JSON} ${TRANSLATIONS_JSON_ARG} ${TRANSLATIONS_JSON} ${Src} IN ${TRANSLATIONS_JSON} ${NLG_CONFIG_JSON} ${Src} OUT_NOAUTO register.cpp register.h translations.cpp translations.h localizable_phrases.pb.txt ${suf=.cpp:Src} ${suf=.h:Src} ${suf=.pb.txt:Src}) - SRCS(GLOBAL register.cpp translations.cpp ${suf=.cpp:Src}) -} - -### @usage: NEED_CHECK() -### -### Commits to the project marked with this macro will be blocked by pre-commit check and then will be -### automatically merged to trunk only if there is no new broken build targets in check results. -### The use of this macro is disabled by default. -macro NEED_CHECK(Flags...) { - # TODO: FIXME - ENABLE(UNUSED_MACRO) -} - -### @usage: NO_NEED_CHECK() -### -### Commits to the project marked with this macro will not be affected by higher-level NEED_CHECK macro. -macro NO_NEED_CHECK(Flags...) { - ENABLE(UNUSED_MACRO) -} - -# tag:deprecated -### @usage: NEED_REVIEW() # deprecated -### -### Mark the project as needing review. -### Reviewers are listed in the macro OWNER. The use of this macro is disabled by default. -### Details can be found here: https://clubs.at.yandex-team.ru/arcadia/6104 -macro NEED_REVIEW(Flags...) { - # TODO: FIXME - ENABLE(UNUSED_MACRO) -} - -### @usage: VERSION(Args...) -### -### Specify version of a module. Currently unused by build system, only informative. -macro VERSION(Flags...) { - ENABLE(UNUSED_MACRO) -} - -DATAWORK_SCHEEME_EXPORT_FLAGS= - -when ($UNIX == "yes") { - SCHEEME2_CFLAGS= -E -x c++ -} - -when ($WIN32 == "yes") { - SCHEEME2_CFLAGS= /E /TP -} - -SCHEEME2_STRUCT_INFO_FLAGS=-f "const static ui32 RecordSig" -u "RecordSig" --gcc44_no_typename --no_complex_overloaded_func_export -### @usage: GEN_SCHEEME2(scheeme_name from_file dependent_files...) -### -### Generates a C++ description for structure(contains the field RecordSig) in the specified file (and connected). -### -### 1. ${scheeme_name}.inc - the name of the generated file. -### 2. Use an environment variable - DATAWORK_SCHEEME_EXPORT_FLAGS that allows to specify flags to tools/structparser -### -### @example: -### -### SET(DATAWORK_SCHEEME_EXPORT_FLAGS --final_only -m "::") -### -### all options are passed to structparser (in this example --final_only - do not export heirs with public base that contains the required field,,- m "::" only from the root namespace) -### sets in extra option -### -### @example: -### -### SET(EXTRACT_STRUCT_INFO_FLAGS -f \"const static ui32 RecordSig\" -### -u \"RecordSig\" -n${scheeme_name}SchemeInfo ----gcc44_no_typename no_complex_overloaded_func_export -### ${DATAWORK_SCHEEME_EXPORT_FLAGS}) -### -### for compatibility with C++ compiler and the external environment. -### See tools/structparser for more details. -macro GEN_SCHEEME2(ScheemeName, FromFile) { - .CMD=$CXX_COMPILER $C_FLAGS_PLATFORM -c ${tmp;stdout:FromFile.cph} $SCHEEME2_CFLAGS ${input:FromFile} ${pre=-I:_C__INCLUDE} $CXXFLAGS -Wno-error && ${tool:"tools/structparser"} -o ${output:ScheemeName.inc} -n N${ScheemeName}SchemeInfo $SCHEEME2_STRUCT_INFO_FLAGS $DATAWORK_SCHEEME_EXPORT_FLAGS ${tmp:FromFile.cph} ${output;stdout;noauto:ScheemeName.inc.log} ${kv;hide:"p SH"} ${kv;hide:"pc yellow"} -} - -### @usage: SYMLINK(from to) -### Add symlink -macro SYMLINK(From, To) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/symlink.py"} ${input;dirallowed:From} ${output;noauto:To} ${kv;hide:"p LN"} ${kv;hide:"pc light-cyan"} -} - -# tag:internal -### @usage: _TARGET_SOURCES_FOR_HEADERS_IMPL([GENERATE] Args...) # internal -### Generate prefix " && target_sources PRIVATE " before $Args when GENERATE is specified in the list of actual arguments -macro _TARGET_SOURCES_FOR_HEADERS_IMPL(GENERATE?" && target_sources PRIVATE ":"", Args...) { - .SEM=$GENERATE ${output;ext=.h:Args} ${output;ext=.hh:Args} ${output;ext=.hpp:Args} ${output;ext=.inc:Args} ${output;ext=.i:Args} -} - -# tag:internal -### @usage: _TARGET_SOURCES_FOR_HEADERS(Args...) # internal -### Generate prefix " && target_sources PRIVATE " before $Args if Args is not empty -macro _TARGET_SOURCES_FOR_HEADERS(Args...) { - .SEM=$_TARGET_SOURCES_FOR_HEADERS_IMPL(${pre=GENERATE :Args}) -} - -# tag:internal -### @usage: _TARGET_SOURCES_FOR_HEADERS_IMPL([GENERATE] Args...) # internal -### Generate prefix " ${CMAKE_COMMAND} -E env " before $Args when GENERATE is specified in the list of actual arguments -macro _SET_ENV_FOR_CUSTOM_COMMAND_IMPL(GENERATE?" ${CMAKE_COMMAND} -E env ":"", Args...) { - .SEM=$GENERATE ${pre= :Args} -} - -# tag:internal -### @usage: _SET_ENV_FOR_CUSTOM_COMMAND(Args...) # internal -### Generate prefix " ${CMAKE_COMMAND} -E env " before $Args if Args is not empty -macro _SET_ENV_FOR_CUSTOM_COMMAND(Args...) { - .SEM=$_SET_ENV_FOR_CUSTOM_COMMAND_IMPL(${pre=GENERATE :Args}) -} - - -macro _FMT_INDUCED_DEPS(For, Deps...) { - .CMD=${induced_deps=$For;hide:Deps} -} - - -### @usage: PREPARE_INDUCED_DEPS(VAR Type Files...) -### -### Format value for `INDUCED_DEPS` param in certain macros and assign to `VAR` -### This tells that files of Type resulted from code generation macros (not neccessarily directly, -### but in processing chain of generated files) should have extra dependencies from list of Files... -### -### Prominent example here is Cython: one can generate .pyx file that may depend on .pxd and have cimpot from -### certain .h. The former is dependency for .pyx itself, while the latter is dependency for .pyx.cpp -### resulted from Cython-processing of generated pyx. The code ganeration will look like: -### ``` -### PREPARE_INDUCED_DEPS(PYX_DEPS pyx imported.pxd) -### PREPARE_INDUCED_DEPS(CPP_DEPS cpp cdefed.h) -### RUN_PYTHON3(generate_pyx.py genereted.pyx OUT generated.pyx INDUCED_DEPS $PYX_DEPS $CPP_DEPS) -### ``` -### -### The VAR will basically contain pair of `Type:[Files...]` in a form suitable for passing -### as an element of array parameter. This is needed because language of ya.make doesn't support -### Dict params right now and so it is impossible to directly pass something -### like `{Type1:[Files2...], Type2:[Files2...]}` -### -macro PREPARE_INDUCED_DEPS(VAR, For, Deps...) { - SET($VAR \$_FMT_INDUCED_DEPS($For $Deps)) -} - -### @usage: RUN_PROGRAM(tool_path args... [CWD dir] [ENV key=value...] [TOOL tools...] [IN[_NOPARSE] inputs...] [OUT[_NOAUTO] outputs...] [STDOUT[_NOAUTO] output] [OUTPUT_INCLUDES output_includes...] [INDUCED_DEPS $VARs...]) -### -### Run a program from arcadia. -### These macros are similar: RUN_PROGRAM, RUN_LUA, PYTHON. -### -### Parameters: -### - tool_path - Path to the directory of the tool. -### - args... - Program arguments. Relative paths listed in TOOL, IN, OUT, STDOUT become absolute. -### - CWD dir - Absolute path of the working directory. -### - ENV key=value... - Environment variables. -### - TOOL tools... - Auxiliary tool directories. -### - IN[_NOPARSE] inputs... - Input files. NOPARSE inputs are treated as textual and not parsed for dependencies regardless of file extensions. -### - OUT[_NOAUTO] outputs... - Output files. NOAUTO outputs are not automatically added to the build process. -### - STDOUT[_NOAUTO] output - Redirect the standard output to the output file. -### - OUTPUT_INCLUDES output_includes... - Includes of the output files that are needed to build them. -### - INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) and set of dependencies -### -### For absolute paths use ${ARCADIA_ROOT} and ${ARCADIA_BUILD_ROOT}, or -### ${CURDIR} and ${BINDIR} which are expanded where the outputs are used. -### Note that Tool is always built for the host platform, so be careful to provide that tool can be built for all Arcadia major host platforms (Linux, MacOS and Windows). -macro RUN_PROGRAM(Tool, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], IN_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) { - .CMD=${cwd:CWD} ${env:ENV} ${tool:Tool} $Args ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${input;hide:IN_DEPS} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${tool;hide:TOOL} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${output;stdout:STDOUT} ${output;stdout;noauto:STDOUT_NOAUTO} ${kv;hide:"p PR"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - .SEM=add_custom_command $_SET_ENV_FOR_CUSTOM_COMMAND($ENV) OUTPUT ${output:OUT} ${output;noauto:OUT_NOAUTO} ${output:STDOUT} ${output;noauto:STDOUT_NOAUTO} DEPENDS ${input:IN} ${input;context=TEXT:IN_NOPARSE} ${tool:Tool} ${tool:TOOL} ${pre=WORKING_DIRECTORY :CWD} COMMAND ${tool:Tool} $Args ${pre=> :STDOUT} ${pre=> :STDOUT_NOAUTO} $_TARGET_SOURCES_FOR_HEADERS($OUT $OUT_NOAUTO $STDOUT $STDOUT_NOAUTO) -} - -# tag:lua-specific -### @usage: RUN_LUA(script_path args... [CWD dir] [ENV key=value...] [TOOL tools...] [IN[_NOPARSE] inputs...] [OUT[_NOAUTO] outputs...] [STDOUT[_NOAUTO] output] [OUTPUT_INCLUDES output_includes...] [INDUCED_DEPS $VARs...]) -### -### Run a lua script. -### These macros are similar: RUN_PROGRAM, RUN_LUA, PYTHON. -### -### Parameters: -### - script_path - Path to the script.3 -### - args... - Program arguments. Relative paths listed in TOOL, IN, OUT, STDOUT become absolute. -### - CWD dir - Absolute path of the working directory. -### - ENV key=value... - Environment variables. -### - TOOL tools... - Auxiliary tool directories. -### - IN[_NOPARSE] inputs... - Input files. NOPARSE inputs are treated as textual and not parsed for dependencies regardless of file extensions. -### - OUT[_NOAUTO] outputs... - Output files. NOAUTO outputs are not automatically added to the build process. -### - STDOUT[_NOAUTO] output - Redirect the standard output to the output file. -### - OUTPUT_INCLUDES output_includes... - Includes of the output files that are needed to build them. -### - INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) and set of dependencies -### -### For absolute paths use ${ARCADIA_ROOT} and ${ARCADIA_BUILD_ROOT}, or -### ${CURDIR} and ${BINDIR} which are expanded where the outputs are used. -macro RUN_LUA(ScriptPath, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) { - .CMD=${cwd:CWD} ${env:ENV} $LUA_TOOL ${input:ScriptPath} $Args ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${tool;hide:TOOL} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${output;stdout:STDOUT} ${output;stdout;noauto:STDOUT_NOAUTO} ${kv;hide:"p LU"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} -} - -# tag:python-specific -### @usage: PYTHON(script_path args... [CWD dir] [ENV key=value...] [TOOL tools...] [IN[_NOPARSE] inputs...] [OUT[_NOAUTO] outputs...] [STDOUT[_NOAUTO] output] [OUTPUT_INCLUDES output_includes...] [INDUCED_DEPS $VARs...]) -### -### Run a python script with $(PYTHON)/python built from devtools/huge_python. -### These macros are similar: RUN_PROGRAM, RUN_LUA, PYTHON. -### -### Parameters: -### - script_path - Path to the script. -### - args... - Program arguments. Relative paths listed in TOOL, IN, OUT, STDOUT become absolute. -### - CWD dir - Absolute path of the working directory. -### - ENV key=value... - Environment variables. -### - TOOL tools... - Auxiliary tool directories. -### - IN[_NOPARSE] inputs... - Input files. NOPARSE inputs are treated as textual and not parsed for dependencies regardless of file extensions. -### - OUT[_NOAUTO] outputs... - Output files. NOAUTO outputs are not automatically added to the build process. -### - STDOUT[_NOAUTO] output - Redirect the standard output to the output file. -### - OUTPUT_INCLUDES output_includes... - Includes of the output files that are needed to build them. -### - INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) and set of dependencies -### -### For absolute paths use ${ARCADIA_ROOT} and ${ARCADIA_BUILD_ROOT}, or -### ${CURDIR} and ${BINDIR} which are expanded where the outputs are used. -macro PYTHON(ScriptPath, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) { - .CMD=${cwd:CWD} ${env:ENV} $YMAKE_PYTHON ${input:ScriptPath} $Args ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${tool;hide:TOOL} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${output;stdout:STDOUT} ${output;stdout;noauto:STDOUT_NOAUTO} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - .SEM=find_package Python2 && add_custom_command $_SET_ENV_FOR_CUSTOM_COMMAND($ENV) OUTPUT ${output:OUT} ${output;noauto:OUT_NOAUTO} ${output:STDOUT} ${output;noauto:STDOUT_NOAUTO} DEPENDS ${input:IN} ${input;context=TEXT:IN_NOPARSE} ${input:ScriptPath} ${tool:TOOL} ${pre=WORKING_DIRECTORY :CWD} COMMAND Python2::Interpreter ${input:ScriptPath} $Args ${pre=> :STDOUT} ${pre=> :STDOUT_NOAUTO} $_TARGET_SOURCES_FOR_HEADERS($OUT $OUT_NOAUTO $STDOUT $STDOUT_NOAUTO) -} - -# tag:python-specific -### @usage: RUN_PYTHON3(script_path args... [CWD dir] [ENV key=value...] [TOOL tools...] [IN[_NOPARSE] inputs...] [OUT[_NOAUTO] outputs...] [STDOUT[_NOAUTO] output] [OUTPUT_INCLUDES output_includes...] [INDUCED_DEPS $VARs...]) -### -### Run a python script with prebuilt python3 interpretor built from devtools/huge_python3. -### These macros are similar: RUN_PROGRAM, RUN_LUA, PYTHON. -### -### Parameters: -### - script_path - Path to the script. -### - args... - Program arguments. Relative paths listed in TOOL, IN, OUT, STDOUT become absolute. -### - CWD dir - Absolute path of the working directory. -### - ENV key=value... - Environment variables. -### - TOOL tools... - Auxiliary tool directories. -### - IN[_NOPARSE] inputs... - Input files. NOPARSE inputs are treated as textual and not parsed for dependencies regardless of file extensions. -### - OUT[_NOAUTO] outputs... - Output files. NOAUTO outputs are not automatically added to the build process. -### - STDOUT[_NOAUTO] output - Redirect the standard output to the output file. -### - OUTPUT_INCLUDES output_includes... - Includes of the output files that are needed to build them. -### - INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) and set of dependencies -### -### For absolute paths use ${ARCADIA_ROOT} and ${ARCADIA_BUILD_ROOT}, or -### ${CURDIR} and ${BINDIR} which are expanded where the outputs are used. -macro RUN_PYTHON3(ScriptPath, IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], TOOL{tool}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], Args...) { - .CMD=${cwd:CWD} ${env:ENV} $YMAKE_PYTHON3 ${input:ScriptPath} $Args ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${tool;hide:TOOL} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${output;stdout:STDOUT} ${output;stdout;noauto:STDOUT_NOAUTO} ${kv;hide:"p PY"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - .SEM=find_package Python3 && add_custom_command $_SET_ENV_FOR_CUSTOM_COMMAND($ENV) OUTPUT ${output:OUT} ${output;noauto:OUT_NOAUTO} ${output:STDOUT} ${output;noauto:STDOUT_NOAUTO} DEPENDS ${input:IN} ${input;context=TEXT:IN_NOPARSE} ${input:ScriptPath} ${tool:TOOL} ${pre=WORKING_DIRECTORY :CWD} COMMAND Python3::Interpreter ${input:ScriptPath} $Args ${pre=> :STDOUT} ${pre=> :STDOUT_NOAUTO} $_TARGET_SOURCES_FOR_HEADERS($OUT $OUT_NOAUTO $STDOUT $STDOUT_NOAUTO) -} - -# tag:java-specific -macro _RUN_JAVA(IN{input}[], IN_NOPARSE{input}[], OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], TOOL[], STDOUT="", STDOUT_NOAUTO="", CWD="", ENV[], HIDE_OUTPUT?"stderr2stdout":"stdout2stderr", Args...) { - PEERDIR(build/platform/java/jdk $JDK_RESOURCE_PEERDIR) - .CMD=${cwd:CWD} ${env:ENV} $YMAKE_PYTHON ${input;pre=build/scripts/:HIDE_OUTPUT.py} $JDK_RESOURCE/bin/java $Args ${tool;hide:TOOL} ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${output;stdout:STDOUT} ${output;stdout;noauto:STDOUT_NOAUTO} ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} -} - -### @usage: FROM_SANDBOX([FILE] resource_id [AUTOUPDATED script] [RENAME <resource files>] OUT_[NOAUTO] <output files> [EXECUTABLE] [OUTPUT_INCLUDES <include files>] [INDUCED_DEPS $VARs...]) -### -### Download the resource from the Sandbox, unpack (if not explicitly specified word FILE) and add OUT files to the build. EXECUTABLE makes them executable. -### You may specify extra dependencies that output files bring using OUTPUT_INCLUDES or INDUCED_DEPS. The change of these may e.g. lead to recompilation of .cpp files extracted from resource. -### If there is no default processing for OUT files or you need process them specially use OUT_NOAUTO instead of OUT. -### -### It is disallowed to specify directory as OUT/OUT_NOAUTO since all outputs of commands shall be known to build system. -### -### RENAME renames files to the corresponding OUT and OUT_NOAUTO outputs: -### FROM_SANDBOX(resource_id RENAME in_file1 in_file2 OUT out_file1 out_file2 out_file3) -### FROM_SANDBOX(resource_id RENAME in_file1 OUT out_file1 RENAME in_file2 OUT out_file2) -### FROM_SANDBOX(FILE resource_id RENAME resource_file OUT out_name) -### -### RENAME RESOURCE allows to rename the resource without specifying its file name. -### -### OUTPUT_INCLUDES output_includes... - Includes of the output files that are needed to build them. -### INDUCED_DEPS $VARs... - Dependencies for generated files. Unlike `OUTPUT_INCLUDES` these may target files further in processing chain. -### In order to do so VAR should be filled by PREPARE_INDUCED_DEPS macro, stating target files (by type) and set of dependencies -### -### If AUTOUPDATED is specified than macro will be regularly updated according to autoupdate script. The dedicated Sandbox task scans the arcadia and -### changes resource_ids in such macros if newer resource of specified type is available. Note that the task seeks AUTOUPDATED in specific position, -### so you shall place it immediately after resource_id. -macro FROM_SANDBOX(Id, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], FILE?"--copy-to-dir":"--untar-to", AUTOUPDATED="", PREFIX=".", RENAME[], EXECUTABLE?"--executable":"", SBR="sbr:") { - .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$SBR:Id} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_sandbox.py"} --resource-file $(RESOURCE_ROOT)/sbr/$Id/resource --resource-id $Id $FILE $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${input;hide:"build/scripts/fetch_from.py"} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${requirements;hide:"network:full"} ${kv;hide:"p SB"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - ADD_CHECK(check.resource $Id) -} - -### @usage: FROM_MDS([FILE] key [RENAME <resource files>] OUT_[NOAUTO] <output files> [EXECUTABLE] [OUTPUT_INCLUDES <include files>] [INDUCED_DEPS $VARs...]) -### -### Download resource from MDS with the specified key and process like [FROM_SANDBOX()](#macro_FROM_SANDBOX). -macro FROM_MDS(Key, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], FILE?"--copy-to-dir":"--untar-to", PREFIX=".", RENAME[], EXECUTABLE?"--executable":"") { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_mds.py"} --key $Key $FILE $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${input;hide:"build/scripts/fetch_from.py"} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${requirements;hide:"network:full"} ${kv;hide:"p MD"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - ADD_CHECK(check.mds $Key) -} - -# tag:internal -### @usage: _FROM_EXTERNAL(ExtFile [AUTOUPDATED script] [RENAME <resource files>] OUT_[NOAUTO] <output files> [EXECUTABLE]) #internal -### -### Use resource described as .external file as [FROM_SANDBOX()](#macro_FROM_SANDBOX)/[FROM_MDS()](#macro_FROM_MDS). -macro _FROM_EXTERNAL(File, OutFile, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], AUTOUPDATED="", PREFIX=".", RENAME[], EXECUTABLE?"--executable":"", EXT="ext:") { - .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$EXT;suf=.external:OutFile} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_external.py"} --external-file ${input:File} --resource-file $(RESOURCE_ROOT)/ext/$OutFile --copy-to-dir $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${input;hide:"build/scripts/fetch_from.py"} ${input;hide:"build/scripts/fetch_from_sandbox.py"} ${input;hide:"build/scripts/fetch_from_mds.py"} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${requirements;hide:"network:full"} ${kv;hide:"p XT"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - -#FIXME: add '${resource;pre=$EXT:OutFile}' when support of the scheme is added to executors -#FIXME: add 'ADD_CHECK(check.external $File)' when proper testing is implemented -} - -### @usage LARGE_FILES([AUTOUPDATED] Files...) -### -### Use large file ether from working copy or from remote storage via placeholder <File>.external -### If <File> is present locally (and not a symlink!) it will be copied to build directory. -### Otherwise macro will try to locate <File>.external, parse it retrieve ot during build phase. -macro LARGE_FILES(AUTOUPDATED?, Files...) { - # This is needed to correctly switch between remote and local modes - _GLOB($LF $Files) -} - - -### @usage: FROM_ARCHIVE(Src [RENAME <resource files>] OUT_[NOAUTO] <output files> [EXECUTABLE] [OUTPUT_INCLUDES <include files>] [INDUCED_DEPS $VARs...]) -### -### Process file archive as [FROM_SANDBOX()](#macro_FROM_SANDBOX). -macro FROM_ARCHIVE(Src, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], INDUCED_DEPS[], PREFIX=".", RENAME[], EXECUTABLE?"--executable":"") { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_archive.py"} "--archive" ${input:Src} "--file-name" ${suf=-:Src} "--untar-to" $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${input;hide:"build/scripts/fetch_from.py"} ${output_include;hide:OUTPUT_INCLUDES} $INDUCED_DEPS ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${kv;hide:"p FA"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} -} - -when ($MSVC == "yes") { - C_AS_CXX_FLAGS=/TP /std:c++17 -} -otherwise { - C_AS_CXX_FLAGS=-x c++ -std=c++17 -} - -# tag:cpp-specific -### @usage: COMPILE_C_AS_CXX() -### -### Compile .c files as .cpp ones within a module. -macro COMPILE_C_AS_CXX() { - SET(EXTRA_C_FLAGS $C_AS_CXX_FLAGS) -} - -### @usage: NO_DEBUG_INFO() -### -### Compile files without debug info collection. -macro NO_DEBUG_INFO() { - SET(NO_DEBUGINFO yes) -} - -### @usage: CTEMPLATE_VARNAMES(File) -### -### Generate File.varnames.h using contrib/libs/ctemplate/make_tpl_varnames_h -### -### Documentation: https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/ctemplate/README.md -macro CTEMPLATE_VARNAMES(File) { - .CMD=${tool:"contrib/libs/ctemplate/make_tpl_varnames_h"} -f ${output;addincl;nopath;noallext:File.varnames.h} ${input:File} -} - -LLVM_OPTS= -CLANG_ROOT=$CLANG_RESOURCE_GLOBAL -CLANG_BINARIES_ROOT=$CLANG_ROOT/bin -CLANG_CPP_COMPILER_BIN=$CLANG_BINARIES_ROOT/clang++ -CLANG_C_COMPILER_BIN=$CLANG_BINARIES_ROOT/clang -CLANG_EMIT_EXTRA_OPTS= - -when ($OS_WINDOWS == "yes") { - # we can't use c++latest for clang14 now - # so we set c++20 for it - # for clang11 (actual clang for CLANG_EMIT_AST_CXX and LLVM_COMPILE_* macroses) /std:c++20 provokes "unused-command-line-argument" error - # !do not forget to change this flag when updating build/platform/clang - CLANG_EMIT_EXTRA_OPTS+=/std:c++latest -} - -when ($OS_ANDROID == "yes") { - CLANG_ROOT=$CLANG_ANDROID_RESOURCE_GLOBAL - when ($HOST_OS_DARWIN) { - CLANG_BINARIES_ROOT=$CLANG_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/bin - } - otherwise { - CLANG_BINARIES_ROOT=$CLANG_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin - } -} - -### @usage: GENERATED_SRCS(srcs... PARSE_META_FROM cpp_srcs... [OUTPUT_INCLUDES output_includes...] [OPTIONS]) -### -### Generate sources using Jinja 2 template engine. -### -### srcs... - list of text files which will be generated during build time by templates. Each template must be -### placed to the place in source tree where corresponding source file should be generated. Name of -### template must be "<name_of_src_file>.markettemplate". For example if you want to generate file "example.cpp" -### then template should be named "example.cpp.markettemplate". -### PARSE_META_FROM cpp_srcs... - list of C++ source files (.cpp, .h) which will be parsed using clang library -### and metainformation extracted from the files will be made available for templates. Example of -### template code fragment using metainformation: {{ meta.objects["@N@std@S@string"].name }} -### OUTPUT_INCLUDES output_includes... - in cases when build system parser fails to determine all headers -### which generated files include, you can specify additional headers here. In a normal situation this should -### not be needed and this feature could be removed in the future. -### OPTIONS - additional options for code_generator utility -### -### Examples of templates can be found in directory market/tools/code_generator/templates. -### Metainformation does not contain entries for every object declared in C++ files specified in PARSE_META_FROM -### parameter. To include some object into consideration you need to mark it by attribute. Attributes can -### automatically add more attributes to dependent objects. This behavior depends on attribute definition. -### -### More information will be available (eventually:) here: https://wiki.yandex-team.ru/Users/denisk/codegenerator/ -macro GENERATED_SRCS(PARSE_META_FROM{input}[], OUTPUT_INCLUDES[], OPTIONS[], TEMPLATES...) { - .CMD=${tool:"market/tools/code_generator"} --cpp-file ${input:PARSE_META_FROM} --templates-dir / ${ARCADIA_ROOT} --templates ${input:TEMPLATES.markettemplate} --generated-files ${output:TEMPLATES} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;from_input;hide:PARSE_META_FROM} --arcadia-root ${ARCADIA_ROOT} --arcadia-build-root ${ARCADIA_BUILD_ROOT} --clang-root $CLANG_ROOT ${OPTIONS} -- $C_FLAGS_PLATFORM $CXXFLAGS ${pre=-I:_C__INCLUDE} -std=c++17 -Wno-unknown-warning-option -Wno-unused-parameter -Wno-undefined-inline -Wno-undefined-internal -Wno-unused-function $LLVM_OPTS -fno-lto $CLANG_EMIT_EXTRA_OPTS - PEERDIR(build/platform/clang) -} - -### @usage: CLANG_EMIT_AST_CXX(Input Output Opts...) -### -### Emit Clang AST from .cpp file. CXXFLAGS and LLVM_OPTS are passed in, while CFLAGS and C_FLAGS_PLATFORM are not. -### Note: Output name is used as is, no extension added. -macro CLANG_EMIT_AST_CXX(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS $CLANG_CPP_COMPILER_BIN ${pre=-I:_C__INCLUDE} $CXXFLAGS $C_FLAGS_PLATFORM -Wno-unknown-warning-option $LLVM_OPTS -emit-ast -c ${input:Input} -o ${output;noauto:Output} $Opts $CLANG_EMIT_EXTRA_OPTS ${kv;hide:"p ST"} ${kv;hide:"pc light-green"} - PEERDIR(build/platform/clang) -} - -### @usage: LLVM_COMPILE_CXX(Input Output Opts...) -### -### Emit LLVM bytecode from .cpp file. BC_CXXFLAGS, LLVM_OPTS and C_FLAGS_PLATFORM are passed in, while CFLAGS are not. -### Note: Output name is used as is, no extension added. -macro LLVM_COMPILE_CXX(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS $CLANG_CPP_COMPILER_BIN ${pre=-I:_C__INCLUDE} $BC_CXXFLAGS $C_FLAGS_PLATFORM -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${output;noauto:Output} $Opts $CLANG_EMIT_EXTRA_OPTS ${kv;hide:"p BC"} ${kv;hide:"pc light-green"} - .SEM=llvm_compile_cxx ${input:Input} ${output;noauto:Output} ${"${CLANGPLUSPLUS}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts} - PEERDIR(build/platform/clang) -} - -### @usage: LLVM_COMPILE_C(Input Output Opts...) -### -### Emit LLVM bytecode from .c file. BC_CFLAGS, LLVM_OPTS and C_FLAGS_PLATFORM are passed in, while CFLAGS are not. -### Note: Output name is used as is, no extension added. -macro LLVM_COMPILE_C(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS $CLANG_C_COMPILER_BIN ${pre=-I:_C__INCLUDE} $BC_CFLAGS $C_FLAGS_PLATFORM $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${output;noauto:Output} $Opts $CLANG_EMIT_EXTRA_OPTS ${kv;hide:"p BC"} ${kv;hide:"pc light-green"} - .SEM=llvm_compile_c ${input:Input} ${output;noauto:Output} ${"${CLANGC}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts} - PEERDIR(build/platform/clang) -} - -### @usage: BPF(Input Output Opts...) -### -### Emit eBPF bytecode from .c file. -### Note: Output name is used as is, no extension added. -macro BPF(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS $CLANG_C_COMPILER_BIN ${pre=-I:_C__INCLUDE} $C_FLAGS_PLATFORM -target bpf -c ${input:Input} -o ${output;noauto:Output} $Opts $CLANG_EMIT_EXTRA_OPTS ${kv;hide:"p BP"} ${kv;hide:"pc light-green"} - PEERDIR(build/platform/clang) -} - -LD_BINARY_NAME=ld -when($OS_LINUX) { - LD_BINARY_NAME=ld.lld -} - -### @usage: BPF_STATIC(Input Output Opts...) -### -### Emit eBPF bytecode from .c file. -### Note: Output name is used as is, no extension added. -macro BPF_STATIC(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS $CLANG_C_COMPILER_BIN ${pre=-I:_C__INCLUDE} $C_FLAGS_PLATFORM -target bpf -c ${input:Input} -o ${output;noauto:Output} $Opts $CLANG_EMIT_EXTRA_OPTS ${kv;hide:"p BP"} ${kv;hide:"pc light-green"} && ${cwd:BINDIR} $LLD_ROOT_RESOURCE_GLOBAL/$LD_BINARY_NAME -r -b binary -m elf_x86_64 -o ${output;noauto;suf=.bpf.o:Input} ${noauto;nopath:Output} - PEERDIR(build/platform/clang build/platform/lld) -} - -### @usage: LLVM_COMPILE_LL(Input Output Opts...) -### -### Compile LLVM bytecode to object representation. -### Note: Output name is used as is, no extension added. -macro LLVM_COMPILE_LL(Input, Output, Opts...) { - .CMD=$CLANG_BINARIES_ROOT/llvm-as ${input:Input} -o ${output;noauto:Output} ${kv;hide:"p BC"} ${kv;hide:"pc light-green"} - PEERDIR(build/platform/clang) -} - -### @usage: LLVM_LINK(Output Inputs...) -### -### Call llvm-link on set of Inputs to produce Output. -### Note: Unlike many other macros output argument goes first. Output name is used as is, no extension added. -macro LLVM_LINK(Output, Inputs...) { - .CMD=$CLANG_BINARIES_ROOT/llvm-link ${input:Inputs} -o ${output;noauto:Output} ${kv;hide:"p LD"} ${kv;hide:"pc light-red"} - .SEM=add_custom_command OUTPUT ${output;noauto:Output} DEPENDS ${input:Inputs} COMMAND ${LLVMLINK} ${input:Inputs} -o ${output;noauto:Output} - PEERDIR(build/platform/clang) -} - -### @usage: LLVM_OPT(Input Output Opts...) -### -### Call llvm-opt with set of Opts on Input to produce Output. -### Note: Output name is used as is, no extension added. -macro LLVM_OPT(Input, Output, Opts...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/llvm_opt_wrapper.py"} $CLANG_BINARIES_ROOT/opt ${input:Input} -o ${output;noauto:Output} $Opts ${kv;hide:"p OP"} ${kv;hide:"pc yellow"} - .SEM=add_custom_command OUTPUT ${output;noauto:Output} DEPENDS ${input:Input} COMMAND ${LLVMOPT} ${input:Input} -o ${output;noauto:Output} $Opts - PEERDIR(build/platform/clang) -} - -when ($NO_DEBUGINFO == "yes") { - DEBUG_INFO_FLAGS= -} - -when ($CLANG && $DEBUGINFO_LINES_ONLY == "yes" && $NO_DEBUGINFO != "yes") { - DEBUG_INFO_FLAGS=-gline-tables-only -} - -# TODO: configurable tar and touch -PACK_TGZ=${cwd:ARCADIA_BUILD_ROOT} tar -czf ${rootrel:OUTPUT} ${rootrel:INPUT} ${kv;hide:"p AR"} ${kv;hide:"pc light-red"} - -# tag:internal -### @usage TOUCH(Outputs...) # internal -### Just introduce outputs -macro TOUCH(Outputs...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output:Outputs} -} -TOUCH_UNIT=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${kv;hide:"p UN"} ${kv;hide:"pc light-cyan"} $TARGET -UNION_CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${kv;hide:"p UN"} ${kv;hide:"package UNION"} ${kv;hide:"pc light-cyan"} $TARGET ${hide;late_out:AUTO_INPUT} $VCS_INFO_DISABLE_CACHE__NO_UID__ -UNION_CMD_MF=$UNION_CMD && $GENERATE_MF -FAKE_PACKAGE_CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${kv;hide:"pc light-red"} $TARGET -COPY_PACKAGE_CMD=$YMAKE_PYTHON ${input:"build/scripts/copy_to_dir.py"} --dest-dir $BINDIR --build-root $ARCADIA_BUILD_ROOT $PACKED_PACKAGE_ARGS $SRCS_GLOBAL $PEERS_LATE_OUTS ${skip_by_ext=.pkg.fake:PEERS} ${hide;late_out:AUTO_INPUT} ${hide;late_out;to_namespace=$BINDIR/:SRCS_GLOBAL} ${hide;late_out;to_namespace=$BINDIR/:PEERS_LATE_OUTS} ${hide;late_out;skip_by_ext=.pkg.fake;to_namespace=$BINDIR/:PEERS} ${kv;hide:"package PACKAGE"} -TOUCH_PACKAGE=$FAKE_PACKAGE_CMD $VCS_INFO_DISABLE_CACHE__NO_UID__ && $COPY_PACKAGE_CMD -_P_PK=${kv;hide:"p PK"} -TOUCH_PACKAGE_MF=$GENERATE_MF && $TOUCH_PACKAGE $_P_PK -TOUCH_JAVA_UNIT=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${kv;hide:"java $CURDIR"} $TARGET - -NO_CHECK_IMPORTS_FOR_VALUE=None -### @usage: NO_CHECK_IMPORTS([patterns]) -### -### Do not run checks on imports of Python modules. -### Optional parameter mask patterns describes the names of the modules that do not need to check. -macro NO_CHECK_IMPORTS(Masks...) { - SET(NO_CHECK_IMPORTS_FOR_VALUE $Masks) -} - - -# tag:yasm-specific -_YASM_FMT_VALUE= -_YASM_PLATFORM_FLAGS_VALUE= -_YASM_PREDEFINED_FLAGS_VALUE= -when ($OS_DARWIN || $OS_IOS) { - _YASM_FMT_VALUE=macho - _YASM_PLATFORM_FLAGS_VALUE=-D DARWIN -D UNIX -} -elsewhen ($OS_WINDOWS && $ARCH_X86_64) { - _YASM_FMT_VALUE=win - _YASM_PLATFORM_FLAGS_VALUE=-D WIN64 -} -elsewhen ($OS_WINDOWS && $ARCH_I386) { - _YASM_FMT_VALUE=win - _YASM_PLATFORM_FLAGS_VALUE=-D WIN32 -} -otherwise { - _YASM_FMT_VALUE=elf - _YASM_PLATFORM_FLAGS_VALUE=-D UNIX - _YASM_PREDEFINED_FLAGS_VALUE=-g dwarf2 -} - -when ($ASM_PREFIX) { - ASM_PREFIX_VALUE=--prefix=$ASM_PREFIX -} -otherwise { - ASM_PREFIX_VALUE= -} - -# tag:yasm-specific -YASM_FLAGS= -YASM_PREINCLUDES_VALUE= - -# tag:yasm-specific -macro _SRC_yasm_helper(SRC, PREINCLUDES[], SRCFLAGS...) { - .CMD=${tool:"contrib/tools/yasm"} -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE $YASM_DEBUG_INFO $YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__ -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS -o ${output;noext;suf=${OBJECT_SUF}:SRC} ${pre=-P :PREINCLUDES} ${input;hide:PREINCLUDES} ${SRC} ${kv;hide:"p AS"} ${kv;hide:"pc light-green"} -} - -# tag:yasm-specific -macro _SRC_yasm(SRC, PREINCLUDES[], SRCFLAGS...) { - .CMD=$_SRC_yasm_helper(${input:SRC}, $SRCFLAGS, PREINCLUDES $PREINCLUDES) -} - -### @usage: ASM_PREINCLUDE(AsmFiles...) -### -### Supply additional .asm files to all assembler calls within a module -macro ASM_PREINCLUDE(PREINCLUDES...) { - SET_APPEND(YASM_PREINCLUDES_VALUE $PREINCLUDES) -} - -### @usage: RUN_ANTLR(Args...) -### -### Macro to invoke ANTLR3 generator (general case) -macro RUN_ANTLR(IN[], IN_NOPARSE[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INDUCED_DEPS[], CWD="", Args...) { - PEERDIR(build/external_resources/antlr3 build/platform/java/jdk $JDK_RESOURCE_PEERDIR) - .CMD=$_RUN_JAVA(-jar $ANTLR3_RESOURCE_GLOBAL/antlr-3.5.2-complete-no-st3.jar $Args IN $IN IN_NOPARSE $IN_NOPARSE OUT $OUT OUT_NOAUTO $OUT_NOAUTO OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS ${pre=CWD :CWD}) - .SEM=run_antlr OUTPUT ${output:OUT} ${output;noauto:OUT_NOAUTO} DEPENDS ${input:IN} ${pre=WORKING_DIRECTORY :CWD} ANTLER_ARGS $Args -} - -### @usage: RUN_ANTLR4(Args...) -### -### Macro to invoke ANTLR4 generator (general case) -macro RUN_ANTLR4(IN[], IN_NOPARSE[], OUT[], OUT_NOAUTO[], OUTPUT_INCLUDES[], INDUCED_DEPS[], CWD="", Args...) { - _RUN_JAVA(-jar ${input:"contrib/java/antlr/antlr4/antlr.jar"} $Args IN $IN IN_NOPARSE $IN_NOPARSE OUT $OUT OUT_NOAUTO $OUT_NOAUTO OUTPUT_INCLUDES $OUTPUT_INCLUDES INDUCED_DEPS $INDUCED_DEPS ${pre=CWD :CWD}) -} - -_ANTLR4_LISTENER_GRAMMAR=-listener -_ANTLR4_LISTENER__ANTLR4_EMPTY=-no-listener -_ANTLR4_VISITOR_GRAMMAR=-visitor -_ANTLR4_VISITOR__ANTLR4_EMPTY=-no-visitor - -### @usage: RUN_ANTLR4_CPP(GRAMMAR, OUTPUT_INCLUDES, LISTENER, VISITOR, Args...) -### -### Macro to invoke ANTLR4 generator (Cpp) -macro RUN_ANTLR4_CPP(GRAMMAR, OUTPUT_INCLUDES[], LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", _ANTLR4_EMPTY="", Args...) { - RUN_ANTLR4(${GRAMMAR} -Dlanguage=Cpp -o ${BINDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT ${noext;suf=Lexer.cpp:GRAMMAR} ${noext;suf=Lexer.h:GRAMMAR} ${noext;suf=Parser.cpp:GRAMMAR} ${noext;suf=Parser.h:GRAMMAR} ${noext;suf=Listener.h:$LISTENER} ${noext;suf=BaseListener.h:$LISTENER} ${noext;suf=Visitor.h:$VISITOR} ${noext;suf=BaseVisitor.h:$VISITOR} OUTPUT_INCLUDES ${ARCADIA_ROOT}/contrib/libs/antlr4_cpp_runtime/src/antlr4-runtime.h ${OUTPUT_INCLUDES}) - PEERDIR(contrib/libs/antlr4_cpp_runtime) -} - -### @usage: RUN_ANTLR4_GO(GRAMMAR, DEPS <extra_go_deps>, LISTENER, VISITOR, Args...) -### -### Macro to invoke ANTLR4 generator (Go) -macro RUN_ANTLR4_GO(GRAMMAR, DEPS[], LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", _ANTLR4_EMPTY="", Args...) { - RUN_ANTLR4(${GRAMMAR} -Dlanguage=Go -o ${BINDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT ${noext;tolower;suf=_lexer.go:GRAMMAR} ${noext;tolower;suf=_parser.go:GRAMMAR} ${noext;tolower;suf=_listener.go:$LISTENER} ${noext;tolower;suf=_base_listener.go:$LISTENER} ${noext;tolower;suf=_visitor.go:$VISITOR} ${noext;tolower;suf=_base_visitor.go:$VISITOR}) - PEERDIR(${GOSTD}/fmt ${GOSTD}/reflect ${GOSTD}/strconv ${GOSTD}/sync ${GOSTD}/unicode vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4 $DEPS) -} - -### @usage: RUN_ANTLR4_PYTHON(Grammar [LISTENER] [VISITOR] [SUBDIR] [EXTRA_OUTS Outs...] Args...) -### -### `LISTENER` - emit grammar listener -### `VISITOR` - emit grammar visitor -### `SUBDIR` - place generated files to specified subdirectory of BINDIR -### `EXTRA_OUTS` - list extra outputs produced by Antlr (e.g. .interp and .token files) if they are needed. If `SUBDIR` is specied it will affect these as well. Use file names only. -### -### Macro to invoke ANTLR4 generator (Python). The Python3 will be used for PY3_LIBRARY/PY3_PROGRAM/PY3TEST, Python2 will be used in all other cases. -macro RUN_ANTLR4_PYTHON(GRAMMAR, LISTENER?"GRAMMAR":"_ANTLR4_EMPTY", VISITOR?"GRAMMAR":"_ANTLR4_EMPTY", SUBDIR=".", EXTRA_OUTS[], _ANTLR4_EMPTY="", Args...) { - RUN_ANTLR4(${GRAMMAR} -Dlanguage=$ANTLR_PYTHON -o ${BINDIR}/${SUBDIR} ${_ANTLR4_VISITOR_$VISITOR} ${_ANTLR4_LISTENER_$LISTENER} ${Args} CWD ${BINDIR} IN ${GRAMMAR} OUT_NOAUTO ${nopath;noext;pre=${SUBDIR}/;suf=Lexer.py:GRAMMAR} ${nopath;noext;pre=${SUBDIR}/;suf=Parser.py:GRAMMAR} ${nopath;noext;pre=${SUBDIR}/;suf=Listener.py:$LISTENER} ${nopath;noext;pre=${SUBDIR}/;suf=Visitor.py:$VISITOR} ${pre=${SUBDIR}/:EXTRA_OUTS}) - PEERDIR(contrib/python/antlr4) -} - - -# tag:cpp-specific -macro CPP_ADDINCL(Dirs...) { - ADDINCL($Dirs) -} - -# tag:internal -_WHOLE_ARCHIVE_PEERS_VALUE= -### @usage: WHOLE_ARCHIVE(dirnames...) # internal -macro WHOLE_ARCHIVE(PEERS...) { - SET_APPEND(_WHOLE_ARCHIVE_PEERS_VALUE ${PEERS}) - REQUIRES(${PEERS}) -} - -ANDROID_SDK_ROOT=${ANDROID_SDK_RESOURCE_GLOBAL}/android_sdk - -macro TASKLET() { - PEERDIR(tasklet/api) - - # CPP - CPP_PROTO_PLUGIN(tasklet_cpp tasklet/v1/gen/cpp .tasklet.h) - - # Python - PY_PROTO_PLUGIN2(tasklet_py _tasklet.py _sbtask.py tasklet/v1/gen/python DEPS tasklet/v1/domain/sandbox tasklet/v1/runtime sandbox/sdk2) -} - -TASKLET_REG_INCLUDES= \ - ${output_include;hide:"tasklet/v1/runtime/lib/cpp_wrapper.h"} \ - ${output_include;hide:"tasklet/v1/runtime/lib/go_wrapper.h"} \ - ${output_include;hide:"tasklet/v1/runtime/lib/py_wrapper.h"} \ - ${output_include;hide:"tasklet/v1/runtime/lib/js_wrapper.h"} \ - ${output_include;hide:"tasklet/v1/runtime/lib/registry.h"} - -macro TASKLET_REG(Name, Lang, Impl, Includes...) { - PEERDIR(tasklet/v1/domain sandbox/bin sandbox/taskbox/worker) - - when($Lang == "js") { - # JS runtime links the Node.js from contrib as a library, which is a bit heavy, - # so we do it, only if any JS tasklets are linked into the target - PEERDIR+=tasklet/v1/runtime/js - } - - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_tasklet_reg.py"} $Name -l $Lang -i $Impl ${output;noauto:Name.task.cpp} $Includes ${output_include;hide:Includes} $TASKLET_REG_INCLUDES ${kv;hide:"p TT"} ${kv;hide:"pc yellow"} - SRCS(GLOBAL $Name.task.cpp) -} - -# TEMPORARY METHOD FOR EXTENDED REGISTRY SETUP -# NOT COMPLETE -macro TASKLET_REG_EXT(Name, Lang, Impl, Wrapper, Includes...) { - PEERDIR(tasklet/v1/domain sandbox/bin sandbox/taskbox/worker) - - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_tasklet_reg.py"} $Name -l $Lang -i $Impl -w $Wrapper ${output;noauto:Name.task.cpp} $Includes ${output_include;hide:Includes} $TASKLET_REG_INCLUDES ${kv;hide:"p TT"} ${kv;hide:"pc yellow"} - SRCS(GLOBAL $Name.task.cpp) -} - -# tag:cpp-specific -_CPP_PROTO_MODULE_PREFIX= -_CPP_PROTO_MODULE_SUFFIX= -when ($MSVC == "yes" || $CYGWIN == "yes") { - _CPP_PROTO_MODULE_PREFIX= - _CPP_PROTO_MODULE_SUFFIX=.lib -} -otherwise { - _CPP_PROTO_MODULE_PREFIX=lib - _CPP_PROTO_MODULE_SUFFIX=.a -} - -### @usage: _EXPOSE(OutputsToExport...) -### -### Allows to mark outputs of macro command as unused in the current module but intended -### to be used in modules consuming current via PEERDIR. -### -### TODO(DEVTOOLS-9000) proper implementation needed -macro _EXPOSE(Args...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output;suf=$_HASH_HELPER($Args).h:"empty_"} ${input;hide:Args} -} - - -### @usage: LIST_PROTO([TO list.proto] Files...) # deprecated -### -### Create list of .proto files in a list-file (should be .proto, files.proto by default) -### with original .proto-files as list's dependencies. -### -### This allows to process files listed, passing list as an argument to the processor -### -### TODO: proper implementation needed -macro LIST_PROTO(TO="files.proto", Files...) { - .CMD=$YMAKE_PYTHON3 ${input:"build/scripts/list.py"} ${Files} ${input;hide:Files} ${stdout;output;noauto:TO} ${output_include;from_input;hide:Files} && $YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output;noext;suf=.pb.h:TO} - _EXPOSE(${TO}) -} - -# tag:proto -macro _PROTO_DESC_CMD(File) { - .CMD=${cwd;rootdir;input:File} $PROTOC -I=./$PROTO_NAMESPACE -I=$ARCADIA_ROOT/$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_BUILD_ROOT -I=$PROTOBUF_PATH --descriptor_set_out=${output;suf=.desc:File} --include_source_info $_PROTOC_FLAGS ${input;rootrel:File} -} - -_PROTO_DESC_MERGE_CMD=$YMAKE_PYTHON ${input:"build/scripts/merge_files.py"} $TARGET $AUTO_INPUT ${kv;hide:"p PD"} ${kv;hide:"pc light-cyan"} -_PROTO_DESC_MERGE_PEERS_CMD=$YMAKE_PYTHON ${input:"build/scripts/merge_files.py"} $TARGET $PEERS $SRCS_GLOBAL ${kv;hide:"p PD"} ${kv;hide:"pc light-cyan"} - -NEED_GOOGLE_PROTO_PEERDIRS=yes - -CPP_PROTO_LIBRARY_SEM=$CPP_LIBRARY_SEM - -JAVA_PROTO_LIBRARY_SEM=$BUILD_PROTO_JAR_SEM $_GRADLE_EXPORT_PUBLISHING_SEM - -# tag:proto -### @usage: PROTO_LIBRARY() -### -### Build some varian of protocol buffers library. -### -### The particular variant is selected based on where PEERDIR to PROTO_LIBRARY comes from. -### -### Now supported 5 variants: C++, Java, Python 2.x, Python 3.x and Go. -### When PEERDIR comes from module for particular language appropriate variant is selected. -### PROTO_LIBRARY also supports emission of GRPC code if GRPC() macro is specified. -### Notes: -### - Python versions emit C++ code in addition to Python as optimization. -### - In some PROTO_LIBRARY-es Java or Python versions are excluded via EXCLUDE_TAGS macros due to incompatibilities. -### - Use from DEPENDS or BUNDLE is not allowed -### -### Documentation: https://wiki.yandex-team.ru/yatool/proto_library/ -### -### See: [GRPC()](#macro_GRPC), [OPTIMIZE_PY_PROTOS()](#macro_OPTIMIZE_PY_PROTOS), [INCLUDE_TAGS()](#macro_INCLUDE_TAGS), [EXCLUDE_TAGS()](#macro_EXCLUDE_TAGS) -multimodule PROTO_LIBRARY { - module CPP_PROTO : LIBRARY { - .ALLOWED=_EXPOSE LIST_PROTO - # TODO(svidyuk): think about marker which forces semantics inheritance - .SEM=CPP_PROTO_LIBRARY_SEM - ENABLE(CPP_PROTO) - ENABLE(GEN_PROTO) - NO_CLANG_TIDY() - SET(PEERDIR_TAGS CPP_PROTO) - - when ($BUILD_PROTO_AS_EVLOG == "yes" && $USE_VANILLA_PROTOC == "yes") { - _OK=no - } - ASSERT(_OK BUILD_PROTO_AS_EVLOG and USE_VANILLA_PROTOC are incompatible yet) - - MODULE_SUFFIX=$_CPP_PROTO_MODULE_SUFFIX - MODULE_PREFIX=$_CPP_PROTO_MODULE_PREFIX - - when ($_COMMON_GOOGLE_APIS != "None") { - PEERDIR += contrib/libs/googleapis-common-protos - } - } - - module JAVA_PROTO: EXTERNAL_JAVA_LIBRARY { - .EXTS=.jsrc - .ALLOWED=GRPC - .SEM=JAVA_PROTO_LIBRARY_SEM - SET(PEERDIR_TAGS JAVA_PROTO) - ENABLE(JAVA_PROTO) - PEERDIR+=$JAVA_PROTOBUF_PEERS - - when ($KOTLIN_PROTO == "yes") { - KOTLIN_PROTO_PEERS=contrib/java/com/google/protobuf/protobuf-kotlin/${JAVA_PROTO_RUNTIME_VERSION} - KOTLIN_PROTO_FLAGS=--kotlin_out=$ARCADIA_BUILD_ROOT/java_out - } - when ($GRADLE_EXPORT_PUBLISHING == "yes") { - _GRADLE_EXPORT_PUBLISHING_SEM=$_DO_GRADLE_EXPORT_PUBLISHING_SEM - } - - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_SKIFF CPP_PROTO_PLUGIN2 PY_PROTO_PLUGIN YMAPS_SPROTO RESOURCE - ADDINCL(FOR proto $PROTOBUF_PATH) - - when ($_COMMON_GOOGLE_APIS != "None") { - PEERDIR += contrib/java/com/google/api/grpc/proto-google-common-protos/${JAVA_PROTO_COMMON_VERSION} - ADDINCL += GLOBAL FOR proto ${ARCADIA_ROOT}/contrib/libs/googleapis-common-protos - } - } - - module PY_PROTO: PY2_LIBRARY { - .ALIASES=SRCS=PY_SRCS - .ALLOWED=OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS - .PEERDIRSELF=CPP_PROTO - .SEM=IGNORED - SET(PEERDIR_TAGS PY2 PY_PROTO) - ENABLE(PY_PROTO) - OPTIMIZE_PY_PROTOS() - OBJ_SUF=.py2 - # Can not use NO_LINT(), because is not allowed outside of contrib directory - SET(_NO_LINT_VALUE none_internal) - - when ($_COMMON_GOOGLE_APIS != "None") { - PEERDIR += contrib/libs/googleapis-common-protos - } - - _IGNORE_SELF_PEERS= - _CPP_PROTO_LIBRARY=${MODDIR}/$_CPP_PROTO_MODULE_PREFIX$REALPRJNAME$_CPP_PROTO_MODULE_SUFFIX - when ($OPTIMIZE_PY_PROTOS_FLAG == "no") { - _IGNORE_PEERDIRSELF=CPP_PROTO - } - SET_APPEND(_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL $_CPP_PROTO_LIBRARY) - } - - module PY3_PROTO: PY3_LIBRARY { - .ALIASES=SRCS=PY_SRCS - .ALLOWED=OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS - .PEERDIRSELF=CPP_PROTO - .SEM=IGNORED - SET(PEERDIR_TAGS PY3 PY3_PROTO) - ENABLE(PY3_PROTO) - OPTIMIZE_PY_PROTOS() - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3 - } - otherwise { - MODULE_PREFIX=libpy3 - } - OBJ_SUF=.py3 - # Can not use NO_LINT(), because is not allowed outside of contrib directory - SET(_NO_LINT_VALUE none_internal) - - when ($_COMMON_GOOGLE_APIS != "None") { - PEERDIR += contrib/libs/googleapis-common-protos - } - - _IGNORE_SELF_PEERS= - _CPP_PROTO_LIBRARY=${MODDIR}/$_CPP_PROTO_MODULE_PREFIX$REALPRJNAME$_CPP_PROTO_MODULE_SUFFIX - when ($OPTIMIZE_PY_PROTOS_FLAG == "no") { - _IGNORE_PEERDIRSELF=CPP_PROTO - } - SET_APPEND(_WHOLE_ARCHIVE_LIBS_VALUE_GLOBAL $_CPP_PROTO_LIBRARY) - } - - module GO_PROTO: GO_LIBRARY { - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER YMAPS_SPROTO - .SEM=IGNORED - SET(PEERDIR_TAGS GO GO_PROTO) - ENABLE(GO_PROTO) - - when ($_COMMON_GOOGLE_APIS == "None") { - } - elsewhen ($_COMMON_GOOGLE_APIS == "") { - PEERDIR += $_GO_COMMON_GOOGLE_APIS - ADDINCL += GLOBAL FOR proto ${ARCADIA_ROOT}/contrib/libs/googleapis-common-protos - } - otherwise { - PEERDIR += $_COMMON_GOOGLE_APIS - ADDINCL += GLOBAL FOR proto ${ARCADIA_ROOT}/contrib/libs/googleapis-common-protos - } - } - - module DESC_PROTO: _BARE_UNIT { - .CMD=_PROTO_DESC_MERGE_CMD - .SEM=IGNORED - .EXTS=.desc - .NODE_TYPE=Library - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER YMAPS_SPROTO RESOURCE GO_PROTO_PLUGIN GRPC - - SET(PEERDIR_TAGS DESC_PROTO) - ENABLE(DESC_PROTO) - MODULE_SUFFIX=.self.protodesc - SET(MODULE_TYPE LIBRARY) - - MACRO_ALIAS(EVLOG_CMD _PROTO_DESC_CMD) - MACRO_ALIAS(PROTO_CMD _PROTO_DESC_CMD) - - when ($_COMMON_GOOGLE_APIS != "None") { - PEERDIR += contrib/libs/googleapis-common-protos - } - - when ($NEED_GOOGLE_PROTO_PEERDIRS == "yes") { - when ($USE_VANILLA_PROTOC == "yes") { - PEERDIR += contrib/libs/protobuf_std/builtin_proto/protos_from_protobuf - } - otherwise { - PEERDIR += contrib/libs/protobuf/builtin_proto/protos_from_protoc - } - } - } -} - -module PROTO_DESCRIPTIONS: _BARE_UNIT { - .CMD=_PROTO_DESC_MERGE_PEERS_CMD - .PEERDIR_POLICY=as_build_from - .NODE_TYPE=Library - .RESTRICTED=SRCS - .FINAL_TARGET=yes - - SET(PEERDIR_TAGS DESC_PROTO) - SET(MODULE_SUFFIX .protodesc) - SET(MODULE_TYPE PROTO_DESCRIPTIONS) -} - -module PROTO_REGISTRY: PROTO_DESCRIPTIONS { - SET(MODULE_TYPE PROTO_REGISTRY) -} - -# tag:fbs -_FBS_NAMESPACE_MAP_GLOBAL= - -# tag:fbs -macro _FBS_NAMESPACE_IMPL(NAMESPACE, PATH, DUMMY...) { - SET_APPEND(_FBS_NAMESPACE_MAP_GLOBAL ${NAMESPACE}=${PATH}) -} - -# tag:fbs -macro FBS_NAMESPACE(NAMESPACE, PATH...) { - _FBS_NAMESPACE_IMPL($NAMESPACE $PATH $MODDIR) -} - -# tag:fbs -### @usage: FBS_LIBRARY() -### -### Build some variant of Flatbuffers library. -### -### The particular variant is selected based on where PEERDIR to FBS_LIBRARY -### comes from. -### -### Now supported 5 variants: C++, Java, Python 2.x, Python 3.x and Go. -### When PEERDIR comes from module for particular language appropriate variant -### is selected. -### -### Notes: FBS_NAMESPACE must be specified in all dependent FBS_LIBRARY modules -### if build of Go code is requested. -multimodule FBS_LIBRARY { - module CPP_FBS: LIBRARY { - ENABLE(CPP_FBS) - SET(PEERDIR_TAGS CPP_FBS) - } - - module GO_FBS: GO_LIBRARY { - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - ENABLE(GO_FBS) - SET(PEERDIR_TAGS GO GO_FBS) - } - - module JAVA_FBS: EXTERNAL_JAVA_LIBRARY { - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - ENABLE(JAVA_FBS) - SET(PEERDIR_TAGS JAVA_FBS) - } - - module PY2_FBS: PY2_LIBRARY { - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - .ALIASES=SRCS=PY_SRCS - ENABLE(PY2_FBS) - SET(PEERDIR_TAGS PY2 PY2_FBS) - # Can not use NO_LINT(), because is not allowed outside of contrib directory - SET(_NO_LINT_VALUE none_internal) - } - - module PY3_FBS: PY3_LIBRARY { - .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER - .ALIASES=SRCS=PY_SRCS - ENABLE(PY3_FBS) - SET(PEERDIR_TAGS PY3 PY3_FBS) - # Can not use NO_LINT(), because is not allowed outside of contrib directory - SET(_NO_LINT_VALUE none_internal) - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3 - } - otherwise { - MODULE_PREFIX=libpy3 - } - OBJ_SUF=.py3 - } -} - -# tag:java-specific -_COMPILE_JSRC=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/compile_jsrc.py"} --input $AUTO_INPUT --output $TARGET --prefix $BINDIR ${kv;hide:"p JC"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - -# tag:java-specific -COMPILE_JSRC_MF=$_COMPILE_JSRC && $GENERATE_MF - -# tag:java-specific tag:internal -### @usage: JSRC_LIBRARY() # internal -module JSRC_LIBRARY: _BARE_UNIT { - .CMD=COMPILE_JSRC_MF - .EXTS=.java - .PEERDIR_POLICY=as_include - .FINAL_TARGET=no - .ALIASES=SRCS=FILES - PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL - MODULE_TYPE=Library - SET(MODULE_SUFFIX .jsrc) - SET(DONT_RESOLVE_INCLUDES yes) - SET(NEED_PLATFORM_PEERDIRS no) - SET(MODULE_LANG JAVA) - - NO_RUNTIME() -} - -# tag:maps-specific -@import "${CONF_ROOT}/conf/project_specific/maps/asrc.conf" - -# tag:internal -### @usage: _PROXY_LIBRARY() # internal -### -### The use of this module is strictly prohibited!!! -module _PROXY_LIBRARY: LIBRARY { - .EXTS=.a .lib - .PEERDIR_POLICY=as_build_from - .PROXY=yes - .FINAL_TARGET=yes - DISABLE(NEED_ADD_FAKE_SRC) - - NO_UTIL() - NO_RUNTIME() -} - -# tag:maps-specific -@import "${CONF_ROOT}/conf/project_specific/maps/aar.conf" -@import "${CONF_ROOT}/conf/project_specific/maps/sproto.conf" -@import "${CONF_ROOT}/conf/project_specific/maps/mapkit.conf" - -_PRIMARY_OUTPUT_VALUE= - -# tag:internal -### @usage: PRIMARY_OUTPUT_VALUE(Output) # internal -### -### The use of this module is strictly prohibited!!! -macro PRIMARY_OUTPUT(OUTPUT) { - SET(_PRIMARY_OUTPUT_VALUE $OUTPUT) -} - -_DLL_PROXY_LIBRARY_CMD=$GENERATE_MF && $COPY_CMD $_PRIMARY_OUTPUT_VALUE ${input;hide:_PRIMARY_OUTPUT_VALUE} ${TARGET} - -# tag:internal -### @usage: DLL_PROXY_LIBRARY() # internal -### -### The use of this module is strictly prohibited!!! -module DLL_PROXY_LIBRARY: _PROXY_LIBRARY { - .ALLOWED=PRIMARY_OUTPUT - .CMD=_DLL_PROXY_LIBRARY_CMD -} - -_PREBUILT_PROGRAM_CMD=$GENERATE_MF && $COPY_CMD $_PRIMARY_OUTPUT_VALUE ${TARGET} ${kv;hide:"p ld"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - -# tag:internal -### @usage: PREBUILT_PROGRAM([programname]) # internal -### -### Program module which uses a prebuilt prgram as its output. -module PREBUILT_PROGRAM: _LINK_UNIT { - .CMD=_PREBUILT_PROGRAM_CMD - .SYMLINK_POLICY=EXE - .ALLOWED=INDUCED_DEPS PRIMARY_OUTPUT - .RESTRICTED=SRCS - - _BARE_LINK_MODULE() - - SET(MODULE_TYPE PROGRAM) - - when ($WIN32 == "yes" || $OS_CYGWIN == "yes") { - MODULE_SUFFIX=.exe - } -} - -### @usage COLLECT_JINJA_TEMPLATES(varname path) -### -### This macro collects all jinja and yaml files in the directory specified by second argument and -### stores result in the variable with mane specified by first parameter. -macro COLLECT_JINJA_TEMPLATES(VAR, DIR) { - _GLOB($VAR ${DIR}/**/*.jinja ${DIR}/**/*.yaml) -} - -# tag:go-specific -### @usage: COLLECT_GO_SWAGGER_FILES(Varname, Dir) -### -### Recursively collect files for swagger config creation -macro COLLECT_GO_SWAGGER_FILES(Varname, Dir) { - _GLOB($Varname $Dir/**/*.go ${ARCADIA_ROOT}/go.mod) -} - -# tag:go-specific -GO_HOST_OS=unknown -when ($HOST_OS_LINUX) { - GO_HOST_OS=linux -} -elsewhen ($HOST_OS_DARWIN) { - GO_HOST_OS=darwin -} -elsewhen($HOST_OS_WINDOWS) { - GO_HOST_OS=windows -} - -# tag:go-specific -GO_HOST_ARCH=unknown -when ($HOST_ARCH_X86_64) { - GO_HOST_ARCH=amd64 -} -elsewhen($HOST_ARCH_ARM64) { - GO_HOST_ARCH=arm64 -} - -# tag:go-specific -GO_TARG_OS=unknown -when ($OS_LINUX) { - GO_TARG_OS=linux -} -elsewhen ($OS_DARWIN) { - GO_TARG_OS=darwin -} -elsewhen ($OS_WINDOWS) { - GO_TARG_OS=windows -} - -# tag:go-specific -GO_TARG_ARCH=unknwon -when ($ARCH_X86_64) { - GO_TARG_ARCH=amd64 -} -elsewhen ($ARCH_I386) { - GO_TARG_ARCH=x86 -} -elsewhen ($ARCH_ARM64) { - GO_TARG_ARCH=arm64 -} - -# tag:go-specific -GO_HOST_TARG_PARAMS=++host-os $GO_HOST_OS ++host-arch $GO_HOST_ARCH ++targ-os $GO_TARG_OS ++targ-arch $GO_TARG_ARCH - -# tag:go-specific -GOSTD_VERSION=1.19 -when ($GOSTD_VERSION == "1.19") { - GOSTD=contrib/go/_std_1.19/src -} -elsewhen ($GOSTD_VERSION == "1.20") { - GOSTD=contrib/go/_std_1.20/src -} -otherwise { - GOSTD=__unsupported_go_std_library_version_[$GOSTD_VERSION]__ -} - -# tag:go-specific -GO_DEBUG_PATH_RELATIVE=no -_GO_DEBUG_PATH__NO_UID__= -_GO_COMPILE_SYMABIS_TRIMPATH__NO_UID__= - -# tag:go-specific -_GO_BUILDMODE= -_GO_IMPORT_PATH=${MODDIR} - -# tag:go-specific -GO_VET=yolint -GO_VET_TOOL= -GO_VET_FLAGS= -GO_VET_EXTRA_FLAGS= - -# tag:go-specific -_GO_VET_ADD_CHECK=yes -_GO_FMT_ADD_CHECK=yes -_GO_YDX_FILE= - -# tag:go-specific -_GO_CGO1_WRAPPER_FLAGS=--build-prefix=/-B --source-prefix=/-S -_GO_LINK_EXE_EXT_CMD= - -# tag:go-specific -GO_WITH_MUSL= - -# tag:go-specific -GO_TOOLS_ROOT=${GO_TOOLS_RESOURCE_GLOBAL} -GO_TEST_MINER=${tool:"tools/go_test_miner"} -GO_TEST_IMPORT_PATH= - -# tag:go-specific -GO_STD_LIB_PREFIX=${GOSTD}/ -GO_STD_CMD_PREFIX=${GOSTD}/cmd/ -GO_ARCADIA_PROJECT_PREFIX=a.yandex-team.ru/ -GO_CONTRIB_PROJECT_PREFIX=vendor/ -GO_SKIP_IMPORTS=unsafe C -GO_VET_INFO_EXT=.vet.out -GO_VET_REPORT_EXT=.vet.txt -GO_VET_OUTPUT_INFO=${output;rootrel;hide;pre=${MODULE_PREFIX};suf=${MODULE_SUFFIX}${GO_VET_INFO_EXT}:REALPRJNAME} -GO_VET_OUTPUT_REPORT=${output;rootrel;hide;pre=${MODULE_PREFIX};suf=${MODULE_SUFFIX}${GO_VET_REPORT_EXT}:REALPRJNAME} - -# tag:go-specific tag:codenav -_GO_YNDEXER_EXT=.ydx.pb2 -GO_YNDEXER_OUTPUT=${output;pre=${MODULE_PREFIX};suf=${MODULE_SUFFIX}${_GO_YNDEXER_EXT}:REALPRJNAME} - -# tag:go-specific -GO_PROJECT_PREFIXES=++std-lib-prefix $GO_STD_LIB_PREFIX ++arc-project-prefix $GO_ARCADIA_PROJECT_PREFIX - -# tag:go-specific -_GO_FAKEID=${FAKEID}.${BUILD_TYPE}.${GOSTD_VERSION}.${GO_FAKEID} -_CGO_FAKEID=${_GO_FAKEID}.${CPP_FAKEID} - -# tag:go-specific -CGO2_CFLAGS_VALUE= -CGO2_LDFLAGS_VALUE= - -# tag:go-specific -GO_ASM_FLAGS_VALUE= -### @usage: GO_ASM_FLAGS(flags) -### Add the specified flags to the go asm compile command line. -macro GO_ASM_FLAGS(Flags...) { - SET_APPEND(GO_ASM_FLAGS_VALUE $Flags) -} - -# tag:go-specific -GO_CGO1_FLAGS_VALUE= -### @usage: GO_CGO1_FLAGS(flags) -### Add the specified flags to the go cgo compile command line. -macro GO_CGO1_FLAGS(Flags...) { - SET_APPEND(GO_CGO1_FLAGS_VALUE $Flags) -} - -# tag:go-specific -GO_CGO2_FLAGS_VALUE= -### @usage: GO_CGO2_FLAGS(flags) -### Add the specified flags to the go cgo compile command line. -macro GO_CGO2_FLAGS(Flags...) { - SET_APPEND(GO_CGO2_FLAGS_VALUE $Flags) -} - -# tag:go-specific -GO_COMPILE_FLAGS_VALUE=$USER_GO_COMPILE_FLAGS -### @usage: GO_COMPILE_FLAGS(flags) -### Add the specified flags to the go compile command line. -macro GO_COMPILE_FLAGS(Flags...) { - SET_APPEND(GO_COMPILE_FLAGS_VALUE $Flags) -} - -# tag:go-specific -GO_LINK_FLAGS_VALUE=$USER_GO_LINK_FLAGS -### @usage: GO_LINK_FLAGS(flags) -### Add the specified flags to the go link command line. -macro GO_LINK_FLAGS(Flags...) { - SET_APPEND(GO_LINK_FLAGS_VALUE $Flags) -} - -# tag:go-specific -_GO_LANG_VERSION_VALUE= -macro GOLANG_VERSION(Arg) { - SET(_GO_LANG_VERSION_VALUE $Arg) -} - -# tag:go-specific -_GO_TOOL_MODE= - -# tag:go-specific -_GO_TOOL_COMMON_FLAGS=\ - ++mode $_GO_TOOL_MODE \ - $GO_PROJECT_PREFIXES \ - ++goversion $GOSTD_VERSION \ - ++lang $_GO_LANG_VERSION_VALUE \ - ++source-root $ARCADIA_ROOT \ - ++build-root $ARCADIA_BUILD_ROOT \ - ++output-root $BINDIR \ - ++toolchain-root $GO_TOOLS_ROOT \ - $GO_HOST_TARG_PARAMS \ - ++output $TARGET \ - $GO_VET_OUTPUT \ - $_GO_YDX_FILE \ - $_GO_DEBUG_PATH__NO_UID__ \ - ++srcs $AUTO_INPUT ${input:GO_FILES} \ - ++asm-flags $GO_ASM_FLAGS_VALUE \ - ++compile-flags $GO_COMPILE_FLAGS_VALUE \ - ++link-flags $GO_LINK_FLAGS_VALUE \ - ++cgo-srcs ${input:CGO_FILES} \ - $_GO_EMBED_VALUE \ - $_GO_BUILDMODE \ - $GO_TOOLCHAIN_ENV - -# tag:go-specific -macro _GO_GEN_COVER_GO(GO_FILE, VAR_ID) { - .CMD=${hide:_GO_FAKEID} $GO_TOOLS_ROOT/pkg/tool/${GO_HOST_OS}_${GO_HOST_ARCH}/cover -mode set -var $VAR_ID -o ${output;noext;suf=.cover.go:GO_FILE} ${input:GO_FILE} -} - -# tag:go-specific -macro _GO_COMPILE_SYMABIS(FLAGS[], ASM_FILES...) { - .CMD=${hide:_CGO_FAKEID} $GO_TOOLS_ROOT/pkg/tool/${GO_HOST_OS}_${GO_HOST_ARCH}/asm $_GO_COMPILE_SYMABIS_TRIMPATH__NO_UID__ ${pre=-I :_C__INCLUDE} -I $GO_TOOLS_ROOT/pkg/include -D GOOS_${GO_TARG_OS} -D GOARCH_${GO_TARG_ARCH} $FLAGS $GO_ASM_FLAGS_VALUE -gensymabis -o ${output:"gen.symabis"} ${input:ASM_FILES} ${kv;hide:"p go"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - .ADDINCL=build/scripts/go_fake_include -} - -# tag:go-specific -macro _GO_COMPILE_CGO1(NAME, FLAGS[], FILES...) { - .CMD=${hide:_CGO_FAKEID} ${cwd:ARCADIA_ROOT} $YMAKE_PYTHON ${input:"build/scripts/cgo1_wrapper.py"} $_GO_CGO1_WRAPPER_FLAGS --build-root ${ARCADIA_BUILD_ROOT} --source-root ${ARCADIA_ROOT} --cgo1-files ${output;noext:FILES.cgo1.go} --cgo2-files ${output;noauto;noext:FILES.cgo2.c} -- ${GO_TOOLS_ROOT}/pkg/tool/${GO_HOST_OS}_${GO_HOST_ARCH}/cgo -objdir $BINDIR -importpath $NAME $GO_CGO1_FLAGS_VALUE $FLAGS -- $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} ${CGO_CFLAGS_VALUE} ${input:FILES} ${output;hide:"_cgo_export.h"} ${output;hide:"_cgo_export.c"} ${output;hide:"_cgo_gotypes.go"} ${output;noauto;hide:"_cgo_main.c"} ${output;noauto;hide:"_cgo_flags"} $GO_TOOLCHAIN_ENV ${kv;hide:"p go"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} -} - -# tag:go-specific -macro _GO_COMPILE_CGO2(NAME, C_FILES[], S_FILES[], OBJ_FILES[], FILES...) { - .CMD=${hide:_CGO_FAKEID} $C_COMPILER $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} $CGO_CFLAGS_VALUE ${input;tobindir:"_cgo_main.c"} -c -o ${tmp;noauto;suf=${OBJECT_SUF}:"_cgo_main.c"} && $C_COMPILER $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} -o ${tmp;noauto;suf=${OBJECT_SUF}:"_cgo_"} $LDFLAGS $LDFLAGS_GLOBAL $CGO2_LDFLAGS_VALUE ${input;hide:"_cgo_export.h"} ${tmp;noauto;suf=${OBJECT_SUF}:"_cgo_main.c"} ${input;suf=${OBJECT_SUF}:"_cgo_export.c"} ${input;nopath;noext;suf=.cgo2.c${OBJECT_SUF}:FILES} ${input;suf=${OBJECT_SUF}:C_FILES} ${input;suf=.o:S_FILES} ${input:OBJ_FILES} $CGO_LDFLAGS_VALUE && ${GO_TOOLS_ROOT}/pkg/tool/${GO_HOST_OS}_${GO_HOST_ARCH}/cgo -dynpackage $NAME -dynimport ${tmp;noauto;suf=${OBJECT_SUF}:"_cgo_"} -dynout ${output:"_cgo_import.go"} -dynlinker $GO_CGO2_FLAGS_VALUE $GO_TOOLCHAIN_ENV ${kv;hide:"p go"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - - _USE_LINKER() -} - -GO_TOOL=$YMAKE_PYTHON3 ${input:"build/scripts/go_tool.py"} ${input;hide:"build/scripts/process_command_files.py"} - -# tag:go-specific -macro _GO_LINK_LIB_IMPL(CGO_FILES[], EXTRA_INPUTS[], GO_FILES...) { - .CMD=${hide:_GO_FAKEID} $GO_TOOL ${hide;input:EXTRA_INPUTS} --ya-start-command-file $_GO_TOOL_COMMON_FLAGS ++peers ${rootrel;tags_in=local,GO|local,GO_PROTO|local,GO_FBS:PEERS} --ya-end-command-file ${kv;hide:"p GO"} ${kv;hide:"pc light-red"} ${kv;hide:"show_out"} -} - -# tag:go-specific -macro _GO_LINK_EXE_IMPL(CGO_FILES[], EXTRA_INPUTS[], GO_FILES...) { - .CMD=${hide:_GO_FAKEID} $GO_TOOL ${hide;input:EXTRA_INPUTS} --ya-start-command-file $_GO_TOOL_COMMON_FLAGS ++vcs $VCS_GO $GO_WITH_MUSL $GO_EXTLD ++peers ${rootrel;tags_in=local,GO|local,GO_PROTO|local,GO_FBS:PEERS} ++non-local-peers ${rootrel;tags_in=GO|GO_PROTO|GO_FBS;tags_out=local:PEERS} ++cgo-peers ${VCS_C_OBJ_RR} ${rootrel;tags_out=GO|GO_PROTO|GO_FBS:PEERS} --ya-end-command-file ${kv;hide:"p LD"} ${kv;hide:"pc light-red"} ${kv;hide:"show_out"} $_GO_LINK_EXE_EXT_CMD -} - -# tag:go-specific -macro _GO_LINK_TEST_IMPL(CGO_FILES[], EXTRA_INPUTS[], GO_TEST_FILES[], GO_XTEST_FILES[], GO_FILES...) { - .CMD=${hide:_GO_FAKEID} $GO_TOOL ${hide;input:EXTRA_INPUTS} --ya-start-command-file $_GO_TOOL_COMMON_FLAGS ++vcs $VCS_GO $GO_WITH_MUSL $GO_EXTLD ++test-miner $GO_TEST_MINER ++test-import-path $GO_TEST_IMPORT_PATH ++peers ${rootrel;tags_in=local,GO|local,GO_PROTO|local,GO_FBS:PEERS} ++non-local-peers ${rootrel;tags_in=GO|GO_PROTO|GO_FBS;tags_out=local:PEERS} ++cgo-peers ${VCS_C_OBJ_RR} ${rootrel;tags_out=GO|GO_PROTO|GO_FBS:PEERS} ++test_srcs ${input:GO_TEST_FILES} ++xtest_srcs ${input:GO_XTEST_FILES} ++cover_info $GO_COVER_INFO_VALUE ++skip-tests $_GO_SKIP_TEST_VALUE --ya-end-command-file ${kv;hide:"p GO"} ${kv;hide:"pc light-red"} ${kv;hide:"show_out"} -} - -# tag:go-specific -GO_LINK_LIB=$GENERATE_MF && $_GO_LINK_LIB_IMPL($_GO_SRCS_VALUE CGO_FILES $_CGO_SRCS_VALUE EXTRA_INPUTS $_GO_EMBED_INPUTS) -GO_LINK_EXE=$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $GENERATE_VCS_GO_INFO_NODEP && $_GO_LINK_EXE_IMPL($_GO_SRCS_VALUE CGO_FILES $_CGO_SRCS_VALUE EXTRA_INPUTS $_GO_EMBED_INPUTS) -GO_LINK_TEST=$GENERATE_VCS_C_INFO_NODEP && $GENERATE_VCS_GO_INFO_NODEP && $_GO_LINK_TEST_IMPL($_GO_SRCS_VALUE CGO_FILES $_CGO_SRCS_VALUE EXTRA_INPUTS $_GO_EMBED_INPUTS GO_TEST_FILES $_GO_TEST_SRCS_VALUE GO_XTEST_FILES $_GO_XTEST_SRCS_VALUE) -GO_LINK_DLL=$GO_LINK_EXE && $COPY_CMD $BINDIR/_cgo_export.h ${output;pre=${MODULE_PREFIX};suf=.h:REALPRJNAME} - -# tag:go-specific -CGO_ENABLED=yes -when ($OS_WINDOWS == "yes" || $SANITIZER_TYPE && $SANITIZER_TYPE != "no") { - CGO_ENABLED=no -} -elsewhen ($CGO_ENABLED == "yes") { - GO_LINK_FLAGS_VALUE+=-linkmode=external -} - -# tag:go-specific -GO_PACKAGE_VALUE= -### @usage: GO_PACKAGE_NAME(Name) -### Override name of a Go package. -macro GO_PACKAGE_NAME(NAME) { - SET(GO_PACKAGE_VALUE $NAME) -} - -# tag:go-specific tag:internal -_GO_SRCS_VALUE= -### @usage: _GO_SRCS(Files...) # internal -### This macro shouldn't be used in ya.make files, use SRCS() instead. -### This is internal macro collecting .go sources for processing within Go modules (GO_PROGRAM and GO_LIBRARY) -macro _GO_SRCS(FILES...) { - GO_FAKE_OUTPUT($FILES) - SET_APPEND(_GO_SRCS_VALUE $FILES) -} - -# tag:go-specific -_GO_TEST_SRCS_VALUE= -GO_HAS_INTERNAL_TESTS=no -### @usage: GO_TEST_SRCS(Files...) -### .go sources for internal tests of a module -macro GO_TEST_SRCS(FILES...) { - GO_FAKE_OUTPUT($FILES) - _SET_FIRST_VALUE(GO_HAS_INTERNAL_TESTS ${pre=yes :FILES} ${GO_HAS_INTERNAL_TESTS}) - SET_APPEND(_GO_TEST_SRCS_VALUE $FILES) -} - -# tag:go-specific -_GO_XTEST_SRCS_VALUE= -GO_HAS_EXTERNAL_TESTS=no -### @usage: GO_XTEST_SRCS(Files...) -### .go sources for external tests of a module -macro GO_XTEST_SRCS(FILES...) { - GO_FAKE_OUTPUT($FILES) - SET(GO_HAS_EXTERNAL_TESTS yes) - SET_APPEND(_GO_XTEST_SRCS_VALUE $FILES) -} - -# tag:go-specific -macro _GO_UNUSED_SRCS(FLAGS...) { - ENABLE(UNUSED_MACRO) -} - -# tag:go-specific -_CGO_SRCS_VALUE= -### @usage: CGO_SRCS(Files...) -### .go sources to be built with CGO -macro CGO_SRCS(FILES...) { - SET_APPEND(_CGO_SRCS_VALUE $FILES) - PEERDIR(${GOSTD}/syscall) -} - -# tag:go-specific -GO_LDFLAGS_GLOBAL= -### @usage: GO_LDFLAGS(Flags...) -### Link flags for GO_PROGRAM linking from .go sources -macro GO_LDFLAGS(FLAGS...) { - SET_APPEND(GO_LDFLAGS_GLOBAL $FLAGS) -} - -# tag:go-specific -CGO_CFLAGS_VALUE= -### @usage: CGO_CFLAGS(Flags...) -### Compiler flags specific to CGO compilation -macro CGO_CFLAGS(FLAGS...) { - SET_APPEND(CGO_CFLAGS_VALUE $FLAGS) - CFLAGS($FLAGS) -} - -# tag:go-specific -CGO_LDFLAGS_VALUE= -### @usage: CGO_LDFLAGS(Files...) -### Linker flags specific to CGO linking -macro CGO_LDFLAGS(FLAGS...) { - SET_APPEND(CGO_LDFLAGS_VALUE $FLAGS) - GO_LDFLAGS($FLAGS) -} - -# tag:go-specific -_GO_SKIP_TEST_VALUE= -### @usage: GO_SKIP_TESTS(TestNames...) -### -### Define a set of tests that should not be run. -### NB! Subtests are not taken into account! -macro GO_SKIP_TESTS(TESTS...) { - SET_APPEND(_GO_SKIP_TEST_VALUE $TESTS) - RESTRICT_PATH(vendor MSG This macro is prohibited to be used outside the vendor/ directory) -} - -# tag:go-specific tag:internal -_GO_EMBED_VALUE= -_GO_EMBED_INPUTS= -### @usage: _GO_EMBED_PATTERN(PATTERN) # internal -### -### Define an embed pattern. -macro _GO_EMBED_PATTERN(XTEST?"_xtest":"", PATTERN, IMPORT_PATH) { - SET(VAR_SALT1 $XTEST $PATTERN $IMPORT_PATH 1) - SET(_PATTERN_GLOB1 uniq_embed_${hash:VAR_SALT1}) - _GLOB($_PATTERN_GLOB1 ${ARCADIA_ROOT}/${IMPORT_PATH}/${PATTERN}/**/* EXCLUDE ${ARCADIA_ROOT}/${IMPORT_PATH}/${PATTERN}/**/_* ${ARCADIA_ROOT}/${IMPORT_PATH}/${PATTERN}/**/.*) - SET(VAR_SALT2 $XTEST $PATTERN $IMPORT_PATH 2) - SET(_PATTERN_GLOB2 _uniq_embed_${hash:VAR_SALT2}) - _GLOB($_PATTERN_GLOB2 ${ARCADIA_ROOT}/${IMPORT_PATH}/${PATTERN}) - SET_APPEND(_GO_EMBED_VALUE ++embed$XTEST $PATTERN \$$_PATTERN_GLOB1 \$$_PATTERN_GLOB2) - SET_APPEND(_GO_EMBED_INPUTS \$$_PATTERN_GLOB1 \$$_PATTERN_GLOB2) -} - -# tag:go-specific -### @usage: GO_EMBED_PATTERN(PATTERN) -### -### Define an embed pattern. -macro GO_EMBED_PATTERN(PATTERN) { - _GO_EMBED_PATTERN($PATTERN $_GO_IMPORT_PATH) -} - -# tag:go-specific -### @usage: GO_TEST_EMBED_PATTERN(PATTERN) -### -### Define an embed pattern for internal go tests. -macro GO_TEST_EMBED_PATTERN(PATTERN) { - _GO_EMBED_PATTERN($PATTERN $_GO_IMPORT_PATH) -} - -# tag:go-specific -### @usage: GO_XTEST_EMBED_PATTERN(PATTERN) -### -### Define an embed pattern for external go tests. -macro GO_XTEST_EMBED_PATTERN(PATTERN) { - _GO_EMBED_PATTERN(XTEST $PATTERN $_GO_IMPORT_PATH) -} - -# tag:go-specific tag:internal -### @usage: _GO_EMBED_DIR(PATTERN) # internal -### -### Define an embed directory DIR. -macro _GO_EMBED_DIR(XTEST?"_xtest":"", DIR, IMPORT_PATH, ALL?"all:":"", EXCLUDES...) { - SET(VAR_SALT $XTEST $DIR $IMPORT_PATH) - SET(_PATTERN_GLOB uniq_embed_${hash:VAR_SALT}) - _GLOB($_PATTERN_GLOB ${ARCADIA_ROOT}/${IMPORT_PATH}/${DIR}/**/* EXCLUDE ${pre=${ARCADIA_ROOT}/${IMPORT_PATH}/${DIR}/**/:EXCLUDES}) - SET_APPEND(_GO_EMBED_VALUE ++embed$XTEST $ALL$DIR \$$_PATTERN_GLOB) - SET_APPEND(_GO_EMBED_INPUTS \$$_PATTERN_GLOB) -} - -# tag:go-specific -### @usage: GO_EMBED_DIR(DIR) -### -### Define an embed directory DIR. -macro GO_EMBED_DIR(ALL?"ALL":"_* .*", DIR) { - _GO_EMBED_DIR($DIR $_GO_IMPORT_PATH ${ALL}) -} - -# tag:go-specific -### @usage: GO_EMBED_TEST_DIR(DIR) -### -### Define an embed directory DIR for internal go tests. -macro GO_EMBED_TEST_DIR(ALL?"ALL":"_* .*", DIR) { - _GO_EMBED_DIR($DIR $_GO_IMPORT_PATH ${ALL}) -} - -# tag:go-specific -### @usage: GO_EMBED_XTEST_DIR(DIR) -### -### Define an embed directory DIR for external go tests. -macro GO_EMBED_XTEST_DIR(ALL?"ALL":"_* .*", DIR) { - _GO_EMBED_DIR(XTEST $DIR $_GO_IMPORT_PATH ${ALL}) -} - -# tag:go-specific -_GO_TOOLCHAIN_ENV_GOARCH=unknown -when ($ARCH_ARM64) { - _GO_TOOLCHAIN_ENV_GOARCH=${env:"GOARCH=arm64"} -} -elsewhen ($ARCH_X86_64) { - _GO_TOOLCHAIN_ENV_GOARCH=${env:"GOARCH=amd64"} -} - -# tag:go-specific -_GO_TOOLCHAIN_ENV_GOOS=unknown -when ($OS_DARWIN) { - _GO_TOOLCHAIN_ENV_GOOS=${env:"GOOS=darwin"} -} -elsewhen ($OS_LINUX) { - _GO_TOOLCHAIN_ENV_GOOS=${env:"GOOS=linux"} -} -elsewhen ($OS_WINDOWS) { - _GO_TOOLCHAIN_ENV_GOOS=${env:"GOOS=windows"} -} -_GO_TOOLCHAIN_ENV_PATH= - -# tag:go-specific -GO_TOOLCHAIN_ENV=$TOOLCHAIN_ENV $_GO_TOOLCHAIN_ENV_GOARCH $_GO_TOOLCHAIN_ENV_GOOS $_GO_TOOLCHAIN_ENV_PATH - -# tag:go-specific -_GO_GRPC_WELLKNOWN=\ - vendor/google.golang.org/grpc \ - vendor/google.golang.org/grpc \ - vendor/google.golang.org/grpc/codes \ - vendor/google.golang.org/grpc/grpclog \ - vendor/google.golang.org/grpc/status - -# tag:go-specific -macro _GO_GRPC() { - SET(GO_PROTO_GEN_PLUGINS plugins=grpc) - PEERDIR(${GOSTD}/context ${_GO_GRPC_WELLKNOWN}) -} - -# tag:go-specific -### @usage: GO_GRPC_GATEWAY_SRCS() -### -### Use of grpc-gateway plugin (Supported for Go only). -macro GO_GRPC_GATEWAY_SRCS(FILE...) { - ENABLE(UNUSED_MACRO) -} - -# tag:go-specific -### @usage: GO_GRPC_GATEWAY_SWAGGER_SRCS() -### -### Use of grpc-gateway plugin w/ swagger emission (Supported for Go only). -macro GO_GRPC_GATEWAY_SWAGGER_SRCS(FILE...) { - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options) -} - -# tag:go-specific -_GO_PROTO_GRPC_GATEWAY_OPTS= -_GO_PROTO_GRPC_GATEWAY_OUTS= - -# tag:go-specific -macro _GO_GRPC_GATEWAY_SRCS_IMPL(Files...) { - foreach (File : $Files) { - [.proto]=$_GO_PROTO_CMD_IMPL($File $_GO_PROTO_GRPC_GATEWAY_OPTS $_GO_PROTO_GRPC_GATEWAY_OUTS) - } - - PEERDIR(${GOSTD}/context ${GOSTD}/io ${GOSTD}/net/http) - PEERDIR(vendor/github.com/golang/protobuf/descriptor) - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/runtime) - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/utilities) - PEERDIR(vendor/google.golang.org/grpc/metadata) -} - -# tag:go-specific -macro _SETUP_GO_GRPC_GATEWAY() { - SET(_GO_PROTO_GRPC_GATEWAY_OPTS $_PROTO_PLUGIN_ARGS_BASE(go_grpc_gw vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway allow_repeated_fields_in_body=true:)) - SET(_GO_PROTO_GRPC_GATEWAY_OUTS \${output;hide;norel;nopath;noext;suf=.pb.gw.go:File}) -} - -# tag:go-specific -macro _GO_GRPC_GATEWAY_SRCS(Files...) { - _SETUP_GO_GRPC_GATEWAY() - _GO_GRPC_GATEWAY_SRCS_IMPL($Files) -} - -# tag:go-specific -macro _GO_GRPC_GATEWAY_SWAGGER_SRCS(Files...) { - _SETUP_GO_GRPC_GATEWAY() - SET_APPEND(_GO_PROTO_GRPC_GATEWAY_OPTS $_PROTO_PLUGIN_ARGS_BASE(swagger vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger logtostderr=true:)) - SET_APPEND(_GO_PROTO_GRPC_GATEWAY_OUTS \${output;hide;norel;noauto;nopath;noext;suf=.swagger.json:File}) - - _GO_GRPC_GATEWAY_SRCS_IMPL($Files) - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options) -} - -# tag:go-specific -### @usage: GO_GRPC_GATEWAY_V2_SRCS() -### -### Use of grpc-gateway plugin (Supported for Go only). -macro GO_GRPC_GATEWAY_V2_SRCS(FILE...) { - ENABLE(UNUSED_MACRO) -} - -# tag:go-specific -_GO_PROTO_GRPC_GATEWAY_V2_OPTS= -_GO_PROTO_GRPC_GATEWAY_V2_OUTS= - -# tag:go-specific -macro _GO_GRPC_GATEWAY_V2_SRCS_IMPL(Files...) { - foreach (File : $Files) { - [.proto]=$_GO_PROTO_CMD_IMPL($File $_GO_PROTO_GRPC_GATEWAY_V2_OPTS $_GO_PROTO_GRPC_GATEWAY_V2_OUTS) - } - - PEERDIR(${GOSTD}/context ${GOSTD}/io ${GOSTD}/net/http) - PEERDIR(vendor/github.com/golang/protobuf/descriptor) - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime) - PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/v2/utilities) - PEERDIR(vendor/google.golang.org/grpc/metadata) - PEERDIR(vendor/google.golang.org/protobuf/proto) -} - -# tag:go-specific -macro _SETUP_GO_GRPC_GATEWAY_V2() { - SET(_GO_PROTO_GRPC_GATEWAY_V2_OPTS $_PROTO_PLUGIN_ARGS_BASE(go_grpc_gw vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway allow_repeated_fields_in_body=true:)) - SET(_GO_PROTO_GRPC_GATEWAY_V2_OUTS \${output;hide;norel;nopath;noext;suf=.pb.gw.go:File}) -} - -# tag:go-specific -macro _GO_GRPC_GATEWAY_V2_SRCS(Files...) { - _SETUP_GO_GRPC_GATEWAY_V2() - _GO_GRPC_GATEWAY_V2_SRCS_IMPL($Files) -} - -# tag:go-specific -when ($MUSL == "yes") { - _GO_DEFAULT_ALLOCATOR=LF -} -otherwise { - _GO_DEFAULT_ALLOCATOR=FAKE -} - -# tag:go-specific tag:internal -### @usage _GO_BASE_UNIT # internal -### -### The base module of all golang modules. Defines common properties, dependencies and rules for go build. -module _GO_BASE_UNIT: _BASE_UNIT { - .EXTS=.go .gosrc .o .obj .a .symabis .mf - .CMD=TOUCH_UNIT - .NODE_TYPE=Bundle - .GLOBAL=GO_LDFLAGS - .PEERDIR_POLICY=as_build_from - .ALIASES=SRCS=_GO_SRCS RESOURCE=_GO_RESOURCE GO_TEST_SRCS=_GO_UNUSED_SRCS GO_XTEST_SRCS=_GO_UNUSED_SRCS GRPC=_GO_GRPC GO_GRPC_GATEWAY_SRCS=_GO_GRPC_GATEWAY_SRCS GO_GRPC_GATEWAY_SWAGGER_SRCS=_GO_GRPC_GATEWAY_SWAGGER_SRCS CFLAGS=CGO_CFLAGS GO_TEST_EMBED_PATTERN=_GO_UNUSED_SRCS GO_XTEST_EMBED_PATTERN=_GO_UNUSED_SRCS GO_TEST_EMBED_DIR=_GO_UNUSED_SRCS GO_XTEST_EMBED_DIR=_GO_UNUSED_SRCS GO_GRPC_GATEWAY_V2_SRCS=_GO_GRPC_GATEWAY_V2_SRCS - .ALLOWED=GO_PROTO_PLUGIN USE_CXX USE_UTIL RESOURCE_FILES - .IGNORED=GO_SKIP_TESTS USE_SKIFF - .RESTRICTED=TEST_SRCS - .DEFAULT_NAME_GENERATOR=UseDirNameOrSetGoPackage - - ENABLE(_GO_MODULE) - SET(MODULE_TAG GO) - PEERDIR_TAGS=GO GO_PROTO GO_FBS __EMPTY__ - DEFAULT(_GO_VET_TOOL) - DEFAULT(_GO_VET_FLAGS) - DEFAULT(_GO_VET_EXTS) - DEFAULT(_GO_SONAME) - - NO_RUNTIME() - - SET(COVERAGE_FLAGS) - SET(EXTRA_OUTPUT) - SET(MODULE_LANG GO) - ENABLE(FORCE_CONSISTENT_DEBUG) - - PEERDIR(build/external_resources/go_tools) - - GO_PROTO_OUTS+=${output;hide;norel;nopath;noext;suf=.pb.go:File} - GO_PROTO_OPTS+=--plugin=protoc-gen-go=${tool:_TOOL_PROTOC_GEN_GO} --go_out=$GO_PROTO_GEN_PLUGINS:${ARCADIA_BUILD_ROOT}/$PROTO_NAMESPACE - - when ($COMPILER_PLATFORM && $NEED_PLATFORM_PEERDIRS == "yes") { - PEERDIR+=$COMPILER_PLATFORM - } - - when ($CLANG == "yes" || $GCC == "yes") { - CGO_CFLAGS_VALUE += -w -pthread -fpic - CGO2_CFLAGS_VALUE += -Wno-unused-variable - } - - select ($GO_VET) { - "yes" | "on" ? { - _GO_VET=yes - _GO_VET_FLAGS+=-cgocall=false - } - "yndexer" ? { - _GO_VET=yes - PEERDIR+=build/external_resources/goyndexer - _GO_VET_TOOL=${GOYNDEXER_RESOURCE_GLOBAL}/goyndexer - _GO_YDX_FILE=++ydx-file ${_GO_YNDEXER_EXT} - _GO_VET_FLAGS=-indexer.arc ${ARCADIA_ROOT} -indexer.indexfile ${GO_YNDEXER_OUTPUT} -indexer.loglevel info - _GO_FMT_ADD_CHECK=no - _GO_VET_ADD_CHECK=no - GO_VET_INFO_EXT=.ydx.out - GO_VET_REPORT_EXT=.ydx.txt - _GO_VET_EXTS=++vet-info-ext .ydx.out ++vet-report-ext .ydx.txt - _GO_CGO1_WRAPPER_FLAGS=--build-prefix=__ARCADIA_BUILD_ROOT_PREFIX__ --source-prefix=__ARCADIA_SOURCE_ROOT_PREFIX__ - } - "yolint" ? { - _GO_VET=yes - PEERDIR+=build/external_resources/yolint - _GO_VET_TOOL=${YOLINT_RESOURCE_GLOBAL}/yolint - _GO_VET_FLAGS=-migration.config=${input:"${ARCADIA_ROOT}/build/rules/go/migrations.yaml"} -scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"} - } - "yolint_next" ? { - _GO_VET=yes - PEERDIR+=build/external_resources/yolint - _GO_VET_TOOL=${YOLINT_NEXT_RESOURCE_GLOBAL}/yolint - _GO_VET_FLAGS=-scopelint.config=${input:"${ARCADIA_ROOT}/build/rules/go/extended_lint.yaml"} - } - "local" ? { - _GO_VET=yes - _GO_VET_FLAGS= - } - default ? { - _GO_VET=no - _GO_VET_FLAGS= - } - } - SET(_GO_VET $_GO_VET) - - when ($GO_VET_TOOL == "") { - _GO_VET_TOOL_REAL=$_GO_VET_TOOL - } - otherwise { - _GO_VET_TOOL_REAL=$GO_VET_TOOL - } - - when ($GO_VET_FLAGS == "") { - _GO_VET_FLAGS_REAL=$_GO_VET_FLAGS - } - otherwise { - _GO_VET_FLAGS_REAL=$GO_VET_FLAGS - } - - when ($_GO_VET == "yes" && $NO_GO_VET != "yes") { - GO_VET_OUTPUT=++vet $_GO_VET_TOOL_REAL ++vet-flags $_GO_VET_FLAGS_REAL $GO_VET_EXTRA_FLAGS $GO_VET_OUTPUT_INFO $GO_VET_OUTPUT_REPORT $_GO_VET_EXTS - } - otherwise { - GO_VET_OUTPUT= - _GO_VET_ADD_CHECK=no - } - - when ($GO_DEBUG_PATH_RELATIVE == "yes") { - _GO_DEBUG_PATH__NO_UID__=++debug-root-map source=;build=;tools= ++tools-root $(TOOL_ROOT) - _GO_COMPILE_SYMABIS_TRIMPATH__NO_UID__=-trimpath $ARCADIA_ROOT=>;$ARCADIA_BUILD_ROOT=>;$(TOOL_ROOT)=> - } - otherwise { - _GO_DEBUG_PATH__NO_UID__=++debug-root-map source=/-S;build=/-B;tools=/-T ++tools-root $(TOOL_ROOT) - _GO_COMPILE_SYMABIS_TRIMPATH__NO_UID__=-trimpath $ARCADIA_ROOT=>/-S;$ARCADIA_BUILD_ROOT=>/-B;$(TOOL_ROOT)=>/-T - } - - _GO_PROCESS_SRCS() - - when ($CLANG == "yes") { - _GO_EXTLD=clang - GO_TOOLCHAIN_ENV += ${env:"CC=clang"} - } - otherwise { - _GO_EXTLD=gcc - GO_TOOLCHAIN_ENV += ${env:"CC=gcc"} - } - - when ($OS_DARWIN) { - PEERDIR+=build/external_resources/go_fake_xcrun - GO_EXTLD = ++extld $_GO_EXTLD ++extldflags $_GO_SONAME $LD_SDK_VERSION -undefined dynamic_lookup $C_FLAGS_PLATFORM --sysroot=$MACOS_SDK_RESOURCE_GLOBAL --start-wa ${rootrel;ext=.a:SRCS_GLOBAL} --end-wa ${rootrel;ext=.o:SRCS_GLOBAL} --cgo-peers $LDFLAGS $LDFLAGS_GLOBAL $OBJADDE $OBJADDE_LIB $GO_LDFLAGS_GLOBAL $C_LIBRARY_PATH $C_SYSTEM_LIBRARIES_INTERCEPT $C_SYSTEM_LIBRARIES $STRIP_FLAG - CGO2_LDFLAGS_VALUE += $LD_SDK_VERSION -undefined dynamic_lookup -nodefaultlibs -lc - } - elsewhen ($OS_LINUX) { - GO_EXTLD = ++extld $_GO_EXTLD ++extldflags $_GO_SONAME $C_FLAGS_PLATFORM --sysroot=$OS_SDK_ROOT_RESOURCE_GLOBAL -Wl,--whole-archive ${rootrel;ext=.a:SRCS_GLOBAL} -Wl,--no-whole-archive ${rootrel;ext=.o:SRCS_GLOBAL} --cgo-peers $LDFLAGS $LDFLAGS_GLOBAL $OBJADDE $OBJADDE_LIB $GO_LDFLAGS_GLOBAL $C_LIBRARY_PATH $C_SYSTEM_LIBRARIES_INTERCEPT $C_SYSTEM_LIBRARIES $STRIP_FLAG - CGO2_LDFLAGS_VALUE += -Wl,--unresolved-symbols=ignore-all -nodefaultlibs -lc - } - otherwise { - GO_EXTLD = ++extld $_GO_EXTLD - } - - when ($RACE == "yes") { - _GO_COMPILE_FLAGS_RACE=-race - _GO_LINK_FLAGS_RACE=-race - } - otherwise { - _GO_COMPILE_FLAGS_RACE= - _GO_LINK_FLAGS_RACE= - } - - when ($PIC == "yes" || $PIE == "yes") { - _GO_COMPILE_FLAGS_SHARED=-shared - _GO_ASM_FLAGS_SHARED=-shared - } - otherwise { - _GO_COMPILE_FLAGS_SHARED= - _GO_ASM_FLAGS_SHARED= - } - - GO_ASM_FLAGS_VALUE += $_GO_ASM_FLAGS_SHARED - GO_COMPILE_FLAGS_VALUE += $_GO_COMPILE_FLAGS_RACE $_GO_COMPILE_FLAGS_SHARED - GO_LINK_FLAGS_VALUE += $_GO_LINK_FLAGS_RACE - - ADDINCL(${GOSTD}/runtime) -} - -# tag:go-specific -### @usage: GO_LIBRARY([name]) -### -### Go library module definition. -### Compile Go module as a library suitable for PEERDIR from other Go modules. -### Will select Go implementation on PEERDIR to PROTO_LIBRARY. -module GO_LIBRARY: _GO_BASE_UNIT { - .CMD=GO_LINK_LIB - .NODE_TYPE=Bundle - .FINAL_TARGET=no - SET(_GO_TOOL_MODE lib) - SET(MODULE_TYPE LIBRARY) - SET(PEERDIR_TAGS GO GO_PROTO GO_FBS __EMPTY__ PACKAGE_UNION) - _REQUIRE_EXPLICIT_LICENSE(vendor) - - MODULE_SUFFIX=.a -} - -# tag:go-specific -### @usage: GO_PROGRAM([name]) -### -### Go program module definition. -### Compile and link Go module to an executable program. -### Will select Go implementation on PEERDIR to PROTO_LIBRARY. -module GO_PROGRAM: _GO_BASE_UNIT { - .CMD=GO_LINK_EXE - .NODE_TYPE=Program - .PROXY=yes - .SYMLINK_POLICY=EXE - .ALLOWED=INDUCED_DEPS - .FINAL_TARGET=yes - SET(_GO_TOOL_MODE exe) - SET(MODULE_TYPE PROGRAM) - SET(GO_VET_OUTPUT_INFO) - - ALLOCATOR($_GO_DEFAULT_ALLOCATOR) - - _USE_LINKER() - - ENABLE(COMMON_LINK_SETTINGS) - - when ($MUSL == "yes") { - PEERDIR += contrib/libs/musl/full - } - when ($RACE == "yes") { - PEERDIR += contrib/libs/cxxsupp/builtins - } - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.exe - } - - PEERDIR(${GOSTD}/runtime library/go/core/buildinfo) - - when ($RACE == "yes") { - PEERDIR += ${GOSTD}/runtime/cgo - PEERDIR += ${GOSTD}/runtime/race - } - - when ($MUSL == "yes") { - GO_WITH_MUSL = ++musl - } - - when ($HARDENING == "yes") { - _GO_BUILDMODE=++buildmode=pie - } -} - -# tag:go-specific -module _GO_DLL_BASE_UNIT: GO_PROGRAM { - .CMD=GO_LINK_DLL - .SYMLINK_POLICY=SO - .ALLOWED=WHOLE_ARCHIVE - .ARGS_PARSER=DLL - .NODE_TYPE=Library - .PROXY=yes - SET(_GO_TOOL_MODE dll) - SET(MODULE_TYPE DLL) - - GO_PACKAGE_NAME(main) - - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_SUFFIX=.dll - } - elsewhen ($DARWIN == "yes" || $OS_IOS == "yes") { - MODULE_PREFIX=lib - MODULE_SUFFIX=.dylib$MODULE_VERSION - } - otherwise { - MODULE_PREFIX=lib - MODULE_SUFFIX=.so$MODULE_VERSION - } - - when ($OS_DARWIN) { - _GO_SONAME=-Wl,-install_name,$SONAME - } - elsewhen ($OS_LINUX) { - _GO_SONAME=-Wl,-soname,$SONAME - } - - when ($MODULE_VERSION) { - when ($OS_LINUX || $OS_DARWIN) { - _GO_LINK_EXE_EXT_CMD+= && $LINK_OR_COPY_CMD $TARGET ${output;nopath;noext:SONAME} - } - } -} - -# tag:go-specific -### @usage: GO_DLL(name major_ver [minor_ver] [PREFIX prefix]) -### -### Go ishared object module definition. -### Compile and link Go module to a shared object. -### Will select Go implementation on PEERDIR to PROTO_LIBRARY. -module GO_DLL: _GO_DLL_BASE_UNIT { -} - -# tag:go-specific tag:test -### @usage: GO_BENCH_TIMEOUT(x) -### -### Sets timeout in seconds for 1 Benchmark in go benchmark suite -### -### Documentation about the system test: https://wiki.yandex-team.ru/yatool/test/ -macro GO_BENCH_TIMEOUT(bench_timeout) { - SET(GO_BENCH_TIMEOUT $bench_timeout) -} - -# tag:go-specific tag:test -### @usage: GO_TEST([name]) -### -### Go test module definition. -### Compile and link Go module as a test suitable for running with Arcadia testing support. -### All usual testing support macros like DATA, DEPENDS, SIZE, REQUIREMENTS etc. are supported. -### Will select Go implementation on PEERDIR to PROTO_LIBRARY. -module GO_TEST: GO_PROGRAM { - .CMD=GO_LINK_TEST - .ALIASES=GO_TEST_SRCS=GO_TEST_SRCS GO_XTEST_SRCS=GO_XTEST_SRCS GO_TEST_EMBED_PATTERN=GO_TEST_EMBED_PATTERN GO_XTEST_EMBED_PATTERN=GO_XTEST_EMBED_PATTERN GO_TEST_EMBED_DIR=GO_TEST_EMBED_DIR GO_XTEST_EMBED_DIR=GO_XTEST_EMBED_DIR - .ALLOWED=GO_SKIP_TESTS YT_SPEC - .FINAL_TARGET=no - SET(_GO_TOOL_MODE test) - SET(MODULE_TYPE PROGRAM) - ENABLE(GO_TEST_MODULE) - SET(GO_COVER_INFO_VALUE) - - # We have to add uncoditionaly PEERDIR to ${GOSTD}/os here thouth it is really - # needed when TestMain is defined in the source code of the test - PEERDIR(${GOSTD}/os) - - PEERDIR(${GOSTD}/testing/internal/testdeps) - PEERDIR(${GOSTD}/testing) - - ADD_YTEST($MODULE_PREFIX$REALPRJNAME go.test) - ADD_YTEST($MODULE_PREFIX$REALPRJNAME go.bench) - - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) -} - -# tag:go-specific -macro GO_MOCKGEN_FROM(Path) { - SET(MOCKGEN_FROM ${Path}) -} - -# tag:go-specific -macro GO_MOCKGEN_TYPES(Types...) { - SET(MOCKGEN_TYPES ${join=\\${__COMMA__}:Types}) -} - -# tag:go-specific -macro GO_MOCKGEN_REFLECT() { - PEERDIR(${GOSTD}/encoding/gob) - PEERDIR(${GOSTD}/flag) - PEERDIR(${GOSTD}/fmt) - PEERDIR(${GOSTD}/os) - PEERDIR(${GOSTD}/path) - PEERDIR(${GOSTD}/reflect) - PEERDIR(vendor/github.com/golang/mock/mockgen/model) - PEERDIR(${MOCKGEN_FROM}) - - RUN_PROGRAM(vendor/github.com/golang/mock/mockgen -prog_only a.yandex-team.ru/${MOCKGEN_FROM} $MOCKGEN_TYPES STDOUT main.go) -} - -# tag:go-specific -macro GO_MOCKGEN_MOCKS() { - PEERDIR(${GOSTD}/reflect) - PEERDIR(vendor/github.com/golang/mock/gomock) - - RUN_PROGRAM(vendor/github.com/golang/mock/mockgen -package mocks -exec_only ${BINDIR}/gen/gen a.yandex-team.ru/${MOCKGEN_FROM} $MOCKGEN_TYPES TOOL ${MODDIR}/gen STDOUT mocks.go) -} - -# Conflict between protobuf-java and protobuf-javalite ¯\_(ツ)_/¯ -# both libraries are required by grpc -JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE=\ - com.google.protobuf.AbstractMessageLite \ - com.google.protobuf.AbstractMessageLite$Builder \ - com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream \ - com.google.protobuf.AbstractMessageLite$InternalOneOfEnum \ - com.google.protobuf.AbstractParser \ - com.google.protobuf.AbstractProtobufList \ - com.google.protobuf.AllocatedBuffer \ - com.google.protobuf.AllocatedBuffer$1 \ - com.google.protobuf.AllocatedBuffer$2 \ - com.google.protobuf.Android \ - com.google.protobuf.Any \ - com.google.protobuf.Any$1 \ - com.google.protobuf.Any$Builder \ - com.google.protobuf.AnyOrBuilder \ - com.google.protobuf.AnyProto \ - com.google.protobuf.Api \ - com.google.protobuf.Api$1 \ - com.google.protobuf.Api$Builder \ - com.google.protobuf.ApiOrBuilder \ - com.google.protobuf.ApiProto \ - com.google.protobuf.ArrayDecoders \ - com.google.protobuf.ArrayDecoders$1 \ - com.google.protobuf.ArrayDecoders$Registers \ - com.google.protobuf.BinaryReader \ - com.google.protobuf.BinaryReader$1 \ - com.google.protobuf.BinaryReader$SafeHeapReader \ - com.google.protobuf.BinaryWriter \ - com.google.protobuf.BinaryWriter$1 \ - com.google.protobuf.BinaryWriter$SafeDirectWriter \ - com.google.protobuf.BinaryWriter$SafeHeapWriter \ - com.google.protobuf.BinaryWriter$UnsafeDirectWriter \ - com.google.protobuf.BinaryWriter$UnsafeHeapWriter \ - com.google.protobuf.BooleanArrayList \ - com.google.protobuf.BoolValue \ - com.google.protobuf.BoolValue$1 \ - com.google.protobuf.BoolValue$Builder \ - com.google.protobuf.BoolValueOrBuilder \ - com.google.protobuf.BufferAllocator \ - com.google.protobuf.BufferAllocator$1 \ - com.google.protobuf.ByteBufferWriter \ - com.google.protobuf.ByteOutput \ - com.google.protobuf.ByteString \ - com.google.protobuf.ByteString$1 \ - com.google.protobuf.ByteString$2 \ - com.google.protobuf.ByteString$AbstractByteIterator \ - com.google.protobuf.ByteString$ArraysByteArrayCopier \ - com.google.protobuf.ByteString$BoundedByteString \ - com.google.protobuf.ByteString$ByteArrayCopier \ - com.google.protobuf.ByteString$ByteIterator \ - com.google.protobuf.ByteString$CodedBuilder \ - com.google.protobuf.ByteString$LeafByteString \ - com.google.protobuf.ByteString$LiteralByteString \ - com.google.protobuf.ByteString$Output \ - com.google.protobuf.ByteString$SystemByteArrayCopier \ - com.google.protobuf.BytesValue \ - com.google.protobuf.BytesValue$1 \ - com.google.protobuf.BytesValue$Builder \ - com.google.protobuf.BytesValueOrBuilder \ - com.google.protobuf.CanIgnoreReturnValue \ - com.google.protobuf.CheckReturnValue \ - com.google.protobuf.CodedInputStream \ - com.google.protobuf.CodedInputStream$1 \ - com.google.protobuf.CodedInputStream$ArrayDecoder \ - com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder \ - com.google.protobuf.CodedInputStream$StreamDecoder \ - com.google.protobuf.CodedInputStream$StreamDecoder$RefillCallback \ - com.google.protobuf.CodedInputStream$StreamDecoder$SkippedDataSink \ - com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder \ - com.google.protobuf.CodedInputStreamReader \ - com.google.protobuf.CodedInputStreamReader$1 \ - com.google.protobuf.CodedOutputStream \ - com.google.protobuf.CodedOutputStream$1 \ - com.google.protobuf.CodedOutputStream$AbstractBufferedEncoder \ - com.google.protobuf.CodedOutputStream$ArrayEncoder \ - com.google.protobuf.CodedOutputStream$ByteOutputEncoder \ - com.google.protobuf.CodedOutputStream$HeapNioEncoder \ - com.google.protobuf.CodedOutputStream$OutOfSpaceException \ - com.google.protobuf.CodedOutputStream$OutputStreamEncoder \ - com.google.protobuf.CodedOutputStream$SafeDirectNioEncoder \ - com.google.protobuf.CodedOutputStream$UnsafeDirectNioEncoder \ - com.google.protobuf.CodedOutputStreamWriter \ - com.google.protobuf.CodedOutputStreamWriter$1 \ - com.google.protobuf.DoubleArrayList \ - com.google.protobuf.DoubleValue \ - com.google.protobuf.DoubleValue$1 \ - com.google.protobuf.DoubleValue$Builder \ - com.google.protobuf.DoubleValueOrBuilder \ - com.google.protobuf.Duration \ - com.google.protobuf.Duration$1 \ - com.google.protobuf.Duration$Builder \ - com.google.protobuf.DurationOrBuilder \ - com.google.protobuf.DurationProto \ - com.google.protobuf.Empty \ - com.google.protobuf.Empty$1 \ - com.google.protobuf.Empty$Builder \ - com.google.protobuf.EmptyOrBuilder \ - com.google.protobuf.EmptyProto \ - com.google.protobuf.Enum \ - com.google.protobuf.Enum$1 \ - com.google.protobuf.Enum$Builder \ - com.google.protobuf.EnumOrBuilder \ - com.google.protobuf.EnumValue \ - com.google.protobuf.EnumValue$1 \ - com.google.protobuf.EnumValue$Builder \ - com.google.protobuf.EnumValueOrBuilder \ - com.google.protobuf.ExperimentalApi \ - com.google.protobuf.ExtensionLite \ - com.google.protobuf.ExtensionRegistryFactory \ - com.google.protobuf.ExtensionRegistryLite \ - com.google.protobuf.ExtensionRegistryLite$ExtensionClassHolder \ - com.google.protobuf.ExtensionRegistryLite$ObjectIntPair \ - com.google.protobuf.ExtensionSchema \ - com.google.protobuf.ExtensionSchemaLite \ - com.google.protobuf.ExtensionSchemaLite$1 \ - com.google.protobuf.ExtensionSchemas \ - com.google.protobuf.Field \ - com.google.protobuf.Field$1 \ - com.google.protobuf.Field$Builder \ - com.google.protobuf.Field$Cardinality \ - com.google.protobuf.Field$Cardinality$1 \ - com.google.protobuf.Field$Kind \ - com.google.protobuf.Field$Kind$1 \ - com.google.protobuf.FieldInfo \ - com.google.protobuf.FieldInfo$1 \ - com.google.protobuf.FieldInfo$Builder \ - com.google.protobuf.FieldMask \ - com.google.protobuf.FieldMask$1 \ - com.google.protobuf.FieldMask$Builder \ - com.google.protobuf.FieldMaskOrBuilder \ - com.google.protobuf.FieldMaskProto \ - com.google.protobuf.FieldOrBuilder \ - com.google.protobuf.FieldSet \ - com.google.protobuf.FieldSet$1 \ - com.google.protobuf.FieldSet$Builder \ - com.google.protobuf.FieldSet$FieldDescriptorLite \ - com.google.protobuf.FieldType \ - com.google.protobuf.FieldType$1 \ - com.google.protobuf.FieldType$Collection \ - com.google.protobuf.FloatArrayList \ - com.google.protobuf.FloatValue \ - com.google.protobuf.FloatValue$1 \ - com.google.protobuf.FloatValue$Builder \ - com.google.protobuf.FloatValueOrBuilder \ - com.google.protobuf.GeneratedMessageInfoFactory \ - com.google.protobuf.GeneratedMessageLite \ - com.google.protobuf.GeneratedMessageLite$1 \ - com.google.protobuf.GeneratedMessageLite$Builder \ - com.google.protobuf.GeneratedMessageLite$DefaultInstanceBasedParser \ - com.google.protobuf.GeneratedMessageLite$ExtendableBuilder \ - com.google.protobuf.GeneratedMessageLite$ExtendableMessage \ - com.google.protobuf.GeneratedMessageLite$ExtendableMessage$ExtensionWriter \ - com.google.protobuf.GeneratedMessageLite$ExtendableMessageOrBuilder \ - com.google.protobuf.GeneratedMessageLite$ExtensionDescriptor \ - com.google.protobuf.GeneratedMessageLite$GeneratedExtension \ - com.google.protobuf.GeneratedMessageLite$MethodToInvoke \ - com.google.protobuf.GeneratedMessageLite$SerializedForm \ - com.google.protobuf.Int32Value \ - com.google.protobuf.Int32Value$1 \ - com.google.protobuf.Int32Value$Builder \ - com.google.protobuf.Int32ValueOrBuilder \ - com.google.protobuf.Int64Value \ - com.google.protobuf.Int64Value$1 \ - com.google.protobuf.Int64Value$Builder \ - com.google.protobuf.Int64ValueOrBuilder \ - com.google.protobuf.IntArrayList \ - com.google.protobuf.Internal \ - com.google.protobuf.Internal$BooleanList \ - com.google.protobuf.Internal$DoubleList \ - com.google.protobuf.Internal$EnumLite \ - com.google.protobuf.Internal$EnumLiteMap \ - com.google.protobuf.Internal$EnumVerifier \ - com.google.protobuf.Internal$FloatList \ - com.google.protobuf.Internal$IntList \ - com.google.protobuf.Internal$ListAdapter \ - com.google.protobuf.Internal$ListAdapter$Converter \ - com.google.protobuf.Internal$LongList \ - com.google.protobuf.Internal$MapAdapter \ - com.google.protobuf.Internal$MapAdapter$1 \ - com.google.protobuf.Internal$MapAdapter$Converter \ - com.google.protobuf.Internal$MapAdapter$EntryAdapter \ - com.google.protobuf.Internal$MapAdapter$IteratorAdapter \ - com.google.protobuf.Internal$MapAdapter$SetAdapter \ - com.google.protobuf.Internal$ProtobufList \ - com.google.protobuf.InvalidProtocolBufferException \ - com.google.protobuf.InvalidProtocolBufferException$InvalidWireTypeException \ - com.google.protobuf.IterableByteBufferInputStream \ - com.google.protobuf.JavaType \ - com.google.protobuf.LazyField \ - com.google.protobuf.LazyField$1 \ - com.google.protobuf.LazyField$LazyEntry \ - com.google.protobuf.LazyField$LazyIterator \ - com.google.protobuf.LazyFieldLite \ - com.google.protobuf.LazyStringArrayList \ - com.google.protobuf.LazyStringArrayList$ByteArrayListView \ - com.google.protobuf.LazyStringArrayList$ByteStringListView \ - com.google.protobuf.LazyStringList \ - com.google.protobuf.ListFieldSchema \ - com.google.protobuf.ListFieldSchema$1 \ - com.google.protobuf.ListFieldSchema$ListFieldSchemaFull \ - com.google.protobuf.ListFieldSchema$ListFieldSchemaLite \ - com.google.protobuf.ListValue \ - com.google.protobuf.ListValue$1 \ - com.google.protobuf.ListValue$Builder \ - com.google.protobuf.ListValueOrBuilder \ - com.google.protobuf.LongArrayList \ - com.google.protobuf.ManifestSchemaFactory \ - com.google.protobuf.ManifestSchemaFactory$1 \ - com.google.protobuf.ManifestSchemaFactory$CompositeMessageInfoFactory \ - com.google.protobuf.MapEntryLite \ - com.google.protobuf.MapEntryLite$1 \ - com.google.protobuf.MapEntryLite$Metadata \ - com.google.protobuf.MapFieldLite \ - com.google.protobuf.MapFieldSchema \ - com.google.protobuf.MapFieldSchemaLite \ - com.google.protobuf.MapFieldSchemas \ - com.google.protobuf.MessageInfo \ - com.google.protobuf.MessageInfoFactory \ - com.google.protobuf.MessageLite \ - com.google.protobuf.MessageLite$Builder \ - com.google.protobuf.MessageLiteOrBuilder \ - com.google.protobuf.MessageLiteToString \ - com.google.protobuf.MessageSchema \ - com.google.protobuf.MessageSchema$1 \ - com.google.protobuf.MessageSetSchema \ - com.google.protobuf.Method \ - com.google.protobuf.Method$1 \ - com.google.protobuf.Method$Builder \ - com.google.protobuf.MethodOrBuilder \ - com.google.protobuf.Mixin \ - com.google.protobuf.Mixin$1 \ - com.google.protobuf.Mixin$Builder \ - com.google.protobuf.MixinOrBuilder \ - com.google.protobuf.MutabilityOracle \ - com.google.protobuf.MutabilityOracle$1 \ - com.google.protobuf.NewInstanceSchema \ - com.google.protobuf.NewInstanceSchemaLite \ - com.google.protobuf.NewInstanceSchemas \ - com.google.protobuf.NioByteString \ - com.google.protobuf.NioByteString$1 \ - com.google.protobuf.NullValue \ - com.google.protobuf.NullValue$1 \ - com.google.protobuf.OneofInfo \ - com.google.protobuf.Option \ - com.google.protobuf.Option$1 \ - com.google.protobuf.Option$Builder \ - com.google.protobuf.OptionOrBuilder \ - com.google.protobuf.Parser \ - com.google.protobuf.PrimitiveNonBoxingCollection \ - com.google.protobuf.Protobuf \ - com.google.protobuf.ProtobufArrayList \ - com.google.protobuf.ProtobufLists \ - com.google.protobuf.ProtocolStringList \ - com.google.protobuf.ProtoSyntax \ - com.google.protobuf.RawMessageInfo \ - com.google.protobuf.Reader \ - com.google.protobuf.RopeByteString \ - com.google.protobuf.RopeByteString$1 \ - com.google.protobuf.RopeByteString$Balancer \ - com.google.protobuf.RopeByteString$PieceIterator \ - com.google.protobuf.RopeByteString$RopeInputStream \ - com.google.protobuf.Schema \ - com.google.protobuf.SchemaFactory \ - com.google.protobuf.SchemaUtil \ - com.google.protobuf.SmallSortedMap \ - com.google.protobuf.SmallSortedMap$1 \ - com.google.protobuf.SmallSortedMap$DescendingEntryIterator \ - com.google.protobuf.SmallSortedMap$DescendingEntrySet \ - com.google.protobuf.SmallSortedMap$EmptySet \ - com.google.protobuf.SmallSortedMap$EmptySet$1 \ - com.google.protobuf.SmallSortedMap$EmptySet$2 \ - com.google.protobuf.SmallSortedMap$Entry \ - com.google.protobuf.SmallSortedMap$EntryIterator \ - com.google.protobuf.SmallSortedMap$EntrySet \ - com.google.protobuf.SourceContext \ - com.google.protobuf.SourceContext$1 \ - com.google.protobuf.SourceContext$Builder \ - com.google.protobuf.SourceContextOrBuilder \ - com.google.protobuf.SourceContextProto \ - com.google.protobuf.StringValue \ - com.google.protobuf.StringValue$1 \ - com.google.protobuf.StringValue$Builder \ - com.google.protobuf.StringValueOrBuilder \ - com.google.protobuf.Struct \ - com.google.protobuf.Struct$1 \ - com.google.protobuf.Struct$Builder \ - com.google.protobuf.Struct$FieldsDefaultEntryHolder \ - com.google.protobuf.StructOrBuilder \ - com.google.protobuf.StructProto \ - com.google.protobuf.StructuralMessageInfo \ - com.google.protobuf.StructuralMessageInfo$Builder \ - com.google.protobuf.Syntax \ - com.google.protobuf.Syntax$1 \ - com.google.protobuf.TextFormatEscaper \ - com.google.protobuf.TextFormatEscaper$1 \ - com.google.protobuf.TextFormatEscaper$2 \ - com.google.protobuf.TextFormatEscaper$ByteSequence \ - com.google.protobuf.Timestamp \ - com.google.protobuf.Timestamp$1 \ - com.google.protobuf.Timestamp$Builder \ - com.google.protobuf.TimestampOrBuilder \ - com.google.protobuf.TimestampProto \ - com.google.protobuf.Type \ - com.google.protobuf.Type$1 \ - com.google.protobuf.Type$Builder \ - com.google.protobuf.TypeOrBuilder \ - com.google.protobuf.TypeProto \ - com.google.protobuf.UInt32Value \ - com.google.protobuf.UInt32Value$1 \ - com.google.protobuf.UInt32Value$Builder \ - com.google.protobuf.UInt32ValueOrBuilder \ - com.google.protobuf.UInt64Value \ - com.google.protobuf.UInt64Value$1 \ - com.google.protobuf.UInt64Value$Builder \ - com.google.protobuf.UInt64ValueOrBuilder \ - com.google.protobuf.UninitializedMessageException \ - com.google.protobuf.UnknownFieldSchema \ - com.google.protobuf.UnknownFieldSetLite \ - com.google.protobuf.UnknownFieldSetLiteSchema \ - com.google.protobuf.UnmodifiableLazyStringList \ - com.google.protobuf.UnmodifiableLazyStringList$1 \ - com.google.protobuf.UnmodifiableLazyStringList$2 \ - com.google.protobuf.UnsafeByteOperations \ - com.google.protobuf.UnsafeUtil \ - com.google.protobuf.UnsafeUtil$1 \ - com.google.protobuf.UnsafeUtil$Android32MemoryAccessor \ - com.google.protobuf.UnsafeUtil$Android64MemoryAccessor \ - com.google.protobuf.UnsafeUtil$JvmMemoryAccessor \ - com.google.protobuf.UnsafeUtil$MemoryAccessor \ - com.google.protobuf.Utf8 \ - com.google.protobuf.Utf8$DecodeUtil \ - com.google.protobuf.Utf8$Processor \ - com.google.protobuf.Utf8$SafeProcessor \ - com.google.protobuf.Utf8$UnpairedSurrogateException \ - com.google.protobuf.Utf8$UnsafeProcessor \ - com.google.protobuf.Value \ - com.google.protobuf.Value$1 \ - com.google.protobuf.Value$Builder \ - com.google.protobuf.Value$KindCase \ - com.google.protobuf.ValueOrBuilder \ - com.google.protobuf.WireFormat \ - com.google.protobuf.WireFormat$1 \ - com.google.protobuf.WireFormat$FieldType \ - com.google.protobuf.WireFormat$FieldType$1 \ - com.google.protobuf.WireFormat$FieldType$2 \ - com.google.protobuf.WireFormat$FieldType$3 \ - com.google.protobuf.WireFormat$FieldType$4 \ - com.google.protobuf.WireFormat$JavaType \ - com.google.protobuf.WireFormat$Utf8Validation \ - com.google.protobuf.WireFormat$Utf8Validation$1 \ - com.google.protobuf.WireFormat$Utf8Validation$2 \ - com.google.protobuf.WireFormat$Utf8Validation$3 \ - com.google.protobuf.WrappersProto \ - com.google.protobuf.Writer \ - com.google.protobuf.Writer$FieldOrder - -# tag:java-specific -JAVA_IGNORE_CLASSPATH_CLASH_VALUE=$JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE - -### @usage: JAVA_IGNORE_CLASSPATH_CLASH_FOR([classes]) -### Ignore classpath clash test fails for classes -macro JAVA_IGNORE_CLASSPATH_CLASH_FOR(Args...) { - SET_APPEND(JAVA_IGNORE_CLASSPATH_CLASH_VALUE $Args $JAVA_IGNORE_CLASSPATH_CLASH_DEFAULE_VALUE) -} - -# tag:python-specific -### @usage: PY_SRCS({| CYTHON_C} { | TOP_LEVEL | NAMESPACE ns} Files...) -### -### Build specified Python sources according to Arcadia binary Python build. Basically creates precompiled and source resources keyed with module paths. -### The resources eventually are linked into final program and can be accessed as regular Python modules. -### This custom loader linked into the program will add them to sys.meta_path. -### -### PY_SRCS also support .proto, .ev, .pyx and .swg files. The .proto and .ev are compiled to .py-code by protoc and than handled as usual .py files. -### .pyx and .swg lead to C/C++ Python extensions generation, that are automatically registered in Python as built-in modules. -### -### By default .pyx files are built as C++-extensions. Use CYTHON_C to build them as C (similar to BUILDWITH_CYTHON_C, but with the ability to specify namespace). -### -### __init__.py never required, but if present (and specified in PY_SRCS), it will be imported when you import package modules with __init__.py Oh. -### -### @example -### -### PY2_LIBRARY(mymodule) -### PY_SRCS(a.py sub/dir/b.py e.proto sub/dir/f.proto c.pyx sub/dir/d.pyx g.swg sub/dir/h.swg) -### END() -### -### PY_SRCS honors Python2 and Python3 differences and adjusts itself to Python version of a current module. -### PY_SRCS can be used in any Arcadia Python build modules like PY*_LIBRARY, PY*_PROGRAM, PY*TEST. -### PY_SRCS in LIBRARY or PROGRAM effectively converts these into PY2_LIBRARY and PY2_PROGRAM respectively. -### It is strongly advised to make this conversion explicit. Never use PY_SRCS in a LIBRARY if you plan to use it from external Python extension module. -### -### Documentation: https://wiki.yandex-team.ru/arcadia/python/pysrcs/#modulipylibrarypy3libraryimakrospysrcs -macro PY_SRCS() { - DEFAULT(MODULE_TAG PY2) - DEFAULT(PYTHON2 yes) - DEFAULT(PYTHON3 no) -} - -# tag:python-specific -_ALL_PY_FILES= - -# tag:python-specific -macro _ALL_PY_SRCS2(TOP_LEVEL?"TOP_LEVEL":"", RECURSIVE?"/**":"", ONLY_TEST_FILES?"test_*.py":"*.py", ONLY_TEST_FILES2?"*_test.py":"***", NO_TEST_FILES?"**/test_*.py **/*_test.py":"", NAMESPACE[], REST[], REST2[], EAT_TAIL[]) { - _GLOB(_ALL_PY_FILES ${suf=${RECURSIVE}/${ONLY_TEST_FILES}:REST} ${suf=${RECURSIVE}/${ONLY_TEST_FILES2}:REST2} ${suf=${RECURSIVE}/ya.make:REST} EXCLUDE ya.make ${NO_TEST_FILES}) -} - -# tag:python-specific -### @usage: ALL_PY_SRCS([RECURSIVE] [NO_TEST_FILES] { | TOP_LEVEL | NAMESPACE ns} [Dirs...]) -### -### Puts all .py-files from given Dirs (relative to projects') into PY_SRCS of the current module. -### If Dirs is ommitted project directory is used -### -### `RECURSIVE` makes lookup recursive with resprect to Dirs -### `NO_TEST_FILES` excludes files `test_*.py` and `*_test.py` those are normally subject to `TEST_SRCS` -### `TOP_LEVEL` and `NAMESPACE` are forwarded to `PY_SRCS` -### -### Note: Only one such macro per module is allowed -### Note: Macro is designed to reject any ya.make files in Dirs except current one -### -### @see [PY_SRCS()](#macro_PY_SRCS) -macro ALL_PY_SRCS(TOP_LEVEL?"TOP_LEVEL":"", NAMESPACE="", RECURSIVE?"RECURSIVE":"", NO_TEST_FILES?"NO_TEST_FILES":"", Files...) { - _ALL_PY_SRCS2(${pre=NAMESPACE :NAMESPACE} ${TOP_LEVEL} ${RECURSIVE} ${NO_TEST_FILES} REST .${pre=/:Files}) - PY_SRCS(_MR ${pre=NAMESPACE :NAMESPACE} ${TOP_LEVEL} $_ALL_PY_FILES) -} - -# tag:python-specific -### @usage: ALL_PYTEST_SRCS([RECURSIVE] [Dirs...]) -### -### Puts all .py-files from given Dirs (relative to projects') into TEST_SRCS of the current module. -### If Dirs is omitted project directory is used -### -### `RECURSIVE` makes lookup recursive with respect to Dirs -### `ONLY_TEST_FILES` includes only files `test_*.py` and `*_test.py`, others are normally subject to `PY_SRCS` -### -### Note: Only one such macro per module is allowed -### Note: Macro is designed to reject any ya.make files in Dirs except current one -### -### @see [TEST_SRCS()](#macro_TEST_SRCS) -macro ALL_PYTEST_SRCS(TOP_LEVEL?"TOP_LEVEL":"", NAMESPACE="", RECURSIVE?"RECURSIVE":"", ONLY_TEST_FILES?"ONLY_TEST_FILES ONLY_TEST_FILES2 REST2":"EAT_TAIL", Files...) { - _ALL_PY_SRCS2(${pre=NAMESPACE :NAMESPACE} ${TOP_LEVEL} ${RECURSIVE} REST .${pre=/:Files} ${ONLY_TEST_FILES} .${pre=/:Files}) - TEST_SRCS(_MR $_ALL_PY_FILES) -} - -# tag:python-specific -_PY_EXTRA_LINT_FILES_VALUE= -### @usage: PY_EXTRA_LINT_FILES(files...) -### -### Add extra Python files for linting. This macro allows adding -### Python files which has no .py extension. -macro PY_EXTRA_LINT_FILES(FILES...) { - SET_APPEND(_PY_EXTRA_LINT_FILES_VALUE $FILES) -} - -# tag:python-specific -### @usage: PY23_LIBRARY([name]) -### -### Build PY2_LIBRARY or PY3_LIBRARY depending on incoming PEERDIR. -### Direct build or build by RECURSE creates both variants. -### This multimodule doesn't define any final targets, so use from DEPENDS or BUNDLE is not allowed. -### -### Documentation: https://wiki.yandex-team.ru/arcadia/python/pysrcs -multimodule PY23_LIBRARY { - module PY2: PY2_LIBRARY { - .RESTRICTED=RUN_ANTLR4_PYTHON - OBJ_SUF=.py2 - } - module PY3: PY3_LIBRARY { - .RESTRICTED=RUN_ANTLR4_PYTHON - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3 - } - otherwise { - MODULE_PREFIX=libpy3 - } - OBJ_SUF=.py3 - } -} - -# tag:python-specific -### @usage: PY23_NATIVE_LIBRARY([name]) -### -### Build LIBRARY compatible with either Python 2.x or Python 3.x depending on incoming PEERDIR. -### -### This multimodule doesn't depend on Arcadia Python binary build. It is intended only for C++ code and cannot contain PY_SRCS and USE_PYTHON2 macros. -### Use these multimodule instead of PY23_LIBRARY if the C++ extension defined in it will be used in PY2MODULE. -### While it doesn't bring Arcadia Python dependency itself, it is still compatible with Arcadia Python build and can be PEERDIR-ed from PY2_LIBRARY and alikes. -### Proper version will be selected according to Python version of the module PEERDIR comes from. -### -### This mulrtimodule doesn't define any final targets so cannot be used from DEPENDS or BUNDLE macros. -### -### For more information read https://wiki.yandex-team.ru/arcadia/python/pysrcs/#pysrcssrcsipy23nativelibrary -### -### @see [LIBRARY()](#module_LIBRARY), [PY2MODULE()](#module_PY2MODULE) -multimodule PY23_NATIVE_LIBRARY { - module PY2: LIBRARY { - .RESTRICTED=PY_SRCS USE_PYTHON2 USE_PYTHON3 PYTHON3_ADDINCL RUN_ANTLR4_PYTHON - OBJ_SUF=.py2 - PYTHON2_ADDINCL() - SET(MODULE_LANG PY2) - } - module PY3: LIBRARY { - .RESTRICTED=PY_SRCS USE_PYTHON2 USE_PYTHON3 RUN_ANTLR4_PYTHON - .ALIASES=PYTHON2_ADDINCL=PYTHON3_ADDINCL - .SEM=CPP_LIBRARY_SEM - .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM - PYTHON3_ADDINCL() - SET(MODULE_LANG PY3) - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3c - } - otherwise { - MODULE_PREFIX=libpy3c - } - OBJ_SUF=.py3 - } -} - -IBTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool -# tag:src-processing -STORYBOARD_FLAGS=--errors --warnings --notices --auto-activate-custom-fonts --output-format human-readable-text -macro _SRC("storyboard", SRC, SRCFLAGS...) { - .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compilation-directory $BINDIR ${input:SRC} && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.compiled_storyboard_tar:SRC} $BINDIR/${nopath;suf=c:SRC} $BINDIR/${nopath;suf=c:SRC} -} - -# tag:src-processing -macro _SRC("xib", SRC, SRCFLAGS...) { - .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compile ${output;tobindir;nopath;noext;suf=.nib:SRC} ${input:SRC} -} - -ACTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool -# tag:ios-specific -ASSETS_FLAGS=--output-format human-readable-text --notices --warnings -macro _IOS_ASSETS(AssetsDir, Content...) { - .CMD=$FS_TOOLS md $BINDIR/$REALPRJNAME && $ACTOOL_PATH $ASSETS_FLAGS --export-dependency-info $BINDIR/assetcatalog_dependencies --output-partial-info-plist ${output:"assetcatalog_generated_info.partial_plist"} --product-type com.apple.product-type.application --compile $BINDIR/$REALPRJNAME $AssetsDir ${input;hide:Content} && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;suf=_assetes.resource_tar:REALPRJNAME} $REALPRJNAME $REALPRJNAME -} - -# tag:ios-specific -macro IOS_APP_COMMON_FLAGS(Flags...) { - SET_APPEND(STORYBOARD_FLAGS $Flags) - SET_APPEND(ASSETS_FLAGS $Flags) -} - -# tag:ios-specific -macro IOS_APP_ASSETS_FLAGS(Flags...) { - SET_APPEND(ASSETS_FLAGS $Flags) -} - -macro DARWIN_STRINGS_RESOURCE(Resource, Relpath) { - .CMD=$COPY_CMD ${input:Resource} $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.strings_tar:Relpath} $BINDIR/$Relpath $BINDIR -} - -macro DARWIN_SIGNED_RESOURCE(Resource, Relpath) { - .CMD=$COPY_CMD $Resource $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.signed_resource_tar:Relpath} $BINDIR/$Relpath $BINDIR -} - -# tag:ios-specific -DELIM=__DELIM__ -PACK_IOS_ARCHIVE=$GENERATE_MF && $YMAKE_PYTHON ${input:"build/scripts/ios_wrapper.py"} bin $IBTOOL_PATH $TARGET $REALPRJNAME $BINDIR $DELIM $AUTO_INPUT $DELIM $STORYBOARD_FLAGS -### @usage: IOS_INTERFACE() -### iOS GUI module definition -module IOS_INTERFACE: _BARE_UNIT { - .CMD=PACK_IOS_ARCHIVE - .EXTS=.compiled_storyboard_tar .partial_plist .plist .xcent .nib .resource_tar .signed_resource_tar .strings_tar .plist_json - .NODE_TYPE=Library - .FINAL_TARGET=no - SET(MODULE_SUFFIX .ios.interface) - - PEERDIR+=build/platform/xcode/tools -} - -# tag:ios-specific -module DEFAULT_IOS_INTERFACE: IOS_INTERFACE { - SET(MODULE_SUFFIX .default.ios.interface) -} - -DEFAULT_IOS_TYPE= -IOS_TYPE= -when(!$IOS_TYPE) { - when($DEFAULT_IOS_TYPE) { - IOS_TYPE=$DEFAULT_IOS_TYPE - } - otherwise { - IOS_TYPE=com.apple.CoreSimulator.SimDeviceType.iPhone-X - } -} -DEFAULT_IOS_RUNTIME= -IOS_RUNTIME= -when(!$IOS_RUNTIME) { - when($DEFAULT_IOS_RUNTIME) { - IOS_RUNTIME=$DEFAULT_IOS_RUNTIME - } - otherwise { - IOS_RUNTIME=com.apple.CoreSimulator.SimRuntime.iOS-12-1 - } -} -when ($ARCH_I386) { - TEST_IOS_DEVICE_TYPE_VALUE=com.apple.CoreSimulator.SimDeviceType.iPhone-5 - TEST_IOS_RUNTIME_TYPE_VALUE=com.apple.CoreSimulator.SimRuntime.iOS-10-3 -} -otherwise { - TEST_IOS_DEVICE_TYPE_VALUE=$IOS_TYPE - TEST_IOS_RUNTIME_TYPE_VALUE=$IOS_RUNTIME -} - -# tag:java-specific -### @usage: JDK_VERSION(Version) -### -### Specify JDK version for module -macro JDK_VERSION(Arg) { - .SEM=required_jdk $Arg ${output;hide:"JdkVersionFakeProp.java"} - SET(JDK_REAL_VERSION $Arg) - _JDK_VERSION_MACRO_CHECK($Arg) -} - -# tag:java-specific -when ($JDK_REAL_VERSION == "10") { - JDK10=yes # remove this later -} -JAVA_PROGRAM_CP_USE_COMMAND_FILE=yes -when ($JDK_REAL_VERSION == "8") { - JAVA_PROGRAM_CP_USE_COMMAND_FILE=no -} - -# tag:kotlin-specific -KOTLIN_JVM_TARGET= -when ($JDK_REAL_VERSION == "8") { - KOTLIN_JVM_TARGET=1.8 -} -elsewhen ($JDK_REAL_VERSION == "20") { - # remove when kotlin starts supporting jdk20 bytecode - # see also devtools/ya/jbuild/gen/actions/idea.py - KOTLIN_JVM_TARGET=19 -} -otherwise { - KOTLIN_JVM_TARGET=$JDK_REAL_VERSION -} - -# tag:frontend-specific -### @usage: COLLECT_FRONTEND_FILES(Varname, Dir) -### -### Recursively collect files with typical frontend extensions from Dir and save the result into variable Varname -macro COLLECT_FRONTEND_FILES(Varname, Dir) { - _GLOB($Varname $Dir/**/*.(css|ejs|jpg|js|jsx|png|styl|svg|ts|tsx|json|html)) -} - -# tag:java-specific -# local jdk and tools -USE_SYSTEM_JDK= -USE_SYSTEM_UBERJAR= -USE_SYSTEM_ERROR_PRONE= - -# tag:swift-specific -CPP_XCODE_TOOLCHAIN_VERSION=9.2 -SWIFT_XCODE_TOOLCHAIN_VERSION=9.2 -XCODE_TOOLS_VERSION=10.1 -macro COMPILE_SWIFT_MODULE(SRCS{input}[], BRIDGE_HEADER{input}="", Flags...) { - when ($BRIDGE_HEADER != "") { - SWIFT_BRIDGE_HEADER=-import-objc-header ${input:BRIDGE_HEADER} - } - otherwise { - SWIFT_BRIDGE_HEADER= - } - - .PEERDIR+=build/platform/xcode/swift - # swift core libraries - LDFLAGS($SWIFT_LD_FLAGS) - - .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_swiftc_output_map.py"} $(SOURCE_ROOT) $(BUILD_ROOT) $BINDIR/swift_output_map.json ${input:SRCS} && $SWIFT_COMPILER -c $SWIFT_FLAGS_PLATFORM $Flags $SWIFT_BRIDGE_HEADER ${pre=-Xcc -I:_C__INCLUDE} ${input:SRCS} -emit-objc-header -emit-objc-header-path ${output;suf=-Swift.h:REALPRJNAME} -emit-module -module-name $REALPRJNAME -output-file-map $BINDIR/swift_output_map.json ${output;hide;suf=.o:SRCS} -} - -TEST_TOOL_HOST_LOCAL= -TEST_TOOL_TARGET_LOCAL= - -when ($MOST_USED_CUDA) { - CUDA_VERSION=11.4 - CUDNN_VERSION=8.0.5 - TENSORRT_VERSION=7 -} - -when ($TENSORFLOW_WITH_CUDA) { - CUDA_REQUIRED=yes -} - -when (!$TENSORRT_VERSION) { - TENSORRT_VERSION=5 -} - -ANDROID_APK_TEST_ACTIVITY_VALUE=com.yandex.test.unittests/.RunTestsActivity - -MAVEN_BIN=$MAVEN_RESOURCE_GLOBAL/bin/mvn - -when ($QT_REQUIRED) { - QT_BIN=${HOST_QT_RESOURCE_GLOBAL}/bin -} -when ($OPENGL_REQUIRED) { - OPENGL_VERSION=18.0.5 -} - -# tag:python-specific -multimodule PY23_TEST { - module PY2 : PYTEST_BIN { - .RESTRICTED=RUN_ANTLR4_PYTHON - MODULE_PREFIX=py2_ - OBJ_SUF=.py2 - CANONIZE_SUB_PATH=py2test - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT - } - module PY3TEST_PROGRAM: PY3TEST_BIN { - .FINAL_TARGET=yes - .RESTRICTED=RUN_ANTLR4_PYTHON - OBJ_SUF=.py3 - CANONIZE_SUB_PATH=py3test - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT - } - - module PY3TEST_LIBRARY: PY3_LIBRARY { - .RESTRICTED=RUN_ANTLR4_PYTHON - PEERDIR+=library/python/pytest - _REQUIRE_EXPLICIT_LICENSE() - RUN_CYTHON_SCRIPT_H=$YMAKE_PYTHON $CYTHON_SCRIPT - } -} - -# tag:windows-specific -WINDOWS_MANIFEST= -macro WINDOWS_MANIFEST(Manifest) { - SET(WINDOWS_MANIFEST $Manifest) -} - -# https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation#enable-long-paths-in-windows-10-version-1607-and-later -macro WINDOWS_LONG_PATH_MANIFEST() { - SET(WINDOWS_MANIFEST build/long-path.manifest) -} - -# tag:windows-specific -when ($MSVC == "yes" && $WINDOWS_MANIFEST) { - LDFLAGS+=/MANIFEST:EMBED /MANIFESTINPUT:${input:WINDOWS_MANIFEST} -} - -# tag:cpp-specific -_VISIBILITY_LEVEL= -### @usage: VISIBILITY(level) -### -### This macro sets visibility level for symbols compiled for the current module. 'level' -### may take only one of the following values: DEFAULT, HIDDEN. -macro VISIBILITY(LEVEL) { - SET(_VISIBILITY_LEVEL ${LEVEL}) - select ($LEVEL) { - "DEFAULT" | "HIDDEN" ? { - } - default ? { - _OK = no - } - } - ASSERT(_OK Unsupported value [$LEVEL] passed to VISIBILITY macro, expected values are DEFAULT, HIDDEN.) -} - -# tag:cpp-specific -_CFLAGS_VISIBILITY= -when ($_VISIBILITY_LEVEL != "" && $IGNORE_VISIBILITY != "yes") { - when ($CLANG == "yes" || $GCC == "yes") { - _CFLAGS_VISIBILITY=-fvisibility=${tolower:_VISIBILITY_LEVEL} - } -} -CFLAGS+=$_CFLAGS_VISIBILITY - -# tag:cpp-specific -macro SDBUS_CPP_ADAPTOR(File) { - .CMD=${tool:"contrib/libs/sdbus-cpp/tools/xml2cpp-codegen"} --adaptor=${output;nopath;noext:File.adaptor.h} ${input:File} - .PEERDIR=contrib/libs/sdbus-cpp -} - -# tag:cpp-specific -macro SDBUS_CPP_PROXY(File) { - .CMD=${tool:"contrib/libs/sdbus-cpp/tools/xml2cpp-codegen"} --proxy=${output;nopath;noext:File.proxy.h} ${input:File} - .PEERDIR=contrib/libs/sdbus-cpp -} - - -# tag:python-specific -macro _PY_SSQLS_SRC(EXT, SRC, SRCFLAGS...) { - #generic macro -} - -# tag:python-specific -macro _PY_SSQLS_SRC("ssqls", SRC, SRCFLAGS...) { - .CMD=${tool:"metrika/core/tools/ssqls"} ${input;notransformbuilddir:SRC} -S $ARCADIA_ROOT -B $ARCADIA_BUILD_ROOT -L "python" -D $MODDIR $SRCFLAGS ${output;tobindir;noext;hide;pre=autogenerated/$MODDIR/:SRC.py} -} - -# tag:python-specific -macro _PY_SSQLS_SRCS(Srcs...) { - foreach(Src: $Srcs) { - _PY_SSQLS_SRC(${lastext:Src} $Src) - } -} - -# tag:python-specific -macro PY_SSQLS_SRCS(Srcs...) { - _PY_SSQLS_SRCS(KEEP_DIR_STRUCT $Srcs) - PY_SRCS(${noext;pre=autogenerated/$MODDIR/:Srcs.py}) -} - -# tag:python-specific -macro _PY_ENUM_SERIALIZATION_TO_JSON(File) { - .CMD=$ENUM_PARSER_TOOL ${input:File} --output ${output;chksum;noext;suf=.generated.h:File} --json-output ${output;noext:File.json} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} -} - -# tag:python-specific -macro _PY_ENUM_SERIALIZATION_TO_PY(File) { - .CMD=${tool:"metrika/core/tools/python_enum_generator"} ${input;noext:File.json} -D ${MODDIR} --output ${output;noext:File.py} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} -} - -# tag:metrika -multimodule SSQLS_LIBRARY { - module CPP_SSQLS : LIBRARY { - .ALIASES=ENUMS_SERIALIZATION=CPP_ENUMS_SERIALIZATION - SET(PEERDIR_TAGS CPP_SSQLS) - PEERDIR(metrika/core/libs/appmetrica/types metrika/core/libs/types) - ADDINCL(GLOBAL ${ARCADIA_BUILD_ROOT}/metrika/core/common_tables/include) - } - module PY3_SSQLS : PY3_LIBRARY { - .ALIASES=SRCS=PY_SSQLS_SRCS ENUMS_SERIALIZATION=PY_ENUMS_SERIALIZATION - SET(PEERDIR_TAGS PY3 PY3_SSQLS) - } -} - -macro NGINX_MODULES(Modules...) { - PEERDIR(${Modules}) - RUN_PROGRAM(nginx/module_gen ${Modules} CWD ${ARCADIA_ROOT} IN ${suf=/modules.json:Modules} OUTPUT_INCLUDES contrib/nginx/core/src/core/ngx_config.h contrib/nginx/core/src/core/ngx_core.h STDOUT ngx_modules.c) -} - -# tag:external-build -CONTAINER_LAYER_CMD=$YMAKE_PYTHON ${input:"build/scripts/make_container_layer.py"} -s $SQUASHFS_RESOURCE_GLOBAL -o $TARGET $AUTO_INPUT ${cwd:ARCADIA_BUILD_ROOT} ${kv;hide:"p CL"} ${kv;hide:"pc blue"} -CONTAINER_CMD=$YMAKE_PYTHON ${input:"build/scripts/make_container.py"} -s $SQUASHFS_RESOURCE_GLOBAL -o $TARGET ${rootrel:PEERS} ${cwd:ARCADIA_BUILD_ROOT} ${kv;hide:"p CN"} ${kv;hide:"pc blue"} - -# tag:external-build -module CONTAINER_LAYER: _BARE_UNIT { - .CMD=CONTAINER_LAYER_CMD - PEERDIR(build/external_resources/squashfs_tools) - - MODULE_SUFFIX=.container_layer - CHECK_ALLOWED_PATH() - CHECK_DEPENDENT_DIRS(ALLOW_ONLY PEERDIRS base_layers build/external_resources/squashfs_tools build/platform/python/ymake_python3 junk) -} - -# tag:external-build -module CONTAINER: _BARE_UNIT { - .NODE_TYPE=Bundle - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=yes - .CMD=CONTAINER_CMD - PEERDIR(build/external_resources/squashfs_tools) - PEERDIR(devtools/contrib/cake/entry) -} - -# tag:external-build -CUSTOM_BUILD_LIBRARY_USE= -CUSTOM_BUILD_LIBRARY_CMD=$GENERATE_MF && ${tool:"devtools/experimental/solar/outbuild/runner"} ${hide:PEERS} --script=${input:CUSTOM_SCRIPT} --output $TARGET --python=${tool:"contrib/tools/python3"} --isolator=${tool:"devtools/experimental/solar/outbuild/isolator"} $CUSTOM_BUILD_LIBRARY_USE - -# tag:external-build -module CUSTOM_BUILD_LIBRARY: LIBRARY { - .NODE_TYPE=Bundle - .PEERDIR_POLICY=as_build_from - .PROXY=yes - .CMD=CUSTOM_BUILD_LIBRARY_CMD - DISABLE(NEED_ADD_FAKE_SRC) -} - -### @usage: ORIGINAL_SOURCE(Source) -### -### This macro specifies the source repository for contrib -### Does nothing now (just a placeholder for future functionality) -### See https://st.yandex-team.ru/DTCC-316 -macro ORIGINAL_SOURCE(Source) { - ENABLE(UNUSED_MACRO) -} - -# tag:licence -CREDITS_FILE_EXTRA_EXT= -CREDITS_FLAGS= -CREDITS_TEXTS_FILE= -NO_CREDITS_TEXTS_FILE= -WITH_CREDITS= -### @usage: LICENSE_TEXTS(File) -### -### This macro specifies the filename with all library licenses texts -macro LICENSE_TEXTS(Source) { - SET(CREDITS_TEXTS_FILE $Source) -} - -# tag:licence -### @usage: WITHOUT_LICENSE_TEXTS() -### -### This macro indicates that the module has no license text -macro WITHOUT_LICENSE_TEXTS() { - ENABLE(NO_CREDITS_TEXTS_FILE) -} - -# tag:licence -when ($WITH_CREDITS) { - CREDITS_FLAGS+=--credits-output ${output;suf=${CREDITS_FILE_EXTRA_EXT}".CREDITS.txt":REALPRJNAME} -} - -GENERATE_MF= -when ($WITH_CREDITS) { - GENERATE_MF=$GENERATE_MF_CMD -} - -macro _MCU_CONVERT(Bin) { - .CMD=${cwd:BINDIR} $OBJCOPY_TOOL -O ihex $Bin ${output;noext:Bin.hex} && ${cwd:BINDIR} $OBJCOPY_TOOL -O srec $Bin ${output;noext:Bin.s37} && ${cwd:BINDIR} $OBJCOPY_TOOL -O binary $Bin ${output;noext:Bin.bin} -} - -MCU_LINK_EXE=$LINK_EXE && $_MCU_CONVERT($MODULE_PREFIX$REALPRJNAME) - -### @usage: MCU_PROGRAM([progname]) -### -### Program module for microcontrollers. Converts ELF to Intel HEX, Motorola S-record and raw binary file formats. -### If name is not specified it will be generated from the name of the containing project directory. -module MCU_PROGRAM: PROGRAM { - .CMD=MCU_LINK_EXE -} - -ESP_KCONFIGS= -ESP_KCONFIGS_PROJBUILD= -ESP_LDFRAGMENTS= - -macro ESP_KCONFIG(Kconfig) { - SET_APPEND(ESP_KCONFIGS \${input;hide:$Kconfig}) - SET_APPEND(ESP_KCONFIGS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig}) -} - -macro ESP_KCONFIG_PROJBUILD(Kconfig) { - SET_APPEND(ESP_KCONFIGS_PROJBUILD \${input;hide:$Kconfig}) - SET_APPEND(ESP_KCONFIGS_PROJBUILD_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig}) -} - -macro ESP_LDFRAGMENTS(Fragments...) { - SET_APPEND(ESP_LDFRAGMENTS ${pre=\$\{input\;hide\:\";suf=\"\}:Fragments}) - SET_APPEND(ESP_LDFRAGMENTS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Fragments}) -} - -ESP_LINK_LIB=$LINK_LIB $ESP_KCONFIGS $ESP_KCONFIGS_PROJBUILD $ESP_LDFRAGMENTS - -module ESP_LIBRARY: LIBRARY { - .CMD=ESP_LINK_LIB - .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS -} - -ESP_KCONFIGS_CMD=$WRITER_PY --file ${tmp:"kconfigs.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_GLOBAL} - -ESP_KCONFIGS_PROJBUILD_CMD=$WRITER_PY --file ${tmp:"kconfigs_projbuild.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_PROJBUILD_GLOBAL} - -ESP_LIBRARIES_CMD=$WRITER_PY --file ${tmp:"ldgen_libraries"} -m $PEERS - -ESP_LDGEN_CMD= \ - ${tool:"contrib/libs/esp-idf/tools/ldgen"} \ - --config ${input:"contrib/libs/esp-idf/config/sdkconfig"} \ - --fragments $ESP_LDFRAGMENTS_GLOBAL \ - --input ${input:"contrib/libs/esp-idf/components/esp_system/ld/esp32c3/sections.ld.in"} \ - --output ${output:"sections.ld"} \ - --kconfig ${input:"contrib/libs/esp-idf/Kconfig"} \ - --env IDF_TARGET=esp32c3 \ - --env IDF_ENV_FPGA= \ - --env IDF_PATH=$ARCADIA_ROOT/contrib/libs/esp-idf \ - --env COMPONENT_KCONFIGS_SOURCE_FILE=${tmp:"kconfigs.in"} \ - --env COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=${tmp:"kconfigs_projbuild.in"} \ - --libraries-file ${tmp:"ldgen_libraries"} \ - --objdump $OBJDUMP_TOOL - -macro _ESP_ELF2IMAGE(Elf) { - .CMD=${cwd:BINDIR} ${tool:"contrib/tools/esptool/esptool"} --chip esp32c3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB --min-rev 3 -o ${output;noext:Elf.bin} $Elf -} - -ESP_LINK_EXE= \ - && $ESP_KCONFIGS_CMD \ - && $ESP_KCONFIGS_PROJBUILD_CMD \ - && $ESP_LIBRARIES_CMD \ - && $ESP_LDGEN_CMD \ - && $LINK_EXE \ - && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME) - -### @usage: ESP_PROGRAM([progname]) -### -### Program module for Espressif microcontrollers. -### Converts ELF to binary image file suitable for flashing. -### Currently, only ESP32-C3 is supported. -module ESP_PROGRAM: PROGRAM { - .CMD=ESP_LINK_EXE - .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS - ALLOCATOR(FAKE) - NO_PLATFORM() - LINKER_SCRIPT_VALUE+=-T$ARCADIA_BUILD_ROOT/$MODDIR/sections.ld -} - -ESP_BOOTLOADER_LINK_EXE= \ - && $LINK_EXE \ - && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME) - -module ESP_BOOTLOADER: PROGRAM { - .CMD=ESP_BOOTLOADER_LINK_EXE - ALLOCATOR(FAKE) - NO_PLATFORM() -} - -when ($ESP_BOOTLOADER_BUILD == "yes") { - CFLAGS+=-DBOOTLOADER_BUILD -fno-stack-protector -} - -# tag:flags tag:internal tag:windows-specific -### @usage: _MSVC_FLAGS_WINDOWS_IMPL(target_platform compiler_flags) # internal -### -### Add CFLAGS when the firts argument is WINDOWS -macro _MSVC_FLAGS_WINDOWS_IMPL(WINDOWS[], FLAGS...) { - CFLAGS($WINDOWS) -} - -# tag:flags tag:windows-specific tag:cpp-specific -### @usage: MSVC_FLAGS([GLOBAL compiler_flag]* compiler_flags) -### -### Add the specified flags to the compilation line of C/C++files. -### Flags apply only if the compiler used is MSVC (cl.exe) -macro MSVC_FLAGS(FLAGS...) { - _MSVC_FLAGS_WINDOWS_IMPL($TARGET_PLATFORM $FLAGS) -} - -### @usage: COLLECT_YDB_API_SPECS_LEGACY(VarName Paths...) #deprecated -### -### This macro is ugly hack for legacy YDB go API codegen, any other uses are prohibited -macro COLLECT_YDB_API_SPECS_LEGACY(FILES_VAR, PATHS...) { - _GLOB($FILES_VAR ${suf=/*.proto:PATHS}) - RESTRICT_PATH(kikimr/public/sdk/go/ydb/api MSG This is ugly hack for legacy YDB go API codegen, any other uses are probibited) -} - -# tag:proto tag:apphost -### @usage: APPHOST() -### -### Emit APPHOST service code for all .proto files in a PROTO_LIBRARY. -### This works only for C++ and Java at the moment. -macro APPHOST() { - # C++ - CPP_PROTO_PLUGIN(cpp_plugin apphost/tools/stub_generator/cpp_plugin .apphost.h DEPS apphost/tools/stub_generator/cpp_includes) - - # Java - JAVA_PROTO_PLUGIN(java_plugin apphost/tools/stub_generator/java_plugin DEPS apphost/api/service/java/apphost) -} - -# tag:internal -### Add passed ya.conf.json and all bottle's formula external files to resources -### File MUST be arcadia root relative path (without "${ARCADIA_ROOT}/" prefix). -### NOTE: -### An external formula file referenced from ya.conf.json must be passed as an arcadia root relative path and -### should be located in any subdirectory of the ya.conf.json location ("build/" if we consider a production). -### The later restriction prevents problems in selectively checkouted arcadia. -macro YA_CONF_JSON(File) { - _YA_CONF_JSON($File) - SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/$File) -} - - -# tag:internal -# Don't use directly - wrap with custom macros -macro ADD_LINTER_CHECK(CheckName, Linter, DEPENDS[], EXCLUDE[], FILES[], CONFIGS[]) { - SET(_FILES_VAR uniq_${hash:VAR_SALT}) - _GLOB($_FILES_VAR $FILES EXCLUDE $EXCLUDE) - _ADD_LINTER_CHECK($CheckName $Linter ${pre=DEPENDS :DEPENDS} FILES $$_FILES_VAR CONFIGS $CONFIGS) -} - -# tag:internal -# Draft. Don't use. -macro _CPP_STYLE(EXCLUDE[], Files...) { - ADD_LINTER_CHECK(cpp_style tools/cpp_style_checker/cpp_style_checker DEPENDS contrib/libs/clang12/tools/clang-format EXCLUDE $EXCLUDE FILES $Files CONFIGS devtools/ya/handlers/style/style_config) -} - -# tag:proto -macro ALICE_CAPABILITY() { - CPP_PROTO_PLUGIN(alice_capability_cpp yandex_io/tools/capability_gen .cap.h DEPS yandex_io/libs/protobuf_utils) - - JAVA_PROTO_PLUGIN(alice_capability_java alice/library/go/java_marker_interface_protoc_plugin DEPS alice/protos/endpoint/java_interface alice/megamind/protos/scenarios/java_interface) -} diff --git a/build/ymake_conf.py b/build/ymake_conf.py deleted file mode 100755 index 65375187f8..0000000000 --- a/build/ymake_conf.py +++ /dev/null @@ -1,2547 +0,0 @@ -#!/usr/bin/env python -# coding=utf-8 - -from __future__ import print_function - -import base64 -import itertools -import json -import logging -import ntpath -import optparse -import os -import posixpath -import re -import subprocess -import sys -import tempfile - -import six - -logger = logging.getLogger(__name__ if __name__ != '__main__' else 'ymake_conf.py') - - -def init_logger(verbose): - logging.basicConfig(level=logging.DEBUG if verbose else logging.INFO) - - -class DebugString(object): - def __init__(self, get_string_func): - self.get_string_func = get_string_func - - def __str__(self): - return self.get_string_func() - - -class ConfigureError(Exception): - pass - - -class Platform(object): - def __init__(self, name, os, arch): - """ - :type name: str - :type os: str - :type arch: str - """ - self.name = name - self.os = self._parse_os(os) - self.arch = arch.lower() - - self.is_i386 = self.arch in ('i386', 'x86') - self.is_i686 = self.arch == 'i686' - self.is_x86 = self.is_i386 or self.is_i686 - self.is_x86_64 = self.arch in ('x86_64', 'amd64') - self.is_intel = self.is_x86 or self.is_x86_64 - - self.is_armv7 = self.arch in ('armv7', 'armv7a', 'armv7ahf', 'armv7a_neon', 'arm', 'armv7a_cortex_a9', 'armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') - self.is_armv8 = self.arch in ('armv8', 'armv8a', 'arm64', 'aarch64', 'armv8a_cortex_a35', 'armv8a_cortex_a53') - self.is_armv8m = self.arch in ('armv8m_cortex_m33',) - self.is_arm64 = self.arch in ('arm64',) - self.is_arm = self.is_armv7 or self.is_armv8 or self.is_armv8m - self.is_armv7_neon = self.arch in ('armv7a_neon', 'armv7ahf', 'armv7a_cortex_a9', 'armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') - self.is_armv7hf = self.arch in ('armv7ahf', 'armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') - - self.is_rv32imc = self.arch in ('riscv32_esp',) - self.is_riscv32 = self.is_rv32imc - - self.is_nds32 = self.arch in ('nds32le_elf_mculib_v5f',) - - self.armv7_float_abi = None - if self.is_armv7: - if self.is_armv7hf: - self.armv7_float_abi = 'hard' - else: - self.armv7_float_abi = 'softfp' - - self.is_cortex_a9 = self.arch in ('armv7a_cortex_a9',) - self.is_cortex_a35 = self.arch in ('armv7ahf_cortex_a35', 'armv8a_cortex_a35') - self.is_cortex_a53 = self.arch in ('armv7ahf_cortex_a53', 'armv8a_cortex_a53') - self.is_cortex_m33 = self.arch in ('armv8m_cortex_m33',) - - self.is_power8le = self.arch == 'ppc64le' - self.is_power9le = self.arch == 'power9le' - self.is_powerpc = self.is_power8le or self.is_power9le - - self.is_32_bit = self.is_x86 or self.is_armv7 or self.is_armv8m or self.is_riscv32 or self.is_nds32 - self.is_64_bit = self.is_x86_64 or self.is_armv8 or self.is_powerpc - - assert self.is_32_bit or self.is_64_bit - assert not (self.is_32_bit and self.is_64_bit) - - self.is_linux = self.os == 'linux' or 'yocto' in self.os - self.is_linux_x86_64 = self.is_linux and self.is_x86_64 - self.is_linux_armv8 = self.is_linux and self.is_armv8 - self.is_linux_armv7 = self.is_linux and self.is_armv7 - self.is_linux_power8le = self.is_linux and self.is_power8le - self.is_linux_power9le = self.is_linux and self.is_power9le - self.is_linux_powerpc = self.is_linux_power8le or self.is_linux_power9le - - self.is_macos = self.os == 'macos' - self.is_macos_x86_64 = self.is_macos and self.is_x86_64 - self.is_macos_arm64 = self.is_macos and self.is_arm64 - self.is_iossim = self.os == 'iossim' or (self.os == 'ios' and self.is_intel) - self.is_ios = self.os == 'ios' or self.is_iossim - self.is_apple = self.is_macos or self.is_ios - - self.is_windows = self.os == 'windows' - self.is_windows_x86_64 = self.is_windows and self.is_x86_64 - - self.is_android = self.os == 'android' - if self.is_android: - # This is default Android API level unless `-DANDROID_API` is specified in cmdline - default_android_api = 21 - self.android_api = int(preset('ANDROID_API', default_android_api)) - - self.is_cygwin = self.os == 'cygwin' - self.is_yocto = self.os == 'yocto' - - self.is_none = self.os == 'none' - - self.is_posix = self.is_linux or self.is_apple or self.is_android or self.is_cygwin or self.is_yocto - - @staticmethod - def from_json(data): - name = data.get('visible_name', data['toolchain']) - return Platform(name, os=data['os'], arch=data['arch']) - - @property - def os_variables(self): - # 'LINUX' variable, for backward compatibility - yield self.os.upper() - - # 'OS_LINUX' variable - yield 'OS_{}'.format(self.os.upper()) - - # yocto is linux - if 'yocto' in self.os: - yield 'LINUX' - yield 'OS_LINUX' - - if self.is_macos: - yield 'DARWIN' - yield 'OS_DARWIN' - if self.is_iossim: - yield 'IOS' - yield 'OS_IOS' - yield 'OS_IOSSIM' - - @property - def arch_variables(self): - return select_multiple(( - (self.is_i386 or self.is_i686, 'ARCH_I386'), - (self.is_i686, 'ARCH_I686'), - (self.is_x86_64, 'ARCH_X86_64'), - (self.is_armv7, 'ARCH_ARM7'), - (self.is_armv7_neon, 'ARCH_ARM7_NEON'), - (self.is_armv8, 'ARCH_ARM64'), - (self.is_armv8m, 'ARCH_ARM8M'), - (self.is_arm, 'ARCH_ARM'), - (self.is_linux_armv8 or self.is_macos_arm64, 'ARCH_AARCH64'), - (self.is_powerpc, 'ARCH_PPC64LE'), - (self.is_power8le, 'ARCH_POWER8LE'), - (self.is_power9le, 'ARCH_POWER9LE'), - (self.is_riscv32, 'ARCH_RISCV32'), - (self.is_nds32, 'ARCH_NDS32'), - (self.is_32_bit, 'ARCH_TYPE_32'), - (self.is_64_bit, 'ARCH_TYPE_64'), - )) - - @property - def library_path_variables(self): - return ['LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH'] - - def find_in_dict(self, dict_, default=None): - if dict_ is None: - return default - for key in six.iterkeys(dict_): - if self._parse_os(key) == self.os: - return dict_[key] - return default - - @property - def os_compat(self): - if self.is_macos: - return 'DARWIN' - else: - return self.os.upper() - - @property - def canonized_platform(self): - os = None - if self.os == 'macos': - os = 'darwin' - elif self.os == 'windows': - os = 'win32' - else: - os = self.os - if self.arch != 'x86_64': - return '-'.join([os, self.arch]) - else: - return os - - def exe(self, *paths): - if self.is_windows: - return ntpath.join(*itertools.chain(paths[:-1], (paths[-1] + '.exe',))) - else: - return posixpath.join(*paths) - - def __str__(self): - return '{name}-{os}-{arch}'.format(name=self.name, os=self.os, arch=self.arch) - - def __cmp__(self, other): - return cmp((self.name, self.os, self.arch), (other.name, other.os, other.arch)) - - def __hash__(self): - return hash((self.name, self.os, self.arch)) - - @staticmethod - def _parse_os(os): - os = os.lower() - - if os == 'darwin': - return 'macos' - if os in ('win', 'win32', 'win64'): - return 'windows' - if os.startswith('cygwin'): - return 'cygwin' - - return os - - -def which(prog): - if os.path.exists(prog) and os.access(prog, os.X_OK): - return prog - - # Ищем в $PATH только простые команды, без путей. - if os.path.dirname(prog) != '': - return None - - path = os.getenv('PATH', '') - - pathext = os.environ.get('PATHEXT') - # На Windows %PATHEXT% указывает на список расширений, которые нужно проверять - # при поиске команды в пути. Точное совпадение без расширения имеет приоритет. - pathext = [''] if pathext is None else [''] + pathext.lower().split(os.pathsep) - - for dir_ in path.split(os.path.pathsep): - for ext in pathext: - p = os.path.join(dir_, prog + ext) - if os.path.exists(p) and os.path.isfile(p) and os.access(p, os.X_OK): - return p - - return None - - -def get_stdout(command): - stdout, code = get_stdout_and_code(command) - return stdout if code == 0 else None - - -def get_stdout_and_code(command): - # noinspection PyBroadException - try: - process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, _ = process.communicate() - return stdout, process.returncode - except Exception as e: - logger.info("While run: `%s`", e) - return None, None - - -def to_strings(o): - if isinstance(o, (list, tuple)): - for s in o: - for ss in to_strings(s): - yield ss - else: - if o is not None: - if isinstance(o, bool): - yield 'yes' if o else 'no' - elif isinstance(o, (str, int)): - yield str(o) - else: - raise ConfigureError('Unexpected value {} {}'.format(type(o), o)) - - -def emit(key, *value): - print('{0}={1}'.format(key, ' '.join(to_strings(value)))) - - -def emit_with_comment(comment, key, *value): - print('# {}'.format(comment)) - emit(key, *value) - - -def emit_with_ignore_comment(key, *value): - emit_with_comment('IGNORE YMAKE CONF CONTEXT', key, *value) - - -def append(key, *value): - print('{0}+={1}'.format(key, ' '.join(to_strings(value)))) - - -def emit_big(text): - prefix = None - first = True - for line in text.split('\n'): - if prefix is None: - if not line: - continue - - prefix = 0 - while prefix < len(line) and line[prefix] == ' ': - prefix += 1 - - if first: # Be pretty, prepend an empty line before the output - print() - first = False - - print(line[prefix:]) - - -class Variables(dict): - def emit(self, with_ignore_comment=[]): - with_ignore_comment_set = set(with_ignore_comment) - for k in sorted(self.keys()): - if k in with_ignore_comment_set: - emit_with_ignore_comment(k, self[k]) - else: - emit(k, self[k]) - - def update_from_presets(self): - for k in six.iterkeys(self): - v = preset(k) - if v is not None: - self[k] = v - - def reset_if_any(self, value_check=None, reset_value=None): - if value_check is None: - def value_check(v_): - return v_ is None - - if any(map(value_check, six.itervalues(self))): - for k in six.iterkeys(self): - self[k] = reset_value - - -def format_env(env, list_separator=':'): - def format_value(value): - return value if isinstance(value, str) else ('\\' + list_separator).join(value) - - def format(kv): - return '${env:"%s=%s"}' % (kv[0], format_value(kv[1])) - - return ' '.join(map(format, sorted(six.iteritems(env)))) - - -# TODO(somov): Проверить, используется ли это. Может быть, выпилить. -def userify_presets(presets, keys): - for key in keys: - user_key = 'USER_{}'.format(key) - values = [presets.pop(key, None), presets.get(user_key)] - presets[user_key] = ' '.join(filter(None, values)) - - -def preset(key, default=None): - return opts().presets.get(key, default) - - -def is_positive(key): - return is_positive_str(preset(key, '')) - - -def is_positive_str(s): - return s.lower() in ('yes', 'true', 'on', '1') - - -def is_negative(key): - return is_negative_str(preset(key, '')) - - -def is_negative_str(s): - return s.lower() in ('no', 'false', 'off', '0') - - -def to_bool(s, default=None): - if isinstance(s, six.string_types): - if is_positive_str(s): - return True - if is_negative_str(s): - return False - if default is None: - raise ConfigureError('{} is not a bool value'.format(s)) - return default - - -def select(selectors, default=None, no_default=False): - for enabled, value in selectors: - if enabled: - return value - if no_default: - raise ConfigureError() - return default - - -def select_multiple(selectors): - for enabled, value in selectors: - if enabled: - yield value - - -def unique(it): - known = set() - for i in it: - if i not in known: - known.add(i) - yield i - - -class Options(object): - def __init__(self, argv): - def parse_presets(raw_presets): - presets = {} - for p in raw_presets: - toks = p.split('=', 1) - name = toks[0] - value = toks[1] if len(toks) >= 2 else '' - presets[name] = value - return presets - - parser = optparse.OptionParser(add_help_option=False) - opt_group = optparse.OptionGroup(parser, 'Conf script options') - opt_group.add_option('--toolchain-params', dest='toolchain_params', action='store', help='Set toolchain params via file') - opt_group.add_option('-D', '--preset', dest='presets', action='append', default=[], help='set or override presets') - opt_group.add_option('-l', '--local-distbuild', dest='local_distbuild', action='store_true', default=False, help='conf for local distbuild') - parser.add_option_group(opt_group) - - self.options, self.arguments = parser.parse_args(argv) - - argv = self.arguments - if len(argv) < 4: - print('Usage: ArcRoot, --BuildType--, Verbosity, [Path to local.ymake]', file=sys.stderr) - sys.exit(1) - - self.arcadia_root = argv[1] - init_logger(argv[3] == 'verbose') - - # Эти переменные не надо использоваться напрямую. Их значения уже разбираются в других местах. - self.build_type = argv[2].lower() - self.local_distbuild = self.options.local_distbuild - self.toolchain_params = self.options.toolchain_params - - self.presets = parse_presets(self.options.presets) - userify_presets(self.presets, ('CFLAGS', 'CXXFLAGS', 'CONLYFLAGS', 'LDFLAGS', 'GO_COMPILE_FLAGS', 'GO_LINK_FLAGS', 'USE_LOCAL_SWIG', 'SWIG_TOOL', 'SWIG_LIBRARY')) - - Instance = None - - -def opts(): - if Options.Instance is None: - Options.Instance = Options(sys.argv) - return Options.Instance - - -class Profiler(object): - Generic = 'generic' - GProf = 'gprof' - - -class Arcadia(object): - def __init__(self, root): - self.root = root - - -class Build(object): - def __init__(self, arcadia, build_type, toolchain_params, force_ignore_local_files=False): - self.arcadia = arcadia - self.params = self._load_json_from_base64(toolchain_params) - self.build_type = build_type - - platform = self.params['platform'] - self.host = Platform.from_json(platform['host']) - self.target = Platform.from_json(platform['target']) - - self.tc = self._get_toolchain_options() - - # TODO(somov): Удалить, когда перестанет использоваться. - self.build_system = 'ymake' - - self.ignore_local_files = False - - dist_prefix = 'dist-' - if self.build_type.startswith(dist_prefix): - self.build_system = 'distbuild' - self.build_type = self.build_type[len(dist_prefix):] - - if force_ignore_local_files: - self.ignore_local_files = True - - if self.is_ide_build_type(self.build_type): - self.ignore_local_files = True - - self.pic = not is_positive('FORCE_NO_PIC') - - @property - def host_target(self): - return self.host, self.target - - def print_build(self): - self._print_build_settings() - - host_os = System(self.host) - host_os.print_host_settings() - - target_os = System(self.target) - target_os.print_target_settings() - - if self.pic: - emit('PIC', 'yes') - - emit('COMPILER_ID', self.tc.type.upper()) - - if self.is_valgrind: - emit('WITH_VALGRIND', 'yes') - - if self.is_coverage: - emit('_BUILD_COVERAGE', 'yes') - - if self.is_debug: - emit('_BUILD_DEBUG', 'yes') - - if self.is_fast_debug: - emit('_BUILD_FAST_DEBUG', 'yes') - - if self.is_release: - emit('_BUILD_RELEASE', 'yes') - - if self.is_sanitized: - emit('_BUILD_SANITIZED', 'yes') - - if self.is_size_optimized: - emit('_BUILD_SIZE_OPTIMIZED', 'yes') - - if self.with_ndebug: - emit('_BUILD_WITH_NDEBUG', 'yes') - - toolchain_type, compiler_type, linker_type = Compilers[self.tc.type] - toolchain = toolchain_type(self.tc, self) - compiler = compiler_type(self.tc, self) - linker = linker_type(self.tc, self) - - toolchain.print_toolchain() - compiler.print_compiler() - linker.print_linker() - - self._print_other_settings(compiler) - - def _print_build_settings(self): - emit('BUILD_TYPE', self.build_type.upper()) - emit('BT_' + self.build_type.upper().replace('-', '_'), 'yes') - - if self.build_system == 'distbuild': - emit('DISTBUILD', 'yes') - elif self.build_system != 'ymake': - raise ConfigureError() - - python_bin = preset('BUILD_PYTHON_BIN', '$(PYTHON)/python') - - emit('YMAKE_PYTHON', python_bin) - emit('YMAKE_UNPICKLER', python_bin, '$ARCADIA_ROOT/build/plugins/_unpickler.py') - - @property - def is_release(self): - # TODO(somov): Проверить, бывают ли тут суффиксы на самом деле - return self.build_type in ('release', 'relwithdebinfo', 'minsizerel', 'profile', 'gprof') or self.build_type.endswith('-release') - - @property - def is_debug(self): - return self.build_type in ('debug', 'debugnoasserts', 'fastdebug') or self.build_type.endswith('-debug') - - @property - def is_fast_debug(self): - return self.build_type == 'fastdebug' - - @property - def is_size_optimized(self): - return self.build_type == 'minsizerel' - - @property - def is_coverage(self): - return self.build_type == 'coverage' - - @property - def is_sanitized(self): - sanitizer = preset('SANITIZER_TYPE') - return bool(sanitizer) and not is_negative_str(sanitizer) - - @property - def with_ndebug(self): - return self.build_type in ('release', 'minsizerel', 'valgrind-release', 'profile', 'gprof', 'debugnoasserts') - - @property - def is_valgrind(self): - return self.build_type == 'valgrind' or self.build_type == 'valgrind-release' - - @property - def is_ide(self): - return self.is_ide_build_type(self.build_type) - - @property - def profiler_type(self): - if self.build_type == 'profile': - return Profiler.Generic - elif self.build_type == 'gprof': - return Profiler.GProf - else: - return None - - @staticmethod - def is_ide_build_type(build_type): - return build_type == 'nobuild' - - def _configure_runtime_versions(self): - res = subprocess.check_output(['xcrun', 'simctl', 'list', '--json', 'runtimes']) - raw_object = json.loads(res) - raw_object = raw_object['runtimes'] - for runtime in raw_object: - if runtime['isAvailable']: - if "iOS" in runtime['identifier']: - emit('DEFAULT_IOS_RUNTIME', '{}'.format(runtime['identifier'])) - - def _get_toolchain_options(self): - type_ = self.params['params']['type'] - - if self.params['params'].get('local') and type_ == 'xcode': - detector = CompilerDetector() - detector.detect(self.params['params']['c_compiler'], self.params['params']['cxx_compiler']) - emit('LOCAL_XCODE_TOOLS', 'yes') - emit('XCODE', 'yes') - emit('ACTOOL_PATH', self.params['params']['actool']) - emit('IBTOOL_PATH', self.params['params']['ibtool']) - self._configure_runtime_versions() - elif type_ == 'system_cxx': - detector = CompilerDetector() - detector.detect(self.params['params'].get('c_compiler'), self.params['params'].get('cxx_compiler')) - type_ = detector.type - else: - detector = None - - if type_ == 'msvc': - return MSVCToolchainOptions(self, detector) - else: - return GnuToolchainOptions(self, detector) - - def _print_other_settings(self, compiler): - host = self.host - - emit('USE_LOCAL_TOOLS', 'no' if self.ignore_local_files else 'yes') - - ragel = Ragel() - ragel.configure_toolchain(self, compiler) - ragel.print_variables() - - perl = Perl() - perl.configure_local() - perl.print_variables('LOCAL_') - - swiftc = SwiftCompiler(self) - swiftc.configure() - swiftc.print_compiler() - - if host.is_linux or host.is_macos or host.is_cygwin: - if is_negative('USE_ARCADIA_PYTHON'): - python = Python(self.tc) - python.configure_posix() - python.print_variables() - - cuda = Cuda(self) - cuda.print_() - CuDNN(cuda).print_() - - print_swig_config() - - if self.ignore_local_files or host.is_windows or is_positive('NO_SVN_DEPENDS'): - emit_with_ignore_comment('SVN_DEPENDS') - emit_with_ignore_comment('SVN_DEPENDS_CACHE__NO_UID__') - else: - def find_svn(): - for i in range(0, 3): - for path in (['.svn', 'wc.db'], ['.svn', 'entries'], ['.git', 'logs', 'HEAD']): - path_parts = [os.pardir] * i + path - full_path = os.path.join(self.arcadia.root, *path_parts) - # HACK(somov): No "normpath" here. ymake fails with the "source file name is outside the build tree" error - # when .svn/wc.db found in "trunk" instead of "arcadia". But $ARCADIA_ROOT/../.svn/wc.db is ok. - if os.path.exists(full_path): - out_path = os.path.join('${ARCADIA_ROOT}', *path_parts) - return '${input;hide:"%s"}' % out_path - - # Special processing for arc repository since .arc may be a symlink. - dot_arc = os.path.realpath(os.path.join(self.arcadia.root, '.arc')) - full_path = os.path.join(dot_arc, 'TREE') - if os.path.exists(full_path): - out_path = os.path.join('${ARCADIA_ROOT}', os.path.relpath(full_path, self.arcadia.root)) - return '${input;hide:"%s"}' % out_path - - return '' - - emit_with_ignore_comment('SVN_DEPENDS', find_svn()) - emit_with_ignore_comment('SVN_DEPENDS_CACHE__NO_UID__', '${hide;kv:"disable_cache"}') - - @staticmethod - def _load_json_from_base64(base64str): - """ - :rtype: dict[str, Any] - """ - - def un_unicode(o): - if isinstance(o, six.text_type): - return six.ensure_str(o) - if isinstance(o, list): - return [un_unicode(oo) for oo in o] - if isinstance(o, dict): - return {un_unicode(k): un_unicode(v) for k, v in six.iteritems(o)} - return o - - return un_unicode(json.loads(base64.b64decode(base64str))) - - -class YMake(object): - def __init__(self, arcadia): - self.arcadia = arcadia - - def print_presets(self): - presets = opts().presets - if presets and 'YMAKE_JAVA_MODULES' not in presets: - presets['YMAKE_JAVA_MODULES'] = 'yes' - if presets and 'YMAKE_JAVA_MODULES' in presets and presets['YMAKE_JAVA_MODULES'] == "yes": - print('@import "${CONF_ROOT}/conf/java.ymake.conf"') - else: - print('@import "${CONF_ROOT}/conf/jbuild.ymake.conf"') - - if is_positive_str(presets.get('EXPORT_GRADLE', 'no')): - print('@import "${CONF_ROOT}/conf/export_gradle.yes.conf"') - else: - print('@import "${CONF_ROOT}/conf/export_gradle.no.conf"') - - if presets.get('COVERAGE_TARGET_REGEXP', None) is None: - print('@import "${CONF_ROOT}/conf/coverage_full_instrumentation.conf"') - else: - print('@import "${CONF_ROOT}/conf/coverage_selective_instrumentation.conf"') - - if presets: - print('# Variables set from command line by -D options') - for key in sorted(presets): - if key in ('MY_YMAKE_BIN', 'REAL_YMAKE_BIN'): - emit_with_ignore_comment(key, opts().presets[key]) - elif key == 'YMAKE_JAVA_MODULES': - continue - else: - emit(key, opts().presets[key]) - - @staticmethod - def _print_conf_content(path): - with open(path, 'r') as fin: - print(fin.read()) - - def print_core_conf(self): - emit('YMAKE_YNDEXER_IGNORE_BUILD_ROOT', 'yes') - print('@import "${CONF_ROOT}/ymake.core.conf"') - - def print_settings(self): - emit_with_ignore_comment('ARCADIA_ROOT', self.arcadia.root) - - @staticmethod - def _find_conf(conf_file): - script_dir = os.path.dirname(__file__) - full_path = os.path.join(script_dir, conf_file) - if os.path.exists(full_path): - return full_path - return None - - def _find_core_conf(self): - return self._find_conf('ymake.core.conf') - - -class System(object): - def __init__(self, platform): - """ - :type platform: Platform - """ - self.platform = platform - - def print_windows_target_const(self): - # TODO(somov): Remove this variables, use generic OS/arch variables in makelists. - emit('WINDOWS', 'yes') - emit('WIN32', 'yes') - if self.platform.is_64_bit == 64: - emit('WIN64', 'yes') - - def print_nix_target_const(self): - emit('JAVA_INCLUDE', '-I{0}/include -I{0}/include/{1}'.format('/usr/lib/jvm/default-java', self.platform.os_compat)) - - emit('UNIX', 'yes') - emit('REALPRJNAME') - emit('SONAME') - - def print_target_settings(self): - emit('TARGET_PLATFORM', self.platform.os_compat) - emit('CANONIZED_TARGET_PLATFORM', self.platform.canonized_platform) - emit('HARDWARE_ARCH', '32' if self.platform.is_32_bit else '64') - emit('HARDWARE_TYPE', self.platform.arch) - - for variable in self.platform.arch_variables: - emit(variable, 'yes') - - for variable in self.platform.os_variables: - emit(variable, 'yes') - - if self.platform.is_armv7: - emit('ARM7_FLOAT_ABI', self.platform.armv7_float_abi) - - if self.platform.is_android: - emit('ANDROID_API', str(self.platform.android_api)) - - if self.platform.is_posix: - self.print_nix_target_const() - elif self.platform.is_windows: - self.print_windows_target_const() - - def print_host_settings(self): - emit('HOST_PLATFORM', self.platform.os_compat) - emit('CANONIZED_HOST_PLATFORM', self.platform.canonized_platform) - - for variable in itertools.chain(self.platform.os_variables, self.platform.arch_variables): - emit('HOST_{var}'.format(var=variable), 'yes') - - -class CompilerDetector(object): - def __init__(self): - self.type = None - self.c_compiler = None - self.cxx_compiler = None - self.version_list = None - - @staticmethod - def preprocess_source(compiler, source): - # noinspection PyBroadException - try: - fd, path = tempfile.mkstemp(suffix='.cpp') - try: - with os.fdopen(fd, 'w') as output: - output.write(source) - stdout, code = get_stdout_and_code([compiler, '-E', path]) - except Exception as e: - logger.info("While writing: `%s`", e) - finally: - os.remove(path) - return stdout, code - - except Exception as e: - logger.debug('Preprocessing failed: %s', e) - return None, None - - @staticmethod - def get_compiler_vars(compiler, names): - prefix = '____YA_VAR_' - source = '\n'.join(['{prefix}{name}={name}\n'.format(prefix=prefix, name=n) for n in names]) - - # Некоторые препроцессоры возвращают ненулевой код возврата. Поэтому его проверять нельзя. - # Мы можем только удостовериться после разбора stdout, что в нём - # присутствовала хотя бы одна подставленная переменная. - # TODO(somov): Исследовать, можно ли проверять ограниченный набор кодов возврата. - # TODO(v-korovin): Нормально прокидывать Exception-ы, оно и так упадёт - stdout, _ = CompilerDetector.preprocess_source(compiler, source) - - if stdout is None: - return None - - vars_ = {} - for line in six.ensure_str(stdout).split('\n'): - parts = line.split('=', 1) - if len(parts) == 2 and parts[0].startswith(prefix): - name, value = parts[0][len(prefix):], parts[1] - if value == name: - continue # Preprocessor variable was not substituted - vars_[name] = value - - return vars_ - - def detect(self, c_compiler=None, cxx_compiler=None): - c_compiler = c_compiler or os.environ.get('CC') - cxx_compiler = cxx_compiler or os.environ.get('CXX') or c_compiler - c_compiler = c_compiler or cxx_compiler - - logger.debug('e=%s', os.environ) - if c_compiler is None: - raise ConfigureError('Custom compiler was requested but not specified') - - c_compiler_path = which(c_compiler) - - clang_vars = ['__clang_major__', '__clang_minor__', '__clang_patchlevel__'] - gcc_vars = ['__GNUC__', '__GNUC_MINOR__', '__GNUC_PATCHLEVEL__'] - msvc_vars = ['_MSC_VER'] - apple_var = '__apple_build_version__' - - compiler_vars = self.get_compiler_vars(c_compiler_path, clang_vars + [apple_var] + gcc_vars + msvc_vars) - - if not compiler_vars: - raise ConfigureError('Could not determine custom compiler version: {}'.format(c_compiler)) - - def version(version_names): - def iter_version(): - for name in version_names: - yield int(compiler_vars[name]) - - # noinspection PyBroadException - try: - return list(iter_version()) - except Exception: - return None - - clang_version = version(clang_vars) - apple_build = apple_var in compiler_vars - # TODO(somov): Учитывать номера версий сборки Apple компилятора Clang. - _ = apple_build - gcc_version = version(gcc_vars) - msvc_version = version(msvc_vars) - - if clang_version: - logger.debug('Detected Clang version %s', clang_version) - self.type = 'clang' - elif gcc_version: - logger.debug('Detected GCC version %s', gcc_version) - # TODO(somov): Переименовать в gcc. - self.type = 'gnu' - elif msvc_version: - logger.debug('Detected MSVC version %s', msvc_version) - self.type = 'msvc' - else: - raise ConfigureError('Could not determine custom compiler type: {}'.format(c_compiler)) - - self.version_list = clang_version or gcc_version or msvc_version - - self.c_compiler = c_compiler_path - self.cxx_compiler = cxx_compiler and which(cxx_compiler) or c_compiler_path - - -class ToolchainOptions(object): - def __init__(self, build, detector): - """ - :type build: Build - """ - self.host = build.host - self.target = build.target - - tc_json = build.params - - logger.debug('Toolchain host %s', self.host) - logger.debug('Toolchain target %s', self.target) - logger.debug('Toolchain json %s', DebugString(lambda: json.dumps(tc_json, indent=4, sort_keys=True))) - - self.params = tc_json['params'] - self._name = tc_json.get('name', 'theyknow') - - if detector: - self.type = detector.type - self.from_arcadia = False - - self.c_compiler = detector.c_compiler - self.cxx_compiler = detector.cxx_compiler - self.compiler_version_list = detector.version_list - self.compiler_version = '.'.join(map(lambda part: six.ensure_str(str(part)), self.compiler_version_list)) - - else: - self.type = self.params['type'] - self.from_arcadia = True - - self.c_compiler = self.params['c_compiler'] - self.cxx_compiler = self.params['cxx_compiler'] - - # TODO(somov): Требовать номер версии всегда. - self.compiler_version = self.params.get('gcc_version') or self.params.get('version') or '0' - self.compiler_version_list = list(map(int, self.compiler_version.split('.'))) - - # TODO(somov): Посмотреть, можно ли спрятать это поле. - self.name_marker = '$(%s)' % self.params.get('match_root', self._name.upper()) - - self.arch_opt = self.params.get('arch_opt', []) - self.triplet_opt = self.params.get('triplet_opt', {}) - self.target_opt = self.params.get('target_opt', []) - - # TODO(somov): Убрать чтение настройки из os.environ. - self.werror_mode = preset('WERROR_MODE') or os.environ.get('WERROR_MODE') or self.params.get('werror_mode') or 'compiler_specific' - - # default C++ standard is set here, some older toolchains might need to redefine it in ya.conf.json - self.cxx_std = self.params.get('cxx_std', 'c++20') - - self._env = tc_json.get('env', {}) - - self.android_ndk_version = self.params.get('android_ndk_version', None) - - logger.debug('c_compiler=%s', self.c_compiler) - logger.debug('cxx_compiler=%s', self.cxx_compiler) - - self.compiler_platform_projects = self.target.find_in_dict(self.params.get('platform'), []) - - def version_at_least(self, *args): - return args <= tuple(self.compiler_version_list) - - def version_exactly(self, *args): - if not args or len(args) > len(self.compiler_version_list): - return False - for l, r in zip(args, list(self.compiler_version_list)[:len(args)]): - if l != r: - return False - return True - - @property - def is_gcc(self): - return self.type == 'gnu' - - @property - def is_clang(self): - return self.type in ('clang', 'xcode') - - @property - def is_xcode(self): - return self.type == 'xcode' - - @property - def is_from_arcadia(self): - return self.from_arcadia - - @property - def is_system_cxx(self): - return self._name == "system_cxx" - - def get_env(self, convert_list=None): - convert_list = convert_list or (lambda x: x) - r = {} - for k, v in six.iteritems(self._env): - if isinstance(v, str): - r[k] = v - elif isinstance(v, list): - r[k] = convert_list(v) - else: - logger.debug('Unexpected values in environment: %s', self._env) - raise ConfigureError('Internal error') - return r - - -class GnuToolchainOptions(ToolchainOptions): - def __init__(self, build, detector): - super(GnuToolchainOptions, self).__init__(build, detector) - - self.ar = self.params.get('ar') - self.ar_plugin = self.params.get('ar_plugin') - self.inplace_tools = self.params.get('inplace_tools', False) - self.strip = self.params.get('strip') - self.objcopy = self.params.get('objcopy') - self.objdump = self.params.get('objdump') - self.isystem = self.params.get('isystem') - - self.dwarf_tool = self.target.find_in_dict(self.params.get('dwarf_tool')) - - # TODO(somov): Унифицировать формат sys_lib - self.sys_lib = self.params.get('sys_lib', {}) - if isinstance(self.sys_lib, dict): - self.sys_lib = self.target.find_in_dict(self.sys_lib, []) - - self.os_sdk = preset('OS_SDK') or self._default_os_sdk() - self.os_sdk_local = self.os_sdk == 'local' - - def _default_os_sdk(self): - if self.target.is_linux: - if self.target.is_armv8: - return 'ubuntu-16' - - if self.target.is_armv7 and self.target.armv7_float_abi == 'hard': - return 'ubuntu-16' - - if self.target.is_armv7 and self.target.armv7_float_abi == 'softfp': - return 'ubuntu-18' - - if self.target.is_powerpc: - return 'ubuntu-14' - - # Default OS SDK for Linux builds - return 'ubuntu-14' - - -class Toolchain(object): - def __init__(self, tc, build): - """ - :type tc: ToolchainOptions - :type build: Build - """ - self.tc = tc - self.build = build - self.platform_projects = self.tc.compiler_platform_projects - - def print_toolchain(self): - if self.platform_projects: - emit('COMPILER_PLATFORM', list(unique(self.platform_projects))) - - -class Compiler(object): - def __init__(self, tc, compiler_variable): - self.compiler_variable = compiler_variable - self.tc = tc - - def print_compiler(self): - # CLANG and CLANG_VER variables - emit(self.compiler_variable, 'yes') - emit('{}_VER'.format(self.compiler_variable), self.tc.compiler_version) - if self.tc.is_xcode: - emit('XCODE', 'yes') - - -class GnuToolchain(Toolchain): - def __init__(self, tc, build): - """ - :type tc: GnuToolchainOptions - :type build: Build - """ - - def get_os_sdk(target): - sdk_native_version = 10.11 if not preset('EXPERIMENTAL_MACOS_M1_SUPPORT') else '11.1' - if target.is_macos: - return '$MACOS_SDK_RESOURCE_GLOBAL/MacOSX{}.sdk'.format(sdk_native_version) - elif target.is_yocto: - return '$YOCTO_SDK_RESOURCE_GLOBAL' - return '$OS_SDK_ROOT_RESOURCE_GLOBAL' - - super(GnuToolchain, self).__init__(tc, build) - self.tc = tc - - host = build.host - target = build.target - - self.c_flags_platform = list(tc.target_opt) - - self.default_os_sdk_root = get_os_sdk(target) - - self.env = self.tc.get_env() - - self.env_go = {} - if self.tc.is_clang and not self.tc.is_system_cxx: - self.env_go = {'PATH': ['{}/bin'.format(self.tc.name_marker)]} - if self.tc.is_gcc: - self.env_go = {'PATH': ['{}/gcc/bin'.format(self.tc.name_marker)]} - if 'PATH' in self.env_go: - if target.is_linux: - self.env_go['PATH'].append('$OS_SDK_ROOT_RESOURCE_GLOBAL/usr/bin') - elif target.is_macos: - self.env_go['PATH'].extend([ - '$MACOS_SDK_RESOURCE_GLOBAL/usr/bin', - '$CCTOOLS_ROOT_RESOURCE_GLOBAL/bin', - '$GO_FAKE_XCRUN_RESOURCE_GLOBAL', - ]) - - self.swift_flags_platform = [] - self.swift_lib_path = None - - if self.tc.is_from_arcadia: - for lib_path in build.host.library_path_variables: - self.env.setdefault(lib_path, []).append('{}/lib'.format(self.tc.name_marker)) - - macos_version_min = '11.0' - ios_version_min = '11.0' - # min ios simulator version for Metal App is 13.0 - # https://developer.apple.com/documentation/metal/supporting_simulator_in_a_metal_app - # Mapkit (MAPSMOBI_BUILD_TARGET) uses Metal Framework - if preset('MAPSMOBI_BUILD_TARGET') and target.is_iossim and target.is_armv8: - ios_version_min = '13.0' - # Mapkit uses SecTrustEvaluateWithError function and these are min versions for it - elif preset('MAPSMOBI_BUILD_TARGET'): - ios_version_min = '12.0' - - swift_target = select(default=None, selectors=[ - (target.is_iossim and target.is_x86_64, 'x86_64-apple-ios{}-simulator'.format(ios_version_min)), - (target.is_iossim and target.is_x86, 'i386-apple-ios{}-simulator'.format(ios_version_min)), - (target.is_iossim and target.is_armv8, 'arm64-apple-ios{}-simulator'.format(ios_version_min)), - (not target.is_iossim and target.is_ios and target.is_armv8, 'arm64-apple-ios9'), - (not target.is_iossim and target.is_ios and target.is_armv7, 'armv7-apple-ios9'), - ]) - if swift_target: - self.swift_flags_platform += ['-target', swift_target] - - if self.tc.is_from_arcadia: - self.swift_lib_path = select(default=None, selectors=[ - (host.is_macos and target.is_iossim, '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/lib/swift/iphonesimulator'), - (host.is_macos and not target.is_iossim and target.is_ios and (target.is_armv8 or target.is_armv7), '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/lib/swift/iphoneos'), - ]) - - if self.tc.is_clang: - target_triple = self.tc.triplet_opt.get(target.arch, None) - if not target_triple: - target_triple = select(default=None, selectors=[ - (target.is_linux and target.is_x86_64, 'x86_64-linux-gnu'), - (target.is_linux and target.is_armv8, 'aarch64-linux-gnu'), - (target.is_linux and target.is_armv7 and target.armv7_float_abi == 'hard', 'armv7-linux-gnueabihf'), - (target.is_linux and target.is_armv7 and target.armv7_float_abi == 'softfp', 'armv7-linux-gnueabi'), - (target.is_linux and target.is_powerpc, 'powerpc64le-linux-gnu'), - (target.is_iossim and target.is_arm64, 'arm64-apple-ios{}-simulator'.format(ios_version_min)), - (target.is_apple and target.is_x86, 'i386-apple-darwin14'), - (target.is_apple and target.is_x86_64, 'x86_64-apple-darwin14'), - (target.is_apple and target.is_macos_arm64, 'arm64-apple-macos11'), - (target.is_apple and target.is_armv7, 'armv7-apple-darwin14'), - (target.is_apple and target.is_armv8, 'arm64-apple-darwin14'), - (target.is_yocto and target.is_armv7, 'arm-poky-linux-gnueabi'), - (target.is_android and target.is_x86, 'i686-linux-android'), - (target.is_android and target.is_x86_64, 'x86_64-linux-android'), - (target.is_android and target.is_armv7, 'armv7a-linux-androideabi'), - (target.is_android and target.is_armv8, 'aarch64-linux-android'), - ]) - - if target.is_android: - # Android NDK allows specification of API level in target triple, e.g.: - # armv7a-linux-androideabi16, aarch64-linux-android21 - target_triple += str(target.android_api) - - if target_triple: - self.c_flags_platform.append('--target={}'.format(target_triple)) - - if self.tc.isystem: - for root in list(self.tc.isystem): - self.c_flags_platform.extend(['-isystem', root]) - - if target.is_android: - self.c_flags_platform.extend(['-isystem', '{}/sources/cxx-stl/llvm-libc++abi/include'.format(self.tc.name_marker)]) - - if target.is_cortex_a9: - self.c_flags_platform.append('-mcpu=cortex-a9') - - if target.is_cortex_a35: - self.c_flags_platform.append('-mcpu=cortex-a35') - - elif target.is_cortex_a53: - self.c_flags_platform.append('-mcpu=cortex-a53') - - elif target.is_cortex_m33: - self.c_flags_platform.append('-mcpu=cortex-m33 -mfpu=fpv5-sp-d16') - - elif target.is_armv7_neon: - self.c_flags_platform.append('-mfpu=neon') - - if (target.is_armv7 or target.is_armv8m) and build.is_size_optimized: - # Enable ARM Thumb2 variable-length instruction encoding - # to reduce code size - self.c_flags_platform.append('-mthumb') - - if target.is_arm or target.is_powerpc: - # On linux, ARM and PPC default to unsigned char - # However, Arcadia requires char to be signed - self.c_flags_platform.append('-fsigned-char') - - if target.is_rv32imc: - self.c_flags_platform.append('-march=rv32imc') - - if self.tc.is_clang or self.tc.is_gcc and self.tc.version_at_least(8, 2): - target_flags = select(default=[], selectors=[ - (target.is_linux and target.is_power8le, ['-mcpu=power8', '-mtune=power8', '-maltivec']), - (target.is_linux and target.is_power9le, ['-mcpu=power9', '-mtune=power9', '-maltivec']), - (target.is_linux and target.is_armv8, ['-march=armv8a']), - (target.is_macos, ['-mmacosx-version-min={}'.format(macos_version_min)]), - (target.is_ios and not target.is_iossim, ['-mios-version-min={}'.format(ios_version_min)]), - (target.is_iossim, ['-mios-simulator-version-min={}'.format(ios_version_min)]), - (target.is_android and target.is_armv7, ['-march=armv7-a', '-mfloat-abi=softfp']), - (target.is_android and target.is_armv8, ['-march=armv8-a']), - (target.is_yocto and target.is_armv7, ['-march=armv7-a', '-mfpu=neon', '-mfloat-abi=hard', '-mcpu=cortex-a9', '-O1']) - ]) - - if target_flags: - self.c_flags_platform.extend(target_flags) - - if target.is_ios: - self.c_flags_platform.append('-D__IOS__=1') - - if self.tc.is_from_arcadia or self.tc.is_system_cxx: - if target.is_apple: - if target.is_ios: - self.setup_sdk(project='build/platform/ios_sdk', var='${IOS_SDK_ROOT_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') - if target.is_macos: - self.setup_sdk(project='build/platform/macos_sdk', var='${MACOS_SDK_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') - - if not self.tc.inplace_tools: - self.setup_tools(project='build/platform/cctools', var='${CCTOOLS_ROOT_RESOURCE_GLOBAL}', bin='bin', ldlibs=None) - - if target.is_linux: - if not tc.os_sdk_local: - self.setup_sdk(project='build/platform/linux_sdk', var='$OS_SDK_ROOT_RESOURCE_GLOBAL') - - if target.is_x86_64: - if host.is_linux and not self.tc.is_gcc: - self.setup_tools(project='build/platform/linux_sdk', var='$OS_SDK_ROOT_RESOURCE_GLOBAL', bin='usr/bin', ldlibs='usr/lib/x86_64-linux-gnu') - elif host.is_macos: - self.setup_tools(project='build/platform/binutils', var='$BINUTILS_ROOT_RESOURCE_GLOBAL', bin='x86_64-linux-gnu/bin', ldlibs=None) - elif target.is_powerpc: - self.setup_tools(project='build/platform/linux_sdk', var='$OS_SDK_ROOT_RESOURCE_GLOBAL', bin='usr/bin', ldlibs='usr/x86_64-linux-gnu/powerpc64le-linux-gnu/lib') - elif target.is_armv8: - self.setup_tools(project='build/platform/linux_sdk', var='$OS_SDK_ROOT_RESOURCE_GLOBAL', bin='usr/bin', ldlibs='usr/lib/x86_64-linux-gnu') - - if target.is_yocto: - self.setup_sdk(project='build/platform/yocto_sdk/yocto_sdk', var='${YOCTO_SDK_ROOT_RESOURCE_GLOBAL}') - elif self.tc.params.get('local'): - if target.is_apple: - if not tc.os_sdk_local: - if target.is_ios: - self.setup_sdk(project='build/platform/ios_sdk', var='${IOS_SDK_ROOT_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') - if target.is_macos: - self.setup_sdk(project='build/platform/macos_sdk', var='${MACOS_SDK_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') - else: - if target.is_iossim: - self.env.setdefault('SDKROOT', subprocess.check_output(['xcrun', '-sdk', 'iphonesimulator', '--show-sdk-path']).strip()) - elif target.is_ios: - self.env.setdefault('SDKROOT', subprocess.check_output(['xcrun', '-sdk', 'iphoneos', '--show-sdk-path']).strip()) - elif target.is_macos: - self.env.setdefault('SDKROOT', subprocess.check_output(['xcrun', '-sdk', 'macosx', '--show-sdk-path']).strip()) - - def setup_sdk(self, project, var): - self.platform_projects.append(project) - self.c_flags_platform.append('--sysroot={}'.format(var)) - self.swift_flags_platform += ['-sdk', var] - - # noinspection PyShadowingBuiltins - def setup_tools(self, project, var, bin, ldlibs): - self.platform_projects.append(project) - self.c_flags_platform.append('-B{}/{}'.format(var, bin)) - if ldlibs: - for lib_path in self.build.host.library_path_variables: - self.env.setdefault(lib_path, []).append('{}/{}'.format(var, ldlibs)) - - def print_toolchain(self): - super(GnuToolchain, self).print_toolchain() - - emit('TOOLCHAIN_ENV', format_env(self.env, list_separator=':')) - emit('_GO_TOOLCHAIN_ENV_PATH', format_env(self.env_go, list_separator=':')) - emit('C_FLAGS_PLATFORM', self.c_flags_platform) - emit('SWIFT_FLAGS_PLATFORM', self.swift_flags_platform) - emit('SWIFT_LD_FLAGS', '-L{}'.format(self.swift_lib_path) if self.swift_lib_path else '') - - emit('PERL_SDK', preset('OS_SDK') or self.tc.os_sdk) - if preset('OS_SDK') is None: - emit('OS_SDK', self.tc.os_sdk) - emit('OS_SDK_ROOT', None if self.tc.os_sdk_local else self.default_os_sdk_root) - - -class GnuCompiler(Compiler): - def __init__(self, tc, build): - """ - :type tc: GnuToolchainOptions - :type build: Build - """ - compiler_variable = 'CLANG' if tc.is_clang else 'GCC' - super(GnuCompiler, self).__init__(tc, compiler_variable) - - self.build = build - self.host = self.build.host - self.target = self.build.target - self.tc = tc - - self.c_foptions = [ - # Enable C++ exceptions (and allow them to be throw through pure C code) - '-fexceptions', - # Enable standard-conforming behavior and generate duplicate symbol error in case of duplicated global constants. - # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678#c0 - '-fno-common', - ] - - if self.tc.is_clang and self.target.is_linux: - # Use .init_array instead of .ctors (default for old clang versions) - # See: https://maskray.me/blog/2021-11-07-init-ctors-init-array - self.c_foptions.append('-fuse-init-array') - - if self.tc.is_clang: - self.c_foptions += [ - # Set up output colorization - '-fcolor-diagnostics', - # Enable aligned allocation - '-faligned-allocation', - '-fdebug-default-version=4', - ] - elif self.tc.is_gcc: - self.c_foptions += [ - # Set up output colorization - '-fdiagnostics-color=always', - # It looks like there is no way to enable aligned allocation in gcc - ] - - self.c_warnings = [ - # Enable default warnings subset - '-Wall', - '-Wextra', - ] - self.cxx_warnings = [ - # Issue a warning if certain overload is hidden due to inheritance - '-Woverloaded-virtual', - ] - - # Disable some warnings which will fail compilation at the time - self.c_warnings += [ - '-Wno-parentheses', - ] - - self.c_defines = ['-DFAKEID=$CPP_FAKEID'] - if self.target.is_android: - self.c_defines.append('-DANDROID_FAKEID=$ANDROID_FAKEID') - - self.c_defines.extend([ - '-DARCADIA_ROOT=${ARCADIA_ROOT}', - '-DARCADIA_BUILD_ROOT=${ARCADIA_BUILD_ROOT}', - ]) - - self.c_defines.extend([ - '-D_THREAD_SAFE', '-D_PTHREADS', '-D_REENTRANT', '-D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES', - '-D_LARGEFILE_SOURCE', '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS', - ]) - - if not self.target.is_android: - # There is no usable _FILE_OFFSET_BITS=64 support in Androids until API 21. And it's incomplete until at least API 24. - # https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md - # Arcadia have API 16 for 32-bit Androids. - self.c_defines.append('-D_FILE_OFFSET_BITS=64') - - if self.target.is_linux or self.target.is_android or self.target.is_cygwin or self.target.is_none: - self.c_defines.append('-D_GNU_SOURCE') - - if self.tc.is_clang and self.target.is_linux and self.target.is_x86_64: - self.c_defines.append('-D_YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE') - - if self.target.is_ios: - self.c_defines.extend(['-D_XOPEN_SOURCE', '-D_DARWIN_C_SOURCE']) - - self.c_flags = ['$CL_DEBUG_INFO', '$CL_DEBUG_INFO_DISABLE_CACHE__NO_UID__'] - self.c_flags += self.tc.arch_opt + ['-pipe'] - - self.sfdl_flags = ['-E', '-C', '-x', 'c++'] - - if self.target.is_x86: - self.c_flags.append('-m32') - if self.target.is_x86_64: - self.c_flags.append('-m64') - - self.debug_info_flags = ['-g'] - if self.target.is_linux: - self.debug_info_flags.append('-ggnu-pubnames') - - self.cross_suffix = '' if is_positive('FORCE_NO_PIC') else '.pic' - - self.optimize = None - - self.configure_build_type() - - if self.tc.is_clang: - self.sfdl_flags.append('-Qunused-arguments') - - self.c_warnings += [ - '-Wno-implicit-const-int-float-conversion', - # For nvcc to accept the above. - '-Wno-unknown-warning-option', - ] - - self.cxx_warnings += [ - '-Wimport-preprocessor-directive-pedantic', - '-Wno-ambiguous-reversed-operator', - '-Wno-defaulted-function-deleted', - '-Wno-deprecated-anon-enum-enum-conversion', - '-Wno-deprecated-enum-enum-conversion', - '-Wno-deprecated-enum-float-conversion', - '-Wno-deprecated-volatile', - '-Wno-pessimizing-move', - '-Wno-return-std-move', - '-Wno-undefined-var-template', - ] - - elif self.tc.is_gcc: - self.c_foptions.append('-fno-delete-null-pointer-checks') - self.c_foptions.append('-fabi-version=8') - - # Split all functions and data into separate sections for DCE and ICF linker passes - # NOTE: iOS build uses -fembed-bitcode which conflicts with -ffunction-sections (only relevant for ELF targets) - if not self.target.is_ios: - self.c_foptions.extend(['-ffunction-sections', '-fdata-sections']) - - def configure_build_type(self): - if self.build.is_valgrind: - self.c_defines.append('-DWITH_VALGRIND=1') - - if self.build.is_debug: - self.c_foptions.append('$FSTACK') - - if self.build.is_fast_debug: - self.c_flags.append('-Og') - - if self.build.is_release: - self.c_flags.append('$OPTIMIZE') - if self.build.is_size_optimized: - # -Oz is clang's more size-aggressive version of -Os - # For ARM specifically, clang -Oz is on par with gcc -Os: - # https://github.com/android/ndk/issues/133#issuecomment-365763507 - if self.tc.is_clang: - self.optimize = '-Oz' - else: - self.optimize = '-Os' - - # Generate sections with address significance tables for ICF linker pass - if self.tc.is_clang: - self.c_foptions.extend(['-faddrsig']) - else: - self.optimize = '-O3' - - if self.build.with_ndebug: - self.c_defines.append('-DNDEBUG') - else: - self.c_defines.append('-UNDEBUG') - - if self.build.profiler_type in (Profiler.Generic, Profiler.GProf): - self.c_foptions.append('-fno-omit-frame-pointer') - - if self.build.profiler_type == Profiler.GProf: - self.c_flags.append('-pg') - - def print_compiler(self): - super(GnuCompiler, self).print_compiler() - - emit('C_COMPILER_UNQUOTED', self.tc.c_compiler) - emit('OPTIMIZE', self.optimize) - emit('WERROR_MODE', self.tc.werror_mode) - emit('_C_FLAGS', self.c_flags) - emit('_C_FOPTIONS', self.c_foptions) - emit('_CXX_STD', '-std={}'.format(self.tc.cxx_std)) - append('C_DEFINES', self.c_defines) - append('C_WARNING_OPTS', self.c_warnings) - append('CXX_WARNING_OPTS', self.cxx_warnings) - emit('CXX_COMPILER_UNQUOTED', self.tc.cxx_compiler) - # TODO(somov): Убрать чтение настройки из os.environ - emit('USE_ARC_PROFILE', 'yes' if preset('USE_ARC_PROFILE') or os.environ.get('USE_ARC_PROFILE') else 'no') - emit('DEBUG_INFO_FLAGS', self.debug_info_flags) - - if self.build.is_coverage: - emit('_IS_COVERAGE', 'yes') - - if self.tc.is_clang and self.tc.version_at_least(9): - emit('_HAS_TIME_TRACE', 'yes') - - print('@import "${CONF_ROOT}/conf/compilers/gnu_compiler.conf"') - - -class SwiftCompiler(object): - def __init__(self, build): - self.host = build.host - self.compiler = None - - def configure(self): - if self.host.is_macos: - self.compiler = '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/bin/swiftc' - - def print_compiler(self): - emit('SWIFT_COMPILER', self.compiler or '') - - -class Linker(object): - BFD = 'bfd' - LLD = 'lld' - GOLD = 'gold' - - def __init__(self, tc, build): - """ - :type tc: ToolchainOptions - :type build: Build - """ - self.tc = tc - self.build = build - self.type = self._get_default_linker_type() - - def _get_default_linker_type(self): - if not self.tc.is_from_arcadia or is_positive('EXPORT_CMAKE'): - # External (e.g. system) toolchain: disable linker selection logic - return None - - if self.build.target.is_android: - # Android toolchain is NDK, LLD works on all supported platforms - return Linker.LLD - - elif self.build.target.is_linux: - return Linker.LLD - - # There is no linker choice on Darwin (ld64) or Windows (link.exe) - return None - - def print_linker(self): - self._print_linker_selector() - - def _print_linker_selector(self): - # if self.type is None then _DEFAULT_LINKER is set to empty string value - emit('_DEFAULT_LINKER_ID', self.type) - - -class LD(Linker): - def __init__(self, tc, build): - """ - :type tc: GnuToolchainOptions - :type build: Build - """ - super(LD, self).__init__(tc, build) - - self.build = build - self.host = self.build.host - self.target = self.build.target - self.tc = tc - - target = self.target - - self.ar = preset('AR') or self.tc.ar - self.ar_plugin = self.tc.ar_plugin - self.strip = self.tc.strip - self.objcopy = self.tc.objcopy - self.objdump = self.tc.objdump - - self.musl = Setting('MUSL', convert=to_bool) - - if self.ar is None: - if self.tc.is_from_arcadia: - if self.tc.is_clang: - self.ar = '{}/bin/llvm-ar'.format(self.tc.name_marker) - if self.tc.is_gcc: - self.ar = '{}/gcc/bin/gcc-ar'.format(self.tc.name_marker) - else: - self.ar = 'ar' - - self.ar_type = 'GNU_AR' - self.llvm_ar_format = 'None' - - if 'libtool' in self.ar: - self.ar_type = 'LIBTOOL' - elif 'llvm-ar' in self.ar: - self.ar_type = 'LLVM_AR' - if target.is_apple: - self.llvm_ar_format="darwin" - else: - self.llvm_ar_format="gnu" - - self.ld_flags = [] - - if self.musl.value: - self.ld_flags.extend(['-Wl,--no-as-needed']) - elif target.is_linux: - self.ld_flags.extend(['-ldl', '-lrt', '-Wl,--no-as-needed']) - if self.tc.is_gcc: - self.ld_flags.extend(('-Wl,-Bstatic', '-latomic', '-Wl,-Bdynamic')) - elif target.is_android: - self.ld_flags.extend(['-ldl', '-Wl,--no-as-needed']) - elif target.is_macos: - self.ld_flags.append('-Wl,-no_deduplicate') - if not self.tc.is_clang: - self.ld_flags.append('-Wl,-no_compact_unwind') - - self.ld_sdk = select(default=None, selectors=[ - (target.is_macos, '-Wl,-sdk_version,11.0'), - (not target.is_iossim and target.is_ios, '-Wl,-sdk_version,13.1'), - (target.is_iossim, '-Wl,-sdk_version,14.5'), - ]) - - if self.build.profiler_type == Profiler.GProf: - self.ld_flags.append('-pg') - - if self.ld_sdk: - self.ld_flags.append(self.ld_sdk) - - self.sys_lib = self.tc.sys_lib - - if target.is_android: - # Use toolchain defaults to link with libunwind/clang_rt.builtins - self.use_stdlib = '-nostdlib++' - - def print_linker(self): - super(LD, self).print_linker() - - emit('AR_TOOL', self.ar) - emit('AR_TYPE', self.ar_type) - emit('_LD_LLVM_AR_FORMAT', self.llvm_ar_format) - emit('_LD_AR_PLUGIN', self.ar_plugin or 'None') - - emit('STRIP_TOOL_VENDOR', self.strip) - emit('OBJCOPY_TOOL_VENDOR', self.objcopy) - emit('OBJDUMP_TOOL_VENDOR', self.objdump) - - emit('_LD_FLAGS', self.ld_flags) - emit('_LD_SYS_LIB', self.sys_lib) - emit('LD_SDK_VERSION', self.ld_sdk) - - dwarf_tool = self.tc.dwarf_tool - if dwarf_tool is None and self.tc.is_clang and (self.target.is_macos or self.target.is_ios): - dsymutil = '{}/bin/{}dsymutil'.format(self.tc.name_marker, '' if self.tc.version_at_least(7) else 'llvm-') - dwarf_tool = '${YMAKE_PYTHON} ${input:"build/scripts/run_llvm_dsymutil.py"} ' + dsymutil - if self.tc.version_at_least(5, 0): - dwarf_tool += ' -flat' - - if dwarf_tool is not None: - emit('DWARF_TOOL', dwarf_tool) - - arch_flag = '--arch={arch}'.format(arch=self.target.os_compat) - emit('_LD_ARCH_FLAG', arch_flag) - - print('@import "${CONF_ROOT}/conf/linkers/ld.conf"') - - -class MSVCToolchainOptions(ToolchainOptions): - def __init__(self, build, detector): - super(MSVCToolchainOptions, self).__init__(build, detector) - - # C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428 - self.vc_root = None - - # C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0 - self.kit_includes = None - - # C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0 - self.kit_libs = None - - self.under_wine = 'wine' in self.params - self.system_msvc = 'system_msvc' in self.params - self.ide_msvs = 'ide_msvs' in self.params - self.use_clang = self.params.get('use_clang', False) - self.use_arcadia_toolchain = self.params.get('use_arcadia_toolchain', False) - - self.sdk_version = None - - if build.host.is_windows: - self.under_wine = False - - if self.ide_msvs: - bindir = '$(VC_ExecutablePath_x64_x64)\\' - self.c_compiler = bindir + 'cl.exe' - self.cxx_compiler = self.c_compiler - - self.link = bindir + 'link.exe' - self.lib = bindir + 'lib.exe' - self.masm_compiler = bindir + 'ml64.exe' - - self.vc_root = None - - sdk_dir = '$(WindowsSdkDir)' - self.sdk_version = '$(WindowsTargetPlatformVersion)' - self.kit_includes = os.path.join(sdk_dir, 'Include', self.sdk_version) - self.kit_libs = os.path.join(sdk_dir, 'Lib', self.sdk_version) - - elif detector: - self.masm_compiler = which('ml64.exe') - self.link = which('link.exe') - self.lib = which('lib.exe') - - sdk_dir = os.environ.get('WindowsSdkDir') - self.sdk_version = os.environ.get('WindowsSDKVersion').replace('\\', '') - vc_install_dir = os.environ.get('VCToolsInstallDir') - # fix for cxx_std detection problem introduced in r7740071 when running in native VS toolkit commandline: - # in that case ya make gets 'system_cxx' configuration name and cxx_std is obviously missing in that config - # so default 'c++20' is substituted and we need to hotfix it here - self.cxx_std = 'c++latest' - - if any([x is None for x in (sdk_dir, self.sdk_version, vc_install_dir)]): - raise ConfigureError('No %WindowsSdkDir%, %WindowsSDKVersion% or %VCINSTALLDIR% present. Please, run vcvars64.bat to setup preferred environment.') - - self.vc_root = os.path.normpath(vc_install_dir) - self.kit_includes = os.path.normpath(os.path.join(sdk_dir, 'Include', self.sdk_version)) - self.kit_libs = os.path.normpath(os.path.join(sdk_dir, 'Lib', self.sdk_version)) - - # TODO(somov): Определять автоматически self.version в этом случае - - else: - if self.version_at_least(2019): - self.sdk_version = '10.0.18362.0' - sdk_dir = '$(WINDOWS_KITS-sbr:1939557911)' - if is_positive('MSVC20'): # XXX: temporary flag, remove after DTCC-123 is completed - self.cxx_std = 'c++latest' - else: - self.sdk_version = '10.0.16299.0' - sdk_dir = '$(WINDOWS_KITS-sbr:1379398385)' - - self.vc_root = self.name_marker if not self.use_clang else '$MSVC_FOR_CLANG_RESOURCE_GLOBAL' - self.kit_includes = os.path.join(sdk_dir, 'Include', self.sdk_version) - self.kit_libs = os.path.join(sdk_dir, 'Lib', self.sdk_version) - - bindir = os.path.join(self.vc_root, 'bin', 'Hostx64') - - tools_name = select(selectors=[ - (build.target.is_x86, 'x86'), - (build.target.is_x86_64, 'x64'), - (build.target.is_armv7, 'arm'), - ]) - - asm_name = select(selectors=[ - (build.target.is_x86, 'ml.exe'), - (build.target.is_x86_64, 'ml64.exe'), - (build.target.is_armv7, 'armasm.exe'), - ]) - - def prefix(_type, _path): - if not self.under_wine: - return _path - return '{wine} {type} $WINE_ENV ${{ARCADIA_ROOT}} ${{ARCADIA_BUILD_ROOT}} {path}'.format( - wine='${YMAKE_PYTHON} ${input:\"build/scripts/run_msvc_wine.py\"} $(WINE_TOOL-sbr:1093314933)/bin/wine64 -v140 ' + - '${input;hide:\"build/scripts/process_command_files.py\"} ${input;hide:\"build/scripts/process_whole_archive_option.py\"}', - type=_type, - path=_path - ) - - self.masm_compiler = prefix('masm', os.path.join(bindir, tools_name, asm_name)) - self.link = prefix('link', os.path.join(bindir, tools_name, 'link.exe')) - self.lib = prefix('lib', os.path.join(bindir, tools_name, 'lib.exe')) - - -class MSVC(object): - # noinspection PyPep8Naming - class WindowsVersion(object): - """ - Predefined values for _WIN32_WINNT macro. - This macro specifies minimal Windows version required by the binary being build. - - A complete list of the values supported by the Windows SDK can be found at - https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt - """ - Windows7 = '0x0601' - Windows8 = '0x0602' - - def __init__(self, tc, build): - """ - :type tc: MSVCToolchainOptions - :type build: Build - """ - if not isinstance(tc, MSVCToolchainOptions): - raise TypeError('Got {} ({}) instead of an MSVCToolchainOptions'.format(tc, type(tc))) - - self.build = build - self.tc = tc - - -class MSVCToolchain(MSVC, Toolchain): - def __init__(self, tc, build): - """ - :type tc: MSVCToolchainOptions - :param build: Build - """ - Toolchain.__init__(self, tc, build) - MSVC.__init__(self, tc, build) - - if self.tc.from_arcadia and not self.tc.ide_msvs: - self.platform_projects.append('build/platform/msvc') - if tc.under_wine: - self.platform_projects.append('build/platform/wine') - - def print_toolchain(self): - super(MSVCToolchain, self).print_toolchain() - - emit('TOOLCHAIN_ENV', format_env(self.tc.get_env(), list_separator=';')) - - if self.tc.sdk_version: - emit('WINDOWS_KITS_VERSION', self.tc.sdk_version) - - if self.tc.under_wine: - emit('_UNDER_WINE', 'yes') - if self.tc.use_clang: - emit('CLANG_CL', 'yes') - if self.tc.ide_msvs: - emit('IDE_MSVS', 'yes') - if self.tc.use_arcadia_toolchain: - emit('USE_ARCADIA_TOOLCHAIN', 'yes') - emit('_MSVC_TC_KIT_LIBS', self.tc.kit_libs) - emit('_MSVC_TC_VC_ROOT', self.tc.vc_root) - - print('@import "${CONF_ROOT}/conf/toolchains/msvc_toolchain.conf"') - - -class MSVCCompiler(MSVC, Compiler): - def __init__(self, tc, build): - Compiler.__init__(self, tc, 'MSVC') - MSVC.__init__(self, tc, build) - - def print_compiler(self): - super(MSVCCompiler, self).print_compiler() - - target = self.build.target - - warns_enabled = [ - 4018, # 'expression' : signed/unsigned mismatch - 4265, # 'class' : class has virtual functions, but destructor is not virtual - 4296, # 'operator' : expression is always false - 4431, # missing type specifier - int assumed - ] - warns_as_error = [ - 4013, # 'function' undefined; assuming extern returning int - ] - warns_disabled = [ - # While this warning corresponds to enabled-by-default -Wmacro-redefinition, - # it floods clog with abundant amount of log lines, - # as yvals_core.h from Windows SDK redefines certain - # which macros logically belong to libcxx - 4005, # '__cpp_lib_*': macro redefinition. - - # Ne need to recheck this, but it looks like _CRT_USE_BUILTIN_OFFSETOF still makes sense - 4117, # macro name '_CRT_USE_BUILTIN_OFFSETOF' is reserved, '#define' ignored - - 4127, # conditional expression is constant - 4200, # nonstandard extension used : zero-sized array in struct/union - 4201, # nonstandard extension used : nameless struct/union - 4351, # elements of array will be default initialized - 4355, # 'this' : used in base member initializer list - 4503, # decorated name length exceeded, name was truncated - 4510, # default constructor could not be generated - 4511, # copy constructor could not be generated - 4512, # assignment operator could not be generated - 4554, # check operator precedence for possible error; use parentheses to clarify precedence - 4610, # 'object' can never be instantiated - user defined constructor required - 4706, # assignment within conditional expression - 4800, # forcing value to bool 'true' or 'false' (performance warning) - 4996, # The POSIX name for this item is deprecated - 4714, # function marked as __forceinline not inlined - 4197, # 'TAtomic' : top-level volatile in cast is ignored - 4245, # 'initializing' : conversion from 'int' to 'ui32', signed/unsigned mismatch - 4324, # 'ystd::function<void (uint8_t *)>': structure was padded due to alignment specifier - 5033, # 'register' is no longer a supported storage class - ] - - defines = [ - # FIXME: This is quick fix to let catboost build from MSVS IDE - # This place is questionable overall, see YMAKE-437 - '/DARCADIA_ROOT=' + ('${ARCADIA_ROOT}' if not self.tc.ide_msvs else '.'), - '/DARCADIA_BUILD_ROOT=' + ('${ARCADIA_BUILD_ROOT}' if not self.tc.ide_msvs else '.'), - '/DFAKEID=$CPP_FAKEID', - '/DWIN32', - '/D_WIN32', - '/D_WINDOWS', - # Define _CRT_*_NO_WARNINGS macros to prevent ucrt from issuing a warning whenever - # a POSIX-style function is used instead of the alternative Microsoft suggests as a secure / standard replacement - # (e. g. `strncpy()` instead of `strncpy_s()`, `access()` instead of `_access()`) - # For details see: - # https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt - '/D_CRT_SECURE_NO_WARNINGS', - '/D_CRT_NONSTDC_NO_WARNINGS', - # Math constants (such as M_PI, M_E, M_SQRT2) are not defined in standard C / C++ - # In order to get them defined by Windows ucrt library, - # you must first define _USE_MATH_DEFINES before #including <cmath> or math.h>. - # (NB: glibc defines these macros whenever _XOPEN_SOURCE is defined) - '/D_USE_MATH_DEFINES', - '/D__STDC_CONSTANT_MACROS', - '/D__STDC_FORMAT_MACROS', - '/D_USING_V110_SDK71_', - '/D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES', - # Below defines are covered at - # https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers#faster-builds-with-smaller-header-files - # Exclude APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets (while including <windows.h>) - '/DWIN32_LEAN_AND_MEAN', - # Define NOMINMAX to avoid min() and max() macros definition (while including <windows.h>) - '/DNOMINMAX', - ] - - cxx_defines = [ - # Use builtin offsetof implementation - # instead of a crutcy macro defined in ucrt/stddef.h. - # The latter can not be used in constexpr statements. - '/D_CRT_USE_BUILTIN_OFFSETOF', - ] - - if target.is_x86_64: - defines.extend(('/D_WIN64', '/DWIN64')) - - if target.is_armv7: - defines.extend(('/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE', '/D__arm__')) - - winapi_unicode = False - - flags = [ - '/nologo', '/Zm500', '/GR', '/bigobj', '/FC', '/EHs', '/errorReport:prompt', '$MSVC_INLINE_FLAG', '/utf-8', - # enable standard conforming mode - '/permissive-' - ] - flags += self.tc.arch_opt - - c_warnings = ['/we{}'.format(code) for code in warns_as_error] - c_warnings += ['/w1{}'.format(code) for code in warns_enabled] - c_warnings += ['/wd{}'.format(code) for code in warns_disabled] - cxx_warnings = [] - - if self.tc.use_clang: - flags += [ - # Allow <windows.h> to be included via <Windows.h> in case-sensitive file-systems. - '-fcase-insensitive-paths', - - # At the time clang-cl identifies itself as MSVC 19.11: - # (actual value can be found in clang/lib/Driver/ToolChains/MSVC.cpp, the syntax would be like - # ``` - # MSVT = VersionTuple(19, 11); - # ``` - # - # We override this value to match current value of the actual MSVC being used. - '-fms-compatibility-version=19.21', - # for msvc compatibility - # https://clang.llvm.org/docs/UsersManual.html#microsoft-extensions - '-fdelayed-template-parsing', - ] - if target.is_x86: - flags.append('-m32') - elif target.is_x86_64: - flags.append('-m64') - - c_warnings.extend(( - '-Wno-format', - '-Wno-parentheses', - '-Wno-unknown-warning-option', - )) - - cxx_warnings += [ - '-Wimport-preprocessor-directive-pedantic', - '-Woverloaded-virtual', - '-Wno-ambiguous-reversed-operator', - '-Wno-defaulted-function-deleted', - '-Wno-deprecated-anon-enum-enum-conversion', - '-Wno-deprecated-enum-enum-conversion', - '-Wno-deprecated-enum-float-conversion', - '-Wno-deprecated-volatile', - '-Wno-undefined-var-template', - ] - - if self.tc.ide_msvs: - cxx_warnings += [ - '-Wno-unused-command-line-argument', - ] - - win_version_min = self.WindowsVersion.Windows7 - defines.append('/D_WIN32_WINNT={0}'.format(win_version_min)) - - if winapi_unicode: - defines += ['/DUNICODE', '/D_UNICODE'] - else: - defines += ['/D_MBCS'] - - vc_include = os.path.join(self.tc.vc_root, 'include') if not self.tc.ide_msvs else "$(VC_VC_IncludePath.Split(';')[0].Replace('\\','/'))" - - if not self.tc.ide_msvs: - def include_flag(path): - return '{flag}"{path}"'.format(path=path, flag='/I ' if not self.tc.use_clang else '-imsvc') - - for name in ('shared', 'ucrt', 'um', 'winrt'): - flags.append(include_flag(os.path.join(self.tc.kit_includes, name))) - flags.append(include_flag(vc_include)) - - if self.tc.use_clang: - emit('CLANG_CL', 'yes') - if self.tc.ide_msvs: - emit('IDE_MSVS', 'yes') - if self.tc.use_arcadia_toolchain: - emit('USE_ARCADIA_TOOLCHAIN', 'yes') - - emit('CXX_COMPILER', self.tc.cxx_compiler) - emit('C_COMPILER', self.tc.c_compiler) - emit('MASM_COMPILER', self.tc.masm_compiler) - append('C_DEFINES', defines) - append('C_WARNING_OPTS', c_warnings) - emit('_CXX_DEFINES', cxx_defines) - append('CXX_WARNING_OPTS', cxx_warnings) - - if self.build.is_release: - emit('CFLAGS_PER_TYPE', '$CFLAGS_RELEASE') - if self.build.is_debug: - emit('CFLAGS_PER_TYPE', '$CFLAGS_DEBUG') - if self.build.is_ide: - emit('CFLAGS_PER_TYPE', '@[debug|$CFLAGS_DEBUG]@[release|$CFLAGS_RELEASE]') - - emit('_STD_CXX', '/std:{}'.format(self.tc.cxx_std)) - - emit('_MSVC_FLAGS', flags) - - ucrt_include = os.path.join(self.tc.kit_includes, 'ucrt') if not self.tc.ide_msvs else "$(UniversalCRT_IncludePath.Split(';')[0].Replace('\\','/'))" - - # clang-cl has '#include_next', and MSVC hasn't. It needs separately specified CRT and VC include directories for libc++ to include second in order standard C and C++ headers. - if not self.tc.use_clang: - emit('_CFLAGS_UCRT_VC_INCLUDES', '/DY_UCRT_INCLUDE="%s"' % ucrt_include, '/DY_MSVC_INCLUDE="%s"' % vc_include) - else: - emit('_CFLAGS_UCRT_VC_INCLUDES') - - emit('WERROR_MODE', self.tc.werror_mode) - - print('@import "${CONF_ROOT}/conf/compilers/msvc_compiler.conf"') - - -class MSVCLinker(MSVC, Linker): - def __init__(self, tc, build): - MSVC.__init__(self, tc, build) - Linker.__init__(self, tc, build) - - def print_linker(self): - super(MSVCLinker, self).print_linker() - - linker = self.tc.link - linker_lib = self.tc.lib - - emit('LINK_LIB_CMD', linker_lib) - emit('LINK_EXE_CMD', linker) - - if self.build.is_release: - emit('LINK_EXE_FLAGS_PER_TYPE', '$LINK_EXE_FLAGS_RELEASE') - if self.build.is_debug: - emit('LINK_EXE_FLAGS_PER_TYPE', '$LINK_EXE_FLAGS_DEBUG') - if self.build.is_ide and self.tc.ide_msvs: - emit('LINK_EXE_FLAGS_PER_TYPE', '@[debug|$LINK_EXE_FLAGS_DEBUG]@[release|$LINK_EXE_FLAGS_RELEASE]') - - print('@import "${CONF_ROOT}/conf/linkers/msvc_linker.conf"') - - -# TODO(somov): Rename! -Compilers = { - 'gnu': (GnuToolchain, GnuCompiler, LD), - 'clang': (GnuToolchain, GnuCompiler, LD), - 'xcode': (GnuToolchain, GnuCompiler, LD), - 'msvc': (MSVCToolchain, MSVCCompiler, MSVCLinker), -} - - -class Ragel(object): - def __init__(self): - self.rlgen_flags = [] - self.ragel_flags = [] - self.ragel6_flags = [] - - def configure_toolchain(self, build, compiler): - if isinstance(compiler, MSVCCompiler): - self.set_default_flags(optimized=False) - elif isinstance(compiler, GnuCompiler): - self.set_default_flags(optimized=build.is_release and not build.is_sanitized) - else: - raise ConfigureError('Unexpected compiler {}'.format(compiler)) - - def set_default_flags(self, optimized): - if optimized: - self.rlgen_flags.append('-G2') - self.ragel6_flags.append('-CG2') - else: - self.rlgen_flags.append('-T0') - self.ragel6_flags.append('-CT0') - - def print_variables(self): - emit('RLGEN_FLAGS', self.rlgen_flags) - emit('RAGEL_FLAGS', self.ragel_flags) - emit('RAGEL6_FLAGS', self.ragel6_flags) - - -class Python(object): - def __init__(self, tc): - self.python = None - self.flags = None - self.ldflags = None - self.libraries = None - self.includes = None - self.tc = tc - - def configure_posix(self, python=None, python_config=None): - python = python or preset('PYTHON_BIN') or which('python') - python_config = python_config or preset('PYTHON_CONFIG') or which('python-config') - - if python is None or python_config is None: - return - - # python-config dumps each option on one line in the specified order - config = get_stdout([python_config, '--cflags', '--ldflags', '--includes']) or '' - config = config.split('\n') - if len(config) < 3: - return - - self.python = python - self.flags = config[0] - self.ldflags = config[1] - self.includes = config[2] - # Do not split libraries from ldflags. - # They are not used separately and get overriden together, so it is safe. - # TODO(somov): Удалить эту переменную и PYTHON_LIBRARIES из makelist-ов. - self.libraries = '' - if preset('USE_ARCADIA_PYTHON') == 'no' and not preset('USE_SYSTEM_PYTHON') and not self.tc.os_sdk_local: - raise Exception("Use fixed python (see https://clubs.at.yandex-team.ru/arcadia/15392) or set OS_SDK=local flag") - - def print_variables(self): - variables = Variables({ - 'PYTHON_BIN': self.python, - 'PYTHON_FLAGS': self.flags, - 'PYTHON_LDFLAGS': self.ldflags, - 'PYTHON_LIBRARIES': self.libraries, - 'PYTHON_INCLUDE': self.includes - }) - - variables.update_from_presets() - variables.reset_if_any(reset_value='PYTHON-NOT-FOUND') - variables.emit() - - -class Perl(object): - # Parse (key, value) from "version='5.26.0';" lines - PERL_CONFIG_RE = re.compile(r"^(?P<key>\w+)='(?P<value>.*)';$", re.MULTILINE) - - def __init__(self): - self.perl = None - self.version = None - self.privlib = None - self.archlib = None - - def configure_local(self, perl=None): - self.perl = perl or preset('PERL') or which('perl') - if self.perl is None: - return - - # noinspection PyTypeChecker - config = dict(self._iter_config(['version', 'privlibexp', 'archlibexp'])) - self.version = config.get('version') - self.privlib = config.get('privlibexp') - self.archlib = config.get('archlibexp') - - def print_variables(self, prefix=''): - variables = Variables({ - prefix + 'PERL': self.perl, - prefix + 'PERL_VERSION': self.version, - prefix + 'PERL_PRIVLIB': self.privlib, - prefix + 'PERL_ARCHLIB': self.archlib, - }) - - variables.reset_if_any(reset_value='PERL-NOT-FOUND') - variables.emit(with_ignore_comment=variables.keys()) - - def _iter_config(self, config_keys): - # Run perl -V:version -V:etc... - perl_config = [self.perl] + ['-V:{}'.format(key) for key in config_keys] - config = six.ensure_str(get_stdout(perl_config) or '') - - start = 0 - while True: - match = Perl.PERL_CONFIG_RE.search(config, start) - if match is None: - break - yield match.group('key', 'value') - start = match.end() - - -class Setting(object): - def __init__(self, key, auto=None, convert=None, rewrite=False): - self.key = key - - self.auto = auto - self.convert = convert - - self.preset = preset(key) - self.from_user = self.preset is not None - self.rewrite = rewrite - - self._value = Setting.no_value - - @property - def value(self): - if self._value is Setting.no_value: - self._value = self.calculate_value() - return self._value - - def calculate_value(self): - if not self.from_user: - return self.auto if not callable(self.auto) else self.auto() - else: - return self.preset if not self.convert else self.convert(self.preset) - - @value.setter - def value(self, value): - if self.from_user: - raise ConfigureError("Variable {key} already set by user to {old}. Can not change it's value to {new}".format(key=self.key, old=self._value, new=value)) - self._value = value - - def emit(self): - if not self.from_user or self.rewrite: - emit(self.key, self.value) - - no_value = object() - - -class Cuda(object): - def __init__(self, build): - """ - :type build: Build - """ - self.build = build - - self.have_cuda = Setting('HAVE_CUDA', auto=self.auto_have_cuda, convert=to_bool) - - self.cuda_root = Setting('CUDA_ROOT') - self.cuda_version = Setting('CUDA_VERSION', auto=self.auto_cuda_version, convert=self.convert_major_version, rewrite=True) - self.use_arcadia_cuda = Setting('USE_ARCADIA_CUDA', auto=self.auto_use_arcadia_cuda, convert=to_bool) - self.use_arcadia_cuda_host_compiler = Setting('USE_ARCADIA_CUDA_HOST_COMPILER', auto=self.auto_use_arcadia_cuda_host_compiler, convert=to_bool) - self.cuda_use_clang = Setting('CUDA_USE_CLANG', auto=False, convert=to_bool) - self.cuda_host_compiler = Setting('CUDA_HOST_COMPILER', auto=self.auto_cuda_host_compiler) - self.cuda_host_compiler_env = Setting('CUDA_HOST_COMPILER_ENV') - self.cuda_host_msvc_version = Setting('CUDA_HOST_MSVC_VERSION') - self.cuda_nvcc_flags = Setting('CUDA_NVCC_FLAGS', auto=[]) - - self.peerdirs = ['build/platform/cuda'] - - self.nvcc_flags = [ - # Allow __host__, __device__ annotations in lambda declaration. - "--expt-extended-lambda", - # Allow host code to invoke __device__ constexpr functions and vice versa - "--expt-relaxed-constexpr", - ] - - if not self.have_cuda.value: - return - - if self.cuda_host_compiler.value: - self.nvcc_flags.append('--compiler-bindir=$CUDA_HOST_COMPILER') - - if self.use_arcadia_cuda.value: - self.cuda_root.value = '$CUDA_RESOURCE_GLOBAL' - - if self.build.target.is_linux_x86_64 and self.build.tc.is_clang: - # TODO(somov): Эта настройка должна приезжать сюда автоматически из другого места - self.nvcc_flags.append('-I$OS_SDK_ROOT/usr/include/x86_64-linux-gnu') - - def print_(self): - self.print_variables() - self.print_macros() - print('@import "${CONF_ROOT}/conf/compilers/nvcc.conf"') - - def print_variables(self): - self.have_cuda.emit() - if not self.have_cuda.value: - return - - if self.use_arcadia_cuda.value and self.cuda_host_compiler.value is None: - logger.warning('$USE_ARCADIA_CUDA is set, but no $CUDA_HOST_COMPILER') - - self.setup_vc_root() - - self.cuda_root.emit() - self.cuda_version.emit() - self.use_arcadia_cuda.emit() - self.use_arcadia_cuda_host_compiler.emit() - self.cuda_use_clang.emit() - self.cuda_host_compiler.emit() - self.cuda_host_compiler_env.emit() - self.cuda_host_msvc_version.emit() - self.cuda_nvcc_flags.emit() - - emit('NVCC_UNQUOTED', self.build.host.exe('$CUDA_ROOT', 'bin', 'nvcc')) - emit('NVCC', '${quo:NVCC_UNQUOTED}') - emit('NVCC_FLAGS', self.nvcc_flags, '$CUDA_NVCC_FLAGS') - emit('NVCC_OBJ_EXT', '.o' if not self.build.target.is_windows else '.obj') - - def print_macros(self): - mtime = ' ' - if self.build.host_target[1].is_linux: - mtime = ' --mtime ${tool:"tools/mtime0"} ' - if not self.cuda_use_clang.value: - cmd = '$YMAKE_PYTHON ${input:"build/scripts/compile_cuda.py"}' + mtime + '$NVCC $NVCC_FLAGS -c ${input:SRC} -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:SRC} ${pre=-I:_C__INCLUDE} --cflags $C_FLAGS_PLATFORM $CXXFLAGS $NVCC_STD $NVCC_CFLAGS $SRCFLAGS ${input;hide:"build/platform/cuda/cuda_runtime_include.h"} $CUDA_HOST_COMPILER_ENV ${kv;hide:"p CC"} ${kv;hide:"pc light-green"}' # noqa E501 - else: - cmd = '$CXX_COMPILER --cuda-path=$CUDA_ROOT $C_FLAGS_PLATFORM -c ${input:SRC} -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:SRC} ${pre=-I:_C__INCLUDE} $CXXFLAGS $SRCFLAGS $TOOLCHAIN_ENV ${kv;hide:"p CU"} ${kv;hide:"pc green"}' # noqa E501 - - emit('_SRC_CU_CMD', cmd) - emit('_SRC_CU_PEERDIR', ' '.join(sorted(self.peerdirs))) - - def have_cuda_in_arcadia(self): - host, target = self.build.host_target - - if not any((host.is_linux_x86_64, host.is_macos_x86_64, host.is_windows_x86_64, host.is_linux_powerpc)): - return False - - if host != target: - if not(host.is_linux_x86_64 and target.is_linux_armv8): - return False - if not self.cuda_version.from_user: - return False - - if self.cuda_version.value in ('8.0', '9.0', '9.1', '9.2', '10.0'): - raise ConfigureError('CUDA versions 8.x, 9.x and 10.0 are no longer supported.\nSee DEVTOOLS-7108.') - - if self.cuda_version.value in ('10.1', '11.0', '11.1', '11.3', '11.4'): - return True - - return False - - def auto_have_cuda(self): - if is_positive('MUSL'): - return False - if self.build.is_sanitized: - return False - if self.build.host_target[1].is_macos_x86_64 or self.build.host_target[1].is_macos_arm64: - # DEVTOOLSSUPPORT-19178 CUDA is rarely needed on Mac. Disable it by default but allow explicit builds with CUDA. - return False - return self.cuda_root.from_user or self.use_arcadia_cuda.value and self.have_cuda_in_arcadia() - - def auto_cuda_version(self): - if self.use_arcadia_cuda.value: - return '10.1' - - if not self.have_cuda.value: - return None - - nvcc_exe = self.build.host.exe(os.path.expanduser(self.cuda_root.value), 'bin', 'nvcc') - - def error(): - raise ConfigureError('Failed to get CUDA version from {}'.format(nvcc_exe)) - - version_output = get_stdout([nvcc_exe, '--version']) or error() - match = re.search(r'^Cuda compilation tools, release (\d+)\.\d+,', version_output, re.MULTILINE) or error() - - return match.group(1) - - def convert_major_version(self, value): - if value == '10': - return '10.1' - elif value == '11': - return '11.3' - else: - return value - - def auto_use_arcadia_cuda(self): - return not self.cuda_root.from_user - - def auto_use_arcadia_cuda_host_compiler(self): - return not self.cuda_host_compiler.from_user and not self.cuda_use_clang.value - - def auto_cuda_host_compiler(self): - if not self.use_arcadia_cuda_host_compiler.value: - return None - - host, target = self.build.host_target - - if host.is_windows_x86_64 and target.is_windows_x86_64: - return self.cuda_windows_host_compiler() - - return select(( - (host.is_linux_x86_64 and target.is_linux_x86_64, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), - (host.is_linux_x86_64 and target.is_linux_armv8, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), - (host.is_linux_powerpc and target.is_linux_powerpc, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), - (host.is_macos_x86_64 and target.is_macos_x86_64, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/usr/bin/clang'), - )) - - def cuda_windows_host_compiler(self): - vc_version = '14.28.29910' - - env = { - 'Y_VC_Version': vc_version, - 'Y_VC_Root': '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/VC/Tools/MSVC/{}'.format(vc_version), - 'Y_SDK_Version': self.build.tc.sdk_version, - 'Y_SDK_Root': '$WINDOWS_KITS_RESOURCE_GLOBAL', - } - - if not self.build.tc.ide_msvs: - self.peerdirs.append('build/platform/msvc') - self.cuda_host_compiler_env.value = format_env(env) - self.cuda_host_msvc_version.value = vc_version - return '%(Y_VC_Root)s/bin/HostX64/x64/cl.exe' % env - - def setup_vc_root(self): - if not self.cuda_host_compiler.from_user: - return # Already set in cuda_windows_host_compiler() - - if self.cuda_host_compiler_env.from_user: - return # We won't override user setting - - def is_root(dir): - return all(os.path.isdir(os.path.join(dir, name)) for name in ('bin', 'include', 'lib')) - - def get_root(): - path, old_path = os.path.normpath(self.cuda_host_compiler.value), None - while path != old_path: - if is_root(path): - return path - path, old_path = os.path.dirname(path), path - - vc_root = get_root() - if vc_root: - self.cuda_host_compiler_env.value = format_env({'Y_VC_Root': vc_root}) - - -class CuDNN(object): - def __init__(self, cuda): - """ - :type cuda: Cuda - """ - self.cuda = cuda - - self.cudnn_version = Setting('CUDNN_VERSION', auto=self.auto_cudnn_version) - - def have_cudnn(self): - return self.cudnn_version.value in ('7.6.5', '8.0.5') - - def auto_cudnn_version(self): - return '7.6.5' - - def print_(self): - if self.cuda.have_cuda.value and self.have_cudnn(): - self.cudnn_version.emit() - - -def print_swig_config(): - def get_swig_tool(): - tool = preset('USER_SWIG_TOOL') - if not tool: - tool = which('swig') - if not tool: - raise ConfigureError('SWIG_TOOL is not specified and "swig" is not found in PATH') - return os.path.abspath(tool) - - def get_swig_library(tool): - library = preset('USER_SWIG_LIBRARY') - if not library: - library, code = get_stdout_and_code((tool, '-swiglib')) - if code != 0: - raise ConfigureError('SWIG_LIBRARY is not specified and "{} -swiglib" failed'.format(tool)) - library = library.split('\n')[0] - return os.path.abspath(library) - - use_local_swig = to_bool(preset('USER_USE_LOCAL_SWIG'), False) or bool(preset('USER_SWIG_TOOL')) - if use_local_swig: - tool = get_swig_tool() - library = get_swig_library(tool) - - emit('USE_LOCAL_SWIG', True) - emit('SWIG_TOOL', tool) - emit('SWIG_LIBRARY', library) - - -def main(): - options = opts() - - arcadia = Arcadia(options.arcadia_root) - - ymake = YMake(arcadia) - - ymake.print_core_conf() - ymake.print_presets() - ymake.print_settings() - - build = Build(arcadia, options.build_type, options.toolchain_params, force_ignore_local_files=not options.local_distbuild) - build.print_build() - - emit_with_ignore_comment('CONF_SCRIPT_DEPENDS', __file__) - - -if __name__ == '__main__': - main() |