Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Release the world to support 'client_info' for manual clients. #7968

Closed
@tseaver

Description

@tseaver

/cc @crwilcox, @busunkim96, @tswast

Follow-on to #7825. Because we are releasing new features in google-api-core and (more importantly) google-cloud-core, we need to handle this release phase delicately. Current clients which depend on google-cloud-core use a too-narrow pin:

$ grep google-cloud-core */setup.py | grep -v "^core"
bigquery/setup.py:    "google-cloud-core >= 0.29.0, < 0.30dev",
bigtable/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
datastore/setup.py:    'google-cloud-core >=0.29.0, <0.30dev',
dns/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
firestore/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
logging/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
resource_manager/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
runtimeconfig/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
spanner/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
storage/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',
trace/setup.py:    'google-cloud-core >=0.29.0, <0.30dev',
translate/setup.py:    'google-cloud-core >= 0.29.0, < 0.30dev',

Per conversation today, we plan to go ahead and release a 1.0.0 of google-cloud-core. Before that, we need to make releases from the last tags of the clients above which broaden the range to google-cloud-core >= 0.29.0, < 2.0dev.

Prep Releases

For each of the following:

the procedure is:

  • Make a "release branch" from the last tag, e.g. $ git checkout -b bigquery-1.11-back bigquery-1.11.2.
  • Push that branch to upstream, e.g. $ git push upstream bigquery-1.11-back.
  • Make a branch from that branch, e.g. $ git checkout -b bigquery-1.11.3-release bigquery-1.11-back.
  • Update the pin in setup.py to google-cloud-core >= 0.29.0, < 2.0dev.
  • Commit the change, e.g. $ git commit setup.py -m "Widen range for 'google-cloud-core'."
  • Push the -release branch, e.g. $ git push origin bigquery-1.11.3-release.
  • Make a PR for the -release branch, targeting the -back branch.
  • Label the PR autorelease-pending.
  • Edit setup.py to bump the version, e.g. to 1.11.3.
  • Edit CHANGELOG.md to include the widening and PR #.
  • Push those changes to the origin branch.
  • Merge the PR after CI.
  • Update the local branch, e.g. $ git checkout bigquery-1.11-back && git fetch upstream && git merge upstream/bigquery-1.11-back.
  • Tag the local branch, e.g. $ git tag bigquery-1.11.3
  • Push the tag, e.g.: $ git push upstream bigquery-1.11.3.
  • Monitor the PR to see that the bot updates the tags and makes / releases artifacts. Note: I had to do the release tagging / push to PyPI bits manually.

Core Releases

Once all the prep releases are finished, use releasetool to make new releases of core packages:

Update Client Library Pins

Once the new google-api-core and google-cloud-core releases are complete, create PRs for each client from master which bump the pins for each one accordingly to match:

Client Library Releases

After merging the "update pins" PRs, run releasetool for each manual client, and shepherd out the releases:

Because error_reporting relies on transitive deps of google-cloud-logging to pick up new google-api-core and google-cloud-core versions, it has to be handled specially:

Datastore:

Metadata

Metadata

Assignees

Labels

api: bigqueryIssues related to the BigQuery API.api: bigquerystorageIssues related to the BigQuery Storage API.api: bigtableIssues related to the Bigtable API.api: clouderrorreportingIssues related to the Error Reporting API.api: cloudresourcemanagerIssues related to the Resource Manager API.api: cloudtraceIssues related to the Cloud Trace API.api: datastoreIssues related to the Datastore API.api: dnsIssues related to the Cloud DNS API.api: firestoreIssues related to the Firestore API.api: loggingIssues related to the Cloud Logging API.api: pubsubIssues related to the Pub/Sub API.api: runtimeconfigIssues related to the Cloud Runtime Config API API.api: spannerIssues related to the Spanner API.api: translationIssues related to the Cloud Translation API API.packagingtype: processA process-related concern. May include testing, release, or the like.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions