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.0.tar.gz (120.2 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.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: uvault-0.5.0.tar.gz
  • Upload date:
  • Size: 120.2 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.0.tar.gz
Algorithm Hash digest
SHA256 e07ddc32e8f43bfd9bbf7bd0e1f7132e51e8713ca9e2d2c600f5ecf04ca00f02
MD5 f4f857359362cdbf220a208e9a9d2f9e
BLAKE2b-256 3f136414611a4d04653d84dca26a75c071761913244f24dd3006c133f6befc45

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvault-0.5.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: uvault-0.5.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bee1725c922032decf375738d9bf983ba913dc2c83dc1ff9023e5ad66403cb8a
MD5 ce944c95ec26934f6953f923c61edf64
BLAKE2b-256 a5aba1f4b379224f35bb3a56d5d2e34ec99162293e2161476a77ccd39a7c5505

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvault-0.5.0-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