什么是D3js版本支持政策?

时间:2018-07-23 11:41:02

标签: d3.js version-control backwards-compatibility

我是D3js的新手,在开始之前我想了解如何管理内核和插件的版本,所以我不会陷入旧的不受支持的版本中或使用过于实验性的方式。

如果查看发布历史记录,我会发现v4是在Jun 2016https://github.com/d3/d3/releases?after=v4.1.0)中引入的,而v5是在Jan 2018({{3 }}。

但是,当我在图库(https://github.com/d3/d3/releases?after=v5.0.1)上查看D3js代码时,我发现它大部分基于v3,这是后面的2主要版本

例如,如果我使用https://github.com/d3/d3/wiki/Gallery,它仍然基于v3,而如果我尝试将其替换为v5,它就会损坏。

另一个例子:Sankey example updated in May 2018,当时和2017年4月的答案仍然无效(尽管someone had an issue with v4 back in Feb 2017,在v4发布近一年之后):< / p>

it was already v4.8 at the time

因此,看来v4/v5v3是完全不同的分支,甚至不向后兼容。

提出我的问题:

  • v5向后兼容v3的程度如何?
  • v3仍将受支持多久?

2 个答案:

答案 0 :(得分:5)

将评论合并为1个综合答案:

一般哲学
鉴于D3创建者是creating/maintaining the library mostly by himself,这似乎是可以理解的,没有足够的资源来进行向后兼容设计或维护旧代码。

可供选择的版本
鉴于上述情况,从头开始时,选择最新版本似乎是最明智的选择。

向后兼容
v3v5之间存在向后不兼容的更改(v5已从d3-queued3-requestschemeCategory20 ...中删除)。因此,如果将来引入其他向后不兼容的更改,也不会感到震惊。

旧版支持
似乎在发布新版本的那一刻,对旧版本的支持被放弃了,所有精力都集中在新版本上:
https://twitter.com/mbostock/status/764274097995907072

enter image description here

答案 1 :(得分:-2)

D3v3 schemeCategory20[bc]在v4(??)和v5中不可用。

使用v3源代码中的色号并将其转换为在v5之类的情况下可以使用的十六进制等效色

var colors = d3.scaleOrdinal(d3.schemeCategory20b);

小片段

function d3_rgbHexString(value) { return "#" + (0x1000000 + value).toString(16).substring(1); }
d3.schemeCategory20  = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbHexString);
d3.schemeCategory20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbHexString);
d3.schemeCategory20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbHexString);
相关问题