mirror of
https://github.com/dutchcoders/transfer.sh.git
synced 2024-11-23 20:50:18 +01:00
1123 lines
34 KiB
Markdown
1123 lines
34 KiB
Markdown
|
# Changes
|
||
|
|
||
|
## 0.37.0
|
||
|
|
||
|
- spanner:
|
||
|
- Add BatchDML method.
|
||
|
- Reduced initial time between retries.
|
||
|
- bigquery:
|
||
|
- Produce better error messages for InferSchema.
|
||
|
- Add logical type control for avro loads.
|
||
|
- Add support for the GEOGRAPHY type.
|
||
|
- datastore:
|
||
|
- Add sentinel value DetectProjectID for auto-detecting project ID.
|
||
|
- Allow flatten tag on struct pointers.
|
||
|
- Fixed a bug that caused queries to panic with invalid queries. Instead they
|
||
|
will now return an error.
|
||
|
- profiler:
|
||
|
- Add ability to override GCE zone and instance.
|
||
|
- pubsub:
|
||
|
- BEHAVIOR CHANGE: Refactor error code retry logic. RPCs should now more
|
||
|
consistently retry specific error codes based on whether they're idempotent
|
||
|
or non-idempotent.
|
||
|
- httpreplay: Fixed a bug when a non-GET request had a zero-length body causing
|
||
|
the Content-Length header to be dropped.
|
||
|
- iot:
|
||
|
- Add new apiv1 client.
|
||
|
- securitycenter:
|
||
|
- Add new apiv1 client.
|
||
|
- cloudscheduler:
|
||
|
- Add new apiv1 client.
|
||
|
|
||
|
## 0.36.0
|
||
|
|
||
|
- spanner:
|
||
|
- Reduce minimum retry backoff from 1s to 100ms. This makes time between
|
||
|
retries much faster and should improve latency.
|
||
|
- storage:
|
||
|
- Add support for Bucket Policy Only.
|
||
|
- kms:
|
||
|
- Add ResourceIAM helper method.
|
||
|
- Deprecate KeyRingIAM and CryptoKeyIAM. Please use ResourceIAM.
|
||
|
- firestore:
|
||
|
- Switch from v1beta1 API to v1 API.
|
||
|
- Allow emulator with FIRESTORE_EMULATOR_HOST.
|
||
|
- bigquery:
|
||
|
- Add NumLongTermBytes to Table.
|
||
|
- Add TotalBytesProcessedAccuracy to QueryStatistics.
|
||
|
- irm:
|
||
|
- Add new v1alpha2 client.
|
||
|
- talent:
|
||
|
- Add new v4beta1 client.
|
||
|
- rpcreplay:
|
||
|
- Fix connection to work with grpc >= 1.17.
|
||
|
- It is now required for an actual gRPC server to be running for Dial to
|
||
|
succeed.
|
||
|
|
||
|
## 0.35.1
|
||
|
|
||
|
- spanner:
|
||
|
- Adds OpenCensus views back to public API.
|
||
|
|
||
|
## v0.35.0
|
||
|
|
||
|
- all:
|
||
|
- Add go.mod and go.sum.
|
||
|
- Switch usage of gax-go to gax-go/v2.
|
||
|
- bigquery:
|
||
|
- Fix bug where time partitioning could not be removed from a table.
|
||
|
- Fix panic that occurred with empty query parameters.
|
||
|
- bttest:
|
||
|
- Fix bug where deleted rows were returned by ReadRows.
|
||
|
- bigtable/emulator:
|
||
|
- Configure max message size to 256 MiB.
|
||
|
- firestore:
|
||
|
- Allow non-transactional queries in transactions.
|
||
|
- Allow StartAt/EndBefore on direct children at any depth.
|
||
|
- QuerySnapshotIterator.Stop may be called in an error state.
|
||
|
- Fix bug the prevented reset of transaction write state in between retries.
|
||
|
- functions/metadata:
|
||
|
- Make Metadata.Resource a pointer.
|
||
|
- logging:
|
||
|
- Make SpanID available in logging.Entry.
|
||
|
- metadata:
|
||
|
- Wrap !200 error code in a typed err.
|
||
|
- profiler:
|
||
|
- Add function to check if function name is within a particular file in the
|
||
|
profile.
|
||
|
- Set parent field in create profile request.
|
||
|
- Return kubernetes client to start cluster, so client can be used to poll
|
||
|
cluster.
|
||
|
- Add function for checking if filename is in profile.
|
||
|
- pubsub:
|
||
|
- Fix bug where messages expired without an initial modack in
|
||
|
synchronous=true mode.
|
||
|
- Receive does not retry ResourceExhausted errors.
|
||
|
- spanner:
|
||
|
- client.Close now cancels existing requests and should be much faster for
|
||
|
large amounts of sessions.
|
||
|
- Correctly allow MinOpened sessions to be spun up.
|
||
|
|
||
|
## v0.34.0
|
||
|
|
||
|
- functions/metadata:
|
||
|
- Switch to using JSON in context.
|
||
|
- Make Resource a value.
|
||
|
- vision: Fix ProductSearch return type.
|
||
|
- datastore: Add an example for how to handle MultiError.
|
||
|
|
||
|
## v0.33.1
|
||
|
|
||
|
- compute: Removes an erroneously added go.mod.
|
||
|
- logging: Populate source location in fromLogEntry.
|
||
|
|
||
|
## v0.33.0
|
||
|
|
||
|
- bttest:
|
||
|
- Add support for apply_label_transformer.
|
||
|
- expr:
|
||
|
- Add expr library.
|
||
|
- firestore:
|
||
|
- Support retrieval of missing documents.
|
||
|
- kms:
|
||
|
- Add IAM methods.
|
||
|
- pubsub:
|
||
|
- Clarify extension documentation.
|
||
|
- scheduler:
|
||
|
- Add v1beta1 client.
|
||
|
- vision:
|
||
|
- Add product search helper.
|
||
|
- Add new product search client.
|
||
|
|
||
|
## v0.32.0
|
||
|
|
||
|
Note: This release is the last to support Go 1.6 and 1.8.
|
||
|
|
||
|
- bigquery:
|
||
|
- Add support for removing an expiration.
|
||
|
- Ignore NeverExpire in Table.Create.
|
||
|
- Validate table expiration time.
|
||
|
- cbt:
|
||
|
- Add note about not supporting arbitrary bytes.
|
||
|
- datastore:
|
||
|
- Align key checks.
|
||
|
- firestore:
|
||
|
- Return an error when using Start/End without providing values.
|
||
|
- pubsub:
|
||
|
- Add pstest Close method.
|
||
|
- Clarify MaxExtension documentation.
|
||
|
- securitycenter:
|
||
|
- Add v1beta1 client.
|
||
|
- spanner:
|
||
|
- Allow nil in mutations.
|
||
|
- Improve doc of SessionPoolConfig.MaxOpened.
|
||
|
- Increase session deletion timeout from 5s to 15s.
|
||
|
|
||
|
## v0.31.0
|
||
|
|
||
|
- bigtable:
|
||
|
- Group mutations across multiple requests.
|
||
|
- bigquery:
|
||
|
- Link to bigquery troubleshooting errors page in bigquery.Error comment.
|
||
|
- cbt:
|
||
|
- Fix go generate command.
|
||
|
- Document usage of both maxage + maxversions.
|
||
|
- datastore:
|
||
|
- Passing nil keys results in ErrInvalidKey.
|
||
|
- firestore:
|
||
|
- Clarify what Document.DataTo does with untouched struct fields.
|
||
|
- profile:
|
||
|
- Validate service name in agent.
|
||
|
- pubsub:
|
||
|
- Fix deadlock with pstest and ctx.Cancel.
|
||
|
- Fix a possible deadlock in pstest.
|
||
|
- trace:
|
||
|
- Update doc URL with new fragment.
|
||
|
|
||
|
Special thanks to @fastest963 for going above and beyond helping us to debug
|
||
|
hard-to-reproduce Pub/Sub issues.
|
||
|
|
||
|
## v0.30.0
|
||
|
|
||
|
- spanner: DML support added. See https://godoc.org/cloud.google.com/go/spanner#hdr-DML_and_Partitioned_DML for more information.
|
||
|
- bigtable: bttest supports row sample filter.
|
||
|
- functions: metadata package added for accessing Cloud Functions resource metadata.
|
||
|
|
||
|
## v0.29.0
|
||
|
|
||
|
- bigtable:
|
||
|
- Add retry to all idempotent RPCs.
|
||
|
- cbt supports complex GC policies.
|
||
|
- Emulator supports arbitrary bytes in regex filters.
|
||
|
- firestore: Add ArrayUnion and ArrayRemove.
|
||
|
- logging: Add the ContextFunc option to supply the context used for
|
||
|
asynchronous RPCs.
|
||
|
- profiler: Ignore NotDefinedError when fetching the instance name
|
||
|
- pubsub:
|
||
|
- BEHAVIOR CHANGE: Receive doesn't retry if an RPC returns codes.Cancelled.
|
||
|
- BEHAVIOR CHANGE: Receive retries on Unavailable intead of returning.
|
||
|
- Fix deadlock.
|
||
|
- Restore Ack/Nack/Modacks metrics.
|
||
|
- Improve context handling in iterator.
|
||
|
- Implement synchronous mode for Receive.
|
||
|
- pstest: add Pull.
|
||
|
- spanner: Add a metric for the number of sessions currently opened.
|
||
|
- storage:
|
||
|
- Canceling the context releases all resources.
|
||
|
- Add additional RetentionPolicy attributes.
|
||
|
- vision/apiv1: Add LocalizeObjects method.
|
||
|
|
||
|
## v0.28.0
|
||
|
|
||
|
- bigtable:
|
||
|
- Emulator returns Unimplemented for snapshot RPCs.
|
||
|
- bigquery:
|
||
|
- Support zero-length repeated, nested fields.
|
||
|
- cloud assets:
|
||
|
- Add v1beta client.
|
||
|
- datastore:
|
||
|
- Don't nil out transaction ID on retry.
|
||
|
- firestore:
|
||
|
- BREAKING CHANGE: When watching a query with Query.Snapshots, QuerySnapshotIterator.Next
|
||
|
returns a QuerySnapshot which contains read time, result size, change list and the DocumentIterator
|
||
|
(previously, QuerySnapshotIterator.Next returned just the DocumentIterator). See: https://godoc.org/cloud.google.com/go/firestore#Query.Snapshots.
|
||
|
- Add array-contains operator.
|
||
|
- IAM:
|
||
|
- Add iam/credentials/apiv1 client.
|
||
|
- pubsub:
|
||
|
- Canceling the context passed to Subscription.Receive causes Receive to return when
|
||
|
processing finishes on all messages currently in progress, even if new messages are arriving.
|
||
|
- redis:
|
||
|
- Add redis/apiv1 client.
|
||
|
- storage:
|
||
|
- Add Reader.Attrs.
|
||
|
- Deprecate several Reader getter methods: please use Reader.Attrs for these instead.
|
||
|
- Add ObjectHandle.Bucket and ObjectHandle.Object methods.
|
||
|
|
||
|
## v0.27.0
|
||
|
|
||
|
- bigquery:
|
||
|
- Allow modification of encryption configuration and partitioning options to a table via the Update call.
|
||
|
- Add a SchemaFromJSON function that converts a JSON table schema.
|
||
|
- bigtable:
|
||
|
- Restore cbt count functionality.
|
||
|
- containeranalysis:
|
||
|
- Add v1beta client.
|
||
|
- spanner:
|
||
|
- Fix a case where an iterator might not be closed correctly.
|
||
|
- storage:
|
||
|
- Add ServiceAccount method https://godoc.org/cloud.google.com/go/storage#Client.ServiceAccount.
|
||
|
- Add a method to Reader that returns the parsed value of the Last-Modified header.
|
||
|
|
||
|
## v0.26.0
|
||
|
|
||
|
- bigquery:
|
||
|
- Support filtering listed jobs by min/max creation time.
|
||
|
- Support data clustering (https://godoc.org/cloud.google.com/go/bigquery#Clustering).
|
||
|
- Include job creator email in Job struct.
|
||
|
- bigtable:
|
||
|
- Add `RowSampleFilter`.
|
||
|
- emulator: BREAKING BEHAVIOR CHANGE: Regexps in row, family, column and value filters
|
||
|
must match the entire target string to succeed. Previously, the emulator was
|
||
|
succeeding on partial matches.
|
||
|
NOTE: As of this release, this change only affects the emulator when run
|
||
|
from this repo (bigtable/cmd/emulator/cbtemulator.go). The version launched
|
||
|
from `gcloud` will be updated in a subsequent `gcloud` release.
|
||
|
- dataproc: Add apiv1beta2 client.
|
||
|
- datastore: Save non-nil pointer fields on omitempty.
|
||
|
- logging: populate Entry.Trace from the HTTP X-Cloud-Trace-Context header.
|
||
|
- logging/logadmin: Support writer_identity and include_children.
|
||
|
- pubsub:
|
||
|
- Support labels on topics and subscriptions.
|
||
|
- Support message storage policy for topics.
|
||
|
- Use the distribution of ack times to determine when to extend ack deadlines.
|
||
|
The only user-visible effect of this change should be that programs that
|
||
|
call only `Subscription.Receive` need no IAM permissions other than `Pub/Sub
|
||
|
Subscriber`.
|
||
|
- storage:
|
||
|
- Support predefined ACLs.
|
||
|
- Support additional ACL fields other than Entity and Role.
|
||
|
- Support bucket websites.
|
||
|
- Support bucket logging.
|
||
|
|
||
|
|
||
|
## v0.25.0
|
||
|
|
||
|
- Added [Code of Conduct](https://github.com/googleapis/google-cloud-go/blob/master/CODE_OF_CONDUCT.md)
|
||
|
- bigtable:
|
||
|
- cbt: Support a GC policy of "never".
|
||
|
- errorreporting:
|
||
|
- Support User.
|
||
|
- Close now calls Flush.
|
||
|
- Use OnError (previously ignored).
|
||
|
- Pass through the RPC error as-is to OnError.
|
||
|
- httpreplay: A tool for recording and replaying HTTP requests
|
||
|
(for the bigquery and storage clients in this repo).
|
||
|
- kms: v1 client added
|
||
|
- logging: add SourceLocation to Entry.
|
||
|
- storage: improve CRC checking on read.
|
||
|
|
||
|
## v0.24.0
|
||
|
|
||
|
- bigquery: Support for the NUMERIC type.
|
||
|
- bigtable:
|
||
|
- cbt: Optionally specify columns for read/lookup
|
||
|
- Support instance-level administration.
|
||
|
- oslogin: New client for the OS Login API.
|
||
|
- pubsub:
|
||
|
- The package is now stable. There will be no further breaking changes.
|
||
|
- Internal changes to improve Subscription.Receive behavior.
|
||
|
- storage: Support updating bucket lifecycle config.
|
||
|
- spanner: Support struct-typed parameter bindings.
|
||
|
- texttospeech: New client for the Text-to-Speech API.
|
||
|
|
||
|
## v0.23.0
|
||
|
|
||
|
- bigquery: Add DDL stats to query statistics.
|
||
|
- bigtable:
|
||
|
- cbt: Add cells-per-column limit for row lookup.
|
||
|
- cbt: Make it possible to combine read filters.
|
||
|
- dlp: v2beta2 client removed. Use the v2 client instead.
|
||
|
- firestore, spanner: Fix compilation errors due to protobuf changes.
|
||
|
|
||
|
## v0.22.0
|
||
|
|
||
|
- bigtable:
|
||
|
- cbt: Support cells per column limit for row read.
|
||
|
- bttest: Correctly handle empty RowSet.
|
||
|
- Fix ReadModifyWrite operation in emulator.
|
||
|
- Fix API path in GetCluster.
|
||
|
|
||
|
- bigquery:
|
||
|
- BEHAVIOR CHANGE: Retry on 503 status code.
|
||
|
- Add dataset.DeleteWithContents.
|
||
|
- Add SchemaUpdateOptions for query jobs.
|
||
|
- Add Timeline to QueryStatistics.
|
||
|
- Add more stats to ExplainQueryStage.
|
||
|
- Support Parquet data format.
|
||
|
|
||
|
- datastore:
|
||
|
- Support omitempty for times.
|
||
|
|
||
|
- dlp:
|
||
|
- **BREAKING CHANGE:** Remove v1beta1 client. Please migrate to the v2 client,
|
||
|
which is now out of beta.
|
||
|
- Add v2 client.
|
||
|
|
||
|
- firestore:
|
||
|
- BEHAVIOR CHANGE: Treat set({}, MergeAll) as valid.
|
||
|
|
||
|
- iam:
|
||
|
- Support JWT signing via SignJwt callopt.
|
||
|
|
||
|
- profiler:
|
||
|
- BEHAVIOR CHANGE: PollForSerialOutput returns an error when context.Done.
|
||
|
- BEHAVIOR CHANGE: Increase the initial backoff to 1 minute.
|
||
|
- Avoid returning empty serial port output.
|
||
|
|
||
|
- pubsub:
|
||
|
- BEHAVIOR CHANGE: Don't backoff during next retryable error once stream is healthy.
|
||
|
- BEHAVIOR CHANGE: Don't backoff on EOF.
|
||
|
- pstest: Support Acknowledge and ModifyAckDeadline RPCs.
|
||
|
|
||
|
- redis:
|
||
|
- Add v1 beta Redis client.
|
||
|
|
||
|
- spanner:
|
||
|
- Support SessionLabels.
|
||
|
|
||
|
- speech:
|
||
|
- Add api v1 beta1 client.
|
||
|
|
||
|
- storage:
|
||
|
- BEHAVIOR CHANGE: Retry reads when retryable error occurs.
|
||
|
- Fix delete of object in requester-pays bucket.
|
||
|
- Support KMS integration.
|
||
|
|
||
|
## v0.21.0
|
||
|
|
||
|
- bigquery:
|
||
|
- Add OpenCensus tracing.
|
||
|
|
||
|
- firestore:
|
||
|
- **BREAKING CHANGE:** If a document does not exist, return a DocumentSnapshot
|
||
|
whose Exists method returns false. DocumentRef.Get and Transaction.Get
|
||
|
return the non-nil DocumentSnapshot in addition to a NotFound error.
|
||
|
**DocumentRef.GetAll and Transaction.GetAll return a non-nil
|
||
|
DocumentSnapshot instead of nil.**
|
||
|
- Add DocumentIterator.Stop. **Call Stop whenever you are done with a
|
||
|
DocumentIterator.**
|
||
|
- Added Query.Snapshots and DocumentRef.Snapshots, which provide realtime
|
||
|
notification of updates. See https://cloud.google.com/firestore/docs/query-data/listen.
|
||
|
- Canceling an RPC now always returns a grpc.Status with codes.Canceled.
|
||
|
|
||
|
- spanner:
|
||
|
- Add `CommitTimestamp`, which supports inserting the commit timestamp of a
|
||
|
transaction into a column.
|
||
|
|
||
|
## v0.20.0
|
||
|
|
||
|
- bigquery: Support SchemaUpdateOptions for load jobs.
|
||
|
|
||
|
- bigtable:
|
||
|
- Add SampleRowKeys.
|
||
|
- cbt: Support union, intersection GCPolicy.
|
||
|
- Retry admin RPCS.
|
||
|
- Add trace spans to retries.
|
||
|
|
||
|
- datastore: Add OpenCensus tracing.
|
||
|
|
||
|
- firestore:
|
||
|
- Fix queries involving Null and NaN.
|
||
|
- Allow Timestamp protobuffers for time values.
|
||
|
|
||
|
- logging: Add a WriteTimeout option.
|
||
|
|
||
|
- spanner: Support Batch API.
|
||
|
|
||
|
- storage: Add OpenCensus tracing.
|
||
|
|
||
|
## v0.19.0
|
||
|
|
||
|
- bigquery:
|
||
|
- Support customer-managed encryption keys.
|
||
|
|
||
|
- bigtable:
|
||
|
- Improved emulator support.
|
||
|
- Support GetCluster.
|
||
|
|
||
|
- datastore:
|
||
|
- Add general mutations.
|
||
|
- Support pointer struct fields.
|
||
|
- Support transaction options.
|
||
|
|
||
|
- firestore:
|
||
|
- Add Transaction.GetAll.
|
||
|
- Support document cursors.
|
||
|
|
||
|
- logging:
|
||
|
- Support concurrent RPCs to the service.
|
||
|
- Support per-entry resources.
|
||
|
|
||
|
- profiler:
|
||
|
- Add config options to disable heap and thread profiling.
|
||
|
- Read the project ID from $GOOGLE_CLOUD_PROJECT when it's set.
|
||
|
|
||
|
- pubsub:
|
||
|
- BEHAVIOR CHANGE: Release flow control after ack/nack (instead of after the
|
||
|
callback returns).
|
||
|
- Add SubscriptionInProject.
|
||
|
- Add OpenCensus instrumentation for streaming pull.
|
||
|
|
||
|
- storage:
|
||
|
- Support CORS.
|
||
|
|
||
|
## v0.18.0
|
||
|
|
||
|
- bigquery:
|
||
|
- Marked stable.
|
||
|
- Schema inference of nullable fields supported.
|
||
|
- Added TimePartitioning to QueryConfig.
|
||
|
|
||
|
- firestore: Data provided to DocumentRef.Set with a Merge option can contain
|
||
|
Delete sentinels.
|
||
|
|
||
|
- logging: Clients can accept parent resources other than projects.
|
||
|
|
||
|
- pubsub:
|
||
|
- pubsub/pstest: A lighweight fake for pubsub. Experimental; feedback welcome.
|
||
|
- Support updating more subscription metadata: AckDeadline,
|
||
|
RetainAckedMessages and RetentionDuration.
|
||
|
|
||
|
- oslogin/apiv1beta: New client for the Cloud OS Login API.
|
||
|
|
||
|
- rpcreplay: A package for recording and replaying gRPC traffic.
|
||
|
|
||
|
- spanner:
|
||
|
- Add a ReadWithOptions that supports a row limit, as well as an index.
|
||
|
- Support query plan and execution statistics.
|
||
|
- Added [OpenCensus](http://opencensus.io) support.
|
||
|
|
||
|
- storage: Clarify checksum validation for gzipped files (it is not validated
|
||
|
when the file is served uncompressed).
|
||
|
|
||
|
|
||
|
## v0.17.0
|
||
|
|
||
|
- firestore BREAKING CHANGES:
|
||
|
- Remove UpdateMap and UpdateStruct; rename UpdatePaths to Update.
|
||
|
Change
|
||
|
`docref.UpdateMap(ctx, map[string]interface{}{"a.b", 1})`
|
||
|
to
|
||
|
`docref.Update(ctx, []firestore.Update{{Path: "a.b", Value: 1}})`
|
||
|
|
||
|
Change
|
||
|
`docref.UpdateStruct(ctx, []string{"Field"}, aStruct)`
|
||
|
to
|
||
|
`docref.Update(ctx, []firestore.Update{{Path: "Field", Value: aStruct.Field}})`
|
||
|
- Rename MergePaths to Merge; require args to be FieldPaths
|
||
|
- A value stored as an integer can be read into a floating-point field, and vice versa.
|
||
|
- bigtable/cmd/cbt:
|
||
|
- Support deleting a column.
|
||
|
- Add regex option for row read.
|
||
|
- spanner: Mark stable.
|
||
|
- storage:
|
||
|
- Add Reader.ContentEncoding method.
|
||
|
- Fix handling of SignedURL headers.
|
||
|
- bigquery:
|
||
|
- If Uploader.Put is called with no rows, it returns nil without making a
|
||
|
call.
|
||
|
- Schema inference supports the "nullable" option in struct tags for
|
||
|
non-required fields.
|
||
|
- TimePartitioning supports "Field".
|
||
|
|
||
|
|
||
|
## v0.16.0
|
||
|
|
||
|
- Other bigquery changes:
|
||
|
- `JobIterator.Next` returns `*Job`; removed `JobInfo` (BREAKING CHANGE).
|
||
|
- UseStandardSQL is deprecated; set UseLegacySQL to true if you need
|
||
|
Legacy SQL.
|
||
|
- Uploader.Put will generate a random insert ID if you do not provide one.
|
||
|
- Support time partitioning for load jobs.
|
||
|
- Support dry-run queries.
|
||
|
- A `Job` remembers its last retrieved status.
|
||
|
- Support retrieving job configuration.
|
||
|
- Support labels for jobs and tables.
|
||
|
- Support dataset access lists.
|
||
|
- Improve support for external data sources, including data from Bigtable and
|
||
|
Google Sheets, and tables with external data.
|
||
|
- Support updating a table's view configuration.
|
||
|
- Fix uploading civil times with nanoseconds.
|
||
|
|
||
|
- storage:
|
||
|
- Support PubSub notifications.
|
||
|
- Support Requester Pays buckets.
|
||
|
|
||
|
- profiler: Support goroutine and mutex profile types.
|
||
|
|
||
|
## v0.15.0
|
||
|
|
||
|
- firestore: beta release. See the
|
||
|
[announcement](https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html).
|
||
|
|
||
|
- errorreporting: The existing package has been redesigned.
|
||
|
|
||
|
- errors: This package has been removed. Use errorreporting.
|
||
|
|
||
|
|
||
|
## v0.14.0
|
||
|
|
||
|
- bigquery BREAKING CHANGES:
|
||
|
- Standard SQL is the default for queries and views.
|
||
|
- `Table.Create` takes `TableMetadata` as a second argument, instead of
|
||
|
options.
|
||
|
- `Dataset.Create` takes `DatasetMetadata` as a second argument.
|
||
|
- `DatasetMetadata` field `ID` renamed to `FullID`
|
||
|
- `TableMetadata` field `ID` renamed to `FullID`
|
||
|
|
||
|
- Other bigquery changes:
|
||
|
- The client will append a random suffix to a provided job ID if you set
|
||
|
`AddJobIDSuffix` to true in a job config.
|
||
|
- Listing jobs is supported.
|
||
|
- Better retry logic.
|
||
|
|
||
|
- vision, language, speech: clients are now stable
|
||
|
|
||
|
- monitoring: client is now beta
|
||
|
|
||
|
- profiler:
|
||
|
- Rename InstanceName to Instance, ZoneName to Zone
|
||
|
- Auto-detect service name and version on AppEngine.
|
||
|
|
||
|
## v0.13.0
|
||
|
|
||
|
- bigquery: UseLegacySQL options for CreateTable and QueryConfig. Use these
|
||
|
options to continue using Legacy SQL after the client switches its default
|
||
|
to Standard SQL.
|
||
|
|
||
|
- bigquery: Support for updating dataset labels.
|
||
|
|
||
|
- bigquery: Set DatasetIterator.ProjectID to list datasets in a project other
|
||
|
than the client's. DatasetsInProject is no longer needed and is deprecated.
|
||
|
|
||
|
- bigtable: Fail ListInstances when any zones fail.
|
||
|
|
||
|
- spanner: support decoding of slices of basic types (e.g. []string, []int64,
|
||
|
etc.)
|
||
|
|
||
|
- logging/logadmin: UpdateSink no longer creates a sink if it is missing
|
||
|
(actually a change to the underlying service, not the client)
|
||
|
|
||
|
- profiler: Service and ServiceVersion replace Target in Config.
|
||
|
|
||
|
## v0.12.0
|
||
|
|
||
|
- pubsub: Subscription.Receive now uses streaming pull.
|
||
|
|
||
|
- pubsub: add Client.TopicInProject to access topics in a different project
|
||
|
than the client.
|
||
|
|
||
|
- errors: renamed errorreporting. The errors package will be removed shortly.
|
||
|
|
||
|
- datastore: improved retry behavior.
|
||
|
|
||
|
- bigquery: support updates to dataset metadata, with etags.
|
||
|
|
||
|
- bigquery: add etag support to Table.Update (BREAKING: etag argument added).
|
||
|
|
||
|
- bigquery: generate all job IDs on the client.
|
||
|
|
||
|
- storage: support bucket lifecycle configurations.
|
||
|
|
||
|
|
||
|
## v0.11.0
|
||
|
|
||
|
- Clients for spanner, pubsub and video are now in beta.
|
||
|
|
||
|
- New client for DLP.
|
||
|
|
||
|
- spanner: performance and testing improvements.
|
||
|
|
||
|
- storage: requester-pays buckets are supported.
|
||
|
|
||
|
- storage, profiler, bigtable, bigquery: bug fixes and other minor improvements.
|
||
|
|
||
|
- pubsub: bug fixes and other minor improvements
|
||
|
|
||
|
## v0.10.0
|
||
|
|
||
|
- pubsub: Subscription.ModifyPushConfig replaced with Subscription.Update.
|
||
|
|
||
|
- pubsub: Subscription.Receive now runs concurrently for higher throughput.
|
||
|
|
||
|
- vision: cloud.google.com/go/vision is deprecated. Use
|
||
|
cloud.google.com/go/vision/apiv1 instead.
|
||
|
|
||
|
- translation: now stable.
|
||
|
|
||
|
- trace: several changes to the surface. See the link below.
|
||
|
|
||
|
### Code changes required from v0.9.0
|
||
|
|
||
|
- pubsub: Replace
|
||
|
|
||
|
```
|
||
|
sub.ModifyPushConfig(ctx, pubsub.PushConfig{Endpoint: "https://example.com/push"})
|
||
|
```
|
||
|
|
||
|
with
|
||
|
|
||
|
```
|
||
|
sub.Update(ctx, pubsub.SubscriptionConfigToUpdate{
|
||
|
PushConfig: &pubsub.PushConfig{Endpoint: "https://example.com/push"},
|
||
|
})
|
||
|
```
|
||
|
|
||
|
- trace: traceGRPCServerInterceptor will be provided from *trace.Client.
|
||
|
Given an initialized `*trace.Client` named `tc`, instead of
|
||
|
|
||
|
```
|
||
|
s := grpc.NewServer(grpc.UnaryInterceptor(trace.GRPCServerInterceptor(tc)))
|
||
|
```
|
||
|
|
||
|
write
|
||
|
|
||
|
```
|
||
|
s := grpc.NewServer(grpc.UnaryInterceptor(tc.GRPCServerInterceptor()))
|
||
|
```
|
||
|
|
||
|
- trace trace.GRPCClientInterceptor will also provided from *trace.Client.
|
||
|
Instead of
|
||
|
|
||
|
```
|
||
|
conn, err := grpc.Dial(srv.Addr, grpc.WithUnaryInterceptor(trace.GRPCClientInterceptor()))
|
||
|
```
|
||
|
|
||
|
write
|
||
|
|
||
|
```
|
||
|
conn, err := grpc.Dial(srv.Addr, grpc.WithUnaryInterceptor(tc.GRPCClientInterceptor()))
|
||
|
```
|
||
|
|
||
|
- trace: We removed the deprecated `trace.EnableGRPCTracing`. Use the gRPC
|
||
|
interceptor as a dial option as shown below when initializing Cloud package
|
||
|
clients:
|
||
|
|
||
|
```
|
||
|
c, err := pubsub.NewClient(ctx, "project-id", option.WithGRPCDialOption(grpc.WithUnaryInterceptor(tc.GRPCClientInterceptor())))
|
||
|
if err != nil {
|
||
|
...
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
## v0.9.0
|
||
|
|
||
|
- Breaking changes to some autogenerated clients.
|
||
|
- rpcreplay package added.
|
||
|
|
||
|
## v0.8.0
|
||
|
|
||
|
- profiler package added.
|
||
|
- storage:
|
||
|
- Retry Objects.Insert call.
|
||
|
- Add ProgressFunc to WRiter.
|
||
|
- pubsub: breaking changes:
|
||
|
- Publish is now asynchronous ([announcement](https://groups.google.com/d/topic/google-api-go-announce/aaqRDIQ3rvU/discussion)).
|
||
|
- Subscription.Pull replaced by Subscription.Receive, which takes a callback ([announcement](https://groups.google.com/d/topic/google-api-go-announce/8pt6oetAdKc/discussion)).
|
||
|
- Message.Done replaced with Message.Ack and Message.Nack.
|
||
|
|
||
|
## v0.7.0
|
||
|
|
||
|
- Release of a client library for Spanner. See
|
||
|
the
|
||
|
[blog
|
||
|
post](https://cloudplatform.googleblog.com/2017/02/introducing-Cloud-Spanner-a-global-database-service-for-mission-critical-applications.html).
|
||
|
Note that although the Spanner service is beta, the Go client library is alpha.
|
||
|
|
||
|
## v0.6.0
|
||
|
|
||
|
- Beta release of BigQuery, DataStore, Logging and Storage. See the
|
||
|
[blog post](https://cloudplatform.googleblog.com/2016/12/announcing-new-google-cloud-client.html).
|
||
|
|
||
|
- bigquery:
|
||
|
- struct support. Read a row directly into a struct with
|
||
|
`RowIterator.Next`, and upload a row directly from a struct with `Uploader.Put`.
|
||
|
You can also use field tags. See the [package documentation][cloud-bigquery-ref]
|
||
|
for details.
|
||
|
|
||
|
- The `ValueList` type was removed. It is no longer necessary. Instead of
|
||
|
```go
|
||
|
var v ValueList
|
||
|
... it.Next(&v) ..
|
||
|
```
|
||
|
use
|
||
|
|
||
|
```go
|
||
|
var v []Value
|
||
|
... it.Next(&v) ...
|
||
|
```
|
||
|
|
||
|
- Previously, repeatedly calling `RowIterator.Next` on the same `[]Value` or
|
||
|
`ValueList` would append to the slice. Now each call resets the size to zero first.
|
||
|
|
||
|
- Schema inference will infer the SQL type BYTES for a struct field of
|
||
|
type []byte. Previously it inferred STRING.
|
||
|
|
||
|
- The types `uint`, `uint64` and `uintptr` are no longer supported in schema
|
||
|
inference. BigQuery's integer type is INT64, and those types may hold values
|
||
|
that are not correctly represented in a 64-bit signed integer.
|
||
|
|
||
|
## v0.5.0
|
||
|
|
||
|
- bigquery:
|
||
|
- The SQL types DATE, TIME and DATETIME are now supported. They correspond to
|
||
|
the `Date`, `Time` and `DateTime` types in the new `cloud.google.com/go/civil`
|
||
|
package.
|
||
|
- Support for query parameters.
|
||
|
- Support deleting a dataset.
|
||
|
- Values from INTEGER columns will now be returned as int64, not int. This
|
||
|
will avoid errors arising from large values on 32-bit systems.
|
||
|
- datastore:
|
||
|
- Nested Go structs encoded as Entity values, instead of a
|
||
|
flattened list of the embedded struct's fields. This means that you may now have twice-nested slices, eg.
|
||
|
```go
|
||
|
type State struct {
|
||
|
Cities []struct{
|
||
|
Populations []int
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
See [the announcement](https://groups.google.com/forum/#!topic/google-api-go-announce/79jtrdeuJAg) for
|
||
|
more details.
|
||
|
- Contexts no longer hold namespaces; instead you must set a key's namespace
|
||
|
explicitly. Also, key functions have been changed and renamed.
|
||
|
- The WithNamespace function has been removed. To specify a namespace in a Query, use the Query.Namespace method:
|
||
|
```go
|
||
|
q := datastore.NewQuery("Kind").Namespace("ns")
|
||
|
```
|
||
|
- All the fields of Key are exported. That means you can construct any Key with a struct literal:
|
||
|
```go
|
||
|
k := &Key{Kind: "Kind", ID: 37, Namespace: "ns"}
|
||
|
```
|
||
|
- As a result of the above, the Key methods Kind, ID, d.Name, Parent, SetParent and Namespace have been removed.
|
||
|
- `NewIncompleteKey` has been removed, replaced by `IncompleteKey`. Replace
|
||
|
```go
|
||
|
NewIncompleteKey(ctx, kind, parent)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
IncompleteKey(kind, parent)
|
||
|
```
|
||
|
and if you do use namespaces, make sure you set the namespace on the returned key.
|
||
|
- `NewKey` has been removed, replaced by `NameKey` and `IDKey`. Replace
|
||
|
```go
|
||
|
NewKey(ctx, kind, name, 0, parent)
|
||
|
NewKey(ctx, kind, "", id, parent)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
NameKey(kind, name, parent)
|
||
|
IDKey(kind, id, parent)
|
||
|
```
|
||
|
and if you do use namespaces, make sure you set the namespace on the returned key.
|
||
|
- The `Done` variable has been removed. Replace `datastore.Done` with `iterator.Done`, from the package `google.golang.org/api/iterator`.
|
||
|
- The `Client.Close` method will have a return type of error. It will return the result of closing the underlying gRPC connection.
|
||
|
- See [the announcement](https://groups.google.com/forum/#!topic/google-api-go-announce/hqXtM_4Ix-0) for
|
||
|
more details.
|
||
|
|
||
|
## v0.4.0
|
||
|
|
||
|
- bigquery:
|
||
|
-`NewGCSReference` is now a function, not a method on `Client`.
|
||
|
- `Table.LoaderFrom` now accepts a `ReaderSource`, enabling
|
||
|
loading data into a table from a file or any `io.Reader`.
|
||
|
* Client.Table and Client.OpenTable have been removed.
|
||
|
Replace
|
||
|
```go
|
||
|
client.OpenTable("project", "dataset", "table")
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
client.DatasetInProject("project", "dataset").Table("table")
|
||
|
```
|
||
|
|
||
|
* Client.CreateTable has been removed.
|
||
|
Replace
|
||
|
```go
|
||
|
client.CreateTable(ctx, "project", "dataset", "table")
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
client.DatasetInProject("project", "dataset").Table("table").Create(ctx)
|
||
|
```
|
||
|
|
||
|
* Dataset.ListTables have been replaced with Dataset.Tables.
|
||
|
Replace
|
||
|
```go
|
||
|
tables, err := ds.ListTables(ctx)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
it := ds.Tables(ctx)
|
||
|
for {
|
||
|
table, err := it.Next()
|
||
|
if err == iterator.Done {
|
||
|
break
|
||
|
}
|
||
|
if err != nil {
|
||
|
// TODO: Handle error.
|
||
|
}
|
||
|
// TODO: use table.
|
||
|
}
|
||
|
```
|
||
|
|
||
|
* Client.Read has been replaced with Job.Read, Table.Read and Query.Read.
|
||
|
Replace
|
||
|
```go
|
||
|
it, err := client.Read(ctx, job)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
it, err := job.Read(ctx)
|
||
|
```
|
||
|
and similarly for reading from tables or queries.
|
||
|
|
||
|
* The iterator returned from the Read methods is now named RowIterator. Its
|
||
|
behavior is closer to the other iterators in these libraries. It no longer
|
||
|
supports the Schema method; see the next item.
|
||
|
Replace
|
||
|
```go
|
||
|
for it.Next(ctx) {
|
||
|
var vals ValueList
|
||
|
if err := it.Get(&vals); err != nil {
|
||
|
// TODO: Handle error.
|
||
|
}
|
||
|
// TODO: use vals.
|
||
|
}
|
||
|
if err := it.Err(); err != nil {
|
||
|
// TODO: Handle error.
|
||
|
}
|
||
|
```
|
||
|
with
|
||
|
```
|
||
|
for {
|
||
|
var vals ValueList
|
||
|
err := it.Next(&vals)
|
||
|
if err == iterator.Done {
|
||
|
break
|
||
|
}
|
||
|
if err != nil {
|
||
|
// TODO: Handle error.
|
||
|
}
|
||
|
// TODO: use vals.
|
||
|
}
|
||
|
```
|
||
|
Instead of the `RecordsPerRequest(n)` option, write
|
||
|
```go
|
||
|
it.PageInfo().MaxSize = n
|
||
|
```
|
||
|
Instead of the `StartIndex(i)` option, write
|
||
|
```go
|
||
|
it.StartIndex = i
|
||
|
```
|
||
|
|
||
|
* ValueLoader.Load now takes a Schema in addition to a slice of Values.
|
||
|
Replace
|
||
|
```go
|
||
|
func (vl *myValueLoader) Load(v []bigquery.Value)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
func (vl *myValueLoader) Load(v []bigquery.Value, s bigquery.Schema)
|
||
|
```
|
||
|
|
||
|
|
||
|
* Table.Patch is replace by Table.Update.
|
||
|
Replace
|
||
|
```go
|
||
|
p := table.Patch()
|
||
|
p.Description("new description")
|
||
|
metadata, err := p.Apply(ctx)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
metadata, err := table.Update(ctx, bigquery.TableMetadataToUpdate{
|
||
|
Description: "new description",
|
||
|
})
|
||
|
```
|
||
|
|
||
|
* Client.Copy is replaced by separate methods for each of its four functions.
|
||
|
All options have been replaced by struct fields.
|
||
|
|
||
|
* To load data from Google Cloud Storage into a table, use Table.LoaderFrom.
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
client.Copy(ctx, table, gcsRef)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
table.LoaderFrom(gcsRef).Run(ctx)
|
||
|
```
|
||
|
Instead of passing options to Copy, set fields on the Loader:
|
||
|
```go
|
||
|
loader := table.LoaderFrom(gcsRef)
|
||
|
loader.WriteDisposition = bigquery.WriteTruncate
|
||
|
```
|
||
|
|
||
|
* To extract data from a table into Google Cloud Storage, use
|
||
|
Table.ExtractorTo. Set fields on the returned Extractor instead of
|
||
|
passing options.
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
client.Copy(ctx, gcsRef, table)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
table.ExtractorTo(gcsRef).Run(ctx)
|
||
|
```
|
||
|
|
||
|
* To copy data into a table from one or more other tables, use
|
||
|
Table.CopierFrom. Set fields on the returned Copier instead of passing options.
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
client.Copy(ctx, dstTable, srcTable)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
dst.Table.CopierFrom(srcTable).Run(ctx)
|
||
|
```
|
||
|
|
||
|
* To start a query job, create a Query and call its Run method. Set fields
|
||
|
on the query instead of passing options.
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
client.Copy(ctx, table, query)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
query.Run(ctx)
|
||
|
```
|
||
|
|
||
|
* Table.NewUploader has been renamed to Table.Uploader. Instead of options,
|
||
|
configure an Uploader by setting its fields.
|
||
|
Replace
|
||
|
```go
|
||
|
u := table.NewUploader(bigquery.UploadIgnoreUnknownValues())
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
u := table.NewUploader(bigquery.UploadIgnoreUnknownValues())
|
||
|
u.IgnoreUnknownValues = true
|
||
|
```
|
||
|
|
||
|
- pubsub: remove `pubsub.Done`. Use `iterator.Done` instead, where `iterator` is the package
|
||
|
`google.golang.org/api/iterator`.
|
||
|
|
||
|
## v0.3.0
|
||
|
|
||
|
- storage:
|
||
|
* AdminClient replaced by methods on Client.
|
||
|
Replace
|
||
|
```go
|
||
|
adminClient.CreateBucket(ctx, bucketName, attrs)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
client.Bucket(bucketName).Create(ctx, projectID, attrs)
|
||
|
```
|
||
|
|
||
|
* BucketHandle.List replaced by BucketHandle.Objects.
|
||
|
Replace
|
||
|
```go
|
||
|
for query != nil {
|
||
|
objs, err := bucket.List(d.ctx, query)
|
||
|
if err != nil { ... }
|
||
|
query = objs.Next
|
||
|
for _, obj := range objs.Results {
|
||
|
fmt.Println(obj)
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
iter := bucket.Objects(d.ctx, query)
|
||
|
for {
|
||
|
obj, err := iter.Next()
|
||
|
if err == iterator.Done {
|
||
|
break
|
||
|
}
|
||
|
if err != nil { ... }
|
||
|
fmt.Println(obj)
|
||
|
}
|
||
|
```
|
||
|
(The `iterator` package is at `google.golang.org/api/iterator`.)
|
||
|
|
||
|
Replace `Query.Cursor` with `ObjectIterator.PageInfo().Token`.
|
||
|
|
||
|
Replace `Query.MaxResults` with `ObjectIterator.PageInfo().MaxSize`.
|
||
|
|
||
|
|
||
|
* ObjectHandle.CopyTo replaced by ObjectHandle.CopierFrom.
|
||
|
Replace
|
||
|
```go
|
||
|
attrs, err := src.CopyTo(ctx, dst, nil)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
attrs, err := dst.CopierFrom(src).Run(ctx)
|
||
|
```
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
attrs, err := src.CopyTo(ctx, dst, &storage.ObjectAttrs{ContextType: "text/html"})
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
c := dst.CopierFrom(src)
|
||
|
c.ContextType = "text/html"
|
||
|
attrs, err := c.Run(ctx)
|
||
|
```
|
||
|
|
||
|
* ObjectHandle.ComposeFrom replaced by ObjectHandle.ComposerFrom.
|
||
|
Replace
|
||
|
```go
|
||
|
attrs, err := dst.ComposeFrom(ctx, []*storage.ObjectHandle{src1, src2}, nil)
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
attrs, err := dst.ComposerFrom(src1, src2).Run(ctx)
|
||
|
```
|
||
|
|
||
|
* ObjectHandle.Update's ObjectAttrs argument replaced by ObjectAttrsToUpdate.
|
||
|
Replace
|
||
|
```go
|
||
|
attrs, err := obj.Update(ctx, &storage.ObjectAttrs{ContextType: "text/html"})
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
attrs, err := obj.Update(ctx, storage.ObjectAttrsToUpdate{ContextType: "text/html"})
|
||
|
```
|
||
|
|
||
|
* ObjectHandle.WithConditions replaced by ObjectHandle.If.
|
||
|
Replace
|
||
|
```go
|
||
|
obj.WithConditions(storage.Generation(gen), storage.IfMetaGenerationMatch(mgen))
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
obj.Generation(gen).If(storage.Conditions{MetagenerationMatch: mgen})
|
||
|
```
|
||
|
|
||
|
Replace
|
||
|
```go
|
||
|
obj.WithConditions(storage.IfGenerationMatch(0))
|
||
|
```
|
||
|
with
|
||
|
```go
|
||
|
obj.If(storage.Conditions{DoesNotExist: true})
|
||
|
```
|
||
|
|
||
|
* `storage.Done` replaced by `iterator.Done` (from package `google.golang.org/api/iterator`).
|
||
|
|
||
|
- Package preview/logging deleted. Use logging instead.
|
||
|
|
||
|
## v0.2.0
|
||
|
|
||
|
- Logging client replaced with preview version (see below).
|
||
|
|
||
|
- New clients for some of Google's Machine Learning APIs: Vision, Speech, and
|
||
|
Natural Language.
|
||
|
|
||
|
- Preview version of a new [Stackdriver Logging][cloud-logging] client in
|
||
|
[`cloud.google.com/go/preview/logging`](https://godoc.org/cloud.google.com/go/preview/logging).
|
||
|
This client uses gRPC as its transport layer, and supports log reading, sinks
|
||
|
and metrics. It will replace the current client at `cloud.google.com/go/logging` shortly.
|
||
|
|
||
|
|