GitHub user 1ambda opened a pull request:

    https://github.com/apache/zeppelin/pull/1940

    [ZEPPELIN-2008] Introduce Spell

    ### What is this PR for?
    
    Implemented **Spell** to Helium categories. *Technically, it's the frontend 
interpreter* runs on browser not backend.
    
    Spell can provide many benefits.
    
    1. Anyone can install, remove using helium package registry by #1936 
    2. Implementing spell is extremely easier rather than adding backend 
interpreter
    3. Can use existing javsacript libraries. (e.g 
[flowchart.js](http://flowchart.js.org/), [sequence diagram 
js](https://github.com/bramp/js-sequence-diagrams), ...). This enable us to add 
many visualization tools. Assume that you can implement whatever you want to 
visualize in few lines of code like 
[flowchart-spell-example](https://github.com/apache/zeppelin/compare/master...1ambda:ZEPPELIN-2008/introduce-spell?expand=1#diff-364845b20d68e4d94688e44fef03da98)
    4. The most important thing is, spell can be not only interpreter but also 
display system. Because it runs on browser. This enable us to combining 
existing backend interpreter with spell display like
    
    ```
    // if we have markdown spell
    
    %spark
    
    val calculated = doSomething()
    println(s"%markdown _${calculated})
    ```
    
    I added some examples. Checkout `echo`, `markdown`, `translator`, 
`flowchart` spells.
    
    ### What type of PR is it?
    [Feature]
    
    ### Todos
    * [x] - Add `SPELL` as one of Helium categories.
    * [x] - Implement framework code (`zeppelin-spell`)
    * [x] - Make some examples (flowchart, google translator, markdown, echo)
    * [x] - Support custom display system
    * [x] - Fix some bugs in `HeliumBundleFactory`
    * [x] - Save spell rendering result into `note.json` while broadcasting to 
other websocket clients
    
    ### What is the Jira issue?
    
    [ZEPPELIN-2008](https://issues.apache.org/jira/browse/ZEPPELIN-2008)
    
    ### How should this be tested?
    
    See the screenshots below.
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Does the licenses files need update - NO
    * Is there breaking changes for older versions? - NO
    * Does this needs documentation? - YES, but framework can be enhanced so i 
would like to defer to write document right now.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/1ambda/zeppelin ZEPPELIN-2008/introduce-spell

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zeppelin/pull/1940.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1940
    
----
commit de220b36d39a535f097f6d49820973738be079cc
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-17T10:40:12Z

    feat: Support FRONTEND_INTERPRETER type in backend

commit 1c57cb626d9006cdbd59722022de0a798b345a03
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-17T10:41:10Z

    feat: Support FRONTEND_INTERPRETER type in frontend

commit 62b2e880ddb02157b25236f1cd3afaad2ba3ac15
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-17T10:41:32Z

    feat: Add frontend interpreter framework

commit 4a1e42d662cebbcf87242fb743b9bf6c8d5e8b8f
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-17T10:41:59Z

    feat: Add flowchart, translator examples

commit 150ab44b2710f34b93d938038d1063ec10aecfd3
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-17T10:42:26Z

    feat: Apply frontend interpreter to paragraph

commit 921b1774137f4cb7c58e90e4a609a7f85e9c400e
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-20T23:22:22Z

    feat: Automated display type checking in result

commit 07d944209a26e9f375d5f16d8956cb54f0dc86b5
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-21T00:18:26Z

    feat: Update examples to use single FrontIntpRes

commit 1cd8910be6dd48024e9845f50c3e2cec7f0e7ab2
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T17:52:40Z

    feat: Support custom display

commit ccd57a60ab5b1b7fac30b7e23b4eb5e61bd664e0
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T17:54:36Z

    example: Add echo, markdown

commit fc2780cd62ece92e18f3305a9fefaca3ca1da62c
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T20:09:27Z

    style: Rename to Spell

commit ed328ce74fd9e60b9732d89259cc7d1af34293e5
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T20:22:26Z

    style: Rename generator -> data

commit bf62f4af21d634a7eb7d6f77003e750cc4cdb1f2
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T20:48:39Z

    feat: Enhance translator spell

commit 7814d7882462e9c52c1758d8e591ee222e2fd263
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-23T22:01:34Z

    fix: NPM installation error

commit c270bfd5c3aa20d1a4b0fe9873d2a27e8195c0d9
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-24T13:13:16Z

    feat: Save spell result and propagate

commit 8294bcd82d5a1fd5c65f6e7c60ddf0e0a27790f4
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-24T23:25:20Z

    refactor: result controller retry

commit 1fa4df863a2724c34216bdcf69e7277ecd48c711
Author: 1ambda <1am...@gmail.com>
Date:   2017-01-25T00:26:03Z

    refactor: NotebookServer.java

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to