Qiskit Transpiler Service release notes
0.15.0 (2025-12-02)
Upgrade notes
- Dropped support for Python 3.9, which has reached end-of-life. The minimum supported Python version is now 3.10. Users running Python 3.9 must upgrade to Python 3.10 or 3.11 to use this version of
qiskit-ibm-transpilerand later. (227) - Update old compatible syntaxis with 3.9 like List[Union[DAGOpNode, DAGDepNode]]: , to modern one: list[DAGOpNode | DAGDepNode]. (230)
- The
qiskit-ibm-ai-local-transpilerpackage is now installed by default as a required dependency. Previously, this was an optional dependency that users needed to install explicitly usingpip install qiskit-ibm-transpiler[ai-local-mode]. The[ai-local-mode]extra is maintained for backward compatibility but is no longer necessary. This change improves the default user experience by enabling AI transpiler passes to run locally without additional installation steps. (231)
New features
- Added support for Python 3.12 and 3.13. The library now supports Python versions 3.10 through 3.13. (228)
Bug fixes
- Fixed GitHub Actions CD workflow error by replacing the invalid
python-versionparameter in theastral-sh/setup-uv@v3action with a separate step usinguv python install 3.11to properly install Python 3.11. (226)
Other notes
- Removed the obsolete
requirements-dev.txtfile that was replaced by dependency groups inpyproject.tomlin version 0.14.5. (225)
0.14.5 (2025-11-18)
Upgrade notes
-
Migrated project environment management from pip (requirements-dev.txt) and setup.py to the uv tool. In addition, the files ruff.toml and pytest.ini files have been merged on the pyproject.toml file.
What changed - Introduced uv for dependency resolution and virtual environment management. - Replaced requirements-dev.txt with dependency groups defined in pyproject.toml. - Updated the development workflow (.github/actions and .github/workflows) and contribution guidelines to use uv sync and uv run. - Added documentation on using extras (e.g., –extra ai-local-mode), group selections (e.g., uv sync –group dev|docs) and Python version selection.
Impact to users - No functional changes to the library itself. - Contributors now manage environments using uv instead of pip. (210)
Bug fixes
- Fix error ‘DAGCircuitError: ‘bit mapping invalid:’ error (213)
- Fix docs upload & PyPI build workflows and cache the uv environment (217)
- Re-enable functions e2e tests (220)
- Workaround for physical circuits failing test (219)
0.14.4 (2025-10-29)
Bug fixes
- Revert: Restrict ibm-runtime till serverless fix the problem (207)
0.14.3 (2025-10-07)
Bug fixes
- Restrict ibm-runtime till serverless fix the problem (205)
0.14.2 (2025-09-25)
Upgrade notes
- Update Qiskit Serverless and Qiskit IBM Runtime (203)
0.14.1 (2025-09-15)
New features
- docs: Improve documentation structure and add comprehensive tutorial (198)
- Enable local_mode by default for AIPauliNetworkSynthesis and solving a error for non-synthesized circuits (199)
Bug fixes
- Keep the original representation when the service/local version does not provide a better circuit (195)
Other notes
- Remove dependency on qiskit runtime for local testing (200)
0.14.0 (2025-08-21)
New features
- Migrate Transpiler Service to Qiskit Function (189)
0.13.1 (2025-07-21)
Other notes
- Updating the README to reflect the latest changes & updates (184)
0.13.0 (2025-07-03)
New features
- Enable Pauli Network inference in local mode (184)
0.12.0 (2025-06-20)
New features
- Improve Collection Pass Performance via Precomputed Siblings and Queue Optimization #UnitaryHack2025 (177)
0.11.1 (2025-05-14)
Bug fixes
- Add Networkx package missing from the requirements (172)
0.11.0 (2025-03-25)
Upgrade notes
- Prepare compatibility to Qiskit to v2.0.0 (minimum required 1.4.2) (168)
Deprecation notes
- Remove backend_name from AIRouting and AISynthesis (165)
Other notes
-
Refactored type definitions by centralizing OptimizationOptions in qiskit_ibm_transpiler/types.py.
What changed? - Introduced qiskit_ibm_transpiler/types.py to store shared type definitions. - Moved the OptimizationOptions type alias to types.py, eliminating redundancy. - Updated all relevant imports to use the centralized definition. - Ensured compliance with PEP 484 recommendations for type aliasing.
How does this affect users? - No breaking changes; this is an internal refactor. - Any direct references to OptimizationOptions in multiple files now import it from types.py.
Updated import path: .. code:: python
from qiskit_ibm_transpiler.types import OptimizationOptions
This improves code maintainability and makes future type updates easier.
Fixes #166 <https://github.com/Qiskit/qiskit-ibm-transpiler/issues/166>. (166)
0.10.3 (2025-03-04)
Upgrade notes
- Support qiskit 1.4.0 (fixed) (162)
New features
-
Added a __version__ attribute to qiskit_ibm_transpiler to enable version retrieval.
What changed? - Introduced qiskit_ibm_transpiler/version.py for dynamically retrieving the package version. - Exposed __version__ in __init__.py, allowing users to access the installed package version. - If the package is installed normally, it will return the version as defined in importlib.metadata.version(). - If the package is being used from a Git repository without a release tag, it appends the commit hash.
How to use the new feature? Users can now check the installed version by running:
import qiskit_ibm_transpiler print(qiskit_ibm_transpiler.__version__)Example outputs: - Installed via pip install qiskit-ibm-transpiler:
0.10.1- Running from Git with a release tag:0.10.1- Running from Git without a release tag:0.10.1.dev0+a1b2c3dFixes #18 <https://github.com/Qiskit/qiskit-ibm-transpiler/issues/18>. (158)
0.10.2 (2025-02-26)
Upgrade notes
- Support qiskit 1.4.0 (159)
0.10.1 (2025-02-20)
Bug fixes
- Fix generate_ai_pass_manager failures for certain combination of inputs (154)
- Add Qiskit 1.3.3 to QPY version mapping (155)
- Use staging service for tests (156)
0.10.0 (2025-01-09)
Upgrade notes
- Update Qiskit to v1.3.0. (144)
Deprecation notes
- Remove qiskit_transpiler_service package. (147)
Bug fixes
- Align QPY version with service. (136)
- Fixes permutation notebook example by updating the coupling map used (141)
0.9.3 (2024-12-18)
Other notes
- Pin qiskit_ibm_ai_local_transpiler version to 0.1.4 and Qiskit to <1.3 (149)
0.9.2 (2024-12-12)
Bug fixes
- Pin qiskit_ibm_ai_local_transpiler version to 0.1.3 (145)
0.9.1 (2024-11-15)
Bug fixes
- Fix optimization_preferences` used in generate_ai_pass_manager method. Adding related tests (130)
0.9.0 (2024-11-14)
New features
- Adding local mode for routing, permutations, linear functions and cliffords. (125)
Deprecated
- Deprecate Python 3.8 support
0.8.2 (2024-11-13)
Bug fixes
- Added fix to avoid random test errors. Check that result exists when result is success. (105)
- Fix pauli better circuit replacement. (122)
0.8.1 (2024-11-13)
New features
- Updating the README to reflect the availability of the AIPauliNetworkSynthesis feature. (121)
0.8.0 (2024-11-13)
New features
- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. (97)
- Use QPY as exchange format with service (104)
- Retry http requests after any RequestException (111)
- Add Pauli Network synthesis pass. (112)
0.7.4 (2024-11-11)
New features
- Use QPY as exchange format with service (104)
0.7.3 (2024-11-06)
New features
- Retry http requests after any RequestException (111)
0.7.2 (2024-10-31)
Bug fixes
- Added fix to avoid random test errors. Check that result exists when result is success. (105)
0.7.1 (2024-10-30)
New features
- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. (97)
0.7.0 (2024-09-18)
New features
- Adds support for sending the use_fractional_gates option to the transpile service (83)
- Adds iterative decomposition to Qasm3 export. (85)
Other notes
- Removes unneeded benchmark method (81)
- Adds test to verify that a circuit with a barrier will be transpiled (84)
0.6.5 (2024-11-11)
New features
- Use QPY as exchange format with service (104)
0.6.4 (2024-11-07)
New features
- Retry http requests after any RequestException (111)
0.6.3 (2024-10-31)
Bug fixes
- Added fix to avoid random test errors. Check that result exists when result is success. (105)
0.6.2 (2024-10-30)
New features
- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. (97)
0.6.1 (2024-09-17)
Bug fixes
- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 (74)
0.6.0 (2024-09-16)
New features
-
Add optimization_preferences optional input to
TranspilerServiceconstructor.With this new feature, users could specify by which properties they want to optimize on the transpiler process. Allowed options are: “n_cnots”, “n_gates”, “cnot_layers”, “layers”, “noise”, and these options can be provided in two ways: - Only an option, as a string value: Transpilation will be done priorizating this element and then the rest of the options - Several options, as a list: Transpilation will be done only with the specified elements (67)
-
Enabling coupling_map as options to the AI Synthesis passes (70)
Bug fixes
- Keep trying to get results even in case of HTTPError exception with status 520 (52)
- Fixing the type of ECR gates when loading circuits from the Qiskit Transpiler Service (63)
0.5.7 (2024-11-11)
New features
- Use QPY as exchange format with service (104)
0.5.6 (2024-11-07)
New features
- Retry http requests after any RequestException (111)
0.5.5 (2024-10-31)
Bug fixes
- Added fix to avoid random test errors. Check that result exists when result is success. (105)
0.5.4 (2024-10-30)
New features
- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. (97)
0.5.3 (2024-09-17)
Bug fixes
- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 (74)
0.5.2 (2024-09-12)
Bug fixes
- Fixing the type of ECR gates when loading circuits from the qiskit transpiler service (63)
0.5.1 (2024-08-29)
Bug fixes
- Keep trying getting result even in case of HTTPError exception with status 520 (52)
0.5.0 (2024-08-27)
Upgrade notes
- Rename package to
qiskit-ibm-transpiler(43)
0.4.10 (2024-09-17)
Bug fixes
- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 (77)
0.4.9 (2024-09-12)
Bug fixes
- Fixing the type of ECR gates when loading circuits from the qiskit transpiler service (64)
0.4.8 (2024-08-29)
Bug fixes
- Keep trying getting result even in case of HTTPError exception with status 520 (54)
0.4.7 (2024-08-27)
Bug fixes
- Add stacklevel to DeprecationWarning so it appears in Jupyter notebooks (49)
0.4.6 (2024-08-23)
Deprecation notes
- Add deprecation notice in preparation for project rename to
qiskit-ibm-transpiler(40)
Bug fixes
- Forward incoming error when decoding fails (36)
0.4.5 (2024-08-01)
New features
- Enable programmatic config of polling timeout (28)
Bug fixes
- Using the declared
ai_layout_modein the TranspilerService’s run method (25)
0.4.4 (2024-07-25)
Upgrade notes
- Increasing timeout to 600s instead of 120s (21)
New features
Bug fixes
- Correctly parse string boolean for ai param (7)
0.4.3 (2024-06-07)
Upgrade notes
- Check existence of credentials and raise related exceptions instead of breaking
0.4.2 (2024-06-07)
Bug fixes
- Python 3.8 support. Back to specify types with typing
- Fixing some import errors for local modules
Other notes
- Relaxing pin of local dependencies
0.4.1 (2024-06-06)
Upgrade notes
- Updating logs levels
Bug fixes
- Rebuild layout in transpiled circuit
- Avoid barrier nodes in collection
Other notes
- Refactoring the extension code
0.4.0 (2024-05-28)
Upgrade notes
- Updating Clifford service URL
- Replace
use_aibyaiparam in requests
New features
- Request the synthesis of a list of circuits to the service.
- Adding docstrings for public documentation
Bug fixes
- Adjust dependencies to be less strict and support minor version updates for qiskit & patch updates for qiskit-qasm3-import
Other notes
- Move type hints in documentation.
- Set name to logger
0.3.0 (2024-02-29)
Upgrade notes
- Updating the plugin to use Qiskit 1.0 by default
Bug fixes
- Supporting measurements in circuits when transpiling using
ai=trueoption
0.2.1 (2024-02-22)
New features
- Add multithreading to synth requests. The requests to the service for transpile and transpile now are done in parallel.
Upgrade notes
- Updated collection passes. Now the passes could work up to N of qubits or with any block size of qubits.
0.2.0 (2024-02-12)
New features
- Added support for synthesis and transpilation of Clifford, Permutation and Linear Function circuits. Using new URLs for the service.
0.1.3 (2023-12-11)
Bug fixes
- Fixing layout integration with Qiskit for the transpiler service
- Fixing hardcoded input to routing
- Fix bug in input and refactor
0.1.2 (2023-12-04)
Prelude
- Publishing first version 0.1.2 for the IBM Quantum Summit.