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 :-)

Reply via email to