Python monorepo manager
Project description
Pymelos
Pymelos is a monorepo management tool for Python, inspired by Melos.
It is designed to manage multiple Python packages efficiently using modern tooling such as uv and Ruff, while providing fully automated semantic release workflows.
Key Features
- Fast Dependency Management: Built on top of uv for lightning-fast dependency resolution and installation.
- Workspace Management: Leverages uv workspaces to handle local package linking and dependencies automatically.
- Script Execution: Run scripts across multiple packages with filtering and parallel execution.
- Versioning & Publishing: Automated versioning, changelog generation, and publishing inspired by semantic-release and Conventional Commits.
- Change Detection: Smartly detect changed packages and their dependents to optimize CI/CD pipelines.
Why Pymelos?
- Zero-Config Linking: Leverages uv workspaces for instant, automatic package linking.
- Unified Scripts: Define tasks once in
pymelos.yamland run them everywhere. - Semantic Releases: Fully automated version bumping, changelogs, and publishing.
Documentation
Full documentation is available in the docs/ directory.
Installation
# Using uv (recommended)
uv tool install pymelos
# Using pip
pip install pymelos
Quick Start
# Initialize a new workspace
pymelos init --name my-workspace
# Install dependencies and link local packages
pymelos bootstrap
# List all packages in the workspace
pymelos list
# Run a script across all packages
pymelos run test
# Run on specific packages
pymelos run test --scope my-package
# Run on changed packages since main
pymelos run test --since main
# Execute any command
pymelos exec "pytest -v"
# Show changed packages
pymelos changed main
# Clean build artifacts
pymelos clean
# Semantic release (dry run)
pymelos release --dry-run
Projects using Pymelos
- Flash Framework
- Using Pymelos? Submit a PR to add your project here!
Contributing
See CONTRIBUTING.md for details on how to contribute to Pymelos.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymelos-0.1.5.tar.gz.
File metadata
- Download URL: pymelos-0.1.5.tar.gz
- Upload date:
- Size: 113.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94e58f1b8bcf3c2bdecc1764cbb4430b3c01aa666e8eb1492cd07c1dfa17f1d4
|
|
| MD5 |
0230482d406b266f62250d23778acea0
|
|
| BLAKE2b-256 |
213e961421619facccf066dcd760c190a3bff02e8fe687f8fa562e7bd6d84ccb
|
Provenance
The following attestation bundles were made for pymelos-0.1.5.tar.gz:
Publisher:
ci.yml on y3l1n4ung/pymelos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymelos-0.1.5.tar.gz -
Subject digest:
94e58f1b8bcf3c2bdecc1764cbb4430b3c01aa666e8eb1492cd07c1dfa17f1d4 - Sigstore transparency entry: 939703830
- Sigstore integration time:
-
Permalink:
y3l1n4ung/pymelos@a74820c7547699f8535e36585c9d78fecaa9da52 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/y3l1n4ung
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@a74820c7547699f8535e36585c9d78fecaa9da52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pymelos-0.1.5-py3-none-any.whl.
File metadata
- Download URL: pymelos-0.1.5-py3-none-any.whl
- Upload date:
- Size: 79.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5d5a337ffffa57e148d3ca8f5d87a1ee7807fcff9ae336768351e21a3c672ca
|
|
| MD5 |
34a28ac8db1b95e221c827127ef50601
|
|
| BLAKE2b-256 |
5a41e83a69f80fc9af18abea97e401127260ab98defcba21636968939b2ea444
|
Provenance
The following attestation bundles were made for pymelos-0.1.5-py3-none-any.whl:
Publisher:
ci.yml on y3l1n4ung/pymelos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pymelos-0.1.5-py3-none-any.whl -
Subject digest:
f5d5a337ffffa57e148d3ca8f5d87a1ee7807fcff9ae336768351e21a3c672ca - Sigstore transparency entry: 939703836
- Sigstore integration time:
-
Permalink:
y3l1n4ung/pymelos@a74820c7547699f8535e36585c9d78fecaa9da52 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/y3l1n4ung
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@a74820c7547699f8535e36585c9d78fecaa9da52 -
Trigger Event:
push
-
Statement type: