Couldn't we (the vscode contributors) submit a series of PRs against the new repo to move the code, and just archive the example repo as-is?
I noted some thoughts on that a while back https://github.com/jw3/example-daffodil-vscode/issues/77 On Thu, Sep 9, 2021 at 2:11 PM Beckerle, Mike <mbecke...@owlcyberdefense.com> wrote: > I know of one file in the repo which will have to be removed which is the > jpeg.dfdl.xsd file, which is there just as an example workspace. > > The copyright and provisions of that are not compatible with Apache > licensing. > > We can find a DFDL schema that we created that has Apache license to use > instead. > > For the other files under src, server, and build, can we generate a list > of files identifying which are: > > (a) original MIT-licensed, unmodified > (b) new - can be ASL > (c) blended - started from MIT-licensed source, modified with > daffodil-vscode-specific changes. > > It is these blended files that are the problematic ones. > > > > ________________________________ > From: Steve Lawrence <slawre...@apache.org> > Sent: Thursday, September 9, 2021 1:38 PM > To: dev@daffodil.apache.org <dev@daffodil.apache.org> > Subject: Re: daffodil-vscode - how to package and identify the > contribution - some git questions > > Correct. For more information about Apache license compatibility: > > https://www.apache.org/legal/resolved.html > > MIT is Category A and is fine. EPL is Category B and is also okay, but > generally only in its binary form. So these top-level dependencies look > okay, assuming their transitive dependencies are also okay. > > We'll also need to verify the licenses of all code in the repo. > Hopefully little of that is original microsoft MIT and can be granted to > ASF and relicensed. > > > On 9/9/21 1:30 PM, Beckerle, Mike wrote: > > 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 > >>>> > >>> > >>> > > > >