Skip to content

Conversation

@ghost
Copy link

@ghost ghost commented May 18, 2020

Added a stub_shebang to py_runtime to allow users to specify a custom
"shebang" expression used by the Python stub script. Motivation is to
support environments where #!/usr/bin/env python isn't valid (ex:
no /usr/bin/python, but there's a /usr/bin/python3).

Closes #8685.

Guided tour

  • Added field to PyRuntimeInfoApi inc. default value.
  • Added field to PyRuntimeInfo provider inc. tests.
  • Added field to py_runtime Starlark rule inc tests.
  • Replaced static #!/usr/bin/env python in the stub w/ %shebang%.
  • There are a few redundancies w/r/t declaring defaults and documentation.
    This is because there are a few separate public APIs (ex:
    PyRuntimeInfo(...), py_runtime(...)), and I want to make sure defaults
    appear in the generated docs.

Testing Done:

  • bazelisk test src/test/java/com/google/devtools/build/lib/bazel/rules/python/...
    bazelisk test src/test/java/com/google/devtools/build/lib/rules/python/...

Added a `stub_shebang` to `py_runtime` to allow users to specify a custom
"shebang" expression used by the Python stub script.  Motivation is to
support environments where `#!/usr/bin/env python` isn't valid (ex:
no `/usr/bin/python`, but there's a `/usr/bin/python3`).

Closes #8685.

Guided tour
===========
- Added field to `PyRuntimeInfoApi` inc. default value.
- Added field to `PyRuntimeInfo` provider inc. tests.
- Added field to `py_runtime` Starlark rule inc tests.
- Replaced static `#!/usr/bin/env python` in the stub w/ `%shebang%`.
- There are a few redundancies w/r/t declaring defaults and documentation.
  This is because there are a few separate public APIs (ex:
  `PyRuntimeInfo(...)`, `py_runtime(...)`), and I want to make sure defaults
  appear in the generated docs.

Testing Done:
- `bazelisk test src/test/java/com/google/devtools/build/lib/bazel/rules/python/...`
  `bazelisk test src/test/java/com/google/devtools/build/lib/rules/python/...`
@ghost ghost requested a review from lberki as a code owner May 18, 2020 16:04
@aiuto aiuto requested a review from brandjon May 19, 2020 02:17
@aiuto aiuto added the team-Rules-Python Native rules for Python label May 19, 2020
@aiuto
Copy link

aiuto commented May 19, 2020

@brandjon Sorry to hand this to you, but you're the best person to route it if it's not yours to look at.

@lberki
Copy link
Contributor

lberki commented Apr 22, 2021

/cc @brandjon @comius

This looks pretty mergeable to me, although I haven't touched our Python rules since a good while. I'll send out an internal code review hoping that it is. If it's not, I'll just abandon it.

@brandjon
Copy link
Member

Reviewed, looks good to me. lberki will merge.

@bazel-io bazel-io closed this in 763dd0c Apr 27, 2021
katre pushed a commit that referenced this pull request Jul 12, 2021
Added a `stub_shebang` to `py_runtime` to allow users to specify a custom
"shebang" expression used by the Python stub script.  Motivation is to
support environments where `#!/usr/bin/env python` isn't valid (ex:
no `/usr/bin/python`, but there's a `/usr/bin/python3`).

Closes #8685.

### Guided tour
- Added field to `PyRuntimeInfoApi` inc. default value.
- Added field to `PyRuntimeInfo` provider inc. tests.
- Added field to `py_runtime` Starlark rule inc tests.
- Replaced static `#!/usr/bin/env python` in the stub w/ `%shebang%`.
- There are a few redundancies w/r/t declaring defaults and documentation.
  This is because there are a few separate public APIs (ex:
  `PyRuntimeInfo(...)`, `py_runtime(...)`), and I want to make sure defaults
  appear in the generated docs.

Testing Done:
- `bazelisk test src/test/java/com/google/devtools/build/lib/bazel/rules/python/...`
  `bazelisk test src/test/java/com/google/devtools/build/lib/rules/python/...`

Closes #11434.

PiperOrigin-RevId: 370622012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla: yes team-Rules-Python Native rules for Python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow customizing Python stub script's shebang in the Python toolchain

5 participants