Skip to content
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

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

Closed
42 tasks done
tseaver opened this issue May 14, 2019 · 1 comment
Closed
42 tasks done

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

tseaver opened this issue May 14, 2019 · 1 comment
Assignees
Labels
api: bigquery Issues related to the BigQuery API. api: bigquerystorage Issues related to the BigQuery Storage API. api: bigtable Issues related to the Bigtable API. api: clouderrorreporting Issues related to the Error Reporting API. api: cloudresourcemanager Issues related to the Resource Manager API. api: cloudtrace Issues related to the Cloud Trace API. api: datastore Issues related to the Datastore API. api: dns Issues related to the Cloud DNS API. api: firestore Issues related to the Firestore API. api: logging Issues related to the Cloud Logging API. api: pubsub Issues related to the Pub/Sub API. api: runtimeconfig Issues related to the Cloud Runtime Config API API. api: spanner Issues related to the Spanner API. api: translation Issues related to the Cloud Translation API API. packaging type: process A process-related concern. May include testing, release, or the like.

Comments

@tseaver
Copy link
Contributor

tseaver commented May 14, 2019

/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:

@tseaver tseaver added api: datastore Issues related to the Datastore API. api: bigquery Issues related to the BigQuery API. api: dns Issues related to the Cloud DNS API. packaging api: pubsub Issues related to the Pub/Sub API. api: bigtable Issues related to the Bigtable API. api: cloudresourcemanager Issues related to the Resource Manager API. api: logging Issues related to the Cloud Logging API. api: translation Issues related to the Cloud Translation API API. api: runtimeconfig Issues related to the Cloud Runtime Config API API. api: spanner Issues related to the Spanner API. api: clouderrorreporting Issues related to the Error Reporting API. api: cloudtrace Issues related to the Cloud Trace API. api: firestore Issues related to the Firestore API. type: process A process-related concern. May include testing, release, or the like. api: bigquerystorage Issues related to the BigQuery Storage API. labels May 14, 2019
@tseaver tseaver self-assigned this May 14, 2019
@tseaver
Copy link
Contributor Author

tseaver commented May 17, 2019

Whew!

@tseaver tseaver closed this as completed May 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: bigquery Issues related to the BigQuery API. api: bigquerystorage Issues related to the BigQuery Storage API. api: bigtable Issues related to the Bigtable API. api: clouderrorreporting Issues related to the Error Reporting API. api: cloudresourcemanager Issues related to the Resource Manager API. api: cloudtrace Issues related to the Cloud Trace API. api: datastore Issues related to the Datastore API. api: dns Issues related to the Cloud DNS API. api: firestore Issues related to the Firestore API. api: logging Issues related to the Cloud Logging API. api: pubsub Issues related to the Pub/Sub API. api: runtimeconfig Issues related to the Cloud Runtime Config API API. api: spanner Issues related to the Spanner API. api: translation Issues related to the Cloud Translation API API. packaging type: process A process-related concern. May include testing, release, or the like.
Projects
None yet
Development

No branches or pull requests

1 participant