aboutsummaryrefslogtreecommitdiffstats
path: root/build/plugins
diff options
context:
space:
mode:
authorzaverden <zaverden@yandex-team.com>2024-02-16 07:52:36 +0300
committerInnokentii Mokin <innokentii@ydb.tech>2024-02-16 18:35:24 +0000
commit161fd436046f9d08f484b0bfd7b264fa004ba6c5 (patch)
treec6dc4988b52826214e63247742177fdd9caeda90 /build/plugins
parent47c72a5c8d285c63162e986367d7e9502508cfb9 (diff)
downloadydb-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.make4
-rw-r--r--build/plugins/lib/nots/package_manager/base/ya.make6
-rw-r--r--build/plugins/lib/nots/package_manager/pnpm/package_manager.py2
-rw-r--r--build/plugins/lib/nots/package_manager/pnpm/tests/ya.make4
-rw-r--r--build/plugins/lib/nots/package_manager/pnpm/ya.make6
-rw-r--r--build/plugins/lib/nots/package_manager/ya.make7
-rw-r--r--build/plugins/lib/nots/semver/ya.make6
-rw-r--r--build/plugins/lib/nots/test_utils/ts_utils.py99
-rw-r--r--build/plugins/lib/nots/test_utils/ya.make16
-rw-r--r--build/plugins/lib/nots/typescript/ts_config.py2
-rw-r--r--build/plugins/lib/nots/typescript/ya.make6
-rw-r--r--build/plugins/lib/nots/ya.make5
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
)