8000 RFC: Expansion of code base to support more ports · Issue #1907 · micropython/micropython · GitHub
[go: up one dir, main page]

Skip to content
RFC: Expansion of code base to support more ports #1907
Closed
@dpgeorge

Description

@dpgeorge

MicroPython is growing larger and there needs to be a way to sustainably increase the size of the code base. The main increases in size come from new ports, especially when vendor HAL code is included. For example #1855 (port to rtl8195a) brings in 10k new lines of code, and #1890 (port to STM32Lxxx) brings in 12k lines. There are also plans to port uPy to MCUs from other vendors that we don't yet support.

We could just include everything in this repository, with a new top-level dir per port. But I think that is too large a burden. People interested in vendor X don't want/need the entire HAL of vendor Y.

I'd like to keep this main repository as lean as possible, so that it's not too large to clone (currently around 60mb), so that the commits are focused on development of the core, and so that other projects/ports/etc can include this repository as a cohesive and self-contained component.

Ideally this repo would contain just the core components, and all MCU ports (stmhal, cc3200, esp8266, pic16bit) would move to individual repositories, eg micropython-stmhal (or just micropython-st), and this core repo would become a git submodule of each port. But maybe that's too big a change to aim for right now.

But for new ports like rtl8195a (#1855), I think we should put them straight away into a dedicated repository, eg micropython-rtl. Then development can happen there at its own pace.

For the case of STM32Lxxx support, that's a bit different. Two options are:

  1. We could start a micropython-st repo now and put this code there, along with any new ST ports (eg F0xx, F2xx). stmhal/ may or may not eventaully migrate there.
  2. We include the STM32Lxxx HAL files as a git submodule within this repo.

This is an RFC issue so please make your opinions known, thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    rfcRequest for Comment

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0