Skip to content

matthewadams/uv-monorepo

Repository files navigation

uv Monorepo

NOTE: This is a work-in-progress!

This directory represents a uv-based python monorepo root. It uses 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, then curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows: you're on your own.

If desired, follow shell autocompletion steps.

Running

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published