| """Release notes generator""" |
| |
| def print_rel_notes(*, name, version, archive): |
| native.genrule( |
| name = name, |
| outs = [name + ".txt"], |
| cmd = """ |
| last_rel=$$(curl -s https://api.github.com/repos/bazelbuild/rules_java/releases/latest | grep 'tag_name' | cut -d: -f2 | tr -cd '[:alnum:].') |
| changelog=$$(/usr/bin/git log tags/$$last_rel..origin/master --format=oneline --) |
| sha=$$(/usr/bin/sha256sum $(SRCS) | cut -d ' ' -f1) |
| cat > $@ <<EOF |
| **Changes since $$last_rel** |
| $$changelog |
| |
| **MODULE.bazel setup** |
| ~~~ |
| bazel_dep(name = "rules_java", version = "{VERSION}") |
| ~~~ |
| |
| **WORKSPACE setup** |
| ~~~ |
| load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") |
| http_archive( |
| name = "rules_java", |
| urls = [ |
| "https://github.com/bazelbuild/rules_java/releases/download/{VERSION}/rules_java-{VERSION}.tar.gz", |
| ], |
| sha256 = "$$sha", |
| ) |
| |
| load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") |
| rules_java_dependencies() |
| load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility |
| proto_bazel_features(name = "proto_bazel_features") |
| load("@rules_java//java:repositories.bzl", "rules_java_toolchains") |
| rules_java_toolchains() |
| ~~~ |
| |
| **Using the rules** |
| See [the source](https://github.com/bazelbuild/rules_java/tree/{VERSION}). |
| |
| EOF |
| """.format(ARCHIVE = archive, VERSION = version), |
| srcs = [archive], |
| tags = ["local", "manual"], |
| ) |