This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new 9a1a200 Automatic Site Publish by Jenkins 9a1a200 is described below commit 9a1a20070eab03d5aadd906a4aa194be29fff34c Author: jenkins <us...@infra.apache.org> AuthorDate: Fri Nov 30 21:57:20 2018 +0000 Automatic Site Publish by Jenkins --- community.html | 51 +++-- css/main-v1.css | 2 +- documentation.html | 605 +++++++++++++++++++++++++++++++++-------------------- downloads.html | 39 ++-- events.html | 15 +- feed.xml | 2 +- index.html | 106 +++++++--- slack.html | 15 +- 8 files changed, 520 insertions(+), 315 deletions(-) diff --git a/community.html b/community.html index 03ee823..680148c 100644 --- a/community.html +++ b/community.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } } @@ -248,7 +247,7 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="social"></a> - <h4>Media</h4> + <h3>Media</h3> <p>The Apache OpenWhisk project is active on several content sharing and social media channels which aim to make it easier for users to get started, ask questions, stay informed and to interact with our community.</p> <p>Icons that link to each of the following channels are located in the header of our website and include:</p> <ul> @@ -273,25 +272,37 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="mailing-lists"></a> - <h4>Mailing Lists</h4> - <br> - <h5>How to join the Apache OpenWhisk mailing list<h5> - <p>The Dev Mailing List is where we discuss the development of Apache OpenWhisk. It is <b><i>not</i></b> a place for technical support; if you're looking for help on the project, please try our <a style="font-weight:400;" href="/documentation.html">Documentation</a> page and engage with us on one of the Social Media channels listed above.</p> - <p>To subscribe, unsubscribe or post our developer list, send an email message to one of the following addresses:</p> + <h3>Mailing Lists</h3> + <p>The developer or "dev" mailing list is where we discuss the design and + development of Apache OpenWhisk project code. + It is <b><i>not</i></b> a place for technical support; + if you're looking for help on the project, please try our + <a style="font-weight:400;" href="/documentation.html">Documentation</a> + page and engage with us on one of the Social Media channels + listed above. + </p> + <question>How do I join the Apache OpenWhisk project + developer mailing list?</question> + <p>To subscribe, unsubscribe or post our developer list, send + an email message to one of the following addresses:</p> <ul> <li><b>Subscribe</b>: <a href="mailto:dev-subscr...@openwhisk.incubator.apache.org">dev-subscr...@openwhisk.incubator.apache.org</a></li> <li><b>Unsubscribe</b>: <a href="mailto:dev-unsubscr...@openwhisk.incubator.apache.org">dev-unsubscr...@openwhisk.incubator.apache.org</a></li> <li><b>Post</b> (new topic): <a href="mailto:d...@openwhisk.incubator.apache.org">d...@openwhisk.incubator.apache.org</a></li> </ul> - <p>To comment on a thread, simply reply to the message with the same subject text.</p> - <p><b>NOTE:</b> Make sure you add a subject line to the subscribe/unsubscribe messages. Empty emails are ignored.</p> - <p>To see existing messages, <a href="https://lists.apache.org/list.html?d...@openwhisk.apache.org">https://lists.apache.org/list.html?d...@openwhisk.apache.org</a>.</p> + <p>To comment on a thread, simply reply to the message with + the same subject text. + </p> + <p><b>NOTE:</b> Make sure you add a subject line to the + subscribe/unsubscribe messages. Empty emails are ignored.</p> + <p>To see existing messages, use: + <a href="https://lists.apache.org/list.html?d...@openwhisk.apache.org">https://lists.apache.org/list.html?d...@openwhisk.apache.org</a>.</p> </div> </main> <main class="doc"> <div class="content"> <a class="indexable" id="wiki"></a> - <h4>Project Wiki</h4> + <h3>Project Wiki</h3> <p>The project maintains a <a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki">Confluence Wiki</a> site that provides the community a place to share their thoughts about and collaborate around any aspect of the project; whether it's about the platform architecture, an existing or planned feature or about its use cases and integrations. Examples include:</p> <ul> <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/OpenWhisk+Project+Wiki#OpenWhiskProjectWiki-how-to-contribute">How to contribute?</li> @@ -309,7 +320,7 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="events"></a> - <h4>Events</h4> + <h3>Events</h3> <h5 style="margin-top:20px;">Apache OpenWhisk events</h5> <p> Please reach out to community at <a href="mailto:d...@openwhisk.incubator.apache.org">d...@openwhisk.incubator.apache.org</a> to promote any OpenWhisk event. @@ -331,7 +342,7 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="supporters"></a> - <h4>Supporters</h4> + <h3>Supporters</h3> <p>The following companies and organizations have acknowledged support of the Apache OpenWhisk project as contributors or users of the technology.</p> <div class="flow-columns"> <div class="flow-item-container"> diff --git a/css/main-v1.css b/css/main-v1.css index a038bca..b62e1d1 100644 --- a/css/main-v1.css +++ b/css/main-v1.css @@ -1 +1 @@ -html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}a{text-decoration:none}.clear{display:block;clear:both}*{box-sizing:border-box;background:none;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h3,h4,h5,h6{font-weight:500;margin:0}h1{font-size:32px;line-height:normal}h2{font-size:28px;line-height:normal}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:28px}h5{font-size:16px;line-height:24px}h6{font-size:14px;font-style:italic;line-height:24px [...] +html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}a{text-decoration:none}.clear{display:block;clear:both}*{box-sizing:border-box;background:none;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h3,h4,h5,h6{font-weight:500;margin:0}h1{font-size:32px;line-height:normal}h2{font-size:28px;line-height:normal}h3{font-size:24px;line-height:32px}h4{font-size:22px;line-height:30px}h5{font-size:16px;line-height:24px}h6{font-size:14px;font-style:italic;line-height:24px [...] diff --git a/documentation.html b/documentation.html index a1c81e9..94c5931 100644 --- a/documentation.html +++ b/documentation.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } } @@ -238,12 +237,6 @@ function addListenersToSections() <li><a href="#nodejs-runtime">NodeJS Runtime</a></li> <li><a href="#nodejs-additional-resources">Additional Resources</a></li> </ul> - <li id="index-python" class="index-menu-toggle"><a href="#python">using Python</a></li> - <ul class="index-menuitems"> - <li><a href="#actions-python">Creating and Invoking Sample Action</a></li> - <li><a href="#python-runtime">Python Runtime</a></li> - <li><a href="#python-additional-resources">Additional Resources</a></li> - </ul> <li id="index-go" class="index-menu-toggle"><a href="#go">using Go</a></li> <ul class="index-menuitems"> <li><a href="#actions-go">Creating and Invoking Action</a></li> @@ -262,18 +255,24 @@ function addListenersToSections() <li><a href="#php-runtime">PHP Runtime</a></li> <li><a href="#php-additional-resources">Additional Resources</a></li> </ul> + <li id="index-python" class="index-menu-toggle"><a href="#python">using Python</a></li> + <ul class="index-menuitems"> + <li><a href="#actions-python">Creating and Invoking Sample Action</a></li> + <li><a href="#python-runtime">Python Runtime</a></li> + <li><a href="#python-additional-resources">Additional Resources</a></li> + </ul> <li id="index-ruby" class="index-menu-toggle"><a href="#ruby">using Ruby</a></li> <ul class="index-menuitems"> <li><a href="#actions-ruby">Creating and Invoking Action</a></li> <li><a href="#ruby-runtime">Ruby Runtime</a></li> <li><a href="#ruby-additional-resources">Additional Resources</a></li> </ul> - <!--li id="index-swift" class="index-menu-toggle"><a href="#swift">Swift</a></li> + <li id="index-swift" class="index-menu-toggle"><a href="#swift">using Swift</a></li> <ul class="index-menuitems"> - <li><a href="#swift-actions">Creating and Invoking Action</a></li> + <li><a href="#actions-swift">Creating and Invoking Action</a></li> <li><a href="#swift-runtime">Swift Runtime</a></li> <li><a href="#swift-additional-resources">Additional Resources</a></li> - </ul--> + </ul> <!--li id="index-docker" ><a href="#docker">Docker</a></li> <ul> <li>Zip Action</li> @@ -364,14 +363,14 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="programming-model"></a> - <h2>OpenWhisk Programming Model</h2> + <h3>OpenWhisk Programming Model</h3> <p> <img style="display:block; width:80%; margin: auto" src="/images/illustrations/OW-Programming-Model-Horz.png" alt="OpenWhisk Programming Model"> </p> - <p>The OpenWhisk programming model is...</p> - <h5>Event-Driven</h5> + <p>The OpenWhisk programming model...</p> + <h5>Is Event-driven</h5> <p>In the OpenWhisk programming model, Events drive the Serverless execution of functional code called Actions. Events can come from any Event Source or Feed service @@ -421,7 +420,7 @@ function addListenersToSections() src="/images/illustrations/OW-Programming-Model-Horz-Action.png" alt="OpenWhisk Programming Model: Actions"> <p> - <strong>What is an Action?</strong> + <question>What is an Action?</question> Actions are stateless functions (code snippets) that run on the OpenWhisk platform. Actions encapsulate application logic to be executed in response to events. Actions can be invoked @@ -430,15 +429,15 @@ function addListenersToSections() which we will discuss later. </p> <p> - <strong>Does the function's language matter?</strong> + <question>Does the function's language matter?</question> No, OpenWhisk is agnostic to a function's implementation language. This means that OpenWhisk operations used to create, invoke and manage Actions are the same regardless of implementation choice. You decide what languages are best for you! </p> <p> - <strong>What if your preferred language/runtime is not supported - by OpenWhisk?</strong> + <question>What if your preferred language/runtime is not supported + by OpenWhisk?</question> If your favorite language is not listed above, you may find the Docker action or native binary path more suitable. The OpenWhisk platform is extensible and you can add new languages @@ -505,18 +504,18 @@ function addListenersToSections() alt="OpenWhisk Programming Model: Actions"> <p> - <strong>What is a trigger?</strong> + <question>What is a trigger?</question> Triggers are named channels for classes or kinds of events sent from Event Sources. </p> <p> - <strong>What is a Rule?</strong> + <question>What is a Rule?</question> Rules are used to associate one trigger with one action. After this kind of association is created, each time a trigger event is fired, the action is invoked. </p> <p> - <strong>What are Event Sources?</strong> + <question>What are Event Sources?</question> These are services that generate events that often indicate changes in data or carry data themselves. Some examples of common Event Sources include: @@ -531,8 +530,8 @@ function addListenersToSections() <li>etc.</li> </ul> <p> - <strong>Why do I need to connect actions to event - sources?</strong> + <question>Why do I need to connect actions to event + sources?</question> OpenWhisk is based on an event-driven architecture where most Actions are executed as events happen. The Trigger itself is "fired" with a dictionary of @@ -953,6 +952,21 @@ function addListenersToSections() </div> </li> </ul> + <a class="indexable" id="additional-resources-wskdeploy"></a> + <h5>Additional Resources</h5> + <ul> + <li><a href="https://github.com/apache/incubator-openwhisk-wskdeploy/tree/master/specification#openwhisk-packaging-specification">OpenWhisk Packaging Specification</a></li> + <li><a href="https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/docs/programming_guide.md#wskdeploy-utility-by-example">Programming Guide - "<code>wskdeploy</code> utility by example"</a></li> + </ul> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/wskdeploy">wskdeploy</a>)</span></h6> + <ul> + <li><a href="https://medium.com/openwhisk/whisk-deploy-slack-package-f6690a1387e4">Whisk Deploy - Slack Package</a></li> + <li><a href="https://medium.com/openwhisk/whisk-deploy-github-dependency-b31799394e79">Whisk Deploy - GitHub Dependency</a></li> + <li><a href="https://medium.com/openwhisk/whisk-deploy-zip-actions-abcc8c01ac4">Whisk Deploy - Zip Actions</a></li> + <li><a href="https://medium.com/openwhisk/whisk-deploy-zip-actions-with-include-exclude-30ba6d96ad8b">Whisk Deploy - Zip Actions with file Include & Exclude</a></li> + <li><a href="https://medium.com/openwhisk/whisk-deploy-api-gateway-action-to-rest-api-cc52002c9d2c">Whisk Deploy - API Gateway (Action to REST API)</a></li> + <li><a href="https://medium.com/openwhisk/whisk-deploy-how-to-sync-openwhisk-projects-between-client-and-server-c7939f0642a1">Whisk Deploy - How to Sync OpenWhisk Projects between Client and Server?</a></li> + </ul> <!-- ********************************************************** --> <!-- OpenWhisk REST API --> @@ -1008,14 +1022,6 @@ function addListenersToSections() <p>Select from the language example you would like to follow from the list below. </p> - <!-- <ul> - <li><a href="#section-nodejs">JavaScript (NodeJS)</a></li> - <li><a href="#section-go">Go</a></li> - <li><a href="#section-java">Java</a></li> - <li><a href="#section-php">PHP</a></li> - <li><a href="#section-python">Python</a></li> - <li><a href="#section-ruby">Ruby</a></li> - </ul> --> <!-- ************************************** --> <!-- Actions - JavaScript (NodeJS) --> @@ -1154,13 +1160,168 @@ function addListenersToSections() <a class="indexable" id="nodejs-additional-resources"></a> <h5>Additional Resources</h5> <ul> - <li><a href="https://medium.com/openwhisk/debugging-node-js-openwhisk-actions-3da3303e6741">Debugging Node.js OpenWhisk Actions</a></li> - <li><a href="https://medium.com/openwhisk/updates-to-openwhisk-node-js-actions-ed5556cd5ae9">Updates to OpenWhisk Node.js actions</a></li> <li><a href="https://medium.com/openwhisk/integrating-openwhisk-with-your-node-application-d489b8a20102">Integrating OpenWhisk with Your Node Applications</a></li> + <li><a href="https://medium.com/openwhisk/migrating-from-a-node-app-to-serverless-d76f744b22c9">Migrating from a Node App to Serverless</a></li> + <li><a href="https://medium.com/openwhisk/debugging-node-js-openwhisk-actions-3da3303e6741">Debugging Node.js OpenWhisk Actions</a></li> + </ul> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/nodejs">nodejs</a>)</span></h6> + <ul> + <li><a href="https://medium.com/openwhisk/creating-zipped-actions-in-openwhisk-ccfcda553a30">Creating Zipped Actions in OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/an-example-of-an-openwhisk-sequence-417d653c5952">An Example of an OpenWhisk Sequence</a></li> + <li><a href="https://medium.com/openwhisk/working-with-openwhisk-triggers-734fa9624ae5">Working with OpenWhisk Triggers</a></li> + <li><a href="https://medium.com/openwhisk/another-openwhisk-cron-example-the-blog-nag-dd0074821d2d">Another OpenWhisk Cron Example</a></li> + <li><a href="https://medium.com/openwhisk/building-a-serverless-api-proxy-with-openwhisk-16e5fd16f44f">Building a Serverless API Proxy with OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/building-a-form-handler-service-in-openwhisk-55f15fb133a3">Building a Form Handler Service in OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/deploying-express-js-apps-to-openwhisk-part-1-9133ba5f262c">Deploying Express.js apps to OpenWhisk (Part 1)</a></li> + <li><a href="https://medium.com/openwhisk/designing-an-openwhisk-action-for-web-action-support-4f0299481e74">Designing an OpenWhisk Action for Web Action Support</a></li> </ul> </div> <!-- ************************************** --> + <!-- Actions - GoLang --> + <!-- ************************************** --> + <a class="indexable" id="go"></a> + <h6 id="section-go" class="section-toggle">using Go</h6> + <div class="section-toggleable section-toggle-start-closed"> + <p></p> + <a class="indexable" id="actions-go"></a> + <h5>Creating And Invoking Go actions</h5> + <p> + Let's look at how to write a sample hello world action in Go. You can visit + <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-go.md#creating-and-invoking-go-actions">Creating and Invoking Go actions</a> + page for further details. + </p> + <p> + <strong>Note:</strong> We will be using <i>wsk</i> CLI in this + section. If you don't have it installed and configured, + please refer to the section + <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>. + </p> + <ol> + <li style="list-style-type: decimal"> + <a class="indexable" id="hello-go"></a> + Create a file named <i>hello.go</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-go" data-lang="go"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15</pre></td><td class="code"><pre><span class="k">package</span><span class="x"> </span><span class="n">main</span><span class="x"> + +</span><span class="k">import</span><span class="x"> </span><span class="s">"fmt"</span><span class="x"> + +</span><span class="c">// Main function for the action</span><span class="x"> +</span><span class="k">func</span><span class="x"> </span><span class="n">Main</span><span class="p">(</span><span class="n">obj</span><span class="x"> </span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class="p">{})</span><span class="x"> </span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class [...] + </span><span class="n">name</span><span class="p">,</span><span class="x"> </span><span class="n">ok</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="n">obj</span><span class="p">[</span><span class="s">"name"</span><span class="p">]</span><span class="o">.</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span><span class="x"> + </span><span class="k">if</span><span class="x"> </span><span class="o">!</span><span class="n">ok</span><span class="x"> </span><span class="p">{</span><span class="x"> + </span><span class="n">name</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="s">"stranger"</span><span class="x"> + </span><span class="p">}</span><span class="x"> + </span><span class="n">fmt</span><span class="o">.</span><span class="n">Printf</span><span class="p">(</span><span class="s">"name=%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="x"> </span><span class="n">name</span><span class="p">)</span><span class="x"> + </span><span class="n">msg</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="nb">make</span><span class="p">(</span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class="p">{})</span><span class="x"> + </span><span class="n">msg</span><span class="p">[</span><span class="s">"msg"</span><span class="p">]</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="s">"Hello, "</span><span class="x"> </span><span class="o">+</span><span class="x"> </span><span class="n">name</span><span class="x"> </span><span class="o">+</span><span class="x"> </span><span class="s">"!"</span><span class="x"> + </span><span class="k">return</span><span class="x"> </span><span class="n">msg</span><span class="x"> +</span><span class="p">}</span><span class="w"> +</span></pre></td></tr></tbody></table></code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Create an action <i>helloGo</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action create helloGo hello.go</code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Invoke an action <i>helloGo</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action invoke helloGo -r -p name gopher</code></pre></figure> + + </div> + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="pi">{</span> +<span class="s2">"</span><span class="s">msg"</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Hello,</span><span class="nv"> </span><span class="s">gopher!"</span> +<span class="pi">}</span></code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Deploy using <i>wskdeploy</i>: + <p> + <strong>Note:</strong> We will be using <i>wskdeploy</i> in + this section. If you don't have the binary, + please refer to the section + on <a href="#wskdeploy">Whisk Deploy</a> to download it. + </p> + <ol> + <li>Create a directory called <i>actions</i> with + <i>hello.go</i> from step 1 <a href="#hello-go">above</a>. + </li> + <li> + Create <i>manifest.yaml</i> with the following YAML content: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 +2 +3 +4 +5</pre></td><td class="code"><pre><span class="s">packages</span><span class="pi">:</span> + <span class="s">default</span><span class="pi">:</span> + <span class="s">actions</span><span class="pi">:</span> + <span class="s">helloGo</span><span class="pi">:</span> + <span class="s">function</span><span class="pi">:</span> <span class="s">hello.go</span><span class="w"> +</span></pre></td></tr></tbody></table></code></pre></figure> + + </div> + </li> + <li> + Run deployment with <i>wskdeploy</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wskdeploy -m manifest.yaml</code></pre></figure> + + </div> + </li> + </ol> + </li> + </ol> + <a class="indexable" id="go-runtime"></a> + <h5>OpenWhisk Runtime for Go</h5> + <p> + If you wish to learn more about Go runtime along with + the libraries that are supported or "built-in" by + default, please visit + <a href="https://github.com/apache/incubator-openwhisk-runtime-go/blob/master/README.md">Go Runtime GitHub Repository</a>. + </p> + <a class="indexable" id="go-additional-resources"></a> + <h5>Additional Resources</h5> + <ul> + <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-go-runtime">OpenWhisk Go Runtime</a></li> + <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-goswiftbinaries-runtime">ActionLoop, Go and Swift</a></li> + </ul> + <!-- <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/golang">golang</a>)</span></h6> + <ul> + <li><a href=""></a></li> + <li><a href=""></a></li> + <li><a href=""></a></li> + </ul> --> + </div> + + <!-- ************************************** --> <!-- Actions - Python --> <!-- ************************************** --> <a class="indexable" id="python"></a> @@ -1311,144 +1472,11 @@ function addListenersToSections() <li><a href="http://jamesthom.as/blog/2017/04/27/python-packages-in-openwhisk/">Using External Python Libraries in OpenWhisk</a></li> <li><a href="https://www.slideshare.net/CodeOps/openwhisk-by-example-auto-retweeting-example-in-python">Auto Retweeting Example in Python</a></li> </ul> - </div> - - <!-- ************************************** --> - <!-- Actions - GoLang --> - <!-- ************************************** --> - <a class="indexable" id="go"></a> - <h6 id="section-go" class="section-toggle">using Go</h6> - <div class="section-toggleable section-toggle-start-closed"> - <p></p> - <a class="indexable" id="actions-go"></a> - <h5>Creating And Invoking Go actions</h5> - <p> - Let's look at how to write a sample hello world action in Go. You can visit - <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions-go.md#creating-and-invoking-go-actions">Creating and Invoking Go actions</a> - page for further details. - </p> - <p> - <strong>Note:</strong> We will be using <i>wsk</i> CLI in this - section. If you don't have it installed and configured, - please refer to the section - <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>. - </p> - <ol> - <li style="list-style-type: decimal"> - <a class="indexable" id="hello-go"></a> - Create a file named <i>hello.go</i>: - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-go" data-lang="go"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15</pre></td><td class="code"><pre><span class="k">package</span><span class="x"> </span><span class="n">main</span><span class="x"> - -</span><span class="k">import</span><span class="x"> </span><span class="s">"fmt"</span><span class="x"> - -</span><span class="c">// Main function for the action</span><span class="x"> -</span><span class="k">func</span><span class="x"> </span><span class="n">Main</span><span class="p">(</span><span class="n">obj</span><span class="x"> </span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class="p">{})</span><span class="x"> </span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class [...] - </span><span class="n">name</span><span class="p">,</span><span class="x"> </span><span class="n">ok</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="n">obj</span><span class="p">[</span><span class="s">"name"</span><span class="p">]</span><span class="o">.</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span><span class="x"> - </span><span class="k">if</span><span class="x"> </span><span class="o">!</span><span class="n">ok</span><span class="x"> </span><span class="p">{</span><span class="x"> - </span><span class="n">name</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="s">"stranger"</span><span class="x"> - </span><span class="p">}</span><span class="x"> - </span><span class="n">fmt</span><span class="o">.</span><span class="n">Printf</span><span class="p">(</span><span class="s">"name=%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="x"> </span><span class="n">name</span><span class="p">)</span><span class="x"> - </span><span class="n">msg</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="nb">make</span><span class="p">(</span><span class="k">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="k">interface</span><span class="p">{})</span><span class="x"> - </span><span class="n">msg</span><span class="p">[</span><span class="s">"msg"</span><span class="p">]</span><span class="x"> </span><span class="o">=</span><span class="x"> </span><span class="s">"Hello, "</span><span class="x"> </span><span class="o">+</span><span class="x"> </span><span class="n">name</span><span class="x"> </span><span class="o">+</span><span class="x"> </span><span class="s">"!"</span><span class="x"> - </span><span class="k">return</span><span class="x"> </span><span class="n">msg</span><span class="x"> -</span><span class="p">}</span><span class="w"> -</span></pre></td></tr></tbody></table></code></pre></figure> - - </div> - </li> - <li style="list-style-type: decimal"> - Create an action <i>helloGo</i>: - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action create helloGo hello.go</code></pre></figure> - - </div> - </li> - <li style="list-style-type: decimal"> - Invoke an action <i>helloGo</i>: - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action invoke helloGo -r -p name gopher</code></pre></figure> - - </div> - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="pi">{</span> -<span class="s2">"</span><span class="s">msg"</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Hello,</span><span class="nv"> </span><span class="s">gopher!"</span> -<span class="pi">}</span></code></pre></figure> - - </div> - </li> - <li style="list-style-type: decimal"> - Deploy using <i>wskdeploy</i>: - <p> - <strong>Note:</strong> We will be using <i>wskdeploy</i> in - this section. If you don't have the binary, - please refer to the section - on <a href="#wskdeploy">Whisk Deploy</a> to download it. - </p> - <ol> - <li>Create a directory called <i>actions</i> with - <i>hello.go</i> from step 1 <a href="#hello-go">above</a>. - </li> - <li> - Create <i>manifest.yaml</i> with the following YAML content: - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 -2 -3 -4 -5</pre></td><td class="code"><pre><span class="s">packages</span><span class="pi">:</span> - <span class="s">default</span><span class="pi">:</span> - <span class="s">actions</span><span class="pi">:</span> - <span class="s">helloGo</span><span class="pi">:</span> - <span class="s">function</span><span class="pi">:</span> <span class="s">hello.go</span><span class="w"> -</span></pre></td></tr></tbody></table></code></pre></figure> - - </div> - </li> - <li> - Run deployment with <i>wskdeploy</i>: - <div class="terminal"> - -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wskdeploy -m manifest.yaml</code></pre></figure> - - </div> - </li> - </ol> - </li> - </ol> - <a class="indexable" id="go-runtime"></a> - <h5>OpenWhisk Runtime for Go</h5> - <p> - If you wish to learn more about Go runtime along with - the libraries that are supported or "built-in" by - default, please visit - <a href="https://github.com/apache/incubator-openwhisk-runtime-go/blob/master/README.md">Go Runtime GitHub Repository</a>. - </p> - <a class="indexable" id="go-additional-resources"></a> - <h5>Additional Resources</h5> - <ul> - <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-go-runtime">OpenWhisk Go Runtime</a></li> - <li><a href="https://www.slideshare.net/MicheleSciabarr/openwhisk-goswiftbinaries-runtime">ActionLoop, Go and Swift</a></li> - </ul> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/python">python</a>)</span></h6> + <!-- <ul> + <li><a href="https://medium.com/openwhisk/python-packages-in-openwhisk-8d10dcd91257">Python Packages in OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/large-applications-on-openwhisk-bcf15bff94ec">Large Applications on OpenWhisk</a></li> + </ul> --> </div> <!-- ************************************** --> @@ -1573,6 +1601,13 @@ function addListenersToSections() <a href="https://www.ibm.com/blogs/bluemix/2017/02/building-openwhisk-actions-java-gradle/">Building OpenWhisk actions with Java and Gradle</a> </li> </ul> + <!-- TODO: Java blogs are outdated / need update --> + <!-- <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/java">java</a>)</span></h6> + <ul> + <li><a href="https://www.ibm.com/blogs/bluemix/2017/02/building-openwhisk-actions-java-gradle/">OpenWhisk actions with Java and Gradle</a></li> + <li><a href=""></a></li> + <li><a href=""></a></li> + </ul> --> </div> <!-- ************************************** --> @@ -1735,6 +1770,11 @@ function addListenersToSections() <li><a href="https://akrabat.com/getting-started-with-serverless-php/">Getting Started with Serverless PHP</a></li> <li><a href="https://lornajane.net/posts/2018/handle-webhooks-with-serverless-php">Handle Webhooks with Serverless PHP on OpenWhisk</a></li> </ul> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/php">php</a>)</span></h6> + <ul> + <li><a href="https://medium.com/openwhisk/using-serverless-framework-with-apache-openwhisk-and-php-76472727e9d8">Using Serverless Framework with OpenWhisk PHP</a></li> + <li><a href="https://medium.com/openwhisk/serverless-php-how-to-implement-serverless-functions-in-php-using-openwhisk-9943dc06f544">Serverless PHP: How to implement serverless functions in PHP using OpenWhisk</a></li> + </ul> </div> <!-- ************************************** --> @@ -1876,32 +1916,141 @@ function addListenersToSections() </p> <a class="indexable" id="ruby-additional-resources"></a> <h5>Additional Resources</h5> + <p></p> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/ruby">ruby</a>)</span></h6> <ul> - <li>Coming soon...</li> + <li><a href="https://medium.com/openwhisk/ruby-goes-serverless-apache-openwhisk-adds-native-support-for-ruby-7134faee14e">Ruby goes Serverless! - Apache OpenWhisk adds native support for Ruby</a></li> </ul> </div> <!-- ************************************** --> - <!-- TODO: Actions - Swift --> + <!-- Actions - Swift --> <!-- ************************************** --> - - <!-- <a class="indexable" id="swift"></a> - <h4 id="section-swift" >using Swift</h4> - <p></p> - <a class="indexable" id="swift-actions"></a> - <h5>Creating and Invoking Swift actions</h5> - <p> + <a class="indexable" id="swift"></a> + <h6 id="section-swift" class="section-toggle">using Swift</h6> + <div class="section-toggleable section-toggle-start-closed"> + <p></p> + <a class="indexable" id="actions-swift"></a> + <h5>Creating And Invoking Swift Actions</h5> + <p> Let's look at how to write a sample hello world action in Swift. - </p> - <p> - <strong>Note:</strong> We will be using <i>wsk</i> CLI in this section. If you don't have it installed and configured, - please refer to the section on <a href="#wsk-cli">Configure the wsk CLI</a> to configure it. - </p> - <a class="indexable" id="swift-runtime"></a> - <h5>OpenWhisk Runtime for Swift</h5> - <p></p> - <a class="indexable" id="swift-additional-resources"></a> - <h5>Additional Resources</h5> --> + You can visit + <a href="https://github.com/apache/incubator-openwhisk-runtime-swift#quick-swift-action">Quick Swift Action</a> + page for further details. + </p> + <p> + <strong>Note:</strong> We will be using <i>wsk</i> CLI in this + section. If you don't have it installed and configured, + please refer to the section + <a href="#wsk-cli">OpenWhisk CLI (wsk)</a>. + </p> + <ol> + <li style="list-style-type: decimal"> + <a class="indexable" id="hello-swift"></a> + Create a file named <i>hello.swift</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-java" data-lang="java"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 +2 +3 +4 +5 +6 +7</pre></td><td class="code"><pre><span class="n">func</span> <span class="nf">main</span><span class="o">(</span><span class="nl">args:</span> <span class="o">[</span><span class="nl">String:</span><span class="n">Any</span><span class="o">])</span> <span class="o">-></span> <span class="o">[</span><span class="nl">String:</span><span class="n">Any</span><span class="o">]</span> <span class="o">{</span> + <span class="k">if</span> <span class="n">let</span> <span class="n">name</span> <span class="o">=</span> <span class="n">args</span><span class="o">[</span><span class="s">"name"</span><span class="o">]</span> <span class="n">as</span><span class="o">?</span> <span class="n">String</span> <span class="o">{</span> + <span class="k">return</span> <span class="o">[</span> <span class="s">"greeting"</span> <span class="o">:</span> <span class="s">"Hello \(name)!"</span> <span class="o">]</span> + <span class="o">}</span> <span class="k">else</span> <span class="o">{</span> + <span class="k">return</span> <span class="o">[</span> <span class="s">"greeting"</span> <span class="o">:</span> <span class="s">"Hello swif4!"</span> <span class="o">]</span> + <span class="o">}</span> +<span class="o">}</span><span class="w"> +</span></pre></td></tr></tbody></table></code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Create an action <i>helloSwift</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action create helloSwift hello.swift</code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Invoke an action <i>helloSwift</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wsk action invoke helloSwift -r -p name Carlos</code></pre></figure> + + </div> + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="pi">{</span> +<span class="s2">"</span><span class="s">msg"</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Hello</span><span class="nv"> </span><span class="s">Carlos!"</span> +<span class="pi">}</span></code></pre></figure> + + </div> + </li> + <li style="list-style-type: decimal"> + Deploy using <i>wskdeploy</i>: + <p> + <strong>Note:</strong> We will be using <i>wskdeploy</i> in + this section. If you don't have the binary, + please refer to the section + on <a href="#wskdeploy">Whisk Deploy</a> to download it. + </p> + <ol> + <li>Create a directory called <i>actions</i> with + <i>hello.swift</i> from step 1 <a href="#hello-swift">above</a>. + </li> + <li> + Create <i>manifest.yaml</i> with the following YAML content: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1 +2 +3 +4 +5</pre></td><td class="code"><pre><span class="s">packages</span><span class="pi">:</span> + <span class="s">default</span><span class="pi">:</span> + <span class="s">actions</span><span class="pi">:</span> + <span class="s">helloSwift</span><span class="pi">:</span> + <span class="s">function</span><span class="pi">:</span> <span class="s">hello.swift</span><span class="w"> +</span></pre></td></tr></tbody></table></code></pre></figure> + + </div> + </li> + <li> + Run deployment with <i>wskdeploy</i>: + <div class="terminal"> + +<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>wskdeploy -m manifest.yaml</code></pre></figure> + + </div> + </li> + </ol> + </li> + </ol> + <a class="indexable" id="swift-runtime"></a> + <h5>OpenWhisk Runtime for Swift</h5> + <p> + If you wish to learn more about Swift runtime along with + the libraries that are supported or "built-in" by + default, please visit the project REAMDE + <a href="https://github.com/apache/incubator-openwhisk-runtime-swift#apache-openwhisk-runtimes-for-swift">Apache OpenWhisk runtimes for Swift</a>. + </p> + <a class="indexable" id="swift-additional-resources"></a> + <h5>Additional Resources</h5> + <ul> + <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift#swift-4x-support">Swift 4.x Codeable style example</a></li> + <li><a href="https://github.com/apache/incubator-openwhisk-runtime-swift#packaging-an-action-as-a-swift-executable-using-swift-4">Packaging an action as a Swift executable using Swift 4</a></li> + </ul> + <h6>Medium Blogs <span style="font-weight:normal;">(tagged <a href="https://medium.com/openwhisk/tagged/swift">swift</a>)</span></h6> + <ul> + <li><a href="https://medium.com/openwhisk/serverless-swift-with-openwhisk-4f84129e6839">Serverless Swift With OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/creating-swift-binaries-for-openwhisk-487526d0d576">Creating Swift Binaries for OpenWhisk</a></li> + <li><a href="https://medium.com/openwhisk/creating-an-openwhisk-alexa-skill-583824bf58cb">Creating an OpenWhisk Alexa skill</a> using Swift</li> + </ul> + </div> <!-- ************************************** --> <!-- TODO: Actions - Docker --> @@ -1932,27 +2081,25 @@ function addListenersToSections() </main> <!-- creating and invoking actions --> <!-- *************************************************************** --> - <!-- Packages --> + <!-- Packages Managing Actions --> <!-- *************************************************************** --> - - <!-- Managing Actions with OpenWhisk Packages --> <main class="doc"> <div class="content"> <a class="indexable" id="managing_actions_with_openwhisk_packages"></a> - <h4>Managing Actions with OpenWhisk Packages</h4> + <h3>Managing Actions with OpenWhisk Packages</h3> <p> - <strong>What is a package?</strong> In OpenWhisk, you can use packages to bundle together a set of related actions, and share them with others. + <question>What is a package?</question> In OpenWhisk, you can use packages to bundle together a set of related actions, and share them with others. OpenWhisk comes with a list of packages You can get more details on OpenWhisk packages <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">here</a>. </p> <p> - <strong>Does OpenWhisk comes with any pre-installed packages?</strong> + <question>Does OpenWhisk comes with any pre-installed packages?</question> OpenWhisk comes with a list of pre-installed public packages which can be used by anyone. OpenWhisk has created a dedicated shared namespace <strong>/whisk.system</strong> for all the public packages. </p> <p> - <strong>Which all packages are available under /whisk.system?</strong> + <question>Which all packages are available under /whisk.system?</question> You can get a list of packages available in shared namespace by using wsk CLI: </p> <ul> @@ -1974,7 +2121,7 @@ function addListenersToSections() </li> </ul> <p> - <strong>How do I invoke an action from a public package?</strong> + <question>How do I invoke an action from a public package?</question> There are two way to invoke an action from a package, (1) Invoking an action directly from a package (2) Creating a package binding and then invoking an action in the binding. @@ -2062,7 +2209,7 @@ function addListenersToSections() </li> </ul> <p> - <strong>Where do I get more information on packages?</strong> + <question>Where do I get more information on packages?</question> Please read <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md#using-and-creating-openwhisk-packages">OpenWhisk Packages</a> for further details. @@ -2073,7 +2220,7 @@ function addListenersToSections() <main class="doc"> <div class="content"> <a class="indexable" id="automating_actions_from_event_sources"></a> - <h4>Automating Actions from Event Sources</h4> + <h3>Automating Actions from Event Sources</h3> <p>In this section, we will show how to automate Actions in response to events coming from Event Sources. Specifically, we will show how to create, fire @@ -2220,7 +2367,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="using_openwhisk_enabled_services"></a> - <h4>Using OpenWhisk Enabled Services</h4> + <h3>Using OpenWhisk Enabled Services</h3> <p></p> <p> OpenWhisk offers a catalog of packages which gives you can easy @@ -2301,7 +2448,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="sample_openwhisk_applications"></a> - <h4>Sample OpenWhisk Applications</h4> + <h3>Sample OpenWhisk Applications</h3> <p></p> <h5>GitHub Slack Bot</h5> <p style="padding-left: 2em;"> @@ -2336,7 +2483,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="tutorial_and_workshop"></a> - <h4>Tutorial and Workshop</h4> + <h3>Tutorial and Workshop</h3> <p></p> <h5>OpenWhisk Tutorial</h5> <p style="padding-left: 2em;"> @@ -2356,7 +2503,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="development_tools"></a> - <h4>Development Tools</h4> + <h3>Development Tools</h3> <p></p> <h5>The OpenWhisk Debugger</h5> <p class="indented"> @@ -2385,7 +2532,7 @@ abcd.... locationUpdate others' Pull Requests (PRs). </p> <p> - The following Wiki pages describe the How Tos of becoming an + The following Wiki pages describe the "How Tos" of becoming an official Contributor: </p> <ul> @@ -2397,16 +2544,18 @@ abcd.... locationUpdate <!-- Contributors - project Structure --> <!-- ******************************************************* --> <a class="indexable" id="project-structure"></a> - <h4>Project Structure</h4> + <h3>Project Structure</h3> <p>OpenWhisk is comprised of multiple repositories that can be found in Apache GitHub (using a name query by repository):</p> - <p><a href="https://github.com/apache?q=openwhisk">https://github.com/apache?q=openwhisk</a></p> + <ul> + <li><a href="https://github.com/apache?q=openwhisk">https://github.com/apache?q=openwhisk</a></li> + </ul> <p>For convenience, here is a listing of current Apache OpenWhisk project repositories (by category).</p> <p><strong>Note:</strong> OpenWhisk repositories follow a naming convention where all repo starts with <i>incubator</i>, for example, <i>openwhisk-cli</i> GitHub repository is named <i>incubator-openwhisk-cli</i>.</p> <div class="flow-columns"> <div class="project-structure-repo theme-deeper-sea-green"> - <h4>Platform</h4> + <h5>Platform</h5> <p>Primary source code repositories including platform code, run books, tests and more.</p> <p class="repo-title border-deeper-sea-green"> @@ -2436,7 +2585,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-deeper-sky-blue"> - <h4>Runtimes</h4> + <h5>Runtimes</h5> <p>OpenWhisk supports several languages via Docker runtime containers.</p> <p class="repo-title border-deeper-sky-blue"> @@ -2481,7 +2630,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-darkgoldenrod"> - <h4>Deployments</h4> + <h5>Deployments</h5> <p>OpenWhisk can be deployed and configured on variety of platforms.</p> <p class="repo-title border-darkgoldenrod"> <a href="https://github.com/apache/incubator-openwhisk-deploy-kube" @@ -2525,7 +2674,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-deeper-aquamarine"> - <h4>Tooling</h4> + <h5>Tooling</h5> <p>OpenWhisk provides variety of tools around deployment and development.</p> <p class="repo-title border-deeper-aquamarine"> <a href="https://github.com/apache/incubator-openwhisk-wskdeploy" @@ -2577,7 +2726,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-darksalmon"> - <h4>Packages</h4> + <h5>Packages</h5> <p>Several common service integrations are made available as packages. By default they are registered in the OpenWHisk catalog, under the <em>/whisk.system/</em> namespace, @@ -2644,7 +2793,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-deeper-aquamarine"> - <h4>Clients and SDK</h4> + <h5>Clients and SDK</h5> <p>Here are the clients to access to OpenWhisk API:</p> <p class="repo-title border-deeper-aquamarine"> <a href="https://github.com/apache/incubator-openwhisk-client-go" @@ -2673,7 +2822,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-darkorange"> - <h4>Samples</h4> + <h5>Samples</h5> <p>Few example applications to demonstrate OpenWhisk features and functionalities:</p> <p class="repo-title border-darkorange"> <a href="https://github.com/apache/incubator-openwhisk-sample-slackbot" @@ -2714,7 +2863,7 @@ abcd.... locationUpdate </p> </div> <div class="project-structure-repo theme-darkred"> - <h4>Others</h4> + <h5>Others</h5> <p>Few other misc. but crucial repositories.</p> <p class="repo-title border-darkred"> <a href="https://github.com/apache/incubator-openwhisk-release" @@ -2782,7 +2931,7 @@ abcd.... locationUpdate <!-- ***************************************************** --> <a class="indexable" id="openwhisk_architecture"></a> - <h4>OpenWhisk Architecture</h4> + <h3>OpenWhisk Architecture</h3> <p> The diagram below depicts the high-level architecture of OpenWhisk. From Nginx to Kafka to Docker, multiple @@ -2806,7 +2955,7 @@ abcd.... locationUpdate <!-- Operators - Deployment Options --> <!-- ***************************************************** --> <a class="indexable" id="openwhisk_deployment"></a> - <h4>Deployment Options</h4> + <h3>Deployment Options</h3> <p> OpenWhisk offers different deployment options for installing and configuring the OpenWhisk platform components. @@ -2830,7 +2979,7 @@ abcd.... locationUpdate Google, IBM Cloud, etc.). </p> - <h4>Alternative options</h4> + <h3>Alternative options</h3> <p>Here are some alternate choices for deploying the OpenWhisk platform: </p> @@ -2915,7 +3064,7 @@ abcd.... locationUpdate <!-- Operators - Admin --> <!-- ******************************************************* --> <a class="indexable" id="deployment_admin"></a> - <h4>Administrative Operations</h4> + <h3>Administrative Operations</h3> <p> This section contains a list of resources which can be utilized to administer the running OpenWhisk instance. @@ -2928,7 +3077,7 @@ abcd.... locationUpdate <!-- Operators - Resources --> <!-- ******************************************************* --> <a class="indexable" id="operators_resources"></a> - <h4>Operator Resources</h4> + <h3>Operator Resources</h3> <ul> <li><a href="https://medium.com/openwhisk/five-minute-intro-to-open-source-serverless-development-with-openwhisk-328b0ebfa160">Five minute intro to open source serverless development with OpenWhisk</a></li> <li><a href="https://thenewstack.io/behind-scenes-apache-openwhisk-serverless-platform/">An Architectural View of Apache OpenWhisk</a></li> @@ -2944,7 +3093,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="other-resources"></a> - <h2>Other Resources</h2> + <h3>Other Resources</h3> <ul> <li><a href="events.html">Events</a> - list of past OpenWhisk events</li> @@ -2959,7 +3108,7 @@ abcd.... locationUpdate <main class="doc"> <div class="content"> <a class="indexable" id="faq"></a> - <h2>Frequently Asked Questions</h2> + <h3>Frequently Asked Questions</h3> <ul> <li> <a class="indexable" id="get-involved"></a> diff --git a/downloads.html b/downloads.html index 98ab5dd..fc2ca06 100644 --- a/downloads.html +++ b/downloads.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } } @@ -272,7 +271,7 @@ function addListenersToSections() <div class="content"> <div class="flow-columns"> <div class="project-structure-repo theme-deeper-sea-green"> - <h4>OpenWhisk Runtime Node.js</h4> + <h5>OpenWhisk Runtime Node.js</h5> <p class="repo-title border-deeper-sea-green"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-nodejs-1.12.0-incubating-sources.tar.gz&action=download"> @@ -294,7 +293,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-deeper-sky-blue"> - <h4>OpenWhisk Runtime Java</h4> + <h5>OpenWhisk Runtime Java</h5> <p class="repo-title border-deeper-sky-blue"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-java-1.12.0-incubating-sources.tar.gz&action=download"> @@ -316,7 +315,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darkgoldenrod"> - <h4>OpenWhisk Runtime Docker</h4> + <h5>OpenWhisk Runtime Docker</h5> <p class="repo-title border-darkgoldenrod"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-docker-1.12.0-incubating-sources.tar.gz&action=download"> @@ -338,7 +337,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-deeper-aquamarine"> - <h4>OpenWhisk Runtime Python</h4> + <h5>OpenWhisk Runtime Python</h5> <p class="repo-title border-deeper-aquamarine"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-python-1.12.0-incubating-sources.tar.gz&action=download"> @@ -360,7 +359,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darksalmon"> - <h4>OpenWhisk Runtime PHP</h4> + <h5>OpenWhisk Runtime PHP</h5> <p class="repo-title border-darksalmon"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-php-1.12.0-incubating-sources.tar.gz&action=download"> @@ -382,7 +381,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darkorange"> - <h4>OpenWhisk Runtime Swift</h4> + <h5>OpenWhisk Runtime Swift</h5> <p class="repo-title border-darkorange"> <a href="https://www.apache.org/dyn/closer.lua?filename=incubator/openwhisk/apache-openwhisk-1.12.0-incubating/openwhisk-runtime-swift-1.12.0-incubating-sources.tar.gz&action=download"> @@ -411,7 +410,7 @@ function addListenersToSections() <div class="content"> <div class="flow-columns"> <div class="project-structure-repo theme-deeper-sea-green"> - <h4>OpenWhisk</h4> + <h5>OpenWhisk</h5> <p>Core service of OpenWhisk.</p> <p class="repo-title border-deeper-sea-green"> <a @@ -434,7 +433,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-deeper-sky-blue"> - <h4>OpenWhisk CLI</h4> + <h5>OpenWhisk CLI</h5> <p>OpenWhisk command-line interface.</p> <p class="repo-title border-deeper-sky-blue"> <a @@ -457,7 +456,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darkgoldenrod"> - <h4>OpenWhisk Client Go</h4> + <h5>OpenWhisk Client Go</h5> <p>OpenWhisk client library in Go.</p> <p class="repo-title border-darkgoldenrod"> <a @@ -480,7 +479,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-deeper-aquamarine"> - <h4>OpenWhisk Wskdeploy</h4> + <h5>OpenWhisk Wskdeploy</h5> <p>OpenWhisk utility to configure OpenWhisk entities with a Manifest file written in YAML, and deploy them in a single command.</p> <p class="repo-title border-deeper-aquamarine"> <a @@ -503,7 +502,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darksalmon"> - <h4>OpenWhisk Catalog</h4> + <h5>OpenWhisk Catalog</h5> <p>Package catalogs of OpenWhisk, which provides an easy way to enhance your application with useful capabilities, and to access external services in the ecosystem.</p> <p class="repo-title border-darksalmon"> <a @@ -526,7 +525,7 @@ function addListenersToSections() </div> <div class="project-structure-repo theme-darkorange"> - <h4>OpenWhisk Apigateway</h4> + <h5>OpenWhisk Apigateway</h5> <p>A performant API Gateway based on Openresty and NGINX.</p> <p class="repo-title border-darkorange"> <a diff --git a/events.html b/events.html index 1a85cff..c06cb85 100644 --- a/events.html +++ b/events.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } } diff --git a/feed.xml b/feed.xml index 4354dbe..078d0ab 100644 --- a/feed.xml +++ b/feed.xml @@ -1,2 +1,2 @@ -<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.3.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-11-27T19:00:28+00:00</updated><id>/feed.xml</id><title type="html">Apache OpenWhisk is a serverless, open source cloud platform</title><subtitle>An open source platform for serverless, event-driven code at any [...] +<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.3.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-11-30T21:57:16+00:00</updated><id>/feed.xml</id><title type="html">Apache OpenWhisk is a serverless, open source cloud platform</title><subtitle>An open source platform for serverless, event-driven code at any [...] </subtitle></feed> \ No newline at end of file diff --git a/index.html b/index.html index 15ee999..388d0bc 100644 --- a/index.html +++ b/index.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } } @@ -216,10 +215,28 @@ function addListenersToSections() <div class="content"> <h4>What is Apache OpenWhisk?</h4> <p> - Apache OpenWhisk (Incubating) is an open source, distributed <a href="https://en.wikipedia.org/wiki/Serverless_computing" style="font-weight:bold">Serverless</a> platform that executes functions (<span style="font-family:Times New Roman,Georgia,Serif">fx</span>) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications. + Apache OpenWhisk (Incubating) is an open source, distributed + <a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless</a> + platform that executes functions + (<span style="font-family:Times New Roman,Georgia,Serif">fx</span>) + in response to events at any scale. OpenWhisk manages the + infrastructure, servers and scaling using Docker containers + so you can focus on building amazing and efficient + applications. </p> <p> - The OpenWhisk platform supports a programming model in which developers write functional logic (called <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md"><span style="font-weight:bold">Actions</span></a>), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md"><span style="font-weight:bo [...] + The OpenWhisk platform supports a programming model in which + developers write functional logic (called + <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#openwhisk-actions">Actions</a>), + in any supported programming language, that can be dynamically + scheduled and run in response to associated events (via + <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/triggers_rules.md#creating-triggers-and-rules">Triggers</a>) + from external sources ( + <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/feeds.md#implementing-feeds">Feeds</a>) + or from HTTP requests. The project includes a REST API-based + Command Line Interface (CLI) along with other tooling to + support packaging, catalog services and many popular container + deployment options. </p> <a class="button" href="/documentation.html#openwhisk_deployment">Create Your Local Playground</a> </div> @@ -236,7 +253,20 @@ function addListenersToSections() <div class="content"> <h4>Deploys anywhere</h4> <p> - Since Apache OpenWhisk builds its components using containers it easily supports many deployment options both locally and within Cloud infrastructures. Options include many of today's popular Container frameworks such as <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md">Kubernetes</a>, <a style="font-weight:bold" href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Mesos</a [...] + Since Apache OpenWhisk builds its components using containers + it easily supports many deployment options both locally and + within Cloud infrastructures. Options include many of today's + popular Container frameworks such as + <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/README.md">Kubernetes</a>, + <a href="https://github.com/apache/incubator-openwhisk-deploy-mesos/blob/master/README.md">Mesos</a>, + <a href="https://github.com/apache/incubator-openwhisk-deploy-openshift/blob/master/README.md">OpenShift</a> and + <a href="https://github.com/apache/incubator-openwhisk-devtools/blob/master/docker-compose/README.md">Compose</a>. + In general, the community endorses deployment on Kubernetes + using + <a href="https://helm.sh/Helm">Helm</a> + charts since it provides many easy and convenient + implementations for both Devlopers and Operators alike such as + <a href="https://github.com/apache/incubator-openwhisk-deploy-kube/blob/master/docs/minikube.md">Minikube</a>. </p> </div> </main> @@ -247,18 +277,30 @@ function addListenersToSections() <h4>Write functions in any language</h4> <!-- Possible text addition: "bundle larger or complex dependencies, and tailor the runtime environment to suite your needs."" --> <p> - Work with what you know and love. OpenWhisk supports a growing list of your favorite languages such as - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs">NodeJS</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-swift">Swift</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-java">Java</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-go">Go</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-java">Scala</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-python">Python</a></b>, - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-php">PHP</a></b> and - <b><a href="https://github.com/apache/incubator-openwhisk-runtime-ruby">Ruby</a></b>. + Work with what you know and love. OpenWhisk supports a + growing list of your favorite languages such as + <a href="https://github.com/apache/incubator-openwhisk-runtime-nodejs">NodeJS</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-swift">Swift</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-java">Java</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-go">Go</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-java">Scala</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-python">Python</a>, + <a href="https://github.com/apache/incubator-openwhisk-runtime-php">PHP</a> and + <a href="https://github.com/apache/incubator-openwhisk-runtime-ruby">Ruby</a>. </p> <p> - If you need languages or libraries the current "out-of-the-box" runtimes do not support, you can create and customize your own executables as Zip Actions which run on the <b><a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker</a></b> runtime by using the <b><a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker SDK</a></b>. Some examples of how to support other languag [...] + If you need languages or libraries the current + "out-of-the-box" runtimes do not support, you can create + and customize your own executables as Zip Actions which + run on the + <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/README.md">Docker</a> + runtime by using the + <a href="https://github.com/apache/incubator-openwhisk-runtime-docker/blob/master/sdk/docker/README.md">Docker SDK</a>. + Some examples of how to support other languages using + Docker Actions include + <a href="https://medium.com/openwhisk/openwhisk-and-rust-lang-24025734a834">Rust</a>, + and + <a href="https://github.com/rainbyte/openwhisk-wrapper">Haskell</a>. </p> <p> Once you have your function written, use the @@ -282,26 +324,32 @@ function addListenersToSections() <p> OpenWhisk makes it simple for developers to integrate their Actions with many popular services using - <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md"><span style="font-weight:bold">Packages</span></a> + <a href="https://github.com/apache/incubator-openwhisk/blob/master/docs/packages.md">Packages</a> that are provided either as independently developed projects under the OpenWhisk family or as part of our default - <a href="https://github.com/apache/incubator-openwhisk-catalog">catalog</a>. + <a href="https://github.com/apache/incubator-openwhisk-catalog">Catalog</a>. </p> <p> Packages offer integrations with general services such as - <a href="https://github.com/apache/incubator-openwhisk-package-kafka">Kafka</a> message queues, + <a href="https://github.com/apache/incubator-openwhisk-package-kafka">Kafka</a> + message queues, databases including <a href="https://github.com/apache/incubator-openwhisk-package-cloudant">Cloudant</a>, - <a href="https://github.com/apache/incubator-openwhisk-package-pushnotifications">Push Notifications</a> from mobile applications, - <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/slack">Slack</a> messaging, - and <a href="https://github.com/apache/incubator-openwhisk-package-rss">RSS</a> feeds. + <a href="https://github.com/apache/incubator-openwhisk-package-pushnotifications">Push Notifications</a> + from mobile applications, + <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/slack">Slack</a> + messaging, + and <a href="https://github.com/apache/incubator-openwhisk-package-rss">RSS</a> + feeds. Development pipelines can take advantage of integrations with <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/github">GitHub</a>, <a href="https://github.com/apache/incubator-openwhisk-package-jira">JIRA</a>, or easily connect with custom data services from IBM Watson for <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-translator">Translation</a> - or <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-speechToText">Speech-to-Text</a>, as well as the - <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/weather">Weather</a> company. + or <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/watson-speechToText">Speech-to-Text</a>, + as well as the + <a href="https://github.com/apache/incubator-openwhisk-catalog/tree/master/packages/weather">Weather</a> + company. </p> <p> You can even use the <a href="https://github.com/apache/incubator-openwhisk-package-alarms">Alarms</a> diff --git a/slack.html b/slack.html index 68e059a..003becd 100644 --- a/slack.html +++ b/slack.html @@ -36,7 +36,7 @@ function toggleReferencedSection( parentId, expand ) console.log( "toggleReferencedSection(): parentId=" + parentId + " expand=" + expand); if (parentId !== ""){ sectionName = parentId.replace("index", "section"); - console.log( "toggleReferencedSection(): sectionName=" + sectionName); + //console.log( "toggleReferencedSection(): sectionName=" + sectionName); sectionHeader = document.getElementById(sectionName); section = sectionHeader.nextElementSibling; if(expand){ @@ -61,8 +61,7 @@ function addListenersToIndex() if(sibling!==null){ coll[i].style.listStyleImage = "url('../images/elements/arrow-right-12px.png')"; - // (top right bottom left) - // make room on left for image/icon + // make room on left for image/icon (top right bottom left) sibling.style.padding = "0px 0px 0px 20px"; if(sibling.classList.contains('index-menu-start-open')){ @@ -114,7 +113,7 @@ function addListenersToSections() coll[i].style.backgroundImage = "url('../images/elements/circle-plus.png')"; sibling.style.display = "none"; } else { - console.log( "addListenersToSections(): No Toggle style foun; default to open"); + //console.log( "addListenersToSections(): No Toggle style foun; default to open"); coll[i].style.backgroundImage = "url('../images/elements/circle-minus.png')"; sibling.style.display = "block"; } @@ -125,18 +124,18 @@ function addListenersToSections() var sibling = this.nextElementSibling; // toggle menu open/close states if(sibling!==null){ - console.log("sibling.style.display: ["+sibling.style.display+"]"); + //console.log("sibling.style.display: ["+sibling.style.display+"]"); if (sibling.style.display !== "none") { - console.log("collapsing"); + //console.log("collapsing"); sibling.style.display = "none"; this.style.backgroundImage = "url('../images/elements/circle-plus.png')"; } else { - console.log("expanding"); + //console.log("expanding"); sibling.style.display = "block"; this.style.backgroundImage = "url('../images/elements/circle-minus.png')"; } } - + }); } }