Skip to content

chore: release v0.21.0 #2303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 10, 2025
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
12 changes: 6 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions hugr-cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Changelog


## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-cli-v0.20.2...hugr-cli-v0.21.0) - 2025-07-09

### New Features

- [**breaking**] Better error reporting in `hugr-cli`. ([#2318](https://github.com/CQCL/hugr/pull/2318))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-cli-v0.20.1...hugr-cli-v0.20.2) - 2025-06-25

### New Features
Expand Down
4 changes: 2 additions & 2 deletions hugr-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr-cli"
version = "0.20.2"
version = "0.21.0"
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
Expand All @@ -19,7 +19,7 @@ bench = false
clap = { workspace = true, features = ["derive", "cargo"] }
clap-verbosity-flag.workspace = true
derive_more = { workspace = true, features = ["display", "error", "from"] }
hugr = { path = "../hugr", version = "0.20.2" }
hugr = { path = "../hugr", version = "0.21.0" }
serde_json.workspace = true
clio = { workspace = true, features = ["clap-parse"] }
anyhow.workspace = true
Expand Down
43 changes: 43 additions & 0 deletions hugr-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,48 @@
# Changelog

## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-core-v0.20.2...hugr-core-v0.21.0) - 2025-07-09

### Bug Fixes

- Fixed two bugs in import/export of function operations ([#2324](https://github.com/CQCL/hugr/pull/2324))
- Model import should perform extension resolution ([#2326](https://github.com/CQCL/hugr/pull/2326))
- [**breaking**] Fixed bugs in model CFG handling and improved CFG signatures ([#2334](https://github.com/CQCL/hugr/pull/2334))
- Use List instead of Tuple in conversions for TypeArg/TypeRow ([#2378](https://github.com/CQCL/hugr/pull/2378))
- Do extension resolution on loaded extensions from the model format ([#2389](https://github.com/CQCL/hugr/pull/2389))
- Make JSON Schema checks actually work again ([#2412](https://github.com/CQCL/hugr/pull/2412))
- Order hints on input and output nodes. ([#2422](https://github.com/CQCL/hugr/pull/2422))

### New Features

- [**breaking**] No nested FuncDefns (or AliasDefns) ([#2256](https://github.com/CQCL/hugr/pull/2256))
- [**breaking**] Split `TypeArg::Sequence` into tuples and lists. ([#2140](https://github.com/CQCL/hugr/pull/2140))
- [**breaking**] Added float and bytes literal to core and python bindings. ([#2289](https://github.com/CQCL/hugr/pull/2289))
- [**breaking**] More helpful error messages in model import ([#2272](https://github.com/CQCL/hugr/pull/2272))
- [**breaking**] Better error reporting in `hugr-cli`. ([#2318](https://github.com/CQCL/hugr/pull/2318))
- [**breaking**] Merge `TypeParam` and `TypeArg` into one `Term` type in Rust ([#2309](https://github.com/CQCL/hugr/pull/2309))
- *(persistent)* Add serialisation for CommitStateSpace ([#2344](https://github.com/CQCL/hugr/pull/2344))
- add TryFrom impls for TypeArg/TypeRow ([#2366](https://github.com/CQCL/hugr/pull/2366))
- Add `MakeError` op ([#2377](https://github.com/CQCL/hugr/pull/2377))
- Open lists and tuples in `Term` ([#2360](https://github.com/CQCL/hugr/pull/2360))
- Call `FunctionBuilder::add_{in,out}put` for any AsMut<Hugr> ([#2376](https://github.com/CQCL/hugr/pull/2376))
- Add Root checked methods to DataflowParentID ([#2382](https://github.com/CQCL/hugr/pull/2382))
- Add PersistentWire type ([#2361](https://github.com/CQCL/hugr/pull/2361))
- Add `BorrowArray` extension ([#2395](https://github.com/CQCL/hugr/pull/2395))
- [**breaking**] Rename 'Any' type bound to 'Linear' ([#2421](https://github.com/CQCL/hugr/pull/2421))
- [**breaking**] Add Visibility to FuncDefn/FuncDecl. ([#2143](https://github.com/CQCL/hugr/pull/2143))
- *(per)* [**breaking**] Support empty wires in commits ([#2349](https://github.com/CQCL/hugr/pull/2349))
- [**breaking**] hugr-model use explicit Option<Visibility>, with ::Unspecified in capnp ([#2424](https://github.com/CQCL/hugr/pull/2424))

### Refactor

- [**breaking**] move PersistentHugr into separate crate ([#2277](https://github.com/CQCL/hugr/pull/2277))
- [**breaking**] remove deprecated runtime extension errors ([#2369](https://github.com/CQCL/hugr/pull/2369))
- [**breaking**] Reduce error type sizes ([#2420](https://github.com/CQCL/hugr/pull/2420))

### Testing

- Check hugr json serializations against the schema (again) ([#2216](https://github.com/CQCL/hugr/pull/2216))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-core-v0.20.1...hugr-core-v0.20.2) - 2025-06-25

### Documentation
Expand Down
4 changes: 2 additions & 2 deletions hugr-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr-core"
version = "0.20.2"
version = "0.21.0"
edition = { workspace = true }
rust-version = { workspace = true }

Expand Down Expand Up @@ -28,7 +28,7 @@ bench = false
name = "model"

[dependencies]
hugr-model = { version = "0.20.2", path = "../hugr-model" }
hugr-model = { version = "0.21.0", path = "../hugr-model" }

cgmath = { workspace = true, features = ["serde"] }
delegate = { workspace = true }
Expand Down
10 changes: 10 additions & 0 deletions hugr-llvm/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-llvm-v0.20.2...hugr-llvm-v0.21.0) - 2025-07-09

### New Features

- [**breaking**] No nested FuncDefns (or AliasDefns) ([#2256](https://github.com/CQCL/hugr/pull/2256))
- [**breaking**] Split `TypeArg::Sequence` into tuples and lists. ([#2140](https://github.com/CQCL/hugr/pull/2140))
- [**breaking**] More helpful error messages in model import ([#2272](https://github.com/CQCL/hugr/pull/2272))
- [**breaking**] Merge `TypeParam` and `TypeArg` into one `Term` type in Rust ([#2309](https://github.com/CQCL/hugr/pull/2309))
- Add `MakeError` op ([#2377](https://github.com/CQCL/hugr/pull/2377))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-llvm-v0.20.1...hugr-llvm-v0.20.2) - 2025-06-25

### New Features
Expand Down
4 changes: 2 additions & 2 deletions hugr-llvm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr-llvm"
version = "0.20.2"
version = "0.21.0"
description = "A general and extensible crate for lowering HUGRs into LLVM IR"

edition.workspace = true
Expand All @@ -26,7 +26,7 @@ workspace = true

[dependencies]
inkwell = { version = "0.6.0", default-features = false }
hugr-core = { path = "../hugr-core", version = "0.20.1" }
hugr-core = { path = "../hugr-core", version = "0.21.0" }
anyhow.workspace = true
itertools.workspace = true
delegate.workspace = true
Expand Down
15 changes: 15 additions & 0 deletions hugr-model/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.20.2...hugr-model-v0.21.0) - 2025-07-09

### Bug Fixes

- Model import should perform extension resolution ([#2326](https://github.com/CQCL/hugr/pull/2326))
- [**breaking**] Fixed bugs in model CFG handling and improved CFG signatures ([#2334](https://github.com/CQCL/hugr/pull/2334))
- [**breaking**] Fix panic in model resolver when variable is used outside of symbol. ([#2362](https://github.com/CQCL/hugr/pull/2362))
- Order hints on input and output nodes. ([#2422](https://github.com/CQCL/hugr/pull/2422))

### New Features

- [**breaking**] Added float and bytes literal to core and python bindings. ([#2289](https://github.com/CQCL/hugr/pull/2289))
- [**breaking**] Add Visibility to FuncDefn/FuncDecl. ([#2143](https://github.com/CQCL/hugr/pull/2143))
- [**breaking**] hugr-model use explicit Option<Visibility>, with ::Unspecified in capnp ([#2424](https://github.com/CQCL/hugr/pull/2424))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-model-v0.20.1...hugr-model-v0.20.2) - 2025-06-25

### New Features
Expand Down
2 changes: 1 addition & 1 deletion hugr-model/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr-model"
version = "0.20.2"
version = "0.21.0"
readme = "README.md"
documentation = "https://docs.rs/hugr-model/"
description = "Data model for Quantinuum's HUGR intermediate representation"
Expand Down
17 changes: 17 additions & 0 deletions hugr-passes/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
# Changelog


## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-passes-v0.20.2...hugr-passes-v0.21.0) - 2025-07-09

### Bug Fixes

- DeadFuncElimPass+CallGraph w/ non-module-child entrypoint ([#2390](https://github.com/CQCL/hugr/pull/2390))

### New Features

- [**breaking**] No nested FuncDefns (or AliasDefns) ([#2256](https://github.com/CQCL/hugr/pull/2256))
- [**breaking**] Split `TypeArg::Sequence` into tuples and lists. ([#2140](https://github.com/CQCL/hugr/pull/2140))
- [**breaking**] Merge `TypeParam` and `TypeArg` into one `Term` type in Rust ([#2309](https://github.com/CQCL/hugr/pull/2309))
- [**breaking**] Rename 'Any' type bound to 'Linear' ([#2421](https://github.com/CQCL/hugr/pull/2421))

### Refactor

- [**breaking**] Reduce error type sizes ([#2420](https://github.com/CQCL/hugr/pull/2420))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-passes-v0.20.1...hugr-passes-v0.20.2) - 2025-06-25

### Bug Fixes
Expand Down
4 changes: 2 additions & 2 deletions hugr-passes/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr-passes"
version = "0.20.2"
version = "0.21.0"
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
Expand All @@ -19,7 +19,7 @@ workspace = true
bench = false

[dependencies]
hugr-core = { path = "../hugr-core", version = "0.20.2" }
hugr-core = { path = "../hugr-core", version = "0.21.0" }
portgraph = { workspace = true }
ascent = { version = "0.8.0" }
derive_more = { workspace = true, features = ["display", "error", "from"] }
Expand Down
2 changes: 1 addition & 1 deletion hugr-py/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ bench = false

[dependencies]
bumpalo = { workspace = true, features = ["collections"] }
hugr-model = { version = "0.20.2", path = "../hugr-model", features = ["pyo3"] }
hugr-model = { version = "0.21.0", path = "../hugr-model", features = ["pyo3"] }
paste.workspace = true
pyo3 = { workspace = true, features = ["extension-module", "abi3-py310"] }
57 changes: 57 additions & 0 deletions hugr/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,62 @@
# Changelog

## [0.21.0](https://github.com/CQCL/hugr/compare/hugr-v0.20.2...hugr-v0.21.0) - 2025-07-09


This release includes a long list of changes:

- The HUGR model serialization format is now stable, and should be preferred over the old JSON format.
- Type parameters and type arguments are now unified into a single `Term` type.
- Function definitions can no longer be nested inside dataflow regions. Now they must be defined at the top level module.
- Function definitions and declarations now have a `Visibility` field, which define whether they are visible in the public API of the module.
- And many more fixes and improvements.

### Bug Fixes

- DeadFuncElimPass+CallGraph w/ non-module-child entrypoint ([#2390](https://github.com/CQCL/hugr/pull/2390))
- Fixed two bugs in import/export of function operations ([#2324](https://github.com/CQCL/hugr/pull/2324))
- Model import should perform extension resolution ([#2326](https://github.com/CQCL/hugr/pull/2326))
- [**breaking**] Fixed bugs in model CFG handling and improved CFG signatures ([#2334](https://github.com/CQCL/hugr/pull/2334))
- Use List instead of Tuple in conversions for TypeArg/TypeRow ([#2378](https://github.com/CQCL/hugr/pull/2378))
- Do extension resolution on loaded extensions from the model format ([#2389](https://github.com/CQCL/hugr/pull/2389))
- Make JSON Schema checks actually work again ([#2412](https://github.com/CQCL/hugr/pull/2412))
- Order hints on input and output nodes. ([#2422](https://github.com/CQCL/hugr/pull/2422))

### Documentation

- Hide hugr-persistent docs ([#2357](https://github.com/CQCL/hugr/pull/2357))

### New Features

- [**breaking**] Split `TypeArg::Sequence` into tuples and lists. ([#2140](https://github.com/CQCL/hugr/pull/2140))
- [**breaking**] Added float and bytes literal to core and python bindings. ([#2289](https://github.com/CQCL/hugr/pull/2289))
- [**breaking**] More helpful error messages in model import ([#2272](https://github.com/CQCL/hugr/pull/2272))
- [**breaking**] Better error reporting in `hugr-cli`. ([#2318](https://github.com/CQCL/hugr/pull/2318))
- [**breaking**] Merge `TypeParam` and `TypeArg` into one `Term` type in Rust ([#2309](https://github.com/CQCL/hugr/pull/2309))
- *(persistent)* Add serialisation for CommitStateSpace ([#2344](https://github.com/CQCL/hugr/pull/2344))
- add TryFrom impls for TypeArg/TypeRow ([#2366](https://github.com/CQCL/hugr/pull/2366))
- Add `MakeError` op ([#2377](https://github.com/CQCL/hugr/pull/2377))
- Open lists and tuples in `Term` ([#2360](https://github.com/CQCL/hugr/pull/2360))
- Call `FunctionBuilder::add_{in,out}put` for any AsMut<Hugr> ([#2376](https://github.com/CQCL/hugr/pull/2376))
- Add Root checked methods to DataflowParentID ([#2382](https://github.com/CQCL/hugr/pull/2382))
- Add PersistentWire type ([#2361](https://github.com/CQCL/hugr/pull/2361))
- Add `BorrowArray` extension ([#2395](https://github.com/CQCL/hugr/pull/2395))
- [**breaking**] Add Visibility to FuncDefn/FuncDecl. ([#2143](https://github.com/CQCL/hugr/pull/2143))
- *(per)* [**breaking**] Support empty wires in commits ([#2349](https://github.com/CQCL/hugr/pull/2349))
- [**breaking**] hugr-model use explicit Option<Visibility>, with ::Unspecified in capnp ([#2424](https://github.com/CQCL/hugr/pull/2424))
- [**breaking**] No nested FuncDefns (or AliasDefns) ([#2256](https://github.com/CQCL/hugr/pull/2256))
- [**breaking**] Rename 'Any' type bound to 'Linear' ([#2421](https://github.com/CQCL/hugr/pull/2421))

### Refactor

- [**breaking**] remove deprecated runtime extension errors ([#2369](https://github.com/CQCL/hugr/pull/2369))
- [**breaking**] Reduce error type sizes ([#2420](https://github.com/CQCL/hugr/pull/2420))
- [**breaking**] move PersistentHugr into separate crate ([#2277](https://github.com/CQCL/hugr/pull/2277))

### Testing

- Check hugr json serializations against the schema (again) ([#2216](https://github.com/CQCL/hugr/pull/2216))

## [0.20.2](https://github.com/CQCL/hugr/compare/hugr-v0.20.1...hugr-v0.20.2) - 2025-06-25

### Bug Fixes
Expand Down
10 changes: 5 additions & 5 deletions hugr/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "hugr"
version = "0.20.2"
version = "0.21.0"
edition = { workspace = true }
rust-version = { workspace = true }

Expand Down Expand Up @@ -31,10 +31,10 @@ zstd = ["hugr-core/zstd"]
persistent_unstable = ["hugr-persistent"]

[dependencies]
hugr-model = { path = "../hugr-model", version = "0.20.2" }
hugr-core = { path = "../hugr-core", version = "0.20.2" }
hugr-passes = { path = "../hugr-passes", version = "0.20.2" }
hugr-llvm = { path = "../hugr-llvm", version = "0.20.2", optional = true }
hugr-model = { path = "../hugr-model", version = "0.21.0" }
hugr-core = { path = "../hugr-core", version = "0.21.0" }
hugr-passes = { path = "../hugr-passes", version = "0.21.0" }
hugr-llvm = { path = "../hugr-llvm", version = "0.21.0", optional = true }
hugr-persistent = { path = "../hugr-persistent", version = "0.1.0", optional = true }

[dev-dependencies]
Expand Down
Loading