Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add stub_shebang to py_runtime #11434

Closed
wants to merge 1 commit into from
Closed

Add stub_shebang to py_runtime #11434

wants to merge 1 commit into from

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
Contributor

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
katre pushed a commit to katre/bazel that referenced this pull request Jul 13, 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 bazelbuild#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 bazelbuild#11434.

PiperOrigin-RevId: 370622012
katre pushed a commit to katre/bazel that referenced this pull request Jul 13, 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 bazelbuild#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 bazelbuild#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