Skip to content

Conversation

@electronjoe
Copy link

@electronjoe electronjoe commented Jan 16, 2026

Addresses #117.

Add support for gazelle:resolve buf directives in the buf gazelle plugin's CrossResolve function. This allows users to override the default @buf_deps// resolution for proto imports, enabling proper integration with local_path_override modules in bzlmod monorepos.

The CrossResolve function now first checks for gazelle:resolve buf directives using the standard resolve.FindRuleWithOverride function. If a matching directive is found, return that label. Otherwise, fall back to the default @buf_deps// resolution.

Example Usage

# gazelle:resolve buf proto/foo/bar.proto @com_example//proto/foo:bar_proto

This directive goes in a BUILD file (typically root or parent directory) and tells gazelle to resolve imports of proto/foo/bar.proto to the label @com_example//proto/foo:bar_proto instead of the default @buf_deps//... resolution.

Test Coverage

bazel test //...

Additionally, in the repository cited in #117, this patch addresses one (of two) issues uncovered.

@CLAassistant
Copy link

CLAassistant commented Jan 16, 2026

CLA assistant check
All committers have signed the CLA.

…ution

Addresses bufbuild#117.

Add support for `gazelle:resolve buf` directives in the buf gazelle plugin's
`CrossResolve` function. This allows users to override the default `@buf_deps//`
resolution for proto imports, enabling proper integration with `local_path_override`
modules in bzlmod monorepos.

The `CrossResolve` function now first checks for `gazelle:resolve buf` directives
using the standard `resolve.FindRuleWithOverride` function. If a matching directive
is found, return that label. Otherwise, fall back to the default `@buf_deps//`
resolution.

Example Usage

```python

This directive goes in a BUILD file (typically root or parent directory) and tells gazelle to resolve imports of proto/foo/bar.proto to the label @com_example//proto/foo:bar_proto instead of the default @buf_deps//... resolution.
```

Test Coverage

```
bazel test //...
```

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@electronjoe electronjoe force-pushed the respect-gazelle-resolve-local branch from 8792ded to 50c92e3 Compare January 16, 2026 17:44
Copy link
Member

@srikrsna-buf srikrsna-buf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Left some minor style nits.

Comment on lines +49 to +50
bufConfig := GetConfigForGazelleConfig(gazelleConfig)
depRepo := getRepoNameForPath(bufConfig.BufConfigFile.Pkg)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bufConfig := GetConfigForGazelleConfig(gazelleConfig)
depRepo := getRepoNameForPath(bufConfig.BufConfigFile.Pkg)
config := GetConfigForGazelleConfig(gazelleConfig)
depRepo := getRepoNameForPath(config.BufConfigFile.Pkg)

}
config := GetConfigForGazelleConfig(gazelleConfig)
depRepo := getRepoNameForPath(config.BufConfigFile.Pkg)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

if override, ok := resolve.FindRuleWithOverride(gazelleConfig, bufImportSpec, "buf"); ok {
return []resolve.FindResult{{Label: override}}
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@srikrsna-buf srikrsna-buf changed the title feat(gazelle): respect gazelle:resolve buf directives for cross resolution Add support for gazelle:resolve directives Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants