Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matthewadams/uv-monorepo


https://github.com/matthewadams/uv-monorepo

Last synced: 6 days ago
JSON representation

Awesome Lists containing this project

README

        

# `uv` Monorepo

NOTE: This is a work-in-progress!

This directory represents a `uv`-based python monorepo root. It uses [`uv`](https://docs.astral.sh/uv/) as its
python package & runtime manager. It is intended to be a working example of a monorepo the best practices of which are
requested to be documented via https://github.com/astral-sh/docs/issues/137.

## Overview

### Projects

1. `public_sample_lib`: a `uv` library project intended to be published publicly.
2. `private_sample_lib`: a `uv` library project never to be published.
3. `sample_app`: a `uv` application project that consumes `private_sample_app` directly, and, therefore,
`public_sample_app` transitively.

## Prerequisites

* macOS: `brew install uv`
* Linux: verify [source](https://astral.sh/uv/install.sh), then `curl -LsSf https://astral.sh/uv/install.sh | sh`
* Windows: you're on your own.

If desired,
follow [shell autocompletion steps](https://docs.astral.sh/uv/getting-started/installation/#shell-autocompletion).

## Running

```shell
cd sample_app
uv run sample_app.py # or ./sample_app.py, because it's executable with a shebang
```

## TODO: Building

Goals:

* Lint so that incorrectly formatted code fails the build.

## TODO: Packaging

Goals:

* Package `sample_app` so that it depends on `public_sample_lib` normally, but effectively embeds `private_sample_lib`
within the `sample_app` packaged artifact.
* Obfuscate the packaged artifact so that it's difficult to reverse engineer `sample_app` and the private libraries that
it depends on.
* Provide `sample_app` as WASM and native executables.