Upgrade to Bazel 6.0.0 (#3863)

* Upgrade Bazel to 6.0.0

* Update rules_pkg Bazel dependency

* Updated Travis CI distribution

* Updated Bazel Skylib to 1.3.0

* Travis CI updates

* Various Bazel updates to make build work

* shift the order in an attempt to fix build issue

* Updated to work with the new pkg_tar
diff --git a/.bazelversion b/.bazelversion
index af8c8ec..09b254e 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-4.2.2
+6.0.0
diff --git a/.travis.yml b/.travis.yml
index a9190ad..96de79e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,12 @@
 ---
 
-dist: focal
+dist: jammy
 
 language: java
 
 os: linux
 
 jdk:
-  - oraclejdk11
 
 addons:
   apt:
@@ -15,8 +14,8 @@
       - libtool-bin
       - libcppunit-dev
       - pkg-config
-      - python3.8-dev
-      - python3.8-venv
+      - python3.10-dev
+      - python3.10-venv
       - wget
       - zip
       - zlib1g-dev
@@ -24,7 +23,7 @@
       - libgoogle-perftools-dev
 
 env:
-  - BAZEL_VERSION=4.2.2 ENABLE_HEAPCHECK=1 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8
+  - BAZEL_VERSION=6.0.0 ENABLE_HEAPCHECK=1 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8
 
 before_install:
   # download and install bazel
diff --git a/README.md b/README.md
index a3814dc..f50c231 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@
 #### Heron Requirements:
  * Java 11
  * Python 3.6
- * Bazel 4.2.2
+ * Bazel 6.0.0
 
 ## Contact
 
diff --git a/WORKSPACE b/WORKSPACE
index 14dcb28..745bee4 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -39,7 +39,6 @@
 rules_jvm_external_setup()
 
 load("@rules_jvm_external//:defs.bzl", "maven_install")
-load("@rules_jvm_external//:defs.bzl", "artifact")
 load("@rules_jvm_external//:specs.bzl", "maven")
 
 # versions shared across artifacts that should be upgraded together
@@ -189,29 +188,47 @@
 
 jar_jar_repositories()
 
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
 http_archive(
-    name = "platforms",
-    sha256 = "379113459b0feaf6bfbb584a91874c065078aa673222846ac765f86661c27407",
+    name = "bazel_skylib",
+    sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz",
-        "https://github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
     ],
 )
 
+load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
+
+bazel_skylib_workspace()
+
 http_archive(
     name = "rules_python",
-    sha256 = "b6d46438523a3ec0f3cead544190ee13223a52f6a6765a29eae7b7cc24cc83a0",
-    url = "https://github.com/bazelbuild/rules_python/releases/download/0.1.0/rules_python-0.1.0.tar.gz",
+    sha256 = "497ca47374f48c8b067d786b512ac10a276211810f4a580178ee9b9ad139323a",
+    strip_prefix = "rules_python-0.16.1",
+    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.16.1.tar.gz",
 )
 
-load("@rules_python//python:repositories.bzl", "py_repositories")
+http_archive(
+    name = "platforms",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
+        "https://github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
+    ],
+    sha256 = "5308fc1d8865406a49427ba24a9ab53087f17f5266a7aabbfc28823f3916e1ca",
+)
 
-py_repositories()
-# Only needed if using the packaging rules.
-# load("@rules_python//python:pip.bzl", "pip_repositories")
-# pip_repositories()
+http_archive(
+    name = "rules_pkg",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.8.0/rules_pkg-0.8.0.tar.gz",
+        "https://github.com/bazelbuild/rules_pkg/releases/download/0.8.0/rules_pkg-0.8.0.tar.gz",
+    ],
+    sha256 = "eea0f59c28a9241156a47d7a8e32db9122f3d50b505fae0f33de6ce4d9b61834",
+)
+load("@rules_pkg//pkg:deps.bzl", "rules_pkg_dependencies")
+rules_pkg_dependencies()
+
+
 
 # for pex repos
 PEX_PKG = "https://files.pythonhosted.org/packages/d4/73/4c76e06824baadba81b39125721c97fb22e201b35fcd17b32b5a5fa77c59/pex-2.1.62-py2.py3-none-any.whl"
