Skip to content

Latest commit

 

History

History
192 lines (165 loc) · 8.67 KB

File metadata and controls

192 lines (165 loc) · 8.67 KB

Changelog

All notable changes to the Quantum Computing 101 project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Fixed

  • Qiskit 2.x Compatibility: Updated all 46 example files for full Qiskit 2.x compatibility
    • Fixed DensityMatrix operator usage: Replaced rho @ rho with rho.data @ rho.data for NumPy array access
    • Fixed add_register() calls: Replaced with proper measure_all() or circuit composition patterns
    • Removed duplicate imports: Cleaned up 7 files with redundant ClassicalRegister imports
  • Headless Environment Support: Added matplotlib non-interactive backend configuration
    • Added matplotlib.use('Agg') before pyplot imports in all 46 examples
    • Ensures proper execution in Docker containers and remote/headless environments
    • Replaced blocking plt.show() calls with plt.close() for proper resource cleanup
    • All visualization outputs now saved to files automatically
  • Binary String Parsing: Fixed quantum measurement result parsing in random number generation examples
    • Removed spaces from binary strings returned by measure_all()
    • Ensures proper integer conversion from quantum measurement results

[2.0.0] - 2025-09-10

Added

  • Docker GPU Acceleration v2.0: Latest GPU support with cutting-edge hardware compatibility
    • NVIDIA CUDA 12.6: Updated from CUDA 12.2 for latest H100/A100 support
    • AMD ROCm 6.x: Updated from ROCm 5.x with AMD MI300A/MI300X series support
    • Qiskit-Aer GPU Optimization: Proper GPU backend installation for quantum acceleration
      • NVIDIA: qiskit-aer-gpu package for CUDA acceleration
      • AMD: Custom Qiskit-Aer build from source with ROCm gfx942 (MI300) support
    • Package Conflict Resolution: Fixed qiskit-aer CPU/GPU variant conflicts
    • Performance Optimization: Enhanced GPU detection and graceful fallbacks
  • Docker Containerization: Complete multi-GPU containerization support
    • CPU-only lightweight container (1.2GB) for learning and basic examples
    • NVIDIA CUDA GPU container (3.5GB) with 5-8x acceleration for large simulations
    • AMD ROCm GPU container (3.2GB) with MI300 series support
    • Multi-stage builds for optimal image sizes
    • Smart build scripts with automatic GPU hardware detection
    • Comprehensive run scripts with Jupyter Lab support
    • Docker Compose orchestration for multi-service deployments
  • Enhanced Requirements Management: Modular requirements system for better dependency management
    • Separated core, full, and GPU-specific requirements
    • Updated to latest package versions (Qiskit 1.0+, PyTorch 2.2+, Python 3.11+)
    • Added missing dependencies (yfinance, cryptography, boto3, qiskit-algorithms)
    • Optimized Docker layer caching with modular requirements structure
  • Updated Python Support: Minimum Python version increased to 3.11, with 3.12+ support
  • Performance Improvements: Updated scientific computing stack for better performance
  • Cloud Integration: Enhanced AWS Braket and IBM Quantum cloud support

[1.0.0] - 2025-09-04

