diff options
Diffstat (limited to 'python/tidy/servo_tidy')
-rw-r--r-- | python/tidy/servo_tidy/tidy.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py index 2528ac88642..92d06d1712c 100644 --- a/python/tidy/servo_tidy/tidy.py +++ b/python/tidy/servo_tidy/tidy.py @@ -81,6 +81,27 @@ WEBIDL_STANDARDS = [ " accessible to\n// web pages." ] +# Packages which we avoid using in Servo. +# For each blocked package, we can list the exceptions, +# which are packages allowed to use the blocked package. +BLOCKED_PACKAGES = { + "rand": [ + "deque", + "gaol", + "ipc-channel", + "num-bigint", + "parking_lot_core", + "phf_generator", + "rayon", + "servo_rand", + "tempdir", + "tempfile", + "uuid", + "websocket", + "ws", + ], +} + def is_iter_empty(iterator): try: @@ -338,6 +359,20 @@ def check_lock(file_name, contents): message += "\n\t\t" + name yield (1, message) + # Check to see if we are transitively using any blocked packages + for package in content.get("package", []): + package_name = package.get("name") + package_version = package.get("version") + for dependency in package.get("dependencies", []): + dependency = dependency.split() + dependency_name = dependency[0] + whitelist = BLOCKED_PACKAGES.get(dependency_name) + if whitelist is not None: + if package_name not in whitelist: + fmt = "Package {} {} depends on blocked package {}." + message = fmt.format(package_name, package_version, dependency_name) + yield (1, message) + def check_toml(file_name, lines): if not file_name.endswith("Cargo.toml"): |