Proto commits in google/truth

These 16 commits are when the Protocol Buffers files have changed:

Commit:72bef10
Author:cpovirk
Committer:Google Java Core Libraries

Upgrade from [6-year-old](https://repo1.maven.org/maven2/com/google/protobuf/protobuf-lite/3.0.1/) `protobuf-lite` to its modern equivalent, `protobuf-javalite`. This change should mostly not be user-visible, since we [declare this dependency as `optional`](https://github.com/google/truth/blob/1de76958abc8f3dbfad07d142bd290dc53d7427a/extensions/liteproto/pom.xml#L43). The new version doesn't support the `optimize_for = LITE_RUNTIME` option in `.proto` files, presumably on the theory that you should be able to compile the same protobuf for both the "lite" and "speed" runtimes. Unfortunately, xolstice/protobuf-maven-plugin does not provide a way to pass the `lite` option to the protobuf compiler. (That option was added in https://github.com/xolstice/protobuf-maven-plugin/commit/3ae165e5f6b33f8a6221ece11cc79a7df5eeb8df, but that is not yet part of [a release](https://github.com/xolstice/protobuf-maven-plugin/tags). And the project doesn't appear very active lately.) So we can't generate the Java protobuf classes with that plugin. Maybe there's another plugin we could use, if only one that runs an arbitrary executable? But for now, I'm taking another approach: I'm submitting the generated sources. To generate them, I ran `mvn clean install -X -e`, found the location of the protobuf executable and arguments in the output, and ran it with `--java_out=lite:/the/path/from/the/output`. Then I tweaked the Maven setup to build those sources instead of generating and building the protobuf ones. Yuck. This could cause someone some frustration down the line when it comes time to make a change to the test protos. But given that we haven't had to change those protos yet in their 6+ years of existence, I'm hoping for the best. Another alternative for us to consider is to just not run these specific tests in our open-source build. RELNOTES=n/a PiperOrigin-RevId: 486951466

Commit:f272084
Author:Google Java Core Libraries
Committer:Google Java Core Libraries

Fix FieldSets.fromSetFields() to handle multiple messages with different oneof fields set RELNOTES=Fix bug in comparingExpectedFieldsOnly() regarding oneof fields PiperOrigin-RevId: 356583805

The documentation is generated from this commit.

Commit:f36040d
Author:Chris Povirk

Revert "Roll forward from 2eb500240d0b71d54500afdd7f3eb82e445e31bc after fixing field scope issues:" This reverts commit b50d878b75b3b8b81246389cd39e5cd731b531f8. We need to resolve some remaining API questions before including this in a release.

Commit:b50d878
Author:otjdavies
Committer:Nick Glorioso

Roll forward from 2eb500240d0b71d54500afdd7f3eb82e445e31bc after fixing field scope issues: - Add checks for FieldScope for * google.protobuf.Any.type_url * google.protobuf.Any.value - Add new tests for field scope and field absence. - Added workaround for b/144793871 ---- ProtoTruth: Unpack Any before comparing RELNOTES: - `ProtoTruthMessageDifferencer`: Unpacks Any messages before comparing the unpacked message. Using a user supplied TypeRegister in the FluentEqualityConfig. If the message descriptors can not be found in the TypeRegister that it reverts to the original behaviour of comparing the Any messages value ByteString. - `ProtoSubject`: added `usingTypeRegistry(TypeRegistry)` method to allow the user to provide a TypeRegistry for processing the Any fields it encounters. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=281689011

Commit:921d5b3
Author:otjdavies
Committer:Nick Glorioso

Rollback 2eb500240d0b71d54500afdd7f3eb82e445e31bc *** Reason for rollback *** Caused continuous build failure, due to change of semantics of handling of typeUrl and value fields of any messages. NO_SQ=PURE_ROLLBACK *** Original change description *** ProtoTruth: Unpack Any before comparing Relnotes: - `ProtoTruthMessageDifferencer`: Unpacks Any messages before comparing the unpacked message. Using a user supplied TypeRegister in the FluentEqualityConfig. If the message descriptors can not be found in the TypeRegister that it reverts to the original behaviour of comparing the Any messages value ByteString. - `ProtoSubject`: added `usingTypeRegistry(TypeRegistry)` method to allow the user to provide a TypeRegistry for processing the Any f... *** ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=280757635

Commit:2eb5002
Author:otjdavies
Committer:Chris Povirk

ProtoTruth: Unpack Any before comparing Relnotes: - `ProtoTruthMessageDifferencer`: Unpacks Any messages before comparing the unpacked message. Using a user supplied TypeRegister in the FluentEqualityConfig. If the message descriptors can not be found in the TypeRegister that it reverts to the original behaviour of comparing the Any messages value ByteString. - `ProtoSubject`: added `usingTypeRegistry(TypeRegistry)` method to allow the user to provide a TypeRegistry for processing the Any fields it encounters. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=280730239

Commit:07102f4
Author:dploch
Committer:Ron Shapiro

Treat Proto3 primitives as with field absence ignored by default, for saner behavior of approximate float/double comparisons. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=231263179

Commit:9412383
Author:dploch
Committer:Ron Shapiro

Get tests working in open-source for proto-truth RELNOTES=Tests for proto-truth enabled ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=205003064

Commit:10b5829
Author:dploch
Committer:Chris Povirk

Allow ignoringFieldAbsence(), ignoringRepeatedFieldOrder(), ignoringExtraRepeatedFieldElements(), usingDoubleTolerance() and usingFloatTolerance() to be scoped to specific fields specified by the user, instead of being all-or-nothing options. RELNOTES=n/a ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=203038701

Commit:f070204
Author:dploch
Committer:Ron Shapiro

Add ignoringExtraRepeatedFieldElements() to ProtoTruth. RELNOTES=Add ignoringExtraRepeatedFieldElements() to ProtoTruth. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=191472165

Commit:6cd8068
Author:dploch
Committer:Ron Shapiro

Add support for float and double comparisons in ProtoTruth as per the API doc, https://docs.google.com/document/d/1T3wGIlanCu61_3-ozSL4u_lhfRoUpBcv0alqEM-UesE/edit. Include a deprecated, stripped legacy mode to mimic ProtoAssert behavior. RELNOTES=Add support for float and double comparisons in ProtoTruth. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186062720

Commit:a94b128
Author:dploch
Committer:Chris Povirk

Implement IterableProtoSubject. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=137572300

Commit:f5a1def
Author:dploch
Committer:Chris Povirk

Rename matchesContentOfSubMessages -> matchStateAppliesForAllSubPaths and document clear semantics. Fix logic for field descriptor matching and compound field scopes to match the new documentation. Also adds caching to the main internal field scope methods (since they're now called multiple times), and a small battery of tests to FieldScopesTest. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=135822586

Commit:a54686c
Author:dploch
Committer:Chris Povirk

Initial implementation of ProtoSubject extension. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=132888248

Commit:95b8ef1
Author:cgruber
Committer:Ron Shapiro

ProtoLiteSubject.protoLite() -> LiteProtoSubject.liteProtos() The point is to permit "about" to be meaningful on reading. The factory is about the abstract conceptual "type" and it reads more consistently with english norms if it's plural. `assertAbout(liteProtos()).that(thisProto).blahblah();` ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=131231059

Commit:5e5bccf
Author:dploch
Committer:Chris Povirk

Implementation of ProtoLiteSubject for Truth. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=126434153