Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id B5149200B40 for ; Fri, 1 Jul 2016 17:16:43 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B38EB160A61; Fri, 1 Jul 2016 15:16:43 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id D40BC160A4D for ; Fri, 1 Jul 2016 17:16:42 +0200 (CEST) Received: (qmail 36028 invoked by uid 500); 1 Jul 2016 15:16:42 -0000 Mailing-List: contact dev-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list dev@flink.apache.org Received: (qmail 36003 invoked by uid 99); 1 Jul 2016 15:16:41 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Jul 2016 15:16:41 +0000 Received: from mail-vk0-f41.google.com (mail-vk0-f41.google.com [209.85.213.41]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id A3D5B1A0186 for ; Fri, 1 Jul 2016 15:16:41 +0000 (UTC) Received: by mail-vk0-f41.google.com with SMTP id k68so70491310vkb.0 for ; Fri, 01 Jul 2016 08:16:41 -0700 (PDT) X-Gm-Message-State: ALyK8tISmy2WDbWmGlWepULFeINmG/3COf/Bz1DUmtSSLaY91FAxXuQRoI4Hb+KNo8rBKoIVr64IRikDlUjatrx+ X-Received: by 10.176.0.134 with SMTP id 6mr9677563uaj.75.1467386200764; Fri, 01 Jul 2016 08:16:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.4.97 with HTTP; Fri, 1 Jul 2016 08:16:21 -0700 (PDT) In-Reply-To: References: From: Maximilian Michels Date: Fri, 1 Jul 2016 17:16:21 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Web dashboard binaries and licensing To: dev@flink.apache.org Content-Type: text/plain; charset=UTF-8 archived-at: Fri, 01 Jul 2016 15:16:43 -0000 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 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 > 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 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 >> > 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 >> 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 >> > >> 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 >> > >> >> > >>