# How to Release this Repo

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 main, run `git log $CV..` to list all the changes since the last
   release.
1. `cd internal/version && go generate && cd ../..`
1. Edit `CHANGES.md` to include a summary of the changes.
1. Mail the CL containing the `CHANGES.md` changes. When the CL is approved,
   submit it.
1. Without submitting any other CLs:
   a. Switch to main.
   b. `git pull`
   c. Tag the repo with the next version: `git tag $NV`.
   d. Push the tag: `git push origin $NV`.
1. Update [the releases page](https://github.com/googleapis/google-api-go-client/releases)
   with the new release, copying the contents of the CHANGES.md.

# Auto-regeneration

A nightly cron job re-generates all of the clients. It runs `make all`.

Releases are manually tagged (see above).

See:

* [Code for the cronjob, in the discovery-artifact-manager repo](https://github.com/googleapis/discovery-artifact-manager/blob/main/server/tasks/google_api_go_client.py)
* [List of cronjobs](https://console.cloud.google.com/appengine/cronjobs?project=discovery-artifact-manager)
* [App Engine stderr logs](https://console.cloud.google.com/logs/viewer?project=discovery-artifact-manager)
