Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update extend.md with a practical languages example #1222

Merged
merged 2 commits into from
Apr 4, 2022
Merged

Update extend.md with a practical languages example #1222

merged 2 commits into from
Apr 4, 2022

Conversation

Anthony-Bible
Copy link
Contributor

What type of PR is this?

Uncomment one line below and remove others.

Documentation

What package or component does this PR mostly affect?
N/A

What does this PR do? Why is it needed?
I want to add a practical example of using multiple languages in gazelle_binary. This was a pain point for me when first trying to use gazelle for both go and python so hopefully this is a good addition to provide a foundation for others to use.

Which issues(s) does this PR fix?
N//A

Other notes for review

@Anthony-Bible Anthony-Bible changed the title Update extend.md Update extend.md with a practical languages example Mar 30, 2022
Copy link
Member

@achew22 achew22 left a comment

Choose a reason for hiding this comment

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

The extend.md docs are generated by generating StarDoc from a number of input files. The section you're editing, I believe, comes from

```starlark
load("@bazel_gazelle//:def.bzl", "DEFAULT_LANGUAGES", "gazelle_binary")
gazelle_binary(
name = "gazelle",
languages = DEFAULT_LANGUAGES,
visibility = ["//visibility:public"],
)
```

Then you can bazel run //docs:update and the .md file will be written out.

extend.md Outdated
@@ -54,7 +54,14 @@ load("@bazel_gazelle//:def.bzl", "DEFAULT_LANGUAGES", "gazelle_binary")

