Tips for understanding the architecture of SymPy - sympy/sympy GitHub Wiki

As the SymPy paper says,

software architecture is of central importance in any large software project

because it establishes predictable patterns of usage and development.

(Shaw & Garlan, 1996)

When contributing to SymPy, it is helpful to understand SymPy's architecture. Understanding SymPy's architecture enables contributors to understand the "predictable patterns of usage and development" in SymPy. When fixing bugs or adding new features, it is good to follow these predictable patterns to ensure the consistency of SymPy's design.

How can a new SymPy contributor gain a better understanding of SymPy's architecture, structural components, and design principles?

Here are a few resources that may be helpful: