Sorry up front there has been a lot to take in here especially the [IANAL] considerations
My initial plan was to 1. To work on updating the existing nb python code to make it a cluster and update to more recent APIs ( https://github.com/ebresie/netbeans/tree/python ) which worked up to a point but stopped working on it until donation completion (which has yet to happen). So I moved on to... 2. Is there a place where I could fork the nbPython code (not Oracle based on Oracle donation) and start working on it there instead? Maybe bring in the LSP work), ? I thought the code from nbpython (source force hg) was the nbpyhon code but looking through some, I'm not so sure anymore. My second plan was to 1. Develop a new LSP based version in the open via https://github.com/ebresie/python4nb which currently provides an LSP implementation and textmate highlighting which when python and python LSP server are set up properly provides autocompletion. So this codebase would be in the open so I suspect any usage of nbPython here would need proper licensing and not applicable as a "binary" provided case. 2. Eventually when in good shape (see https://github.com/ebresie/python4nb/issues/9 ), planned to publish to the Plugin Portal, which could be the "binary" provided version but not sure if (1) precludes that. 3. My hope was to leverage some of the existing nbPython functionality to speed up feature development and not reinvent the wheel if possible, but given the discussions I'm not so sure anymore. This is \done out of the appreciation of the Python language, the NetBeans IDE, and as a hobby/learning project all in spare time. A few comments inline below EB => *From:* Ernie Rael <[email protected]> *Sent:* Monday, April 4, 2022 11:47:37 AM *To:* [email protected] <[email protected]> *Subject:* Re: Usage of NBPython Code [License] I'm not sure of the consensus of the NetBeans team (I'm just an interested observer). My understanding from this thread is that if you added "Eric Bresie elects to include this software in this distribution under the CDDL license." EB => My code has initially been tagged with Apache licenses with expectation of similar licensing to the NetBeans project. But it sounds like if I follow the subsequnet comments, that adding additional license/copyright would be to every file with the standard license header, then you could build a binary and that *binary* could be included as /part of NetBeans/. EB => Since the code was expected to be in the open, I'm not sure "binary" only would be viable fully. OTOH, if you use the code and build a binary and put it in the plugin portal, then you would not need to add that line after the license header since the binary would not be included in NetBeans. EB => I'm not sure what would be "build as a binary '' is fully possible here. If it's nbpython binaries, not sure of that reason as I'm not currently the nbpython maintainer and me creating nbpython binaries would be fully viable. If it's new python4nb using old nbpython binaries [leveraging previous good nbpython binary builds] not sure if that is fully viable either (i.e. if you have nbpython binaries why build on top of it except to have the "LSP based" functionality added). In that case would probably just be better to keep using NetBeans 8.2 version of nbpython (granted dated a little bit) Personally speaking, I would be inclined to structure things to avoid throwing away useful code. Of course, given the LSP nature of things, I dont' know how much would be reusable (even if just the debugger could be a great savings). EB => Presently reuse code would be things like the Project, Platform, Execution, Debugging, and some of the UI code. EB => In some cases I've started recreating things (i.e. UI modeled after existing UI elements like platform/options) but in other cases I had wanted to use or replace the functionality; however in some of those "replace" cases it's turned into a more complicated task than anticipated making it more easy to reuse (which is what brings me here). I'm still inclined to see it work totally as an add on module, since I believe that would help NetBeans the most. For example, to insure/prove that 3rd party LSP with debugger/search/... doesn't have to be built into NetBeans, but can in fact be added on. EB => That is basically the direction I'm leaning towards having a LSP Python 4 NB Plugin. EB => I started with code having a org.apache.netbeans.modules.python4nb namespace, I'm suspecting at some point that would need to change to be more independent of Apache I'm assuming. BTW, maybe the total add on path already works, and my concerns are unfounded. I'm wondering how you are considering distributing/integrating into NetBeans. EB => See initial and current plan above -ernie On 4/4/22 9:19 AM, Eric Bresie wrote: > Since this is nbpython source code and not binary I’m guessing not > advisable to use the source without further coordination or not at all. > > I’ve not looked at every file but some files have Oracle markings mentioned > earlier and some don’t (for that matter many have no headers or include the > obligatory placeholder link to setup one). So assume if it has Oracle, I > should definitely not use it…if there are no markings are those usable? > > There is reference to the nbbuild/license folder/files which aren’t present > in the contrib > repo context that I saw; assume it was expecting the contrib folder would > be present with the baseline Netbeans codebase combined but that’s just a > guess or the contrib folder was extracted to separate it out. > > So in the end, it sounding like it may be better to not reuse the nbpython > code and recreate a lot of stuff is that the consensus? > > Eric > > On Mon, Apr 4, 2022 at 10:15 AM Neil C Smith <[email protected]> wrote: > >> On Mon, 4 Apr 2022 at 10:46, Ernie Rael <[email protected]> wrote: >>> I thought Neil had said that gpl2/cp-exception, could be finessed >>> through Apache, so I'm wondering... And I don't know if Apache considers >>> CDDL unacceptable. >> Just to add to what Antonio stated, CDDL is Cat B, and GPL2+CPE can be >> treated similarly if we jump through a few hoops - >> https://www.apache.org/legal/resolved.html#category-b >> >> That effectively means both can be included as third-party binaries >> only - not in sources, not developed here. >> >>> [IANAL] My opinion is that the NetBeans team is being overly >>> conservative (the question of copyrighted and unlicensed files, if any >>> exist, has to be addressed) if it's true that gpl2/cp can be finessed. >> No, we're really not! We do have to follow ASF guidance. But the >> fact that the latter part of your statement happened kind of belies >> the first part! ;-) >> On Mon, Apr 4, 2022 at 1:00 PM antonio <[email protected]> wrote: > Some comments inlined below. > > On 04/04/2022 18:47, Ernie Rael wrote: > > I'm not sure of the consensus of the NetBeans team (I'm just an > > interested observer). My understanding from this thread is that if you > > added > > > > "Eric Bresie elects to include this software in this distribution > > under the CDDL license." > > > > to every file with the standard license header, then you could build a > > binary and that *binary* could be included as /part of NetBeans/. > > > Exactly yes. Eric can choose the CDDL license or the GPLv2+CPE. > > But Eric should also _add_ a Copyright notice too to each file, > something like: > > Copyright 2022 Eric and friends. All rights reserved. > Copyright 2010 Oracle and/or its affiliates. All rights reserved. > > This is: add a new copyright notice (that covers modifications) but not > removing nor altering existing ones. > > EB => So from this it sounds like reused code with Oracle markings would need to use CDDL and/or GPLv2+CPE license and add applicable copyright notices. EB => Would "Copyright 2022 Apache Organization. All rights reserved." be an option or not? Assume that would require Apache governance (and maybe licensing) so maybe not. EB => As I'm doing this in my spare time without any sort of full on organization or business I can add my copyright but figured long term to be better to some open organization. > > OTOH, if you use the code and build a binary and put it in the plugin > > portal, then you would not need to add that line after the license > > header since the binary would not be included in NetBeans. > EB => Maybe I'm confused here...How can a new project code use old code to build a binary? Would that be a derived code which then falls into a whole different category of concerns? The plugin portal accepts developer defined licenses. People publish > plugins with the GPL license, for instance. jVI is MPL licensed, IIRC. > EB => Assume portal accepts licenses for the compiled code right and not really the source? Or does source license = binary license? But it's up to the user to accept or reject the license, of course. > > > Personally speaking, I would be inclined to structure things to avoid > > throwing away useful code. Of course, given the LSP nature of things, I > > dont' know how much would be reusable (even if just the debugger could > > be a great savings). > > EB => I think a lot of the parsing and autocompletion would go away; the things staying would be some of the other functionality/plumbing mentioned elsewhere > People can use LSP to develop plugins or whatever they see fit. LSP is > not mandatory. It does indeed save lots of development hours > (ide/lsp.client is quite powerful). I'm trying :-)
