diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-01-05 13:56:02 +0000 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-01-05 13:56:02 +0000 |
commit | e3a8e3b7063fd6f421beffdf12942ffc083ef71b (patch) | |
tree | 7a178567da0d8addc139cb28b50e787ab2699398 /python/tidy | |
parent | 7ace30f9bd1dd835ddb1b12f788773cef855dae7 (diff) | |
download | servo-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.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"): |