Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library/fixed_point/qsharp.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"github": {
"owner": "Microsoft",
"repo": "qdk",
"ref": "v1.25.0",
"ref": "v1.26.0",
"path": "library/signed"
}
}
Expand Down
2 changes: 1 addition & 1 deletion library/signed/qsharp.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"github": {
"owner": "Microsoft",
"repo": "qdk",
"ref": "v1.25.0",
"ref": "v1.26.0",
"path": "library/qtest"
}
}
Expand Down
128 changes: 128 additions & 0 deletions source/vscode/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,133 @@
# QDK Changelog

## v1.26.0

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

### Conditional branches in circuit diagrams

With this release, branches based on measurement results (e.g., `if (M(q) == One) { ... }`) are now shown in circuit diagrams as classically controlled operations, with a label indicating the measurement result that triggers the branch. This makes it easier to understand the structure of algorithms that involve mid-circuit measurements and classical control flow.

Note that the expression in the condition may result from complex processing on multiple measurement results, and the circuit will trace and correctly show the results involved in the condition, for example:

```qsharp
import Std.Math.PI;
operation Main() : Result {
use q = Qubit();
use reg = Qubit[2];

ApplyToEach(H, reg);
let num = MeasureInteger(reg);

if num == 3 {
Y(q);
} else {
Rx(PI() / 4.0, q);
}

MResetZ(q)
}
```

<img width="800" alt="image" src="https://github.com/user-attachments/assets/d9301b78-08ba-4ce8-a842-57c6261e895f" />

As with other circuit operations or gates, clicking on the box for a conditional branch will navigate to the corresponding source code location.

### Quantum state visualizer in the circuit editor

