RustPython / RustPython/RustPython

[RFC] Architecture overview

Open
#2,524 0 comments 7 reactions 1 assignee View on GitHub

@DimitrisJim is already working on this.

Since Jan 1, 2023.

RFC
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.