Open
Description
Right now there are constants named all_requirements
, all_whl_requirements
and all_data_requirements
that expose:
- all of the
py_library
targets. - all of the wheels from the hub repo (this are just filegroups).
- all of the
data
targets (these are just filegroups).
Proposal:
Introduce
:whl
and:data
targets for easy inclusion of all of the whls/packages. The name is up for improvement - should it be@pypi//:all_whl
,@pypi//:all_data
or something similar? Maybe plural would be better?:all_pkg
py_library
that includes all of the otherpy_library
targets viadeps
could be also a good thing to have.- Get rid of the
is_exposed
concept within thepip.parse
- all of the requirements will be present in theall_*requirements
constants no matter what target platforms they are available on. Forgazelle
one would have to use the new filegroup. - Introduce a constant with just the names of the distributions that the
pypi
repository has so that programatic traversal over all of the targets is still possible. Maybe it should be calleddistributions
something similar? - Once we have the new targets and constants, we could deprecate the old constants and remove them in
v2
.
Pros:
- The inclusion of wheels that are only available on certain platforms becomes easier and there is less logic in our repository rules.
- Maintaining targets is much easier than string constants in the long run.
Cons: - Users may need to introduce aspects or move their logic to build phase instead of using the constant for other use-cases than the
gazelle
manifest generation.
What are there other use-cases that we should be mindful of?
- @keith, I remember you had some extra static analysis built on top of
rules_python
, is it only using thepy_library
targets? Are you using any of theall_*requirements
constants? - @mark-thm, do you have anything using it?
- @alexeagle, do your clients have any custom logic here that is using the symbols?
Related: #260 stabilization requires the whole ticket or at least some of it.
Metadata
Metadata
Assignees
Labels
No labels