{"action":"created","comment":{"url":"https://api.github.com/repos/nodejs/modules/pulls/comments/167171538","pull_request_review_id":95352061,"id":167171538,"diff_hunk":"@@ -0,0 +1,57 @@\n+# Goals\n+\n+1. Enable use of ESM in Node without requiring a flag\n+2. Have files be unable to collide between module systems\n+3. Define a path to write code that runs in both Node and the Browser without a preprocessing step\n+    1. Define what a preprocessing step is\n+    2. A subset of functionality that is compatible between environments, not requiring either environment implement all features of the other\n+4. Define a path to write libraries that support being used by both","path":"GOALS.md","position":8,"original_position":8,"commit_id":"ab2c16a387baffc0f1a509e638f05b59b1a69dd1","original_commit_id":"2f3047e040b276e32fde6be24c718c19740a75aa","user":{"login":"giltayar","id":403268,"avatar_url":"https://avatars3.githubusercontent.com/u/403268?v=4","gravatar_id":"","url":"https://api.github.com/users/giltayar","html_url":"https://github.com/giltayar","followers_url":"https://api.github.com/users/giltayar/followers","following_url":"https://api.github.com/users/giltayar/following{/other_user}","gists_url":"https://api.github.com/users/giltayar/gists{/gist_id}","starred_url":"https://api.github.com/users/giltayar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giltayar/subscriptions","organizations_url":"https://api.github.com/users/giltayar/orgs","repos_url":"https://api.github.com/users/giltayar/repos","events_url":"https://api.github.com/users/giltayar/events{/privacy}","received_events_url":"https://api.github.com/users/giltayar/received_events","type":"User","site_admin":false},"body":"@jdalton - and this coming from the person who wrote std/esm and enables people to do just that?  :-)\r\n\r\nI disagree - while there are packages that won't survive the move to dual-mode, I'm guessing due to the async loading nature of ESM, most of them will.\r\n\r\nIf we come to library developers and tell them they need to maintain two packages for the upcoming years, one for ESM and one for CJS, they will probably stick with CJS, and _not_ migrate to CJS. But if we tell them (well, most of them), that they can move to ESM while still enabling their CJS users to require their package. Yes, it will necessitate a (simple) transpilation step to support CJS, but it's technically straightforward, and the only path to enabling both new ESM users, and existing CJS ones.\r\n\r\nIf the migration to ESM is quick, then I would agree not to do dual-mode libraries, but given that it's probably going to take years, I believe we must. The alternative would be for library developers to stick with CJS, as they will have no incentive to move to ESM.","created_at":"2018-02-09T09:03:04Z","updated_at":"2018-02-09T09:03:04Z","html_url":"https://github.com/nodejs/modules/pull/23#discussion_r167171538","pull_request_url":"https://api.github.com/repos/nodejs/modules/pulls/23","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/nodejs/modules/pulls/comments/167171538"},"html":{"href":"https://github.com/nodejs/modules/pull/23#discussion_r167171538"},"pull_request":{"href":"https://api.github.com/repos/nodejs/modules/pulls/23"}},"in_reply_to_id":167087682},"pull_request":{"url":"https://api.github.com/repos/nodejs/modules/pulls/23","id":168053244,"html_url":"https://github.com/nodejs/modules/pull/23","diff_url":"https://github.com/nodejs/modules/pull/23.diff","patch_url":"https://github.com/nodejs/modules/pull/23.patch","issue_url":"https://api.github.com/repos/nodejs/modules/issues/23","number":23,"state":"open","locked":false,"title":"initial GOALS declaration","user":{"login":"bmeck","id":234659,"avatar_url":"https://avatars1.githubusercontent.com/u/234659?v=4","gravatar_id":"","url":"https://api.github.com/users/bmeck","html_url":"https://github.com/bmeck","followers_url":"https://api.github.com/users/bmeck/followers","following_url":"https://api.github.com/users/bmeck/following{/other_user}","gists_url":"https://api.github.com/users/bmeck/gists{/gist_id}","starred_url":"https://api.github.com/users/bmeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmeck/subscriptions","organizations_url":"https://api.github.com/users/bmeck/orgs","repos_url":"https://api.github.com/users/bmeck/repos","events_url":"https://api.github.com/users/bmeck/events{/privacy}","received_events_url":"https://api.github.com/users/bmeck/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-08T18:36:03Z","updated_at":"2018-02-09T09:03:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"29b4065cbba742c4f1ba47d05fbf16c88a68f8e0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/nodejs/modules/pulls/23/commits","review_comments_url":"https://api.github.com/repos/nodejs/modules/pulls/23/comments","review_comment_url":"https://api.github.com/repos/nodejs/modules/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nodejs/modules/issues/23/comments","statuses_url":"https://api.github.com/repos/nodejs/modules/statuses/ab2c16a387baffc0f1a509e638f05b59b1a69dd1","head":{"label":"bmeck:goals","ref":"goals","sha":"ab2c16a387baffc0f1a509e638f05b59b1a69dd1","user":{"login":"bmeck","id":234659,"avatar_url":"https://avatars1.githubusercontent.com/u/234659?v=4","gravatar_id":"","url":"https://api.github.com/users/bmeck","html_url":"https://github.com/bmeck","followers_url":"https://api.github.com/users/bmeck/followers","following_url":"https://api.github.com/users/bmeck/following{/other_user}","gists_url":"https://api.github.com/users/bmeck/gists{/gist_id}","starred_url":"https://api.github.com/users/bmeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmeck/subscriptions","organizations_url":"https://api.github.com/users/bmeck/orgs","repos_url":"https://api.github.com/users/bmeck/repos","events_url":"https://api.github.com/users/bmeck/events{/privacy}","received_events_url":"https://api.github.com/users/bmeck/received_events","type":"User","site_admin":false},"repo":{"id":120800101,"name":"modules","full_name":"bmeck/modules","owner":{"login":"bmeck","id":234659,"avatar_url":"https://avatars1.githubusercontent.com/u/234659?v=4","gravatar_id":"","url":"https://api.github.com/users/bmeck","html_url":"https://github.com/bmeck","followers_url":"https://api.github.com/users/bmeck/followers","following_url":"https://api.github.com/users/bmeck/following{/other_user}","gists_url":"https://api.github.com/users/bmeck/gists{/gist_id}","starred_url":"https://api.github.com/users/bmeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmeck/subscriptions","organizations_url":"https://api.github.com/users/bmeck/orgs","repos_url":"https://api.github.com/users/bmeck/repos","events_url":"https://api.github.com/users/bmeck/events{/privacy}","received_events_url":"https://api.github.com/users/bmeck/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bmeck/modules","description":"Node.js Foundation Modules Team","fork":true,"url":"https://api.github.com/repos/bmeck/modules","forks_url":"https://api.github.com/repos/bmeck/modules/forks","keys_url":"https://api.github.com/repos/bmeck/modules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bmeck/modules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bmeck/modules/teams","hooks_url":"https://api.github.com/repos/bmeck/modules/hooks","issue_events_url":"https://api.github.com/repos/bmeck/modules/issues/events{/number}","events_url":"https://api.github.com/repos/bmeck/modules/events","assignees_url":"https://api.github.com/repos/bmeck/modules/assignees{/user}","branches_url":"https://api.github.com/repos/bmeck/modules/branches{/branch}","tags_url":"https://api.github.com/repos/bmeck/modules/tags","blobs_url":"https://api.github.com/repos/bmeck/modules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bmeck/modules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bmeck/modules/git/refs{/sha}","trees_url":"https://api.github.com/repos/bmeck/modules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bmeck/modules/statuses/{sha}","languages_url":"https://api.github.com/repos/bmeck/modules/languages","stargazers_url":"https://api.github.com/repos/bmeck/modules/stargazers","contributors_url":"https://api.github.com/repos/bmeck/modules/contributors","subscribers_url":"https://api.github.com/repos/bmeck/modules/subscribers","subscription_url":"https://api.github.com/repos/bmeck/modules/subscription","commits_url":"https://api.github.com/repos/bmeck/modules/commits{/sha}","git_commits_url":"https://api.github.com/repos/bmeck/modules/git/commits{/sha}","comments_url":"https://api.github.com/repos/bmeck/modules/comments{/number}","issue_comment_url":"https://api.github.com/repos/bmeck/modules/issues/comments{/number}","contents_url":"https://api.github.com/repos/bmeck/modules/contents/{+path}","compare_url":"https://api.github.com/repos/bmeck/modules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bmeck/modules/merges","archive_url":"https://api.github.com/repos/bmeck/modules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bmeck/modules/downloads","issues_url":"https://api.github.com/repos/bmeck/modules/issues{/number}","pulls_url":"https://api.github.com/repos/bmeck/modules/pulls{/number}","milestones_url":"https://api.github.com/repos/bmeck/modules/milestones{/number}","notifications_url":"https://api.github.com/repos/bmeck/modules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bmeck/modules/labels{/name}","releases_url":"https://api.github.com/repos/bmeck/modules/releases{/id}","deployments_url":"https://api.github.com/repos/bmeck/modules/deployments","created_at":"2018-02-08T18:23:23Z","updated_at":"2018-02-08T15:55:07Z","pushed_at":"2018-02-08T23:38:27Z","git_url":"git://github.com/bmeck/modules.git","ssh_url":"git@github.com:bmeck/modules.git","clone_url":"https://github.com/bmeck/modules.git","svn_url":"https://github.com/bmeck/modules","homepage":null,"size":22,"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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"nodejs:master","ref":"master","sha":"3620ac3c740065dd619570da037af9e4f7d52f59","user":{"login":"nodejs","id":9950313,"avatar_url":"https://avatars3.githubusercontent.com/u/9950313?v=4","gravatar_id":"","url":"https://api.github.com/users/nodejs","html_url":"https://github.com/nodejs","followers_url":"https://api.github.com/users/nodejs/followers","following_url":"https://api.github.com/users/nodejs/following{/other_user}","gists_url":"https://api.github.com/users/nodejs/gists{/gist_id}","starred_url":"https://api.github.com/users/nodejs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nodejs/subscriptions","organizations_url":"https://api.github.com/users/nodejs/orgs","repos_url":"https://api.github.com/users/nodejs/repos","events_url":"https://api.github.com/users/nodejs/events{/privacy}","received_events_url":"https://api.github.com/users/nodejs/received_events","type":"Organization","site_admin":false},"repo":{"id":119901830,"name":"modules","full_name":"nodejs/modules","owner":{"login":"nodejs","id":9950313,"avatar_url":"https://avatars3.githubusercontent.com/u/9950313?v=4","gravatar_id":"","url":"https://api.github.com/users/nodejs","html_url":"https://github.com/nodejs","followers_url":"https://api.github.com/users/nodejs/followers","following_url":"https://api.github.com/users/nodejs/following{/other_user}","gists_url":"https://api.github.com/users/nodejs/gists{/gist_id}","starred_url":"https://api.github.com/users/nodejs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nodejs/subscriptions","organizations_url":"https://api.github.com/users/nodejs/orgs","repos_url":"https://api.github.com/users/nodejs/repos","events_url":"https://api.github.com/users/nodejs/events{/privacy}","received_events_url":"https://api.github.com/users/nodejs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/nodejs/modules","description":"Node.js Foundation Modules Team","fork":false,"url":"https://api.github.com/repos/nodejs/modules","forks_url":"https://api.github.com/repos/nodejs/modules/forks","keys_url":"https://api.github.com/repos/nodejs/modules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nodejs/modules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nodejs/modules/teams","hooks_url":"https://api.github.com/repos/nodejs/modules/hooks","issue_events_url":"https://api.github.com/repos/nodejs/modules/issues/events{/number}","events_url":"https://api.github.com/repos/nodejs/modules/events","assignees_url":"https://api.github.com/repos/nodejs/modules/assignees{/user}","branches_url":"https://api.github.com/repos/nodejs/modules/branches{/branch}","tags_url":"https://api.github.com/repos/nodejs/modules/tags","blobs_url":"https://api.github.com/repos/nodejs/modules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nodejs/modules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nodejs/modules/git/refs{/sha}","trees_url":"https://api.github.com/repos/nodejs/modules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nodejs/modules/statuses/{sha}","languages_url":"https://api.github.com/repos/nodejs/modules/languages","stargazers_url":"https://api.github.com/repos/nodejs/modules/stargazers","contributors_url":"https://api.github.com/repos/nodejs/modules/contributors","subscribers_url":"https://api.github.com/repos/nodejs/modules/subscribers","subscription_url":"https://api.github.com/repos/nodejs/modules/subscription","commits_url":"https://api.github.com/repos/nodejs/modules/commits{/sha}","git_commits_url":"https://api.github.com/repos/nodejs/modules/git/commits{/sha}","comments_url":"https://api.github.com/repos/nodejs/modules/comments{/number}","issue_comment_url":"https://api.github.com/repos/nodejs/modules/issues/comments{/number}","contents_url":"https://api.github.com/repos/nodejs/modules/contents/{+path}","compare_url":"https://api.github.com/repos/nodejs/modules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nodejs/modules/merges","archive_url":"https://api.github.com/repos/nodejs/modules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nodejs/modules/downloads","issues_url":"https://api.github.com/repos/nodejs/modules/issues{/number}","pulls_url":"https://api.github.com/repos/nodejs/modules/pulls{/number}","milestones_url":"https://api.github.com/repos/nodejs/modules/milestones{/number}","notifications_url":"https://api.github.com/repos/nodejs/modules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nodejs/modules/labels{/name}","releases_url":"https://api.github.com/repos/nodejs/modules/releases{/id}","deployments_url":"https://api.github.com/repos/nodejs/modules/deployments","created_at":"2018-02-01T22:33:47Z","updated_at":"2018-02-08T22:33:16Z","pushed_at":"2018-02-08T23:38:28Z","git_url":"git://github.com/nodejs/modules.git","ssh_url":"git@github.com:nodejs/modules.git","clone_url":"https://github.com/nodejs/modules.git","svn_url":"https://github.com/nodejs/modules","homepage":null,"size":12,"stargazers_count":34,"watchers_count":34,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6,"mirror_url":null,"archived":false,"open_issues_count":15,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":6,"open_issues":15,"watchers":34,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nodejs/modules/pulls/23"},"html":{"href":"https://github.com/nodejs/modules/pull/23"},"issue":{"href":"https://api.github.com/repos/nodejs/modules/issues/23"},"comments":{"href":"https://api.github.com/repos/nodejs/modules/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/nodejs/modules/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/nodejs/modules/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nodejs/modules/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/nodejs/modules/statuses/ab2c16a387baffc0f1a509e638f05b59b1a69dd1"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"giltayar"}}