The requirement, is that the entire dependency tree (transitively) cannot depend on any software that has an Apache-incompatible (aka restrictive) license.
So we need the transitive closure of all dependencies. ________________________________ From: Adam Rosien <a...@rosien.net> Sent: Thursday, September 9, 2021 12:44 PM To: dev@daffodil.apache.org <dev@daffodil.apache.org> Subject: Re: daffodil-vscode - how to package and identify the contribution - some git questions (I don't understand the requirements of licencing + transitive dependencies, so I'm giving some surface level license info) "ch.qos.logback" % "logback-classic" % "1.2.3" - EPL http://logback.qos.ch/license.html "com.microsoft.java" % "com.microsoft.java.debug.core" % "0.31.1" - EPL 1.0 "co.fs2" %% "fs2-io" % "3.0.4" - MIT "com.monovore" %% "decline-effect" % "2.1.0" - APL 2.0 "org.typelevel" %% "log4cats-slf4j" % "2.1.0" - APL 2.0 On Thu, Sep 9, 2021 at 9:35 AM Adam Rosien <a...@rosien.net> wrote: > I can relay the list of dependencies and their licenses. > > On Thu, Sep 9, 2021 at 9:20 AM Steve Lawrence <slawre...@apache.org> > wrote: > >> I personally don't care too much about having the existing git history >> once its part of ASF, especially if it makes thing any easier (as you >> mention, squash/rebase can be difficut through merges). So I'd say we >> just do plan B--create a tarball of the current state (without the git >> history), and the content of that tarball is what goes through the IP >> clearance process, and is the content of the inital commit when adding >> to the apache/daffodil-vscode repo. >> >> Note that I think the incubator will still want access to the existing >> repo so they can view the full git history. Understanding where >> everything came from and verifying the provenance is important to >> ensuring we have all the appropriate CLA's. So while the tarball is >> maybe what is officially voted on, they will want access to the repo. >> >> That said, I don't think we are going to get CLA's for any Microsoft >> contribute code. So either all Microsoft contributed code will need to >> be kept MIT, or removed from the codebase. And if feels a bit odd to >> grant something to ASF where the original codebase stays MIT and isn't >> part of that grant. >> >> I think understanding how much code still exists that is Microsoft/MIT >> is going to be important to getting this through the IP clearance process. >> >> So I'm curious how much of that original Microsoft code still exists? I >> assume since it was just example code it has mostly been replaced? If >> that's the case, we could potentially say Microsoft has no ownership of >> this code, and so their CLA and MIT license aren't necessary? >> >> We should also have a good understanding of the dependencies. If any of >> them are not compatible with ALv2, then going through this process isn't >> even worth it until they are replaced. Do you have a list of the >> dependencies? >> >> >> On 9/9/21 11:16 AM, Beckerle, Mike wrote: >> > So the daffodil-vscode code-base wants to be granted to become part of >> the >> > Daffodil project. >> > >> > One question arises which is "what is the contribution?" exactly. >> > >> > The normal way this is identified is by creating a tarball of the >> source files >> > and specifying an sha or md5 hash of that file. >> > >> > However, this code base is perhaps different from usual. >> > >> > It started by creating a detached fork of the vscode debugger example >> code base. >> > This is MIT-Licensed which is a compatible license. >> > >> > The files are then edited. There are around 100 commits on top of the >> base that >> > came from the vscode debugger repository. >> > >> > So the contribution is that set of 100 commits - the >> patches/change-sets they >> > represent. >> > >> > These commits often edit the original files of the vscode debugger >> example to >> > add the daffodil-specific functionality. That is, the contribution >> material is >> > in several cases intermingled in the lines of the existing files. >> That's ok I >> > think so long as the modified file had MIT license. >> > >> > There's some value in preserving the 100 commits by our contributors, >> not >> > squashing it down to one commit, though if it's really not sensible to >> proceed >> > otherwise, we can choose to squash it down to one commit. >> > >> > Furthermore, the vscode debugger example repo itself had many commits >> in it. The >> > current daffodil-vscode repo preserves all these commits as well. I >> don't see >> > value in preserving these commits, and would rather they were squashed >> into a >> > single "starting point" commit, with a dependencies file specifying the >> githash >> > where we forked from, just so we can refer back if necessary. >> > >> > So as a starting suggestion (subject to discussion of other >> alternatives) is this: >> > >> > Plan A: >> > >> > 1. squash all commits up to and including the last Microsoft commit, >> together >> > into one. >> > 2. rebase the remaining commits on top of that. >> > 1. I'm a bit worried about this rebase. There are merge commits, >> etc. in >> > the history. I'm not sure this will just all rebase while >> preserving all >> > the commits, but maybe it will "just work" >> > 3. create a "patch set" corresponding to the 100 or so commits that >> make up the >> > "contribution". >> > 1. I don't know if this is even feasible for this many commits. >> > 4. create a tar/zip of this aggregate patch set. >> > 5. compute an md5 of this patch set. >> > >> > The patch set tar/zip file and its md5 hash are "the granted software". >> > >> > The problem with this idea is that there's no obvious way to review a >> patch set, >> > shy of applying it. >> > >> > A better way may be to change steps 3 - 5 above to >> > >> > Plan B: >> > >> > 3. push the main branch to a new empty git repository >> > The point of this is to remove all historic stuff from the >> repository, >> > i.e., have a minimal git repo that contains only the contribution >> and the >> > single other commit it must be based on. >> > >> > 4. create a tarball of this git repository, and md5 hash of it >> > >> > 5. document that the contribution is from githash X (after the >> first commit) >> > to githash Y (the final commit) of this repository >> > >> > >> > This has the advantage that the contribution is a self-contained >> review-able thing. >> > >> > Other ideas are welcome. (Plans C, D, etc) The only requirements I know >> of are: >> > >> > 1. a single file containing the contribution, and its md5 hash >> > 2. a sensible way one can review the contents of this contribution file >> > 3. preserve history of derivation from the vscode debugger example. >> > >> > >> > >> > >> > >> > >> > >> > >> > Mike Beckerle | Principal Engineer >> > >> > mbecke...@owlcyberdefense.com <mailto:bhum...@owlcyberdefense.com> >> > >> > P +1-781-330-0412 >> > >> >>