README.md
1# Patches to grpc repo tags for the backwards compatibility interop tests
2
3This directory has patch files that can be applied to different tags
4of the grpc git repo in order to run the interop tests for a specific
5language based on that tag.
6
7For example, because the ruby interop tests do not run on the v1.0.1 tag out
8of the box, but we still want to test compatibility of the 1.0.1 ruby release
9with other versions, we can apply a patch to the v1.0.1 tag from this directory
10that makes the necessary changes that are needed to run the ruby interop tests
11from that tag. We can then use that patch to build the docker image for the
12ruby v1.0.1 interop tests.
13
14## How to add a new patch to this directory
15
16Patch files in this directory are meant to be applied to a git tag
17with a `git apply` command.
18
191. Under the `patches` directory, create a new subdirectory
20titled `<language>_<git_tag>` for the git tag being modified.
21
222. `git checkout <git_tag>`
23
243. Make necessary modifications to the git repo at that tag.
25
264.
27
28```
29git diff > ~/git_repo.patch
30git checkout <current working branch>
31cp ~/git_repo.patch tools/interop_matrix/patches/<language>_<git_tag>/
32```
33
345. Edit the `LANGUAGE_RELEASE_MATRIX` in `client_matrix.py` for your language/tag
35and add a `'patch': [<files>,....]` entry to it's `dictionary`.
36
37After doing this, the interop image creation script can apply that patch to the
38tag with `git apply` before uploading to the test image repo.
39