PennyLane
  • Why PennyLane
    • Features
    • Demos
    • Compilation
    • Datasets
    • Performance
    • Devices
    • Teach
  • Getting Started
    • Install
    • Demos
    • Codebook
    • Challenges
    • Support
  • Documentation
    • How-to demos
    • Development guide
    • Catalyst
    • API
    • GitHub
  • Ecosystem
    • Blog
    • Glossary
    • Videos
    • FAQs
    • GitHub
    • Support
  • Install
    • Why PennyLane
    • Features
    • Demos
    • Compilation
    • Datasets
    • Performance
    • Devices
    • Teach
    • Getting Started
    • Install
    • Demos
    • Codebook
    • Challenges
    • Support
    • Documentation
    • How-to demos
    • Development guide
    • Catalyst
    • API
    • GitHub
    • Ecosystem
    • Blog
    • Glossary
    • Videos
    • FAQs
    • GitHub
    • Support
  • Install

Navigation

  • index
  • modules |
  • next |
  • previous |
  • PennyLane 0.41.1 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.kernels
  • qml.labs
  • qml.liealg
  • qml.logging
  • qml.math
  • qml.noise
  • qml.numpy
  • qml.ops.op_math
  • qml.pauli
  • qml.pulse
  • qml.qcut
  • qml.resource
  • qml.shadows
  • qml.transforms
  • qml.qaoa
  • qml.qchem
  • qml.qnn
  • qml.spin
  • qml.io

Internals

  • qml.capture
  • 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.kernels
  • qml.labs
  • qml.liealg
  • qml.logging
  • qml.math
  • qml.noise
  • qml.numpy
  • qml.ops.op_math
  • qml.pauli
  • qml.pulse
  • qml.qcut
  • qml.resource
  • qml.shadows
  • qml.transforms
  • qml.qaoa
  • qml.qchem
  • qml.qnn
  • qml.spin
  • qml.io

Internals

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

Downloads

development/guide
 
Download Python script
 
Download Notebook
 
View on GitHub

Related

Navigation

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

PennyLane

PennyLane is an open-source software framework for quantum machine learning, quantum chemistry, and quantum computing, with the ability to run on all hardware. Built with ❤️ by Xanadu.

Stay updated with our newsletter

For researchers

Research Features Demos Compilation Datasets Performance Learn Videos Documentation Teach

For learners

Learn Codebook Teach Videos Challenges Demos Compilation Glossary

For developers

Features Documentation API GitHub Datasets Demos Compilation Performance Devices Catalyst

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