All notable changes to this project will be described in this document. The format is based on a mixture of Keep a Changelog and Common Changelog.
This project adheres to Semantic Versioning, with the exception that minor releases may include breaking changes. Particularly, QDMI device implementations compiled against a particular version 1.x.y of the QDMI headers are expected to be compatible with QDMI drivers and, hence, QDMI clients compiled against any patch release in the 1.x series, but not necessarily with QDMI drivers and clients compiled against a different minor or major version.
No unreleased changes yet.
1.2.0 - 2025-12-01
Added
- ✨ Add comprehensive properties to query neutral atom-based device characteristics and capabilities, including site coordinates, zone properties, module/submodule indices, interaction and blocking radii, idling fidelity, and shuttling speed (#198, #199, #200, #203, #207, #208, #209, #211) (@ystade, @burgholzer)
- ✨ Add new program formats QDMI_PROGRAM_FORMAT_QPY (Qiskit QPY binary format) and QDMI_PROGRAM_FORMAT_IQMJSON (IQM JSON data transfer format) to the QDMI_Program_Format enum (#234) (@burgholzer)
- ✨ Add properties to query the device's duration unit and scale factor for proper interpretation of duration values (#210) (@ystade, @burgholzer)
- ✨ Add property to efficiently query the applicability of operations to specific sites (#207) (@ystade, @burgholzer)
- ✨ Add device property QDMI_DEVICE_PROPERTY_SUPPORTEDPROGRAMFORMATS for efficiently querying the device's supported program formats (#252) (@burgholzer)
- ✨ Add device property QDMI_DEVICE_PROPERTY_PULSESUPPORT for querying pulse-level control support level (#181) (@mnfarooqi)
- 🚸 Add new functions QDMI_job_query_property and QDMI_device_job_query_property to support querying of job properties, including previously set parameter values (#160) (@ystade)
- 🚸 Add new authentication options (AUTHFILE, AUTHURL, USERNAME, PASSWORD) to QDMI_SESSION_PARAMETER and QDMI_DEVICE_SESSION_PARAMETER enums (#160) (@ystade, @burgholzer)
- 🚸 Add additional QDMI_JOB_STATUS enum values for improved job lifecycle management (#160) (@ystade)
- 📝 Add comprehensive changelog and upgrade guide documentation (#160) (@ystade, @burgholzer)
Changed
- 🚚 Breaking: Rename QDMI_SITE_PROPERTY_ID to QDMI_SITE_PROPERTY_INDEX for improved naming consistency (#160) (@ystade)
- ♻️ Breaking: Change types of duration-related properties from double to int64_t or uint64_t, representing values in device-specific units (#210) (@ystade, @burgholzer)
- ♻️ Breaking: Add required timeout parameter (in seconds, 0 for indefinite) to QDMI_device_job_wait and QDMI_job_wait functions (#160) (@burgholzer)
- 🚸 Breaking: Change order of QDMI_SESSION_PARAMETER and QDMI_DEVICE_SESSION_PARAMETER enum values due to new authentication options (#160) (@ystade, @burgholzer)
- 🚸 Breaking: Change order of QDMI_JOB_STATUS enum values to better reflect the job lifecycle (#160) (@ystade)
- 📦 Breaking: Raise minimum required CMake version to 3.24 (#250) (@burgholzer)
- 🔧 Improve library installation setup and header management for better downstream integration (#228) (@burgholzer)
- 🔧 Set C++ standard on a per-target basis rather than globally (#165) (@ystade)
Fixed
Removed
- 🔥 Remove C language example device implementation (C++ implementation remains) (#165) (@ystade)
1.1.0 - 2025-01-10
📚 Refer to the GitHub Release Notes for previous changelogs.