The [Quantum Circuit Editor](https://learn.microsoft.com/en-us/azure/quantum/qdk-circuit-editor) now includes a state visualizer panel that shows the resulting quantum state from running the circuit, with live updates as the circuit is edited. It visualizes the probability density and phase for each basis state. The panel may be collapsed or expanded by clicking on the vertical divider.

<img width="824" alt="image" src="https://github.com/user-attachments/assets/83f5c6f1-7c7e-4631-9201-f9ea7f75e227" />

### Python improvements for language interop

You can now import OpenQASM code and use it directly as a Q# operation via `import_openqasm`:

```python
from qdk.openqasm import import_openqasm
from qdk import qsharp

import_openqasm("""
include "stdgates.inc";
qubit[2] qs;
h qs[0];
cx qs[0], qs[1];
""", name="Entangle")

qsharp.eval("{ use qs = Qubit[2]; Entangle(qs); MResetEachZ(qs) }")
# [One, One]
```

The QDK now also supports passing Q# callables across the Python boundary, enabling advanced coding patterns for composable code. Continuing from the sample above, we can define a Q# operation that takes another operation as an argument, and pass the code we imported from OpenQASM:

```python
qsharp.eval("""
operation TestAntiCorrelation(entangler : Qubit[] => Unit) : Result[] {
use qs = Qubit[2];
X(qs[1]);
entangler(qs);
MResetEachZ(qs)
}
""")

from qsharp.code import Entangle, TestAntiCorrelation

TestAntiCorrelation(Entangle)
# [Zero, One]
```

### Support for doc comments on struct fields

Doc comments on struct fields are now shown in the hover text for the field in VS Code. See the description in the PR at [#2891](https://github.com/microsoft/qdk/pull/2891) for details.

### New Table Lookup sample

We added a [Hypercube Lookup](https://github.com/microsoft/qdk/pull/2910/changes) sample demonstrating usage of the recently added [table lookup library](https://github.com/microsoft/qdk/tree/main/library/table_lookup). See the extensive comments in the sample's [Main.qs](https://github.com/microsoft/qdk/blob/main/samples/algorithms/HypercubeLookup/src/Main.qs) file for details.

## Other notable changes

- Use 'build' package to build wheels by @idavis in [#2822]<https://github.com/microsoft/qdk/pull/2822>
- Introduce a new lint: avoid block namespace by @filipw in [#2862]<https://github.com/microsoft/qdk/pull/2862>
- Fix copilot histogram display by @billti in [#2886]<https://github.com/microsoft/qdk/pull/2886>
- Show doc comments on hover of struct fields by @swernli in [#2891]<https://github.com/microsoft/qdk/pull/2891>
- Creating an explicit namespace with the same name as a callable breaks Python interop by @swernli in [#2896]<https://github.com/microsoft/qdk/pull/2896>
- Unresolved names in call expression avoid ambiguous type error by @swernli in [#2892]<https://github.com/microsoft/qdk/pull/2892>
- Fix issue with shadowing in `qsharp.code` by @swernli in [#2908]<https://github.com/microsoft/qdk/pull/2908>
- CSS updates by @billti in [#2899]<https://github.com/microsoft/qdk/pull/2899>
- Fix `**kwargs` typehints by @orpuente-MS in [#2884]<https://github.com/microsoft/qdk/pull/2884>
- Combine kernels for op application by @billti in [#2898]<https://github.com/microsoft/qdk/pull/2898>
- Better feedback on incorrect syntax for qubit allocation by @swernli in [#2897]<https://github.com/microsoft/qdk/pull/2897>
- Table lookup sample by @DmitryVasilevsky in [#2910]<https://github.com/microsoft/qdk/pull/2910>
- Add QIR noise intrinsic by @orpuente-MS in [#2915]<https://github.com/microsoft/qdk/pull/2915>
- Pointing to windows-2025 image on SDLSources stage by @igormasson in [#2918]<https://github.com/microsoft/qdk/pull/2918>
- Ket Labels on Results from Azure by @ScottCarda-MS in [#2917]<https://github.com/microsoft/qdk/pull/2917>
- Deprecate `borrow` keyword with Lint and Code-Action by @ScottCarda-MS in [#2929]<https://github.com/microsoft/qdk/pull/2929>
- [VSCode] Update to latest Quantum DP and CP api-version by @xinyi-joffre in [#2922]<https://github.com/microsoft/qdk/pull/2922>
- Atom visualizer improvements by @billti in [#2935]<https://github.com/microsoft/qdk/pull/2935>
- Add `load_csv_dir` method to `NoiseConfig` class by @orpuente-MS in [#2928]<https://github.com/microsoft/qdk/pull/2928>
- Added CY gate to GPU, CPU and Clifford simulators by @DmitryVasilevsky in [#2927]<https://github.com/microsoft/qdk/pull/2927>
- Circuit Editor State Visualization Panel by @ScottCarda-MS in [#2870]<https://github.com/microsoft/qdk/pull/2870>
- Allow Passing of Q# callables and closures in Python by @swernli in [#2940]<https://github.com/microsoft/qdk/pull/2940>
- Use tagged aggregates in QIR by @swernli in [#2964]<https://github.com/microsoft/qdk/pull/2964>
- Change `import_openqasm` to hoist qubits into the arguments of the generated Q# operation by @swernli in [#2920]<https://github.com/microsoft/qdk/pull/2920>
- Sign vsix before publishing by @idavis in [#2967]<https://github.com/microsoft/qdk/pull/2967>
- Get VSCode Extension, Manifest, and Signature files for Publishing by @idavis in [#2969]<https://github.com/microsoft/qdk/pull/2969>
- Reset gate and MZ in addition to MResetZ in GPU simulator by @DmitryVasilevsky in [#2939]<https://github.com/microsoft/qdk/pull/2939>
- Remove container creation when retrieving linked storage account from the service by @rigidit in [#2968]<https://github.com/microsoft/qdk/pull/2968>
- Update azure-quantum Python dependency by @swernli in [#2976]<https://github.com/microsoft/qdk/pull/2976>
- [Circuit Diagrams] 1 - RIR debug metadata by @minestarks in [#2942]<https://github.com/microsoft/qdk/pull/2942>
- [Circuit Diagrams] 2 - ASCII art changes to render conditionals and complex groups by @minestarks in [#2944]<https://github.com/microsoft/qdk/pull/2944>
- [Circuit Diagrams] 3 - SVG rendering changes for classically controlled circuits by @minestarks in [#2945]<https://github.com/microsoft/qdk/pull/2945>
- [Circuit diagrams] 4 - Show conditionals in circuits based on RIR debug metadata by @minestarks in [#2943]<https://github.com/microsoft/qdk/pull/2943>
- Fix zoom behavior in circuit diagrams by @minestarks in [#2979]<https://github.com/microsoft/qdk/pull/2979>

## New Contributors

- @igormasson made their first contribution in https://github.com/microsoft/qdk/pull/2918
- @rigidit made their first contribution in https://github.com/microsoft/qdk/pull/2968

**Full Changelog**: <https://github.com/microsoft/qdk/compare/v1.25.1...v1.26.0>

## v1.25.1

Below are some of the highlights for the 1.25 release of the QDK.
Expand Down
2 changes: 1 addition & 1 deletion source/vscode/src/changelog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { EventType, sendTelemetryEvent } from "./telemetry";
import { getRandomGuid } from "./utils";

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

export function registerChangelogCommand(
context: vscode.ExtensionContext,
Expand Down
12 changes: 6 additions & 6 deletions source/vscode/src/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/chemistry"
Expand All @@ -23,7 +23,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/signed"
Expand All @@ -38,7 +38,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/fixed_point"
Expand All @@ -53,7 +53,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/rotations"
Expand All @@ -68,7 +68,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/qtest"
Expand All @@ -83,7 +83,7 @@
"owner": "microsoft",
"repo": "qdk",
"refs": [
{ "ref": "v1.25.0", "notes": "latest stable" },
{ "ref": "v1.26.0", "notes": "latest stable" },
{ "ref": "main", "notes": "nightly, unstable" }
],
"path": "library/table_lookup"
Expand Down
2 changes: 1 addition & 1 deletion version.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import sys

# To be updated every time we start a new major.minor version.
major_minor = "1.25"
major_minor = "1.26"

root_dir = os.path.dirname(os.path.abspath(__file__))
source_dir = os.path.join(root_dir, "source")
Expand Down
Loading