couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From support-tiger <supp...@tigernassau.com>
Subject Re: [DISCUSSION] Moving CouchDB off of Facebook React
Date Sat, 19 Aug 2017 17:21:23 GMT
re enterprises using preact - Uber posted a developer report 
https://eng.uber.com/m-uber/   that said they were quite happy with 
preact.  Other major enterprises are listed on the preact website.   
Inferno is reported to be faster but would probably require more work 
and doubt speed is that critical in a gui (that we think should be used 
only as a convenience for testing and not in production anyway).


On 08/19/2017 11:55 AM, Garren Smith wrote:
> Hi All,
>
> When this was initially mentioned, I looked into how this would affect us.
> There are three main things we need to fix before Fauxton is purged of all
> React things.
>
> Step 1:
>
> Decide which "drop-in" replacement to use. There seems to be inferno.js (I
> think the author now works on React) and Preact. I'm not really familiar
> with either, but I have heard of a few devs using Preact and being very
> happy with it. I will reach out to them to find out more. But anyone with
> experience using either, it would be great to hear from you?
>
> Step 2:
>
> Replace React with the above, the hardest part here is just testing it and
> small bug fixes. I was able to get Preact working pretty quickly. It did
> have some quirks that I noticed immediately. We would have to hunt the rest
> down and fix. Our automated test suite should help with that. This is a
> great place for people not that familiar with JS to help. Once we have a
> Preact branch, if they could just run Fauxton and look for bugs and file
> issues. We can then work towards fixing them.
>
> In the process of doing that the biggest obstacle was that we use the
> React-animation library. We would need to replace this. There does seem to
> be a drop-in preact one we could use [1]. Otherwise we should be able to
> make some other plan. Replacing the animation work will take a few days, so
> its not the biggest obstacle.
>
> Step 3:
> Removing Flux[2] would be the next step. We currently in the process of
> doing this and replacing it with Redux. But its a ton of work. This is
> another great place to help. It does require an understanding of Redux and
> React. Ryan, you help here would be greatly appreciated :)
>
> As a quick shortcut, I think we can do an intermediate step by removing
> Flux and creating a temporary workaround. I will look into it this week and
> see what we can do.
>
> Depending on the complexity of Step 3 I think we could have all the
> versions of React removed from the repo by the end of August, but I
> wouldn't expect it to be in a releasable state. But that should at least
> allow us to keep the repo in the apache organization.
>
> Just some side points, I'm not really in favour of a rewrite of Fauxton or
> using something like
> vue/ember/angular/jquery/something-else-that-was-just-invented. We have
> consciously avoided rewriting Fauxton many times and rather stuck to an
> approach of continuously refactoring Fauxton to a better codebase and
> user-experience. Rewriting is really tricky and would slow this work down
> dramatically.
>
> Joan asked who would be interested in leading this, it would be great if
> someone else from the community would be able to run with this, I would
> gladly support you in anyway I could.
>
> I hope that helps to give some context. Any and all help on this would be
> greatly appreciated.
>
> Cheers
> Garren
>
>
> [1] https://github.com/developit/preact-transition-group
> [2] https://github.com/facebook/flux
>
> On Sat, Aug 19, 2017 at 4:13 PM, Ryan Millay <ryan.p.millay@gmail.com>
> wrote:
>
>> Happy to jump in and help where I can as well!
>>
>> Ryan
>>
>> On Sat, Aug 19, 2017 at 9:54 AM, Andreas Wenk <andreas@family-wenk.de>
>> wrote:
>>
>>> This is all very unpleasant. I read all the emails and I just wanted to
>>> drop a note, that I am happy to ask our JS developers (at sum.cumo) if
>> they
>>> want to help rewrite Fauxton. We have a lot of experience with vue.js
>> but I
>>> am sure, we could also help with other libraries and parts in Fauxton.
>>>
>>> All the best
>>>
>>> Andy
>>>
>>> --
>>> Andy Wenk
>>> Hamburg - Germany
>>> RockIt!
>>>
>>> GPG public key:
>>> http://pgp.mit.edu/pks/lookup?op=get&search=0x45D3565377F93D29
>>>
>>>
>>>
>>>> On 19. Aug 2017, at 15:44, Jan Lehnardt <jan@apache.org> wrote:
>>>>
>>>>> On 19. Aug 2017, at 12:50, Jan Lehnardt <jan@apache.org> wrote:
>>>>>
>>>>> Thanks for getting the ball rolling Joan,
>>>>>
>>>>> If you are interested in the licensing/policy details, I’ve summed
>>> things up on my blog: http://writing.jan.io/2017/08/
>>> 19/understanding-the-facebook-vs-asf-license-kerfuffle.html — if you
>> want
>>> to comment on this, please start a new thread, or email me privately.
>> This
>>> thread is only for what we do next with Fauxton.
>>>>> * * *
>>>>>
>>>>> To take a bit of pressure out of this decision making process, I want
>>> to bring up an option that unblocks us indefinitely for making new
>> releases
>>> at the expense of end-user experience.
>>>>> It’s a little bit of work, but not as much as anything approaching
a
>>> rewrite.
>>>>> 1. move apache-fauxton to its own GitHub organisation outside of the
>> ASF
>>>>> (we can always re-integrate it later)
>>>>> 2. publish release builds as tarballs somewhere on the web.
>>>>> 3. replace /_utils in CouchDB with a custom route that displays a
>>> simple web ui with a button “install Fauxton” that goes away once Fauxton
>>> is installed, that then fetches a Fauxton release tarball from outside
>> the
>>> ASF and installs it on the user system.
>>>>> There is some infrastructure work to be done, and the added
>>> inconvenience for our end-users is not something I’d like to keep up for
>>> long.
>>>>> But should we decide to take this option (or one like it), it would
>>> allow us to not have to rush with a Fauxton adaptation, or be blocked on
>>> releases, or have no admin UI in a release.
>>>>> * * *
>>>>>
>>>>> Garren has already done some experiments with preact[1] (a react-API
>>> compatible rendering library with a compatible license) and has a basic
>>> prototype running. Since we are also using additional React libraries
>> that
>>> have no corresponding equivalent in preact-land, Garren expects to
>>> migration work to take 1-2 months of development time, something I’m not
>>> sure we are able to afford at this point.
>>>>> [1]: https://preactjs.com
>>>> Small update: I’ve revisited the (private) discussion with Garren and
>>> the 1-2 months estimate was for the react css animation library only. The
>>> other big dependency with an incompatible license is flux which is being
>>> ported to redux, but according to Garren is still “quite a bit of work”.
>> No
>>> time estimate attached.
>>>> Apologies for the confusion.
>>>>
>>>> Best
>>>> Jan
>>>> --
>>>>
>>>>> * * *
>>>>>
>>>>> Moving to a library that isn’t React-API compatible would be close
to
>> a
>>> complete Fauxton rewrite which would likely take years at our pace, and
>>> would break compatibility with downstream addons (that we know Cloudant
>> are
>>> using).
>>>>> As such, my preference would be to stick with the React-API and find
a
>>> minimal replacement for what we need. But I’d like to leave the final
>>> decision to the Fauxton team.
>>>>> * * *
>>>>>
>>>>> I’d be happy to help with a recruiting drive to get more folks helping
>>> to do the port.
>>>>> Best
>>>>> Jan
>>>>> —
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> On 19. Aug 2017, at 02:40, Joan Touzet <wohali@apache.org>
wrote:
>>>>>>
>>>>>> Hello everyone,
>>>>>>
>>>>>> <Joan puts her Apache CouchDB PMC hat on>
>>>>>>
>>>>>> I have some difficult news to communicate.
>>>>>>
>>>>>> Those of you who are more tuned in to the JavaScript world will be
>>> aware
>>>>>> that the Apache Software Foundation (ASF) has placed the so-called
>> "BSD
>>>>>> + Patents" license that Facebook uses in licensing some of its open
>>>>>> source technologies, such as the popular React library, into
>> "Category
>>>>>> X." This means that we are no longer able to ship React in Apache
>>>>>> CouchDB, nor have it as a build dependency, after August 31, 2017.
>>>>>>
>>>>>> Subsequently, we asked Facebook if they would consider changing the
>>>>>> React license to avoid this conflict, as they chose to do for their
>>>>>> RocksDB database. About an hour ago, they publicly announced that
>> this
>>>>>> would not be forthcoming:
>>>>>>
>>>>>> https://code.facebook.com/posts/112130496157735/
>>> explaining-react-s-license/
>>>>>> This means that we must replace the use of React in Fauxton
>> completely
>>>>>> (with something like Vue or preact), and ship CouchDB without Fauxton
>>>>>> until the former can be completed (or simply not ship until the
>> rewrite
>>>>>> is complete.)
>>>>>>
>>>>>> No one in the PMC is suggesting we remove Fauxton completely from
>>>>>> CouchDB either now or in the future - we consider our web UI a
>> defining
>>>>>> feature of the product and would consider a Fauxton-less release
of
>>>>>> CouchDB incomplete.
>>>>>>
>>>>>> I would like to open the discussion towards the Fauxton rewrite,
and
>>>>>> specifically:
>>>>>>
>>>>>> * Which replacement library do we like the best? Why?
>>>>>> * Who is willing to step up to lead this change?
>>>>>> * Do you know any good JS devs willing to help us?
>>>>>>
>>>>>> Those who are interested in the reasons why this policy decision
was
>>>>>> reached by the ASF are encouraged to read the following links:
>>>>>>
>>>>>> https://issues.apache.org/jira/browse/LEGAL-303
>>>>>> https://issues.apache.org/jira/browse/LEGAL-319
>>>>>> https://github.com/facebook/react/issues/10191
>>>>>>
>>>>>> PLEASE do not devolve this thread into discussion about Facebook's
>>>>>> decision, or why the ASF has made the policy decision that they have;
>>>>>> such discussions lead nowhere, and CouchDB is not in a position to
>>>>>> influence either organisation to change their decisions.
>>>>>>
>>>>>> On behalf of the CouchDB PMC,
>>>>>> Joan Touzet
>>>>> --
>>>>> Professional Support for Apache CouchDB:
>>>>> https://neighbourhood.ie/couchdb-support/
>>>>>
>>>> --
>>>> Professional Support for Apache CouchDB:
>>>> https://neighbourhood.ie/couchdb-support/
>>>

-- 
Support Dept
Tiger Nassau, Inc.
www.tigernassau.com
406-624-9310



Mime
View raw message