rules_python icon indicating copy to clipboard operation
rules_python copied to clipboard

python_library_naming_convention Gazelle directive is ignored when python_generation_mode set to "file"

Open yechuan51 opened this issue 1 year ago • 3 comments

🐞 bug report

Affected Rule

rules_python

Is this a regression?

I tried earlier version of rules_python, but it appears that earlier version either don't support python_generation_mode=file or produce the same result.

Description

python_library_naming_convention appears to be ignored if python_generation_mode is set to "file" mode. When I set "python_library_naming_convention" to "$package_name$_lib" and "python_generation_mode" to "file", the generated python_library target is still "$package_name".

But once I remove "python_generation_mode" rule, the generated target shows up with the expected name(i.e. foo_lib).

🔬 Minimal Reproduction

I don't yet have the time to produce a minimal reproduction yet. But if needed, I can look into this.

It should be as simple as setting both directive and run Gazelle.

🔥 Exception or Error

python_library_naming_convention is ignored.

🌍 Your Environment

Operating System:

  
MacOS 14.1.2
  

Output of bazel version:

  
Build label: 7.0.0
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Mon Dec 11 17:00:42 2023 (1702314042)
Build timestamp: 1702314042
Build timestamp as int: 1702314042
  

Rules_python version:

  
0.27.1
  

Anything else relevant?

yechuan51 avatar Jan 08 '24 22:01 yechuan51

This is also true about py_binary_naming_convention.

aryamccarthy avatar Jan 11 '24 00:01 aryamccarthy

Since in file mode we don't want to name the targets by the package name (we would have clashes if for more than one py_library or py_binary, we would need to add a new token for defining the convention to mean the src file. I think this ticket is a feature request and I am wondering if such a convention is really needed given the discussion in #1664.

@yechuan51 and @aryamccarthy, what are your thoughts? Is it still needed?

aignas avatar Jan 16 '24 14:01 aignas

@aignas

Thank you for the reply.

The issue with py_binary is not currently affecting me, I'm only finding it very inconvinient with the py_library targets. In my previous job, we would have per-file py_library targets with a $package_name$_lib naming convention. So with my current work I'm running Gazelle, and then manually updating the library target names with the _lib suffix.

I personally think that it would be a very useful feature to have for the per-file genertaion mode. Thank you!

yechuan51 avatar Jan 16 '24 15:01 yechuan51

This issue has been automatically marked as stale because it has not had any activity for 180 days. It will be closed if no further activity occurs in 30 days. Collaborators can add an assignee to keep this open indefinitely. Thanks for your contributions to rules_python!

github-actions[bot] avatar Jul 14 '24 22:07 github-actions[bot]

This issue was automatically closed because it went 30 days without a reply since it was labeled "Can Close?"

github-actions[bot] avatar Aug 13 '24 22:08 github-actions[bot]