Add bucklets documentation

Change-Id: I7d491127cd93e7b28b02bd8070a8deaf49de48b4
diff --git a/java7.bucklet b/java7.bucklet
index 488fba4..c7996ca 100644
--- a/java7.bucklet
+++ b/java7.bucklet
@@ -1,4 +1,25 @@
-# see https://github.com/facebook/buck/pull/67
+# Current Buck version lacks support to overwrite Java version
+# in .buckconfig file, under Java section, e. g.:
+#
+# [java]
+#   src_roots = java, resources
+#   source = 7
+#   target = 7
+#
+# Instead, the documentaion suggests to provide Java version in
+# each and every java_library() call.
+#
+# This bucklet overwrites the definition of original java_library
+# and java_test rules.
+#
+# Example: this bucklet must be used in .buckconfig file, under
+# include section to ensure, that this file is seen before others:
+#
+# [buildfile]
+#   includes = //bucklets/java7.bucklet
+#
+# @See https://github.com/facebook/buck/pull/67
+#
 original_java_library = java_library
 def java_library(
     name,
diff --git a/java8.bucklet b/java8.bucklet
index 1fb22aa..d7ebe06 100644
--- a/java8.bucklet
+++ b/java8.bucklet
@@ -1,4 +1,25 @@
-# see https://github.com/facebook/buck/pull/67
+# Current Buck version lacks support to overwrite Java version
+# in .buckconfig file, under Java section, e. g.:
+#
+# [java]
+#   src_roots = java, resources
+#   source = 8
+#   target = 8
+#
+# Instead, the documentaion suggests to provide Java version in
+# each and every java_library() call.
+#
+# This bucklet overwrites the definition of original java_library
+# and java_test rules.
+#
+# Example: this bucklet must be used in .buckconfig file, under
+# include section to ensure, that this file is seen before others:
+#
+# [buildfile]
+#   includes = //bucklets/java8.bucklet
+#
+# @See https://github.com/facebook/buck/pull/67
+#
 original_java_library = java_library
 def java_library(
     name,
diff --git a/java_doc.bucklet b/java_doc.bucklet
index 8df3f85..426ef45 100644
--- a/java_doc.bucklet
+++ b/java_doc.bucklet
@@ -1,3 +1,17 @@
+# This bucklet simplifies creation of Javadocs
+#
+# Example:
+#
+# java_doc(
+#   name = 'javadoc',
+#   title = 'Gitiles API Documentation',
+#   pkg = 'com.google.gitiles',
+#   paths = ['gitiles-servlet/src/main/java'],
+#   srcs = glob([n + '**/*.java' for n in SRCS]),
+#   deps = DEPS,
+#   visibility = ['PUBLIC'],
+# )
+#
 def java_doc(
     name,
     title,
diff --git a/java_library2.bucklet b/java_library2.bucklet
index 8fe78e8..8bfc5ab 100644
--- a/java_library2.bucklet
+++ b/java_library2.bucklet
@@ -1,7 +1,20 @@
 # Compiles a Java library with additional compile-time dependencies
 # that do not show up as transitive dependencies to java_library()
 # or java_binary() rule that depends on this library.
-# work around for: https://github.com/facebook/buck/issues/63
+#
+# Example: servlet library needs to be compiled against servlet API
+# but this dependency must not become a transitive dependency.
+#
+# java_library2(
+#   name = 'gitiles-servlet',
+#   srcs = SRCS,
+#   resources = RSRC,
+#   deps = DEPS,
+#   compile_deps = ['//lib:servlet-api'],
+#   visibility = ['PUBLIC'],
+# )
+# @See: https://github.com/facebook/buck/issues/63
+#
 def java_library2(
     name,
     srcs = [],
diff --git a/java_sources.bucklet b/java_sources.bucklet
index 0b3974e..b2c6a19 100644
--- a/java_sources.bucklet
+++ b/java_sources.bucklet
@@ -1,3 +1,13 @@
+# This bucklet simplifies creation of Java source archives
+#
+# Example:
+#
+# java_sources(
+#   name = 'src',
+#   srcs = SRCS + RSRC,
+#   visibility = ['PUBLIC'],
+# )
+#
 def java_sources(
     name,
     srcs,
diff --git a/local_jar.bucklet b/local_jar.bucklet
index 8131daa..6e06ce9 100644
--- a/local_jar.bucklet
+++ b/local_jar.bucklet
@@ -8,17 +8,19 @@
 # local Maven repository and fetching it again from there out of the picture,
 # `local_jar()` method is used:
 #
+# Example:
+#
 # local_jar(
 #   name = 'jgit',
 #   jar = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT.jar',
-#   src = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT-sources.jar',
+#   src_jar = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT-sources.jar',
 #   deps = [':ewah']
 # )
-
+#
 def local_jar(
     name,
     jar,
-    src = None,
+    src_jar = None,
     deps = [],
     visibility = ['PUBLIC']):
   binjar = name + '.jar'
@@ -27,10 +29,10 @@
     name = name + '__local_bin',
     cmd = 'ln -s %s $OUT' % jar,
     out = binjar)
-  if src:
+  if src_jar:
     genrule(
       name = name + '__local_src',
-      cmd = 'ln -s %s $OUT' % src,
+      cmd = 'ln -s %s $OUT' % src_jar,
       out = srcjar)
     prebuilt_jar(
       name = name + '_src',
diff --git a/maven_jar.bucklet b/maven_jar.bucklet
index 19a06f9..b5c6335 100644
--- a/maven_jar.bucklet
+++ b/maven_jar.bucklet
@@ -1,6 +1,32 @@
 #
 # Fetch artifacts from Maven repository
-# see: https://github.com/facebook/buck/issues/64
+#
+# name: (required) The name of the rule.
+# id: (required) Maven group id, artifact id and version in the form: g:a:v
+# exclude: (defaults to []) Rules to exlude from resulting maven JAR
+# exclude_java_sources: (default to False) should java source be included
+# unsign: (default to False): should this archive be unsigned
+# deps: (defaults to []) Rules (usually other java_library rules) that are
+#        included as transitive dependency of this Maven JAR
+# exported_deps: (defaults to []) Whether or not depending on this rule should
+#        also transitively pull in all of its dependencies.
+# sha1: SHA-1 of binary artifact
+# bin_sha1: SHA-1 of binary artifact
+# src_sha1: SHA-1 of src artifact
+# repository: (default to MAVEN_CENTRAL) repository name
+# attach_source: (default to True): should the sources be fetched
+# visibility (defaults to ['PUBLIC']) List of build target patterns that
+# identify the build rules that can include this rule in its deps.
+#
+# Example:
+#
+# maven_jar(
+#   name = 'guava',
+#   id = 'com.google.guava:guava:16.0',
+#   sha1 = 'aca09d2e5e8416bf91550e72281958e35460be52',
+# )
+#
+# @See: https://github.com/facebook/buck/issues/64
 #
 
 GERRIT = 'GERRIT:'
diff --git a/maven_package.bucklet b/maven_package.bucklet
index 0e865b6..8bd6720 100644
--- a/maven_package.bucklet
+++ b/maven_package.bucklet
@@ -1,17 +1,16 @@
-# Copyright (C) 2013 The Android Open Source Project
+# Install and deploy artifacts into local and remote Maven repositories
 #
-# 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
+# Example:
 #
-# http://www.apache.org/licenses/LICENSE-2.0
+# maven_package(
+#   repository = 'gerrit-api-repository',
+#   url = 'gs://gerrit-api/release',
+#   version = '1.0',
+#   jar = {'gitiles-servlet': '//gitiles-servlet:servlet'},
+#   src = {'gitiles-servlet': '//gitiles-servlet:src'},
+#   doc = {'gitiles-servlet': '//gitiles-servlet:javadoc'},
+# )
 #
-# 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.
-
 def maven_package(
     version,
     repository = None,
diff --git a/war.bucklet b/war.bucklet
index 2987e05..8341e2d 100644
--- a/war.bucklet
+++ b/war.bucklet
@@ -1,3 +1,16 @@
+# This bucklet simplifies creation of war archives.
+#
+# Example:
+#
+# war(
+#   name = 'gitiles',
+#   libs = ['//gitiles-servlet:servlet'],
+#   context = [
+#     ':recourses.zip',
+#   ],
+#   visibility = ['PUBLIC']
+# )
+#
 def war(
     name,
     libs = [],