@@ -461,19 +478,6 @@
 )
 # end docker image building
 
-http_archive(
-    name = "rules_pkg",
-    sha256 = "62eeb544ff1ef41d786e329e1536c1d541bb9bcad27ae984d57f18f314018e66",
-    urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.6.0/rules_pkg-0.6.0.tar.gz",
-        "https://github.com/bazelbuild/rules_pkg/releases/download/0.6.0/rules_pkg-0.6.0.tar.gz",
-    ],
-)
-
-load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
-
-rules_pkg_dependencies()
-
 # scala integration
 http_archive(
     name = "io_bazel_rules_scala",
@@ -483,15 +487,6 @@
     url = "https://github.com/bazelbuild/rules_scala/releases/download/20220201/rules_scala-20220201.zip",
 )
 
-skylib_version = "1.0.3"
-
-http_archive(
-    name = "bazel_skylib",
-    sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
-    type = "tar.gz",
-    url = "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{}/bazel-skylib-{}.tar.gz".format(skylib_version, skylib_version),
-)
-
 load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
 
 scala_config(scala_version = "2.12.15")
diff --git a/docker/compile/Dockerfile.centos7 b/docker/compile/Dockerfile.centos7
index 183a19c..d8a33a7 100644
--- a/docker/compile/Dockerfile.centos7
+++ b/docker/compile/Dockerfile.centos7
@@ -49,7 +49,7 @@
 ENV LC_ALL en_US.utf8
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/compile/Dockerfile.debian11 b/docker/compile/Dockerfile.debian11
index d1a84e0..93e41a2 100644
--- a/docker/compile/Dockerfile.debian11
+++ b/docker/compile/Dockerfile.debian11
@@ -42,7 +42,7 @@
       wget \
       zip
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/compile/Dockerfile.rocky8 b/docker/compile/Dockerfile.rocky8
index 5a8f7c8..5b0495b 100644
--- a/docker/compile/Dockerfile.rocky8
+++ b/docker/compile/Dockerfile.rocky8
@@ -47,7 +47,7 @@
 ENV LC_ALL en_US.utf8
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/compile/Dockerfile.ubuntu18.04 b/docker/compile/Dockerfile.ubuntu18.04
index 72bde03..4b67ae2 100644
--- a/docker/compile/Dockerfile.ubuntu18.04
+++ b/docker/compile/Dockerfile.ubuntu18.04
@@ -47,7 +47,7 @@
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/compile/Dockerfile.ubuntu20.04 b/docker/compile/Dockerfile.ubuntu20.04
index 98d401c..027ac3d 100644
--- a/docker/compile/Dockerfile.ubuntu20.04
+++ b/docker/compile/Dockerfile.ubuntu20.04
@@ -44,7 +44,7 @@
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/compile/Dockerfile.ubuntu22.04 b/docker/compile/Dockerfile.ubuntu22.04
index 6a5ec9c..3df9b83 100644
--- a/docker/compile/Dockerfile.ubuntu22.04
+++ b/docker/compile/Dockerfile.ubuntu22.04
@@ -45,7 +45,7 @@
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/test/Dockerfile.centos7 b/docker/test/Dockerfile.centos7
index a6ba119..c4c1008 100644
--- a/docker/test/Dockerfile.centos7
+++ b/docker/test/Dockerfile.centos7
@@ -51,7 +51,7 @@
 ENV LC_ALL en_US.utf8
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/test/Dockerfile.rocky8 b/docker/test/Dockerfile.rocky8
index 024f2f1..d5c6837 100644
--- a/docker/test/Dockerfile.rocky8
+++ b/docker/test/Dockerfile.rocky8
@@ -50,7 +50,7 @@
 ENV LC_ALL en_US.utf8
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/docker/test/Dockerfile.ubuntu18.04 b/docker/test/Dockerfile.ubuntu18.04
index 0b4a714..75b3995 100644
--- a/docker/test/Dockerfile.ubuntu18.04
+++ b/docker/test/Dockerfile.ubuntu18.04
@@ -41,7 +41,7 @@
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
diff --git a/scripts/ci/setup_bazel.sh b/scripts/ci/setup_bazel.sh
index 8927586..1c5b2df 100644
--- a/scripts/ci/setup_bazel.sh
+++ b/scripts/ci/setup_bazel.sh
@@ -29,7 +29,7 @@
     exit 1
 fi
 BAZEL_OS=$1