Added

  • Complete curriculum implementation: All 45 examples across 8 modules
  • Module 1 - Fundamentals: 5 examples covering basic quantum concepts (1,703 LOC)
    • Classical vs quantum bits comparison
    • Quantum gates and circuits
    • Superposition and measurement
    • Quantum entanglement demonstrations
    • First quantum algorithm (quantum random number generator)
  • Module 2 - Mathematics: 5 examples covering mathematical foundations (2,361 LOC)
    • Complex numbers and quantum amplitudes
    • Linear algebra for quantum computing
    • State vectors and representations
    • Inner products and orthogonality
    • Tensor products and multi-qubit systems
  • Module 3 - Programming: 5 examples covering advanced Qiskit programming (3,246 LOC)
    • Advanced Qiskit programming techniques
    • Multi-framework comparisons (Qiskit, Cirq, PennyLane)
    • Quantum circuit patterns and optimization
    • Quantum algorithm implementation best practices
    • Quantum program debugging and testing
  • Module 4 - Algorithms: 5 examples covering core quantum algorithms (1,843 LOC)
    • Deutsch-Jozsa algorithm
    • Grover's search algorithm
    • Quantum Fourier Transform
    • Shor's algorithm demonstration
    • Variational Quantum Eigensolver (VQE)
  • Module 5 - Error Correction: 5 examples covering noise and error handling (2,111 LOC)
    • Quantum noise models
    • Steane code implementation
    • Error mitigation techniques
    • Fault-tolerant protocols
    • Logical operations in fault-tolerant systems
  • Module 6 - Machine Learning: 5 examples covering quantum ML (3,157 LOC)
    • Quantum feature maps
    • Variational quantum classifier
    • Quantum neural networks
    • Quantum Principal Component Analysis
    • Quantum generative models
  • Module 7 - Hardware: 5 examples covering real quantum hardware (4,394 LOC)
    • IBM Quantum platform access
    • AWS Braket integration
    • Hardware-optimized circuits
    • Real hardware error analysis
    • Hybrid cloud workflows
  • Module 8 - Applications: 5 examples covering industry applications (5,346 LOC)
    • Quantum chemistry and drug discovery
    • Financial portfolio optimization
    • Supply chain logistics optimization
    • Cryptography and cybersecurity
    • Materials science and manufacturing

Features

  • Rich visualizations: Matplotlib plots, Bloch spheres, circuit diagrams
  • CLI interfaces: Comprehensive argparse integration for all examples
  • Educational progression: Systematic skill building from basics to advanced
  • Error handling: Robust exception handling and informative error messages
  • Documentation: Extensive docstrings, comments, and README files
  • Multi-platform support: Linux, macOS, Windows compatibility
  • Cloud integration: IBM Quantum and AWS Braket examples
  • Production quality: Professional code standards throughout

Technical

  • Total codebase: 24,547+ lines of production-grade Python code
  • Dependencies: Qiskit 1.0+, NumPy, SciPy, Matplotlib, and more
  • Python compatibility: Python 3.11+ (updated from 3.8+)
  • Framework support: Primary Qiskit with extension points for other frameworks
  • Testing: Comprehensive validation of all examples
  • Container Support: Docker-first approach with multi-GPU support

[0.9.0] - 2025-08-15

Added

  • Initial project structure and planning
  • Module framework and learning objectives
  • Requirements specification and dependency analysis
  • Theoretical curriculum modules (Modules 1-8)

Documentation

  • Comprehensive module documentation
  • Learning objectives and outcomes
  • Reference guide for quantum computing concepts
  • Project requirements document (PRD)

Project Development History

Planning Phase (2025-07-01 to 2025-08-14)

  • Curriculum design and scope definition
  • Learning objective specification
  • Technical architecture planning
  • Dependency and framework evaluation

Implementation Phase (2025-08-15 to 2025-09-04)

  • Systematic implementation of all 45 examples
  • Quality assurance and testing
  • Documentation completion
  • Code review and optimization

Docker Containerization Phase (2025-09-10)

  • Complete Docker containerization with multi-GPU support
  • Requirements system refactoring and dependency updates
  • Performance optimizations and Python 3.11+ migration
  • Enhanced cloud platform integration

Open Source Preparation (2025-09-04)

  • Community guidelines and contribution framework
  • Security policy and vulnerability reporting
  • GitHub workflows and automation
  • Issue and pull request templates
  • Final quality assessment and documentation

Types of Changes

  • Added for new features
  • Changed for changes in existing functionality
  • Deprecated for soon-to-be removed features
  • Removed for now removed features
  • Fixed for any bug fixes
  • Security for vulnerability fixes

Versioning Strategy

  • Major version (x.0.0): Significant curriculum changes, breaking API changes
  • Minor version (1.x.0): New modules, examples, or substantial feature additions
  • Patch version (1.1.x): Bug fixes, documentation improvements, minor enhancements

Release Process

  1. Development: Feature development on feature branches
  2. Testing: Comprehensive testing across all platforms and Python versions
  3. Documentation: Update documentation and changelog
  4. Review: Code review and quality assurance
  5. Release: Tag version and create GitHub release
  6. Announcement: Communicate release to community

For more details about any release, see the GitHub Releases page.