New features since last release
* Add documentation updates for the `lightning_gpu` backend. (525)
* Add `SparseHamiltonian` support for Lightning-Qubit and Lightning-GPU. (526)
* Add `SparseHamiltonian` support for Lightning-Kokkos. (527)
* Integrate python/pybind layer of distributed Lightning-GPU into the Lightning monorepo with python unit tests. (518)
* Integrate the distributed C++ backend of Lightning-GPU into the Lightning monorepo. (514)
* Integrate Lightning-GPU into the Lightning monorepo. The new backend is named `lightning_gpu` and includes all single-GPU features. (499)
* Build Linux wheels for Lightning-GPU (CUDA-11). (517)
* Add `Dockerfile` in `docker` and `make docker` workflow in `Makefile`. The Docker images and documentation are available on [DockerHub](https://hub.docker.com/repository/docker/pennylaneai/pennylane). (#496)
* Add mid-circuit state preparation operation tests. (495)
Improvements
* Improve Python testing for Lightning-GPU (+MPI) by adding jobs in Actions files and adding Python tests to increase code coverage. (522)
* Add support for `pip install pennylane-lightning[kokkos]` for the OpenMP backend. (515)
* Update `setup.py` to allow for multi-package co-existence. The `PennyLane_Lightning` package now is the responsible for the core functionality, and will be depended upon by all other extensions. (504)
* Redesign Lightning-Kokkos `StateVectorKokkos` class to use Kokkos `RangePolicy` together with special functors in `applyMultiQubitOp` to apply 1- to 4-wire generic unitary gates. For more than 4 wires, the general implementation using Kokkos `TeamPolicy` is employed to yield the best all-around performance. (490)
* Redesign Lightning-Kokkos `Measurements` class to use Kokkos `RangePolicy` together with special functors to obtain the expectation value of 1- to 4-wire generic unitary gates. For more than 4 wires, the general implementation using Kokkos `TeamPolicy` is employed to yield the best all-around performance. (489)
* Add tests to increase Lightning-Kokkos coverage. (485)
* Add memory locality tag reporting and adjoint diff dispatch for `lightning.qubit` statevector classes. (492)
* Add support for dependent external packages to C++ core. (482)
* Add support for building multiple backend simulators. (497)
Breaking changes
* Add `tests_gpu.yml` workflow to test the Lightning-Kokkos backend with CUDA-12. (494)
* Implement `LM::GeneratorDoubleExcitation`, `LM::GeneratorDoubleExcitationMinus`, `LM::GeneratorDoubleExcitationPlus` kernels. Lightning-Qubit default kernels are now strictly from the `LM` implementation, which requires less memory and is faster for large state vectors. (512)
* Add workflows validating compatibility between PennyLane and Lightning's most recent stable releases and development (latest) versions. (507) (498)
* Introduce `timeout-minutes` in various workflows, mainly to avoid Windows builds hanging for several hours. (503)
* Cast integral-valued arrays to the device's complex type on entry in `_preprocess_state_vector` to ensure the state is correctly represented with floating-point numbers. (501)
* Update `DefaultQubit` to `DefaultQubitLegacy` on Lightning fallback. (500)
* Enums defined in `GateOperation.hpp` start at `1` (previously `0`). `::BEGIN` is introduced in a few places where it was assumed `0` accordingly. (485) `::BEGIN` was later reverted to `0`, keeping the rest of the changes, to fix a compatibility issue with [Catalyst](https://docs.pennylane.ai/projects/catalyst/en/stable/). (#521)
* Enable pre-commit hooks to format all Python files and linting of all Python source files. (485)
Bug fixes
* Re-add support for `pip install pennylane-lightning[gpu]`. (515)
* Switch most Lightning-Qubit default kernels to `LM`. Add `LM::multiQubitOp` tests, failing when targeting out-of-order wires clustered close to `num_qubits-1`. Fix the `LM::multiQubitOp` kernel implementation by introducing a generic `revWireParity` routine and replacing the `bitswap`-based implementation. Mimic the changes fixing the corresponding `multiQubitOp` and `expval` functors in Lightning-Kokkos. (511)
* Fix RTD builds by removing unsupported `system_packages` configuration option. (491)
Contributors
This release contains contributions from (in alphabetical order):
Ali Asadi, Amintor Dusko, Vincent Michaud-Rioux, Lee J. O'Riordan, Shuli Shu