In CONTRIBUTING.md, we expect users to have a remote called origin that points
to the https://code.googlesource.com/gocloud repository. For releasing, we
also use a github remote, setup to point to the replica repository hosted
on github at https://github.com/googleapis/google-cloud-go
If you don't already have an 'origin' remote from cloning the master repository, you can add it:
git remote add origin https://code.googlesource.com/gocloud
Add the github remote as well, using the name github:
git remote add github https://github.com/googleapis/google-cloud-go
- Navigate
google-cloud-go/and switch to master. git pull- Determine the current release version with
git tag -l. It should look something likevX.Y.Z. We'll call the current version$CVand the new version$NV. - On master, run
git log $CV...to list all the changes since the last release. NOTE: You must manually exclude changes from submodules [1]. - Edit
CHANGES.mdto include a summary of the changes. cd internal/version && go generate && cd -./tidyall.sh- Mail the CL:
git add -A && git change && git mail - Wait for the CL to be submitted. Once it's submitted, and without submitting
any other CLs in the meantime:
a. Switch to master.
b.
git pullc. Tag the repo with the next version:git tag $NV. d. Push the tag to both the googlesource and github repositories:git push origin $NVgit push github $NV - Update the releases page
with the new release, copying the contents of
CHANGES.md.
We have several submodules, including cloud.google.com/go/logging, cloud.google.com/go/datastore, and so on.
To release a submodule:
(these instructions assume we're releasing cloud.google.com/go/datastore - adjust accordingly)
- Navigate
google-cloud-go/and switch to master. git pull- Determine the current release version with
git tag -l | grep datastore. It should look something likedatastore/vX.Y.Z. We'll call the current version$CVand the new version$NV, which should look something likedatastore/vX.Y+1.Z(assuming a minor bump). - On master, run
git log $CV.. -- datastore/to list all the changes to the submodule directory since the last release. - Edit
datastore/CHANGES.mdto include a summary of the changes. ./tidyall.shcd internal/version && go generate && cd -- Mail the CL:
git add -A && git change && git mail - Wait for the CL to be submitted. Once it's submitted, and without submitting
any other CLs in the meantime:
a. Switch to master.
b.
git pullc. Tag the repo with the next version:git tag $NV. d. Push the tag to both the googlesource and github repositories:git push origin $NVgit push github $NV - Update the releases page
with the new release, copying the contents of
datastore/CHANGES.md.
1: This should get better as submodule tooling matures.