-BAZEL_VERSION=4.2.2
+BAZEL_VERSION=6.0.0
 
 # Install Bazel
 BAZEL_INSTALLER=bazel-$BAZEL_VERSION-installer-$BAZEL_OS-x86_64.sh
diff --git a/scripts/packages/BUILD b/scripts/packages/BUILD
index a575837..3173155 100644
--- a/scripts/packages/BUILD
+++ b/scripts/packages/BUILD
@@ -1,4 +1,4 @@
-load("@rules_pkg//:pkg.bzl", "pkg_tar")
+load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
 load("//scripts/packages:self_extract_binary.bzl", "self_extract_binary")
 
 package(default_visibility = ["//visibility:public"])
@@ -527,7 +527,7 @@
         "//integration_test/src/scala:test-data-files",
     ],
     package_dir = "data/scala",
-    strip_prefix = "/integration_test/src/scala/org/apache/heron/integration_test/topology/",
+    strip_prefix = "/integration_test/src/scala/org/apache/heron/integration_test/topology",
 )
 
 pkg_tar(
@@ -536,7 +536,7 @@
         "//integration_test/src/java:test-data-files",
     ],
     package_dir = "data/java",
-    strip_prefix = "/integration_test/src/java/org/apache/heron/integration_test/topology/",
+    strip_prefix = "/integration_test/src/java/org/apache/heron/integration_test/topology",
 )
 
 pkg_tar(
@@ -545,7 +545,7 @@
         "//integration_test/src/java:topology-test-data-files",
     ],
     package_dir = "data/java/topology_test",
-    strip_prefix = "/integration_test/src/java/org/apache/heron/integration_topology_test/topology/",
+    strip_prefix = "/integration_test/src/java/org/apache/heron/integration_topology_test/topology",
 )
 
 pkg_tar(
@@ -554,7 +554,7 @@
         "//integration_test/src/python/integration_test/topology:test-data-files",
     ],
     package_dir = "data/python",
-    strip_prefix = "/integration_test/src/python/integration_test/topology/",
+    strip_prefix = "/integration_test/src/python/integration_test/topology",
 )
 
 pkg_tar(
diff --git a/vagrant/init.sh b/vagrant/init.sh
index f9a44dc..6b10d18 100644
--- a/vagrant/init.sh
+++ b/vagrant/init.sh
@@ -16,7 +16,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-bazelVersion=4.2.2
+bazelVersion=6.0.0
 bazel_install() {
     apt-get install -y automake cmake gcc g++ zlib1g-dev zip pkg-config wget libssl-dev libunwind-dev
     mkdir -p /opt/bazel
diff --git a/website2/website/scripts/Dockerfile.ubuntu18.04 b/website2/website/scripts/Dockerfile.ubuntu18.04
index 397f83f..95640b2 100644
--- a/website2/website/scripts/Dockerfile.ubuntu18.04
+++ b/website2/website/scripts/Dockerfile.ubuntu18.04
@@ -51,7 +51,7 @@
 
 ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
 
-ENV bazelVersion 4.2.2
+ENV bazelVersion 6.0.0
 RUN wget -O /tmp/bazel.sh https://github.com/bazelbuild/bazel/releases/download/$bazelVersion/bazel-$bazelVersion-installer-linux-x86_64.sh \
       && chmod +x /tmp/bazel.sh \
       && /tmp/bazel.sh --user
diff --git a/website2/website/scripts/replace.js b/website2/website/scripts/replace.js
index 32cf049..5a73cb9 100755
--- a/website2/website/scripts/replace.js
+++ b/website2/website/scripts/replace.js
@@ -40,7 +40,8 @@
     '0.20.2-incubating': '0.26.0',
     '0.20.3-incubating': '3.7.0',
     '0.20.4-incubating': '3.7.2',
-    'latest': '4.2.2',
+    '0.20.5-incubating': '4.2.2',
+    'latest': '6.0.0',
 }
 
 function replaceBazel(version) {