v0.12.0 - Preparing for 1.0
The gcloud-ruby project intends to provide rubyists with the most comfortable and natural experience interacting with Google Cloud. In this release we take the final steps towards 1.0 with some small but important refinements. Unfortunately, this includes some changes that break backwards compatibility.
The biggest change is in the google-api-client
dependency, which is now on the latest release. This change impacts how uploads and downloads are handled. Improvements include streaming downloads so files are no longer read into memory. Gcloud::Upload
and the chunk_size
optional argument cannot be supported with this change, and have been removed.
Other changes include a new approach for error handling. Shared error classes are now used across all services. Some service-specific error classes remain, but most errors now use the shared classes.
BigQuery has several changes to the Access
and Schema
classes. Pub/Sub and Resource Manager have new Policy
classes, and Storage Bucket::Cors
has changes as well. All these changes add clarity and guidance on managing these resources by replacing hashes of data with structured objects.
The full list of changes in this release are:
- Core
- Upgrade Google API Client dependency to
0.9
- Upgrade gRPC dependency to
1.0.0.pre1
- Add optional arguments
retries
andtimeout
to service factories - Remove
Gcloud::Error#inner
, use#cause
instead - Remove
Gcloud::Backoff
- Remove
Gcloud::Upload
- Upgrade Google API Client dependency to
- BigQuery
- Replace
Bigquery::Error
andBigquery::ApiError
classes withGcloud::Error
classes - Update
Dataset#access
to return a frozenDataset::Access
object (was array of hashes) - Remove
Dataset#access=
, useDataset#access
with a block to make changes - Update
Dataset#create_table
method- Remove
schema
optional argument - Add
fields
optional argument - Yield
Table::Updater
instead ofTable::Schema
- Remove
- Remove erroneous
Dataset::Access
methodsDataset::Access#add_owner_view
Dataset::Access#add_writer_view
Dataset::Access#remove_writer_view
Dataset::Access#remove_owner_view
Dataset::Access#writer_view?
Dataset::Access#owner_view?
- Remove erroneous
Job::List#total
accessor - Remove erroneous
Project#access
method - Move
Table::Schema
toSchema
- Update
Table#schema
to return a frozenSchema
object (was hash) - Remove
Table#schema=
, useTable#schema
with a block to make changes - Add
Schema::Field
- Add
View#id
and#query_id
methods, to matchTable
- Add
Dataset::Updater
class - Add
Table::Updater
class - Remove
Table#load
optional argumentchunk_size
- Replace
- Datastore
- Replace
Datastore::Error
andDatastore::KeyfileError
classes withGcloud::Error
classes - Add
KeyError
class - Remove
TransactionError#commit_error
and#transaction_error
methods, use#cause
instead - Add
Entity#serialized_size
method - Add
Key#serialized_size
method - Update documentation for emulator (pcostell)
- Replace
- DNS
- Replace
Dns::Error
andDns::ApiError
classes withGcloud::Error
classes
- Replace
- Logging
- Update
Project#entry
with convenient optional arguments - Add
Entry#resource=
method - Add
Entry
severity convenience methodsEntry#default!
Entry#debug!
Entry#info!
Entry#notice!
Entry#warning!
Entry#error!
Entry#critical!
Entry#alert!
Entry#emergency!
- Update
- Pub/Sub
- Add
Policy
class - Update
Topic#policy
to yield aPolicy
object to be updated - Update
Topic#policy
/#policy=
to return/receivePolicy
object (was hash) - Update
Subscription#policy
to yield aPolicy
object to be updated - Update
Subscription#policy
/#policy=
to return/receivePolicy
object (was hash) - Rename
Topic::Batch
toTopic::Publisher
- Add
- Resource Manager
- Upgrade to
V1
API - Add
Policy
class - Update
Project#policy
to yield aPolicy
object to be updated - Update
Project#policy
/#policy=
to return/receivePolicy
object (was hash)
- Upgrade to
- Storage
- Replace
Storage::Error
andStorage::ApiError
classes withGcloud::Error
classes - Update
Project#create_bucket
- Yield
Bucket::Updater
object instead of aBucket::Cors
object - Remove
cors
optional argument
- Yield
- Remove
Bucket#create_file
optional argumentchunk_size
- Remove
Bucket#cors=
, useBucket#cors
with a block to make changes - Add
Bucket::Cors::Rule
class - Remove erroneous
Bucket::DefaultAcl
methodsBucket::DefaultAcl#writers
Bucket::DefaultAcl#add_writer
- Remove erroneous
File::Acl
methodsFile::Acl#writers
File::Acl#add_writer
- Replace
- Translate
- Replace
Translate::Error
andTranslate::ApiError
classes withGcloud::Error
classes
- Replace
- Vision
- Replace
Vision::Error
andVision::ApiError
classes withGcloud::Error
classes
- Replace