Open alexeagle opened 2 months ago
An easy way to figure out whether this is a bug with REPO.bazel is to try the same with the package(default_package_metadata=...)
thing in BUILD.bazel. Could you try that?
I think that this is expected, both package
and repo
are equivalent to setting the corresponding attribute on the rules, but that by itself doesn't result in the providers being advertised on the targets. You need to attach an aspect that forwards them from attr
s.
@fmeum (https://github.com/bazelbuild/bazel-gazelle/pull/1852) and I (https://github.com/bazelbuild/bazel-gazelle/pull/1917) have been trying to make the bazel-gazelle
go_repository
PackageInfo functional.bazel-gazelle generates a target
@some-go-package//:gazelle_generated_package_info
for each package installed, you can observe this working withcquery
for example:This package info isn't attached directly to
go_library
targets. Rather it uses the (new?)repo()
function in theREPO.bazel
for that external repo (after all, every target there is licensed the same way)https://github.com/bazelbuild/bazel-gazelle/blob/089096315dcaa0aea52e87ecc2bd6b89b531da1e/internal/go_repository.bzl#L369-L371
However when we
cquery
on ago_library
target that may be reachable through the dep graph from a Go application:The only relevant provider hanging from that
go_library
isLicenseInfo
:LicenseInfo here is the one built-into Bazel's Java code, not the one declared in rules_license.
Does this mean the
go_repository
implementation needs to attach the PackageInfo to eachgo_library
as well?