Lucas,

The idea is that REPL will substitute the actual CLI. It's because with the
actual concept (using language specific CLI) we will need to re-implement
the same features many times and probably each CLI will have a different
behavior because some language specific restrictions and/or limitations.

With this new concept, all users will have the same experience interacting
with Marvin REPL and they will use the bests tools to develop their engines
(Jupyter Notebook and/or Lab with different languages support or even
Apache Zeppelin). All the interact will occur through REPL and docker
protocol.

Alan, Yes! As Lucas said, the concept is the same but we can use docker to
do the same job.

Best!

Em sex, 19 de out de 2018 às 00:39, Lucas Bonatto Miguel <
lucasb...@apache.org> escreveu:

> Thanks for the clarifications Rafael, so from what I understood, Marvin's
> developers would not use the REPL to explore data and test models, i.e.
> develop the engine. Is the idea to build something more like an interactive
> CLI? I think an interactive CLI would be useful for the developer
> experience, however, it's important to keep the unattended (current) CLI in
> place for scenarios where users want to automate Marvin tasks.
>
> Alan, I believe the idea is still the same as you started, but using
> docker SDK now.
>
> - Lucas
>
> On Thu, Oct 18, 2018 at 1:29 PM Rafael Novello <
> rafa.reis.nove...@gmail.com>
> wrote:
>
> > Hi Lucas!
> >
> > First of all +1 for REPL POCs to Apache!
> >
> > Let me help with some comments:
> >
> > 1 - We have tested NodeJS, Scala and Python and the easiest one was
> Python.
> > We have found a small project [1] that have all features we desired for
> > REPL:
> > - Autocomplete
> > - Python commands disabled (the user have only the commands we provide).
> > The other languages REPL options don't have this feature.
> > - Easy to show output
> > - Etc
> > So, I think the language chosen will not be important here because the
> user
> > will only interact with the commands that we create.
> >
> > 2 - The "engine-generate" command will download a docker image that we
> > create for that language and start a container with the basic project
> > structure for that language.
> >
> > 3 - The REPL client will use the "docker protocol" to run command,
> > start/stop services and etc inside the container and it will receive the
> > log stream to show. No, the REPL will no pass code snippets for docker
> > container (I think it will not be necessary)
> >
> > 4 - Yep! Like I said on the first item.
> >
> > [1] - https://github.com/italorossi/ishell
> >
> > Let me know if there is any other question!
> > Best!
> > Rafael J. R. Novello
> >
> > Skype: rafael.novello
> > Blog: http://rafanovello.blogspot.com.br/
> >
> >
> > Em qui, 18 de out de 2018 às 17:00, Lucas Bonatto Miguel <
> > lucasb...@apache.org> escreveu:
> >
> > > + 1 for migrating the REPL repo to Apache
> > >
> > > I have a few questions about the previous explanation:
> > >  1) The REPL itself, it would be an application in which language?
> > Remember
> > > that the main idea is to allow the user to program on his preferred
> > > language in the REPL.
> > >  2) Should the engine-generate command also generate a docker image
> with
> > > the user's application?
> > >  3) What type of communication would happen between the REPL and the
> > engine
> > > via Docker SDK? Would the REPL pass snippets of code to be executed by
> > the
> > > docker container?
> > >  4) Have you considered code completion in the REPL?
> > >
> > >
> > > On Thu, Oct 18, 2018 at 7:53 AM Zhang Yifei <yifei.z.l...@gmail.com>
> > > wrote:
> > >
> > > > Ok guys,
> > > >
> > > > The basic idea is to provide only one Toolbox for multiple languages.
> > > > We are looking for possibility to build a single Marvin Repl,
> > > > instead of severals toolboxes with differentes interfaces or
> commands.
> > > >
> > > > In this case, the engine-generate command will download and start a
> > > Docker
> > > > container with basic engine structure corresponding the choosed
> > language.
> > > > this means we don't need to build Toolboxes of differents languages,
> we
> > > > just
> > > > build the engine template of all languages that we want to support
> and
> > > > provide it
> > > > as Docker containers
> > > >
> > > > We have started researches around our basic requirements like:
> > > > - Repl interface
> > > > - System communication
> > > > - Connection security
> > > > - Tool popularity
> > > > - Update complexity
> > > > - Languages support
> > > > - ......
> > > >
> > > > And we did some POC with code here:
> > > > https://github.com/marvin-ai/marvin-repl
> > > >
> > > > There is POC testing gRPC using Scala and Python,
> > > > Repl inteface and Docker SDK with NodeJS,
> > > > Repl interface and Docker SDK with Python.
> > > >
> > > > At this moment we prefer the Repl interface + Docker SDK way, because
> > > good
> > > > part of the requirements
> > > > will be guaranteed by Docker.
> > > >
> > > > With this informations, what do you think? Should we submit all this
> > POCs
> > > > to Apache Repo?
> > > > Please feel free to opine.
> > > >
> > > >
> > > > Thats all, thanks!!!
> > > >
> > > >
> > > > Em ter, 16 de out de 2018 às 18:55, Daniel Takabayashi <
> > > > daniel.takabaya...@gmail.com> escreveu:
> > > >
> > > > > Zhang,
> > > > >
> > > > > I think the best approach is give us a better explanation about
> this
> > > new
> > > > > feature and how this can help us to archive the desired feature
> > > (support
> > > > > multiple languages). Than if the majority agree than I can do the
> > > merge,
> > > > > just like I did before, but in another branch.
> > > > >
> > > > > Let me know if makes sense, ok?
> > > > >
> > > > > Taka
> > > > >
> > > > > Em ter, 16 de out de 2018 às 14:00, Luciano Resende <
> > > > luckbr1...@gmail.com>
> > > > > escreveu:
> > > > >
> > > > > > So, what is the POC, is it a refactoring of the existing repo? Or
> > is
> > > > > > it a new rewrite of the repo?
> > > > > >
> > > > > > Just asking as it might make sense to make it a branch then
> > actually
> > > a
> > > > > > thing in parallel, as this will have an effect for releases, etc.
> > but
> > > > > > you guys know more here than I do.
> > > > > >
> > > > > > Also, it's probably good to have a write up of the main direction
> > of
> > > > > > the design that can help people get familiar with the new
> approach.
> > > > > > On Tue, Oct 16, 2018 at 11:12 AM Zhang Yifei <
> > yifei.z.l...@gmail.com
> > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > Hey guys,
> > > > > > >
> > > > > > > We have reorganized the Poc repo, and want to merge it to our
> > > Apache
> > > > > > repo.
> > > > > > > Just making sure here before we do the merge, because im not
> sure
> > > if
> > > > > > doing
> > > > > > > this will perserve the Git commit history.
> > > > > > > What we are planning to do is:
> > > > > > >
> > > > > > > git filter-branch --subdirectory-filter <git origin_repository
> > > > > directory>
> > > > > > > -- --all
> > > > > > > mkdir POCs/
> > > > > > > git mv * POCs/
> > > > > > > git commit -m "colleted the data to move"
> > > > > > >
> > > > > > > git clone <git destination_repository_url> cd <git
> > > > > > > destination_repository_directory> git remote add
> > > > > origin_repository_branch
> > > > > > > <git origin_repository directory> git pull
> > origin_repository_branch
> > > > > > master
> > > > > > > --allow-unrelated-histories git remote rm
> > origin_repository_branch
> > > > > > >
> > > > > > >
> > > > > > > Thanks in advance !
> > > > > > >
> > > > > > > --------------------------------------------------------------
> > > > > > > Zhang Yifei
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Luciano Resende
> > > > > > http://twitter.com/lresende1975
> > > > > > http://lresende.blogspot.com/
> > > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > --------------------------------------------------------------
> > > > Zhang Yifei
> > > >
> > >
> >
>

Reply via email to