envoyproxy/envoy

Restrict visibility to Envoy internals in consuming projects

Open

#827 opened on Apr 24, 2017

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/buildhelp wantedtech debt

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Today, the Bazel visibility for all targets (from source, to test support to the tests themselves) is public. This means that a project that consumes Envoy and adds its own filters etc., might rely on internal implementation details that are not intended to be stable aspects of the API.

We should restrict visibility outside of Envoy to only its interfaces, well defined library/binary exports (//source/exe:envoy, //source/exe:envoy_main_lib) and common code under ::Api:: that should be explicitly shared and is subject to the same API considerations as the Envoy interfaces in include.

Contributor guide