Open zd-double opened 7 years ago
避免这个问题有两个办法:
@qinzuoyan 谢谢左言,剥离出来的boost的namespace也会修改为rpc的namespace。
赞,不过这也有一个弊端,就是没法跟进boost的更新,譬如bug-fix等,除非定期同步升级代码。 有个建议,开两个branch:
赞同 可以搞两个分支
另外 @zd-double 明确下准备使用哪个版本的boost?
赞~ 完全不依赖boost的版本,需要讲boost代码合入我们的主干,所以建议慎重选个稳定的boost版本。
选用boost版本:1.58.0
执行方案 分两个分支: 完全不依赖boost:抽出的boost在src目录下,使用sofa::pbrpc的namespace。
完全依赖boost:将之前抽出的smart_ptr和system_error的内容去掉,仍旧依赖boost的实现。
维护方案: 将依赖boost的版本设为master,不依赖boost的作为另一个分支。
之后维护两个分支,功能升级需要更新到两个分支上去。
@cyshi @bluebore @qinzuoyan 大家看看有什么意见?
我觉得将不依赖boost的版本作为master是不是更好,因为长期看倾向于让用户选择不依赖的版本,我们应该也不会长时间的维护两个分支
另外对于之后boost升级或者bug fix这部分是怎么打算的?
@zd-double ,我觉得挺好。有一点小建议:既然抽出来的boost代码放在sofa::pbrpc的namespace,那么相应的源代码应当放在src/sofa/pbrpc下面吧,而不应当与sofa同级,可以参考现有的smart_ptr怎么做的。
使用脚本对精简后的boost 替换namespace为sofa::pbrpc。
最好不要直接修改boost的命名空间 统一在boost之外包裹一层sofa::pbrpc
sofa-pbrpc去boost版本的暂时放在这里,大家review一下给点意见。 实现上主要有几点:
可以先放分支下
no-boost分支可以发布一个release吗?
@zd-double 测试如何了
背景
当前一些依赖sofa-pbrpc的应用程序同时也依赖了boost,rpc依赖的boots如果和应用程序依赖的boost没有版本打平会造成一些不可预期的结果,之前出现过此类问题,而且问题追查也十分困难。
方案
从boost中抠出一个rpc依赖的最小子集放在src下的单独目录,之后的rpc不再依赖外部的boost库。
排期
11.7 -11.11: 完成开发自测,提交pr; 11.11-11.18: pr完善和修改,合入;