From 08a5898212b3ffbf78c349dda4182415f60dfc3d Mon Sep 17 00:00:00 2001 From: Deanna Garcia Date: Tue, 22 Nov 2022 15:24:41 -0800 Subject: [PATCH] Add license file to pypi wheels. Addresses https://github.com/protocolbuffers/protobuf/issues/10936. This requires updating to the newest version of rules_python to use the new py_wheel API that includes a parameter for extra distinfo files PiperOrigin-RevId: 490350846 --- WORKSPACE | 11 +++++++++-- bazel/system_python.bzl | 2 +- bazel/workspace_deps.bzl | 4 ++-- cmake/make_cmakelists.py | 10 ++++++++-- python/dist/BUILD.bazel | 9 +++++++++ 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index dba443348e..1aa4301ac4 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -77,11 +77,18 @@ system_python( load("@system_python//:register.bzl", "register_system_python") register_system_python() -load("@system_python//:pip.bzl", "pip_install") -pip_install( +load("@system_python//:pip.bzl", "pip_parse") + +pip_parse( name="pip_deps", requirements = "//python:requirements.txt", requirements_overrides = { "3.11": "//python:requirements_311.txt", }, ) + +load("@pip_deps//:requirements.bzl", "install_deps") +install_deps() + +load("@fuzzing_py_deps//:requirements.bzl", fuzzing_py_install_deps = "install_deps") +fuzzing_py_install_deps() \ No newline at end of file diff --git a/bazel/system_python.bzl b/bazel/system_python.bzl index 5769fda51b..d2d8754029 100644 --- a/bazel/system_python.bzl +++ b/bazel/system_python.bzl @@ -52,7 +52,7 @@ pip_install = repository_rule( pip_parse = pip_install """ -# Alias rules_python's pip.bzl for cases where a system pythong is found. +# Alias rules_python's pip.bzl for cases where a system python is found. _alias_pip = """ load("@rules_python//python:pip.bzl", _pip_install = "pip_install", _pip_parse = "pip_parse") def _get_requirements(requirements, requirements_overrides): diff --git a/bazel/workspace_deps.bzl b/bazel/workspace_deps.bzl index f857acb22d..b9d343ab62 100644 --- a/bazel/workspace_deps.bzl +++ b/bazel/workspace_deps.bzl @@ -28,14 +28,14 @@ def upb_deps(): patches = ["@upb//bazel:protobuf.patch"], ) - rules_python_version = "0.12.0" # Latest @ August 31, 2022 + rules_python_version = "0.14.0" # Latest @ November 20, 2022 maybe( http_archive, name = "rules_python", strip_prefix = "rules_python-{}".format(rules_python_version), url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/{}.tar.gz".format(rules_python_version), - sha256 = "b593d13bb43c94ce94b483c2858e53a9b811f6f10e1e0eedc61073bd90e58d9c", + sha256 = "a868059c8c6dd6ad45a205cca04084c652cfe1852e6df2d5aca036f6e5438380", ) maybe( diff --git a/cmake/make_cmakelists.py b/cmake/make_cmakelists.py index bf124209df..ee7aaf9600 100755 --- a/cmake/make_cmakelists.py +++ b/cmake/make_cmakelists.py @@ -202,7 +202,7 @@ class WorkspaceFileFunctions(object): def __init__(self, converter): self.converter = converter - def load(self, *args): + def load(self, *args, **kwargs): pass def workspace(self, **kwargs): @@ -227,7 +227,7 @@ def upb_deps(self): def protobuf_deps(self): pass - def pip_install(self, **kwargs): + def pip_parse(self, **kwargs): pass def rules_fuzzing_dependencies(self): @@ -251,6 +251,12 @@ def python_source_archive(self, **kwargs): def python_nuget_package(self, **kwargs): pass + def install_deps(self): + pass + + def fuzzing_py_install_deps(self): + pass + class Converter(object): def __init__(self): diff --git a/python/dist/BUILD.bazel b/python/dist/BUILD.bazel index 8ac6479bd9..f27ccfe824 100644 --- a/python/dist/BUILD.bazel +++ b/python/dist/BUILD.bazel @@ -206,6 +206,9 @@ py_wheel( "Programming Language :: Python :: 3.10", ], distribution = "protobuf", + extra_distinfo_files = { + "//:LICENSE": "LICENSE", + }, homepage = "https://developers.google.com/protocol-buffers/", license = "3-Clause BSD License", platform = select({ @@ -256,6 +259,9 @@ py_wheel( "Programming Language :: Python :: 3.10", ], distribution = "protobuf", + extra_distinfo_files = { + "//:LICENSE": "LICENSE", + }, homepage = "https://developers.google.com/protocol-buffers/", license = "3-Clause BSD License", platform = "any", @@ -281,6 +287,9 @@ py_wheel( testonly = True, abi = "none", distribution = "protobuftests", + extra_distinfo_files = { + "//:LICENSE": "LICENSE", + }, platform = "any", python_tag = "py3", strip_path_prefixes = [