commit | d95bfbded2466bb6ea796254f3f271a73505993b | [log] [tgz] |
---|---|---|
author | Ryan Beasley <beasleyr@vmware.com> | Fri May 01 12:16:34 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri May 01 12:17:54 2020 -0700 |
tree | 248be89f67585338a50be2561f1284e8ec646d1b | |
parent | 3862f87ac4fdf567525dc77d78b73c0c4f473647 [diff] |
Reintroduce support for Python 2.6 to python_stub_template Commit d5012a7ed19c1e75e413373fa22c5f1b08a9ee29 introduced a Python 2.7 dependency into python_stub_template.txt. Unfortunately this stub is non-hermetic, so even if the user has configured Python 2.7 and 3 `py_runtime`s, their builds may fail if the system-provided Python is ancient (ex: CentOS 6.6 provides Python 2.6.6). Accommodate ancient Python by reworking the path deduplication in terms of a `set` and a generator instead of `collections.OrderedDict`. Workaround for #11265. Testing Done: - `bazelisk test //src/test/shell/integration:python_stub_test` - In a CentOS 6.6 env: ```console $ /usr/bin/env python -V Python 2.6.6 $ cat >test.py <<EOF import sys print(sys.executable) EOF $ cat >BUILD <<EOF py_binary(name = "test", srcs = ["test.py"]) EOF $ bazel run :test /path/to/my/hermetic/python3 ``` Closes #11269. PiperOrigin-RevId: 309450777
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md