aboutsummaryrefslogtreecommitdiffstats
path: root/python/tidy
diff options
context:
space:
mode:
authorAlan Jeffrey <ajeffrey@mozilla.com>2017-01-05 13:56:02 +0000
committerAlan Jeffrey <ajeffrey@mozilla.com>2017-01-05 13:56:02 +0000
commite3a8e3b7063fd6f421beffdf12942ffc083ef71b (patch)
tree7a178567da0d8addc139cb28b50e787ab2699398 /python/tidy
parent7ace30f9bd1dd835ddb1b12f788773cef855dae7 (diff)
downloadservo-e3a8e3b7063fd6f421beffdf12942ffc083ef71b.tar.gz
servo-e3a8e3b7063fd6f421beffdf12942ffc083ef71b.zip
Added test-tidy check for blocked packages.
Diffstat (limited to 'python/tidy')
-rw-r--r--python/tidy/servo_tidy/tidy.py35
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"):