{"action":"created","comment":{"url":"https://api.github.com/repos/rustasync/team/pulls/comments/270213193","pull_request_review_id":220292216,"id":270213193,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI3MDIxMzE5Mw==","diff_hunk":"@@ -0,0 +1,120 @@\n+- Feature Name: N/A\n+- Start Date: (fill me in with today's date, 2019-03-27)\n+- RFC PR: [rust-lang/rfcs#0000](https://github.com/rust-lang/rfcs/pull/0000)\n+- RustAsync Issue: [rust-lang/rust#0000](https://github.com/rust-lang/rust/issues/0000)\n+\n+# Summary\n+[summary]: #summary\n+\n+The roadmap for the first 6 week for the Rustasync ecosystem work group.\n+\n+This RFC is intended to provide the general outline and define the goals for the first sprint. The 6 week sprint provides a block time long enough to take a feature to completion, while at the same time being short enough that things do not stagnate.\n+\n+Since this will be the first sprint for the async ecosystems wg, the goal is to build a good foundation on which future work can proceed.\n+\n+# Detailed description\n+[detailed-description]: #detailed-description\n+\n+# Tide\n+[tide]: #tide\n+\n+The project has seen a lot of discussion happen in [issues][issues] as well as the discord channel. The general conversation currently revolves around getting the core framework stabilized in order to build features on top of that. To this end, the currently [open PR by @aturon][context-pr] works to refactor the way data is passed along to endpoint functions. This change is a major change allowing data extraction to be more explicit.\n+\n+ Once this feature lands, here are some of the issues that work can begin on:\n+\n+ * [Authentication in Tide][issues-99]\n+ * [Serving static files][issues-63]\n+ * [URL generation][issues-24]\n+\n+There has been some discussion on the [Sprint 1 goals issue][sprint-goals], and a really good overview for the features to work on has been been [outlined by @gruberb][goals-outline]. This outline a great basis to set up the roadmap for Tide. It consists of the following broad goals:\n+\n+* [ ] Stabilize tide core.\n+* [ ] Session management\n+* [ ] Authentication\n+\n+## Stabilize tide core\n+[stabilize-tide-core]: #stabilize-tide-core\n+\n+Currently [the PR][context-pr] is open, with most of the core changes done. There is ongoing discussion regarding the change, and you can follow with the progress directly on the PR.\n+\n+\n+### Goals\n+[stabilize-core-goals]: #stabilize-core-goals\n+\n+* [ ] Merge PR\n+* [ ] Resolve design questions.\n+\n+## Session management\n+[session-management]: #session-management\n+\n+Current discussion around session management in tide is centered around the [design issue][issues-9] for the same. @tomhoule has got a working generic session implementation written against the new tide core changes. You can check the [project out here][session-project]. This provides types to define middleware and custom session storage backends which hook directly into the `Context` object provided to the endpoint function.\n+\n+The current discussion is centered on providing a simple in memory session storage with Cookies as the default in the framework, and provide external crates to hook into external data stores.\n+\n+This change is currently blocked by the tide core changes.\n+\n+### Goals\n+\n+* [ ] Stable API.\n+* [ ] In memory session backend\n+\n+## Authentication\n+[Authentication]: #authentication\n+\n+Currently rust web frameworks have disparate ways of authentication. One of the goals of the Async ecosystem WG is to provide a common set of crates which can be used to build higher level abstractions. In terms of Tide, there currently isn't an authentication story present. @tomhoule has built cookie based authentication into the session management middleware as a POC. Therefore the goals for this sprint would be to sketch out the design of the authentication API for tide.\n+\n+### Goals\n+\n+* [ ] Design authentication API in Tide.\n+\n+[issues]: https://github.com/rustasync/tide/issues/\n+[context-pr]: https://github.com/rustasync/tide/pull/156\n+[issues-9]: https://github.com/rustasync/tide/issues/9\n+[issues-99]: https://github.com/rustasync/tide/issues/99\n+[issues-63]: https://github.com/rustasync/tide/issues/63\n+[issues-24]: https://github.com/rustasync/tide/issues/24\n+\n+[sprint-goals]: https://github.com/rustasync/team/issues/96\n+[goals-outline]: https://github.com/rustasync/team/issues/96#issuecomment-471552499\n+[session-project]: https://github.com/tomhoule/tide-cookie-session\n+\n+# Websites\n+[websites]: #websites\n+\n+There are two primary websites for keeping tack of async await progress and web development progress:\n+\n+* [Areweasyncyet][areweasyncyet]\n+* [Arewewebyet][Arewewebyet]\n+\n+There isn't a lot that has been discussed around these two as they are in maintenance mode and work will mostly be around updating the content as and when appropriate.\n+\n+[areweasyncyet]: https://areweasyncyet.rs/\n+[arewewebyet]: http://www.arewewebyet.org/\n+\n+# Async book\n+[async-book]: #async-book\n+\n+The current [Async book][async-book] is a great start at explaining the details of why `async/await` is important, but is light on the details. As mentioned in [this issue][lucio-issue], there are discussions on improving the contents and providing a starting point for people wanting to learn about how the feature works. There are also plans for adding sections for helping maintainers of existing libraries to migrate to std futures.\n+\n+The book can also provide guides for building different kinds of software using `async/await` as well as provide guides for people wanting to help out with the documentation and migration effort, akin to [Tokio's doc-blitz][doc-blitz].\n+\n+\n+### Goals\n+\n+Echoing the theme of the sprint, the goals for the book will be to provide a good foundation to build upon.\n+\n+TODO: Define specific goals?\n+\n+# Library ecosystem\n+[library-ecosystem]: #library-ecosystem\n+\n+There are a lot of existing libraries which use Future 0.1 . As it stands there is no resource to refer to when a library maintainer would want to port their library to work with std futures. [The issue][lucio-issue] mentioned in the previous section goes into more detail, but the general theme is to provide material and help for library maintainers to migrate their libraries to std Futures.\n+\n+### Goals\n+\n+TODO: Define specific goals?","path":"rfcs/0001-tide-roadmap.md","position":null,"original_position":115,"commit_id":"73e7ef9e42fbb5100d44a1c25f145b8e783ef2d3","original_commit_id":"33272f1dbc2c6f7123852e49ebf543e44099c3e5","user":{"login":"LucioFranco","id":5758045,"node_id":"MDQ6VXNlcjU3NTgwNDU=","avatar_url":"https://avatars0.githubusercontent.com/u/5758045?v=4","gravatar_id":"","url":"https://api.github.com/users/LucioFranco","html_url":"https://github.com/LucioFranco","followers_url":"https://api.github.com/users/LucioFranco/followers","following_url":"https://api.github.com/users/LucioFranco/following{/other_user}","gists_url":"https://api.github.com/users/LucioFranco/gists{/gist_id}","starred_url":"https://api.github.com/users/LucioFranco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucioFranco/subscriptions","organizations_url":"https://api.github.com/users/LucioFranco/orgs","repos_url":"https://api.github.com/users/LucioFranco/repos","events_url":"https://api.github.com/users/LucioFranco/events{/privacy}","received_events_url":"https://api.github.com/users/LucioFranco/received_events","type":"User","site_admin":false},"body":"Yeah I think that is good, I also dont think we should look at migrating a whole library but portions of them. Enough to understand what it might take.","created_at":"2019-03-28T21:51:06Z","updated_at":"2019-03-28T21:51:06Z","html_url":"https://github.com/rustasync/team/pull/101#discussion_r270213193","pull_request_url":"https://api.github.com/repos/rustasync/team/pulls/101","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/rustasync/team/pulls/comments/270213193"},"html":{"href":"https://github.com/rustasync/team/pull/101#discussion_r270213193"},"pull_request":{"href":"https://api.github.com/repos/rustasync/team/pulls/101"}},"in_reply_to_id":270190701},"pull_request":{"url":"https://api.github.com/repos/rustasync/team/pulls/101","id":265080051,"node_id":"MDExOlB1bGxSZXF1ZXN0MjY1MDgwMDUx","html_url":"https://github.com/rustasync/team/pull/101","diff_url":"https://github.com/rustasync/team/pull/101.diff","patch_url":"https://github.com/rustasync/team/pull/101.patch","issue_url":"https://api.github.com/repos/rustasync/team/issues/101","number":101,"state":"open","locked":false,"title":"Add roadmap RFC and RFC template.","user":{"login":"bIgBV","id":5019938,"node_id":"MDQ6VXNlcjUwMTk5Mzg=","avatar_url":"https://avatars1.githubusercontent.com/u/5019938?v=4","gravatar_id":"","url":"https://api.github.com/users/bIgBV","html_url":"https://github.com/bIgBV","followers_url":"https://api.github.com/users/bIgBV/followers","following_url":"https://api.github.com/users/bIgBV/following{/other_user}","gists_url":"https://api.github.com/users/bIgBV/gists{/gist_id}","starred_url":"https://api.github.com/users/bIgBV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bIgBV/subscriptions","organizations_url":"https://api.github.com/users/bIgBV/orgs","repos_url":"https://api.github.com/users/bIgBV/repos","events_url":"https://api.github.com/users/bIgBV/events{/privacy}","received_events_url":"https://api.github.com/users/bIgBV/received_events","type":"User","site_admin":false},"body":"This PR adds a template for creating RFCs and a RFC for the upcoming 1st rust async ecosystem sprint.\r\n\r\n[Rendered](https://github.com/bIgBV/team/blob/tide-roadmap/rfcs/0001-tide-roadmap.md)\r\n\r\nI have filled in the tide parts of the roadmap, and will work with @yoshuawuyts to fill in the rest of the roadmap.","created_at":"2019-03-27T19:59:46Z","updated_at":"2019-03-28T21:51:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6957bbdbdb0dfde05cc850ad526fb878a85122bd","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/rustasync/team/pulls/101/commits","review_comments_url":"https://api.github.com/repos/rustasync/team/pulls/101/comments","review_comment_url":"https://api.github.com/repos/rustasync/team/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rustasync/team/issues/101/comments","statuses_url":"https://api.github.com/repos/rustasync/team/statuses/73e7ef9e42fbb5100d44a1c25f145b8e783ef2d3","head":{"label":"bIgBV:tide-roadmap","ref":"tide-roadmap","sha":"73e7ef9e42fbb5100d44a1c25f145b8e783ef2d3","user":{"login":"bIgBV","id":5019938,"node_id":"MDQ6VXNlcjUwMTk5Mzg=","avatar_url":"https://avatars1.githubusercontent.com/u/5019938?v=4","gravatar_id":"","url":"https://api.github.com/users/bIgBV","html_url":"https://github.com/bIgBV","followers_url":"https://api.github.com/users/bIgBV/followers","following_url":"https://api.github.com/users/bIgBV/following{/other_user}","gists_url":"https://api.github.com/users/bIgBV/gists{/gist_id}","starred_url":"https://api.github.com/users/bIgBV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bIgBV/subscriptions","organizations_url":"https://api.github.com/users/bIgBV/orgs","repos_url":"https://api.github.com/users/bIgBV/repos","events_url":"https://api.github.com/users/bIgBV/events{/privacy}","received_events_url":"https://api.github.com/users/bIgBV/received_events","type":"User","site_admin":false},"repo":{"id":178054630,"node_id":"MDEwOlJlcG9zaXRvcnkxNzgwNTQ2MzA=","name":"team","full_name":"bIgBV/team","private":false,"owner":{"login":"bIgBV","id":5019938,"node_id":"MDQ6VXNlcjUwMTk5Mzg=","avatar_url":"https://avatars1.githubusercontent.com/u/5019938?v=4","gravatar_id":"","url":"https://api.github.com/users/bIgBV","html_url":"https://github.com/bIgBV","followers_url":"https://api.github.com/users/bIgBV/followers","following_url":"https://api.github.com/users/bIgBV/following{/other_user}","gists_url":"https://api.github.com/users/bIgBV/gists{/gist_id}","starred_url":"https://api.github.com/users/bIgBV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bIgBV/subscriptions","organizations_url":"https://api.github.com/users/bIgBV/orgs","repos_url":"https://api.github.com/users/bIgBV/repos","events_url":"https://api.github.com/users/bIgBV/events{/privacy}","received_events_url":"https://api.github.com/users/bIgBV/received_events","type":"User","site_admin":false},"html_url":"https://github.com/bIgBV/team","description":"A point of coordination for all things Rust and Async ","fork":true,"url":"https://api.github.com/repos/bIgBV/team","forks_url":"https://api.github.com/repos/bIgBV/team/forks","keys_url":"https://api.github.com/repos/bIgBV/team/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bIgBV/team/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bIgBV/team/teams","hooks_url":"https://api.github.com/repos/bIgBV/team/hooks","issue_events_url":"https://api.github.com/repos/bIgBV/team/issues/events{/number}","events_url":"https://api.github.com/repos/bIgBV/team/events","assignees_url":"https://api.github.com/repos/bIgBV/team/assignees{/user}","branches_url":"https://api.github.com/repos/bIgBV/team/branches{/branch}","tags_url":"https://api.github.com/repos/bIgBV/team/tags","blobs_url":"https://api.github.com/repos/bIgBV/team/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bIgBV/team/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bIgBV/team/git/refs{/sha}","trees_url":"https://api.github.com/repos/bIgBV/team/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bIgBV/team/statuses/{sha}","languages_url":"https://api.github.com/repos/bIgBV/team/languages","stargazers_url":"https://api.github.com/repos/bIgBV/team/stargazers","contributors_url":"https://api.github.com/repos/bIgBV/team/contributors","subscribers_url":"https://api.github.com/repos/bIgBV/team/subscribers","subscription_url":"https://api.github.com/repos/bIgBV/team/subscription","commits_url":"https://api.github.com/repos/bIgBV/team/commits{/sha}","git_commits_url":"https://api.github.com/repos/bIgBV/team/git/commits{/sha}","comments_url":"https://api.github.com/repos/bIgBV/team/comments{/number}","issue_comment_url":"https://api.github.com/repos/bIgBV/team/issues/comments{/number}","contents_url":"https://api.github.com/repos/bIgBV/team/contents/{+path}","compare_url":"https://api.github.com/repos/bIgBV/team/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bIgBV/team/merges","archive_url":"https://api.github.com/repos/bIgBV/team/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bIgBV/team/downloads","issues_url":"https://api.github.com/repos/bIgBV/team/issues{/number}","pulls_url":"https://api.github.com/repos/bIgBV/team/pulls{/number}","milestones_url":"https://api.github.com/repos/bIgBV/team/milestones{/number}","notifications_url":"https://api.github.com/repos/bIgBV/team/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bIgBV/team/labels{/name}","releases_url":"https://api.github.com/repos/bIgBV/team/releases{/id}","deployments_url":"https://api.github.com/repos/bIgBV/team/deployments","created_at":"2019-03-27T18:41:29Z","updated_at":"2019-03-27T18:41:31Z","pushed_at":"2019-03-28T21:45:42Z","git_url":"git://github.com/bIgBV/team.git","ssh_url":"git@github.com:bIgBV/team.git","clone_url":"https://github.com/bIgBV/team.git","svn_url":"https://github.com/bIgBV/team","homepage":"https://rustasync.github.io/team/","size":3023,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rustasync:master","ref":"master","sha":"973ad40a8a6ee2e09629063cb067efb225a1cd39","user":{"login":"rustasync","id":42340655,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyMzQwNjU1","avatar_url":"https://avatars0.githubusercontent.com/u/42340655?v=4","gravatar_id":"","url":"https://api.github.com/users/rustasync","html_url":"https://github.com/rustasync","followers_url":"https://api.github.com/users/rustasync/followers","following_url":"https://api.github.com/users/rustasync/following{/other_user}","gists_url":"https://api.github.com/users/rustasync/gists{/gist_id}","starred_url":"https://api.github.com/users/rustasync/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustasync/subscriptions","organizations_url":"https://api.github.com/users/rustasync/orgs","repos_url":"https://api.github.com/users/rustasync/repos","events_url":"https://api.github.com/users/rustasync/events{/privacy}","received_events_url":"https://api.github.com/users/rustasync/received_events","type":"Organization","site_admin":false},"repo":{"id":130051909,"node_id":"MDEwOlJlcG9zaXRvcnkxMzAwNTE5MDk=","name":"team","full_name":"rustasync/team","private":false,"owner":{"login":"rustasync","id":42340655,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyMzQwNjU1","avatar_url":"https://avatars0.githubusercontent.com/u/42340655?v=4","gravatar_id":"","url":"https://api.github.com/users/rustasync","html_url":"https://github.com/rustasync","followers_url":"https://api.github.com/users/rustasync/followers","following_url":"https://api.github.com/users/rustasync/following{/other_user}","gists_url":"https://api.github.com/users/rustasync/gists{/gist_id}","starred_url":"https://api.github.com/users/rustasync/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustasync/subscriptions","organizations_url":"https://api.github.com/users/rustasync/orgs","repos_url":"https://api.github.com/users/rustasync/repos","events_url":"https://api.github.com/users/rustasync/events{/privacy}","received_events_url":"https://api.github.com/users/rustasync/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/rustasync/team","description":"A point of coordination for all things Rust and Async ","fork":false,"url":"https://api.github.com/repos/rustasync/team","forks_url":"https://api.github.com/repos/rustasync/team/forks","keys_url":"https://api.github.com/repos/rustasync/team/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rustasync/team/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rustasync/team/teams","hooks_url":"https://api.github.com/repos/rustasync/team/hooks","issue_events_url":"https://api.github.com/repos/rustasync/team/issues/events{/number}","events_url":"https://api.github.com/repos/rustasync/team/events","assignees_url":"https://api.github.com/repos/rustasync/team/assignees{/user}","branches_url":"https://api.github.com/repos/rustasync/team/branches{/branch}","tags_url":"https://api.github.com/repos/rustasync/team/tags","blobs_url":"https://api.github.com/repos/rustasync/team/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rustasync/team/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rustasync/team/git/refs{/sha}","trees_url":"https://api.github.com/repos/rustasync/team/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rustasync/team/statuses/{sha}","languages_url":"https://api.github.com/repos/rustasync/team/languages","stargazers_url":"https://api.github.com/repos/rustasync/team/stargazers","contributors_url":"https://api.github.com/repos/rustasync/team/contributors","subscribers_url":"https://api.github.com/repos/rustasync/team/subscribers","subscription_url":"https://api.github.com/repos/rustasync/team/subscription","commits_url":"https://api.github.com/repos/rustasync/team/commits{/sha}","git_commits_url":"https://api.github.com/repos/rustasync/team/git/commits{/sha}","comments_url":"https://api.github.com/repos/rustasync/team/comments{/number}","issue_comment_url":"https://api.github.com/repos/rustasync/team/issues/comments{/number}","contents_url":"https://api.github.com/repos/rustasync/team/contents/{+path}","compare_url":"https://api.github.com/repos/rustasync/team/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rustasync/team/merges","archive_url":"https://api.github.com/repos/rustasync/team/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rustasync/team/downloads","issues_url":"https://api.github.com/repos/rustasync/team/issues{/number}","pulls_url":"https://api.github.com/repos/rustasync/team/pulls{/number}","milestones_url":"https://api.github.com/repos/rustasync/team/milestones{/number}","notifications_url":"https://api.github.com/repos/rustasync/team/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rustasync/team/labels{/name}","releases_url":"https://api.github.com/repos/rustasync/team/releases{/id}","deployments_url":"https://api.github.com/repos/rustasync/team/deployments","created_at":"2018-04-18T11:27:25Z","updated_at":"2019-03-23T09:39:21Z","pushed_at":"2019-03-28T21:45:43Z","git_url":"git://github.com/rustasync/team.git","ssh_url":"git@github.com:rustasync/team.git","clone_url":"https://github.com/rustasync/team.git","svn_url":"https://github.com/rustasync/team","homepage":"https://rustasync.github.io/team/","size":3015,"stargazers_count":212,"watchers_count":212,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":26,"mirror_url":null,"archived":false,"open_issues_count":42,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":26,"open_issues":42,"watchers":212,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rustasync/team/pulls/101"},"html":{"href":"https://github.com/rustasync/team/pull/101"},"issue":{"href":"https://api.github.com/repos/rustasync/team/issues/101"},"comments":{"href":"https://api.github.com/repos/rustasync/team/issues/101/comments"},"review_comments":{"href":"https://api.github.com/repos/rustasync/team/pulls/101/comments"},"review_comment":{"href":"https://api.github.com/repos/rustasync/team/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rustasync/team/pulls/101/commits"},"statuses":{"href":"https://api.github.com/repos/rustasync/team/statuses/73e7ef9e42fbb5100d44a1c25f145b8e783ef2d3"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"LucioFranco"}}