diff --git a/php/BUILD.bazel b/php/BUILD.bazel index 948541cb00..c68abe4ab5 100644 --- a/php/BUILD.bazel +++ b/php/BUILD.bazel @@ -3,9 +3,11 @@ # See also code generation logic under /src/google/protobuf/compiler/php. load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") +load("@rules_pkg//:pkg.bzl", "pkg_tar") load("@upb//cmake:build_defs.bzl", "staleness_test") load("//build_defs:internal_shell.bzl", "inline_sh_binary") load("//conformance:defs.bzl", "conformance_test") +load("//:protobuf_version.bzl", "PROTOBUF_PHP_VERSION") filegroup( name = "source_files", @@ -133,3 +135,17 @@ pkg_files( strip_prefix = strip_prefix.from_pkg(""), visibility = ["//pkg:__pkg__"], ) + +################################################################################ +# PECL .tgz Release +################################################################################ + +pkg_tar( + name = "release", + extension = "tgz", + srcs = [ + "//php/ext/google/protobuf:release_files", + "//php/ext/google/protobuf:generate_package_xml", + ], + out = "protobuf-%s" % PROTOBUF_PHP_VERSION, +) diff --git a/php/ext/google/protobuf/BUILD.bazel b/php/ext/google/protobuf/BUILD.bazel index ca37abce22..1b0bc704c3 100644 --- a/php/ext/google/protobuf/BUILD.bazel +++ b/php/ext/google/protobuf/BUILD.bazel @@ -1,7 +1,10 @@ # Protobuf PHP extension (PECL) -load("@rules_pkg//:mappings.bzl", "pkg_files", "pkg_filegroup", "strip_prefix") +load("@rules_pkg//:mappings.bzl", "pkg_files", "pkg_filegroup") load("//:protobuf_version.bzl", "PROTOBUF_PHP_VERSION") +load("@rules_pkg//:pkg.bzl", "pkg_tar") + +package(default_visibility = ["//php:__subpackages__"]) filegroup( name = "template_package_xml", @@ -14,6 +17,7 @@ pkg_files( "@utf8_range//:utf8_range_srcs", "@utf8_range//:LICENSE", ], + prefix = "third_party/utf8_range", ) pkg_files( @@ -22,7 +26,7 @@ pkg_files( "*.h", "*.c", ]) + [ - "LICENSE", + "//:LICENSE", "config.m4", "wkt.inc", ], @@ -34,12 +38,24 @@ pkg_filegroup( ":source_files", ":utf8_range_files", ], + prefix = "protobuf-%s" % PROTOBUF_PHP_VERSION, +) + +# PECL .tgz without package.xml +pkg_tar( + name = "release_without_package", + extension = "tgz", + srcs = [ + ":release_files", + ], + out = "release_without_package", ) +# Generate PECL package.xml genrule( name = "generate_package_xml", srcs = [ - ":release_files", + ":release_without_package", ":template_package_xml", ], outs = ["package.xml"], @@ -47,7 +63,7 @@ genrule( "$(location :generate_package_xml.sh)", "$(location :template_package_xml)", PROTOBUF_PHP_VERSION, - "$$(echo $(locations :release_files) | sed -e 's; ;,;g')", + "$$(tar -tf $(location :release_without_package) | sed -z -e 's;\\n;,;g')", "$(location package.xml)" ]), tools = ["generate_package_xml.sh"], diff --git a/php/ext/google/protobuf/generate_package_xml.sh b/php/ext/google/protobuf/generate_package_xml.sh index e74d6e6770..dea2d90bba 100755 --- a/php/ext/google/protobuf/generate_package_xml.sh +++ b/php/ext/google/protobuf/generate_package_xml.sh @@ -19,13 +19,15 @@ fi files="\\n" for file in ${release_files//,/ }; do - name=$(echo $file | sed -e 's;php/ext/google/protobuf/;;') + name=$(echo $file | grep .*[^/]\$ | sed -e "s;protobuf-${release_version}/;;") + if [ ! -z $name ]; then if [[ $name =~ LICENSE$ ]]; then role='doc' else role='src' fi files+=" \\n" + fi done cat $template_package_xml | diff --git a/version.json b/version.json index 4244127810..b2c371f4ec 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { - "main": { - "protoc_version": "22-dev", + "22.x": { + "protoc_version": "22.0-rc1", "lts": false, "date": "2022-07-21", "languages": { - "cpp": "3.22-dev", - "csharp": "3.22-dev", - "java": "3.22-dev", - "javascript": "3.22-dev", - "objectivec": "3.22-dev", - "php": "3.22-dev", - "python": "4.22-dev", - "ruby": "3.22-dev" + "cpp": "3.22.0-rc1", + "csharp": "3.22.0-rc1", + "java": "3.22.0-rc1", + "javascript": "3.22.0-rc1", + "objectivec": "3.22.0-rc1", + "php": "3.22.0-rc1", + "python": "4.22.0-rc1", + "ruby": "3.22.0-rc1" } } }