Merge pull request #11 from aiuto:rel

PiperOrigin-RevId: 262047189
Change-Id: Ia643b78cb7b8eff790c4b6fee4f11279ca534654
diff --git a/BUILD b/BUILD
index 3638149..9e1ee65 100644
--- a/BUILD
+++ b/BUILD
@@ -1,3 +1,11 @@
 licenses(["notice"])
 
 exports_files(["LICENSE"])
+
+filegroup(
+    name = "distribution",
+    srcs = glob([
+        "LICENSE",
+    ]),
+    visibility = ["@//distro:__pkg__"],
+)
diff --git a/WORKSPACE b/WORKSPACE
index c820ee6..20ae0dc 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,3 +3,16 @@
 load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
 rules_java_dependencies()
 rules_java_toolchains()
+
+
+#
+# Dependencies for development of rules_java itself.
+#
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+    name = "rules_pkg",
+    url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.1/rules_pkg-0.2.1.tar.gz",
+    sha256 = "04c1eab736f508e94c297455915b6371432cbc4106765b5252b444d1656db051",
+)
+load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
+rules_pkg_dependencies()
diff --git a/distro/BUILD b/distro/BUILD
new file mode 100644
index 0000000..0e09212
--- /dev/null
+++ b/distro/BUILD
@@ -0,0 +1,30 @@
+package(
+    default_visibility = ["//visibility:private"],
+)
+
+load("@rules_java//java:defs.bzl", "version")
+load("@rules_pkg//:pkg.bzl", "pkg_tar")
+load("@rules_pkg//releasing:defs.bzl", "print_rel_notes")
+
+# Build the artifact to put on the github release page.
+pkg_tar(
+    name = "rules_java-%s" % version,
+    srcs = [
+        "//:distribution",
+        "//java:distribution",
+    ],
+    extension = "tar.gz",
+    # It is all source code, so make it read-only.
+    mode = "0444",
+    # Make it owned by root so it does not have the uid of the CI robot.
+    owner = "0.0",
+    package_dir = ".",
+    strip_prefix = ".",
+)
+
+print_rel_notes(
+    name = "relnotes",
+    outs = ["relnotes.txt"],
+    repo = "rules_java",
+    version = version,
+)
diff --git a/distro/README.md b/distro/README.md
new file mode 100644
index 0000000..ffd6473
--- /dev/null
+++ b/distro/README.md
@@ -0,0 +1,11 @@
+# Package rules_java
+
+```
+bazel build :print_rel_notes
+cat ../bazel-bin/distro/relnotes.txt
+tar tzf ../bazel-bin/distro/rules_java-*.tar.gz
+```
+
+- Create a new release
+- Copy/paste relnotes.txt into the notes. Adjust as needed.
+- Upload the tar.gz file as an artifact.
diff --git a/java/BUILD b/java/BUILD
index 9a01f92..c799b9b 100644
--- a/java/BUILD
+++ b/java/BUILD
@@ -1 +1,14 @@
-# Intentionally left empty
+package(default_visibility = ["//visibility:public"])
+
+# TODO(aiuto): Find a way to strip this rule from the distribution tarball.
+filegroup(
+    name = "distribution",
+    srcs = glob([
+        "**",
+    ]) + [
+        "//java/constraints:srcs",
+    ],
+    visibility = [
+        "@//distro:__pkg__",
+    ],
+)
diff --git a/java/defs.bzl b/java/defs.bzl
index 1cb4d57..e77b1a9 100644
--- a/java/defs.bzl
+++ b/java/defs.bzl
@@ -15,6 +15,8 @@
 
 _MIGRATION_TAG = "__JAVA_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__"
 
+version = "0.1.0"
+
 def _add_tags(attrs):
     if "tags" in attrs and attrs["tags"] != None:
         attrs["tags"] = attrs["tags"] + [_MIGRATION_TAG]