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.
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?
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.
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?