| # Expectations |
| |
| 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` |
| |
| # How to release `cloud.google.com/go` |
| |
| 1. Navigate `google-cloud-go/` and switch to master. |
| 1. `git pull` |
| 1. Determine the current release version with `git tag -l`. It should look |
| something like `vX.Y.Z`. We'll call the current version `$CV` and the new |
| version `$NV`. |
| 1. On master, run `git log $CV...` to list all the changes since the last |
| release. NOTE: You must manually exclude changes from submodules [1]. |
| 1. Edit `CHANGES.md` to include a summary of the changes. |
| 1. `cd internal/version && go generate && cd -` |
| 1. `./tidyall.sh` |
| 1. Mail the CL: `git add -A && git change && git mail` |
| 1. 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 pull` |
| c. Tag the repo with the next version: `git tag $NV`. |
| d. Push the tag to both the googlesource and github repositories: |
| `git push origin $NV` |
| `git push github $NV` |
| 1. Update [the releases page](https://github.com/googleapis/google-cloud-go/releases) |
| with the new release, copying the contents of `CHANGES.md`. |
| |
| # How to release a submodule |
| |
| 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) |
| |
| 1. Navigate `google-cloud-go/` and switch to master. |
| 1. `git pull` |
| 1. Determine the current release version with `git tag -l | grep datastore`. It |
| should look something like `datastore/vX.Y.Z`. We'll call the current version |
| `$CV` and the new version `$NV`, which should look something like `datastore/vX.Y+1.Z` |
| (assuming a minor bump). |
| 1. On master, run `git log $CV.. -- datastore/` to list all the changes to the |
| submodule directory since the last release. |
| 1. Edit `datastore/CHANGES.md` to include a summary of the changes. |
| 1. `./tidyall.sh` |
| 1. `cd internal/version && go generate && cd -` |
| 1. Mail the CL: `git add -A && git change && git mail` |
| 1. 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 pull` |
| c. Tag the repo with the next version: `git tag $NV`. |
| d. Push the tag to both the googlesource and github repositories: |
| `git push origin $NV` |
| `git push github $NV` |
| 1. Update [the releases page](https://github.com/googleapis/google-cloud-go/releases) |
| with the new release, copying the contents of `datastore/CHANGES.md`. |
| |
| # Appendix |
| |
| 1: This should get better as submodule tooling matures. |