Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
636 commits
Select commit Hold shift + click to select a range
ba0058e
Int64 tests (#545)
dconeybe Apr 24, 2024
386225a
ScalarVariablesAndDataIntegrationTest.kt: re-enable tests for empty l…
dconeybe Apr 25, 2024
28bafec
KeyVariablesIntegrationTest.kt: added test: primaryKeyIsNested() (#547)
dconeybe Apr 25, 2024
f8cf2cb
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe Apr 25, 2024
a085df6
firebase-dataconnect.gradle.kts: use id("copy-google-services") inste…
dconeybe Apr 25, 2024
552eb73
Add integration tests for "on" and "via" relations (#548)
dconeybe Apr 25, 2024
ea5691e
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe Apr 25, 2024
5731997
demo_ops.gql created by merging demo_foo_ops.gql and demo_scalar_ops.gql
dconeybe Apr 25, 2024
f802fed
gradle.properties: set version to 0.0.1-dev
dconeybe Apr 25, 2024
e695b85
Logger.kt: include version in log messages
dconeybe Apr 25, 2024
58227ed
Set version to 0.0.1 (#549)
dconeybe Apr 25, 2024
d31b005
Set version to 0.0.2-dev
dconeybe Apr 25, 2024
9786180
ProtoStructEncoder.kt: fix bug where null variable values were not be…
dconeybe Apr 25, 2024
060f1df
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe Apr 25, 2024
53edd9b
TimestampSerializer.kt: fix and increase unit test coverage (#551)
dconeybe Apr 26, 2024
974ff02
DataConnectUntypedResponseIntegrationTest.kt: comment out test cases …
dconeybe Apr 26, 2024
c6a26ad
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe Apr 26, 2024
bd9fd5e
DataConnectGrpcClient.kt: include full RPC name in log message
dconeybe Apr 29, 2024
155e672
Change directory and Java package of proto files, to avoid confusion …
dconeybe Apr 29, 2024
d9da8a4
demo_ops.gql: make query parameters required that were accidentally m…
dconeybe Apr 29, 2024
85a193c
Update generated code that was missed when optional variables were ch…
dconeybe Apr 29, 2024
d430d71
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe Apr 30, 2024
f312a9a
Change dependencies to public versions in gradle build scripts (#554)
dconeybe Apr 30, 2024
188af0e
upgrade firebase-auth dependency to the latest, 22.3.1 (was 20.0.0)
dconeybe Apr 30, 2024
33064cd
Refactor data connect auth code, and, especially, fix AuthIntegration…
dconeybe Apr 30, 2024
07b6368
Rename DataConnectUntypedResponseIntegrationTest.kt -> DataConnectUnt…
dconeybe May 1, 2024
acd6e7a
Update for UUID strings without dashes (#556)
dconeybe May 1, 2024
96ce0fd
emulator.sh: provide an easy way to launch the emulator without the a…
dconeybe May 1, 2024
c34b0f9
DataConnectSettings.kt: add STAGING_DATACONNECT_HOST
dconeybe May 1, 2024
4ca6482
DataConnectSettings.kt: AUTOPUSH_DATACONNECT_HOST added
dconeybe May 1, 2024
28d9fe8
DataConnectBackend.kt: added
dconeybe May 1, 2024
8760d4f
Add builder for variables to support optional variables (#553)
dconeybe May 2, 2024
ceb98c1
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe May 2, 2024
755972a
Release DataConnect version 0.0.2 (#557)
dconeybe May 2, 2024
75bfcd0
Set version to 0.0.3-dev
dconeybe May 2, 2024
8962847
release.sh added for dataconnect (#558)
dconeybe May 2, 2024
35eacb6
Update generated code to suppress more kotlin warnings, as per cl/630…
dconeybe May 2, 2024
c1a3a17
DataConnectBackend.kt: fixed bugs in fromInstrumentationArgument() an…
dconeybe May 2, 2024
a23fb2f
DataConnectSettings.kt: fix default host to firebasedataconnect.googl…
dconeybe May 2, 2024
068efdf
Use DataConnectBackend.kt in integration tests
dconeybe May 2, 2024
a6807e8
DataConnectGrpcClient.kt: add x-goog-request-params header (#559)
dconeybe May 2, 2024
45d8192
TestDataConnectFactory.kt: force a FirebaseApp to be specified, since…
dconeybe May 2, 2024
e0b8382
TestConnectorFactory.kt: make sure to use the settings from the DataC…
dconeybe May 2, 2024
e9f50dc
DataConnectGrpcClient.kt: log the metadata
dconeybe May 2, 2024
34fd4ed
Modify some tests to inherit from DataConnectIntegrationTestBase
dconeybe May 3, 2024
3c04775
FirebaseAuthBackend.kt added, and AuthIntegrationTest.kt modified to …
dconeybe May 3, 2024
ae7d61c
refactor emulator directory to more closely match what is generated b…
dconeybe May 3, 2024
2cc1c19
start_postgres_pod.sh: improve the wording regarding local connection…
dconeybe May 3, 2024
e25efeb
emulator_noauth.sh: add back -local_connection_string since running t…
dconeybe May 3, 2024
3e5fcef
Fix hardcoded serviceId and location in tests
dconeybe May 3, 2024
02d2f33
PostsConnector.kt: fix hardcoded serviceId and location
dconeybe May 3, 2024
78d31e2
DataConnectAuth.kt/DataConnectGrpcClient.kt: consistently print scrub…
dconeybe May 3, 2024
26c9064
DataConnectGrpcClient.kt: remove the 'Bearer' prefix of the x-firebas…
dconeybe May 3, 2024
e5bf084
Factor out location and serviceId used in tests
dconeybe May 3, 2024
d663045
emulator_noauth.sh: explicitly specify 'us-central1' so it's obvious …
dconeybe May 3, 2024
e87d7a8
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe May 4, 2024
8a6b018
delete the firebase-dataconnect demo app, which was mostly useless
dconeybe May 6, 2024
895fc1c
DataConnectSettingsUnitTest.kt: fix expected default host to "firebas…
dconeybe May 6, 2024
971bdf1
DataConnectUntypedDataIntegrationTest.kt: add tests for null lists (#…
dconeybe May 6, 2024
4c1940a
Add copyright notice to generated code (b/336814936) (#561)
dconeybe May 6, 2024
22b111d
generate the code into the 'build' directory
dconeybe May 6, 2024
f8ecfa5
QueryApiProposal.kt removed, since it is no longer needed
dconeybe May 6, 2024
40d3ac8
Add APL2 license headers to all files (#562)
dconeybe May 6, 2024
f6e8a75
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe May 6, 2024
ff9a735
Merge remote-tracking branch 'public/master' into dataconnect
dconeybe May 7, 2024
ceb6fab
Remove the 'dependsOn' kludge in gradle.kts files
dconeybe May 7, 2024
46b98ff
Add scripts for releasing a scrubbed version of the firebase-dataconn…
dconeybe May 7, 2024
5e2cc45
emulator_noauth.sh: remove -disable_sdk_generation=true so that codeg…
dconeybe May 7, 2024
acd65e5
demo_ops.gql: fix UpdateFoosByBar now that 'update' is no longer avai…
dconeybe May 8, 2024
d9c2b2a
gradle.properties: set version=16.0.0-alpha02 (was 0.0.3-dev)
dconeybe May 8, 2024
f7f4cee
clean up gradle files
dconeybe May 8, 2024
91b4194
TimestampSerializerUnitTest.kt: add unit tests for decoding the min a…
dconeybe May 8, 2024
c897ea6
ScalarVariablesAndDataIntegrationTest.kt: add tests for float, int, a…
dconeybe May 8, 2024
2f07042
ListVariablesAndDataIntegrationTest.kt added (#5943)
dconeybe May 8, 2024
e387e79
ScalarVariablesAndDataIntegrationTest.kt: use auto-generated key inst…
dconeybe May 8, 2024
a021eab
Delete obsolete scripts: iorelease.sh, iorelease_tests.sh, release.sh
dconeybe May 9, 2024
a63f40e
emulator/.gitignore: ignore some files created by the firebase cli
dconeybe May 9, 2024
0bb46ec
DataConnectAuth.kt: fix bug in toScrubbedAccessToken() that was showi…
dconeybe May 9, 2024
423669a
emulator_noauth.sh: update flags for verbose logs
dconeybe May 10, 2024
7015978
emulator_noauth.sh: more logging fixes
dconeybe May 10, 2024
afdb547
gradle.properties: set version=16.0.0-alpha03 (was 16.0.0-alpha02)
dconeybe May 13, 2024
9304aef
Add +/- time zone support in TimestampSerializer (#5946)
cherylEnkidu May 13, 2024
a0dcd2a
firebase-dataconnect.gradle.kts: set previewMode = "alpha" (#5963)
dconeybe May 14, 2024
1a9314e
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe May 14, 2024
9d6c358
scripts/dokkaHtml.sh: use python or python3 executable, whichever one…
dconeybe May 14, 2024
1c57be9
OptionalVariable.kt: fix potential NPE in toString() and hashCode()
dconeybe May 14, 2024
5c85bb8
kdoc added to all public members
dconeybe May 14, 2024
43ebd1d
FirebaseDataConnect.kt: add a link to the public docs in the class co…
dconeybe May 15, 2024
b3eb0ad
TimestampSerializerUnitTest.kt: add more invalid case test coverage
dconeybe May 15, 2024
05ecd7d
Use Javelin instead of python to server the dokkaHtml output.
dconeybe May 15, 2024
3842161
firebase-dataconnect.gradle.kts: enable dokkaHtml caching for faster …
dconeybe May 15, 2024
3da3483
kdoc refinements
dconeybe May 15, 2024
7b15a3f
firebase-dataconnect.gradle.kts: use mustRunAfter instead of dependsO…
dconeybe May 15, 2024
2b7a0db
more ktdoc refinements
dconeybe May 15, 2024
81301bc
final ktdoc fixes
dconeybe May 15, 2024
9df2596
FirebaseDataConnect.kt: add release notes to kdoc
dconeybe May 15, 2024
d9411e5
FirebaseDataConnect.kt: update release notes for 16.0.0-alpha03
dconeybe May 15, 2024
35bf5c4
Bump firebase-dataconnect version to 16.0.0-alpha04 (was 16.0.0-alpha03)
dconeybe May 15, 2024
f9b5dd9
Comment the equals() and hashCode() methods in GeneratedConnector and…
dconeybe May 15, 2024
454eb36
demo added
dconeybe May 15, 2024
f657420
DateSerializer.kt: fix time zone issues (#5976)
dconeybe May 17, 2024
3483b14
demo: modified connector and project name, and cleaned up directory s…
dconeybe May 18, 2024
328e5e4
replace 'dataconnect-demo' with 'prjh5zbv64sv6' to avoid confusions
dconeybe May 18, 2024
8935d39
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe May 21, 2024
349e201
Complete integration test coverage for scalar variables and fields, b…
dconeybe May 21, 2024
309ea95
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe May 22, 2024
91279b0
Change default port of useEmulator() to 9399 (was 9510). (#5996)
dconeybe May 23, 2024
8fc4934
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe May 23, 2024
8b5dc30
.gitignore: add dataconnect-debug.log
dconeybe May 28, 2024
54df345
FirebaseDataConnectIntegrationTest.kt: update emulator port to 9399 (…
dconeybe May 28, 2024
d90d57b
FirebaseDataConnect.kt: update release notes with version of data con…
dconeybe May 29, 2024
58e1ebd
FirebaseDataConnect.kt: set release date for 16.0.0-alpha04 to May 29…
dconeybe May 29, 2024
d7a8429
Bump firebase-dataconnect version to 16.0.0-alpha05 (was 16.0.0-alpha04)
dconeybe May 29, 2024
205bd3e
gradle.properties: append '-dev' to the version number, making it '16…
dconeybe May 29, 2024
0ce9d3a
Fix grpc shutdown (#6003)
dconeybe May 29, 2024
9f02c08
Fix two useEmulator() integration tests to work even when the emulato…
dconeybe May 29, 2024
7294064
TimestampScalarIntegrationTest.kt: increase the timeout for invalid t…
dconeybe May 29, 2024
a7f0692
firebase-dataconnect/RELEASING.md added
dconeybe May 30, 2024
d5cdd29
DataConnectGrpcRPCs.kt: fix strict mode violations when initializing …
dconeybe May 30, 2024
dca18c9
Improve debug logging of GRPC requests and responses (#6006)
dconeybe May 30, 2024
305edcd
FirebaseDataConnect.kt: minor improvements to the release notes layout
dconeybe May 30, 2024
918300b
Minor improvements to logging of GRPC events
dconeybe May 30, 2024
6ec9628
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe Jun 6, 2024
12b5329
Update scripts for Data Connect Emulator v1.2.0 (#6020)
dconeybe Jun 6, 2024
3d1efb3
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe Jun 10, 2024
bceea42
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe Jun 11, 2024
c49d8f4
use mockk instead of mockito
dconeybe Jun 11, 2024
7bcebfe
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe Jun 12, 2024
f2ad6d8
DataConnectGrpcClient.kt: minor cleanup of moving googRequestParamsHe…
dconeybe Jun 12, 2024
16ca596
DataConnectAuth.kt: split into interface/implementation so that it ca…
dconeybe Jun 12, 2024
70948c9
Add x-goog-api-client header to all grpc requests (#6029)
dconeybe Jun 12, 2024
eb735a5
Merge remote-tracking branch 'origin/master' into dataconnect
dconeybe Jun 13, 2024
2abd62e
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jun 18, 2024
1a4e284
libs.versions.toml: define versions of kotlin serialization and dokka…
dconeybe Jun 18, 2024
1714dfe
add kotest dependencies, and upgrade the kotest dependency in libs.ve…
dconeybe Jun 18, 2024
d2b84b2
add some kotest utils
dconeybe Jun 18, 2024
b87e7ca
DataConnectError.kt: rewrite without a data class 'impl' and add sour…
dconeybe Jun 18, 2024
c3e3967
InProcessDataConnectGrpcServer.kt: add abililty to examine the metadata
dconeybe Jun 18, 2024
69187ac
DataConnectAuth.kt: work around IllegalStateException when calling ad…
dconeybe Jun 18, 2024
e054e28
DataConnectAuth.kt: merge interface/impl into just impl
dconeybe Jun 18, 2024
77f1bd7
DataConnectGrpcMetadata.kt added
dconeybe Jun 18, 2024
a18c3ca
DataConnectGrpcRPCs.kt: move some logic from DataConnectGrpcClient.kt…
dconeybe Jun 18, 2024
197f750
OldQueryManager.kt: split into multiple files rather than one, monoli…
dconeybe Jun 18, 2024
209051e
cli_wrapper.sh: don't add -logtostderr since the firebase-tools wrapp…
dconeybe Jun 18, 2024
0b3e63c
emulator.sh: don't specify --project since the upcoming emulators don…
dconeybe Jun 18, 2024
300f26d
Fix timezone calculation in Timestamp (#6038)
cherylEnkidu Jun 18, 2024
ff17641
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jun 18, 2024
e3a437d
FirebaseDataConnectImpl.kt: report data connect emulator info (e.g. v…
dconeybe Jun 18, 2024
5191c44
FirebaseDataConnectImpl.kt: stream errors from emulator using the new…
dconeybe Jun 18, 2024
b91a71c
DataConnectAuth.kt: refactor get token logic into 2 methods
dconeybe Jun 18, 2024
356a1cf
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jun 20, 2024
a57c8b2
DataConnectLogLevelRule.kt: move from androidTestutil to testutil
dconeybe Jun 20, 2024
d69d5aa
DelayedDeferred.kt: re-write to be more usable
dconeybe Jun 20, 2024
ec3ad40
SuspendingCountDownLatch.kt added
dconeybe Jun 20, 2024
24b1b28
DataConnectAuth.kt: major refactor and add unit tests
dconeybe Jun 20, 2024
7e7b07e
Arbs.kt: fun Arb.Companion.projectId() added
dconeybe Jun 21, 2024
ab44c74
DataConnectAuthUnitTest.kt: refactor and move Logger mocking function…
dconeybe Jun 21, 2024
42563eb
TestUtils.kt: mark randomOperationName() as deprecated; use Arb.opera…
dconeybe Jun 21, 2024
91b5754
FirebaseDataConnectImpl.kt: minor internal cleanup; no functionality …
dconeybe Jun 21, 2024
57b76b3
DataConnectGrpcClientUnitTest.kt: refactor and improve the unit tests…
dconeybe Jun 21, 2024
31abc94
Retry requests that fail with UNAUTHENTICATED with a fresh auth token…
dconeybe Jun 21, 2024
736cc63
DataConnectGrpcMetadata.kt: fix log message that lacked +
dconeybe Jun 21, 2024
172e1c6
AuthIntegrationTest.kt: add test for UNAUTHENTICATED response
dconeybe Jun 21, 2024
7626a23
AuthIntegrationTest.kt: use kotest instead of Truth
dconeybe Jun 22, 2024
014b861
FirebaseDataConnect.kt: tweak release notes
dconeybe Jun 24, 2024
4c207a8
Release firebase-dataconnect version 16.0.0-alpha05
dconeybe Jun 24, 2024
2ad607a
Bump firebase-dataconnect version to 16.0.0-alpha06-dev and add "unre…
dconeybe Jun 24, 2024
897ca46
RELEASING.md: minor tweak to an example commit message
dconeybe Jun 24, 2024
416526c
RELEASING.md: add instructions to use google-services.json in the con…
dconeybe Jun 24, 2024
8455af1
DataConnectBackend.kt: add kdoc documentation
dconeybe Jun 24, 2024
1b1c5d1
add copyright blurb to files that lacked it
dconeybe Jun 24, 2024
cc0a7bd
protoc-gen-firebase-encoders.gradle: use libs.versions.toml to fix pr…
dconeybe Jun 24, 2024
1674510
InProcessDataConnectGrpcServer.kt: include valid sample data in the d…
dconeybe Jun 24, 2024
3c073c7
Make normal android libraries rather than 'firebase' android librarie…
dconeybe Jun 24, 2024
5551357
firebase-dataconnect/api.txt: updated by running `./gradlew :firebase…
dconeybe Jun 24, 2024
0cc79a1
dataconnect.yaml: add location, since it is required here instead of …
dconeybe Jun 25, 2024
d2b981e
person_ops.gql: switch @auth(level: USER) to @auth(level: USER_ANON) …
dconeybe Jun 25, 2024
7da43d6
Fix character case of codegen in the cli built from google3, which wi…
dconeybe Jun 25, 2024
a9f9aed
check generated code into github so that CI builds will work without …
dconeybe Jun 25, 2024
a334bdc
format generated code with ktfmt
dconeybe Jun 25, 2024
fb4ab76
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jun 25, 2024
0c6481c
RELEASING.md: minor tweaks
dconeybe Jun 26, 2024
c38d53d
DataConnectAuth.kt: refactor to use atomics rather than mutexes
dconeybe Jun 26, 2024
5fb2516
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 8, 2024
c9e8298
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 10, 2024
3149ffc
Remove package suffix from outputDir in connector.yaml for kotlin sdk…
dconeybe Jul 16, 2024
ce9fb56
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 16, 2024
a71bd61
Use spotless instead of ktfmt for code formatting, as the repo has mi…
dconeybe Jul 16, 2024
0ce0a53
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 18, 2024
475dab7
QueryRefIntegrationTest.kt: modify executeShouldSupportMassiveConcurr…
dconeybe Jul 18, 2024
a22b1c6
QueryRefIntegrationTest.kt: modify executeShouldSupportMassiveConcurr…
dconeybe Jul 18, 2024
29d20e4
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 22, 2024
c6ceab4
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Jul 29, 2024
8f74bb7
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 1, 2024
b2b304c
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 6, 2024
4482893
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 7, 2024
a8f1ca2
Data Connect Gradle plugin added (#6162)
dconeybe Aug 8, 2024
31c440a
Delete code generated by the data connect cli (#6163)
dconeybe Aug 9, 2024
abaa106
Use the new Data Connect gradle plugin in the 'connectors' submodule …
dconeybe Aug 9, 2024
dbf24b1
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 12, 2024
54608a6
InstrumentationUtils.kt added (#6174)
dconeybe Aug 12, 2024
404c2b8
Refactor Auth to naturally support future AppCheck support (#6175)
dconeybe Aug 12, 2024
3ad6721
GeneratedConnector.kt: add equals() and hashCode() (#6177)
dconeybe Aug 12, 2024
58b6e2c
AppCheck support added to Data Connect (#6176)
dconeybe Aug 12, 2024
75d5c7e
toScrubbedAccessToken() changed to specify if the token is the appche…
dconeybe Aug 12, 2024
93e8912
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 13, 2024
596b3f5
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 14, 2024
9fbfef8
Add kotlin/gen to x-goog-request-params when used from the generated …
dconeybe Aug 14, 2024
462c349
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 19, 2024
65520e3
./gradlew firebase-dataconnect:generateApiTxtFile
dconeybe Aug 19, 2024
c574b45
spotlessApply
dconeybe Aug 19, 2024
f3cfd96
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 19, 2024
045cea9
Change platform logging tag to "fire-data-connect", was "fire-datacon…
dconeybe Aug 20, 2024
fe61590
Download the Data Connect executable from the public URL in Gradle pl…
dconeybe Aug 20, 2024
8cbba7b
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 20, 2024
81239e4
FirebaseAppUnitTestingRule.kt: improve class comments to note that th…
dconeybe Aug 20, 2024
5ddf602
AppCheckIntegrationTest.kt: Use FirebaseOptions.applicationId instead…
dconeybe Aug 20, 2024
2b00a5b
DataConnectGrpcMetadata.kt: minor code cleanup
dconeybe Aug 20, 2024
2a582c0
x-firebase-gmpid header added to data connect (#6198)
dconeybe Aug 20, 2024
7ea4958
DataConnectGrpcMetadata.kt: Omit x-firebase-gmpid if appId is empty o…
dconeybe Aug 21, 2024
093bfc8
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 23, 2024
d147d1f
Fix firebase-vertexai to use libs.version.toml
dconeybe Aug 23, 2024
b49310f
remove traces of ktfmt
dconeybe Aug 23, 2024
dcccf16
AnyScalarIntegrationTest.kt added (#6213)
dconeybe Aug 23, 2024
fe46c1d
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Aug 27, 2024
9edaf19
plugin: print logs if codegen fails
dconeybe Aug 27, 2024
c4a4865
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 4, 2024
c7e5328
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 6, 2024
1b6d311
plugin: add schemaExtensionsOutputEnabled
dconeybe Aug 28, 2024
bd10379
firebase.json: remove location
dconeybe Sep 5, 2024
71613c5
DataConnectGrpcClient.kt: only check equality with Status.UNAUTHENTIC…
dconeybe Sep 6, 2024
a3b6334
AppCheckIntegrationTest.kt: expect PERMISSION_DENIED instead of UNAUT…
dconeybe Sep 6, 2024
cd76286
AppCheckIntegrationTest.kt fixups
dconeybe Sep 6, 2024
cb19122
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 10, 2024
106cb6a
switch back to us-central1, since its App Check enforcement now works
dconeybe Sep 10, 2024
9e1912c
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 11, 2024
408a513
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 12, 2024
7cb6c47
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 13, 2024
d752534
Remove the defunct demo code
dconeybe Sep 13, 2024
a52410e
rename plugin to gradleplugin
dconeybe Sep 13, 2024
3552bf4
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 16, 2024
dfa2340
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 18, 2024
ce7fb34
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 19, 2024
22a34d1
Overhaul AnyScalarIntegrationTest.kt (#6283)
dconeybe Sep 19, 2024
23cb8e2
gradleplugin: add support for 1.3.6 and 1.3.7
dconeybe Sep 20, 2024
8d86ef2
Merge remote-tracking branch 'origin/main' into dataconnect
dconeybe Sep 20, 2024
7b01d88
gradleplugin: add support for 1.3.8, which fixes codegen for `Any` sc…
dconeybe Sep 20, 2024
30c95d9
Delete the "new" QueryManager, which was unused, and rename "OldQuery…
dconeybe Sep 20, 2024
dd5a27b
updated firebase-dataconnect/api.txt by running ./gradlew firebase-da…
dconeybe Sep 20, 2024
2110dae
Merge branch 'dataconnect' into dataconnect-merge_to_main
dconeybe Sep 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ buildscript {
classpath 'com.google.firebase:firebase-appdistribution-gradle:5.0.0'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.5'
classpath "com.diffplug.spotless:spotless-plugin-gradle:7.0.0.BETA1"
classpath 'io.javalin:javalin:6.1.4'
}
}

Expand Down
1 change: 1 addition & 0 deletions firebase-dataconnect/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dataconnect.local.properties
11 changes: 11 additions & 0 deletions firebase-dataconnect/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# 0.0.2 (May 02, 2024) https://github.com/FirebasePrivate/firebase-android-sdk/pull/557
- PR #553: Optional variables now can be omitted entirely, using a Kotlin DSL style builder.
- PR #556: Update for UUID strings without dashes.
- PR #555: Refactor FirebaseAuth integration and fix some bugs.
- PR #554: Remove requirement for a custom version of firebase-common.
- PR #551: Fixed bugs with Timestamp encoding/decoding when sending to/from the backend.
- PR #550: fix bug where null variables were not being sent, but should have been sent as null.
- Requires cli compiled at cl/629905179 or later (e.g. cli_630037920_linux_x86_64)

# 0.0.1 (Apr 25, 2024) https://github.com/FirebasePrivate/firebase-android-sdk/pull/549
- First release for internal testing.
116 changes: 116 additions & 0 deletions firebase-dataconnect/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# firebase-dataconnect

This is the Firebase Data Connect component of the Firebase Android SDK.

## Building

All Gradle commands should be run from the source root (which is one level up
from this folder). See the README.md in the source root for instructions on
publishing/testing Firebase Data Connect.

To build Firebase Data Connect, from the source root run:
```bash
./gradlew :firebase-dataconnect:assembleRelease
```

## Unit Testing

To run unit tests for Firebase Data Connect, from the source root run:
```bash
./gradlew :firebase-dataconnect:check
```

## Integration Testing

Running integration tests requires a Firebase project because they would try
to connect to the Firebase Data Connect backends.

See [here](../README.md#project-setup) for how to setup a project.

Once you setup the project, download `google-services.json` and place it in
the source root.

Make sure you have created a Firebase Data Connect instance for your project,
before you proceed.

By default, integration tests run against the Firebase Data Connect emulator.

### Setting up the Firebase Data Connect Emulator

The integration tests require that the Firebase Data Connect emulator is running
on port NNNN (TODO: fill in correct value), which is default when running it via
CLI.

* [Install the Firebase CLI](https://firebase.google.com/docs/cli/).
```
npm install -g firebase-tools
```
* [Install the Firebase Data Connect
emulator](https://firebase.google.com/docs/FIX_URL/security/test-rules-emulator#install_the_emulator).
```
firebase setup:emulators:dataconnect
```
* Run the emulator
```
firebase emulators:start --only dataconnect
```
* Select the `Firebase Data Connect Integration Tests (Firebase Data Connect
Emulator)` run configuration to run all integration tests.

To run the integration tests against prod, select
`DataConnectProdIntegrationTest` run configuration.

### Run on Local Android Emulator

Then simply run:
```bash
./gradlew :firebase-dataconnect:connectedCheck
```

### Run on Firebase Test Lab

You can also test on Firebase Test Lab, which allow you to run the integration
tests on devices hosted in Google data center.

See [here](../README.md#running-integration-tests-on-firebase-test-lab) for
instructions of how to setup Firebase Test Lab for your project.

Run:
```bash
./gradlew :firebase-dataconnect:deviceCheck
```

## Code Formatting

Run below to format Kotlin code:
```bash
./gradlew :firebase-dataconnect:ktfmtFormat
```

Run below to format Java code:
```bash
./gradlew :firebase-dataconnect:googleJavaFormat
```

See [here](../README.md#code-formatting) if you want to be able to format code
from within Android Studio.

## Build Local Jar of Firebase Data Connect SDK

```bash
./gradlew -PprojectsToPublish="firebase-dataconnect" publishReleasingLibrariesToMavenLocal
```

Developers may then take a dependency on these locally published versions by adding
the `mavenLocal()` repository to your [repositories
block](https://docs.gradle.org/current/userguide/declaring_repositories.html) in
your app module's build.gradle.

## Misc
After importing the project into Android Studio and building successfully
for the first time, Android Studio will delete the run configuration xml files
in `./idea/runConfigurations`. Undo these changes with the command:

```
$ git checkout .idea/runConfigurations
```
247 changes: 247 additions & 0 deletions firebase-dataconnect/RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
# Release Firebase Data Connect Android SDK

Created on May 30, 2024 by @dconeybe

Last updated June 25, 2024 by @dconeybe

This document outlines the steps for releasing _alpha_ versions of the Firebase Data Connect Android
SDK. At the time of writing (June 25, 2024) the Data Connect SDK lives in a branch named
`dataconnect`. Once the `dataconnect` branch is merged into the `master` branch, these steps will be
obsolete and will need to be updated.

### Set Release Date in FirebaseDataConnect.kt

Open [FirebaseDataConnect.kt](https://github.com/firebase/firebase-android-sdk/blob/dataconnect/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt)
in a text editor and find the "Release Notes" section in the class documentation. There will be a
subsection named something like

```
##### 16.0.0-alpha05 (not yet released)
```

Replace "(not yet released)" with the anticipated release date, like this:

```
##### 16.0.0-alpha05 (June 24, 2024)
```

### Remove "-dev" Version Suffix in gradle.properties

Open [gradle.properties](https://github.com/firebase/firebase-android-sdk/blob/dataconnect/firebase-dataconnect/gradle.properties)
in a text editor and remove the `-dev` suffix from the version number.

For example, for the `16.0.0-alpha05` release, change

```
version=16.0.0-alpha05-dev
```

to

```
version=16.0.0-alpha05
```

### Commit the Changes to FirebaseDataConnect.kt and gradle.properties

Commit the Changes to `FirebaseDataConnect.kt` and `gradle.properties` in a commit with a message
like this:

```
Release firebase-dataconnect version 16.0.0-alpha05
```

Make note of the hash of this commit, as it will be used later as this will be the commit upon which
the release will be based.

### Add New Release Notes Section in FirebaseDataConnect.kt

Open [FirebaseDataConnect.kt](https://github.com/firebase/firebase-android-sdk/blob/dataconnect/firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/FirebaseDataConnect.kt)
in a text editor and find the "Release Notes" section in the class documentation. Add a new
subsection for the new version, so that release notes can be added here and accumulated until the
next release.

For example, if the next release would be `16.0.0-alpha06`, add this section:

```
##### 16.0.0-alpha06 (not yet released)
```

### Bump Version and Add "-dev" Suffix in gradle.properties

Open [gradle.properties](https://github.com/firebase/firebase-android-sdk/blob/dataconnect/firebase-dataconnect/gradle.properties)
in a text editor and bump the version number and add the `-dev` suffix from the version number.

For example, if the next release would be `16.0.0-alpha06`, change:

```
version=16.0.0-alpha05
```

to

```
version=16.0.0-alpha06-dev
```

The philosophy is that at all times during development the version in `gradle.properties` reflects
the next anticipated version number with `-dev` appended. Only for a single commit will the `-dev`
suffix be removed, and that will be the commit that is actually released. So, in a perfect world,
there would be no intervening commits between the one that _removes_ the `-dev` suffix and the one
that bumps the version and adds back the `-dev` suffix.

### Commit the Changes to FirebaseDataConnect.kt and gradle.properties

Commit the Changes to `FirebaseDataConnect.kt` and `gradle.properties` in a commit with a message
like this:

```
Bump firebase-dataconnect version to 16.0.0-alpha06-dev and add "unreleased" section to release notes.
```

### Merge the Release Commit into the Release Branch

Note the hash of the commit made in a previous step that removed the `-dev` suffix from the version
number in `gradle.properties`. This commit will hereafter be referred to as the "release commit".

Check out the `dataconnect-rel` branch. Merge in the "release commit". This can be done by running
these commands:

```
git fetch
git checkout --detach remotes/origin/dataconnect-rel
# Replace the hash below with that of your "release commit"
git merge 58e1ebd3ac7e243878e5ddba6bea02d6788059ff
```

The merge should be clean. If it is not, you will need to investigate.

To ensure the merge went as expected, run this diff command:

```
# Replace the hash below with that of your "release commit"
git diff 58e1ebd3ac7e243878e5ddba6bea02d6788059ff..HEAD
```

The output should be exactly:

```
diff --git a/release.json b/release.json
new file mode 100644
index 000000000..168311d92
--- /dev/null
+++ b/release.json
@@ -0,0 +1,6 @@
+{
+ "name": "dataconnect-release",
+ "libraries": [
+ ":firebase-dataconnect"
+ ]
+}
```

This `release.json` file is used by the release process, and specifies that only
firebase-dataconnect should be released. If the diff is anything other than this, investigate.

If everything looks good, push up the changes by running this command:

```
git push origin HEAD:dataconnect-rel
```

### Run the "Build Release Artifacts" Action

In a web browser, go to
https://github.com/firebase/firebase-android-sdk/actions/workflows/build-release-artifacts.yml
and click the "Run Workflow" button, Select the `dataconnect-rel` branch, and click the
"Run Workflow" button.

This will start a new workflow within a few seconds and the workflow will take up to 15 minutes
to complete (but typically completes in about 2 minutes). Note the URL of the workflow, for example
https://github.com/firebase/firebase-android-sdk/actions/runs/9279002255.

Wait for the action to complete.

### Test the "Build Release Artifacts" Output

To test the built artifact, we run the "connectors" integration test. This requires the following
local modifications to Git repository to use the release artifacts rather than the source code in
the Git repository.

Make sure you have the `dataconnect-rel` branch checked out at HEAD, and make the following changes:

* `subprojects.cfg`: Remove `firebase-dataconnect`
* `build.gradle`: Replace `mavenLocal()` with
`mavenLocal { url 'file:///.../firebase-dataconnect/m2' }`,
replacing `...` with the absolute path to the local checkout of the Git repository.
* `firebase-dataconnect/firebase-dataconnect.gradle.kts`: Delete this file.
* `firebase-dataconnect/androidTestutil/androidTestutil.gradle.kts`,
`firebase-dataconnect/connectors/connectors.gradle.kts`,
`firebase-dataconnect/testutil/testutil.gradle.kts`: Change the line
`api(project(":firebase-dataconnect"))` to
`api("com.google.firebase:firebase-dataconnect:16.0.0-alpha04")` in each file (using the
version number of the release that you want to test)
* `firebase-dataconnect/connectors/connectors.gradle.kts`: add the line
`id("copy-google-services")` into the "plugins" section.
* Copy `firebase-dataconnect/google-services.json` to
`firebase-dataconnect/connectors/google-services.json` and replace
`com.google.firebase.dataconnect` with `com.google.firebase.dataconnect.connectors`.

Now, create a new directory `firebase-dataconnect/m2`. Download the "release_artifacts" from the
completed "Build Release Artifacts" action into this directory. The download link can be found at
the URL of the action
(e.g. https://github.com/firebase/firebase-android-sdk/actions/runs/9279002255).

Run these two commands to extract the build artifacts into this directory:

```
unzip release_artifacts.zip
unzip m2repository.zip
```

This should create a directory that matches the release that you want to test, for example

```
com/google/firebase/firebase-dataconnect/16.0.0-alpha05
```

Finally, run the "connectors" integration tests as you normally would, which can be done from the
command line like this in the top-level directory of the repository:

```
./gradlew :firebase-dataconnect:connectors:connectedDebugAndroidTest
```

Make sure to have the Android, Auth, and Data Connect emulators running for the tests to use.

### Deploy Release to Maven

Deploying the release to Maven must be done by the Android Core team since they are the only people
with permissions to deploy. To do this, post a message to the chat room
"The REAL Firebase Android Contrib" asking for the release, and providing the URL of the
"Build Release Artifacts" action. Here is an example:

> Can you please publish 16.0.0-alpha05 of firebase-dataconnect: https://github.com/firebase/firebase-android-sdk/actions/runs/9647143328

(e.g. https://chat.google.com/room/AAAAlocx6vc/sE8gyvofp5E)

The artifact will usually be posted on the same day and will be visible in Google's Maven server,
for example: https://maven.google.com/web/index.html#com.google.firebase:firebase-dataconnect:16.0.0-alpha05

### Announce the New Version

Announce the newly-release Android SDK version in the Google Group and Chat Room for the Data
Connect gated preview participants.

Here are examples from the `16.0.0-alpha05` release:
* https://groups.google.com/a/google.com/g/firebase-data-connect-eap-external/c/_xrxTAr4bxU
* https://chat.google.com/room/AAAAkBgPAcc/ouTpxUCdMc4

### Update the DevSite

Open a changelist to change the devsite to use the new version in sample code.
Here is an example: cl/646679734

### That's It!

And, you're done. The new version is released. Congratulations.
Loading
Loading