{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/jsx/issues/65","repository_url":"https://api.github.com/repos/facebook/jsx","labels_url":"https://api.github.com/repos/facebook/jsx/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/facebook/jsx/issues/65/comments","events_url":"https://api.github.com/repos/facebook/jsx/issues/65/events","html_url":"https://github.com/facebook/jsx/issues/65","id":182628705,"number":65,"title":"JSX 2.0","user":{"login":"sebmarkbage","id":63648,"avatar_url":"https://avatars.githubusercontent.com/u/63648?v=3","gravatar_id":"","url":"https://api.github.com/users/sebmarkbage","html_url":"https://github.com/sebmarkbage","followers_url":"https://api.github.com/users/sebmarkbage/followers","following_url":"https://api.github.com/users/sebmarkbage/following{/other_user}","gists_url":"https://api.github.com/users/sebmarkbage/gists{/gist_id}","starred_url":"https://api.github.com/users/sebmarkbage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebmarkbage/subscriptions","organizations_url":"https://api.github.com/users/sebmarkbage/orgs","repos_url":"https://api.github.com/users/sebmarkbage/repos","events_url":"https://api.github.com/users/sebmarkbage/events{/privacy}","received_events_url":"https://api.github.com/users/sebmarkbage/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":89,"created_at":"2016-10-12T20:41:15Z","updated_at":"2016-10-22T08:06:03Z","closed_at":null,"body":"We have accumulated a number of these nice-to-haves breaking changes that would be nice to incorporate. However, at this point JSX is a hugely adopted syntax in all kinds of tooling. Making breaking changes will churn that ecosystem significantly. I think it is probably only worth doing as a batch when the accumulated amount of changes makes it worth while.\r\n\r\nLet's call it JSX 2.0.\r\n\r\nWhat should go into it?\r\n\r\nSince a completely incompatible version of JSX has landed in [Reason](https://facebook.github.io/reason/) it would be good to find a way to unify them.\r\n\r\nI'd say at least we'd want:\r\n\r\n- #4 - Drop HTML encoding in text and attributes.\r\n- #21 - Computed attribute names.\r\n- #23 - Object short hand notation.\r\n- #25, #51, #64 - Drop the need for curlies around attribute values if they're a single literal, or parenthesis.\r\n\r\nSome more controversial/problematic ones that could plausibly be fixed:\r\n- #39 - Implicit do expressions.\r\n- #35 - Drop implicit text content and curlies as children.\r\n- #66 - Custom attribute namespaces.\r\n\r\nWhat else?\r\n\r\ncc @jordwalke @SanderSpies"},"comment":{"url":"https://api.github.com/repos/facebook/jsx/issues/comments/255514109","html_url":"https://github.com/facebook/jsx/issues/65#issuecomment-255514109","issue_url":"https://api.github.com/repos/facebook/jsx/issues/65","id":255514109,"user":{"login":"arendjr","id":533294,"avatar_url":"https://avatars.githubusercontent.com/u/533294?v=3","gravatar_id":"","url":"https://api.github.com/users/arendjr","html_url":"https://github.com/arendjr","followers_url":"https://api.github.com/users/arendjr/followers","following_url":"https://api.github.com/users/arendjr/following{/other_user}","gists_url":"https://api.github.com/users/arendjr/gists{/gist_id}","starred_url":"https://api.github.com/users/arendjr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arendjr/subscriptions","organizations_url":"https://api.github.com/users/arendjr/orgs","repos_url":"https://api.github.com/users/arendjr/repos","events_url":"https://api.github.com/users/arendjr/events{/privacy}","received_events_url":"https://api.github.com/users/arendjr/received_events","type":"User","site_admin":false},"created_at":"2016-10-22T08:06:03Z","updated_at":"2016-10-22T08:06:03Z","body":"I think we should restrict any changes to JSX to ones that will not (or barely) impact existing codebases using JSX. This will also help people with large codebases (myself included) who'll have to migrate gradually to the next version, rather than convert everything overnight.\r\n\r\nI don't like the argument of \"you don't need to upgrade to JSX 2, you can keeping using the old version\", because it creates friction in the community. It'll be harder to share components among projects that use different JSX versions, it creates ambiguity in online documentation/tutorials regarding the version they're using, and if you have to work across projects that involve different incompatible versions, it creates mental overhead and increases the chance of mistakes. To put it differently: I like ES6 because all ES5 is valid ES6 code. I will like JSX 2 if all JSX 1 code is also valid JSX 2 code.\r\n\r\nSo looking at the discussion above, I see definitely some features that I like:\r\n\r\n- Support for comments\r\n- Support for fragments\r\n- Computed attribute names\r\n- Optional curlies\r\n- Object short-hand notation\r\n\r\nI'd say dropping HTML encoding is already tricky because it might break existing codebases, but its impact might be limited enough to be defensible. If it were combined with an ESLint rule (including a fixer, which should be doable) so that the issues can be spotted (and fixed) easily, I'd say it's not a deal breaker.\r\n\r\nBut I'd be strongly against #35 and also against the other proposals originally mentioned as controversial, for the reasons mentioned above."}}
{"actor":{"display_login":"arendjr"}}