Skip to content
  • David L. Jones's avatar
    [bazel/py] Omit google/__init__.py from the Protobuf runtime. (#7908) · 02955622
    David L. Jones authored
    Since `google` is a Python namespace package, the google/__init__.py
    file should be omitted to avoid collisions. For example, its presence
    may cause other Pip packages in the google namespace not to be found.
    
    This change narrows which __init__.py files are included in the
    `//:protobuf_runtime` target to include only those under
    `google/protobuf`. It also moves their canonical inclusion to the
    internal `//:python_srcs` rule, eliminating the dual specification in
    `python_protobuf.extra_srcs`.
    
    This is the difference in files, lexicographically ordered:
    
    ```
    $ bazel cquery 'labels(srcs, kind(py_library, deps(:protobuf_python)))' | sort > /tmp/deps-{before,after}.txt
    $ diff /tmp/deps-{before,after}.txt
    1,5d0
    < //:python/compatibility_tests/v2.5.0/tests/__init__.py (null)
    < //:python/compatibility_tests/v2.5.0/tests/google/__init__.py (null)
    < //:python/compatibility_tests/v2.5.0/tests/google/protobuf/__init__.py (null)
    <...
    02955622