diff options
author | zaverden <zaverden@yandex-team.com> | 2024-02-16 07:52:36 +0300 |
---|---|---|
committer | Innokentii Mokin <innokentii@ydb.tech> | 2024-02-16 18:35:24 +0000 |
commit | 161fd436046f9d08f484b0bfd7b264fa004ba6c5 (patch) | |
tree | c6dc4988b52826214e63247742177fdd9caeda90 /build/plugins | |
parent | 47c72a5c8d285c63162e986367d7e9502508cfb9 (diff) | |
download | ydb-161fd436046f9d08f484b0bfd7b264fa004ba6c5.tar.gz |
feat(builder): switch to PY3 only
d6858973111135b4053e51b2e05deea4955ffcdf
Diffstat (limited to 'build/plugins')
-rw-r--r-- | build/plugins/lib/nots/package_manager/base/tests/ya.make | 4 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/base/ya.make | 6 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/pnpm/package_manager.py | 2 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/pnpm/tests/ya.make | 4 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/pnpm/ya.make | 6 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/ya.make | 7 | ||||
-rw-r--r-- | build/plugins/lib/nots/semver/ya.make | 6 | ||||
-rw-r--r-- | build/plugins/lib/nots/test_utils/ts_utils.py | 99 | ||||
-rw-r--r-- | build/plugins/lib/nots/test_utils/ya.make | 16 | ||||
-rw-r--r-- | build/plugins/lib/nots/typescript/ts_config.py | 2 | ||||
-rw-r--r-- | build/plugins/lib/nots/typescript/ya.make | 6 | ||||
-rw-r--r-- | build/plugins/lib/nots/ya.make | 5 |
12 files changed, 146 insertions, 17 deletions
diff --git a/build/plugins/lib/nots/package_manager/base/tests/ya.make b/build/plugins/lib/nots/package_manager/base/tests/ya.make index 1bece69c33..bd7cefd3e0 100644 --- a/build/plugins/lib/nots/package_manager/base/tests/ya.make +++ b/build/plugins/lib/nots/package_manager/base/tests/ya.make @@ -1,7 +1,7 @@ -PY23_TEST() - OWNER(g:frontend-build-platform) +PY3TEST() + TEST_SRCS( package_json.py utils.py diff --git a/build/plugins/lib/nots/package_manager/base/ya.make b/build/plugins/lib/nots/package_manager/base/ya.make index 4b7f22f05a..bf17567398 100644 --- a/build/plugins/lib/nots/package_manager/base/ya.make +++ b/build/plugins/lib/nots/package_manager/base/ya.make @@ -1,7 +1,9 @@ -PY23_LIBRARY() - OWNER(g:frontend-build-platform) +PY3_LIBRARY() + +STYLE_PYTHON() + PY_SRCS( __init__.py constants.py diff --git a/build/plugins/lib/nots/package_manager/pnpm/package_manager.py b/build/plugins/lib/nots/package_manager/pnpm/package_manager.py index e6e1b8414c..3568dbff16 100644 --- a/build/plugins/lib/nots/package_manager/pnpm/package_manager.py +++ b/build/plugins/lib/nots/package_manager/pnpm/package_manager.py @@ -122,7 +122,7 @@ class PnpmPackageManager(BasePackageManager): src_lf_paths = [build_lockfile_path(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:] + 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))) diff --git a/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make b/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make index dd9ba0c946..db3c4f866a 100644 --- a/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make +++ b/build/plugins/lib/nots/package_manager/pnpm/tests/ya.make @@ -1,7 +1,7 @@ -PY23_TEST() - OWNER(g:frontend-build-platform) +PY3TEST() + TEST_SRCS( test_lockfile.py test_workspace.py diff --git a/build/plugins/lib/nots/package_manager/pnpm/ya.make b/build/plugins/lib/nots/package_manager/pnpm/ya.make index f57ae4a2ba..fb63704ad7 100644 --- a/build/plugins/lib/nots/package_manager/pnpm/ya.make +++ b/build/plugins/lib/nots/package_manager/pnpm/ya.make @@ -1,7 +1,9 @@ -PY23_LIBRARY() - OWNER(g:frontend-build-platform) +PY3_LIBRARY() + +STYLE_PYTHON() + PY_SRCS( __init__.py constants.py diff --git a/build/plugins/lib/nots/package_manager/ya.make b/build/plugins/lib/nots/package_manager/ya.make index f001bd5494..0f95528ffd 100644 --- a/build/plugins/lib/nots/package_manager/ya.make +++ b/build/plugins/lib/nots/package_manager/ya.make @@ -1,7 +1,10 @@ -PY23_LIBRARY() - OWNER(g:frontend-build-platform) +PY3_LIBRARY() + +STYLE_PYTHON() + + PY_SRCS( __init__.py ) diff --git a/build/plugins/lib/nots/semver/ya.make b/build/plugins/lib/nots/semver/ya.make index 7d2be228f2..7cd83c2036 100644 --- a/build/plugins/lib/nots/semver/ya.make +++ b/build/plugins/lib/nots/semver/ya.make @@ -1,7 +1,9 @@ -PY23_LIBRARY() - OWNER(g:frontend-build-platform) +PY3_LIBRARY() + +STYLE_PYTHON() + PY_SRCS( __init__.py semver.py diff --git a/build/plugins/lib/nots/test_utils/ts_utils.py b/build/plugins/lib/nots/test_utils/ts_utils.py new file mode 100644 index 0000000000..f3a0615bfd --- /dev/null +++ b/build/plugins/lib/nots/test_utils/ts_utils.py @@ -0,0 +1,99 @@ +import os +import errno + +from build.plugins.lib.nots.package_manager.base import PackageJson +from build.plugins.lib.nots.package_manager.base.utils import build_pj_path +from build.plugins.lib.nots.typescript import TsConfig, DEFAULT_TS_CONFIG_FILE + + +def link_test_data(build_root, source_root, test_for_path, dirs, dirs_rename): + if not len(dirs): + return + + dirs_rename_map = build_dirs_rename_map(dirs_rename) if dirs_rename else [] + rel_test_for_path = os.path.relpath(test_for_path, build_root) + rel_dirs = [os.path.join(os.path.relpath(dir, rel_test_for_path), "") for dir in dirs] + renamed_build_dirs = rel_dirs + + def rename_dir(dir): + renamed_dir = dir + + for kv in dirs_rename_map: + rename_from, rename_to = kv + if not dir.startswith(rename_from): + continue + + renamed_dir = renamed_dir.replace(rename_from, rename_to, 1) + break + + return renamed_dir + + if len(dirs_rename_map): + renamed_build_dirs = map(rename_dir, renamed_build_dirs) + + dirs_map = {renamed_build_dirs[i]: rel_dirs[i] for i in range(len(rel_dirs))} + symlink_build_dirs = get_top_level_dirs(renamed_build_dirs) + + for build_dir in symlink_build_dirs: + src_dir = dirs_map[build_dir] + abs_dir_source_path = os.path.join(source_root, rel_test_for_path, src_dir.rstrip(os.sep)) + abs_dir_build_path = os.path.join(build_root, rel_test_for_path, build_dir.rstrip(os.sep)) + + try: + os.makedirs(os.path.dirname(abs_dir_build_path)) + except OSError: + pass + + try: + os.symlink(abs_dir_source_path, abs_dir_build_path) + except OSError as e: + if e.errno == errno.EEXIST: + msg = ( + "Unable to create symlink to test data from \"{}\" to \"{}\". Directory in bindir is already created. " + "Try to save test data in a separate folder".format(abs_dir_source_path, abs_dir_build_path) + ) + raise ValueError(msg) + raise + + +def build_dirs_rename_map(dirs_rename): + dirs_rename_map = [] + + for from_to in filter(None, dirs_rename.split(";")): + rename_from, rename_to = [ + os.path.join(v.replace("\\", os.sep).replace("/", os.sep), "") for v in from_to.split(":") + ] + dirs_rename_map.append([rename_from, rename_to]) + + return dirs_rename_map + + +def get_top_level_dirs(dirs): + sorted_dirs = sorted(dirs, key=len) + top_level_dirs = set() + + for idx, dir in enumerate(sorted_dirs): + if idx == 0: + top_level_dirs.add(dir) + continue + + if not any(dir.startswith(tld) for tld in top_level_dirs): + top_level_dirs.add(dir) + + return top_level_dirs + + +def create_bin_tsconfig(module_arc_path, source_root, bin_root): + """ + Creating a tsconfig.json config file inlining the required base files if any + """ + source_path = os.path.join(source_root, module_arc_path) + bin_path = os.path.join(bin_root, module_arc_path) + + ts_config = TsConfig.load(os.path.join(source_path, DEFAULT_TS_CONFIG_FILE)) + pj = PackageJson.load(build_pj_path(source_path)) + ts_config.inline_extend(pj.get_dep_paths_by_names()) + + bin_ts_config_path = os.path.join(bin_path, DEFAULT_TS_CONFIG_FILE) + ts_config.write(bin_ts_config_path, indent=4) + return bin_ts_config_path diff --git a/build/plugins/lib/nots/test_utils/ya.make b/build/plugins/lib/nots/test_utils/ya.make new file mode 100644 index 0000000000..db2eb6af4b --- /dev/null +++ b/build/plugins/lib/nots/test_utils/ya.make @@ -0,0 +1,16 @@ +OWNER(g:frontend-build-platform) + +PY3_LIBRARY() + +STYLE_PYTHON() + +PY_SRCS( + ts_utils.py +) + +PEERDIR( + build/plugins/lib/nots/package_manager + 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 index 1b37feb400..52dfa20550 100644 --- a/build/plugins/lib/nots/typescript/ts_config.py +++ b/build/plugins/lib/nots/typescript/ts_config.py @@ -270,7 +270,7 @@ class TsConfig(object): root_dir=self.compiler_option(CompilerOptionsFields.rootDir), out_dir=self.compiler_option(CompilerOptionsFields.outDir), include=self.data.get(RootFields.include), - files=self.data.get(RootFields.files) + files=self.data.get(RootFields.files), ) return ts_glob(ts_glob_config, all_files) diff --git a/build/plugins/lib/nots/typescript/ya.make b/build/plugins/lib/nots/typescript/ya.make index 0ab937377d..2d37bf54ea 100644 --- a/build/plugins/lib/nots/typescript/ya.make +++ b/build/plugins/lib/nots/typescript/ya.make @@ -1,7 +1,9 @@ -PY23_LIBRARY() - OWNER(g:frontend-build-platform) +PY3_LIBRARY() + +STYLE_PYTHON() + PY_SRCS( __init__.py ts_errors.py diff --git a/build/plugins/lib/nots/ya.make b/build/plugins/lib/nots/ya.make index 06a95ecb56..4bccf87497 100644 --- a/build/plugins/lib/nots/ya.make +++ b/build/plugins/lib/nots/ya.make @@ -1,6 +1,8 @@ OWNER(g:frontend-build-platform) -PY23_LIBRARY() +PY3_LIBRARY() + +STYLE_PYTHON() PY_SRCS( __init__.py @@ -19,4 +21,5 @@ RECURSE( package_manager semver typescript + test_utils ) |