Stanley Cheung 6f72faa74b Update to protobuf 3.12.2 5 năm trước cách đây
..
abseil-cpp @ df3ea785d8 eae488fc66 Update abseil to get the recent patch on LTS 2020_20_25 5 năm trước cách đây
address_sorting c34bef4ca4 Format all Bazel files with buildifier 6 năm trước cách đây
benchmark @ 090faecb45 09c55da6c2 Update Google Benchmark v1.5.0 to get CMake < 3.6 fix 6 năm trước cách đây
bloaty @ 73594cde8c 92a3805cd3 Submodule bloaty mcbloatface 8 năm trước cách đây
boringssl-with-bazel @ 3ab047a8e3 a0161b8ab9 update boringssl 5 năm trước cách đây
cares b4eefcfc0e Added source of new CPUs 6 năm trước cách đây
envoy-api @ 8dcc476be6 b95843c1b7 xds: Add support for send_all_clusters field in LRS. 5 năm trước cách đây
gflags @ 28f50e0fed eff99b1d76 dependency bump for gflags 6 năm trước cách đây
googleapis @ 80ed4d0bbf edab4e773e Add envoy and its dependent repos as submodules in third_party 7 năm trước cách đây
googletest @ c9ccac7cb7 f66f047841 Update googletest version to fix BoringSSL support 6 năm trước cách đây
libuv @ 15ae750151 0ab572393f move submodule libuv to v1.34.0 5 năm trước cách đây
objective_c 947c7b7216 Resolve conflict with master branch 6 năm trước cách đây
protobuf @ 678da4f76e 6f72faa74b Update to protobuf 3.12.2 5 năm trước cách đây
protoc-gen-validate @ 0f2bc6c0fd b95843c1b7 xds: Add support for send_all_clusters field in LRS. 5 năm trước cách đây
py 06ecc87290 [bazel] Add fixes for --incompatible_load_proto_rules_from_bzl 5 năm trước cách đây
toolchains 2de0e4c7df small fixup 5 năm trước cách đây
udpa @ e8cd3a4bb3 b95843c1b7 xds: Add support for send_all_clusters field in LRS. 5 năm trước cách đây
upb ce1c0b8743 Remove upb/BUILD 5 năm trước cách đây
zlib @ cacf7f1d4e 91eb28f6bc Update to avoid ubsan failure 8 năm trước cách đây
BUILD 6b8a71ef40 Add a new submodule "libuv" 5 năm trước cách đây
README.md 060c756945 add README.md for third_party 5 năm trước cách đây
constantly.BUILD aa56034b58 Add python bazel deps needed to run resolver component tests 7 năm trước cách đây
cython.BUILD 3af1aaadab Basic setup to build gRPC Python with Bazel 7 năm trước cách đây
enum34.BUILD 7b2c8c27b0 Separate py_grpc_library and py_proto_library. 6 năm trước cách đây
futures.BUILD 7b2c8c27b0 Separate py_grpc_library and py_proto_library. 6 năm trước cách đây
incremental.BUILD aa56034b58 Add python bazel deps needed to run resolver component tests 7 năm trước cách đây
libuv.BUILD 924ce78fc9 Fix sanity checks and "really" add the libuv submodule to third_party. 5 năm trước cách đây
six.BUILD 69f990673f Conform to protobuf's usage of six 5 năm trước cách đây
twisted.BUILD aa56034b58 Add python bazel deps needed to run resolver component tests 7 năm trước cách đây
yaml.BUILD aa56034b58 Add python bazel deps needed to run resolver component tests 7 năm trước cách đây
zlib.BUILD 79f7abb45e Update zlib dependency 6 năm trước cách đây
zope_interface.BUILD aa56034b58 Add python bazel deps needed to run resolver component tests 7 năm trước cách đây

README.md

Third-party libraries

gRPC depends on several third-party libraries, their source code is available (usually as a git submodule) in this directory.

Guidelines on updating submodules

  • IMPORTANT: whenever possible, try to only update to a stable release of a library (= not to master / random commit). Depending on unreleased revisions makes gRPC installation harder for users, as it forces them to always build the dependency from source and prevents them from using more convenient installation channels (linux packages, package managers etc.)

  • bazel BUILD uses a different dependency model - whenever updating a submodule, also update the revision in grpc_deps.bzl so that bazel and non-bazel builds stay in sync (this is actually enforced by a sanity check in some cases)

Considerations when adding a new third-party dependency

  • gRPC C++ needs to stay buildable/installable even if the submodules are not present (e.g. the tar.gz archive with gRPC doesn't contain the submodules), assuming that the dependencies are already installed. This is a requirement for being able to provide a reasonable install process (e.g. using cmake) and to support package managers for gRPC C++.

  • Adding a new dependency is a lot of work (both for us and for the users). We currently support multiple build systems (BAZEL, cmake, make, ...) so adding a new dependency usually requires updates in multiple build systems (often not trivial). The installation process also needs to continue to work (we do have distrib tests to test many of the possible installation scenarios, but they are not perfect). Adding a new dependency also usually affects the installation instructions that need to be updated. Also keep in mind that adding a new dependency can be quite disruptive for the users and community - it means that all users will need to update their projects accordingly (for C++ projects often non-trivial) and the community-provided C++ packages (e.g. vcpkg) will need to be updated as well.

Instructions for updating dependencies

Usually the process is

  1. update the submodule to selected commit (see guidance above)
  2. update the dependency in grpc_deps.bzl to the same commit
  3. update tools/run_tests/sanity/check_submodules.sh to make the sanity test pass
  4. (when needed) run tools/buildgen/generate_projects.sh to regenerate the generated files

Updating some dependencies requires extra care.

Updating third_party/boringssl-with bazel

  • Update the third_party/boringssl-with-bazel submodule to the latest master-with-bazel branch

  • Update boringssl dependency in grpc_deps.bzl to the same commit

  • Update tools/run_tests/sanity/check_submodules.sh with the same commit

  • Run tools/buildgen/generate_projects.sh to regenerate the generated files

  • Run tools/distrib/generate_grpc_shadow_boringssl_symbol_list.sh

  • Increment the boringssl podspec version number in templates/src/objective-c/BoringSSL-GRPC.podspec.template and templates/gRPC-Core.podspec.template. example

  • Run tools/buildgen/generate_projects.sh (yes, again)

Updating third_party/protobuf

See http://go/grpc-third-party-protobuf-update-instructions (internal only)