tree d3e972f341fcb2e9eb2779797defec89bbf99278
parent 33a3b01d7ecfcf27102e8cde1253dac987f4a958
author Richard Levasseur <rlevasseur@google.com> 1673986921 -0800
committer Copybara-Service <copybara-worker@google.com> 1673987025 -0800

python: Make Starlark implementation of Python rules build/pass most tests

This makes the Starlark implementation load without errors and pass almost all
of the Java unit tests for the Python rules.

* Expose `--python_path` flag via fragments to Starlark
* Remove load of Google-only toplevel_aliases to get CcInfo symbol
* Implement `imports` attribute completely/correctly; the semantics
  `get_imports()` function is only for processing the `imports` attribute
  itself, not all imports for a target. That is done by (the new) common
  function `collect_imports()`.
* Only return OutputGroupInfo once (the `output_groups` arg of
  `_create_providers()` would cause it to be returned twice.
* Make `PyCcLinkParamsProvider` usable: bind this global name to the actual
  Python rule implementation instead of the C++ no-op implementation.
* Move the Python-specific `PyWrapCcInfo` and `py_wrap_cc_helper_do_not_use`
  symbols out of the C++ rules and into the Python rules. This is necessary do
  avoid a circular dependency between the two rule sets after moving the
  `PyCcLinkParamsProvider` into the Python rules. These two symbols are still
  bound to no-ops in Bazel because they are unused in the Bazel parts of the
  Python rules.
* Fix an undefined variable usage in the Bazel `get_imports` function.
* Various Bazel-specific functions were slightly renamed to better distinguish
  them from their common counterparts.
* Pass missing `inherited_environment` arg in `py_binary`
* Make `py_binary`, `py_test`, and `py_library` macros load and call their
  respective rule implementations.
* Fix `_create_providers` returns doc.
* Implement `legacy_create_init` attribute
* Implement and fixes for `--build_python_zip`, boostrap-template-executables,
  and Windows launcher executables.
  * Fix computing the base executable name: `.basename` attribute, not `.name`
  * Create zip and supporting files next to the executable (use the `sibling`
    arg when declaring the artifacts)
  * Add the zip file to files to build outputs.
  * Fix undefined variable usage (`bootstrap_output`, not `bootstrap_template`)
  * Add stub intended for the zip to the zip action's inputs
* Add missing methods to Bazel binary semantics object. Note that a few
  features are still unimplemented (i.e. coverage).
* Fix `PLATFORMS_LOCATION` prefix (missing leading slash)
* Fix fragment name for getting `--python_path` flag.

Closes #17188. Work towards #15897.

PiperOrigin-RevId: 502656401
Change-Id: I2cbf103ca1159f8e78dacbe91fd24dd1c60e5dab
