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

Don't exclude spaces from the label name regex #1271

Merged
merged 1 commit into from
Jun 21, 2022

Conversation

illicitonion
Copy link
Contributor

What type of PR is this?

Bug fix

What package or component does this PR mostly affect?

label

What does this PR do? Why is it needed?

Don't exclude spaces from the label name regex

In parsing the output of bazel query, we found that some files with
spaces in their names are included in the output.

It seems reasonable that all labels that come out of a bazel query
should be parsable by this Label type; let's just use the raw regex
from the Bazel documentation.

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.

Thanks for the PR!

@@ -65,9 +65,7 @@ var (
labelRepoRegexp = regexp.MustCompile(`^@$|^[A-Za-z.-][A-Za-z0-9_.-]*$`)
labelPkgRegexp = regexp.MustCompile(`^[A-Za-z0-9/._@-]*$`)
// This was taken from https://docs.bazel.build/versions/main/build-ref.html#name
// Note: We've manually removed space from the regex, because though these technically parse
// with Bazel (and can appear in query results), they cannot actually be used in practice.
Copy link
Member

Choose a reason for hiding this comment

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

Can you explain why this comment is no longer true?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It was never really true - I made a limiting assumption which was incorrect. bazelbuild/bazel#4327 is an issue tracking fixing gaps in this support elsewhere in Bazel, too, which is an open and accepted issue, not something closed as working as intended.

// Note: We've manually removed space from the regex, because though these technically parse
// with Bazel (and can appear in query results), they cannot actually be used in practice.
labelNameRegexp = regexp.MustCompile("^[A-Za-z0-9!%-@^_`\"#$&'()*-+,;<=>?\\[\\]{|}~/.]*$")
labelNameRegexp = regexp.MustCompile("^[A-Za-z0-9!%-@^_` \"#$&'()*-+,;<=>?\\[\\]{|}~/.]*$")
Copy link
Member

Choose a reason for hiding this comment

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

I've been bitten one too many times by "a small change to a regex that is trivial to visually validate". Could we add some test cases to prove this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added a test :)

In parsing the output of `bazel query`, we found that some files with
spaces in their names are included in the output.

It seems reasonable that all labels that come out of a `bazel query`
should be parsable by this `Label` type; let's just use the raw regex
from the Bazel documentation.
@illicitonion
Copy link
Contributor Author

@achew22 Could I nudge you at this again? Cheers!

@achew22 achew22 merged commit a98769c into bazelbuild:master Jun 21, 2022
@achew22
Copy link
Member

achew22 commented Jun 21, 2022

Thanks for adding that test, and for your continued support @illicitonion! Really appreciate your work

illicitonion added a commit to illicitonion/target-determinator that referenced this pull request Jun 22, 2022
illicitonion added a commit to bazel-contrib/target-determinator that referenced this pull request Jun 23, 2022
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