Hmm, this sounds like we should also have a proper LICENSE/NOTICE for our binary releases.
On Fri, 1 Jul 2016 at 18:06 Greg Hogan <c...@greghogan.com> wrote: > These external libraries will still be shipped in the binaries, which > complicates the issue since source and binary licenses must be tracked > separately. > http://www.apache.org/dev/licensing-howto.html#binary > > I do agree that this would be a nice improvement to the build system. > > On Fri, Jul 1, 2016 at 11:16 AM, Maximilian Michels <m...@apache.org> > wrote: > > > Ah, now I see that a compile-time dependency resolution would make > > sense. Then we don't have to check license compatibility for web > > dependencies which are downloaded during compile time and are not part > > of the source distribution. > > > > +1 Would be worth the effort to integrate this in our build system, > > e.g. via the proposed plugin. > > > > On Thu, Jun 30, 2016 at 2:48 PM, Till Rohrmann <trohrm...@apache.org> > > wrote: > > > Yes, that is also how I understood the Apache License requirements. > > Having > > > a mere dependency on some external library which is not shipped as part > > of > > > the source release does not require to include it in the LICENSE/NOTICE > > > file. I think that you only have to include a reference in the > > > LICENSE/NOTICE file, if your source release contains actual code which > > has > > > a copyright. With the vendor.js file, the latter case applies. > > > > > > I'm not a bower expert, so I cannot tell for sure which javascript > files > > > end up in the vendor.js file. I would assume that they are the bower > > > dependencies defined in bower.json and their transitive dependencies. > But > > > parsing the vendor.js file will not be feasible, since it contains > 80000+ > > > LOC. > > > > > > Thus my main concern, why I initiated this discussion, is the legal > > aspect > > > of including a monolithic file of javascript code in our code base. The > > > Flink community might release code which violates other people's > > copyright. > > > > > > Additionally, it might be worth the effort to harden our build system > > > anyway if you say that it's fragile. Then we could also properly > > integrate > > > the web-dashboard generation into the build process. > > > > > > On Thu, Jun 30, 2016 at 2:30 PM, Aljoscha Krettek <aljos...@apache.org > > > > > wrote: > > > > > >> AFAIK the Apache License requires that we have an entry in the > > >> LICENSE/NOTICE file for all external code that we ship with our > source. > > If > > >> we have vendor.js in our source we have to include everything that is > in > > >> there. If we don't have any actual external code in our source but > only > > >> specified dependencies we should not be required to include them in > the > > >> LICENSE/NOTICE file. > > >> > > >> On Thu, 30 Jun 2016 at 14:07 Maximilian Michels <m...@apache.org> > wrote: > > >> > > >> > I'm afraid I don't think integration in the Maven build process > makes > > >> > a difference in terms of licensing. It is already clearly specified > > >> > what dependencies the web frontend uses (see README, bower.json, > > >> > package.json). It won't get any easier with something integrated in > > >> > the build process. We still have to leverage the Javascript build > > >> > systems which resolve transitive dependencies in the same way Maven > > >> > does. In the end, we just have to properly check out licenses which > > >> > takes time. > > >> > > > >> > In what sense do you think it would make licensing easier? > > >> > > > >> > On Thu, Jun 30, 2016 at 1:47 PM, Aljoscha Krettek < > > aljos...@apache.org> > > >> > wrote: > > >> > > I think it's not a question of easy-of-use but one of licensing. I > > >> don't > > >> > > think anyone really knows what code ends up in vendor.js, so it is > > very > > >> > > hard to figure out what we have to put into our LICENSE file. > > >> > > > > >> > > On Thu, 30 Jun 2016 at 12:14 Maximilian Michels <m...@apache.org> > > >> wrote: > > >> > > > > >> > >> Hi Till, > > >> > >> > > >> > >> Thanks for checking the licenses for our web frontend. > > >> > >> > > >> > >> I think the reason why we added a big binary Javascript blob into > > our > > >> > >> repository was that it was easiest for most developers to deal > > with. > > >> > >> We don't have much Javascript expertise in the Flink community. > > >> > >> Incorporating the web frontend in the build process would require > > some > > >> > >> additional work and make it even more complicated. It this sense > > the > > >> > >> solution we have currently is quite nice because it doesn't > require > > >> > >> developers to fiddle around with Javascript as long as they are > not > > >> > >> working on the webfrontend. If they do, they can simply use NPM > and > > >> > >> Bower which install the listed dependencies. The disadvantage is > a > > >> > >> slight increase of our repository because we commit a new > > "vendor.js" > > >> > >> for every recompile, but that is negligible in my opinion. > > >> > >> > > >> > >> It would be cleaner to build the Javascript parts in the Maven > > build > > >> > >> process but it will complicate the build process further. > Frankly, > > I > > >> > >> don't see it'll add much value. Considering the fragility of our > > build > > >> > >> system I might be a bit conservative here :) > > >> > >> > > >> > >> Cheers, > > >> > >> Max > > >> > >> > > >> > >> On Wed, Jun 29, 2016 at 5:17 PM, Till Rohrmann < > > trohrm...@apache.org> > > >> > >> wrote: > > >> > >> > Hi Flink community, > > >> > >> > > > >> > >> > while reviewing the LICENSE and NOTICE file of Apache Flink, I > > >> noticed > > >> > >> that > > >> > >> > according to the LICENSE file Flink contains many java script > > files. > > >> > >> > However, tracking the corresponding files back was not so easy, > > >> > because > > >> > >> > they are actually all merged into > > >> > >> > flink-runtime-web/web-dashboard/web/js/vendor.js. Vendor.js is > a > > >> large > > >> > >> java > > >> > >> > script file which is part of the result of the bower build > > process. > > >> > >> > > > >> > >> > I was wondering why we added a "binary" file which is > > auto-generated > > >> > to > > >> > >> our > > >> > >> > code base. Was/Is there any specific reason for it? > > >> > >> > > > >> > >> > The problem is that the java script files contained in the > > vendor.js > > >> > are > > >> > >> > not exactly the set of declared bower dependencies in > > >> > >> > flink-runtime-web/web-dashboard/bower.json. I suspect that also > > >> > >> transitive > > >> > >> > dependencies will be included. At least that is my only > > explanation > > >> > why > > >> > >> > we're referencing lodash.js, for example, in our LICENSE file > > (you > > >> can > > >> > >> find > > >> > >> > it deeply hidden in the vendor.js file). > > >> > >> > > > >> > >> > Wouldn't it be easier to auto-generate the web-dashboard > related > > >> files > > >> > >> > while building Flink? This would not only clean up our > repository > > >> but > > >> > >> also > > >> > >> > make the traceability of contained 3rd party code in our code > > base > > >> > much > > >> > >> > easier. Maybe this maven plugin [1] could help us. > > >> > >> > > > >> > >> > [1] https://github.com/eirslett/frontend-maven-plugin > > >> > >> > > > >> > >> > Cheers, > > >> > >> > Till > > >> > >> > > >> > > > >> > > >