Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matthewadams/uv-monorepo
https://github.com/matthewadams/uv-monorepo
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/matthewadams/uv-monorepo
- Owner: matthewadams
- License: mit
- Created: 2025-01-25T16:40:53.000Z (14 days ago)
- Default Branch: main
- Last Pushed: 2025-01-25T16:41:24.000Z (14 days ago)
- Last Synced: 2025-01-27T17:15:41.619Z (12 days ago)
- Language: Python
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.