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

[gazelle] python_ignore_files directive incorrectly (?) ignores files with the same name in subpackages #2147

Open
dougthor42 opened this issue Aug 22, 2024 · 0 comments
Labels
gazelle Gazelle plugin related issues help wanted

Comments

@dougthor42
Copy link
Contributor

🐞 bug report

Affected Rule

  • gazelle

Is this a regression?

No, I think this is as-built.

Description

If you set # gazelle:python_ignore_files foo.py in your root dir, all files named foo.py will be ignored.

I'm not sure if this is WAI or not, but either way it's unexpected/undocumented behavior.

Instead, the python_ignore_files should do one of the following:

  1. only act on the current Bazel package
  2. only act on non-wildcard paths relative to the Bazel package that the directive is defined in
  3. only act on glob expansions relative to the Bazel package that the directive is defined in

(1) is the behavior that I1 expected based on the limited documentation.

(2) is pretty nice because then you could put all of your ignores in a toplevel BUILD file, but it could mean a lot of duplication if you always want to ignore all "foo.py" that exist

(3) is the most complex to implement but also the most flexible. And even being "most complex", I don't imagine it's all that complicated.

🔬 Minimal Reproduction

  1. Make this directory structure:
.
├── bar
│   ├── baz.py
│   ├── BUILD
│   └── some_other.py
├── foo
│   ├── baz.py
│   └── BUILD
├── __init__.py
└── BUILD
  1. Set these directives:
# ./BUILD
# gazelle:ignore baz.py
  1. Run Gazelle

Expected Behavior

There is no ./baz.py file, so targets are generated for bar/baz.py, bar/some_other.py, and foo/baz.py in their respective BUILD files.

Actual Behavior

Only bar/some_other.py has a target generated.

🔥 Exception or Error

N/A

🌍 Your Environment

Operating System:

gLinux (Debian Bookworm-based)

Output of bazel version:

7.2.0

Rules_python version:

0.33.1

Anything else relevant?

Related to #2108.

Footnotes

  1. I can't say what other people expected, haha

@aignas aignas added help wanted gazelle Gazelle plugin related issues labels Sep 8, 2024
@groodt groodt changed the title Gazelle python_ignore_files directive incorrectly (?) ignores files with the same name in subpackages [gazelle] python_ignore_files directive incorrectly (?) ignores files with the same name in subpackages Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gazelle Gazelle plugin related issues help wanted
Projects
None yet
Development

No branches or pull requests

2 participants