Hi all,

To try to give a little more details about this "new concept" that we want
to bring to the marvin toolbox, I did this simple architecture draw.

[image: marvin-architecture-views (5).png]

The general idea here is try to transform the toolbox something
disconnected with the "language", something more agnostic. Also in this new
architecture we could use remote resource to process engines and make easy
the support for new languages.

This "new toolbox" will be the only thing that a Marvin user must to
install and also we could start to support multiples O.S (once the REPL is
a dummy application that only interprets and by pass commands).

Regards,
Taka

Em qua, 24 de out de 2018 às 09:52, Rafael Novello <
rafa.reis.nove...@gmail.com> escreveu:

> Alan,
>
> Yes! We are using the Docker SDK and it's possible to use the API to
> automate, but it's a little bit harder than automate CLI calls.
>
> Atenciosamente,
> Rafael J. R. Novello
>
> Skype: rafael.novello
> Blog: http://rafanovello.blogspot.com.br/
>
>
> Em qua, 24 de out de 2018 às 12:02, Alan Silva <ju...@apache.org>
> escreveu:
>
> > Hi,
> >
> > One question here, I understand that we start to use with this PoC the
> > Docker SDK API, right?
> >
> > Why not use the API to expose some endpoints to permit this kind of
> > automation by devops?
> >
> > I think it is possible and it solves the CLI problem, right?
> >
> >
> > On Tue, Oct 23, 2018 at 1:05 PM Rafael Novello <
> > rafa.reis.nove...@gmail.com>
> > wrote:
> >
> > > Lucas,
> > >
> > > Sorry, I didn't understood your question bellow.
> > >
> > > "Would it make sense to use the same solution that we will use for
> > having a
> > > single-language REPL to have a single-language CLI?"
> > >
> > > For DevOps purposes, maybe this new toolbox concept is not ideal. I
> think
> > > we can keep the CLI inside the docker container but it will not easy to
> > > automate
> > > jobs by this way.
> > >
> > > How to deal with this issue? Voting?
> > > Atenciosamente,
> > > Rafael J. R. Novello
> > >
> > > Skype: rafael.novello
> > > Blog: http://rafanovello.blogspot.com.br/
> > >
> > >
> > > Em sex, 19 de out de 2018 às 19:00, Lucas Bonatto Miguel <
> > > lucasb...@apache.org> escreveu:
> > >
> > > > Got it! Thanks for clarifying.
> > > >
> > > > Would it make sense to use the same solution that we will use for
> > having
> > > a
> > > > single-language REPL to have a single-language CLI? My only concern
> > with
> > > > killing the CLI is that you remove an essential feature for DevOps.
> > > >
> > > > - Lucas
> > > >
> > > > On Fri, Oct 19, 2018 at 1:52 PM Rafael Novello <
> > > > rafa.reis.nove...@gmail.com>
> > > > wrote:
> > > >
> > > > > 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