bazel-contrib / bazel-contrib/rules_python

Improve the `pip.parse` API to allow for incremental building of the configuration

Ouverte
#2,747 6 commentaires 2 réactions 1 personne assignée Réclamée par @aignas Voir sur GitHub
type: feature request type: pip
Langage dominant
Starlark
Étoiles
688
Forks
721
Merge moyen
15 h 7 min
PR mergées (30 j)
76

Description

Currently the API for defining different parameters by target platform is not ideal and we need to jump over hoops whilst trying to maintain it. The main difficulties are:
* We would like to specify different `pip.parse` attributes per target platform, but we cannot, because some of the parameters need to be labels, label lists or other.
* We cannot have overrides for these things easily and the definitions of what those target platforms are are hard-coded in the code.

The idea that I have is to reuse the same recipe from #2578, where we create a builder for the configuration and it allows us easily define:
* default constraint and flag values for the config settings that we create for different platform variants.
* default values for the pip index url, etc
* default values for which platforms we should support.
* default `auth` configuration for the `bazel_downloader`.
* The list of `python_versions` that are supported #1708.
* build the configuration incrementally for the `pip.parse` invocation allowing per-target-platform configuration of:
* `extra_pip_args`. #2745
* `requirements_lock`.
* `constraint_values` and `flag_values`. #2548

What is more the `override` API could be blended in more easily to provide better support for specifying different, patches, etc.

TODO:
- [ ] Design `defaults` and `configure` APIs and use that to set the defaults within `rules_python` for selecting the whls.
- [ ] Do the same for `index_url` setting, at some point `rules_python` could set the default `index_url` to default to the new code path.
- [ ] Transition the current `pip.parse` to use `pip.configure` under the hood.
- [ ] Ensure people can ignore specific `whl_platform_tags` for a particular platform (and maybe even a particular whl).

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.