Skip to content

chore: release v0.20.0 #2181

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

Closed
wants to merge 3 commits into from
Closed
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.

3 changes: 2 additions & 1 deletion hugr-cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# Changelog


## [0.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-cli-v0.15.4...hugr-cli-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-cli-v0.15.4...hugr-cli-v0.20.0) - 2025-05-14

### New Features

- [**breaking**] Bump MSRV to 1.85 ([#2136](https://github.com/CQCL/hugr/pull/2136))
- [**breaking**] Add Hugr entrypoints ([#2147](https://github.com/CQCL/hugr/pull/2147))
- [**breaking**] Validate any HugrView, make errors generic ([#2155](https://github.com/CQCL/hugr/pull/2155))
- [**breaking**] Only expose envelope serialization of hugrs and packages ([#2167](https://github.com/CQCL/hugr/pull/2167))
- Packages do not include the hugr extensions by default ([#2187](https://github.com/CQCL/hugr/pull/2187))

## [0.15.3](https://github.com/CQCL/hugr/compare/hugr-cli-v0.15.2...hugr-cli-v0.15.3) - 2025-04-02

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.0-rc.0"
version = "0.20.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.0-rc.0" }
hugr = { path = "../hugr", version = "0.20.0" }
serde_json.workspace = true
clio = { workspace = true, features = ["clap-parse"] }

Expand Down
16 changes: 15 additions & 1 deletion hugr-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# Changelog

## [0.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-core-v0.15.4...hugr-core-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-core-v0.15.4...hugr-core-v0.20.0) - 2025-05-14

### Bug Fixes

- [**breaking**] Don't expose `HugrMutInternals` ([#2071](https://github.com/CQCL/hugr/pull/2071))
- `as_unary_option` indexing bug ([#2163](https://github.com/CQCL/hugr/pull/2163))
- Skip phantom data for array value serialisation ([#2166](https://github.com/CQCL/hugr/pull/2166))
- Remove deleted nodes from node_map in `SimpleReplacement` ([#2176](https://github.com/CQCL/hugr/pull/2176))
- [**breaking**] Use unique region_portgraph in convexity check ([#2192](https://github.com/CQCL/hugr/pull/2192))
- Panic when an extension name is too long. ([#2198](https://github.com/CQCL/hugr/pull/2198))
- Respect type bounds on local variables when importing. ([#2206](https://github.com/CQCL/hugr/pull/2206))
- Import and export JSON metadata on module roots. ([#2207](https://github.com/CQCL/hugr/pull/2207))

### New Features

Expand All @@ -33,6 +37,15 @@
- Only allow region containers as entrypoints ([#2173](https://github.com/CQCL/hugr/pull/2173))
- Export and import entrypoints via metadata in `hugr-model`. ([#2172](https://github.com/CQCL/hugr/pull/2172))
- [**breaking**] Only expose envelope serialization of hugrs and packages ([#2167](https://github.com/CQCL/hugr/pull/2167))
- Packages do not include the hugr extensions by default ([#2187](https://github.com/CQCL/hugr/pull/2187))
- Define text-model envelope formats ([#2188](https://github.com/CQCL/hugr/pull/2188))
- [**breaking**] Remove description on opaque ops. ([#2197](https://github.com/CQCL/hugr/pull/2197))
- Import CFG regions without adding an entry block. ([#2200](https://github.com/CQCL/hugr/pull/2200))
- [**breaking**] Remove boundary map in SimpleReplacement ([#2208](https://github.com/CQCL/hugr/pull/2208))
- Export macro for hugr serde wrappers with custom extensions ([#2209](https://github.com/CQCL/hugr/pull/2209))
- Allow any dataflow parent as SiblingSubgraph replacement ([#2210](https://github.com/CQCL/hugr/pull/2210))
- [**breaking**] Hide FuncDefn/cl fields, add accessors and ::new(...) ([#2213](https://github.com/CQCL/hugr/pull/2213))
- Add SiblingSubgraph::set_outgoing_ports ([#2217](https://github.com/CQCL/hugr/pull/2217))

### Refactor

Expand All @@ -52,6 +65,7 @@
### Testing

- Disable IO-dependent tests when running miri ([#2123](https://github.com/CQCL/hugr/pull/2123))
- check envelope roundtrips rather than json in `HugrView::verify` ([#2186](https://github.com/CQCL/hugr/pull/2186))

## [0.15.3](https://github.com/CQCL/hugr/compare/hugr-core-v0.15.2...hugr-core-v0.15.3) - 2025-04-02

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.0-rc.0"
version = "0.20.0"
edition = { workspace = true }
rust-version = { workspace = true }

Expand All @@ -27,7 +27,7 @@ bench = false
name = "model"

[dependencies]
hugr-model = { version = "0.20.0-rc.0", path = "../hugr-model" }
hugr-model = { version = "0.20.0", path = "../hugr-model" }

cgmath = { workspace = true, features = ["serde"] }
delegate = { workspace = true }
Expand Down
4 changes: 3 additions & 1 deletion hugr-llvm/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-llvm-v0.15.4...hugr-llvm-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-llvm-v0.15.4...hugr-llvm-v0.20.0) - 2025-05-14

### Bug Fixes

Expand All @@ -24,6 +24,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add LLVM emission for prelude.noop ([#2160](https://github.com/CQCL/hugr/pull/2160))
- [**breaking**] Add Hugr entrypoints ([#2147](https://github.com/CQCL/hugr/pull/2147))
- [**breaking**] Return a node mapping in HugrInternals::region_portgraph ([#2164](https://github.com/CQCL/hugr/pull/2164))
- Restore old array lowering ([#2194](https://github.com/CQCL/hugr/pull/2194))
- [**breaking**] Hide FuncDefn/cl fields, add accessors and ::new(...) ([#2213](https://github.com/CQCL/hugr/pull/2213))

## [0.15.4](https://github.com/CQCL/hugr/compare/hugr-llvm-v0.15.3...hugr-llvm-v0.15.4) - 2025-05-07

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.0-rc.0"
version = "0.20.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.0-rc.0" }
hugr-core = { path = "../hugr-core", version = "0.20.0" }
anyhow = "1.0.98"
itertools.workspace = true
delegate.workspace = true
Expand Down
4 changes: 3 additions & 1 deletion hugr-model/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Changelog

## [0.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.19.1...hugr-model-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.19.0...hugr-model-v0.20.0) - 2025-05-14

### New Features

- [**breaking**] Mark all Error enums as non_exhaustive ([#2056](https://github.com/CQCL/hugr/pull/2056))
- [**breaking**] Bump MSRV to 1.85 ([#2136](https://github.com/CQCL/hugr/pull/2136))
- Export and import entrypoints via metadata in `hugr-model`. ([#2172](https://github.com/CQCL/hugr/pull/2172))
- Define text-model envelope formats ([#2188](https://github.com/CQCL/hugr/pull/2188))
- Import CFG regions without adding an entry block. ([#2200](https://github.com/CQCL/hugr/pull/2200))

## [0.19.0](https://github.com/CQCL/hugr/compare/hugr-model-v0.18.1...hugr-model-v0.19.0) - 2025-05-07

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.0-rc.0"
version = "0.20.0"
readme = "README.md"
documentation = "https://docs.rs/hugr-model/"
description = "Data model for Quantinuum's HUGR intermediate representation"
Expand Down
3 changes: 2 additions & 1 deletion hugr-passes/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Changelog


## [0.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-passes-v0.15.4...hugr-passes-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-passes-v0.15.4...hugr-passes-v0.20.0) - 2025-05-14

### New Features

Expand All @@ -22,6 +22,7 @@
- [**breaking**] Return a node mapping in HugrInternals::region_portgraph ([#2164](https://github.com/CQCL/hugr/pull/2164))
- [**breaking**] Validate any HugrView, make errors generic ([#2155](https://github.com/CQCL/hugr/pull/2155))
- [**breaking**] Explicit hugr type param to ComposablePass ([#2179](https://github.com/CQCL/hugr/pull/2179))
- [**breaking**] Hide FuncDefn/cl fields, add accessors and ::new(...) ([#2213](https://github.com/CQCL/hugr/pull/2213))

### Refactor

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.0-rc.0"
version = "0.20.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.0-rc.0" }
hugr-core = { path = "../hugr-core", version = "0.20.0" }
portgraph = { workspace = true }
ascent = { version = "0.8.0" }
derive_more = { workspace = true, features = ["display", "error", "from"] }
Expand Down
4 changes: 1 addition & 3 deletions hugr-py/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ bench = false

[dependencies]
bumpalo = { workspace = true, features = ["collections"] }
hugr-model = { version = "0.20.0-rc.0", path = "../hugr-model", features = [
"pyo3",
] }
hugr-model = { version = "0.20.0", path = "../hugr-model", features = ["pyo3"] }
paste.workspace = true
pyo3 = { workspace = true, features = ["extension-module", "abi3-py310"] }
34 changes: 33 additions & 1 deletion hugr/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
# Changelog

## [0.20.0-rc.0](https://github.com/CQCL/hugr/compare/hugr-v0.15.4...hugr-v0.20.0-rc.0) - 2025-05-09
## [0.20.0](https://github.com/CQCL/hugr/compare/hugr-v0.15.4...hugr-v0.20.0) - 2025-05-14

This release contains a big list of changes reworking multiple core definitions of HUGR.
Some of this changes include:

- 🧹 Cleanup of the internal hugr traits, making it possible to create virtual
Hugrs that are not backed by a portgraph or use different node index types.
- 🚪 The functional root of a Hugr is now called the *entrypoint*. This node may
exist somewhere inside the region hierarchy, so we can now model edges that
connect beyond the descendants of the entrypoint.
- 🌲 The hugr region hierarchy is now always rooted by a `Module` operation.
- ✂ Made `SimpleReplacement` even simpler and easy to use.
- 🔧 The `Rewrite` trait has been split into `VerifyPatch` and `Patch` parts.
- ✉️ Hugr and package serialization is now done entirely using Envelopes. We
provide some backward-compatibility layers that will be removed in the future.
- 🦀 The Minimum Supported Rust Version (MSRV) has been updated to `1.85`.

### Bug Fixes

- [**breaking**] Don't expose `HugrMutInternals` ([#2071](https://github.com/CQCL/hugr/pull/2071))
- `as_unary_option` indexing bug ([#2163](https://github.com/CQCL/hugr/pull/2163))
- Skip phantom data for array value serialisation ([#2166](https://github.com/CQCL/hugr/pull/2166))
- Remove deleted nodes from node_map in `SimpleReplacement` ([#2176](https://github.com/CQCL/hugr/pull/2176))
- [**breaking**] Use unique region_portgraph in convexity check ([#2192](https://github.com/CQCL/hugr/pull/2192))
- Panic when an extension name is too long. ([#2198](https://github.com/CQCL/hugr/pull/2198))
- Respect type bounds on local variables when importing. ([#2206](https://github.com/CQCL/hugr/pull/2206))
- Import and export JSON metadata on module roots. ([#2207](https://github.com/CQCL/hugr/pull/2207))

### New Features

Expand Down Expand Up @@ -38,12 +57,25 @@
- [**breaking**] Bump MSRV to 1.85 ([#2136](https://github.com/CQCL/hugr/pull/2136))
- [**breaking**] Removed runtime extension sets. ([#2145](https://github.com/CQCL/hugr/pull/2145))
- [**breaking**] Only expose envelope serialization of hugrs and packages ([#2167](https://github.com/CQCL/hugr/pull/2167))
- Packages do not include the hugr extensions by default ([#2187](https://github.com/CQCL/hugr/pull/2187))
- Define text-model envelope formats ([#2188](https://github.com/CQCL/hugr/pull/2188))
- [**breaking**] Remove description on opaque ops. ([#2197](https://github.com/CQCL/hugr/pull/2197))
- Import CFG regions without adding an entry block. ([#2200](https://github.com/CQCL/hugr/pull/2200))
- [**breaking**] Remove boundary map in SimpleReplacement ([#2208](https://github.com/CQCL/hugr/pull/2208))
- Export macro for hugr serde wrappers with custom extensions ([#2209](https://github.com/CQCL/hugr/pull/2209))
- Allow any dataflow parent as SiblingSubgraph replacement ([#2210](https://github.com/CQCL/hugr/pull/2210))
- [**breaking**] Hide FuncDefn/cl fields, add accessors and ::new(...) ([#2213](https://github.com/CQCL/hugr/pull/2213))
- Add SiblingSubgraph::set_outgoing_ports ([#2217](https://github.com/CQCL/hugr/pull/2217))

### Refactor

- do not use .portgraph in mermaid/graphviz ([#2177](https://github.com/CQCL/hugr/pull/2177))
- [**breaking**] Removed global portgraph-related methods from `HugrInternals` ([#2180](https://github.com/CQCL/hugr/pull/2180))

### Testing

- check envelope roundtrips rather than json in `HugrView::verify` ([#2186](https://github.com/CQCL/hugr/pull/2186))

## [0.15.4](https://github.com/CQCL/hugr/compare/hugr-v0.15.3...hugr-v0.15.4) - 2025-05-07

### New Features
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.0-rc.0"
version = "0.20.0"
edition = { workspace = true }
rust-version = { workspace = true }

Expand Down Expand Up @@ -30,10 +30,10 @@ llvm-test = ["hugr-llvm/llvm14-0", "hugr-llvm/test-utils"]
zstd = ["hugr-core/zstd"]

[dependencies]
hugr-model = { path = "../hugr-model", version = "0.20.0-rc.0" }
hugr-core = { path = "../hugr-core", version = "0.20.0-rc.0" }
hugr-passes = { path = "../hugr-passes", version = "0.20.0-rc.0" }
hugr-llvm = { path = "../hugr-llvm", version = "0.20.0-rc.0", optional = true }
hugr-model = { path = "../hugr-model", version = "0.20.0" }
hugr-core = { path = "../hugr-core", version = "0.20.0" }
hugr-passes = { path = "../hugr-passes", version = "0.20.0" }
hugr-llvm = { path = "../hugr-llvm", version = "0.20.0", optional = true }

[dev-dependencies]
lazy_static = { workspace = true }
Expand Down
Loading