PennyLane
    • Research
    • Features
    • Performance
    • Hardware & Simulators
    • Learn
    • Teach
    • Install PennyLane
    • Documentation
    • Catalyst Compilation Docs
    • Development Guide
    • How-to Demos
    • API
    • GitHub
    • Demos
    • Quantum Compilation
    • Quantum Datasets
    • Codebook
    • Coding Challenges
    • Videos
    • Hamiltonian Simulation
    • Fault-Tolerant Quantum Computing
    • Quantum Gradients
    • Blog
    • FAQs
    • Discussion Forum
    • Submit a Demo
    • Get Involved
  • Install
    • Research
    • Features
    • Performance
    • Hardware & Simulators
    • Learn
    • Teach
    • Install PennyLane
    • Documentation
    • Catalyst Compilation Docs
    • Development Guide
    • How-to Demos
    • API
    • GitHub
    • Demos
    • Quantum Compilation
    • Quantum Datasets
    • Codebook
    • Coding Challenges
    • Videos
    • Hamiltonian Simulation
    • Fault-Tolerant Quantum Computing
    • Quantum Gradients
    • Blog
    • FAQs
    • Discussion Forum
    • Submit a Demo
    • Get Involved
  • Install

Navigation

  • index
  • modules |
  • next |
  • previous |
  • PennyLane 0.42.2 documentation »
  • Development guide

Using PennyLane

  • What is PennyLane?
  • Quantum circuits
  • Gradients and training
  • Quantum operators
  • Measurements
  • Dynamic quantum circuits
  • Templates
  • Inspecting circuits
  • Compiling circuits
  • Compiling workflows
  • Importing workflows
  • Quantum Chemistry
  • Quantum Datasets
  • Logging

Release news

  • Release notes
  • Deprecations
  • Updated Operators
  • Program capture sharp bits

Development

  • Development guide
  • Building a plugin
  • Adding new operators

API

  • qml
  • qml.bose
  • qml.compiler
  • qml.data
  • qml.decomposition
  • qml.debugging
  • qml.drawer
  • qml.fermi
  • qml.fourier
  • qml.gradients
  • qml.io
  • qml.kernels
  • qml.labs
  • qml.liealg
  • qml.logging
  • qml.math
  • qml.noise
  • qml.numpy
  • qml.ops.op_math
  • qml.pauli
  • qml.pulse
  • qml.qaoa
  • qml.qchem
  • qml.qcut
  • qml.qnn
  • qml.resource
  • qml.shadows
  • qml.spin
  • qml.transforms

Internals

  • qml.capture
  • qml.concurrency
  • qml.devices
  • qml.ftqc
  • qml.measurements
  • qml.pytrees
  • qml.operation
  • qml.queuing
  • qml.tape
  • qml.wires
  • qml.workflow
  1. Docs
  2. Development guide

Development guide¶

The Development guide contains information regarding how to contribute to the PennyLane codebase.

The guides below are aimed towards developers and cover how to install PennyLane and its dependencies in development mode, run and add tests, write documentation, as well as general best practices and an architectural overview of PennyLane, plugins, and devices.

Installation

Installation and dependencies of the PennyLane source code using development mode.

Contribution guide

How to get involved in the PennyLane community and help improve PennyLane.

Software tests

Installing dependencies, running the PennyLane test suite and measuring coverage.

Documentation

Building and contributing modules and packages to the PennyLane documentation.

Submitting a pull request

Creating and submitting a pull request to the PennyLane repository.

Architecture Design Records

Proposing important PennyLane architectural decisions.

Logging guidelines

Defining how to develop using logging supports in PennyLane.

Architectural overview

Architectural overview of PennyLane, its plugins and devices.

Deprecations and Removals

Ensuring safety when introducing breaking changes to PennyLane.


development/guide
 
Download Python script
 
Download Notebook
 
View on GitHub
Previous
Next

Contents

Using PennyLane

  • What is PennyLane?
  • Quantum circuits
  • Gradients and training
  • Quantum operators
  • Measurements
  • Dynamic quantum circuits
  • Templates
  • Inspecting circuits
  • Compiling circuits
  • Compiling workflows
  • Importing workflows
  • Quantum Chemistry
  • Quantum Datasets
  • Logging

Release news

  • Release notes
  • Deprecations
  • Updated Operators
  • Program capture sharp bits

Development

  • Development guide
    • Installation and dependencies
    • Contributing to PennyLane
    • Software tests
    • Documentation
    • Submitting a pull request
    • Architecture Design Records
    • Architectural overview
    • Logging development guidelines
    • Deprecations and Removals
  • Building a plugin
  • Adding new operators

API

  • qml
  • qml.bose
  • qml.compiler
  • qml.data
  • qml.decomposition
  • qml.debugging
  • qml.drawer
  • qml.fermi
  • qml.fourier
  • qml.gradients
  • qml.io
  • qml.kernels
  • qml.labs
  • qml.liealg
  • qml.logging
  • qml.math
  • qml.noise
  • qml.numpy
  • qml.ops.op_math
  • qml.pauli
  • qml.pulse
  • qml.qaoa
  • qml.qchem
  • qml.qcut
  • qml.qnn
  • qml.resource
  • qml.shadows
  • qml.spin
  • qml.transforms

Internals

  • qml.capture
  • qml.concurrency
  • qml.devices
  • qml.ftqc
  • qml.measurements
  • qml.pytrees
  • qml.operation
  • qml.queuing
  • qml.tape
  • qml.wires
  • qml.workflow

Navigation

  • index
  • modules |
  • next |
  • previous |
  • PennyLane 0.42.2 documentation »
  • Development guide

PennyLane

PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Built by researchers, for research. Created with ❤️ by Xanadu.

Research

Research Performance Hardware & Simulators Demos Quantum Compilation Quantum Datasets

Education

Teach Learn Codebook Coding Challenges Videos Glossary

Software

Install PennyLane Features Documentation Catalyst Compilation Docs Development Guide API GitHub
Stay updated with our newsletter

Copyright © 2025, Xanadu Quantum Technologies

TensorFlow, the TensorFlow logo, and any related marks are trademarks of Google Inc.

Privacy Policy
Terms of Service
Cookie Policy
Code of Conduct