Fix generic comparisons on protobuf messages

Generated protobuf messages contain internal data structures
that general purpose comparison functions (e.g., reflect.DeepEqual,
pretty.Compare, etc) do not properly compare. It is already the case
today that these functions may report a difference when two messages
are actually semantically equivalent.

Fix all usages by either calling proto.Equal directly if
the top-level types are themselves proto.Message, or by calling
cmp.Equal with the cmp.Comparer(proto.Equal) option specified.
This option teaches cmp to use proto.Equal anytime it encounters
proto.Message types.

PiperOrigin-RevId: 282412693
2 files changed
tree: 4fd9c28f6c144bc8d3498a627ade524d8ec7799f
  1. .bazelci/
  2. .github/
  3. .vscode/
  4. devserver/
  5. docs/
  6. internal/
  7. third_party/
  8. ts_auto_deps/
  9. .bazelignore
  10. .bazelrc
  11. .gitignore
  12. AUTHORS
  13. BUILD.bazel
  14. CODE_OF_CONDUCT.md
  15. CODEOWNERS
  16. CONTRIBUTING.md
  17. CONTRIBUTORS
  18. LICENSE
  19. package.bzl
  20. package.json
  21. README.md
  22. revert_rules_go_commit_4442d82a001f378d0605cbbca3fb529979a1c3a6.patch
  23. tsconfig.json
  24. WORKSPACE
  25. yarn.lock
README.md

build_bazel_rules_typescript

This repo contains a mirror of some Google-internal bits that support TypeScript development under Bazel.

It contains these utilities:

  • ts_devserver: a Go library and binary that runs a fast local web server which concatenates JavaScript on-the-fly. It requires inputs in a named module format (module ids must be contained in the file, not inferred from the file's path).
  • ts_auto_deps: a Go library and binary which generates BUILD.bazel files from TypeScript sources.
  • tsc_wrapped: a TypeScript program which wraps the TypeScript compiler, hosting it under a Bazel worker.
  • tsetse: a collection of third-party “strictness” checks which we add to the TypeScript compiler.
  • internal/common/*.bzl: some Starlark utility code for running the ts_library rule.

There are no user-facing bits in this repo. These utilities are consumed in https://github.com/bazelbuild/rules_nodejs/tree/master/packages/typescript

Please file issues for ts_library rule and other Bazel rules in that repo.