RustPython / RustPython/RustPython
[RFC] Architecture overview
@DimitrisJim is already working on this.
Since Jan 1, 2023.
- Dominant language
- Rust
- Stars
- 22.4k
- Forks
- 1.5k
- Avg merge
- 16h 33m
- Merged PRs (30d)
- 165
Description
Summary
Create an architectural overview of RustPython, to bridge the gap between occasional and core contributors. The document will be kept concise, only containing essential information.
Detailed Explanation
Motivation
For an open-source project in the range of 10k-200k lines of code, it is recommended to create an architecture document next to the readme and the contributing documents. The purpose of composing an overview of the high-level architecture of RustPython is to bridge the gap between occasional and core contributors. A core contributor has a "mental map" of the code, whereas a new contributor doesn't and simply perceives the code as "a sequence of logical chunks".
Example
An example of such an architecture document is that of the rust-analyzer (https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/architecture.md).
Structure
The document would be structured as follows:
- A short intro on RustPython: what are some of the aims and functionalities the project has.
- A high-level overview of RustPython: visualize the main components in a diagram and discuss it shortly.
- Define the entry points of the components listed in the high-level overview. For a new contributor, it can be hard to identify the main entry points of components.
- Finally, a detailed list of all 'notable' directories present in the repo. With this, a reader should have a better understanding of the contents of all the directories, and would thus hopefully have a better idea of where to start for their issue/bug/feature.
What is your opinion on this? Would you like to see this Architecture.md file added to this open-source project?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.