Relationship between istio/proxy, istio/envoy, envoyproxy/wasm

I see that in istio/istio, we keep a file called istio.deps that points to a commit hash in istio/proxy. In there, we point to a commit hash and SHA256 of envoyproxy/envoy-wasm - which seems to be a fork of envoyproxy/envoy.

I can also see a repo istio/envoy though, and I’m not sure how that is used because istio/proxy mentions envoy-wasm in a few places.

Can somebody quickly explain this complex dependency chain? And what is the difference between envoy-wasm and envoy? I have a hard time finding out where to make changes because I don’t quite get the relationships, and couldn’t find an up-to-date document describing them.

Many thanks in advance!
Daniel

1 Like

If I understand correctly:

istio/istio points to istio/proxy

istio/proxy points to envoyproxy/envoy-wasm

envoyproxy/envoy-wasm is a temporary fork of envoyproxy/envoy. When it’s considered mature/stable, it will be merged back into envoyproxy/envoy, which at that point, istio/proxy will turn back to envoyproxy/envoy.

istio/envoy I think was a temporary fork that is not used anymore.

So, if you need to change something in Envoy, go to its main repo envoyproxy/envoy. Your changes will be eventually picked up by envoyproxy/envoy-wasm (which will be used by Istio).

I’ve heard that envoyproxy/envoy-wasm is going to be merged back into envoyproxy/envoy soon, but I don’t think this will happen in time for istio 1.4, correct @howardjohn?

2 Likes

According to @mandarjog 1.4 will actually be from istio/envoy, not envoy-wasm

We will still use istio/envoy for release branches. For example, the 1.3 branch uses the istio/envoy:release-1.3 branch, which is branched off envoyproxy/envoy-wasm.

I expect that the 1.4. releases will use istio/envoy:release-1.4 which will be branched off envoyproxy/envoy.

1 Like

Ok got real confirmation. It is a bit different for master and the future release-1.4 branch:

master: istio/proxy builds envoyproxy/envoy-wasm directly
release-1.4: istio/proxy builds istio/envoy, which is a mirror of envoyproxy/envoy-wasm

1 Like

Thank you everyone, it’s a lot clearer now.

master: istio/proxy builds envoyproxy/envoy-wasm directly
release-1.4: istio/proxy builds istio/envoy, which is a mirror of envoyproxy/envoy-wasm

So I assume the istio/envoy repo is going to be deprecated post-1.4? Or is master generally pointing at upstream envoyproxy/envoy-wasm and releases point to our fork, in order to maintain the release-x branches?