Hi Hen, Thank you so much for your detailed check!
There is one more question about this file: > > The method "quantile" is copied from ij ------------------------------ Su Shuang (100pah) ------------------------------ On Mon, 11 Feb 2019 at 04:49, Hen <[email protected]> wrote: > On Fri, Feb 1, 2019 at 11:04 AM SHUANG SU <[email protected]> wrote: > > > > > Hi, > > > > Thanks a lot for the attention and checking. > > > > > > To be more specific, here are some types of files: > > > > 1. Some part of a file (maybe several lines, or a short function) is > > copied directly from a 3rd-party implementation, but others are > implemented > > by ourselves. > > > > 2. The code is implemented by us, but the general idea or algorithm > is > > inspired by 3rd-party. > > > > > ASF policy [1] states that you should not add the standard Apache > > License header to the top of third-party source files, and only if major > > modifications are done then the (P)PMC should decide what to do. IMO that > > decision would need to be documented on the mailing list. INAL but from > > what I’ve seen previously option 2 is generally not enough change to > > change the 3rd party license. > > > > In my opinion, both the cases that a code snippet "copied from a > > 3rd-party" or "the idea/algorithm inspired by 3rd-party" > > need to follow the third-party license. > > > > > "inspired by" and "learned from" are both, iiuc, vague concepts in > copyright. There's no right given to learn from a piece of code or to be > inspired by a piece of code. So the 'need to follow license' statement > doesn't compile cleanly. > > What's the right thing to do for the public good here? I'll go with: > > * Be transparent when implementing an existing idea/algorithm. > * Reference where that idea/algorithm came from. > * Use standard language when doing so (we need to define standard > language). > * If any copyrightable expression is copied from the existing > idea/algorithm, compare its licensing to our licensing policies and include > licensing accordingly. > > In fact, in the current source code of Apache-echarts, there > > is no case that "a code snippet need to change the origin third-party > > license". > > > > But the key point we are confused and discussed here is: > > "how to arrange the presence of the license statement in the source code > > files > > when some code follows the Apache License and some follows the > third-party > > license". > > > > To find a practicable way to solve this issue and guide the future > coding, > > I think we need to go deep into these source files: > > > > These source files of the release candidate of Apache-echarts 4.2.1-rc.1 > > ( https://dist.apache.org/repos/dist/dev/incubator/echarts/4.2.1-rc.1/ ) > > are questioned about the embedded third-party license: > > > > <1> src/util/number.js > > > > This file says this: > > * @see <https://github.com/mbostock/d3/blob/master/src/arrays/quantile.js > > > * @see <http://en.wikipedia.org/wiki/Quantile> > > Assuming no code was copied, this seems fine. If code was copied from > either, then there is licensing to include (be that BSD for d3 or CC-BY-SA > for Quantile, the latter being a problem for us licensing wise). > > > > <2> src/chart/treemap/treemapLayout.js > > > > This file says this: > > /* > * The treemap layout implementation references to the treemap > * layout of d3.js (d3/src/layout/treemap.js in v3). The use of > * the source code of this file is also subject to the terms > * and consitions of its license (BSD-3Clause, see > * <echarts/src/licenses/LICENSE-d3>). > */ > > and later: > > * Layout treemap with squarify algorithm. > * @see > > https://graphics.ethz.ch/teaching/scivis_common/Literature/squarifiedTreeMaps.pdf > * The implementation references to the treemap layout of d3.js. > * See the license statement at the head of this file. > > The 'references to' is confusing, I don't know what that is supposed to > mean has happened. Assuming code has been copied from d3 into echarts here, > which is not what 'references to' means, the rest of this would look good > to me. > > > > <3> src/chart/tree/layoutHelper.js > > > > This file says this: > > /* > * The tree layout implementation references to d3.js > * (https://github.com/d3/d3-hierarchy). The use of the source > * code of this file is also subject to the terms and consitions > * of its license (BSD-3Clause, see <echarts/src/licenses/LICENSE-d3>). > */ > > /** > * @file The layout algorithm of node-link tree diagrams. Here we using > Reingold-Tilford algorithm to drawing > * the tree. > * @see https://github.com/d3/d3-hierarchy > */ > > My comments are the same as the previous item. > > > > <4> src/chart/graph/forceHelper.js > > > > Same 'references to' language. Later on it also says '// From d3' followed > by a block of commented out code. It's not clear if that's meant to mean > code has been copied. > > > > <5> src/util/array/nest.js > > > > Note that this was src/util.nest.js. Same 'references to' issue. > > > > <6> src/scale/Time.js > > > > Same 'references to' issue. Also says: > > // Steps from d3, see the license statement at the top of this file. > > which seems fine. > > > > <snip by bayard@> > > > > And about the file <5>, the whole file is modified from the previous > > version of d3 (the version is about 3 years ago, > > > https://github.com/d3/d3/blob/9cc9a875e636a1dcf36cc1e07bdf77e1ad6e2c74/src/arrays/nest.js > > ). So this file > > probably should be under the d3 license, but not an Apache License, > isn't? > > If so, the Apache License header of this file is needed to be removed. > > > > If it's originally a 3rd party file, then I'd encourage doing: > > <Original license> > > <Modifications by Apache eCharts provided under Apache License 2.0> > > Hen >
