Clean up polygerrit_plugin rule Deps attribute was unused. Sources set is also never used. The idiom is to use rollup_bundle() rule first and then pass in the result into polygerrit_plugin rule as app attribute. I verified with this query: [1], that in fact sources set is never used. [1] https://cs.bazel.build/search?q=r%3Agerrit+polygerrit_plugin Change-Id: Ie46a8f02a2b485a856916fe14002dc6d0e710c20
diff --git a/tools/bzl/js.bzl b/tools/bzl/js.bzl index facb1ce..04464d0 100644 --- a/tools/bzl/js.bzl +++ b/tools/bzl/js.bzl
@@ -439,65 +439,37 @@ """Combine html, js, css files and optionally split into js and html bundles.""" _bundle_rule(pkg = native.package_name(), *args, **kwargs) -def polygerrit_plugin(name, app, srcs = [], deps = [], assets = None, plugin_name = None, **kwargs): - """Bundles plugin dependencies for deployment. +def polygerrit_plugin(name, app, assets = [], plugin_name = None): + """Produces plugin file set with minified javascript and assets. - This rule bundles all Polymer elements and JS dependencies into .html and .js files. + This rule minifies a plugin javascript file, potentially renames it, and produces a file set. Run-time dependencies (e.g. JS libraries loaded after plugin starts) should be provided using "assets" property. - Output of this rule is a FileSet with "${name}_fs", with deploy artifacts in "plugins/${name}/static". + Output of this rule is a FileSet with "${plugin_name}.js" and assets. Args: name: String, rule name. - app: String, the main or root source file. - assets: Fileset, additional files to be used by plugin in runtime, exported to "plugins/${name}/static". + app: String, the main or root source file. This must be single JavaScript file. + assets: Fileset, additional files to be used by plugin in runtime. plugin_name: String, plugin name. ${name} is used if not provided. """ if not plugin_name: plugin_name = name - srcs = srcs if app in srcs else srcs + [app] - js_srcs = srcs - - native.filegroup( - name = name + "-src-fg", - srcs = js_srcs, - ) - terser_minified( - name = name + ".min", + name = plugin_name + ".min", sourcemap = False, - src = name + "-src-fg", + src = app, ) native.genrule( name = name + "_rename_js", - srcs = [name + ".min"], + srcs = [plugin_name + ".min"], outs = [plugin_name + ".js"], cmd = "cp $< $@", output_to_bindir = True, ) - static_files = [plugin_name + ".js"] - - if assets: - nested, direct = [], [] - for x in assets: - target = nested if "/" in x else direct - target.append(x) - - static_files += direct - - if nested: - native.genrule( - name = name + "_copy_assets", - srcs = assets, - outs = [f.split("/")[-1] for f in nested], - cmd = "cp $(SRCS) $(@D)", - output_to_bindir = True, - ) - static_files.append(":" + name + "_copy_assets") - native.filegroup( name = name, - srcs = static_files, + srcs = [plugin_name + ".js"] + assets, )