Skip to main content

uvault

PyPI version CI codecov

Development and vaulting workflow for uv VCS dependencies.

Secure your Python projects against deleted or force-pushed upstream commits. uvault automatically vaults transient VCS references (like GitHub PRs) into your organization's own repositories, while allowing developers to instantly switch dependencies into local editable mode—fully integrated with pyproject.toml and uv.

Key Features

  1. Vaulting of Commits: Never lose code again! Upstream pull requests and branches can be force-pushed or deleted. uvault fetches the exact commits your project depends on and pushes them as immutable tags to your own organization's vault repository.
  2. Easy Local Development: Switch any VCS dependency to local "editable" mode in seconds. uvault develop clones the package locally and seamlessly configures uv to use your local copy so you can test changes and contribute back.
  3. Automatic GitHub Forking: When a dependency's repository doesn't exist in your vault organization, uvault automatically forks the upstream repository using the GitHub API (via the [github] extra), making the setup completely transparent.
  4. Status Monitoring: Instantly check the health of all your VCS dependencies. uvault status shows if PRs are merged or closed, flags new remote commits, and automatically detects orphaned commits caused by upstream force-pushes.

Documentation

The complete documentation is available in the docs/ folder:

Contributing

Contributions are welcome! If you're interested in improving uvault, please check out our Contributing Guide for details on setting up your development environment, running tests, and submitting PRs.

Credits & Acknowledgements

A huge thank you to Stéphane Bidoul for his continuous inspiration, and particularly for the work on pip-preserve-requirements which strongly influenced the vision and design of this project.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uvault-0.5.1.tar.gz (120.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uvault-0.5.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file uvault-0.5.1.tar.gz.

File metadata

  • Download URL: uvault-0.5.1.tar.gz
  • Upload date:
  • Size: 120.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uvault-0.5.1.tar.gz
Algorithm Hash digest
SHA256 387253e835f6b29d183216218985eb739e74671fb11bc16d097865af1be6f3f3
MD5 b3aef2b83df447ba00bea65ce2fa6feb
BLAKE2b-256 7b6019d89153b167fb459ec3791549a8596d308e32d43e1040f7a6a84394d358

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvault-0.5.1.tar.gz:

Publisher: release.yml on petrus-v/uvault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvault-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: uvault-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uvault-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 15339928566eaa78afb4bc604022c65bd635531a1cf881bb554edf004caca2ad
MD5 0e5024850967b8abe770a30f8fe01c02
BLAKE2b-256 b2fd24867477d058c06772de121dfbc6ad072e20c9e314ce833288e1a8e9f24d

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvault-0.5.1-py3-none-any.whl:

Publisher: release.yml on petrus-v/uvault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page