Backport all build-related commits from master to stable-0.2

This is a squash of the following commits that are required to
make gitiles buildable with the latest bazel:

9374f0a - Remove bazel-genfiles from .gitignore
bd0c596 - Use bazelisk as first choice for mvn.sh
9d5cb21 - Replace references to bazel-genfiles with bazel-bin
268d677 - Bazel: Bump bazel version to 1.0.0
03cd750 - Bazel: rules_python must be loaded now
10641da - Upgrade bazlets to latest master revision
06d3ee0 - Bazel: Introduce .bazelversion and update to 0.29.1
3de4f96 - Format all build files with buildifier
a267c30 - Bazel: Add fixes for --incompatible_load_java_rules_from_bzl
4d4432d - Upgrade bazlets to latest master revision
422d67a - Align Eclipse settings with Eclipse 2019.06
008bf1b - Update bazlets to latest revision on master

Change-Id: I4894d7beee21a0ea4bfd92c6ce3c6bf6477ef639
diff --git a/.bazelversion b/.bazelversion
new file mode 100644
index 0000000..3eefcb9
--- /dev/null
+++ b/.bazelversion
@@ -0,0 +1 @@
+1.0.0
diff --git a/.gitignore b/.gitignore
index 359d093..c7cd6d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,6 @@
 *.iml
 *~
 /bazel-bin
-/bazel-genfiles
 /bazel-gitiles
 /bazel-out
 /bazel-testlogs
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 738ff3f..db7a8d9 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -24,6 +24,7 @@
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -80,6 +81,7 @@
 org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
 org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
 org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
 org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -112,6 +114,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
 org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
diff --git a/WORKSPACE b/WORKSPACE
index 1d6e531..883ec60e 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,20 +3,32 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
 http_archive(
+    name = "rules_python",
+    sha256 = "e5470e92a18aa51830db99a4d9c492cc613761d5bdb7131c04bd92b9834380f6",
+    strip_prefix = "rules_python-4b84ad270387a7c439ebdccfd530e2339601ef27",
+    urls = ["https://github.com/bazelbuild/rules_python/archive/4b84ad270387a7c439ebdccfd530e2339601ef27.tar.gz"],
+)
+
+http_archive(
     name = "bazel_skylib",
     sha256 = "bbccf674aa441c266df9894182d80de104cabd19be98be002f6d478aaa31574d",
     strip_prefix = "bazel-skylib-2169ae1c374aab4a09aa90e65efe1a3aad4e279b",
     urls = ["https://github.com/bazelbuild/bazel-skylib/archive/2169ae1c374aab4a09aa90e65efe1a3aad4e279b.tar.gz"],
 )
 
-load("@bazel_skylib//lib:versions.bzl", "versions")
+# Check Bazel version when invoked by Bazel directly
+load("//tools:bazelisk_version.bzl", "bazelisk_version")
 
-versions.check(minimum_bazel_version = "0.19.0")
+bazelisk_version(name = "bazelisk_version")
+
+load("@bazelisk_version//:check.bzl", "check_bazel_version")
+
+check_bazel_version()
 
 load("//tools:bazlets.bzl", "load_bazlets")
 
 load_bazlets(
-    commit = "2c9d995f712f6531e45756f80431b460c6183f8d",
+    commit = "bf900bbe58f7a7802799d6d6477567b05ab2f399",
     # local_path = "/home/<user>/projects/bazlets",
 )
 
diff --git a/java/com/google/gitiles/BUILD b/java/com/google/gitiles/BUILD
index 141c95e..a105f38 100644
--- a/java/com/google/gitiles/BUILD
+++ b/java/com/google/gitiles/BUILD
@@ -1,4 +1,5 @@
 load("@com_googlesource_gerrit_bazlets//tools:javadoc.bzl", "java_doc")
