{"action":"created","comment":{"url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/comments/137124049","pull_request_review_id":60746971,"id":137124049,"diff_hunk":"@@ -37,74 +28,41 @@ This recipe includes a simple illustration of particle composition: the Greet pa\n \n Note that these two particles don't need to know about each other (however they both know about the \"customgreeting\" slot) and would typically be written by different developers.\n \n-You can [run the demo](https://arcs-demos-hello-world.glitch.me/) and even [edit the demo](https://glitch.com/edit/#!/arcs-demos-hello-world) hosted on Glitch. In the following sections we pull the demo apart and describe the different parts of the demo in more detail.\n-\n+You can [run the demo](https://arcs-hello-world.glitch.me/) and even [edit the demo](https://glitch.com/edit/#!/arcs-hello-world?path=arc.manifest) hosted on Glitch. In the following sections we pull the demo apart and describe the different parts of the demo in more detail.\n \n ## Demo Setup\n \n-The demo consists of a bit of boilerplate HTML and JavaScript code to setup the Arcs demo environment. The [index HTML file](https://github.com/PolymerLabs/arcs-demos/blob/master/hello-world/index.demo.html) includes the Arcs library (arcs.js) and the Web Worker entry point (worker-entry.js) responsible for particle isolation and renders the <demo-flow> web component. The [demo JavaScript file](https://github.com/PolymerLabs/arcs-demos/blob/master/hello-world/demo.js) implements <demo-flow> and sets up a single Arc to run the recipe and greet the user.\n+To setup the demo we simply import [playground.html](https://polymerlabs.github.io/arcs-cdn/v0.0.4/playground/playground.html) in the main `index.html` file. The playground does all of the initialization of the Arcs environment and expects an `arc.manifest` file to be hosted in the same directory as the `index.html` file.\n \n-Eventually, Arcs will be spawned automatically based on user context. In the demo, the Arc is explicitly instantiated with a single view containing one entity of type Person (named Claire). The demo also explicitly adds the \"Hello, World!\" recipe to that demo Arc which is also something that Arcs will eventually do automatically.\n+Eventually, Arcs will be spawned automatically based on user context. In the demo, the Arc (i.e., manifest file) is explicitly loaded. The demo Arc manifest file declares the following:\n \n+ * a view named `User` of type `Person` whose content is specified in `user.json`.\n+ * a recipe that stitches together three particles (HelloWorld, Greet and PersonalGreet)\n \n ## Recipes\n \n-The recipe declares the particles that constitute (and run as part of) the program as well as how data flows through the particles in the Arc. The recipe description is simply a manifest file loaded by the Arcs demo. Eventually, recipes could be hosted anywhere on the web and get crawled and indexed by Arcs. The same manifest format is used to describe entity schemas (data), particles (code) and recipes (data flow).\n-\n-For the demo we have four different manifest files. One for every particle and one that pulls it all together and describes the recipe. Let's look at the higher-level recipe manifest first.\n-\n-\n-TODO: show new format recipe manifests for the demo. As of now, recipes are coded in JavaScript. See hello-world.js.\n-\n-The recipe lists all of the particles running in the demo and declares how data flows between these particles by connecting views and UI slots. E.g., the HelloWorld particle outputs a Message named \"hello\" and Greet takes in a Message named \"message\". The recipe will declare that the output of HelloWorld should flow into the input of Greet. Note that Greet doesn't know of the existence of HelloWorld. It doesn't care where the message is coming from.\n-\n-\n-```\n-HelloWorld(out Message hello)\n-Greet(in Message message)\n-```\n-\n-The demo only uses singleton views. Arcs also supports set views, e.g., `ShowProductList(in [Product] products)`. See [view.js](https://github.com/PolymerLabs/arcs/blob/master/runtime/view.js) for a complete description of the view interface.\n+The recipe declares the particles that constitute (and run as part of) the program as well as how data flows through the particles in the Arc. Recipes can be hosted anywhere on the web and will eventually get crawled and indexed by Arcs. The same [manifest format](https://github.com/PolymerLabs/arcs/blob/master/runtime/manifest.md) is used to describe entity schemas (data types), views (sets of data), particles (code) and recipes (data flow).\n \n+For this simple demo we have five different manifest files. One for every particle, one that defines the `Message` schema and one that pulls it all together and describes the recipe and the Arc. Take a look at the [arcs.manifest](https://glitch.com/edit/#!/arcs-hello-world?path=arc.manifest) file and its comments for a closer look at how the higher-level recipe is specified.\n \n ## Slots\n \n-Slots are named UI placeholders where particles can render content into. E.g., the demo script exposes a root slot that the Greet particle renders into.\n+Slots are named UI placeholders where particles can render content into. E.g., the Arcs playground exposes a root slot that the Greet particle renders into.\n \n Slots are also the mechanism by which UI composes in Arcs. E.g., the Greet particle renders DOM inside the root slot and exposes a new slot for another particle to render additional content into its DOM. The Greet DOM output contains the following tag: `<div slotid=\"customgreeting\"></div>`. The PersonalGreet particle can then specify in its manifest that it wants to be rendered into the 'customgreeting' slot.\n \n TODO: describe more complex slot composition (e.g., set slots).\n \n-\n ## Particles\n \n-A particle is the basic unit of computation in Arcs. Simply put it's a JavaScript file that contains a class that inherits either from [DomParticle](https://github.com/PolymerLabs/arcs/blob/master/runtime/dom-particle.js) (if the particle renders DOM UI) or from its parent class [Particle](https://github.com/PolymerLabs/arcs/blob/master/runtime/particle.js) (if it only operates on input and output views).\n-\n-\n-TODO: show the basic new format particle manifest and link to the spec.\n+A particle is the basic unit of computation in Arcs. Simply put it's a JavaScript file that contains a class that inherits either from [DomParticle](https://github.com/PolymerLabs/arcs/blob/master/runtime/dom-particle.js) (if the particle renders DOM UI) or from its parent class [Particle](https://github.com/PolymerLabs/arcs/blob/master/runtime/particle.js) (if it only operates on input and output views). Take a look at the [Greet](https://glitch.com/edit/#!/arcs-hello-world?path=particles/Greet/Greet.manifest) particle manifest and its accompanied JavaScript file.","path":"docs/getting-started.md","position":96,"original_position":96,"commit_id":"0ba56064d1bbe086fa31cd53177255017abc818a","original_commit_id":"0ba56064d1bbe086fa31cd53177255017abc818a","user":{"login":"smalls","id":562883,"avatar_url":"https://avatars2.githubusercontent.com/u/562883?v=4","gravatar_id":"","url":"https://api.github.com/users/smalls","html_url":"https://github.com/smalls","followers_url":"https://api.github.com/users/smalls/followers","following_url":"https://api.github.com/users/smalls/following{/other_user}","gists_url":"https://api.github.com/users/smalls/gists{/gist_id}","starred_url":"https://api.github.com/users/smalls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smalls/subscriptions","organizations_url":"https://api.github.com/users/smalls/orgs","repos_url":"https://api.github.com/users/smalls/repos","events_url":"https://api.github.com/users/smalls/events{/privacy}","received_events_url":"https://api.github.com/users/smalls/received_events","type":"User","site_admin":false},"body":"Maybe a direct link to the accompanied JS file (https://glitch.com/edit/#!/arcs-hello-world) at the end of the last sentence?","created_at":"2017-09-05T21:49:55Z","updated_at":"2017-09-05T21:51:04Z","html_url":"https://github.com/PolymerLabs/arcs/pull/358#discussion_r137124049","pull_request_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/comments/137124049"},"html":{"href":"https://github.com/PolymerLabs/arcs/pull/358#discussion_r137124049"},"pull_request":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358"}}},"pull_request":{"url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358","id":139421829,"html_url":"https://github.com/PolymerLabs/arcs/pull/358","diff_url":"https://github.com/PolymerLabs/arcs/pull/358.diff","patch_url":"https://github.com/PolymerLabs/arcs/pull/358.patch","issue_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/358","number":358,"state":"open","locked":false,"title":"Updated demo docs","user":{"login":"noelutz","id":6739757,"avatar_url":"https://avatars2.githubusercontent.com/u/6739757?v=4","gravatar_id":"","url":"https://api.github.com/users/noelutz","html_url":"https://github.com/noelutz","followers_url":"https://api.github.com/users/noelutz/followers","following_url":"https://api.github.com/users/noelutz/following{/other_user}","gists_url":"https://api.github.com/users/noelutz/gists{/gist_id}","starred_url":"https://api.github.com/users/noelutz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noelutz/subscriptions","organizations_url":"https://api.github.com/users/noelutz/orgs","repos_url":"https://api.github.com/users/noelutz/repos","events_url":"https://api.github.com/users/noelutz/events{/privacy}","received_events_url":"https://api.github.com/users/noelutz/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-09-05T21:09:19Z","updated_at":"2017-09-05T21:51:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"06a9a38debced05457781119c773827f0bb2df68","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358/commits","review_comments_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358/comments","review_comment_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/358/comments","statuses_url":"https://api.github.com/repos/PolymerLabs/arcs/statuses/0ba56064d1bbe086fa31cd53177255017abc818a","head":{"label":"PolymerLabs:noelutz-docs-update","ref":"noelutz-docs-update","sha":"0ba56064d1bbe086fa31cd53177255017abc818a","user":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars2.githubusercontent.com/u/5912903?v=4","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"repo":{"id":80783122,"name":"arcs","full_name":"PolymerLabs/arcs","owner":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars2.githubusercontent.com/u/5912903?v=4","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PolymerLabs/arcs","description":null,"fork":false,"url":"https://api.github.com/repos/PolymerLabs/arcs","forks_url":"https://api.github.com/repos/PolymerLabs/arcs/forks","keys_url":"https://api.github.com/repos/PolymerLabs/arcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PolymerLabs/arcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PolymerLabs/arcs/teams","hooks_url":"https://api.github.com/repos/PolymerLabs/arcs/hooks","issue_events_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/events{/number}","events_url":"https://api.github.com/repos/PolymerLabs/arcs/events","assignees_url":"https://api.github.com/repos/PolymerLabs/arcs/assignees{/user}","branches_url":"https://api.github.com/repos/PolymerLabs/arcs/branches{/branch}","tags_url":"https://api.github.com/repos/PolymerLabs/arcs/tags","blobs_url":"https://api.github.com/repos/PolymerLabs/arcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PolymerLabs/arcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PolymerLabs/arcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/PolymerLabs/arcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PolymerLabs/arcs/statuses/{sha}","languages_url":"https://api.github.com/repos/PolymerLabs/arcs/languages","stargazers_url":"https://api.github.com/repos/PolymerLabs/arcs/stargazers","contributors_url":"https://api.github.com/repos/PolymerLabs/arcs/contributors","subscribers_url":"https://api.github.com/repos/PolymerLabs/arcs/subscribers","subscription_url":"https://api.github.com/repos/PolymerLabs/arcs/subscription","commits_url":"https://api.github.com/repos/PolymerLabs/arcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/PolymerLabs/arcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/PolymerLabs/arcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/PolymerLabs/arcs/contents/{+path}","compare_url":"https://api.github.com/repos/PolymerLabs/arcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PolymerLabs/arcs/merges","archive_url":"https://api.github.com/repos/PolymerLabs/arcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PolymerLabs/arcs/downloads","issues_url":"https://api.github.com/repos/PolymerLabs/arcs/issues{/number}","pulls_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls{/number}","milestones_url":"https://api.github.com/repos/PolymerLabs/arcs/milestones{/number}","notifications_url":"https://api.github.com/repos/PolymerLabs/arcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PolymerLabs/arcs/labels{/name}","releases_url":"https://api.github.com/repos/PolymerLabs/arcs/releases{/id}","deployments_url":"https://api.github.com/repos/PolymerLabs/arcs/deployments","created_at":"2017-02-03T00:32:19Z","updated_at":"2017-06-27T11:39:21Z","pushed_at":"2017-09-05T21:41:10Z","git_url":"git://github.com/PolymerLabs/arcs.git","ssh_url":"git@github.com:PolymerLabs/arcs.git","clone_url":"https://github.com/PolymerLabs/arcs.git","svn_url":"https://github.com/PolymerLabs/arcs","homepage":null,"size":12410,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":21,"forks":8,"open_issues":21,"watchers":4,"default_branch":"master"}},"base":{"label":"PolymerLabs:master","ref":"master","sha":"49807cdede8971aa22077c714047161676b8bd60","user":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars2.githubusercontent.com/u/5912903?v=4","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"repo":{"id":80783122,"name":"arcs","full_name":"PolymerLabs/arcs","owner":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars2.githubusercontent.com/u/5912903?v=4","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PolymerLabs/arcs","description":null,"fork":false,"url":"https://api.github.com/repos/PolymerLabs/arcs","forks_url":"https://api.github.com/repos/PolymerLabs/arcs/forks","keys_url":"https://api.github.com/repos/PolymerLabs/arcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PolymerLabs/arcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PolymerLabs/arcs/teams","hooks_url":"https://api.github.com/repos/PolymerLabs/arcs/hooks","issue_events_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/events{/number}","events_url":"https://api.github.com/repos/PolymerLabs/arcs/events","assignees_url":"https://api.github.com/repos/PolymerLabs/arcs/assignees{/user}","branches_url":"https://api.github.com/repos/PolymerLabs/arcs/branches{/branch}","tags_url":"https://api.github.com/repos/PolymerLabs/arcs/tags","blobs_url":"https://api.github.com/repos/PolymerLabs/arcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PolymerLabs/arcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PolymerLabs/arcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/PolymerLabs/arcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PolymerLabs/arcs/statuses/{sha}","languages_url":"https://api.github.com/repos/PolymerLabs/arcs/languages","stargazers_url":"https://api.github.com/repos/PolymerLabs/arcs/stargazers","contributors_url":"https://api.github.com/repos/PolymerLabs/arcs/contributors","subscribers_url":"https://api.github.com/repos/PolymerLabs/arcs/subscribers","subscription_url":"https://api.github.com/repos/PolymerLabs/arcs/subscription","commits_url":"https://api.github.com/repos/PolymerLabs/arcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/PolymerLabs/arcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/PolymerLabs/arcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/PolymerLabs/arcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/PolymerLabs/arcs/contents/{+path}","compare_url":"https://api.github.com/repos/PolymerLabs/arcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PolymerLabs/arcs/merges","archive_url":"https://api.github.com/repos/PolymerLabs/arcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PolymerLabs/arcs/downloads","issues_url":"https://api.github.com/repos/PolymerLabs/arcs/issues{/number}","pulls_url":"https://api.github.com/repos/PolymerLabs/arcs/pulls{/number}","milestones_url":"https://api.github.com/repos/PolymerLabs/arcs/milestones{/number}","notifications_url":"https://api.github.com/repos/PolymerLabs/arcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PolymerLabs/arcs/labels{/name}","releases_url":"https://api.github.com/repos/PolymerLabs/arcs/releases{/id}","deployments_url":"https://api.github.com/repos/PolymerLabs/arcs/deployments","created_at":"2017-02-03T00:32:19Z","updated_at":"2017-06-27T11:39:21Z","pushed_at":"2017-09-05T21:41:10Z","git_url":"git://github.com/PolymerLabs/arcs.git","ssh_url":"git@github.com:PolymerLabs/arcs.git","clone_url":"https://github.com/PolymerLabs/arcs.git","svn_url":"https://github.com/PolymerLabs/arcs","homepage":null,"size":12410,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":21,"forks":8,"open_issues":21,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358"},"html":{"href":"https://github.com/PolymerLabs/arcs/pull/358"},"issue":{"href":"https://api.github.com/repos/PolymerLabs/arcs/issues/358"},"comments":{"href":"https://api.github.com/repos/PolymerLabs/arcs/issues/358/comments"},"review_comments":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358/comments"},"review_comment":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PolymerLabs/arcs/pulls/358/commits"},"statuses":{"href":"https://api.github.com/repos/PolymerLabs/arcs/statuses/0ba56064d1bbe086fa31cd53177255017abc818a"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"smalls"}}