Releases: ProjectQ-Framework/ProjectQ
Releases · ProjectQ-Framework/ProjectQ
ProjectQ v0.8.0
Added
- New backend for the Azure Quantum platform
Changed
- Support for Python 3.6 and earlier is now deprecated
- Moved package metadata into pyproject.toml
Fixed
- Fixed installation on Apple Silicon with older Python versions (< 3.9)
Repository
- Update
docker/setup-qemu-action
GitHub action to v2 - Fixed CentOS 7 configuration issue
- Added two new pre-commit hooks:
blacken-docs
andpyupgrade
ProjectQ v0.7.3
Fixed
- Fixed IonQ dynamic backends fetch, which relied on an incorrect path.
ProjectQ v0.7.2
Changed
- Added IonQ dynamic backends fetch.
Repository
- Fix issues with building on CentOS 7 & 8
- Update
pre-commit/pre-commit-hooks
to v4.2.0 - Update
Lucas-C/pre-commit-hooks
hook to v1.1.13 - Update
flake8
hook to v4.0.1 - Update
pylint
hook to v3.0.0a4 - Update
black
hook to v22.3.0 - Update
check-manifest
to v0.48
ProjectQ v0.7.1
Added
- Added environment variable to avoid -march=native when building ProjectQ
- Added environment variable to force build failure if extensions do not compile on CI
Changed
Deprecated
Fixed
- Fix compiler flags cleanup function for use on CI
- Fix workflow YAML to allow execution of GitHub Actions locally using
act
- GitHub action using deprecated and vulnerable
pre-commit
version - Fixed issue with
gen_reqfile
command if--include-extras
is not provided
Removed
Repository
- Add configuration for CIBuildWheel in
pyproject.toml
- Remove use of deprecated images
windows-2016
in GitHub workflows - Re-add build of Python binary wheels in release publishing GitHub workflow
- Update
dangoslen/changelog-enforcer
GitHub action to v3 - Update
thomaseizinger/keep-a-changelog-new-release
GiHub action to v1.3.0 - Update
thomaseizinger/create-pull-request
GiHub action to v1.2.2 - Update pre-commit hook
pre-commit/pre-commit-hooks
to v4.1.0 - Update pre-commit hook
PyCQA/isort
to v5.10.1 - Update pre-commit hook
psf/black
to v21.12b0 - Update pre-commit hook
PyCQA/flake8
to v4.0.1 - Update pre-commit hook
mgedmin/check-manifest
to v0.47
ProjectQ v0.7.0
Added
- UnitarySimulator backend for computing the unitary transformation corresponding to a quantum circuit
Changed
- Moved some exceptions classes into their own files to avoid code duplication
Deprecated
Fixed
- Prevent infinite recursion errors when too many compiler engines are added to the MainEngine
- Error in testing the decomposition for the phase estimation gate
- Fixed small issue with matplotlib drawing backend
- Make all docstrings PEP257 compliant
Removed
- Some compatibility code for Python 2.x
Repository
- Added
isort
to the list of pre-commit hooks - Added some more flake8 plugins to the list used by
pre-commit
:- flake8-breakpoint
- flake8-comprehensions
- flake8-docstrings
- flake8-eradicate
- flake8-mutable
ProjectQ v0.6.1
Repository
- Fix GitHub workflow for publishing a new release
ProjectQ v0.6.0
Added
- New backend for the IonQ platform
- New backend for the AWS Braket platform
- New gates for quantum math operations on quantum registers
- Support for state-dependent control qubits (ie. negatively or positively controlled gates)
Changed
- Name of the single parameter of the
LocalOptimizer
has been changed fromm
tocache_size
in order to better represent its actual use.
Deprecated
- Compatibility with Python <= 3.5
LocalOptimizer(m=10)
should be changed intoLocalOptimizer(cache_size=10)
. Using of the old name is still possible, but is deprecated and will be removed in a future version of ProjectQ.
Fixed
- Installation on Mac OS Big Sur
- IBM Backend issues with new API
Removed
- Compatibility with Python 2.7
- Support for multi-qubit measurement gates has been dropped; use
All(Measure) | qureg
instead
Repository
-
Use
setuptools-scm
for versioning -
Added
.editorconfig
file -
Added
pyproject.toml
andsetup.cfg
-
Added CHANGELOG.md
-
Added support for GitHub Actions
- Build and testing on various plaforms and compilers
- Automatic draft of new release
- Automatic publication of new release once ready
- Automatic upload of releases artifacts to PyPi and GitHub
-
Added pre-commit configuration file
-
Updated cibuildwheels action to v1.11.1
-
Updated thomaseizinger/create-pull-request action to v1.1.0
ProjectQ v0.5.1
Mostly bug fixing release.
New Features
- Add histogram plot function for measurement results (thanks @AriJordan )
- New backend for AQT (thanks @dbretaud )
Fixes
- Fix Qiskit backend (thanks @dbretaud )
- Fix bug with matplotlib drawer (thanks @AriJordan )
ProjectQ v0.5.0
New Features
- New PhaseEstimation and AmplitudeAmplification gates (thanks @fernandodelaiglesia)
- New Rxx, Ryy and Rzz gates (thanks @dwierichs)
- New decomposition rules and compiler setup for trapped ion quantum based computers (thanks @dbretaud)
- Added basic circuit drawer compiler engine based on Matplotlib CircuitDrawerMatplotlib (thanks @Bombenchris)
Improvements
- Significantly improved C++ simulator performances (thanks @melven)
- Allow user modification of the qubit drawing order for the
CircuitDrawer
compiler engine (thanks @alexandrupaler) - Update to the installation script. The installation now automatically defaults to the pure Python implementation if compilation of the C++ simulator (or other C++ modules) should fail (#337)
- Automatic generation of the documentation (#339)
Fixes
- Fixed connection issues between IBM backend and the IBM Quantum Experience API (thanks @alexandrupaler)
Breaking Changes
The ProjectQ v0.5.x release branch is the last one that is guaranteed to work with Python 2.7.x.
Future releases might introduce changes that will require Python 3.5 (Python 3.4 and earlier have already been declared deprecated at the time of this writing)
ProjectQ v0.4.2
New Features
- New example of a Variational Quantum Eigensolver
- New FlipBits and MatrixGate (thanks @cgogolin)
Improvements
- Equality testing is now a lot faster because matrix comparisons are only done if one of the two gates is a
MatrixGate
(@ thanks @cgogolin) - Update to newer RevKit version (thanks @msoeken)
- IBM backend exposes now two new variables:
num_retries
andinterval=1
Fixes
- Fix for "502 Server Error" which sometimes appeared when running on IBM's QE devices
- Bugfix in
restrictedgateset
which allowed the controlled version of an allowed single qubit gate, which should not be the case (#301)
Breaking Changes
BasicGate
should not be used anymore to create individual gates defined by a custom matrix. Equality testing won't check gate matrices forBasicGate
anymore. This gives a large speed improvement for compilation. Instead use the newMatrixGate
class or better define a new gate class derived fromBasicGate
if your desired gate does not yet exist in ProjectQ.