+load("@rules_java//java:defs.bzl", "java_library")
 load("//tools:stamper.bzl", "stamp")
 
 DEPS = [
diff --git a/java/com/google/gitiles/blame/cache/BUILD b/java/com/google/gitiles/blame/cache/BUILD
index ab91f8a..e1491fc 100644
--- a/java/com/google/gitiles/blame/cache/BUILD
+++ b/java/com/google/gitiles/blame/cache/BUILD
@@ -1,4 +1,5 @@
 load("@com_googlesource_gerrit_bazlets//tools:javadoc.bzl", "java_doc")
+load("@rules_java//java:defs.bzl", "java_library")
 load("//tools:stamper.bzl", "stamp")
 
 java_library(
diff --git a/java/com/google/gitiles/dev/BUILD b/java/com/google/gitiles/dev/BUILD
index ec947f5..47db87d 100644
--- a/java/com/google/gitiles/dev/BUILD
+++ b/java/com/google/gitiles/dev/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_binary", "java_library")
+
 java_library(
     name = "lib",
     srcs = glob(["**/*.java"]),
diff --git a/javatests/com/google/gitiles/BUILD b/javatests/com/google/gitiles/BUILD
index fe33816..c67e565 100644
--- a/javatests/com/google/gitiles/BUILD
+++ b/javatests/com/google/gitiles/BUILD
@@ -1,4 +1,5 @@
 load("@com_googlesource_gerrit_bazlets//tools:junit.bzl", "junit_tests")
+load("@rules_java//java:defs.bzl", "java_library")
 
 DEPS = [
     "//lib:gson",
diff --git a/lib/BUILD b/lib/BUILD
index ab56df4..e1f4654 100644
--- a/lib/BUILD
+++ b/lib/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/guice/BUILD b/lib/guice/BUILD
index 1e60d10..188f2cc 100644
--- a/lib/guice/BUILD
+++ b/lib/guice/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/jetty/BUILD b/lib/jetty/BUILD
index 2c97028..5517d65 100644
--- a/lib/jetty/BUILD
+++ b/lib/jetty/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/jgit/BUILD b/lib/jgit/BUILD
index f2c7435..d813fd7 100644
--- a/lib/jgit/BUILD
+++ b/lib/jgit/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/junit/BUILD b/lib/junit/BUILD
index 3445f53..7c03dd3 100644
--- a/lib/junit/BUILD
+++ b/lib/junit/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/slf4j/BUILD b/lib/slf4j/BUILD
index b619aaa..2719aa8 100644
--- a/lib/slf4j/BUILD
+++ b/lib/slf4j/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/soy/BUILD b/lib/soy/BUILD
index 5666b8c..9bf2a39 100644
--- a/lib/soy/BUILD
+++ b/lib/soy/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 package(
     default_visibility = ["//visibility:public"],
 )
diff --git a/lib/truth/BUILD b/lib/truth/BUILD
index 22b79cf..5a57e6d 100644
--- a/lib/truth/BUILD
+++ b/lib/truth/BUILD
@@ -1,3 +1,5 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
 java_library(
     name = "truth",
     visibility = ["//visibility:public"],
diff --git a/tools/BUILD b/tools/BUILD
index 6d15a21..6caa1da 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -3,6 +3,7 @@
     "JDK9_JVM_OPTS",
     "default_java_toolchain",
 )
+load("@rules_java//java:defs.bzl", "java_package_configuration")
 
 default_java_toolchain(
     name = "error_prone_warnings_toolchain",
diff --git a/tools/bazelisk_version.bzl b/tools/bazelisk_version.bzl
new file mode 100644
index 0000000..d8b3d10
--- /dev/null
+++ b/tools/bazelisk_version.bzl
@@ -0,0 +1,16 @@
+_template = """
+load("@bazel_skylib//lib:versions.bzl", "versions")
+
+def check_bazel_version():
+  versions.check(minimum_bazel_version = "{version}")
+""".strip()
+
+def _impl(repository_ctx):
+    repository_ctx.symlink(Label("@//:.bazelversion"), ".bazelversion")
+    bazelversion = repository_ctx.read(".bazelversion").strip()
+
+    repository_ctx.file("BUILD", executable = False)
+
+    repository_ctx.file("check.bzl", executable = False, content = _template.format(version = bazelversion))
+
+bazelisk_version = repository_rule(implementation = _impl)
diff --git a/tools/eclipse/BUILD b/tools/eclipse/BUILD
index ec640c1..68d35f4 100644
--- a/tools/eclipse/BUILD
+++ b/tools/eclipse/BUILD
@@ -1,4 +1,5 @@
 load("@com_googlesource_gerrit_bazlets//tools:classpath.bzl", "classpath_collector")
+load("@rules_java//java:defs.bzl", "java_library")
 
 DEPS = [
     "//java/com/google/gitiles:servlet",
diff --git a/tools/maven/mvn.sh b/tools/maven/mvn.sh
index 93bef01..9b05b6f 100755
--- a/tools/maven/mvn.sh
+++ b/tools/maven/mvn.sh
@@ -49,8 +49,14 @@
   set -o xtrace
 fi
 
-bazel build //tools/maven:gen_${command} || \
-  { echo "bazel failed to build gen_${command}. Use VERBOSE=1 for more info" ; exit 1 ; }
+if [[ `which bazelisk` ]]; then
+  BAZEL_CMD=bazelisk
+else
+  BAZEL_CMD=bazel
+fi
+
+${BAZEL_CMD} build //tools/maven:gen_${command} || \
+  { echo "${BAZEL_CMD} failed to build gen_${command}. Use VERBOSE=1 for more info" ; exit 1 ; }
 
 export OUTPUT_BASE=`bazel info output_base`
-./bazel-genfiles/tools/maven/${command}.sh
+./bazel-bin/tools/maven/${command}.sh