diff --git a/BUILD b/BUILD
index 16f97da..16ee973 100644
--- a/BUILD
+++ b/BUILD
@@ -94,3 +94,15 @@
     output_to_bindir = True,
     visibility = ["//visibility:public"],
 )
+
+load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")
+
+buildifier(
+    name = "buildifier_check",
+    mode = "check",
+)
+
+buildifier(
+    name = "buildifier_fix",
+    mode = "fix",
+)
diff --git a/WORKSPACE b/WORKSPACE
index 989b02c..d827270 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,28 +1,29 @@
 workspace(name = "org_onosproject_onos")
 
 load("//tools/build/bazel:bazel_version.bzl", "check_bazel_version")
+
 check_bazel_version()
 
 load("//tools/build/bazel:generate_workspace.bzl", "generated_maven_jars")
+
 generated_maven_jars()
 
 load("//tools/build/bazel:protobuf_workspace.bzl", "generate_protobuf")
+
 generate_protobuf()
 
 load("//tools/build/bazel:grpc_workspace.bzl", "generate_grpc")
+
 generate_grpc()
 
 load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
-grpc_java_repositories(
-    omit_javax_annotation = False,
 
+grpc_java_repositories(
     omit_com_google_api_grpc_google_common_protos = True,
-    omit_com_google_errorprone_error_prone_annotations = True,
     omit_com_google_auth_google_auth_library_credentials = True,
-    omit_io_opencensus_api = True,
-    omit_io_opencensus_grpc_metrics = True,
     omit_com_google_code_findbugs_jsr305 = True,
     omit_com_google_code_gson = True,
+    omit_com_google_errorprone_error_prone_annotations = True,
     omit_com_google_guava = True,
     omit_com_google_protobuf = True,
     omit_com_google_protobuf_javalite = True,
@@ -32,31 +33,59 @@
     omit_com_squareup_okhttp = True,
     omit_com_squareup_okio = True,
     omit_io_netty_buffer = True,
-    omit_io_netty_common = True,
-    omit_io_netty_transport = True,
     omit_io_netty_codec = True,
-    omit_io_netty_codec_socks = True,
     omit_io_netty_codec_http = True,
     omit_io_netty_codec_http2 = True,
+    omit_io_netty_codec_socks = True,
+    omit_io_netty_common = True,
     omit_io_netty_handler = True,
     omit_io_netty_handler_proxy = True,
     omit_io_netty_resolver = True,
     omit_io_netty_tcnative_boringssl_static = True,
+    omit_io_netty_transport = True,
+    omit_io_opencensus_api = True,
+    omit_io_opencensus_grpc_metrics = True,
+    omit_javax_annotation = False,
     omit_junit_junit = True,
-    omit_org_apache_commons_lang3 = True
+    omit_org_apache_commons_lang3 = True,
 )
 
 load("//tools/build/bazel:p4lang_workspace.bzl", "generate_p4lang")
-generate_p4lang()
 
+generate_p4lang()
 
 git_repository(
     name = "build_bazel_rules_nodejs",
     remote = "https://github.com/bazelbuild/rules_nodejs.git",
-    tag = "0.10.0", # check for the latest tag when you install
+    tag = "0.10.0",  # check for the latest tag when you install
 )
 
 load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories")
+
 node_repositories(package_json = ["//tools/gui:package.json"])
 
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+# buildifier is written in Go and hence needs rules_go to be built.
+# See https://github.com/bazelbuild/rules_go for the up to date setup instructions.
+http_archive(
+    name = "io_bazel_rules_go",
+    url = "https://github.com/bazelbuild/rules_go/releases/download/0.14.0/rules_go-0.14.0.tar.gz",
+)
+
+http_archive(
+    name = "com_github_bazelbuild_buildtools",
+    strip_prefix = "buildtools-a90c3a9f00e27973d3e759d17f2e2e7d9702d91b",
+    url = "https://github.com/bazelbuild/buildtools/archive/a90c3a9f00e27973d3e759d17f2e2e7d9702d91b.zip",
+)
+
+load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")
+load("@com_github_bazelbuild_buildtools//buildifier:deps.bzl", "buildifier_dependencies")
+
+go_rules_dependencies()
+
+go_register_toolchains()
+
+buildifier_dependencies()
+
 ONOS_VERSION = "1.14.0-SNAPSHOT"
diff --git a/apps/openstacknode/openstack4j.bzl b/apps/openstacknode/openstack4j.bzl
index fc68a41..096b700 100644
--- a/apps/openstacknode/openstack4j.bzl
+++ b/apps/openstacknode/openstack4j.bzl
@@ -3,39 +3,37 @@
 ALL_PACKAGES = "*"
 
 def get_openstack4j_deps_path():
-
-    WEB_INF_PATH = 'WEB-INF/classes/deps/'
+    WEB_INF_PATH = "WEB-INF/classes/deps/"
     OPENSTACK4J_DEPS = [
-        'openstack4j-core',
-        'openstack4j-http-connector',
-        'openstack4j-httpclient',
+        "openstack4j-core",
+        "openstack4j-http-connector",
+        "openstack4j-httpclient",
     ]
-    OPENSTACK4J_VER = '3.1.0'
+    OPENSTACK4J_VER = "3.1.0"
 
-    openstack_deps_path = ''
+    openstack_deps_path = ""
 
     for dep in OPENSTACK4J_DEPS:
-        name = dep + '-' + OPENSTACK4J_VER + '.jar'
+        name = dep + "-" + OPENSTACK4J_VER + ".jar"
         path = WEB_INF_PATH + name
-        openstack_deps_path = openstack_deps_path + path + ','
+        openstack_deps_path = openstack_deps_path + path + ","
 
     return openstack_deps_path
 
 def get_jackson_deps_path():
-
-    WEB_INF_PATH = 'WEB-INF/classes/deps/'
+    WEB_INF_PATH = "WEB-INF/classes/deps/"
     JACKSON_DEPS_WITH_VER = [
-        'json-patch-1.9.jar',
-        'jackson-coreutils-1.6.jar',
-        'msg-simple-1.1.jar',
-        'btf-1.2.jar',
-        'snakeyaml-1.15.jar'
+        "json-patch-1.9.jar",
+        "jackson-coreutils-1.6.jar",
+        "msg-simple-1.1.jar",
+        "btf-1.2.jar",
+        "snakeyaml-1.15.jar",
     ]
 
-    jackson_deps_path = ''
+    jackson_deps_path = ""
 
     for dep in JACKSON_DEPS_WITH_VER:
         path = WEB_INF_PATH + dep
-        jackson_deps_path = jackson_deps_path + path + ','
+        jackson_deps_path = jackson_deps_path + path + ","
 
-    return jackson_deps_path
\ No newline at end of file
+    return jackson_deps_path
diff --git a/tools/build/bazel/bazel_version.bzl b/tools/build/bazel/bazel_version.bzl
index 4aa4b1c..cd175b0 100644
--- a/tools/build/bazel/bazel_version.bzl
+++ b/tools/build/bazel/bazel_version.bzl
@@ -15,12 +15,12 @@
 """
 
 def check_bazel_version():
-  if "bazel_version" not in dir(native):
-    fail("\nBazel version is too old; please use 0.15.* official release!\n\n")
-  elif not native.bazel_version:
-    print("\nBazel is not a release version; please use 0.15.* official release!\n\n")
-    return
+    if "bazel_version" not in dir(native):
+        fail("\nBazel version is too old; please use 0.15.* official release!\n\n")
+    elif not native.bazel_version:
+        print("\nBazel is not a release version; please use 0.15.* official release!\n\n")
+        return
 
-  if not native.bazel_version.startswith("0.15."):
-    fail("\nBazel version %s is not supported; please use 0.15.* official release!\n\n"
-            % native.bazel_version)
+    if not native.bazel_version.startswith("0.15."):
+        fail("\nBazel version %s is not supported; please use 0.15.* official release!\n\n" %
+             native.bazel_version)
diff --git a/tools/build/bazel/checkstyle.bzl b/tools/build/bazel/checkstyle.bzl
index 92d3adb..bd8eeb1 100644
--- a/tools/build/bazel/checkstyle.bzl
+++ b/tools/build/bazel/checkstyle.bzl
@@ -14,10 +14,10 @@
  limitations under the License.
 """
 
-
 """
     Implementation of the rule to call checkstyle
 """
+
 def _checkstyle_impl(ctx):
     classpath = ""
     need_colon = False
@@ -28,9 +28,10 @@
         classpath += file.path
 
     cmd = " ".join(
-            ["java -cp %s com.puppycrawl.tools.checkstyle.Main" % classpath] +
-            ["-c %s" % ctx.attr._config.files.to_list()[0].path] +
-            [src_file.path for src_file in ctx.files.srcs])
+        ["java -cp %s com.puppycrawl.tools.checkstyle.Main" % classpath] +
+        ["-c %s" % ctx.attr._config.files.to_list()[0].path] +
+        [src_file.path for src_file in ctx.files.srcs],
+    )
 
     ctx.actions.write(
         output = ctx.outputs.executable,
@@ -46,28 +47,26 @@
     runfiles = ctx.runfiles(files = inputs)
     return [DefaultInfo(runfiles = runfiles)]
 
-
 """
     Rule definition for calling checkstyle
 """
 _execute_checkstyle_test = rule(
     test = True,
     attrs = {
-        "_classpath": attr.label_list(default=[
-                    Label("@checkstyle//jar"),
-                    Label("@commons_beanutils//jar"),
-                    Label("@commons_cli//jar"),
-                    Label("@commons_collections//jar"),
-                    Label("@antlr//jar"),
-                    Label("@com_google_guava_guava//jar"),
-                    Label("@commons_logging//jar"),
-                ]),
+        "_classpath": attr.label_list(default = [
+            Label("@checkstyle//jar"),
+            Label("@commons_beanutils//jar"),
+            Label("@commons_cli//jar"),
+            Label("@commons_collections//jar"),
+            Label("@antlr//jar"),
+            Label("@com_google_guava_guava//jar"),
+            Label("@commons_logging//jar"),
+        ]),
         "srcs": attr.label_list(allow_files = FileType([".java"])),
-        "_config": attr.label(default=Label("//tools/build/conf:checkstyle_xml")),
-        "_suppressions": attr.label(default=Label("//tools/build/conf:suppressions_xml")),
-        "_java_header": attr.label(default=Label("//tools/build/conf:onos_java_header")),
+        "_config": attr.label(default = Label("//tools/build/conf:checkstyle_xml")),
+        "_suppressions": attr.label(default = Label("//tools/build/conf:suppressions_xml")),
+        "_java_header": attr.label(default = Label("//tools/build/conf:onos_java_header")),
     },
-
     implementation = _checkstyle_impl,
 )
 
@@ -79,7 +78,6 @@
         srcs: list of source file targets to run checkstyle on. Required.
         size: test size constraint. Optional, defaults to "small"
 """
+
 def checkstyle_test(name, srcs):
     _execute_checkstyle_test(name = name, srcs = srcs, size = "small")
-
-
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index afc9768..8d2f855 100644
--- a/tools/build/bazel/generate_workspace.bzl
+++ b/tools/build/bazel/generate_workspace.bzl
@@ -2709,4 +2709,3 @@
     if type(label) == "string":
         return "mvn:%s:%s:%s" % (ONOS_GROUP_ID, label_string, ONOS_VERSION)
     return "mvn:%s:%s:%s" % (ONOS_GROUP_ID, label.name, ONOS_VERSION)
-
diff --git a/tools/build/bazel/grpc_workspace.bzl b/tools/build/bazel/grpc_workspace.bzl
index 72b5769..a14b1a5 100644
--- a/tools/build/bazel/grpc_workspace.bzl
+++ b/tools/build/bazel/grpc_workspace.bzl
@@ -14,11 +14,12 @@
         sha256 = GRPC_SHA,
         strip_prefix = "grpc-java-%s-patched" % GRPC_VER,
     )
+
     # Google APIs protos (status.proto, etc.)
     http_archive(
         name = "com_github_googleapis",
         urls = ["https://github.com/googleapis/googleapis/archive/%s.zip" % GAPIS_COMMIT],
         sha256 = GAPIS_SHA,
         strip_prefix = "googleapis-" + GAPIS_COMMIT,
-        build_file = "//tools/build/bazel:googleapis_BUILD"
+        build_file = "//tools/build/bazel:googleapis_BUILD",
     )
diff --git a/tools/build/bazel/java_sources.bzl b/tools/build/bazel/java_sources.bzl
index 734d048..a45ae60 100644
--- a/tools/build/bazel/java_sources.bzl
+++ b/tools/build/bazel/java_sources.bzl
@@ -13,25 +13,25 @@
 # limitations under the License.
 
 def _impl(ctx):
-  jar = ctx.outputs.jar
+    jar = ctx.outputs.jar
 
-  src_list = ""
-  for src in ctx.files.srcs:
-    if src.path.endswith(".srcjar"):
-      src_list += " " + src.path
+    src_list = ""
+    for src in ctx.files.srcs:
+        if src.path.endswith(".srcjar"):
+            src_list += " " + src.path
 
-  cmd = [
-      "for sj in %s; do jar xf $sj; done" % src_list,
-      "dir=$(find . -type d -name java)",
-      "[ -n \"$dir\" -a -d \"$dir\" ] && jar cf %s -C $dir ." % jar.path,
-  ]
+    cmd = [
+        "for sj in %s; do jar xf $sj; done" % src_list,
+        "dir=$(find . -type d -name java)",
+        "[ -n \"$dir\" -a -d \"$dir\" ] && jar cf %s -C $dir ." % jar.path,
+    ]
 
-  ctx.action(
-      inputs = ctx.files.srcs,
-      outputs = [jar],
-      progress_message = "Generating source jar for %s" %  ctx.attr.name,
-      command = ";\n".join(cmd)
-  )
+    ctx.action(
+        inputs = ctx.files.srcs,
+        outputs = [jar],
+        progress_message = "Generating source jar for %s" % ctx.attr.name,
+        command = ";\n".join(cmd),
+    )
 
 def _impl_alt(ctx):
     ending = "-src.jar"
@@ -46,15 +46,15 @@
             out_file = ctx.actions.declare_file(prefix + ".srcjar")
             out_files.append(out_file)
     if len(src_files) == 0:
-            fail("None of the given input files is a valid source jar (%s)"
-                % ", ".join([s.path for s in ctx.files.srcs]))
+        fail("None of the given input files is a valid source jar (%s)" %
+             ", ".join([s.path for s in ctx.files.srcs]))
     for i in range(len(src_files)):
         cmd = "cp %s %s" % (src_files[i].path, out_files[i].path)
         ctx.actions.run_shell(
             inputs = [src_files[i]],
             outputs = [out_files[i]],
-            progress_message = "Generating source jar %s" %  out_files[i].basename,
-            command = cmd
+            progress_message = "Generating source jar %s" % out_files[i].basename,
+            command = cmd,
         )
     return DefaultInfo(files = depset(out_files))
 
@@ -70,7 +70,7 @@
         "srcs": attr.label_list(allow_files = True),
     },
     implementation = _impl,
-    outputs = {"jar" : "%{name}.jar"},
+    outputs = {"jar": "%{name}.jar"},
 )
 
 """
diff --git a/tools/build/bazel/javadoc.bzl b/tools/build/bazel/javadoc.bzl
index e073426..87e5592 100644
--- a/tools/build/bazel/javadoc.bzl
+++ b/tools/build/bazel/javadoc.bzl
@@ -12,33 +12,33 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-JAVA_DOCS="-link https://docs.oracle.com/javase/8/docs/api/"
+JAVA_DOCS = "-link https://docs.oracle.com/javase/8/docs/api/"
 
 def _impl(ctx):
-  dir = ctx.label.name
-  jar = ctx.outputs.jar
+    dir = ctx.label.name
+    jar = ctx.outputs.jar
 
-  dep_list = []
-  for dep in ctx.files.deps:
-    dep_list += [dep.path]
+    dep_list = []
+    for dep in ctx.files.deps:
+        dep_list += [dep.path]
 
-  src_list = []
-  for src in ctx.files.srcs:
-    src_list += [src.path]
+    src_list = []
+    for src in ctx.files.srcs:
+        src_list += [src.path]
 
-  cmd = [
-      "mkdir %s" % dir,
-      "javadoc -encoding UTF-8 -quiet -tag onos.rsModel:a:\"onos model\" %s -d %s -cp %s %s" \
-          % (JAVA_DOCS, dir, ":".join(dep_list), " ".join(src_list)),
-      "jar cf %s -C %s ." % (jar.path, dir),
-  ]
+    cmd = [
+        "mkdir %s" % dir,
+        "javadoc -encoding UTF-8 -quiet -tag onos.rsModel:a:\"onos model\" %s -d %s -cp %s %s" %
+        (JAVA_DOCS, dir, ":".join(dep_list), " ".join(src_list)),
+        "jar cf %s -C %s ." % (jar.path, dir),
+    ]
 
-  ctx.action(
-      inputs = ctx.files.srcs + ctx.files.deps,
-      outputs = [jar],
-      progress_message = "Generating javadocs jar for %s" %  ctx.attr.name,
-      command = ";\n".join(cmd)
-  )
+    ctx.action(
+        inputs = ctx.files.srcs + ctx.files.deps,
+        outputs = [jar],
+        progress_message = "Generating javadocs jar for %s" % ctx.attr.name,
+        command = ";\n".join(cmd),
+    )
 
 javadoc = rule(
     attrs = {
@@ -46,6 +46,5 @@
         "srcs": attr.label_list(allow_files = True),
     },
     implementation = _impl,
-    outputs = {"jar" : "%{name}.jar"},
+    outputs = {"jar": "%{name}.jar"},
 )
-
diff --git a/tools/build/bazel/onos_app.bzl b/tools/build/bazel/onos_app.bzl
index c5563b1..6bf8df3 100644
--- a/tools/build/bazel/onos_app.bzl
+++ b/tools/build/bazel/onos_app.bzl
@@ -60,14 +60,22 @@
 def _onos_app_xml_impl(ctx):
     # Build-up arguments for the app.xml and feature.xml generator
     arguments = [
-        "-n", ctx.attr.feature_coords,
-        "-a", ctx.attr.app_name,
-        "-o", ctx.attr.origin,
-        "-c", ctx.attr.category,
-        "-u", ctx.attr.url,
-        "-v", ctx.attr.version,
-        "-t", ctx.attr.title,
-        "-D", ctx.attr.description,
+        "-n",
+        ctx.attr.feature_coords,
+        "-a",
+        ctx.attr.app_name,
+        "-o",
+        ctx.attr.origin,
+        "-c",
+        ctx.attr.category,
+        "-u",
+        ctx.attr.url,
+        "-v",
+        ctx.attr.version,
+        "-t",
+        ctx.attr.title,
+        "-D",
+        ctx.attr.description,
     ]
 
     for bundle in ctx.attr.included_bundles:
@@ -83,7 +91,7 @@
     ctx.actions.run(
         inputs = [],
         outputs = [ctx.outputs.app_xml],
-        arguments = arguments + [ "-A", "-O", ctx.outputs.app_xml.path ],
+        arguments = arguments + ["-A", "-O", ctx.outputs.app_xml.path],
         progress_message = "Generating app.xml descriptor for app: %s" % ctx.attr.name,
         executable = ctx.executable._onos_app_tools,
     )
@@ -92,12 +100,18 @@
 def _onos_feature_xml_impl(ctx):
     # Build-up arguments
     arguments = [
-        "-n", ctx.attr.feature_coords,
-        "-a", ctx.attr.app_name,
-        "-u", ctx.attr.url,
-        "-v", ctx.attr.version,
-        "-t", ctx.attr.title,
-        "-D", ctx.attr.description,
+        "-n",
+        ctx.attr.feature_coords,
+        "-a",
+        ctx.attr.app_name,
+        "-u",
+        ctx.attr.url,
+        "-v",
+        ctx.attr.version,
+        "-t",
+        ctx.attr.title,
+        "-D",
+        ctx.attr.description,
     ]
 
     for bundle in ctx.attr.included_bundles:
@@ -108,12 +122,11 @@
     ctx.actions.run(
         inputs = [],
         outputs = [ctx.outputs.feature_xml],
-        arguments = arguments + [ "-F", "-O", ctx.outputs.feature_xml.path ],
+        arguments = arguments + ["-F", "-O", ctx.outputs.feature_xml.path],
         progress_message = "Generating feature.xml for app: %s" % ctx.attr.name,
         executable = ctx.executable._onos_app_tools,
     )
 
-
 # Rule to generate the ONOS app OAR file.
 _onos_oar = rule(
     attrs = {
@@ -269,7 +282,7 @@
         required_apps = required_apps,
     )
 
-   # Generate feature.xml file
+    # Generate feature.xml file
     _onos_feature_xml(
         name = name + "-feature-xml",
         app_name = app_name,
diff --git a/tools/build/bazel/osgi_java_library.bzl b/tools/build/bazel/osgi_java_library.bzl
index 43873a4..b2505a4 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -443,15 +443,27 @@
         native_srcs = srcs + [name + "_swagger_java"]
         native_resources.append(name + "_swagger_json")
 
-    javacopts = [ "-XepDisableAllChecks" ] if suppress_errorprone else []
+    javacopts = ["-XepDisableAllChecks"] if suppress_errorprone else []
 
     # compile the Java code
     if len(resource_jars) > 0:
-        native.java_library(name = name + "-native", srcs = native_srcs, resource_jars = resource_jars,
-                            deps = deps, visibility = visibility, javacopts = javacopts)
+        native.java_library(
+            name = name + "-native",
+            srcs = native_srcs,
+            resource_jars = resource_jars,
+            deps = deps,
+            visibility = visibility,
+            javacopts = javacopts,
+        )
     else:
-        native.java_library(name = name + "-native", srcs = native_srcs, resources = native_resources,
-                            deps = deps, visibility = visibility, javacopts = javacopts)
+        native.java_library(
+            name = name + "-native",
+            srcs = native_srcs,
+            resources = native_resources,
+            deps = deps,
+            visibility = visibility,
+            javacopts = javacopts,
+        )
 
     _bnd(
         name = name,
@@ -472,11 +484,11 @@
 
     # rule for building source jar
     if not suppress_javadocs:
-      java_sources(name = name + "-sources", srcs = srcs, visibility = visibility)
+        java_sources(name = name + "-sources", srcs = srcs, visibility = visibility)
 
     # rule for building javadocs
     if not suppress_javadocs:
-      javadoc(name = name + "-javadoc", deps = deps, srcs = srcs, visibility = visibility)
+        javadoc(name = name + "-javadoc", deps = deps, srcs = srcs, visibility = visibility)
 
     if test_srcs != []:
         native.java_library(
@@ -579,7 +591,6 @@
         bundle_classpath = bundle_classpath,
     )
 
-
 """
     Creates an OSGI jar file from a set of protobuf and gRPC libraries.
 
@@ -621,8 +632,7 @@
         deps = [],
         group = "org.onosproject",
         visibility = ["//visibility:public"],
-        version = ONOS_VERSION
-    ):
+        version = ONOS_VERSION):
     if name == None:
         name = _auto_name()
     native.java_proto_library(
@@ -646,7 +656,7 @@
             deps = [":%s-java-proto" % name],
         )
         osgi_srcs.append(
-            ":%s-java-grpc__do_not_reference__srcjar" % name
+            ":%s-java-grpc__do_not_reference__srcjar" % name,
         )
         base_deps.extend([
             "@com_google_guava_guava//jar",
diff --git a/tools/build/bazel/p4lang_workspace.bzl b/tools/build/bazel/p4lang_workspace.bzl
index abf4c5c..d4d966c 100644
--- a/tools/build/bazel/p4lang_workspace.bzl
+++ b/tools/build/bazel/p4lang_workspace.bzl
@@ -12,13 +12,14 @@
         urls = ["https://github.com/p4lang/p4runtime/archive/%s.zip" % P4RUNTIME_COMMIT],
         sha256 = P4RUNTIME_SHA,
         strip_prefix = "p4runtime-%s/proto" % P4RUNTIME_COMMIT,
-        build_file = "//tools/build/bazel:p4runtime_BUILD"
+        build_file = "//tools/build/bazel:p4runtime_BUILD",
     )
+
     # Needed for PI/proto/p4/tmp/p4config.proto
     http_archive(
         name = "com_github_p4lang_pi",
         urls = ["https://github.com/p4lang/PI/archive/%s.zip" % PI_COMMIT],
         sha256 = PI_SHA,
         strip_prefix = "PI-%s/proto" % PI_COMMIT,
-        build_file = "//tools/build/bazel:pi_BUILD"
+        build_file = "//tools/build/bazel:pi_BUILD",
     )
diff --git a/tools/build/bazel/pom_file.bzl b/tools/build/bazel/pom_file.bzl
index 792d35a..e3c5689 100644
--- a/tools/build/bazel/pom_file.bzl
+++ b/tools/build/bazel/pom_file.bzl
@@ -15,21 +15,21 @@
 load("//tools/build/bazel:generate_workspace.bzl", "maven_coordinates")
 
 def _impl(ctx):
-  arguments = [
-      ctx.outputs.pom.path,
-      maven_coordinates(ctx.attr.artifact)
-  ]
+    arguments = [
+        ctx.outputs.pom.path,
+        maven_coordinates(ctx.attr.artifact),
+    ]
 
-  for dep in ctx.attr.deps:
-    arguments += [ maven_coordinates(dep.label) ]
+    for dep in ctx.attr.deps:
+        arguments += [maven_coordinates(dep.label)]
 
-  ctx.actions.run(
-      inputs = ctx.files.deps,
-      outputs = [ctx.outputs.pom],
-      progress_message = "Generating pom file for %s" %  ctx.attr.name,
-      arguments = arguments,
-      executable = ctx.executable._pom_generator,
-  )
+    ctx.actions.run(
+        inputs = ctx.files.deps,
+        outputs = [ctx.outputs.pom],
+        progress_message = "Generating pom file for %s" % ctx.attr.name,
+        arguments = arguments,
+        executable = ctx.executable._pom_generator,
+    )
 
 pom_file = rule(
     attrs = {
@@ -40,9 +40,8 @@
             cfg = "host",
             allow_files = True,
             default = Label("//tools/build/bazel:pom_generator"),
-        )
+        ),
     },
     implementation = _impl,
-    outputs = {"pom" : "%{name}.pom"},
+    outputs = {"pom": "%{name}.pom"},
 )
-
diff --git a/tools/build/bazel/project_javadoc.bzl b/tools/build/bazel/project_javadoc.bzl
index 86b61d5..171b846 100644
--- a/tools/build/bazel/project_javadoc.bzl
+++ b/tools/build/bazel/project_javadoc.bzl
@@ -12,10 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-JAVA_DOCS="-link https://docs.oracle.com/javase/8/docs/api/"
+JAVA_DOCS = "-link https://docs.oracle.com/javase/8/docs/api/"
 
 def dump(obj):
-    print (dir(obj))
+    print(dir(obj))
     for attr in dir(obj):
         print("obj.%s = %r" % (attr, getattr(obj, attr)))
 
@@ -54,8 +54,8 @@
         cmd += ["find src -type f | egrep -v 'src/(OSGI|WEB)-INF' | egrep -v '/(impl|internal)/' >> FILES"]
 
     cmd += [
-        "javadoc -encoding UTF-8 -overview overview.html -doctitle '%s' -windowtitle '%s' %s -d apidocs -classpath %s -sourcepath src %s @FILES" \
-              % (ctx.attr.title, ctx.attr.title, group_list, classpath.replace(":", "", 1), JAVA_DOCS),
+        "javadoc -encoding UTF-8 -overview overview.html -doctitle '%s' -windowtitle '%s' %s -d apidocs -classpath %s -sourcepath src %s @FILES" %
+        (ctx.attr.title, ctx.attr.title, group_list, classpath.replace(":", "", 1), JAVA_DOCS),
         "cp -r doc-files apidocs/doc-files",
         "jar cf %s apidocs" % jar.path,
     ]
@@ -63,8 +63,8 @@
     ctx.action(
         inputs = ctx.files.srcs + ctx.files.deps,
         outputs = [jar],
-        progress_message = "Generating javadocs jar for %s" %  ctx.attr.name,
-        command = ";\n".join(cmd)
+        progress_message = "Generating javadocs jar for %s" % ctx.attr.name,
+        command = ";\n".join(cmd),
     )
 
 project_javadoc = rule(
@@ -77,6 +77,5 @@
         "internal": attr.bool(default = False),
     },
     implementation = _impl,
-    outputs = {"jar" : "%{name}.jar"},
+    outputs = {"jar": "%{name}.jar"},
 )
-
diff --git a/tools/build/bazel/protobuf_workspace.bzl b/tools/build/bazel/protobuf_workspace.bzl
index 1932b57..4a65eab 100644
--- a/tools/build/bazel/protobuf_workspace.bzl
+++ b/tools/build/bazel/protobuf_workspace.bzl
@@ -6,8 +6,8 @@
 def generate_protobuf():
     http_archive(
         name = "com_google_protobuf",
-        urls = ["https://github.com/google/protobuf/releases/download/v%s/protobuf-all-%s.zip"
-            % (PROTOBUF_VER, PROTOBUF_VER)],
+        urls = ["https://github.com/google/protobuf/releases/download/v%s/protobuf-all-%s.zip" %
+                (PROTOBUF_VER, PROTOBUF_VER)],
         sha256 = SHA,
         strip_prefix = "protobuf-" + PROTOBUF_VER,
     )
diff --git a/tools/build/bazel/publish_catalog.bzl b/tools/build/bazel/publish_catalog.bzl
index ef277e8..edf9569 100644
--- a/tools/build/bazel/publish_catalog.bzl
+++ b/tools/build/bazel/publish_catalog.bzl
@@ -8,7 +8,7 @@
 def _remote(group_id, artifact_id, version, packaging, classifier):
     p = group_id.replace(".", "/") + "/" + artifact_id + "/" + version + "/" + artifact_id + "-" + version
     if classifier != None:
-      p += "-" + classifier
+        p += "-" + classifier
     p += "." + packaging
     return p
 
@@ -26,15 +26,15 @@
 
     c = artifact_id.split("-")
 
-    if len(c) > 1 and c[len(c)-1] in ("javadoc", "sources", "tests", "pom"):
-        classifier = c[len(c)-1]
-        artifact_id = "-".join(c[:len(c)-1])
+    if len(c) > 1 and c[len(c) - 1] in ("javadoc", "sources", "tests", "pom"):
+        classifier = c[len(c) - 1]
+        artifact_id = "-".join(c[:len(c) - 1])
         if classifier == "pom":
             packaging = classifier
             classifier = None
 
     for f in target.files:
-        print ("%s\t%s" % (f.path, _remote(group_id, artifact_id, version, packaging, classifier)))
+        print("%s\t%s" % (f.path, _remote(group_id, artifact_id, version, packaging, classifier)))
     return []
 
 publish_catalog = aspect(
diff --git a/tools/build/bazel/yang.bzl b/tools/build/bazel/yang.bzl
index 3b123b2..93b619c 100644
--- a/tools/build/bazel/yang.bzl
+++ b/tools/build/bazel/yang.bzl
@@ -85,13 +85,12 @@
         outputs = [ctx.outputs.schema],
         arguments = [
             ctx.outputs.schema.path,
-            generated_sources.path
+            generated_sources.path,
         ],
         command = "jar cf $1 -C $2 schema",
         progress_message = "Assembling YANG compiled schema: %s" % ctx.attr.name,
     )
 
-
 # Rule to generate YANG library from the specified set of YANG models.
 _yang_library = rule(
     attrs = {
@@ -114,13 +113,12 @@
 )
 
 def yang_library(
-    name = None,
-    deps = None,
-    yang_srcs = None,
-    java_srcs = None,
-    custom_registrator = False,
-    visibility = ["//visibility:public"]):
-
+        name = None,
+        deps = None,
+        yang_srcs = None,
+        java_srcs = None,
+        custom_registrator = False,
+        visibility = ["//visibility:public"]):
     if name == None:
         name = "onos-" + native.package_name().replace("/", "-")
     if yang_srcs == None:
@@ -132,7 +130,7 @@
 
     deps += CORE_DEPS + ONOS_YANG + [
         "@onos_yang_runtime//jar",
-        "//apps/yang:onos-apps-yang"
+        "//apps/yang:onos-apps-yang",
     ]
 
     # Generate the Java sources from YANG model
@@ -146,7 +144,7 @@
             name = name + "-srcjar",
             srcs = java_srcs,
             outs = [name + ".srcjar"],
-            cmd = "jar cf $(location %s.srcjar) $(SRCS)" % name
+            cmd = "jar cf $(location %s.srcjar) $(SRCS)" % name,
         )
 
     if not custom_registrator:
@@ -154,38 +152,44 @@
         native.genrule(
             name = name + "-registrator",
             outs = [REGISTRATOR_FILE],
-            cmd = "echo '%s' > $(location %s)" % (REGISTRATOR, REGISTRATOR_FILE)
+            cmd = "echo '%s' > $(location %s)" % (REGISTRATOR, REGISTRATOR_FILE),
         )
 
     # Produce a Java library from the generated Java sources
-    osgi_jar(name = name, srcs = srcs,
-             resource_jars = [name + "-generate"], deps = deps,
-             visibility = ["//visibility:public"],
-             suppress_errorprone = True,
-             suppress_checkstyle = True,
-             suppress_javadocs = True,
+    osgi_jar(
+        name = name,
+        srcs = srcs,
+        resource_jars = [name + "-generate"],
+        deps = deps,
+        visibility = ["//visibility:public"],
+        suppress_errorprone = True,
+        suppress_checkstyle = True,
+        suppress_javadocs = True,
     )
 
 def yang_model(
-    name = None,
-    app_name = None,
-    title = None,
-    description = None,
-    url = "http://onosproject.org/",
-    custom_registrator = False,
-    deps = None,
-    yang_srcs = None,
-    java_srcs = None,
-    required_apps = [],
-    visibility = ["//visibility:public"]):
-
+        name = None,
+        app_name = None,
+        title = None,
+        description = None,
+        url = "http://onosproject.org/",
+        custom_registrator = False,
+        deps = None,
+        yang_srcs = None,
+        java_srcs = None,
+        required_apps = [],
+        visibility = ["//visibility:public"]):
     if name == None:
         name = "onos-" + native.package_name().replace("/", "-")
 
-    yang_library(name = name, deps = deps,
-                 yang_srcs = yang_srcs, java_srcs = java_srcs,
-                 custom_registrator = custom_registrator,
-                 visibility = ["//visibility:public"])
+    yang_library(
+        name = name,
+        deps = deps,
+        yang_srcs = yang_srcs,
+        java_srcs = java_srcs,
+        custom_registrator = custom_registrator,
+        visibility = ["//visibility:public"],
+    )
 
     onos_app(
         app_name = app_name,
@@ -195,7 +199,7 @@
         version = ONOS_VERSION,
         url = url,
         category = "Models",
-        included_bundles = [ name ],
+        included_bundles = [name],
         required_apps = required_apps + ["org.onosproject.yang"],
         visibility = ["//visibility:public"],
-    )
\ No newline at end of file
+    )
diff --git a/tools/dev/bash_profile b/tools/dev/bash_profile
index 88fb517..8fe5d5c 100644
--- a/tools/dev/bash_profile
+++ b/tools/dev/bash_profile
@@ -60,7 +60,7 @@
 
 # Short-hand for ONOS build, package and test.
 alias op="SHLVL=1 bazel build //:onos"
-alias ot="bazel query 'tests(//...)' | SHLVL=1 xargs bazel test"
+alias ot="bazel run //:buildifier_check && bazel query 'tests(//...)' | SHLVL=1 xargs bazel test"
 alias ob="op && ot"
 alias obd="SHLVL=1 bazel build //docs:external //docs:internal"
 
