From ea81024ddf764cba2b39c3581cefe294f9a41391 Mon Sep 17 00:00:00 2001 From: Mike Kruskal Date: Tue, 16 Apr 2024 11:11:03 -0700 Subject: [PATCH] Refactor editions infrastructure to a top-level directory. The only public target here is the edition defaults helper macro, which can be used by external runtimes and plugins. None of this code is C++-specific though, and should be organized higher up. Appropriate aliases are also placed at the top level for public targets PiperOrigin-RevId: 625392504 --- BUILD.bazel | 18 ++++++---- cmake/conformance.cmake | 34 ++++++++++++------- conformance/BUILD.bazel | 29 +++++++++------- conformance/binary_json_conformance_suite.cc | 4 +-- conformance/conformance_cpp.cc | 4 +-- conformance/conformance_objc.m | 4 +-- conformance/conformance_python.py | 4 +-- conformance/conformance_ruby.rb | 4 +-- conformance/text_format_conformance_suite.cc | 4 +-- csharp/generate_protos.sh | 4 +-- .../protobuf/editions => editions}/BUILD | 32 +++++++++-------- .../editions => editions}/codegen_tests/BUILD | 22 +----------- .../codegen_tests/proto2_enum.proto | 0 .../codegen_tests/proto2_group.proto | 0 .../codegen_tests/proto2_import.proto | 0 .../proto2_inline_comments.proto | 0 .../proto2_multiline_comments.proto | 0 .../codegen_tests/proto2_optional.proto | 0 .../codegen_tests/proto2_packed.proto | 0 .../codegen_tests/proto2_proto3_enum.proto | 0 .../codegen_tests/proto2_required.proto | 0 .../codegen_tests/proto2_unpacked.proto | 0 .../codegen_tests/proto2_utf8_disabled.proto | 0 .../codegen_tests/proto2_utf8_lite.proto | 0 .../codegen_tests/proto2_utf8_verify.proto | 0 .../codegen_tests/proto3_enum.proto | 0 .../codegen_tests/proto3_implicit.proto | 0 .../codegen_tests/proto3_import.proto | 0 .../codegen_tests/proto3_optional.proto | 0 .../codegen_tests/proto3_packed.proto | 0 .../codegen_tests/proto3_unpacked.proto | 0 .../codegen_tests/proto3_utf8_strict.proto | 0 .../rust_bazel_crate_mapping.txt | 0 .../editions => editions}/defaults.bzl | 2 +- .../editions => editions}/defaults_test.cc | 6 ++-- .../defaults_test_embedded.h.template | 0 .../defaults_test_embedded_base64.h.template | 0 .../generated_files_test.cc | 6 ++-- .../generated_reflection_test.cc | 2 +- .../golden/compare_cpp_codegen_failure.txt | 0 .../golden/compare_cpp_codegen_failure.xml | 0 .../golden/compare_cpp_codegen_multiple.txt | 0 .../golden/compare_cpp_codegen_multiple.xml | 0 .../golden/compare_cpp_codegen_success.txt | 0 .../golden/compare_cpp_codegen_success.xml | 0 .../golden/editions_transform_proto2.proto | 0 .../editions_transform_proto2_lite.proto | 0 ...tions_transform_proto2_utf8_disabled.proto | 0 .../golden/editions_transform_proto3.proto | 0 ...tions_transform_proto3_utf8_disabled.proto | 0 .../golden/simple_proto2.proto | 0 .../golden/simple_proto2_import.proto | 0 .../golden/simple_proto3.proto | 0 .../test_messages_proto2_editions.proto | 0 .../test_messages_proto3_editions.proto | 0 .../internal_defaults_escape.cc | 0 .../proto/editions_transform_proto2.proto | 0 .../editions_transform_proto2_lite.proto | 0 ...tions_transform_proto2_utf8_disabled.proto | 0 .../proto/editions_transform_proto3.proto | 0 ...tions_transform_proto3_utf8_disabled.proto | 0 .../test_editions_default_features.proto | 0 java/core/BUILD.bazel | 17 +++++----- java/kotlin-lite/BUILD.bazel | 4 +-- java/kotlin/BUILD.bazel | 4 +-- java/lite/BUILD.bazel | 2 +- python/build_targets.bzl | 5 ++- ruby/BUILD.bazel | 21 ++++++++++-- src/BUILD.bazel | 5 +++ src/google/protobuf/BUILD.bazel | 5 +-- upb/conformance/BUILD | 8 ++--- upb/conformance/conformance_upb.c | 8 ++--- upb/reflection/BUILD | 2 +- 73 files changed, 142 insertions(+), 118 deletions(-) rename {src/google/protobuf/editions => editions}/BUILD (91%) rename {src/google/protobuf/editions => editions}/codegen_tests/BUILD (76%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_enum.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_group.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_import.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_inline_comments.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_multiline_comments.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_optional.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_packed.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_proto3_enum.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_required.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_unpacked.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_utf8_disabled.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_utf8_lite.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto2_utf8_verify.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_enum.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_implicit.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_import.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_optional.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_packed.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_unpacked.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/proto3_utf8_strict.proto (100%) rename {src/google/protobuf/editions => editions}/codegen_tests/rust_bazel_crate_mapping.txt (100%) rename {src/google/protobuf/editions => editions}/defaults.bzl (98%) rename {src/google/protobuf/editions => editions}/defaults_test.cc (97%) rename {src/google/protobuf/editions => editions}/defaults_test_embedded.h.template (100%) rename {src/google/protobuf/editions => editions}/defaults_test_embedded_base64.h.template (100%) rename {src/google/protobuf/editions => editions}/generated_files_test.cc (95%) rename {src/google/protobuf/editions => editions}/generated_reflection_test.cc (92%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_failure.txt (100%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_failure.xml (100%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_multiple.txt (100%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_multiple.xml (100%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_success.txt (100%) rename {src/google/protobuf/editions => editions}/golden/compare_cpp_codegen_success.xml (100%) rename {src/google/protobuf/editions => editions}/golden/editions_transform_proto2.proto (100%) rename {src/google/protobuf/editions => editions}/golden/editions_transform_proto2_lite.proto (100%) rename {src/google/protobuf/editions => editions}/golden/editions_transform_proto2_utf8_disabled.proto (100%) rename {src/google/protobuf/editions => editions}/golden/editions_transform_proto3.proto (100%) rename {src/google/protobuf/editions => editions}/golden/editions_transform_proto3_utf8_disabled.proto (100%) rename {src/google/protobuf/editions => editions}/golden/simple_proto2.proto (100%) rename {src/google/protobuf/editions => editions}/golden/simple_proto2_import.proto (100%) rename {src/google/protobuf/editions => editions}/golden/simple_proto3.proto (100%) rename {src/google/protobuf/editions => editions}/golden/test_messages_proto2_editions.proto (100%) rename {src/google/protobuf/editions => editions}/golden/test_messages_proto3_editions.proto (100%) rename {src/google/protobuf/editions => editions}/internal_defaults_escape.cc (100%) rename {src/google/protobuf/editions => editions}/proto/editions_transform_proto2.proto (100%) rename {src/google/protobuf/editions => editions}/proto/editions_transform_proto2_lite.proto (100%) rename {src/google/protobuf/editions => editions}/proto/editions_transform_proto2_utf8_disabled.proto (100%) rename {src/google/protobuf/editions => editions}/proto/editions_transform_proto3.proto (100%) rename {src/google/protobuf/editions => editions}/proto/editions_transform_proto3_utf8_disabled.proto (100%) rename {src/google/protobuf/editions => editions}/proto/test_editions_default_features.proto (100%) diff --git a/BUILD.bazel b/BUILD.bazel index 74ae23a772..d9e2c4476a 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -168,12 +168,6 @@ alias( # Built-in runtime protos: these are part of protobuf's internal # implementation, but are not Well-Known Types. -alias( - name = "cpp_features_proto", - actual = "//src/google/protobuf:cpp_features_proto", # proto_library - visibility = ["//visibility:public"], -) - alias( name = "descriptor_proto", actual = "//src/google/protobuf:descriptor_proto", # proto_library @@ -334,6 +328,12 @@ alias( visibility = ["//visibility:public"], ) +alias( + name = "cpp_features_proto", + actual = "//src/google/protobuf:cpp_features_proto", # proto_library + visibility = ["//visibility:public"], +) + ################################################################################ # Java support ################################################################################ @@ -368,6 +368,12 @@ alias( visibility = ["//visibility:public"], ) +alias( + name = "java_features_proto", + actual = "//java/core:java_features_proto", # proto_library + visibility = ["//visibility:public"], +) + ################################################################################ # Python support ################################################################################ diff --git a/cmake/conformance.cmake b/cmake/conformance.cmake index d7badc8302..c5d8c7c623 100644 --- a/cmake/conformance.cmake +++ b/cmake/conformance.cmake @@ -30,6 +30,24 @@ add_custom_command( --cpp_out=${protobuf_BINARY_DIR} ) + +add_custom_command( + OUTPUT + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto3_editions.pb.h + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto3_editions.pb.cc + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto2_editions.pb.h + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto2_editions.pb.cc + DEPENDS ${protobuf_PROTOC_EXE} + ${protobuf_SOURCE_DIR}/editions/golden/test_messages_proto3_editions.proto + ${protobuf_SOURCE_DIR}/editions/golden/test_messages_proto2_editions.proto + COMMAND ${protobuf_PROTOC_EXE} + ${protobuf_SOURCE_DIR}/editions/golden/test_messages_proto3_editions.proto + ${protobuf_SOURCE_DIR}/editions/golden/test_messages_proto2_editions.proto + --proto_path=${protobuf_SOURCE_DIR} + --proto_path=${protobuf_SOURCE_DIR}/src + --cpp_out=${protobuf_BINARY_DIR} +) + file(MAKE_DIRECTORY ${protobuf_BINARY_DIR}/src) add_custom_command( @@ -38,20 +56,12 @@ add_custom_command( ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto3.pb.cc ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto2.pb.h ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto2.pb.cc - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.pb.h - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.pb.cc - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.pb.h - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.pb.cc DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.proto COMMAND ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.proto --proto_path=${protobuf_SOURCE_DIR}/src --cpp_out=${protobuf_BINARY_DIR}/src ) @@ -61,14 +71,14 @@ add_library(libconformance_common STATIC ${protobuf_BINARY_DIR}/conformance/conformance.pb.cc ${protobuf_BINARY_DIR}/conformance/test_protos/test_messages_edition2023.pb.h ${protobuf_BINARY_DIR}/conformance/test_protos/test_messages_edition2023.pb.cc + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto3_editions.pb.h + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto3_editions.pb.cc + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto2_editions.pb.h + ${protobuf_BINARY_DIR}/editions/golden/test_messages_proto2_editions.pb.cc ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto2.pb.h ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto2.pb.cc ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto3.pb.h ${protobuf_BINARY_DIR}/src/google/protobuf/test_messages_proto3.pb.cc - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.pb.h - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto3_editions.pb.cc - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.pb.h - ${protobuf_BINARY_DIR}/src/google/protobuf/editions/golden/test_messages_proto2_editions.pb.cc ) target_link_libraries(libconformance_common ${protobuf_LIB_PROTOBUF} diff --git a/conformance/BUILD.bazel b/conformance/BUILD.bazel index 61a6bd43d1..1cca2e9323 100644 --- a/conformance/BUILD.bazel +++ b/conformance/BUILD.bazel @@ -8,7 +8,7 @@ load( "strip_prefix", ) load("@rules_ruby//ruby:defs.bzl", "ruby_binary") -load("//:protobuf.bzl", "internal_csharp_proto_library", "internal_objc_proto_library", "internal_php_proto_library", "internal_py_proto_library") +load("//:protobuf.bzl", "internal_csharp_proto_library", "internal_objc_proto_library", "internal_php_proto_library", "internal_py_proto_library", "internal_ruby_proto_library") load("//bazel:cc_proto_library.bzl", "cc_proto_library") load("//build_defs:internal_shell.bzl", "inline_sh_binary") load("//ruby:defs.bzl", "internal_ruby_proto_library") @@ -167,10 +167,10 @@ cc_library( ":test_messages_proto2_proto_cc", ":test_messages_proto3_proto_cc", "//conformance/test_protos:test_messages_edition2023_cc_proto", + "//editions:test_messages_proto2_editions_cc_proto", + "//editions:test_messages_proto3_editions_cc_proto", "//src/google/protobuf", "//src/google/protobuf:protobuf_lite", - "//src/google/protobuf/editions:test_messages_proto2_editions_cc_proto", - "//src/google/protobuf/editions:test_messages_proto3_editions_cc_proto", "//src/google/protobuf/json", "//src/google/protobuf/util:type_resolver", "@com_google_absl//absl/log:absl_check", @@ -192,9 +192,9 @@ cc_library( ":test_messages_proto2_proto_cc", ":test_messages_proto3_proto_cc", "//conformance/test_protos:test_messages_edition2023_cc_proto", + "//editions:test_messages_proto2_editions_cc_proto", + "//editions:test_messages_proto3_editions_cc_proto", "//src/google/protobuf", - "//src/google/protobuf/editions:test_messages_proto2_editions_cc_proto", - "//src/google/protobuf/editions:test_messages_proto3_editions_cc_proto", "@com_google_absl//absl/log:absl_log", "@com_google_absl//absl/log:die_if_null", "@com_google_absl//absl/strings", @@ -226,11 +226,11 @@ cc_binary( "//:test_messages_proto2_cc_proto", "//:test_messages_proto3_cc_proto", "//conformance/test_protos:test_messages_edition2023_cc_proto", + "//editions:test_messages_proto2_editions_cc_proto", + "//editions:test_messages_proto3_editions_cc_proto", "//src/google/protobuf", "//src/google/protobuf:port", "//src/google/protobuf:protobuf_lite", - "//src/google/protobuf/editions:test_messages_proto2_editions_cc_proto", - "//src/google/protobuf/editions:test_messages_proto3_editions_cc_proto", "//src/google/protobuf/stubs", "//src/google/protobuf/util:json_util", "//src/google/protobuf/util:type_resolver", @@ -257,8 +257,8 @@ java_binary( "//:test_messages_proto2_java_proto", "//:test_messages_proto3_java_proto", "//conformance/test_protos:test_messages_edition2023_java_proto", - "//src/google/protobuf/editions:test_messages_proto2_editions_java_proto", - "//src/google/protobuf/editions:test_messages_proto3_editions_java_proto", + "//editions:test_messages_proto2_editions_java_proto", + "//editions:test_messages_proto3_editions_java_proto", ], ) @@ -277,8 +277,8 @@ java_binary( "//:test_messages_proto2_java_proto_lite", "//:test_messages_proto3_java_proto_lite", "//conformance/test_protos:test_messages_edition2023_java_proto_lite", - "//src/google/protobuf/editions:test_messages_proto2_editions_java_proto_lite", - "//src/google/protobuf/editions:test_messages_proto3_editions_java_proto_lite", + "//editions:test_messages_proto2_editions_java_proto_lite", + "//editions:test_messages_proto3_editions_java_proto_lite", ], ) @@ -296,6 +296,8 @@ py_binary( ":conformance_py_proto", "//:protobuf_python", "//conformance/test_protos:test_messages_edition2023_py_proto", + "//editions:test_messages_proto2_editions_py_pb2", + "//editions:test_messages_proto3_editions_py_pb2", "//python:_message", # Make upb visible if we need it. "//python:conformance_test_py_proto", ], @@ -363,8 +365,8 @@ objc_library( "//:test_messages_proto2_objc_proto", "//:test_messages_proto3_objc_proto", "//conformance/test_protos:test_messages_edition2023_objc_proto", - "//src/google/protobuf/editions:test_messages_proto2_editions_objc_proto", - "//src/google/protobuf/editions:test_messages_proto3_editions_objc_proto", + "//editions:test_messages_proto2_editions_objc_proto", + "//editions:test_messages_proto3_editions_objc_proto", ], ) @@ -385,6 +387,7 @@ ruby_binary( deps = [ ":conformance_ruby_proto", "//conformance/test_protos:test_messages_edition2023_ruby_proto", + "//ruby:conformance_editions_test_ruby_proto", "//ruby:conformance_test_ruby_proto", "//ruby:protobuf", ], diff --git a/conformance/binary_json_conformance_suite.cc b/conformance/binary_json_conformance_suite.cc index d473ffb822..66d85b5417 100644 --- a/conformance/binary_json_conformance_suite.cc +++ b/conformance/binary_json_conformance_suite.cc @@ -27,8 +27,8 @@ #include "conformance/conformance.pb.h" #include "conformance_test.h" #include "conformance/test_protos/test_messages_edition2023.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto3_editions.pb.h" +#include "editions/golden/test_messages_proto2_editions.pb.h" +#include "editions/golden/test_messages_proto3_editions.pb.h" #include "google/protobuf/endian.h" #include "google/protobuf/json/json.h" #include "google/protobuf/test_messages_proto2.pb.h" diff --git a/conformance/conformance_cpp.cc b/conformance/conformance_cpp.cc index 8fb718cd42..3d5c28c185 100644 --- a/conformance/conformance_cpp.cc +++ b/conformance/conformance_cpp.cc @@ -24,8 +24,8 @@ #include "conformance/conformance.pb.h" #include "conformance/conformance.pb.h" #include "conformance/test_protos/test_messages_edition2023.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto3_editions.pb.h" +#include "editions/golden/test_messages_proto2_editions.pb.h" +#include "editions/golden/test_messages_proto3_editions.pb.h" #include "google/protobuf/endian.h" #include "google/protobuf/message.h" #include "google/protobuf/test_messages_proto2.pb.h" diff --git a/conformance/conformance_objc.m b/conformance/conformance_objc.m index b187ed543f..e528b2a13d 100644 --- a/conformance/conformance_objc.m +++ b/conformance/conformance_objc.m @@ -8,10 +8,10 @@ #import #import "Conformance.pbobjc.h" +#import "editions/golden/TestMessagesProto2Editions.pbobjc.h" +#import "editions/golden/TestMessagesProto3Editions.pbobjc.h" #import "google/protobuf/TestMessagesProto2.pbobjc.h" #import "google/protobuf/TestMessagesProto3.pbobjc.h" -#import "google/protobuf/editions/golden/TestMessagesProto2Editions.pbobjc.h" -#import "google/protobuf/editions/golden/TestMessagesProto3Editions.pbobjc.h" #import "test_protos/TestMessagesEdition2023.pbobjc.h" static void Die(NSString *format, ...) __dead2; diff --git a/conformance/conformance_python.py b/conformance/conformance_python.py index 52cacdc2e8..60182e1e9f 100755 --- a/conformance/conformance_python.py +++ b/conformance/conformance_python.py @@ -20,8 +20,8 @@ from google.protobuf import test_messages_proto2_pb2 from google.protobuf import test_messages_proto3_pb2 from conformance import conformance_pb2 from conformance.test_protos import test_messages_edition2023_pb2 -from google.protobuf.editions.golden import test_messages_proto2_editions_pb2 -from google.protobuf.editions.golden import test_messages_proto3_editions_pb2 +from editions.golden import test_messages_proto2_editions_pb2 +from editions.golden import test_messages_proto3_editions_pb2 test_count = 0 verbose = False diff --git a/conformance/conformance_ruby.rb b/conformance/conformance_ruby.rb index 6cfc1a4496..88b34feae0 100755 --- a/conformance/conformance_ruby.rb +++ b/conformance/conformance_ruby.rb @@ -12,8 +12,8 @@ require 'conformance/test_protos/test_messages_edition2023_pb' require 'google/protobuf' require 'google/protobuf/test_messages_proto3_pb' require 'google/protobuf/test_messages_proto2_pb' -require 'google/protobuf/editions/golden/test_messages_proto2_editions_pb' -require 'google/protobuf/editions/golden/test_messages_proto3_editions_pb' +require 'test_messages_proto2_editions_pb' +require 'test_messages_proto3_editions_pb' $test_count = 0 $verbose = false diff --git a/conformance/text_format_conformance_suite.cc b/conformance/text_format_conformance_suite.cc index e14de5c567..d94f3f2f96 100644 --- a/conformance/text_format_conformance_suite.cc +++ b/conformance/text_format_conformance_suite.cc @@ -17,8 +17,8 @@ #include "absl/strings/str_format.h" #include "conformance_test.h" #include "conformance/test_protos/test_messages_edition2023.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto3_editions.pb.h" +#include "editions/golden/test_messages_proto2_editions.pb.h" +#include "editions/golden/test_messages_proto3_editions.pb.h" #include "google/protobuf/test_messages_proto2.pb.h" #include "google/protobuf/test_messages_proto3.pb.h" #include "google/protobuf/text_format.h" diff --git a/csharp/generate_protos.sh b/csharp/generate_protos.sh index f3f0bc58e7..3b06f34587 100755 --- a/csharp/generate_protos.sh +++ b/csharp/generate_protos.sh @@ -72,8 +72,8 @@ $PROTOC -Isrc -I. \ csharp/protos/unittest_issue6936_b.proto \ csharp/protos/unittest_issue6936_c.proto \ csharp/protos/unittest_selfreferential_options.proto \ - src/google/protobuf/editions/golden/test_messages_proto3_editions.proto \ - src/google/protobuf/editions/golden/test_messages_proto2_editions.proto \ + editions/golden/test_messages_proto3_editions.proto \ + editions/golden/test_messages_proto2_editions.proto \ src/google/protobuf/unittest_well_known_types.proto \ src/google/protobuf/test_messages_proto3.proto \ src/google/protobuf/test_messages_proto2.proto \ diff --git a/src/google/protobuf/editions/BUILD b/editions/BUILD similarity index 91% rename from src/google/protobuf/editions/BUILD rename to editions/BUILD index ded332f91a..fc85f4fa18 100644 --- a/src/google/protobuf/editions/BUILD +++ b/editions/BUILD @@ -1,6 +1,5 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("@rules_python//python:proto.bzl", "py_proto_library") -load("//:protobuf.bzl", "internal_objc_proto_library") +load("//:protobuf.bzl", "internal_objc_proto_library", "internal_py_proto_library") load("//bazel:cc_proto_library.bzl", "cc_proto_library") load("//bazel:upb_proto_library.bzl", "upb_c_proto_library", "upb_proto_reflection_library") load(":defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") @@ -74,7 +73,6 @@ cc_library( "defaults_test_embedded.h", "defaults_test_embedded_base64.h", ], - strip_include_prefix = "/src", ) cc_test( @@ -108,7 +106,6 @@ proto_library( name = "test_messages_proto2_editions_proto", testonly = True, srcs = ["golden/test_messages_proto2_editions.proto"], - strip_import_prefix = "/src", ) cc_proto_library( @@ -139,11 +136,14 @@ java_lite_proto_library( deps = [":test_messages_proto2_editions_proto"], ) -py_proto_library( +internal_py_proto_library( name = "test_messages_proto2_editions_py_pb2", testonly = True, - visibility = ["//conformance:__pkg__"], - deps = [":test_messages_proto2_editions_proto"], + srcs = ["golden/test_messages_proto2_editions.proto"], + srcs_version = "PY2AND3", + visibility = [ + "//conformance:__pkg__", + ], ) upb_c_proto_library( @@ -163,7 +163,6 @@ proto_library( name = "test_messages_proto3_editions_proto", testonly = True, srcs = ["golden/test_messages_proto3_editions.proto"], - strip_import_prefix = "/src", deps = [ "//:any_proto", "//:duration_proto", @@ -207,11 +206,15 @@ java_lite_proto_library( deps = [":test_messages_proto3_editions_proto"], ) -py_proto_library( +internal_py_proto_library( name = "test_messages_proto3_editions_py_pb2", testonly = True, - visibility = ["//conformance:__pkg__"], - deps = [":test_messages_proto3_editions_proto"], + srcs = ["golden/test_messages_proto3_editions.proto"], + srcs_version = "PY2AND3", + visibility = [ + "//conformance:__pkg__", + ], + deps = ["//python:well_known_types_py_pb2"], ) upb_c_proto_library( @@ -227,14 +230,13 @@ upb_proto_reflection_library( deps = ["test_messages_proto3_editions_proto"], ) -# Export these for conformance tests until we support py_proto_library. +# Export these for conformance tests for ruby codegen. exports_files( [ "golden/test_messages_proto2_editions.proto", "golden/test_messages_proto3_editions.proto", ], visibility = [ - "//python:__pkg__", "//ruby:__pkg__", ], ) @@ -243,7 +245,6 @@ proto_library( name = "test_editions_default_features_proto", testonly = True, srcs = ["proto/test_editions_default_features.proto"], - strip_import_prefix = "/src", ) cc_proto_library( @@ -275,3 +276,6 @@ cc_test( "@com_google_googletest//:gtest_main", ], ) + +# Define a test suite to allow us to trigger these tests from //src expansions. +test_suite(name = "all_tests") diff --git a/src/google/protobuf/editions/codegen_tests/BUILD b/editions/codegen_tests/BUILD similarity index 76% rename from src/google/protobuf/editions/codegen_tests/BUILD rename to editions/codegen_tests/BUILD index 1924d3e272..8d4895a9e0 100644 --- a/src/google/protobuf/editions/codegen_tests/BUILD +++ b/editions/codegen_tests/BUILD @@ -3,105 +3,89 @@ load("//bazel:cc_proto_library.bzl", "cc_proto_library") exports_files( glob(["*.proto"]) + ["rust_bazel_crate_mapping.txt"], visibility = [ - "//src/google/protobuf/editions:__pkg__", + "//editions:__pkg__", ], ) proto_library( name = "proto2_inline_comments_proto", srcs = ["proto2_inline_comments.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_multiline_comments_proto", srcs = ["proto2_multiline_comments.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_required_proto", srcs = ["proto2_required.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_optional_proto", srcs = ["proto3_optional.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_implicit_proto", srcs = ["proto3_implicit.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_optional_proto", srcs = ["proto2_optional.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_enum_proto", srcs = ["proto2_enum.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_enum_proto", srcs = ["proto3_enum.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_packed_proto", srcs = ["proto2_packed.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_packed_proto", srcs = ["proto3_packed.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_group_proto", srcs = ["proto2_group.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_unpacked_proto", srcs = ["proto2_unpacked.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_unpacked_proto", srcs = ["proto3_unpacked.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_utf8_verify_proto", srcs = ["proto2_utf8_verify.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto2_import_proto", srcs = ["proto2_import.proto"], - strip_import_prefix = "/src", deps = [":proto2_optional_proto"], ) proto_library( name = "proto2_utf8_disabled_proto", srcs = ["proto2_utf8_disabled.proto"], - strip_import_prefix = "/src", ) cc_proto_library( @@ -112,7 +96,6 @@ cc_proto_library( proto_library( name = "proto2_utf8_lite_proto", srcs = ["proto2_utf8_lite.proto"], - strip_import_prefix = "/src", ) cc_proto_library( @@ -123,20 +106,17 @@ cc_proto_library( proto_library( name = "proto2_proto3_enum_proto", srcs = ["proto2_proto3_enum.proto"], - strip_import_prefix = "/src", deps = [":proto3_enum_proto"], ) proto_library( name = "proto3_utf8_strict_proto", srcs = ["proto3_utf8_strict.proto"], - strip_import_prefix = "/src", ) proto_library( name = "proto3_import_proto", srcs = ["proto3_import.proto"], - strip_import_prefix = "/src", deps = [":proto3_implicit_proto"], ) diff --git a/src/google/protobuf/editions/codegen_tests/proto2_enum.proto b/editions/codegen_tests/proto2_enum.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_enum.proto rename to editions/codegen_tests/proto2_enum.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_group.proto b/editions/codegen_tests/proto2_group.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_group.proto rename to editions/codegen_tests/proto2_group.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_import.proto b/editions/codegen_tests/proto2_import.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_import.proto rename to editions/codegen_tests/proto2_import.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_inline_comments.proto b/editions/codegen_tests/proto2_inline_comments.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_inline_comments.proto rename to editions/codegen_tests/proto2_inline_comments.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_multiline_comments.proto b/editions/codegen_tests/proto2_multiline_comments.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_multiline_comments.proto rename to editions/codegen_tests/proto2_multiline_comments.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_optional.proto b/editions/codegen_tests/proto2_optional.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_optional.proto rename to editions/codegen_tests/proto2_optional.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_packed.proto b/editions/codegen_tests/proto2_packed.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_packed.proto rename to editions/codegen_tests/proto2_packed.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_proto3_enum.proto b/editions/codegen_tests/proto2_proto3_enum.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_proto3_enum.proto rename to editions/codegen_tests/proto2_proto3_enum.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_required.proto b/editions/codegen_tests/proto2_required.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_required.proto rename to editions/codegen_tests/proto2_required.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_unpacked.proto b/editions/codegen_tests/proto2_unpacked.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_unpacked.proto rename to editions/codegen_tests/proto2_unpacked.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_utf8_disabled.proto b/editions/codegen_tests/proto2_utf8_disabled.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_utf8_disabled.proto rename to editions/codegen_tests/proto2_utf8_disabled.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_utf8_lite.proto b/editions/codegen_tests/proto2_utf8_lite.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_utf8_lite.proto rename to editions/codegen_tests/proto2_utf8_lite.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto2_utf8_verify.proto b/editions/codegen_tests/proto2_utf8_verify.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto2_utf8_verify.proto rename to editions/codegen_tests/proto2_utf8_verify.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_enum.proto b/editions/codegen_tests/proto3_enum.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_enum.proto rename to editions/codegen_tests/proto3_enum.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_implicit.proto b/editions/codegen_tests/proto3_implicit.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_implicit.proto rename to editions/codegen_tests/proto3_implicit.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_import.proto b/editions/codegen_tests/proto3_import.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_import.proto rename to editions/codegen_tests/proto3_import.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_optional.proto b/editions/codegen_tests/proto3_optional.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_optional.proto rename to editions/codegen_tests/proto3_optional.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_packed.proto b/editions/codegen_tests/proto3_packed.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_packed.proto rename to editions/codegen_tests/proto3_packed.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_unpacked.proto b/editions/codegen_tests/proto3_unpacked.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_unpacked.proto rename to editions/codegen_tests/proto3_unpacked.proto diff --git a/src/google/protobuf/editions/codegen_tests/proto3_utf8_strict.proto b/editions/codegen_tests/proto3_utf8_strict.proto similarity index 100% rename from src/google/protobuf/editions/codegen_tests/proto3_utf8_strict.proto rename to editions/codegen_tests/proto3_utf8_strict.proto diff --git a/src/google/protobuf/editions/codegen_tests/rust_bazel_crate_mapping.txt b/editions/codegen_tests/rust_bazel_crate_mapping.txt similarity index 100% rename from src/google/protobuf/editions/codegen_tests/rust_bazel_crate_mapping.txt rename to editions/codegen_tests/rust_bazel_crate_mapping.txt diff --git a/src/google/protobuf/editions/defaults.bzl b/editions/defaults.bzl similarity index 98% rename from src/google/protobuf/editions/defaults.bzl rename to editions/defaults.bzl index 0974d9da02..84551c7341 100644 --- a/src/google/protobuf/editions/defaults.bzl +++ b/editions/defaults.bzl @@ -120,7 +120,7 @@ embed_edition_defaults = rule( doc = "The encoding format to use for the binary data (octal or base64)", ), "_escape": attr.label( - default = "//src/google/protobuf/editions:internal_defaults_escape", + default = "//editions:internal_defaults_escape", executable = True, cfg = "exec", ), diff --git a/src/google/protobuf/editions/defaults_test.cc b/editions/defaults_test.cc similarity index 97% rename from src/google/protobuf/editions/defaults_test.cc rename to editions/defaults_test.cc index e4ad7f9470..2bb0587c15 100644 --- a/src/google/protobuf/editions/defaults_test.cc +++ b/editions/defaults_test.cc @@ -12,8 +12,8 @@ #include "absl/strings/escaping.h" #include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" -#include "google/protobuf/editions/defaults_test_embedded.h" -#include "google/protobuf/editions/defaults_test_embedded_base64.h" +#include "editions/defaults_test_embedded.h" +#include "editions/defaults_test_embedded_base64.h" #include "google/protobuf/unittest_features.pb.h" #include "google/protobuf/stubs/status_macros.h" @@ -29,7 +29,7 @@ namespace { absl::StatusOr ReadDefaults(absl::string_view name) { auto runfiles = absl::WrapUnique(bazel::tools::cpp::runfiles::Runfiles::CreateForTest()); std::string file = runfiles->Rlocation(absl::StrCat( - "com_google_protobuf/src/google/protobuf/editions/", + "com_google_protobuf/editions/", name, ".binpb")); std::string data; RETURN_IF_ERROR(File::GetContents(file, &data, true)); diff --git a/src/google/protobuf/editions/defaults_test_embedded.h.template b/editions/defaults_test_embedded.h.template similarity index 100% rename from src/google/protobuf/editions/defaults_test_embedded.h.template rename to editions/defaults_test_embedded.h.template diff --git a/src/google/protobuf/editions/defaults_test_embedded_base64.h.template b/editions/defaults_test_embedded_base64.h.template similarity index 100% rename from src/google/protobuf/editions/defaults_test_embedded_base64.h.template rename to editions/defaults_test_embedded_base64.h.template diff --git a/src/google/protobuf/editions/generated_files_test.cc b/editions/generated_files_test.cc similarity index 95% rename from src/google/protobuf/editions/generated_files_test.cc rename to editions/generated_files_test.cc index 68e8fac5df..7a9b261391 100644 --- a/src/google/protobuf/editions/generated_files_test.cc +++ b/editions/generated_files_test.cc @@ -9,9 +9,9 @@ #include #include #include "google/protobuf/descriptor.h" -#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h" -#include "google/protobuf/editions/golden/test_messages_proto3_editions.pb.h" -#include "google/protobuf/editions/proto/test_editions_default_features.pb.h" +#include "editions/golden/test_messages_proto2_editions.pb.h" +#include "editions/golden/test_messages_proto3_editions.pb.h" +#include "editions/proto/test_editions_default_features.pb.h" #include "google/protobuf/test_textproto.h" // These tests provide some basic minimal coverage that protos work as expected. diff --git a/src/google/protobuf/editions/generated_reflection_test.cc b/editions/generated_reflection_test.cc similarity index 92% rename from src/google/protobuf/editions/generated_reflection_test.cc rename to editions/generated_reflection_test.cc index a4161b9324..b991299e3c 100644 --- a/src/google/protobuf/editions/generated_reflection_test.cc +++ b/editions/generated_reflection_test.cc @@ -6,7 +6,7 @@ // https://developers.google.com/open-source/licenses/bsd #include -#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h" +#include "editions/golden/test_messages_proto2_editions.pb.h" namespace google { namespace protobuf { diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_failure.txt b/editions/golden/compare_cpp_codegen_failure.txt similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_failure.txt rename to editions/golden/compare_cpp_codegen_failure.txt diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_failure.xml b/editions/golden/compare_cpp_codegen_failure.xml similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_failure.xml rename to editions/golden/compare_cpp_codegen_failure.xml diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_multiple.txt b/editions/golden/compare_cpp_codegen_multiple.txt similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_multiple.txt rename to editions/golden/compare_cpp_codegen_multiple.txt diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_multiple.xml b/editions/golden/compare_cpp_codegen_multiple.xml similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_multiple.xml rename to editions/golden/compare_cpp_codegen_multiple.xml diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_success.txt b/editions/golden/compare_cpp_codegen_success.txt similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_success.txt rename to editions/golden/compare_cpp_codegen_success.txt diff --git a/src/google/protobuf/editions/golden/compare_cpp_codegen_success.xml b/editions/golden/compare_cpp_codegen_success.xml similarity index 100% rename from src/google/protobuf/editions/golden/compare_cpp_codegen_success.xml rename to editions/golden/compare_cpp_codegen_success.xml diff --git a/src/google/protobuf/editions/golden/editions_transform_proto2.proto b/editions/golden/editions_transform_proto2.proto similarity index 100% rename from src/google/protobuf/editions/golden/editions_transform_proto2.proto rename to editions/golden/editions_transform_proto2.proto diff --git a/src/google/protobuf/editions/golden/editions_transform_proto2_lite.proto b/editions/golden/editions_transform_proto2_lite.proto similarity index 100% rename from src/google/protobuf/editions/golden/editions_transform_proto2_lite.proto rename to editions/golden/editions_transform_proto2_lite.proto diff --git a/src/google/protobuf/editions/golden/editions_transform_proto2_utf8_disabled.proto b/editions/golden/editions_transform_proto2_utf8_disabled.proto similarity index 100% rename from src/google/protobuf/editions/golden/editions_transform_proto2_utf8_disabled.proto rename to editions/golden/editions_transform_proto2_utf8_disabled.proto diff --git a/src/google/protobuf/editions/golden/editions_transform_proto3.proto b/editions/golden/editions_transform_proto3.proto similarity index 100% rename from src/google/protobuf/editions/golden/editions_transform_proto3.proto rename to editions/golden/editions_transform_proto3.proto diff --git a/src/google/protobuf/editions/golden/editions_transform_proto3_utf8_disabled.proto b/editions/golden/editions_transform_proto3_utf8_disabled.proto similarity index 100% rename from src/google/protobuf/editions/golden/editions_transform_proto3_utf8_disabled.proto rename to editions/golden/editions_transform_proto3_utf8_disabled.proto diff --git a/src/google/protobuf/editions/golden/simple_proto2.proto b/editions/golden/simple_proto2.proto similarity index 100% rename from src/google/protobuf/editions/golden/simple_proto2.proto rename to editions/golden/simple_proto2.proto diff --git a/src/google/protobuf/editions/golden/simple_proto2_import.proto b/editions/golden/simple_proto2_import.proto similarity index 100% rename from src/google/protobuf/editions/golden/simple_proto2_import.proto rename to editions/golden/simple_proto2_import.proto diff --git a/src/google/protobuf/editions/golden/simple_proto3.proto b/editions/golden/simple_proto3.proto similarity index 100% rename from src/google/protobuf/editions/golden/simple_proto3.proto rename to editions/golden/simple_proto3.proto diff --git a/src/google/protobuf/editions/golden/test_messages_proto2_editions.proto b/editions/golden/test_messages_proto2_editions.proto similarity index 100% rename from src/google/protobuf/editions/golden/test_messages_proto2_editions.proto rename to editions/golden/test_messages_proto2_editions.proto diff --git a/src/google/protobuf/editions/golden/test_messages_proto3_editions.proto b/editions/golden/test_messages_proto3_editions.proto similarity index 100% rename from src/google/protobuf/editions/golden/test_messages_proto3_editions.proto rename to editions/golden/test_messages_proto3_editions.proto diff --git a/src/google/protobuf/editions/internal_defaults_escape.cc b/editions/internal_defaults_escape.cc similarity index 100% rename from src/google/protobuf/editions/internal_defaults_escape.cc rename to editions/internal_defaults_escape.cc diff --git a/src/google/protobuf/editions/proto/editions_transform_proto2.proto b/editions/proto/editions_transform_proto2.proto similarity index 100% rename from src/google/protobuf/editions/proto/editions_transform_proto2.proto rename to editions/proto/editions_transform_proto2.proto diff --git a/src/google/protobuf/editions/proto/editions_transform_proto2_lite.proto b/editions/proto/editions_transform_proto2_lite.proto similarity index 100% rename from src/google/protobuf/editions/proto/editions_transform_proto2_lite.proto rename to editions/proto/editions_transform_proto2_lite.proto diff --git a/src/google/protobuf/editions/proto/editions_transform_proto2_utf8_disabled.proto b/editions/proto/editions_transform_proto2_utf8_disabled.proto similarity index 100% rename from src/google/protobuf/editions/proto/editions_transform_proto2_utf8_disabled.proto rename to editions/proto/editions_transform_proto2_utf8_disabled.proto diff --git a/src/google/protobuf/editions/proto/editions_transform_proto3.proto b/editions/proto/editions_transform_proto3.proto similarity index 100% rename from src/google/protobuf/editions/proto/editions_transform_proto3.proto rename to editions/proto/editions_transform_proto3.proto diff --git a/src/google/protobuf/editions/proto/editions_transform_proto3_utf8_disabled.proto b/editions/proto/editions_transform_proto3_utf8_disabled.proto similarity index 100% rename from src/google/protobuf/editions/proto/editions_transform_proto3_utf8_disabled.proto rename to editions/proto/editions_transform_proto3_utf8_disabled.proto diff --git a/src/google/protobuf/editions/proto/test_editions_default_features.proto b/editions/proto/test_editions_default_features.proto similarity index 100% rename from src/google/protobuf/editions/proto/test_editions_default_features.proto rename to editions/proto/test_editions_default_features.proto diff --git a/java/core/BUILD.bazel b/java/core/BUILD.bazel index 04fe1ec146..93c3315594 100644 --- a/java/core/BUILD.bazel +++ b/java/core/BUILD.bazel @@ -8,8 +8,8 @@ load("//bazel:proto_library.bzl", "proto_library") load("//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain") load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_java_library", "protobuf_versioned_java_library") load("//conformance:defs.bzl", "conformance_test") +load("//editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") load("//java/internal:testing.bzl", "junit_tests") -load("//src/google/protobuf/editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") load("//upb/cmake:build_defs.bzl", "staleness_test") LITE_SRCS = [ @@ -120,13 +120,13 @@ internal_gen_well_known_protos_java( name = "gen_well_known_protos_javalite", javalite = True, deps = [ - ":java_features_proto", "//:any_proto", "//:api_proto", "//:descriptor_proto", "//:duration_proto", "//:empty_proto", "//:field_mask_proto", + "//:java_features_proto", "//:source_context_proto", "//:struct_proto", "//:timestamp_proto", @@ -168,7 +168,7 @@ protobuf_java_export( maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_JAVA_VERSION, pom_template = "//java/lite:pom_template.xml", resources = [ - ":java_features_proto", + "//:java_features_proto", "//:lite_well_known_protos", "//src/google/protobuf:descriptor_proto_srcs", ], @@ -186,9 +186,8 @@ proto_library( srcs = ["src/main/resources/google/protobuf/java_features.proto"], strip_import_prefix = "/java/core/src/main/resources", visibility = [ - "//java/kotlin:__pkg__", - "//java/kotlin-lite:__pkg__", - "//java/lite:__pkg__", + "//:__pkg__", + "//java/__subpackages__", "//pkg:__pkg__", ], deps = ["//:descriptor_proto"], @@ -204,7 +203,7 @@ compile_edition_defaults( name = "java_edition_defaults", srcs = [ "//:descriptor_proto", - "//java/core:java_features_proto", + "//:java_features_proto", ], maximum_edition = "2023", minimum_edition = "PROTO2", @@ -229,7 +228,6 @@ staleness_test( internal_gen_well_known_protos_java( name = "gen_well_known_protos_java", deps = [ - ":java_features_proto", "//:any_proto", "//:api_proto", "//:compiler_plugin_proto", @@ -237,6 +235,7 @@ internal_gen_well_known_protos_java( "//:duration_proto", "//:empty_proto", "//:field_mask_proto", + "//:java_features_proto", "//:source_context_proto", "//:struct_proto", "//:timestamp_proto", @@ -308,7 +307,7 @@ proto_lang_toolchain( name = "toolchain", # keep this in sync w/ WELL_KNOWN_PROTO_MAP in //:BUILD blacklisted_protos = [ - ":java_features_proto", + "//:java_features_proto", "//:any_proto", "//:api_proto", "//:compiler_plugin_proto", diff --git a/java/kotlin-lite/BUILD.bazel b/java/kotlin-lite/BUILD.bazel index 5d77dbc7cf..362a8bf305 100644 --- a/java/kotlin-lite/BUILD.bazel +++ b/java/kotlin-lite/BUILD.bazel @@ -26,12 +26,12 @@ internal_gen_kt_protos( "//:duration_proto", "//:empty_proto", "//:field_mask_proto", + "//:java_features_proto", "//:source_context_proto", "//:struct_proto", "//:timestamp_proto", "//:type_proto", "//:wrappers_proto", - "//java/core:java_features_proto", ], ) @@ -56,8 +56,8 @@ kt_jvm_export( maven_coordinates = "com.google.protobuf:protobuf-kotlin-lite:%s" % PROTOBUF_JAVA_VERSION, pom_template = "//java/kotlin-lite:pom_template.xml", resources = [ + "//:java_features_proto", "//:well_known_type_protos", - "//java/core:java_features_proto", "//src/google/protobuf:descriptor_proto_srcs", ], tags = ["manual"], diff --git a/java/kotlin/BUILD.bazel b/java/kotlin/BUILD.bazel index 1e5a8ab425..20dd242aea 100644 --- a/java/kotlin/BUILD.bazel +++ b/java/kotlin/BUILD.bazel @@ -59,8 +59,8 @@ kt_jvm_export( maven_coordinates = "com.google.protobuf:protobuf-kotlin:%s" % PROTOBUF_JAVA_VERSION, pom_template = "//java/kotlin:pom_template.xml", resources = [ + "//:java_features_proto", "//:well_known_type_protos", - "//java/core:java_features_proto", "//src/google/protobuf:descriptor_proto_srcs", ], tags = ["manual"], @@ -315,12 +315,12 @@ internal_gen_kt_protos( "//:duration_proto", "//:empty_proto", "//:field_mask_proto", + "//:java_features_proto", "//:source_context_proto", "//:struct_proto", "//:timestamp_proto", "//:type_proto", "//:wrappers_proto", - "//java/core:java_features_proto", ], ) diff --git a/java/lite/BUILD.bazel b/java/lite/BUILD.bazel index 9c6b2ec632..68033946e9 100644 --- a/java/lite/BUILD.bazel +++ b/java/lite/BUILD.bazel @@ -24,7 +24,7 @@ proto_lang_toolchain( name = "toolchain", # keep this in sync w/ LITE_WELL_KNOWN_PROTO_MAP in //:BUILD blacklisted_protos = [ - "//java/core:java_features_proto", + "//:java_features_proto", "//:any_proto", "//:api_proto", "//:duration_proto", diff --git a/python/build_targets.bzl b/python/build_targets.bzl index e710ec3eba..0b18fe19b9 100644 --- a/python/build_targets.bzl +++ b/python/build_targets.bzl @@ -13,7 +13,7 @@ load("//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain") 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("//src/google/protobuf/editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") +load("//editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") load(":internal.bzl", "internal_copy_files", "internal_py_test") def build_targets(name): @@ -55,6 +55,7 @@ def build_targets(name): srcs_version = "PY2AND3", visibility = [ "//:__pkg__", + "//editions:__pkg__", "//upb:__subpackages__", ], ) @@ -234,8 +235,6 @@ def build_targets(name): srcs = [ "//src/google/protobuf:test_messages_proto2.proto", "//src/google/protobuf:test_messages_proto3.proto", - "//src/google/protobuf/editions:golden/test_messages_proto2_editions.proto", - "//src/google/protobuf/editions:golden/test_messages_proto3_editions.proto", ], strip_prefix = "src", ) diff --git a/ruby/BUILD.bazel b/ruby/BUILD.bazel index 74a7716100..4a62a3e60e 100755 --- a/ruby/BUILD.bazel +++ b/ruby/BUILD.bazel @@ -113,8 +113,6 @@ internal_copy_files( srcs = [ "//src/google/protobuf:test_messages_proto2.proto", "//src/google/protobuf:test_messages_proto3.proto", - "//src/google/protobuf/editions:golden/test_messages_proto2_editions.proto", - "//src/google/protobuf/editions:golden/test_messages_proto3_editions.proto", ], strip_prefix = "src", ) @@ -131,6 +129,25 @@ internal_ruby_proto_library( deps = [":well_known_ruby_protos"], ) +internal_copy_files( + name = "copied_conformance_editions_test_files", + testonly = 1, + srcs = [ + "//editions:golden/test_messages_proto2_editions.proto", + "//editions:golden/test_messages_proto3_editions.proto", + ], + strip_prefix = "editions/golden/", +) + +internal_ruby_proto_library( + name = "conformance_editions_test_ruby_proto", + testonly = 1, + srcs = [":copied_conformance_editions_test_files"], + includes = ["."], + visibility = ["//conformance:__pkg__"], + deps = [":well_known_ruby_protos"], +) + ruby_library( name = "protobuf", visibility = [ diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 69e6369032..c1acdb14e0 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -64,3 +64,8 @@ staleness_test( # test. tags = ["manual"], ) + +test_suite( + name = "editions_tests", + tests = ["//editions:all_tests"], +) diff --git a/src/google/protobuf/BUILD.bazel b/src/google/protobuf/BUILD.bazel index 2e56a083ec..917d9d35d0 100644 --- a/src/google/protobuf/BUILD.bazel +++ b/src/google/protobuf/BUILD.bazel @@ -895,7 +895,7 @@ proto_library( name = "unittest_features_proto", srcs = ["unittest_features.proto"], strip_import_prefix = "/src", - visibility = ["//src/google/protobuf:__subpackages__"], + visibility = ["//editions:__subpackages__"], deps = [ ":descriptor_proto", ], @@ -903,7 +903,7 @@ proto_library( cc_proto_library( name = "unittest_features_cc_proto", - visibility = ["//src/google/protobuf:__subpackages__"], + visibility = ["//editions:__subpackages__"], deps = [":unittest_features_proto"], ) @@ -1290,6 +1290,7 @@ cc_library( hdrs = ["test_textproto.h"], strip_include_prefix = "/src", visibility = [ + "//editions:__pkg__", "//pkg:__pkg__", "//src/google/protobuf:__subpackages__", ], diff --git a/upb/conformance/BUILD b/upb/conformance/BUILD index 943007dae2..9630c016bc 100644 --- a/upb/conformance/BUILD +++ b/upb/conformance/BUILD @@ -69,8 +69,8 @@ cc_binary( ":conformance_upb_proto_reflection", ":test_messages_proto2_upbdefs", ":test_messages_proto3_upbdefs", - "//src/google/protobuf/editions:test_messages_proto2_editions_upbdefs", - "//src/google/protobuf/editions:test_messages_proto3_editions_upbdefs", + "//editions:test_messages_proto2_editions_upbdefs", + "//editions:test_messages_proto3_editions_upbdefs", "//upb:base", "//upb:json", "//upb:port", @@ -123,8 +123,8 @@ cc_binary( ":conformance_upb_proto_reflection", ":test_messages_proto2_upbdefs", ":test_messages_proto3_upbdefs", - "//src/google/protobuf/editions:test_messages_proto2_editions_upbdefs", - "//src/google/protobuf/editions:test_messages_proto3_editions_upbdefs", + "//editions:test_messages_proto2_editions_upbdefs", + "//editions:test_messages_proto3_editions_upbdefs", "//upb:base", "//upb:json", "//upb:port", diff --git a/upb/conformance/conformance_upb.c b/upb/conformance/conformance_upb.c index 78cce522f2..349d9ec83f 100644 --- a/upb/conformance/conformance_upb.c +++ b/upb/conformance/conformance_upb.c @@ -16,8 +16,8 @@ #include "conformance/conformance.upb.h" #include "conformance/conformance.upbdefs.h" -#include "google/protobuf/editions/golden/test_messages_proto2_editions.upbdefs.h" -#include "google/protobuf/editions/golden/test_messages_proto3_editions.upbdefs.h" +#include "editions/golden/test_messages_proto2_editions.upbdefs.h" +#include "editions/golden/test_messages_proto3_editions.upbdefs.h" #include "google/protobuf/test_messages_proto2.upbdefs.h" #include "google/protobuf/test_messages_proto3.upbdefs.h" #include "upb/base/upcast.h" @@ -314,11 +314,11 @@ int main(void) { symtab, &google_protobuf_test_messages_proto3_proto_upbdefinit, true); _upb_DefPool_LoadDefInitEx( symtab, - &google_protobuf_editions_golden_test_messages_proto2_editions_proto_upbdefinit, + &editions_golden_test_messages_proto2_editions_proto_upbdefinit, true); _upb_DefPool_LoadDefInitEx( symtab, - &google_protobuf_editions_golden_test_messages_proto3_editions_proto_upbdefinit, + &editions_golden_test_messages_proto3_editions_proto_upbdefinit, true); #else protobuf_test_messages_proto2_TestAllTypesProto2_getmsgdef(symtab); diff --git a/upb/reflection/BUILD b/upb/reflection/BUILD index 88e4d91f8e..694b1f0118 100644 --- a/upb/reflection/BUILD +++ b/upb/reflection/BUILD @@ -10,7 +10,7 @@ load("//bazel:upb_proto_library.bzl", "upb_proto_reflection_library") # end:github_only load( - "//src/google/protobuf/editions:defaults.bzl", + "//editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults", )