Skip to content
  • Carl Mastrangelo's avatar
    Split grpclb out of top level grpc package (#2107) · 4344c204
    Carl Mastrangelo authored
    This PR splits out grpclb from grpc.  I have made the PR in several commits so you can see more clearly the steps that happened.
    
    There are a few possibly contentious points that I would like to make clear up front:
    
    * grpclb will no longer autoload as a load balancer.  I think this is okay, as service config is not widely (at all?) used, and I believe this is the only way to access it.
    * `internal` is used more, as a way of having code shared between packages without exposing types
    * ConnectivityStateEvaluator, as used by grpclb, is no longer thread safe.  I believe there is an outer mutex that guards access, but I want to point out this subtle change up here.
    
    All but one tests pass with this, due to another cyclic dependency.  I can fix this, but it is a little more widely scoped (such as exposing grpc.server and grpc.errorDesc in the internal package).   This PR is a nearly-passing sample of that last step to get this working. 
    
    PTAL @menghanl @dfawley 
    4344c204