Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/203 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/38
3.1 KiB
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
- 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$CV
and 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.md
to 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 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
- Update the releases page
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)
- 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$CV
and 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.md
to include a summary of the changes. ./tidyall.sh
cd 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 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
- Update the releases page
with the new release, copying the contents of
datastore/CHANGES.md
.
Appendix
1: This should get better as submodule tooling matures.