Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.32 KB

README.md

File metadata and controls

42 lines (28 loc) · 1.32 KB

pymonorepo

NOTE: This package is not intended for production use (at least yet). It is a protype to test out how a monorepo tool might look in Python.

A Python package build tool for handling monorepos.

A monorepo is a software-development strategy in which the code for a number of projects is stored in the same repository

Moreso than simply housing a number of "unrelated" projects, I would suggest that a monorepo's intention is to build relations between these packages, for example, having shared dependecies and/or depending on one another.

Outside of Python, examples of monorepo tools are:

At present, to my knowledge, there is no such "defacto" tool in the Python ecosytem (see e.g. pypa/hatch#233)

Usage

You can see how this looks in this repos pyproject.toml:

The build backend is set as:

[build-system]
requires = ["packaging>=22", "tomli; python_version<'3.11'"]
build-backend = "pymonorepo.backend"

and workspaces are added with:

[tool.monorepo.workspace]
packages = ["packages/*"]

When build, e.g. with pip install -e ., all workspaces are "combined" to build a single wheel or sdist