{"action":"opened","issue":{"url":"https://api.github.com/repos/facebook/react/issues/6335","repository_url":"https://api.github.com/repos/facebook/react","labels_url":"https://api.github.com/repos/facebook/react/issues/6335/labels{/name}","comments_url":"https://api.github.com/repos/facebook/react/issues/6335/comments","events_url":"https://api.github.com/repos/facebook/react/issues/6335/events","html_url":"https://github.com/facebook/react/issues/6335","id":143353785,"number":6335,"title":"Write a contribution guide documenting the design decisions","user":{"login":"gaearon","id":810438,"avatar_url":"https://avatars.githubusercontent.com/u/810438?v=3","gravatar_id":"","url":"https://api.github.com/users/gaearon","html_url":"https://github.com/gaearon","followers_url":"https://api.github.com/users/gaearon/followers","following_url":"https://api.github.com/users/gaearon/following{/other_user}","gists_url":"https://api.github.com/users/gaearon/gists{/gist_id}","starred_url":"https://api.github.com/users/gaearon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaearon/subscriptions","organizations_url":"https://api.github.com/users/gaearon/orgs","repos_url":"https://api.github.com/users/gaearon/repos","events_url":"https://api.github.com/users/gaearon/events{/privacy}","received_events_url":"https://api.github.com/users/gaearon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/react/labels/Component:%20Documentation%20&%20Website","name":"Component: Documentation & Website","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-24T20:41:35Z","updated_at":"2016-03-24T20:41:35Z","closed_at":null,"body":"Historically we haven’t been very good at explaining how to contribute to React.\r\nWe have a [small guide](https://github.com/facebook/react/blob/master/CONTRIBUTING.md) but it doesn’t offer crucial information about:\r\n\r\n* Our build process and `providesModule`.\r\n* Design constraints that guide what gets in and what doesn’t.\r\n* Conventions like `invariant`, `warning`, `__DEV__`, and infra around them.\r\n* How we introduce breaking changes and deprecations.\r\n* How syncing with React Native and Facebook website affects contributions.\r\n* Basic directory organization, what can or can’t go in either directory.\r\n* Document the unfortunate decisions in the codebase that we want to get away from.\r\n* What is being actively worked on, and why.\r\n* An internal glossary:\r\n  - Elements\r\n  - Public instances\r\n  - Internal instances\r\n  - Composite components\r\n  - Native components\r\n  - Reconciliation\r\n  - Transactions\r\n  - Update queue\r\n  - Synthetic events\r\n\r\nWhat do you think? I’m especially interested in hearing from people who considered contributing to React but were turned away by the internal complexity."}}