Skip to main content

Quantum Version Control CLI

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

QVC โ€“ Quantum Version Control

A command-line version control system for quantum circuits.

QVC is a Python-based CLI tool that enables developers and researchers to track, manage, and compare versions of quantum circuits built using Qiskit. Inspired by traditional version control systems, QVC introduces staging, committing, and diffing capabilities specifically tailored for quantum computing workflows.

It allows users to stage circuits, commit versions, analyze circuit differences, and restore previous circuit states, making it useful for students, researchers, and quantum developers.

GitHub Release Stars Forks License Download Report Issue View Code

Python Qiskit NumPy CLI

Table of Contents

Features

  • โš› Quantum Circuit Versioning โ€“ Track and manage different versions of quantum circuits.
  • ๐Ÿ“ฆ Staging System โ€“ Add circuits to a staging area before committing.
  • ๐Ÿ“ Commit History โ€“ Save circuit versions with commit messages.
  • ๐Ÿ” Circuit Difference Analysis โ€“ Compare circuits using text, parameter, and state differences.
  • ๐Ÿ“Š Status Monitoring โ€“ View staged and committed circuits in summary or detailed form.
  • โ™ป Restore Functionality โ€“ Restore circuits to previously committed versions.
  • ๐Ÿ–ฅ Command Line Interface โ€“ Lightweight CLI workflow similar to traditional version control tools.

Installation / Setup

Prerequisites

  • Python 3.9+
  • pip package manager

Steps for Installation

# Clone repository
git clone https://github.com/Pratham-Vishwakarma/QVC.git
cd QVC

Install the CLI tool:

pip install .

After installation, you can run:

qvc help

Usage

General User

Initialize a QVC project:

qvc init

Add a circuit file:

qvc add circuit.py

Add all circuit files in the directory:

qvc add .

Commit staged circuits:

qvc commit "Initial circuit commit"

Check status:

qvc status stage summary

View circuit differences:

qvc diff text detailed

Restore previous version:

qvc restore

Developer

Install in editable mode:

pip install -e .

Run CLI directly for testing:

python -m qvc.cli

Modify modules inside the qvc directory to extend functionality.

Example workflow:

qvc init
qvc add bell.py
qvc commit "Initial circuit"
qvc diff text summary

Project Structure

qvc/
โ”‚
โ”œโ”€โ”€ qvc/
โ”‚   โ”œโ”€โ”€ cli.py
โ”‚   โ”œโ”€โ”€ add.py
โ”‚   โ”œโ”€โ”€ commit.py
โ”‚   โ”œโ”€โ”€ diff_text.py
โ”‚   โ”œโ”€โ”€ diff_param.py
โ”‚   โ”œโ”€โ”€ diff_state.py
โ”‚   โ”œโ”€โ”€ status.py
โ”‚   โ””โ”€โ”€ restore.py
โ”‚
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

Configuration

No additional configuration required.

Initialize QVC in your project directory:

qvc init

Contributing Guidelines

  1. Fork the repository.
  2. Create a feature branch.
git checkout -b feature-name
  1. Commit changes.
git commit -m "Add feature"
  1. Push to branch.
git push origin feature-name
  1. Open a Pull Request.

Roadmap

  • Add commit history viewer
  • Add circuit visualization
  • Add remote repository support
  • Improve circuit parsing using AST
  • Add merge functionality for circuits

Built With / Tech Stack

Component Purpose
Python Core CLI implementation
Qiskit Quantum circuit framework
NumPy Numerical operations
AST (Python) Static code analysis
pip Package management

Authors / Acknowledgements

  • Pratham Vishwakarma โ€“ Developer
  • Raj Parmar โ€“ Developer

Inspired by modern version control workflows and quantum development tools.

Special thanks to the Qiskit community for advancing quantum computing.

License

QVC is licensed under the MIT License.

Support / Contact

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

qvc-1.0.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

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

qvc-1.0.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file qvc-1.0.0.tar.gz.

File metadata

  • Download URL: qvc-1.0.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for qvc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 526f3cfc1715229f5cf7c07d2daf4878e997f1edbef069867ee50d8f19e681de
MD5 2bf2837c972ab8f1cd3f9bce93c22fb8
BLAKE2b-256 80f0a53c56b9358835d242e81d7b47b50ddd2e4ff501224ef6613bfaa5556451

See more details on using hashes here.

File details

Details for the file qvc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: qvc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for qvc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb5a1e9dee252c48384789ed7a653705079b3540c2d6c1f711e5bc2be148f767
MD5 78fc59aeff508ff9a89f662131a54a3a
BLAKE2b-256 05acadda356f8876702675f9f38e6105beb656f67274c9de38e8c3b8c0934f93

See more details on using hashes here.

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