gazelle_binary(
name = "gazelle",
languages = DEFAULT_LANGUAGES,
languages = [
"@rules_python//gazelle", #use gazelle from rules_python
Copy link
Member

Choose a reason for hiding this comment

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

Nit: in .bzl files, comments at the end of the line have two spaces then the # and then a space and then the comment. The comment should be a sentence and end with a period.

        "@rules_python//gazelle",  # Use Gazelle from rules_python.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I reformatted my comments to follow that convention. If it needs further intervention I'm happy to make more changes.

extend.md Outdated
"@rules_python//gazelle", #use gazelle from rules_python
"@bazel_gazelle//language/go", #built in rule from gazelle for golang
"@bazel_gazelle//language/proto", #built in rule from gazelle for protos
# must be after the proto extension (order matters)
Copy link
Member

Choose a reason for hiding this comment

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

What do you think about saying

# Any languages that depend on Gazelle's proto plugin must come after it.

?

extend.md Outdated
"@bazel_gazelle//language/go", #built in rule from gazelle for golang
"@bazel_gazelle//language/proto", #built in rule from gazelle for protos
# must be after the proto extension (order matters)
"@build_stack_rules_proto//language/protobuf", #use gazelle to create protobufs see https://github.com/stackb/rules_proto for more info
Copy link
Member

Choose a reason for hiding this comment

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

I would rather not include an external plugin in the documentation for fear that it will look like an endorsement by the project. I'm sure that stack.build's rules_proto is great, but I've not used it and so I'd rather we make up another 3rd party plugin.

Could we go with something like

        "@external_repository//language/gazelle"  # External languages can also be added here. 

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I completely understand, I went ahead and implemented your solution since it solves both a generic plugin while still showing an usable example.

@achew22
Copy link
Member

achew22 commented Apr 3, 2022

I think you need to update the generated files, but otherwise looks good to me

@achew22 achew22 merged commit 8d504c4 into bazelbuild:master Apr 4, 2022
@achew22
Copy link
Member

achew22 commented Apr 4, 2022

@Anthony-Bible thanks for your contribution!

dr-dime added a commit to dr-dime/bazel-gazelle that referenced this pull request Apr 6, 2022
* upstream/master:
  fix: Remove gazelle_binary import collision (bazelbuild#1226)
  Update extend.md with a practical languages example (bazelbuild#1222)
  Add test of diff mode
  Add e2e test for normal operations
  Make `gazelle_generation_test`'s take a list
  Add instructions on regenerating `go_repository_tools_srcs.bzl`
  fix(tests): fix gazelle_generation_test expected stderr update (bazelbuild#1220)
dr-dime added a commit to dr-dime/bazel-gazelle that referenced this pull request Apr 7, 2022
* upstream/master:
  gazelle_generation_test: redact workspace path from output
  Broaden label name regex (bazelbuild#1229)
  fix: Remove gazelle_binary import collision (bazelbuild#1226)
  Update extend.md with a practical languages example (bazelbuild#1222)
  Add test of diff mode
  Add e2e test for normal operations
  Make `gazelle_generation_test`'s take a list
  Add instructions on regenerating `go_repository_tools_srcs.bzl`
  fix(tests): fix gazelle_generation_test expected stderr update (bazelbuild#1220)
gcf-merge-on-green bot pushed a commit to googleapis/gapic-config-validator that referenced this pull request Jun 27, 2022
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) | http_archive | minor | `v0.25.0` -> `v0.26.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle</summary>

### [`v0.26.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.26.0)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.25.0...v0.26.0)

#### What's Changed

-   fix(tests): fix gazelle_generation_test expected stderr update by [@&#8203;jbedard](https://togithub.com/jbedard) in [bazelbuild/bazel-gazelle#1220
-   Add an e2e test confirming no output on success by [@&#8203;achew22](https://togithub.com/achew22) in [bazelbuild/bazel-gazelle#1216
-   Update extend.md with a practical languages example by [@&#8203;Anthony-Bible](https://togithub.com/Anthony-Bible) in [bazelbuild/bazel-gazelle#1222
-   fix: Remove gazelle_binary import collision by [@&#8203;illicitonion](https://togithub.com/illicitonion) in [bazelbuild/bazel-gazelle#1226
-   Broaden label name regex by [@&#8203;illicitonion](https://togithub.com/illicitonion) in [bazelbuild/bazel-gazelle#1229
-   gazelle_generation_test: redact workspace path from output by [@&#8203;dr-dime](https://togithub.com/dr-dime) in [bazelbuild/bazel-gazelle#1231
-   Add -print0 to print names of rewritten files by [@&#8203;dr-dime](https://togithub.com/dr-dime) in [bazelbuild/bazel-gazelle#1213
-   Code Quality Improvements by [@&#8203;sluongng](https://togithub.com/sluongng) in [bazelbuild/bazel-gazelle#1197
-   Add -strict to exit on build file and directive errors by [@&#8203;dr-dime](https://togithub.com/dr-dime) in [bazelbuild/bazel-gazelle#1214
-   fix(lang/proto): include imports from different targets by [@&#8203;nickgooding](https://togithub.com/nickgooding) in [bazelbuild/bazel-gazelle#1237
-   Update rules example in README to v0.25.0 by [@&#8203;yujunz](https://togithub.com/yujunz) in [bazelbuild/bazel-gazelle#1240
-   Allow static dependency resolution for Gazelle rule by [@&#8203;uhthomas](https://togithub.com/uhthomas) in [bazelbuild/bazel-gazelle#1242
-   Handle wrapped errors by [@&#8203;illicitonion](https://togithub.com/illicitonion) in [bazelbuild/bazel-gazelle#1234
-   Go: Update tests to use cmp.Diff instead of reflect.DeepEqual by [@&#8203;thempatel](https://togithub.com/thempatel) in [bazelbuild/bazel-gazelle#1244
-   Fix startup script manifest resolution with --nolegacy_external_runfiles by [@&#8203;jvolkman](https://togithub.com/jvolkman) in [bazelbuild/bazel-gazelle#1247
-   Label's package may contain [@&#8203;s](https://togithub.com/s) by [@&#8203;illicitonion](https://togithub.com/illicitonion) in [bazelbuild/bazel-gazelle#1249
-   Trim runfiles prefix consistently by [@&#8203;uhthomas](https://togithub.com/uhthomas) in [bazelbuild/bazel-gazelle#1257
-   Respect .bazelignore by [@&#8203;Whoaa512](https://togithub.com/Whoaa512) in [bazelbuild/bazel-gazelle#1245
-   Implement very minimalistic support for go workspaces by [@&#8203;HakanSunay](https://togithub.com/HakanSunay) in [bazelbuild/bazel-gazelle#1250
-   Fix typo in comment by [@&#8203;yujunz](https://togithub.com/yujunz) in [bazelbuild/bazel-gazelle#1270
-   Use `patch` from `@bazel_tools//tools/build_defs/repo:utils.bzl` by [@&#8203;bozaro](https://togithub.com/bozaro) in [bazelbuild/bazel-gazelle#1269
-   Update rules_go to 0.33.0 by [@&#8203;fmeum](https://togithub.com/fmeum) in [bazelbuild/bazel-gazelle#1263
-   Add support for auth_patterns in go_repository by [@&#8203;dmivankov](https://togithub.com/dmivankov) in [bazelbuild/bazel-gazelle#1254
-   Sluongng/revert patch by [@&#8203;sluongng](https://togithub.com/sluongng) in [bazelbuild/bazel-gazelle#1277
-   Stop inferring import path for empty packages by [@&#8203;linzhp](https://togithub.com/linzhp) in [bazelbuild/bazel-gazelle#1280
-   Don't exclude spaces from the label name regex by [@&#8203;illicitonion](https://togithub.com/illicitonion) in [bazelbuild/bazel-gazelle#1271

#### New Contributors

-   [@&#8203;Anthony-Bible](https://togithub.com/Anthony-Bible) made their first contribution in [bazelbuild/bazel-gazelle#1222
-   [@&#8203;dr-dime](https://togithub.com/dr-dime) made their first contribution in [bazelbuild/bazel-gazelle#1231
-   [@&#8203;sluongng](https://togithub.com/sluongng) made their first contribution in [bazelbuild/bazel-gazelle#1197
-   [@&#8203;nickgooding](https://togithub.com/nickgooding) made their first contribution in [bazelbuild/bazel-gazelle#1237
-   [@&#8203;yujunz](https://togithub.com/yujunz) made their first contribution in [bazelbuild/bazel-gazelle#1240
-   [@&#8203;uhthomas](https://togithub.com/uhthomas) made their first contribution in [bazelbuild/bazel-gazelle#1242
-   [@&#8203;thempatel](https://togithub.com/thempatel) made their first contribution in [bazelbuild/bazel-gazelle#1244
-   [@&#8203;Whoaa512](https://togithub.com/Whoaa512) made their first contribution in [bazelbuild/bazel-gazelle#1245
-   [@&#8203;HakanSunay](https://togithub.com/HakanSunay) made their first contribution in [bazelbuild/bazel-gazelle#1250
-   [@&#8203;bozaro](https://togithub.com/bozaro) made their first contribution in [bazelbuild/bazel-gazelle#1269
-   [@&#8203;fmeum](https://togithub.com/fmeum) made their first contribution in [bazelbuild/bazel-gazelle#1263
-   [@&#8203;dmivankov](https://togithub.com/dmivankov) made their first contribution in [bazelbuild/bazel-gazelle#1254

**Full Changelog**: bazelbuild/bazel-gazelle@v0.25.0...v0.26.0

#### `WORKSPACE` code

    load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

    http_archive(
        name = "bazel_gazelle",
        sha256 = "501deb3d5695ab658e82f6f6f549ba681ea3ca2a5fb7911154b5aa45596183fa",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.26.0/bazel-gazelle-v0.26.0.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.26.0/bazel-gazelle-v0.26.0.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")

    ############################################################

### Define your own dependencies here using go_repository.

### Else, dependencies declared by rules_go/gazelle will be used.

### The first declaration of an external repository "wins".

    ############################################################

    gazelle_dependencies()

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-config-validator).
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.

None yet

2 participants