Merge branch 'stable-2.14'
* stable-2.14:
Fix build documentation
Implement standalone bazel build
Cleanup .gitignore
Change-Id: I9a243c41765957ef8ed44f6ae0d0250a55491d3a
diff --git a/.gitignore b/.gitignore
index e034f3b..601e4e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,7 @@
-/bucklets
-/target
-/.buckversion
/.classpath
+/.primary_build_tool
/.project
/.settings/org.maven.ide.eclipse.prefs
/.settings/org.eclipse.m2e.core.prefs
-/.buckd
-/.watchmanconfig
-/buck-out
+/bazel-*
+/eclipse-out/
diff --git a/BUILD b/BUILD
index db4ef4a..58e65ad 100644
--- a/BUILD
+++ b/BUILD
@@ -7,7 +7,6 @@
"@gitiles_servlet//jar",
],
outs = ["gitiles.jar"],
- visibility = ["//plugins:__subpackages__"],
cmd = " && ".join([
"ROOT=$$PWD",
"TMP=$$(mktemp -d || mktemp -d -t bazel-tmp)",
@@ -18,6 +17,7 @@
"mv static +static",
"zip -Drq $$ROOT/$@ -g . -i \"+static/*\"",
]),
+ visibility = ["//plugins:__subpackages__"],
)
gerrit_plugin(
@@ -36,6 +36,14 @@
resources = glob(["src/main/resources/**/*"]),
target_suffix = "__base",
deps = [
+ ":gitiles__plugin_deps",
+ ],
+)
+
+java_library(
+ name = "gitiles__plugin_deps",
+ visibility = ["//visibility:public"],
+ exports = [
"@autolink//jar",
"@cm_autolink//jar",
"@commonmark//jar",
@@ -45,3 +53,13 @@
"@prettify//jar",
],
)
+
+java_library(
+ name = "gitiles__classpath_deps",
+ testonly = 1,
+ visibility = ["//visibility:public"],
+ exports = [
+ ":gitiles__plugin",
+ ":gitiles__plugin_deps",
+ ],
+)
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100644
index 0000000..91ac60a
--- /dev/null
+++ b/WORKSPACE
@@ -0,0 +1,30 @@
+workspace(name = "gitiles")
+
+load("//:bazlets.bzl", "load_bazlets")
+
+load_bazlets(
+ commit = "e15ad03897f040435d6c5e808b697b1125b964c1",
+ # local_path = "/home/<user>/projects/bazlets",
+)
+
+#Snapshot Plugin API
+load(
+ "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl",
+ "gerrit_api_maven_local",
+)
+
+# Load snapshot Plugin API
+gerrit_api_maven_local()
+
+# Release Plugin API
+# load(
+# "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl",
+# "gerrit_api",
+# )
+
+# Load release Plugin API
+# gerrit_api()
+
+load("//:external_plugin_deps.bzl", "external_plugin_deps")
+
+external_plugin_deps()
diff --git a/bazlets.bzl b/bazlets.bzl
new file mode 100644
index 0000000..e14e488
--- /dev/null
+++ b/bazlets.bzl
@@ -0,0 +1,17 @@
+NAME = "com_googlesource_gerrit_bazlets"
+
+def load_bazlets(
+ commit,
+ local_path = None
+ ):
+ if not local_path:
+ native.git_repository(
+ name = NAME,
+ remote = "https://gerrit.googlesource.com/bazlets",
+ commit = commit,
+ )
+ else:
+ native.local_repository(
+ name = NAME,
+ path = local_path,
+ )
diff --git a/src/main/resources/+Documentation/build.md b/src/main/resources/+Documentation/build.md
index 7b18329..12e6726 100644
--- a/src/main/resources/+Documentation/build.md
+++ b/src/main/resources/+Documentation/build.md
@@ -1,7 +1,48 @@
Build
=====
-This plugin is built with Bazel.
+This plugin is built with Bazel, and two build modes are supported:
+
+* Standalone
+* In Gerrit tree
+
+Standalone build mode is recommended, as this mode doesn't require local Gerrit
+tree to exist. Moreover, there are additional manual steps required when building
+in Gerrit tree mode (see corresponding section).
+
+## Build standalone
+
+To build the plugin, issue the following command:
+
+```
+ bazel build @PLUGIN@
+```
+
+The output is created in
+
+```
+ bazel-genfiles/@PLUGIN@.jar
+```
+
+To package the plugin sources run:
+
+```
+ bazel build lib@PLUGIN@__plugin-src.jar
+```
+
+The output is created in:
+
+```
+ bazel-bin/lib@PLUGIN@__plugin-src.jar
+```
+
+This project can be imported into the Eclipse IDE:
+
+```
+ ./tools/eclipse/project.sh
+```
+
+## Build in Gerrit tree
Clone (or link) this plugin to the `plugins` directory of Gerrit's source tree.
diff --git a/tools/bazel.rc b/tools/bazel.rc
new file mode 100644
index 0000000..4ed16cf
--- /dev/null
+++ b/tools/bazel.rc
@@ -0,0 +1,2 @@
+build --workspace_status_command=./tools/workspace-status.sh
+test --build_tests_only
diff --git a/tools/bzl/BUILD b/tools/bzl/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/bzl/BUILD
diff --git a/tools/bzl/classpath.bzl b/tools/bzl/classpath.bzl
new file mode 100644
index 0000000..d5764f7
--- /dev/null
+++ b/tools/bzl/classpath.bzl
@@ -0,0 +1,4 @@
+load(
+ "@com_googlesource_gerrit_bazlets//tools:classpath.bzl",
+ "classpath_collector",
+)
diff --git a/tools/bzl/maven_jar.bzl b/tools/bzl/maven_jar.bzl
new file mode 100644
index 0000000..acfda5f
--- /dev/null
+++ b/tools/bzl/maven_jar.bzl
@@ -0,0 +1 @@
+load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", "maven_jar", "GERRIT", "MAVEN_CENTRAL")
diff --git a/tools/bzl/plugin.bzl b/tools/bzl/plugin.bzl
new file mode 100644
index 0000000..956dd59
--- /dev/null
+++ b/tools/bzl/plugin.bzl
@@ -0,0 +1,5 @@
+load(
+ "@com_googlesource_gerrit_bazlets//:gerrit_plugin.bzl",
+ "gerrit_plugin",
+ "PLUGIN_DEPS",
+)
diff --git a/tools/eclipse/BUILD b/tools/eclipse/BUILD
new file mode 100644
index 0000000..8ee09e9
--- /dev/null
+++ b/tools/eclipse/BUILD
@@ -0,0 +1,10 @@
+load("//tools/bzl:classpath.bzl", "classpath_collector")
+load("//tools/bzl:plugin.bzl", "PLUGIN_DEPS")
+
+classpath_collector(
+ name = "main_classpath_collect",
+ testonly = 1,
+ deps = PLUGIN_DEPS + [
+ "//:gitiles__classpath_deps",
+ ],
+)
diff --git a/tools/eclipse/project.sh b/tools/eclipse/project.sh
new file mode 100755
index 0000000..b9d8985
--- /dev/null
+++ b/tools/eclipse/project.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+#Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+`bazel query @com_googlesource_gerrit_bazlets//tools/eclipse:project --output location | sed s/BUILD:.*//`project.py -n gitiles -r .
+
+
diff --git a/tools/workspace-status.sh b/tools/workspace-status.sh
new file mode 100755
index 0000000..c9e9129
--- /dev/null
+++ b/tools/workspace-status.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+#This script will be run by bazel when the build process starts to
+# generate key-value information that represents the status of the
+# workspace. The output should be like
+#
+# KEY1 VALUE1
+# KEY2 VALUE2
+#
+# If the script exits with non-zero code, it's considered as a failure
+# and the output will be discarded.
+
+function rev() {
+ cd $1 && git describe --always --match "v[0-9].*" --dirty
+}
+
+echo STABLE_BUILD_GITILES_LABEL "$(rev .)"