Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
25e9044
first draft: Test Suite 1 first 5 test cases
xlai20 Sep 21, 2026
9b51fe9
Change mod struct
xlai20 Sep 21, 2026
a603fe9
feat(storage): parameterize bidi read conformance tests into scenario…
xlai20 Sep 21, 2026
5f2cdc0
cleaner test code design structure
xlai20 Sep 22, 2026
8d8b99c
feat(storage): structure bidi_read tests into regional_standard, zona…
xlai20 Sep 22, 2026
8bdf64f
feat(storage): dedicated create and cleanup for rapid regional bucket…
xlai20 Sep 22, 2026
9d9220c
feat(storage): support preprod endpoint for RCU StorageControl in reg…
xlai20 Sep 22, 2026
7215426
feat(storage): flatten bidi read conformance tests and encapsulate bu…
xlai20 Sep 23, 2026
dc073f6
refactor(storage): encapsulate conformance test suite into single dri…
xlai20 Sep 24, 2026
ab8f219
refactor(storage): isolate regional rapid bucket lifecycle and client…
xlai20 Sep 24, 2026
55ab417
refactor(storage): revert lib.rs to main and unify client builder in …
xlai20 Sep 24, 2026
423d196
refactor(storage): unify all conformance bucket and client creation o…
xlai20 Sep 24, 2026
a98eace
perf(storage): share minimal set of 5 buckets across conformance test…
xlai20 Sep 24, 2026
3c7505a
refactor(storage): refine conformance test names and add regional rap…
xlai20 Sep 24, 2026
6751874
refactor(storage): remove redundant zero_copy_read test case from con…
xlai20 Sep 24, 2026
5eedb45
refactor(storage): align conformance.rs with VM-level colocation test…
xlai20 Sep 25, 2026
7ebb293
fix(storage): use DisableRapidCache in bucket cleanup instead of Disa…
xlai20 Sep 25, 2026
2bb4a0d
refactor(storage): make cleanup_bucket universal with has_rapid_cache…
xlai20 Sep 25, 2026
2d84e5b
fix(storage): use preprod unified HTTP endpoint for write_object and …
xlai20 Sep 25, 2026
baa1a5b
refactor(storage): let callers choose JSON vs appendable upload in wr…
xlai20 Sep 25, 2026
8d3a2c8
fix(storage): drop flat RCU scenario, clean up on cache-attach failur…
xlai20 Sep 25, 2026
84a2a94
refactor(storage): simplify bidi read conformance suite structure
xlai20 Sep 25, 2026
c599f5c
chore(storage): trim comments in bidi read conformance suite
xlai20 Sep 25, 2026
e24d809
refactor(storage): pass default endpoint to both client builders
xlai20 Sep 25, 2026
59955ff
refactor(storage): dedupe bidi read conformance helpers and assertions
xlai20 Sep 25, 2026
52a7528
refactor(storage): reuse shared bucket cleanup and simplify bidi read…
xlai20 Sep 25, 2026
95f6edc
refactor(storage): remove redundant cleanup_stale_buckets from bidi r…
xlai20 Sep 28, 2026
c0eb8f3
refactor(storage): clean up obvious comments and printlns in bidi rea…
xlai20 Sep 29, 2026
158ea5c
refactor(storage): configure bidi read conformance endpoints via GRPC…
xlai20 Sep 29, 2026
74d0f39
refactor(storage): standardize endpoint env vars to GOOGLE_CLOUD_TEST…
xlai20 Sep 29, 2026
78c9b4f
test(storage): shorten test skipping messages in driver.rs
xlai20 Sep 29, 2026
c0369d7
test(storage): run post-stream-close and out-of-range tests on Zonal …
xlai20 Sep 29, 2026
6a4965d
refactor(storage): consolidate write_appendable_object into single fu…
xlai20 Sep 29, 2026
092dddb
test(storage): include bucket type label in conformance test log mess…
xlai20 Sep 29, 2026
5af71a0
beautify the println
xlai20 Sep 30, 2026
9997521
test(storage): align conformance logs with rcu_crud style and restore…
xlai20 Sep 30, 2026
b5e9402
test(storage): address review feedback on bidi read conformance
xlai20 Oct 1, 2026
6168c5c
test(storage): test concurrent valid and out-of-range reads on same d…
xlai20 Oct 1, 2026
9ae202b
test(storage): compile-time skip Zonal Rapid when unstable bidi cfg i…
xlai20 Oct 1, 2026
7642690
feat(storage): add request-level idempotency for v2 RPCs (#7021)
ccbcqbz Oct 1, 2026
6430731
feat(spanner)!: make Value accessors non-panicking (#7025)
olavloite Oct 1, 2026
c85c7a3
fix(spanner): make TimestampBound infallible (#7029)
olavloite Oct 1, 2026
1b691da
cleanup(spanner): clean up to_value and tests (#7062)
olavloite Oct 1, 2026
28d4f53
fix(spanner): expose unnameable public types (#7063)
olavloite Oct 1, 2026
65a1983
feat(spanner): gate opentelemetry in public API (#7068)
olavloite Oct 1, 2026
0e025a8
test(storage): clarify duplicate rationale for Regional Standard HNS …
xlai20 Oct 1, 2026
ea707fd
impl(spanner): add streaming RPC routing feedback and active request …
olavloite Oct 1, 2026
cdbd227
impl(bigquery): register unstable cfg flags (#7072)
alvarowolfx Oct 1, 2026
0f80787
fix: handle large stream responses (#7080)
dbolduc Oct 1, 2026
9bcf6ec
chore(timeseriesinsights): tombstone library (#7081)
coryan Oct 1, 2026
951bdcc
Merge remote-tracking branch 'upstream/main' into integration-tests-b…
xlai20 Oct 2, 2026
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
2 changes: 2 additions & 0 deletions .gcb/builds/triggers/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ locals {
"--cfg google_cloud_unstable_grpc_server_streaming",
"--cfg google_cloud_unstable_tracing",
"--cfg google_cloud_unstable_grpc_rust",
"--cfg google_cloud_unstable_bigquery_arrow",
"--cfg google_cloud_unstable_bigquery_storage_read",
])

tokio_unstable_flags = "--cfg tokio_unstable"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sdk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ env:
GHA_RUST_VERSIONS: '{ "rust:current": "1.98" }'
GHA_GO_VERSIONS: '{ "go:current": "1.26.7" }'
# Define the unstable flags once
UNSTABLE_CFGS: &unstable_cfgs '--cfg google_cloud_unstable_trust_boundaries --cfg google_cloud_unstable_storage_bidi --cfg google_cloud_unstable_grpc_server_streaming --cfg google_cloud_unstable_tracing'
UNSTABLE_CFGS: &unstable_cfgs '--cfg google_cloud_unstable_trust_boundaries --cfg google_cloud_unstable_storage_bidi --cfg google_cloud_unstable_grpc_server_streaming --cfg google_cloud_unstable_tracing --cfg google_cloud_unstable_bigquery_arrow --cfg google_cloud_unstable_bigquery_storage_read'

jobs:
build:
Expand Down
15 changes: 1 addition & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,8 @@ storage-samples = { path = "src/storage/examples" }

[workspace.lints.rust]
unexpected_cfgs = { level = "deny", check-cfg = [
'cfg(google_cloud_unstable_bigquery_arrow)',
'cfg(google_cloud_unstable_bigquery_storage_read)',
'cfg(google_cloud_unstable_grpc_rust)',
'cfg(google_cloud_unstable_grpc_server_streaming)',
'cfg(google_cloud_unstable_storage_bidi)',
Expand Down
5 changes: 5 additions & 0 deletions librarian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1600,6 +1600,7 @@ libraries:
- .google.storage.v2.ReadObjectRequest
- .google.storage.v2.WriteObjectSpec
include_grpc_only_methods: true
idempotency_hook: resolve_idempotency
name_overrides: .google.storage.v2.Storage=StorageControl
output: src/storage/src/generated/gapic
routing_required: true
Expand Down Expand Up @@ -1686,6 +1687,10 @@ libraries:
- name: google-cloud-texttospeech-v1
version: 1.16.0
copyright_year: "2025"
- name: google-cloud-timeseriesinsights-v1
version: 2.0.0
copyright_year: "2025"
output: src/generated/cloud/timeseriesinsights/v1
- name: google-cloud-tpu-v2
version: 1.15.0
copyright_year: "2025"
Expand Down
5 changes: 4 additions & 1 deletion src/gax-internal/grpc-server/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ pub async fn start_echo_server_with_address(
let stream = tokio_stream::wrappers::TcpListenerStream::new(listener);

let _ = Server::builder()
.add_service(google::test::v1::echo_service_server::EchoServiceServer::new(echo))
.add_service(
google::test::v1::echo_service_server::EchoServiceServer::new(echo)
.max_decoding_message_size(usize::MAX),
)
.serve_with_incoming(stream)
.await;
});
Expand Down
2 changes: 1 addition & 1 deletion src/gax-internal/src/grpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -654,7 +654,7 @@ impl Client {
instrumentation,
};

let inner_client = InnerClient::new(channel);
let inner_client = InnerClient::new(channel).max_decoding_message_size(usize::MAX);
if tracing_enabled {
Ok((inner_client, Some(attrs)))
} else {
Expand Down
20 changes: 20 additions & 0 deletions src/gax-internal/tests/grpc_server_streaming_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,4 +345,24 @@ mod tests {

Ok(())
}

#[tokio::test]
async fn large_response() -> anyhow::Result<()> {
let (endpoint, _server) = start_echo_server().await?;
let client = builder(endpoint)
.with_credentials(test_credentials())
.build()
.await?;

// Tonic's default decoding limit is 4 MiB; verify streamed messages > 4 MiB succeed.
let large_msg = "a".repeat(5 * 1024 * 1024);
let response =
send_server_streaming_request(client.clone(), &large_msg, "resource=test").await?;
let (_metadata, mut stream, _extensions) = response.into_parts();
let r = stream.message().await?.expect("expected a message");
assert_eq!(r.message.len(), large_msg.len());
assert!(stream.message().await?.is_none());

Ok(())
}
}
15 changes: 15 additions & 0 deletions src/gax-internal/tests/grpc_simple_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -659,4 +659,19 @@ mod tests {
assert!(!header.contains("gapic/"), "{header}");
Ok(())
}

#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn large_response() -> anyhow::Result<()> {
let (endpoint, _server) = start_echo_server().await?;

let client = builder(endpoint)
.with_credentials(test_credentials())
.build()
.await?;
// Tonic's default decoding limit is 4 MiB; verify messages > 4 MiB succeed.
let large_msg = "a".repeat(5 * 1024 * 1024);
let response = send_request(client, &large_msg, "").await?;
assert_eq!(response.message.len(), large_msg.len());
Ok(())
}
}
23 changes: 23 additions & 0 deletions src/gax-internal/tests/grpc_streaming_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -357,4 +357,27 @@ mod tests {

Ok(())
}

#[tokio::test]
async fn large_response() -> anyhow::Result<()> {
let (endpoint, _server) = start_echo_server().await?;
let client = builder(endpoint)
.with_credentials(test_credentials())
.build()
.await?;

// Tonic's default decoding limit is 4 MiB; verify streamed messages > 4 MiB succeed.
let large_msg = "a".repeat(5 * 1024 * 1024);
let (tx, rx) = tokio::sync::mpsc::channel(100);
tx.send(simple_request(&large_msg)).await?;
drop(tx);

let response = send_streaming_request(client.clone(), rx, "resource=test").await?;
let (_metadata, mut stream, _) = response.into_parts();
let r = stream.message().await?.expect("expected a message");
assert_eq!(r.message.len(), large_msg.len());
assert!(stream.message().await?.is_none());

Ok(())
}
}
13 changes: 0 additions & 13 deletions src/generated/cloud/timeseriesinsights/v1/.repo-metadata.json

This file was deleted.

29 changes: 2 additions & 27 deletions src/generated/cloud/timeseriesinsights/v1/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Code generated by sidekick. DO NOT EDIT.

[package]
name = "google-cloud-timeseriesinsights-v1"
version = "1.13.0"
description = "Google Cloud Client Libraries for Rust - Timeseries Insights API"
version = "2.0.0"
description = "Google Cloud Client Libraries for Rust - Timeseries Insights API (Decommissioned)"
edition.workspace = true
authors.workspace = true
license.workspace = true
Expand All @@ -29,28 +27,5 @@ rust-version.workspace = true
[lints]
workspace = true

[features]
default = ["default-rustls-provider"]
# Enabled by default. Use the default rustls crypto provider ([aws-lc-rs]) for
# TLS and authentication. Applications with specific requirements for
# cryptography (such as exclusively using the [ring] crate) should disable this
# default and call `rustls::crypto::CryptoProvider::install_default()`.
default-rustls-provider = ["gaxi/_default-rustls-provider"]

[package.metadata.docs.rs]
all-features = true

[dependencies]
async-trait.workspace = true
bytes.workspace = true
gaxi = { workspace = true, features = ["_internal-http-client"] }
google-cloud-gax.workspace = true
google-cloud-rpc.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_with.workspace = true
tracing.workspace = true
wkt.workspace = true

[dev-dependencies]
anyhow.workspace = true
37 changes: 3 additions & 34 deletions src/generated/cloud/timeseriesinsights/v1/README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
# Google Cloud Client Libraries for Rust - Timeseries Insights API

<!-- Code generated by sidekick. DO NOT EDIT. -->
This service is decommissioned. The package will see no more updates.

Provides a Timeseries Insights service which operates over time series
data. Users can perform time series spike, trend, and anomaly detection.
With a straightforward API and easy to understand results, the service
makes it simple to gather insights from large amounts of time series data
(e.g. monitoring datasets) and integrate these insights in their
applications.
## License

The client library types and functions are stable and not expected to change.
Please note that Google Cloud services do change from time to time. The client
libraries are designed to preserve backwards compatibility when the service
changes in compatible ways. For example, adding RPCs, or fields to messages
should not introduce breaking changes to the client libraries.

## Quickstart

The main types to work with this crate are the clients:

- [TimeseriesInsightsController]

## Features

- `default-rustls-provider`: enabled by default. Use the default rustls crypto
provider ([aws-lc-rs]) for TLS and authentication. Applications with specific
requirements for cryptography (such as exclusively using the [ring] crate)
should disable this default and call
`rustls::crypto::CryptoProvider::install_default()`.

## More Information

- Read the [crate's documentation](https://docs.rs/google-cloud-timeseriesinsights-v1/1.13.0)

[aws-lc-rs]: https://crates.io/crates/aws-lc-rs
[ring]: https://crates.io/crates/ring
[TimeseriesInsightsController]: https://docs.rs/google-cloud-timeseriesinsights-v1/1.13.0/google_cloud_timeseriesinsights_v1/client/struct.TimeseriesInsightsController.html
Apache-2.0
Loading