Merge pull request #26 from aiuto/pkg
First cut at making a release binary
diff --git a/BUILD b/BUILD
index 020b0e0..a763238 100644
--- a/BUILD
+++ b/BUILD
@@ -38,3 +38,15 @@
]),
visibility = ["//visibility:public"],
)
+
+filegroup(
+ name = "standard_package",
+ srcs = glob([
+ "*.bzl",
+ "*.md",
+ ]) + [
+ "BUILD",
+ "LICENSE",
+ ],
+ visibility = ["//distro:__pkg__"],
+)
diff --git a/WORKSPACE b/WORKSPACE
index e8aa17e..c4b227b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -14,10 +14,24 @@
workspace(name = "rules_license")
+# You only need the dependencies if you intend to use any of the tools.
load("@rules_license//:deps.bzl", "rules_license_dependencies")
rules_license_dependencies()
### INTERNAL ONLY - lines after this are not included in the release packaging.
-# TODO(aiuto): Add stardoc dependency eventually.
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+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()
diff --git a/distro/BUILD b/distro/BUILD
new file mode 100644
index 0000000..c175f18
--- /dev/null
+++ b/distro/BUILD
@@ -0,0 +1,69 @@
+# Copyright 2022 The Bazel Authors. All rights reserved.
+#
+# 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.
+
+load("//:version.bzl", "version")
+load("@rules_pkg//pkg:pkg.bzl", "pkg_tar")
+load("@rules_pkg//pkg/releasing:defs.bzl", "print_rel_notes")
+
+
+package(
+ default_visibility = ["//visibility:private"],
+ default_applicable_licenses = ["//:license"],
+)
+
+alias(
+ name = "distro",
+ actual = "rules_license-%s" % version,
+)
+
+# Build the artifact to put on the github release page.
+pkg_tar(
+ name = "rules_license-%s" % version,
+ srcs = [
+ ":small_workspace",
+ "//:standard_package",
+ "//licenses/spdx:standard_package",
+ "//rules:standard_package",
+ "//tools:standard_package",
+ ],
+ 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 = ".",
+ tags = [
+ "no_windows",
+ ],
+)
+
+genrule(
+ name = "small_workspace",
+ srcs = ["//:WORKSPACE"],
+ outs = ["WORKSPACE"],
+ cmd = "sed -e '/### INTERNAL ONLY/,$$d' $(location //:WORKSPACE) >$@",
+ tags = [
+ "no_windows",
+ ],
+)
+
+print_rel_notes(
+ name = "relnotes",
+ outs = ["relnotes.txt"],
+ mirror_host = "mirror.bazel.build",
+ org = "bazelbuild",
+ repo = "rules_license",
+ version = version,
+)
diff --git a/licenses/spdx/BUILD b/licenses/spdx/BUILD
index 1f83892..cf50e0e 100644
--- a/licenses/spdx/BUILD
+++ b/licenses/spdx/BUILD
@@ -59,6 +59,11 @@
default_visibility = ["//visibility:public"],
)
+filegroup(
+ name = "standard_package",
+ srcs = ["BUILD"],
+)
+
license_kind(
name = "0BSD",
conditions = [],
diff --git a/rules/BUILD b/rules/BUILD
index 36609b7..f0fd218 100644
--- a/rules/BUILD
+++ b/rules/BUILD
@@ -19,3 +19,8 @@
default_applicable_licenses = ["//:license"],
default_visibility = ["//visibility:public"],
)
+
+filegroup(
+ name = "standard_package",
+ srcs = glob(["**"]),
+)
diff --git a/tools/BUILD b/tools/BUILD
index b2bc718..03bbac1 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -27,3 +27,9 @@
)
exports_files(["diff_test.sh"])
+
+filegroup(
+ name = "standard_package",
+ srcs = glob(["**"]),
+ visibility = ["//distro:__pkg__"],
+)