diff options
Diffstat (limited to 'build/plugins')
-rw-r--r-- | build/plugins/_dart_fields.py | 7 | ||||
-rw-r--r-- | build/plugins/java.py | 10 | ||||
-rw-r--r-- | build/plugins/lib/nots/package_manager/pnpm/lockfile.py | 20 | ||||
-rw-r--r-- | build/plugins/nots.py | 7 | ||||
-rw-r--r-- | build/plugins/ytest.py | 1 |
5 files changed, 35 insertions, 10 deletions
diff --git a/build/plugins/_dart_fields.py b/build/plugins/_dart_fields.py index 6990007804..b3519c86e9 100644 --- a/build/plugins/_dart_fields.py +++ b/build/plugins/_dart_fields.py @@ -643,13 +643,6 @@ class LintConfigs: @classmethod def cpp_configs(cls, unit, flat_args, spec_args): - custom_config = spec_args.get('CUSTOM_CONFIG') - if custom_config: - # TODO delete CUSTOM_CONFIG, it's used only by arc - config = custom_config[0] - assert_file_exists(unit, config) - return {cls.KEY: serialize_list([config])} - if config := cls._from_config_type(unit, spec_args): # specified by config type, autoincludes scheme return {cls.KEY: serialize_list([config])} diff --git a/build/plugins/java.py b/build/plugins/java.py index f95c08cea8..c42175634c 100644 --- a/build/plugins/java.py +++ b/build/plugins/java.py @@ -70,6 +70,7 @@ def onjava_module(unit, *args): '21', '22', '23', + '24', ): data['ENABLE_PREVIEW'] = extract_macro_calls(unit, 'ENABLE_PREVIEW_VALUE', args_delim) @@ -300,6 +301,7 @@ def on_jdk_version_macro_check(unit, *args): '21', '22', '23', + '24', ) if jdk_version not in available_versions: ymake.report_configure_error( @@ -367,3 +369,11 @@ def on_setup_project_coords_if_needed(unit, *args): else: value = 'project(\\":{}\\")'.format(project_dir.replace('/', ':')) unit.set(['EXPORT_GRADLE_CLASSPATH', value]) + + +def on_java_resource_tar_validate_extract_root(unit, extract_root): + if extract_root == '<required>': + ymake.report_configure_error( + 'Macro JAVA_RESOURCE_TAR requires to set EXTRACT_ROOT. ' + 'Usage JAVA_RESOURCE_TAR(tar_path EXTRACT_ROOT root_dir)' + ) diff --git a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py b/build/plugins/lib/nots/package_manager/pnpm/lockfile.py index f4fac51bbe..b1e8fc0706 100644 --- a/build/plugins/lib/nots/package_manager/pnpm/lockfile.py +++ b/build/plugins/lib/nots/package_manager/pnpm/lockfile.py @@ -10,6 +10,7 @@ from ..base import PackageJson, BaseLockfile, LockfilePackageMeta, LockfilePacka LOCKFILE_VERSION = "lockfileVersion" IMPORTER_KEYS = PackageJson.DEP_KEYS + ("specifiers",) +WS_PREFIX = "workspace:" class PnpmLockfileHelper: @@ -267,6 +268,25 @@ class PnpmLockfile(BaseLockfile): return {".": importer} if importer else {} + def validate_importers(self): + importers = self.get_importers() + pkg = importers.get(".") + peers = set(["."]) + problem_importers = [] + + for _, deps in pkg.items(): + for _, dep in deps.items(): + specifier = dep.get("specifier") + if specifier and specifier.startswith(WS_PREFIX): + peers.add(specifier[len(WS_PREFIX) :]) + + for importer in self.get_importers().keys(): + if importer not in peers: + problem_importers.append(importer) + + if problem_importers: + raise Exception(f"Invalid importers in lockfile: {", ".join(problem_importers)}") + def merge(self, lf): """ Merges two lockfiles: diff --git a/build/plugins/nots.py b/build/plugins/nots.py index 9d67685c48..911f10f65a 100644 --- a/build/plugins/nots.py +++ b/build/plugins/nots.py @@ -802,6 +802,11 @@ def on_node_modules_configure(unit: NotsUnitType) -> None: if not unit.get("TS_TEST_FOR"): __set_append(unit, "_NODE_MODULES_INOUTS", _build_directives(["hide", "output"], sorted(outs))) + lf = pm.load_lockfile_from_dir(pm.sources_path) + + if hasattr(lf, "validate_importers"): + lf.validate_importers() + if pj.get_use_prebuilder(): unit.on_peerdir_ts_resource("@yatool/prebuilder") unit.set( @@ -817,7 +822,6 @@ def on_node_modules_configure(unit: NotsUnitType) -> None: if prebuilder_major == "0": # TODO: FBP-1408 - lf = pm.load_lockfile_from_dir(pm.sources_path) is_valid, invalid_keys = lf.validate_has_addons_flags() if not is_valid: @@ -831,7 +835,6 @@ def on_node_modules_configure(unit: NotsUnitType) -> None: + "\n - ".join(invalid_keys) ) else: - lf = pm.load_lockfile_from_dir(pm.sources_path) requires_build_packages = lf.get_requires_build_packages() is_valid, validation_messages = pj.validate_prebuilds(requires_build_packages) diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py index 937c049aff..513887ac16 100644 --- a/build/plugins/ytest.py +++ b/build/plugins/ytest.py @@ -1035,7 +1035,6 @@ def on_add_cpp_linter_check(fields, unit, *args): "LINTER": 1, "DEPENDS": unlimited, "CONFIGS": 1, - "CUSTOM_CONFIG": 1, "GLOBAL_RESOURCES": unlimited, "FILE_PROCESSING_TIME": 1, "EXTRA_PARAMS": unlimited, |