The purpose of this thread is to gather some institutional knowledge around ways to effectively dive into the Ember source.
Eventually information from this thread could be synthesized into a technical document or guide. A guide like this could be particularly useful resource for people wanting to contribute to the Ember project, but who need some initial primer on how to navigate the source.
Would like to use this thread as an opportunity to gather various tips and insights from people familiar with the organization of the Ember source.
Obviously reading the official API documentation is a great place to start. But am hoping to gather some kernels of insight that are not directly documented.
Possible topics:
- Rationale behind overall organization of project
- Various modules and dependencies: where they live, how they are organized, and where to get more information.
- Common patterns and how to interpret them: Mixins, Prototypes, Factories, Containers, etc
- Some specific code examples and a general legend(s) that calls out the parts of the code. Think grammar diagram and parts of speech. Maybe UML and rail road diagrams, etc.
- Overall build process: how code gets from PR to canary, beta, and release
- API design gotchas: examples of the kinds of things that can break the intended API design, patterns that exist in the code that enforce the API consistency.
- Links to other established resources related on the topic ember source organization.
- Historical legacy: the path from sprout core to ember js
- Major milestones in the evolution and history of Ember
- etc…
To kickoff I leave you with this question:
Imagine you are at a meetup, and a young, eager person comes up to you with some demonstrated knowledge of Javascript and expresses interest in helping the core team.
What are the most important 5 to 10 things they should understand about the source to effectively contribute to the project?
Any responses welcome. They can be fairly free form, just looking for insights.