Skip to content

Commit a076c96

Browse files
authored
Bump version for v1.27.0 (#3079)
Co-authored-by: Mine Starks <>
1 parent b08bab0 commit a076c96

File tree

6 files changed

+68
-10
lines changed

6 files changed

+68
-10
lines changed

library/fixed_point/qsharp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"github": {
77
"owner": "Microsoft",
88
"repo": "qdk",
9-
"ref": "v1.26.0",
9+
"ref": "v1.27.0",
1010
"path": "library/signed"
1111
}
1212
}

library/signed/qsharp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"github": {
77
"owner": "Microsoft",
88
"repo": "qdk",
9-
"ref": "v1.26.0",
9+
"ref": "v1.27.0",
1010
"path": "library/qtest"
1111
}
1212
}

source/vscode/changelog.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,63 @@
11
# QDK Changelog
22

3+
## v1.27.0
4+
5+
Below are some of the highlights for the 1.27 release of the QDK.
6+
7+
### Local neutral atom simulation for Cirq and Qiskit
8+
9+
You can now run your Cirq and Qiskit circuits on the local neutral atom simulator. The new `NeutralAtomSampler` (for Cirq) and `NeutralAtomBackend` (for Qiskit) let you submit circuits and simulate noisy neutral atom hardware locally, including qubit loss modeling.
10+
11+
For Cirq, the sampler implements `cirq.Sampler`, so it integrates seamlessly with existing Cirq workflows. Results include both a standard Cirq-compatible view (with loss shots filtered out) and raw data with loss markers for more detailed analysis:
12+
13+
```python
14+
from qdk.cirq import NeutralAtomSampler
15+
from qdk.simulation import NoiseConfig
16+
17+
noise = NoiseConfig()
18+
noise.rz.loss = 0.08
19+
result = NeutralAtomSampler(noise=noise, seed=42).run(circuit, repetitions=1000)
20+
```
21+
22+
For Qiskit, the backend provides a `NeutralAtomTarget` and transpiles circuits into the native gate set (`rz`, `sx`, `cz`):
23+
24+
```python
25+
from qdk.simulation import NeutralAtomBackend, NoiseConfig
26+
27+
backend = NeutralAtomBackend()
28+
native_circuit = transpile(circuit, backend=backend)
29+
job = backend.run(native_circuit, shots=1000, noise=NoiseConfig())
30+
```
31+
32+
See the [neutral atom simulator sample notebook](https://github.com/microsoft/qdk/blob/main/samples/python_interop/neutral_atom_simulator.ipynb) for a walkthrough.
33+
34+
### Updated samples for circuit compatibility
35+
36+
Many of the [built-in samples](https://github.com/microsoft/qdk/tree/main/samples) have been updated so they can now generate circuit diagrams and be submitted to Azure Quantum. Previously, some samples used patterns that were incompatible with circuit generation, such as `Message` calls with dynamic values. These checks have been relaxed, and the samples have been restructured so that `Main()` is circuit-compatible while validation logic lives in separate `@Test()` operations. See [#2999](https://github.com/microsoft/qdk/pull/2999) for details.
37+
38+
### `PostSelectZ` operation
39+
40+
A new operation, `Std.Diagnostics.PostSelectZ`, allows a program to force the collapse of a given qubit to a specified state in the computational basis. This is useful in simulation (including simulation for circuit generation) and resource estimation. It is ignored during QIR code generation, so it does not affect hardware execution. See [#3017](https://github.com/microsoft/qdk/pull/3017) for details.
41+
42+
### Circuit visualization improvements
43+
44+
Classically controlled gate groups can now be expanded and collapsed in circuit diagrams, matching the behavior of other expandable groups. This provides a more consistent interaction model when exploring circuits with complex classical control flow. See [#2985](https://github.com/microsoft/qdk/pull/2985) for details.
45+
46+
## Other notable changes
47+
48+
- Add support for Adaptive_RIFL QIR programs in GPU simulator by @orpuente-MS in [#3039](https://github.com/microsoft/qdk/pull/3039)
49+
- Support `NoiseConfig` for Q# and OpenQASM on sparse simulation by @swernli in [#3062](https://github.com/microsoft/qdk/pull/3062)
50+
- Support explicit seed in `qsharp.run` by @swernli in [#3065](https://github.com/microsoft/qdk/pull/3065)
51+
- Add `qdk-programming` Copilot skill for Q#, OpenQASM and Python by @minestarks in [#3058](https://github.com/microsoft/qdk/pull/3058)
52+
- Add Optional Data Overlay for MoleculeViewer by @wavefunction91 in [#3059](https://github.com/microsoft/qdk/pull/3059)
53+
- RCA: Allow updates to mutable variables within a dynamic scope if the variable is also defined within that scope by @swernli in [#3053](https://github.com/microsoft/qdk/pull/3053)
54+
- OpenQASM: Fix const propagation in bitarray-to-int promotion by @minestarks in [#3030](https://github.com/microsoft/qdk/pull/3030)
55+
- Add `IntAsDouble` and `Truncate` support in QIR by @swernli in [#3024](https://github.com/microsoft/qdk/pull/3024)
56+
- Fix collapse/expand issue by @ScottCarda-MS in [#3016](https://github.com/microsoft/qdk/pull/3016)
57+
- Refactor RCA by @swernli in [#2835](https://github.com/microsoft/qdk/pull/2835), [#3015](https://github.com/microsoft/qdk/pull/3015)
58+
59+
**Full Changelog**: <https://github.com/microsoft/qdk/compare/v1.26.1...v1.27.0>
60+
361
## v1.26.0
462

563
Below are some of the highlights for the 1.26 release of the QDK.

source/vscode/src/changelog.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { EventType, sendTelemetryEvent } from "./telemetry";
66
import { getRandomGuid } from "./utils";
77

88
// The latest version for which we want to show the changelog page
9-
const CHANGELOG_VERSION = "v1.26.0"; // <-- Update this when you want to show a new changelog to users
9+
const CHANGELOG_VERSION = "v1.27.0"; // <-- Update this when you want to show a new changelog to users
1010

1111
export function registerChangelogCommand(
1212
context: vscode.ExtensionContext,

source/vscode/src/registry.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"owner": "microsoft",
99
"repo": "qdk",
1010
"refs": [
11-
{ "ref": "v1.26.0", "notes": "latest stable" },
11+
{ "ref": "v1.27.0", "notes": "latest stable" },
1212
{ "ref": "main", "notes": "nightly, unstable" }
1313
],
1414
"path": "library/chemistry"
@@ -23,7 +23,7 @@
2323
"owner": "microsoft",
2424
"repo": "qdk",
2525
"refs": [
26-
{ "ref": "v1.26.0", "notes": "latest stable" },
26+
{ "ref": "v1.27.0", "notes": "latest stable" },
2727
{ "ref": "main", "notes": "nightly, unstable" }
2828
],
2929
"path": "library/signed"
@@ -38,7 +38,7 @@
3838
"owner": "microsoft",
3939
"repo": "qdk",
4040
"refs": [
41-
{ "ref": "v1.26.0", "notes": "latest stable" },
41+
{ "ref": "v1.27.0", "notes": "latest stable" },
4242
{ "ref": "main", "notes": "nightly, unstable" }
4343
],
4444
"path": "library/fixed_point"
@@ -53,7 +53,7 @@
5353
"owner": "microsoft",
5454
"repo": "qdk",
5555
"refs": [
56-
{ "ref": "v1.26.0", "notes": "latest stable" },
56+
{ "ref": "v1.27.0", "notes": "latest stable" },
5757
{ "ref": "main", "notes": "nightly, unstable" }
5858
],
5959
"path": "library/rotations"
@@ -68,7 +68,7 @@
6868
"owner": "microsoft",
6969
"repo": "qdk",
7070
"refs": [
71-
{ "ref": "v1.26.0", "notes": "latest stable" },
71+
{ "ref": "v1.27.0", "notes": "latest stable" },
7272
{ "ref": "main", "notes": "nightly, unstable" }
7373
],
7474
"path": "library/qtest"
@@ -83,7 +83,7 @@
8383
"owner": "microsoft",
8484
"repo": "qdk",
8585
"refs": [
86-
{ "ref": "v1.26.0", "notes": "latest stable" },
86+
{ "ref": "v1.27.0", "notes": "latest stable" },
8787
{ "ref": "main", "notes": "nightly, unstable" }
8888
],
8989
"path": "library/table_lookup"

version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import sys
99

1010
# To be updated every time we start a new major.minor version.
11-
major_minor = "1.26"
11+
major_minor = "1.27"
1212

1313
root_dir = os.path.dirname(os.path.abspath(__file__))
1414
source_dir = os.path.join(root_dir, "source")

0 commit comments

Comments
 (0)