For sure, both suggestions are to make sure we're not killing the CLI and
that we have a component (the SDK client) that is shared by CLI and REPL.

Thanks for clarifying where the system calls will live.

- Lucas

On Fri, Oct 26, 2018 at 2:39 PM Daniel Takabayashi <
daniel.takabaya...@gmail.com> wrote:

> Hi Lucas, could you please justified your two suggestions?
>
> The general ideia is to use the Docker DSK to execute local commands, to
> consume outputs and also to execute Marvin "specific language" commands.
> Today almost all CLIs commands in Marvin is a mixed of systems commands and
> library method calls. The plan is to put all "specific language calls"
> inside the marvin-common-libs and group the systems call on the toolbox
> (using the docker SDK in this task).
>
>
>
>
> Em qui, 25 de out de 2018 às 20:09, Lucas Bonatto Miguel <
> lucasb...@apache.org> escreveu:
>
> > Great, thanks.
> >
> > So here some suggestions:
> >  1. We could create one new layer between Toolbox and the Engines, this
> > would be Docker client.
> >  2. Split the Toolbox layer in two. Toolbox CLI and Toolbox REPL
> >
> > It's not clear to me if the commands listed on General Commands will need
> > to be written for every language, from the image I believe not, but how
> it
> > would work, since starting a notebook in Python is different than
> starting
> > in Scala.
> >
> > - Lucas
> > On Thu, Oct 25, 2018 at 4:51 PM Daniel Takabayashi <
> > daniel.takabaya...@gmail.com> wrote:
> >
> > >
> > >
> >
> https://docs.google.com/drawings/d/shajxIpLJHxxMbFgDXiPuhg/image?w=602&h=461&rev=1423&ac=1&parent=1ySERHGBXbHeyCMRookq5UfTuFkzzU0ugtjvR3rF3deY
> > >
> > > Em qui, 25 de out de 2018 às 07:38, Rafael Novello <
> > > rafa.reis.nove...@gmail.com> escreveu:
> > >
> > > > Hi Taka,
> > > >
> > > > I can't see the image! Maybe the Apache email list don't support
> > > > attachments.
> > > >
> > > > Best!
> > > > Rafael J. R. Novello
> > > >
> > > > Skype: rafael.novello
> > > > Blog: http://rafanovello.blogspot.com.br/
> > > >
> > > >
> > > > Em qua, 24 de out de 2018 às 21:14, Daniel Takabayashi <
> > > > daniel.takabaya...@gmail.com> escreveu:
> > > >
> > > > > 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