# Patches to grpc repo tags for the backwards compatibility interop tests

This directory has patch files that can be applied to different tags
of the grpc git repo in order to run the interop tests for a specific
language based on that tag.

For example, because the ruby interop tests do not run on the v1.0.1 tag out
of the box, but we still want to test compatibility of the 1.0.1 ruby release
with other versions, we can apply a patch to the v1.0.1 tag from this directory
that makes the necessary changes that are needed to run the ruby interop tests
from that tag. We can then use that patch to build the docker image for the
ruby v1.0.1 interop tests.

## How to add a new patch to this directory

Patch files in this directory are meant to be applied to a git tag
with a `git apply` command.

1. Under the `patches` directory, create a new subdirectory
titled `<language>_<git_tag>` for the git tag being modified.

2. `git checkout <git_tag>`

3. Make necessary modifications to the git repo at that tag.

4. 

```
git diff > ~/git_repo.patch
git checkout <current working branch>
cp ~/git_repo.patch tools/interop_matrix/patches/<language>_<git_tag>/
```

5. Edit the `LANGUAGE_RELEASE_MATRIX` in `client_matrix.py` for your language/tag
and add a `'patch': [<files>,....]` entry to it's `dictionary`.

After doing this, the interop image creation script can apply that patch to the
tag with `git apply` before uploading to the test image repo.