From 9df1d769705c957ccccf96fd34ebff10c5460aeb Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Wed, 20 Sep 2023 16:52:54 -0700 Subject: [PATCH] Prepare to reorganize upb file structure I am getting ready to move almost everything under the upb/ directory up one level to integrate upb better into its new location in the protobuf repo. This change makes a few tweaks to prepare for that: - Delete upb's LICENSE and CONTRIBUTING.md files since we already have similar files at the top level. - Rename `//python:python_version` so that it won't conflict later with `//upb/python:python_version`. - Move the contents of python/BUILD.bazel out to a Bazel macro to facilitate merging that BUILD.bazel file with upb/python/BUILD. PiperOrigin-RevId: 567119840 --- .github/workflows/test_python.yml | 8 +- python/BUILD.bazel | 471 +---------------- python/build_targets.bzl | 474 ++++++++++++++++++ ...thon_version.py => python_version_test.py} | 0 upb/CONTRIBUTING.md | 37 -- upb/LICENSE | 26 - upb/python/dist/BUILD.bazel | 16 +- 7 files changed, 491 insertions(+), 541 deletions(-) create mode 100644 python/build_targets.bzl rename python/{python_version.py => python_version_test.py} (100%) delete mode 100644 upb/CONTRIBUTING.md delete mode 100644 upb/LICENSE diff --git a/.github/workflows/test_python.yml b/.github/workflows/test_python.yml index 15ea473f8f..f1b94a5524 100644 --- a/.github/workflows/test_python.yml +++ b/.github/workflows/test_python.yml @@ -20,10 +20,10 @@ jobs: version: [ "3.7", "3.8", "3.9", "3.10" ] include: - type: Pure - targets: //python/... //upb/python/... //python:python_version + targets: //python/... //upb/python/... //python:python_version_test flags: --define=use_fast_cpp_protos=false - type: C++ - targets: //python/... //python:python_version + targets: //python/... //python:python_version_test flags: --define=use_fast_cpp_protos=true - type: C++ version: aarch64 @@ -57,9 +57,9 @@ jobs: version: [ "3.10" ] include: - type: Pure - targets: //python/... //upb/python/... //python:python_version + targets: //python/... //upb/python/... //python:python_version_test - type: C++ - targets: //python/... //python:python_version + targets: //python/... //python:python_version_test flags: --define=use_fast_cpp_protos=true name: MacOS ${{ matrix.type }} ${{ matrix.version }} diff --git a/python/BUILD.bazel b/python/BUILD.bazel index 45fedf13a5..b42d0b25d5 100644 --- a/python/BUILD.bazel +++ b/python/BUILD.bazel @@ -1,467 +1,6 @@ -# Protobuf Python runtime -# -# See also code generation logic under /src/google/protobuf/compiler/python. -# -# Most users should depend upon public aliases in the root: -# //:protobuf_python -# //:well_known_types_py_pb2 +load("//python:build_targets.bzl", "build_targets") -load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") -load("@rules_python//python:defs.bzl", "py_library") -load("//:protobuf.bzl", "internal_py_proto_library") -load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test") -load("//build_defs:cpp_opts.bzl", "COPTS") -load("//conformance:defs.bzl", "conformance_test") -load(":internal.bzl", "internal_copy_files", "internal_py_test") - -py_library( - name = "protobuf_python", - data = select({ - "//conditions:default": [], - ":use_fast_cpp_protos": [ - ":google/protobuf/internal/_api_implementation.so", - ":google/protobuf/pyext/_message.so", - ], - }), - visibility = ["//:__pkg__"], - deps = [ - ":python_srcs", - ":well_known_types_py_pb2", - ], -) - -config_setting( - name = "use_fast_cpp_protos", - values = { - "define": "use_fast_cpp_protos=true", - }, -) - -internal_py_proto_library( - name = "well_known_types_py_pb2", - srcs = [":copied_wkt_proto_files"], - include = ".", - default_runtime = "", - protoc = "//:protoc", - srcs_version = "PY2AND3", - visibility = [ - "//:__pkg__", - "//upb:__subpackages__", - ], -) - -internal_copy_files( - name = "copied_wkt_proto_files", - srcs = [ - "//:well_known_type_protos", - "//src/google/protobuf:descriptor_proto_srcs", - "//src/google/protobuf/compiler:plugin.proto", - ], - strip_prefix = "src", -) - -cc_binary( - name = "google/protobuf/internal/_api_implementation.so", - srcs = ["google/protobuf/internal/api_implementation.cc"], - copts = COPTS + [ - "-DPYTHON_PROTO2_CPP_IMPL_V2", - ], - linkshared = 1, - linkstatic = 1, - tags = [ - # Exclude this target from wildcard expansion (//...) because it may - # not even be buildable. It will be built if it is needed according - # to :use_fast_cpp_protos. - # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes - "manual", - ], - deps = select({ - "//conditions:default": [], - ":use_fast_cpp_protos": ["//external:python_headers"], - }), -) - -config_setting( - name = "allow_oversize_protos", - values = { - "define": "allow_oversize_protos=true", - }, -) - -cc_binary( - name = "google/protobuf/pyext/_message.so", - srcs = glob([ - "google/protobuf/pyext/*.cc", - "google/protobuf/pyext/*.h", - ]), - copts = COPTS + [ - "-DGOOGLE_PROTOBUF_HAS_ONEOF=1", - ] + select({ - "//conditions:default": [], - ":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"], - }), - includes = ["."], - linkshared = 1, - linkstatic = 1, - tags = [ - # Exclude this target from wildcard expansion (//...) because it may - # not even be buildable. It will be built if it is needed according - # to :use_fast_cpp_protos. - # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes - "manual", - ], - deps = [ - ":proto_api", - "//:protobuf", - "//src/google/protobuf:descriptor_legacy", - ] + select({ - "//conditions:default": [], - ":use_fast_cpp_protos": ["//external:python_headers"], - }), -) - -aarch64_test( - name = "aarch64_test", - bazel_binaries = [ - "google/protobuf/internal/_api_implementation.so", - "google/protobuf/pyext/_message.so", - ], -) - -x86_64_test( - name = "x86_64_test", - bazel_binaries = [ - "google/protobuf/internal/_api_implementation.so", - "google/protobuf/pyext/_message.so", - ], -) - -py_library( - name = "python_srcs", - srcs = glob( - [ - "google/protobuf/**/*.py", - ], - exclude = [ - "google/protobuf/internal/*_test.py", - "google/protobuf/internal/test_util.py", - "google/protobuf/internal/import_test_package/__init__.py", - ], - ), - imports = ["python"], - srcs_version = "PY2AND3", - visibility = [ - "//:__pkg__", - "//upb:__subpackages__", - ], -) - -py_library( - name = "python_test_srcs", - srcs = glob([ - "google/protobuf/internal/*_test.py", - ]) + [ - "google/protobuf/internal/import_test_package/__init__.py", - "google/protobuf/internal/test_util.py", - "//python/google/protobuf/internal/numpy:__init__.py", - "//python/google/protobuf/internal/numpy:numpy_test.py", - ], - imports = ["python"], - srcs_version = "PY3", - visibility = [ - "//:__pkg__", - "//upb:__subpackages__", - ], -) - -################################################################################ -# Tests -################################################################################ - -internal_copy_files( - name = "copied_test_proto_files", - testonly = 1, - srcs = [ - "//:test_proto_srcs", - "//src/google/protobuf/util:test_proto_srcs", - ], - strip_prefix = "src", -) - -internal_copy_files( - name = "copied_test_messages_proto2_files", - testonly = 1, - srcs = [ - "//src/google/protobuf:test_messages_proto2.proto", - ], - strip_prefix = "src", -) - -internal_copy_files( - name = "copied_test_messages_proto3_files", - testonly = 1, - srcs = [ - "//src/google/protobuf:test_messages_proto3.proto", - ], - strip_prefix = "src", -) - -internal_py_proto_library( - name = "python_common_test_protos", - testonly = 1, - srcs = [":copied_test_proto_files"], - include = ".", - default_runtime = "", - protoc = "//:protoc", - srcs_version = "PY2AND3", - visibility = ["//:__pkg__"], - deps = [":well_known_types_py_pb2"], -) - -internal_py_proto_library( - name = "python_specific_test_protos", - testonly = 1, - srcs = glob([ - "google/protobuf/internal/*.proto", - "google/protobuf/internal/import_test_package/*.proto", - ]), - include = ".", - default_runtime = ":protobuf_python", - protoc = "//:protoc", - srcs_version = "PY2AND3", - visibility = ["//:__pkg__"], - deps = [":python_common_test_protos"], -) - -internal_py_proto_library( - name = "test_messages_proto2_py_proto", - testonly = 1, - srcs = [":copied_test_messages_proto2_files"], - include = ".", - default_runtime = "//:protobuf_python", - protoc = "//:protoc", - visibility = [ - "//conformance:__pkg__", - "//python:__subpackages__", - ], -) - -internal_py_proto_library( - name = "test_messages_proto3_py_proto", - testonly = 1, - srcs = [":copied_test_messages_proto3_files"], - include = ".", - default_runtime = "//:protobuf_python", - protoc = "//:protoc", - visibility = [ - "//conformance:__pkg__", - "//python:__subpackages__", - ], - deps = [":well_known_types_py_pb2"], -) - -py_library( - name = "python_test_lib", - testonly = 1, - srcs = [ - "google/protobuf/internal/import_test_package/__init__.py", - "google/protobuf/internal/test_util.py", - ], - imports = ["python"], - srcs_version = "PY2AND3", - visibility = ["//python:__subpackages__"], - deps = [ - ":protobuf_python", - ":python_common_test_protos", - ":python_specific_test_protos", - ], -) - -internal_py_test( - name = "descriptor_database_test", - srcs = ["google/protobuf/internal/descriptor_database_test.py"], -) - -internal_py_test( - name = "descriptor_pool_test", - srcs = ["google/protobuf/internal/descriptor_pool_test.py"], -) - -internal_py_test( - name = "descriptor_test", - srcs = ["google/protobuf/internal/descriptor_test.py"], -) - -internal_py_test( - name = "field_mask_test", - srcs = ["google/protobuf/internal/field_mask_test.py"], -) - -internal_py_test( - name = "generator_test", - srcs = ["google/protobuf/internal/generator_test.py"], -) - -internal_py_test( - name = "import_test", - srcs = ["google/protobuf/internal/import_test.py"], -) - -internal_py_test( - name = "json_format_test", - srcs = ["google/protobuf/internal/json_format_test.py"], -) - -internal_py_test( - name = "keywords_test", - srcs = ["google/protobuf/internal/keywords_test.py"], -) - -internal_py_test( - name = "message_factory_test", - srcs = ["google/protobuf/internal/message_factory_test.py"], -) - -internal_py_test( - name = "message_test", - srcs = ["google/protobuf/internal/message_test.py"], - data = ["//src/google/protobuf:testdata"], -) - -internal_py_test( - name = "proto_builder_test", - srcs = ["google/protobuf/internal/proto_builder_test.py"], -) - -internal_py_test( - name = "reflection_test", - srcs = ["google/protobuf/internal/reflection_test.py"], -) - -internal_py_test( - name = "service_reflection_test", - srcs = ["google/protobuf/internal/service_reflection_test.py"], -) - -internal_py_test( - name = "symbol_database_test", - srcs = ["google/protobuf/internal/symbol_database_test.py"], -) - -internal_py_test( - name = "text_encoding_test", - srcs = ["google/protobuf/internal/text_encoding_test.py"], -) - -internal_py_test( - name = "text_format_test", - srcs = ["google/protobuf/internal/text_format_test.py"], - data = ["//src/google/protobuf:testdata"], -) - -internal_py_test( - name = "unknown_fields_test", - srcs = ["google/protobuf/internal/unknown_fields_test.py"], -) - -internal_py_test( - name = "well_known_types_test", - srcs = ["google/protobuf/internal/well_known_types_test.py"], -) - -internal_py_test( - name = "wire_format_test", - srcs = ["google/protobuf/internal/wire_format_test.py"], -) - -cc_library( - name = "proto_api", - hdrs = ["google/protobuf/proto_api.h"], - visibility = ["//visibility:public"], - deps = [ - "//external:python_headers", - ], -) - -internal_py_test( - name = "python_version", - srcs = ["python_version.py"], -) - -conformance_test( - name = "conformance_test", - env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "python"}, - failure_list = "//conformance:failure_list_python.txt", - target_compatible_with = select({ - "@system_python//:none": ["@platforms//:incompatible"], - ":use_fast_cpp_protos": ["@platforms//:incompatible"], - "//conditions:default": [], - }), - testee = "//conformance:conformance_python", - text_format_failure_list = "//conformance:text_format_failure_list_python.txt", -) - -# Note: this requires --define=use_fast_cpp_protos=true -conformance_test( - name = "conformance_test_cpp", - env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "cpp"}, - failure_list = "//conformance:failure_list_python.txt", - target_compatible_with = select({ - "@system_python//:none": ["@platforms//:incompatible"], - ":use_fast_cpp_protos": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - testee = "//conformance:conformance_python", - text_format_failure_list = "//conformance:text_format_failure_list_python_cpp.txt", -) - -################################################################################ -# Distribution files -################################################################################ - -pkg_files( - name = "python_source_files", - srcs = glob( - [ - "google/protobuf/**/*.py", - ], - exclude = [ - "google/protobuf/internal/*_test.py", - "google/protobuf/internal/test_util.py", - "google/protobuf/internal/import_test_package/__init__.py", - ], - ) + [ - "README.md", - "google/__init__.py", - "setup.cfg", - "tox.ini", - ], - strip_prefix = "", - visibility = ["//upb:__subpackages__"], -) - -pkg_files( - name = "dist_files", - srcs = glob([ - "google/**/*.proto", - "google/**/*.py", - "google/protobuf/internal/*.cc", - "google/protobuf/pyext/*.cc", - "google/protobuf/pyext/*.h", - ]) + [ - "BUILD.bazel", - "MANIFEST.in", - "README.md", - "google/protobuf/proto_api.h", - "google/protobuf/pyext/README", - "google/protobuf/python_protobuf.h", - "internal.bzl", - "python_version.py", - "release.sh", - "setup.cfg", - "setup.py", - "tox.ini", - ], - strip_prefix = strip_prefix.from_root(""), - visibility = ["//pkg:__pkg__"], -) +# The build targets for this package have been temporarily moved into a Bazel +# macro to facilitate merging upb's Python support into this directory. Once +# that merge is complete, we will move the build targets back here. +build_targets(name = "python") diff --git a/python/build_targets.bzl b/python/build_targets.bzl new file mode 100644 index 0000000000..546ef0129f --- /dev/null +++ b/python/build_targets.bzl @@ -0,0 +1,474 @@ +# Protobuf Python runtime +# +# See also code generation logic under /src/google/protobuf/compiler/python. +# +# Most users should depend upon public aliases in the root: +# //:protobuf_python +# //:well_known_types_py_pb2 + +load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") +load("@rules_python//python:defs.bzl", "py_library") +load("//:protobuf.bzl", "internal_py_proto_library") +load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test") +load("//build_defs:cpp_opts.bzl", "COPTS") +load("//conformance:defs.bzl", "conformance_test") +load(":internal.bzl", "internal_copy_files", "internal_py_test") + +def build_targets(name): + """ + Declares the build targets of the //python package. + + Args: + name: unused. + """ + py_library( + name = "protobuf_python", + data = select({ + "//conditions:default": [], + ":use_fast_cpp_protos": [ + ":google/protobuf/internal/_api_implementation.so", + ":google/protobuf/pyext/_message.so", + ], + }), + visibility = ["//:__pkg__"], + deps = [ + ":python_srcs", + ":well_known_types_py_pb2", + ], + ) + + native.config_setting( + name = "use_fast_cpp_protos", + values = { + "define": "use_fast_cpp_protos=true", + }, + ) + + internal_py_proto_library( + name = "well_known_types_py_pb2", + srcs = [":copied_wkt_proto_files"], + include = ".", + default_runtime = "", + protoc = "//:protoc", + srcs_version = "PY2AND3", + visibility = [ + "//:__pkg__", + "//upb:__subpackages__", + ], + ) + + internal_copy_files( + name = "copied_wkt_proto_files", + srcs = [ + "//:well_known_type_protos", + "//src/google/protobuf:descriptor_proto_srcs", + "//src/google/protobuf/compiler:plugin.proto", + ], + strip_prefix = "src", + ) + + native.cc_binary( + name = "google/protobuf/internal/_api_implementation.so", + srcs = ["google/protobuf/internal/api_implementation.cc"], + copts = COPTS + [ + "-DPYTHON_PROTO2_CPP_IMPL_V2", + ], + linkshared = 1, + linkstatic = 1, + tags = [ + # Exclude this target from wildcard expansion (//...) because it may + # not even be buildable. It will be built if it is needed according + # to :use_fast_cpp_protos. + # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes + "manual", + ], + deps = select({ + "//conditions:default": [], + ":use_fast_cpp_protos": ["//external:python_headers"], + }), + ) + + native.config_setting( + name = "allow_oversize_protos", + values = { + "define": "allow_oversize_protos=true", + }, + ) + + native.cc_binary( + name = "google/protobuf/pyext/_message.so", + srcs = native.glob([ + "google/protobuf/pyext/*.cc", + "google/protobuf/pyext/*.h", + ]), + copts = COPTS + [ + "-DGOOGLE_PROTOBUF_HAS_ONEOF=1", + ] + select({ + "//conditions:default": [], + ":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"], + }), + includes = ["."], + linkshared = 1, + linkstatic = 1, + tags = [ + # Exclude this target from wildcard expansion (//...) because it may + # not even be buildable. It will be built if it is needed according + # to :use_fast_cpp_protos. + # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes + "manual", + ], + deps = [ + ":proto_api", + "//:protobuf", + "//src/google/protobuf:descriptor_legacy", + ] + select({ + "//conditions:default": [], + ":use_fast_cpp_protos": ["//external:python_headers"], + }), + ) + + aarch64_test( + name = "aarch64_test", + bazel_binaries = [ + "google/protobuf/internal/_api_implementation.so", + "google/protobuf/pyext/_message.so", + ], + ) + + x86_64_test( + name = "x86_64_test", + bazel_binaries = [ + "google/protobuf/internal/_api_implementation.so", + "google/protobuf/pyext/_message.so", + ], + ) + + py_library( + name = "python_srcs", + srcs = native.glob( + [ + "google/protobuf/**/*.py", + ], + exclude = [ + "google/protobuf/internal/*_test.py", + "google/protobuf/internal/test_util.py", + "google/protobuf/internal/import_test_package/__init__.py", + ], + ), + imports = ["python"], + srcs_version = "PY2AND3", + visibility = [ + "//:__pkg__", + "//upb:__subpackages__", + ], + ) + + py_library( + name = "python_test_srcs", + srcs = native.glob([ + "google/protobuf/internal/*_test.py", + ]) + [ + "google/protobuf/internal/import_test_package/__init__.py", + "google/protobuf/internal/test_util.py", + "//python/google/protobuf/internal/numpy:__init__.py", + "//python/google/protobuf/internal/numpy:numpy_test.py", + ], + imports = ["python"], + srcs_version = "PY3", + visibility = [ + "//:__pkg__", + "//upb:__subpackages__", + ], + ) + + ################################################################################ + # Tests + ################################################################################ + + internal_copy_files( + name = "copied_test_proto_files", + testonly = 1, + srcs = [ + "//:test_proto_srcs", + "//src/google/protobuf/util:test_proto_srcs", + ], + strip_prefix = "src", + ) + + internal_copy_files( + name = "copied_test_messages_proto2_files", + testonly = 1, + srcs = [ + "//src/google/protobuf:test_messages_proto2.proto", + ], + strip_prefix = "src", + ) + + internal_copy_files( + name = "copied_test_messages_proto3_files", + testonly = 1, + srcs = [ + "//src/google/protobuf:test_messages_proto3.proto", + ], + strip_prefix = "src", + ) + + internal_py_proto_library( + name = "python_common_test_protos", + testonly = 1, + srcs = [":copied_test_proto_files"], + include = ".", + default_runtime = "", + protoc = "//:protoc", + srcs_version = "PY2AND3", + visibility = ["//:__pkg__"], + deps = [":well_known_types_py_pb2"], + ) + + internal_py_proto_library( + name = "python_specific_test_protos", + testonly = 1, + srcs = native.glob([ + "google/protobuf/internal/*.proto", + "google/protobuf/internal/import_test_package/*.proto", + ]), + include = ".", + default_runtime = ":protobuf_python", + protoc = "//:protoc", + srcs_version = "PY2AND3", + visibility = ["//:__pkg__"], + deps = [":python_common_test_protos"], + ) + + internal_py_proto_library( + name = "test_messages_proto2_py_proto", + testonly = 1, + srcs = [":copied_test_messages_proto2_files"], + include = ".", + default_runtime = "//:protobuf_python", + protoc = "//:protoc", + visibility = [ + "//conformance:__pkg__", + "//python:__subpackages__", + ], + ) + + internal_py_proto_library( + name = "test_messages_proto3_py_proto", + testonly = 1, + srcs = [":copied_test_messages_proto3_files"], + include = ".", + default_runtime = "//:protobuf_python", + protoc = "//:protoc", + visibility = [ + "//conformance:__pkg__", + "//python:__subpackages__", + ], + deps = [":well_known_types_py_pb2"], + ) + + py_library( + name = "python_test_lib", + testonly = 1, + srcs = [ + "google/protobuf/internal/import_test_package/__init__.py", + "google/protobuf/internal/test_util.py", + ], + imports = ["python"], + srcs_version = "PY2AND3", + visibility = ["//python:__subpackages__"], + deps = [ + ":protobuf_python", + ":python_common_test_protos", + ":python_specific_test_protos", + ], + ) + + internal_py_test( + name = "descriptor_database_test", + srcs = ["google/protobuf/internal/descriptor_database_test.py"], + ) + + internal_py_test( + name = "descriptor_pool_test", + srcs = ["google/protobuf/internal/descriptor_pool_test.py"], + ) + + internal_py_test( + name = "descriptor_test", + srcs = ["google/protobuf/internal/descriptor_test.py"], + ) + + internal_py_test( + name = "field_mask_test", + srcs = ["google/protobuf/internal/field_mask_test.py"], + ) + + internal_py_test( + name = "generator_test", + srcs = ["google/protobuf/internal/generator_test.py"], + ) + + internal_py_test( + name = "import_test", + srcs = ["google/protobuf/internal/import_test.py"], + ) + + internal_py_test( + name = "json_format_test", + srcs = ["google/protobuf/internal/json_format_test.py"], + ) + + internal_py_test( + name = "keywords_test", + srcs = ["google/protobuf/internal/keywords_test.py"], + ) + + internal_py_test( + name = "message_factory_test", + srcs = ["google/protobuf/internal/message_factory_test.py"], + ) + + internal_py_test( + name = "message_test", + srcs = ["google/protobuf/internal/message_test.py"], + data = ["//src/google/protobuf:testdata"], + ) + + internal_py_test( + name = "proto_builder_test", + srcs = ["google/protobuf/internal/proto_builder_test.py"], + ) + + internal_py_test( + name = "reflection_test", + srcs = ["google/protobuf/internal/reflection_test.py"], + ) + + internal_py_test( + name = "service_reflection_test", + srcs = ["google/protobuf/internal/service_reflection_test.py"], + ) + + internal_py_test( + name = "symbol_database_test", + srcs = ["google/protobuf/internal/symbol_database_test.py"], + ) + + internal_py_test( + name = "text_encoding_test", + srcs = ["google/protobuf/internal/text_encoding_test.py"], + ) + + internal_py_test( + name = "text_format_test", + srcs = ["google/protobuf/internal/text_format_test.py"], + data = ["//src/google/protobuf:testdata"], + ) + + internal_py_test( + name = "unknown_fields_test", + srcs = ["google/protobuf/internal/unknown_fields_test.py"], + ) + + internal_py_test( + name = "well_known_types_test", + srcs = ["google/protobuf/internal/well_known_types_test.py"], + ) + + internal_py_test( + name = "wire_format_test", + srcs = ["google/protobuf/internal/wire_format_test.py"], + ) + + native.cc_library( + name = "proto_api", + hdrs = ["google/protobuf/proto_api.h"], + visibility = ["//visibility:public"], + deps = [ + "//external:python_headers", + ], + ) + + internal_py_test( + name = "python_version_test", + srcs = ["python_version_test.py"], + ) + + conformance_test( + name = "conformance_test", + env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "python"}, + failure_list = "//conformance:failure_list_python.txt", + target_compatible_with = select({ + "@system_python//:none": ["@platforms//:incompatible"], + ":use_fast_cpp_protos": ["@platforms//:incompatible"], + "//conditions:default": [], + }), + testee = "//conformance:conformance_python", + text_format_failure_list = "//conformance:text_format_failure_list_python.txt", + ) + + # Note: this requires --define=use_fast_cpp_protos=true + conformance_test( + name = "conformance_test_cpp", + env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "cpp"}, + failure_list = "//conformance:failure_list_python.txt", + target_compatible_with = select({ + "@system_python//:none": ["@platforms//:incompatible"], + ":use_fast_cpp_protos": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + testee = "//conformance:conformance_python", + text_format_failure_list = "//conformance:text_format_failure_list_python_cpp.txt", + ) + + ################################################################################ + # Distribution files + ################################################################################ + + pkg_files( + name = "python_source_files", + srcs = native.glob( + [ + "google/protobuf/**/*.py", + ], + exclude = [ + "google/protobuf/internal/*_test.py", + "google/protobuf/internal/test_util.py", + "google/protobuf/internal/import_test_package/__init__.py", + ], + ) + [ + "README.md", + "google/__init__.py", + "setup.cfg", + "tox.ini", + ], + strip_prefix = "", + visibility = ["//upb:__subpackages__"], + ) + + pkg_files( + name = "dist_files", + srcs = native.glob([ + "google/**/*.proto", + "google/**/*.py", + "google/protobuf/internal/*.cc", + "google/protobuf/pyext/*.cc", + "google/protobuf/pyext/*.h", + ]) + [ + "BUILD.bazel", + "MANIFEST.in", + "README.md", + "google/protobuf/proto_api.h", + "google/protobuf/pyext/README", + "google/protobuf/python_protobuf.h", + "internal.bzl", + "python_version_test.py", + "release.sh", + "setup.cfg", + "setup.py", + "tox.ini", + ], + strip_prefix = strip_prefix.from_root(""), + visibility = ["//pkg:__pkg__"], + ) diff --git a/python/python_version.py b/python/python_version_test.py similarity index 100% rename from python/python_version.py rename to python/python_version_test.py diff --git a/upb/CONTRIBUTING.md b/upb/CONTRIBUTING.md deleted file mode 100644 index df48bf6325..0000000000 --- a/upb/CONTRIBUTING.md +++ /dev/null @@ -1,37 +0,0 @@ - -# How to Contribute - -We'd love to accept your patches and contributions to this project. There are -just a few small guidelines you need to follow. - -## Get in touch - -If your idea will take you more than, say, 30 minutes to -implement, please get in touch first via the issue tracker -to touch base about your plan. That will give an -opportunity for early feedback and help avoid wasting your -time. - -## Contributor License Agreement - -Contributions to this project must be accompanied by a Contributor License -Agreement. You (or your employer) retain the copyright to your contribution; -this simply gives us permission to use and redistribute your contributions as -part of the project. Head over to to see -your current agreements on file or to sign a new one. - -You generally only need to submit a CLA once, so if you've already submitted one -(even if it was for a different project), you probably don't need to do it -again. - -## Code Reviews - -All submissions, including submissions by project members, require review. We -use GitHub pull requests for this purpose. Consult -[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more -information on using pull requests. - -## Community Guidelines - -This project follows [Google's Open Source Community -Guidelines](https://opensource.google/conduct/). diff --git a/upb/LICENSE b/upb/LICENSE deleted file mode 100644 index 7f3bd16837..0000000000 --- a/upb/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ - -Copyright (c) 2009-2021, Google LLC -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Google LLC nor the names of any other - contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL GOOGLE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/upb/python/dist/BUILD.bazel b/upb/python/dist/BUILD.bazel index e91062beb6..978c6ebac6 100644 --- a/upb/python/dist/BUILD.bazel +++ b/upb/python/dist/BUILD.bazel @@ -5,14 +5,14 @@ # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd -load("//upb/bazel:py_proto_library.bzl", "py_proto_library") -load(":dist.bzl", "py_dist", "py_dist_module") -load("@bazel_skylib//lib:selects.bzl", "selects") -load("//:protobuf_version.bzl", "PROTOBUF_PYTHON_VERSION") load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_pkg//:pkg.bzl", "pkg_tar") load("@rules_python//python:packaging.bzl", "py_wheel") load("@system_python//:version.bzl", "SYSTEM_PYTHON_VERSION") +load("//:protobuf_version.bzl", "PROTOBUF_PYTHON_VERSION") +load("@bazel_skylib//lib:selects.bzl", "selects") +load("//upb/bazel:py_proto_library.bzl", "py_proto_library") +load(":dist.bzl", "py_dist", "py_dist_module") licenses(["notice"]) @@ -233,7 +233,7 @@ pkg_files( pkg_files( name = "filegroup_source_files", srcs = [ - "//upb:LICENSE", + "//:LICENSE", "//upb:source_files", "//upb/python:message_srcs", "//upb/upb/base:source_files", @@ -312,7 +312,7 @@ py_wheel( ], distribution = "protobuf", extra_distinfo_files = { - "//upb:LICENSE": "LICENSE", + "//:LICENSE": "LICENSE", }, homepage = "https://developers.google.com/protocol-buffers/", license = "3-Clause BSD License", @@ -368,7 +368,7 @@ py_wheel( ], distribution = "protobuf", extra_distinfo_files = { - "//upb:LICENSE": "LICENSE", + "//:LICENSE": "LICENSE", }, homepage = "https://developers.google.com/protocol-buffers/", license = "3-Clause BSD License", @@ -397,7 +397,7 @@ py_wheel( abi = "none", distribution = "protobuftests", extra_distinfo_files = { - "//upb:LICENSE": "LICENSE", + "//:LICENSE": "LICENSE", }, platform = "any", python_tag = "py3",