Skip to content

A Python package build tool for handling monorepos

Notifications You must be signed in to change notification settings

chrisjsewell/pymonorepo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A Python package build tool for handling monorepos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages