-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat(firestore): [PQ] add experimental warning to pipeline API #13621
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Capture ExecutionTime from ExecutePipelineResponse in streamPipelineResultIterator. - Expose ExecutionTime() on PipelineSnapshot. - Add validation that ExecutionTime is only available after iteration. - Add ExecutePipeline support to mockServer. - Add unit tests. - Update PipelineResult creation to use accumulated executionTime.
- Capture ExecutionTime from ExecutePipelineResponse in streamPipelineResultIterator. - Expose ExecutionTime() on PipelineSnapshot returning *time.Time. - Add validation that ExecutionTime is only available after iteration. - Add ExecutePipeline support to mockServer. - Add unit tests. - Update PipelineResult creation to use accumulated executionTime.
Add experimental warnings to all exported types and functions related to the new Firestore Pipeline API. The warning explicitly states that the feature is in preview and subject to breaking changes. This aligns with other languages and standard Go conventions.
…3759311270774125 feat(firestore): add experimental warning to pipeline API
Summary of ChangesHello @bhshkh, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request formalizes the experimental status of the Firestore Pipeline API by adding explicit warnings to its public surface area. This ensures developers are aware that the API is in preview and may undergo future breaking changes. Concurrently, it enhances the API's utility by exposing the execution time of pipeline queries and bolsters the testing infrastructure with mock server support and dedicated tests for this new feature. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds an "Experimental" warning to the public API surface of Firestore Pipelines, indicating that it's a preview feature subject to breaking changes. This is a widespread change, adding comments to numerous functions and types across multiple files. Additionally, it introduces a new ExecutionTime() method on PipelineSnapshot to retrieve the execution time of the pipeline, which is available after the result iterator is fully consumed. The implementation for ExecutionTime is robust, correctly handling streaming responses and includes comprehensive tests to verify its behavior, including edge cases. The changes are well-executed and improve user awareness of the API's stability and add useful metadata to the pipeline results.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
daniel-sanche
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
| return nil, errors.New("firestore: PipelineResultIterator is nil") | ||
| } | ||
| if ps.iter.err == nil || ps.iter.err != iterator.Done { | ||
| if ps.iter.err != iterator.Done { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. It is from gemini code review above.
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.7.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:d2dee66d7c8c1d673fac26280164ea24015b79491b7f9d6ba369e6a98ab3420c <details><summary>firestore: 1.21.0</summary> ## [1.21.0](firestore/v1.20.0...firestore/v1.21.0) (2026-01-15) ### Features * publish the pipelines API to the stable branch (PiperOrigin-RevId: 840829013) ([21c9dbf](21c9dbfb)) * Add ExecutionTime to PipelineSnapshot (#13620) ([633a3ae](633a3ae5)) * add experimental warning to pipeline API (#13621) ([6b59162](6b59162f)) ### Documentation * minor api documentation changes (PiperOrigin-RevId: 840398028) ([21c9dbf](21c9dbfb)) </details>
thepointer1982
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
T
The wording is a combination of https://github.com/googleapis/google-cloud-go/blob/6752a496e756c214faf345c302b58ed7593c6017/bigquery/extract.go#L51-L59 and https://github.com/googleapis/python-firestore/pull/1155/files --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.7.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:d2dee66d7c8c1d673fac26280164ea24015b79491b7f9d6ba369e6a98ab3420c <details><summary>firestore: 1.21.0</summary> ## [1.21.0](firestore/v1.20.0...firestore/v1.21.0) (2026-01-15) ### Features * publish the pipelines API to the stable branch (PiperOrigin-RevId: 840829013) ([21c9dbf](21c9dbfb)) * Add ExecutionTime to PipelineSnapshot (#13620) ([633a3ae](633a3ae5)) * add experimental warning to pipeline API (#13621) ([6b59162](6b59162f)) ### Documentation * minor api documentation changes (PiperOrigin-RevId: 840398028) ([21c9dbf](21c9dbfb)) </details>
The wording is a combination of
google-cloud-go/bigquery/extract.go
Lines 51 to 59 in 6752a49