Skip to content

refactor(cli)!: remove deprecated hugr_json handling#2690

Merged
ss2165 merged 1 commit intomainfrom
ss/push-rxuuynoolpxl
Nov 19, 2025
Merged

refactor(cli)!: remove deprecated hugr_json handling#2690
ss2165 merged 1 commit intomainfrom
ss/push-rxuuynoolpxl

Conversation

@ss2165
Copy link
Copy Markdown
Member

@ss2165 ss2165 commented Nov 17, 2025

BREAKING CHANGE: --hugr-json parameter removed from cli, use package envelopes.

@ss2165 ss2165 requested a review from aborgna-q November 17, 2025 18:03
@ss2165 ss2165 requested a review from a team as a code owner November 17, 2025 18:03
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.53%. Comparing base (f0de151) to head (bee9380).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2690      +/-   ##
==========================================
+ Coverage   83.51%   83.53%   +0.02%     
==========================================
  Files         266      266              
  Lines       51733    51718      -15     
  Branches    47199    47184      -15     
==========================================
- Hits        43206    43204       -2     
+ Misses       6147     6134      -13     
  Partials     2380     2380              
Flag Coverage Δ
python 91.53% <ø> (ø)
rust 82.76% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hugrbot
Copy link
Copy Markdown
Collaborator

hugrbot commented Nov 17, 2025

This PR contains breaking changes to the public Rust API.

cargo-semver-checks summary
    Building hugr v0.24.3 (current)
     Built [  18.486s] (current)
   Parsing hugr v0.24.3 (current)
    Parsed [   0.004s] (current)
  Building hugr v0.24.3 (baseline)
     Built [  17.031s] (baseline)
   Parsing hugr v0.24.3 (baseline)
    Parsed [   0.004s] (baseline)
  Checking hugr v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.011s] 159 checks: 159 pass, 41 skip
   Summary no semver update required
  Finished [  37.255s] hugr
  Building hugr-cli v0.24.3 (current)
     Built [  15.925s] (current)
   Parsing hugr-cli v0.24.3 (current)
    Parsed [   0.008s] (current)
  Building hugr-cli v0.24.3 (baseline)
     Built [  15.974s] (baseline)
   Parsing hugr-cli v0.24.3 (baseline)
    Parsed [   0.009s] (baseline)
  Checking hugr-cli v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.014s] 159 checks: 157 pass, 2 fail, 0 warn, 41 skip

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_variant_missing.ron

Failed in:
variant CliError::Envelope, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-cli/src/lib.rs:95

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/inherent_method_missing.ron

Failed in:
HugrInputArgs::get_envelope, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-cli/src/hugr_io.rs:63

   Summary semver requires new major version: 2 major and 0 minor checks failed
  Finished [  33.472s] hugr-cli
  Building hugr-core v0.24.3 (current)
     Built [  13.371s] (current)
   Parsing hugr-core v0.24.3 (current)
    Parsed [   0.077s] (current)
  Building hugr-core v0.24.3 (baseline)
     Built [  13.278s] (baseline)
   Parsing hugr-core v0.24.3 (baseline)
    Parsed [   0.076s] (baseline)
  Checking hugr-core v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.161s] 159 checks: 155 pass, 4 fail, 0 warn, 41 skip

--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
enum ReadError in /home/runner/work/hugr/hugr/PR_BRANCH/hugr-core/src/envelope.rs:139

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_missing.ron

Failed in:
enum hugr_core::envelope::EnvelopeError, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/envelope.rs:262

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/function_missing.ron

Failed in:
function hugr_core::envelope::get_generator, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/envelope.rs:80

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
      ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
     impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/struct_missing.ron

Failed in:
struct hugr_core::envelope::WithGenerator, previously in file /home/runner/work/hugr/hugr/BASELINE_BRANCH/hugr-core/src/envelope.rs:127

   Summary semver requires new major version: 4 major and 0 minor checks failed
  Finished [  28.307s] hugr-core
  Building hugr-llvm v0.24.3 (current)
     Built [  13.259s] (current)
   Parsing hugr-llvm v0.24.3 (current)
    Parsed [   0.011s] (current)
  Building hugr-llvm v0.24.3 (baseline)
     Built [  13.174s] (baseline)
   Parsing hugr-llvm v0.24.3 (baseline)
    Parsed [   0.010s] (baseline)
  Checking hugr-llvm v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.031s] 159 checks: 159 pass, 41 skip
   Summary no semver update required
  Finished [  27.641s] hugr-llvm
  Building hugr-model v0.24.3 (current)
     Built [   4.417s] (current)
   Parsing hugr-model v0.24.3 (current)
    Parsed [   0.015s] (current)
  Building hugr-model v0.24.3 (baseline)
     Built [   4.455s] (baseline)
   Parsing hugr-model v0.24.3 (baseline)
    Parsed [   0.014s] (baseline)
  Checking hugr-model v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.025s] 159 checks: 159 pass, 41 skip
   Summary no semver update required
  Finished [   9.674s] hugr-model
  Building hugr-passes v0.24.3 (current)
     Built [  13.196s] (current)
   Parsing hugr-passes v0.24.3 (current)
    Parsed [   0.023s] (current)
  Building hugr-passes v0.24.3 (baseline)
     Built [  13.235s] (baseline)
   Parsing hugr-passes v0.24.3 (baseline)
    Parsed [   0.023s] (baseline)
  Checking hugr-passes v0.24.3 -> v0.24.3 (assume minor change)
   Checked [   0.030s] 159 checks: 159 pass, 41 skip
   Summary no semver update required
  Finished [  28.159s] hugr-passes
  Building hugr-persistent v0.3.4 (current)
     Built [  10.420s] (current)
   Parsing hugr-persistent v0.3.4 (current)
    Parsed [   0.007s] (current)
  Building hugr-persistent v0.3.4 (baseline)
     Built [  10.361s] (baseline)
   Parsing hugr-persistent v0.3.4 (baseline)
    Parsed [   0.007s] (baseline)
  Checking hugr-persistent v0.3.4 -> v0.3.4 (assume minor change)
   Checked [   0.012s] 159 checks: 159 pass, 41 skip
   Summary no semver update required
  Finished [  21.884s] hugr-persistent

@ss2165 ss2165 force-pushed the ss/push-woxznvopynss branch from 44a2267 to 7dbbf26 Compare November 18, 2025 09:43
@ss2165 ss2165 force-pushed the ss/push-rxuuynoolpxl branch from 4ccb464 to 8160fb7 Compare November 18, 2025 09:43
@aborgna-q aborgna-q added the S-breaking-change Status: Need a breaking change release to progress label Nov 18, 2025
@aborgna-q aborgna-q added this to the hugr-rs 0.25.0 milestone Nov 18, 2025
@ss2165 ss2165 force-pushed the ss/push-woxznvopynss branch from 7dbbf26 to 600df24 Compare November 19, 2025 11:02
@ss2165 ss2165 force-pushed the ss/push-rxuuynoolpxl branch from 8160fb7 to 9d4e83a Compare November 19, 2025 11:02
Base automatically changed from ss/push-woxznvopynss to main November 19, 2025 11:52
BREAKING CHANGE: --hugr-json parameter removed from cli, use package
envelopes.
@ss2165 ss2165 force-pushed the ss/push-rxuuynoolpxl branch from 9d4e83a to bee9380 Compare November 19, 2025 12:39
@ss2165 ss2165 enabled auto-merge November 19, 2025 12:39
@ss2165 ss2165 added this pull request to the merge queue Nov 19, 2025
Merged via the queue into main with commit 1edeb25 Nov 19, 2025
30 checks passed
@ss2165 ss2165 deleted the ss/push-rxuuynoolpxl branch November 19, 2025 12:47
@hugrbot hugrbot mentioned this pull request Nov 19, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 22, 2025
This release includes various breaking refactors and improvements:
- A lot of work has been done towards linking Hugrs. Now module-rooted
Hugrs can
  be linked together using configurable policies.
- `ValueArray` has been removed.
- A type-safe API for accessing metadata on nodes has been added.
- Envelopes now have an extensive API for progressively describing a
package,
  and failing gracefully on errors.
- The MSRV has been bumped to Rust 1.89, and the public pyo3 dependency
has been
  updated to 0.27.
- Multiple deprecated definitions have been removed.

----

## 🤖 New release

* `hugr-model`: 0.24.3 -> 0.25.0 (✓ API compatible changes)
* `hugr-core`: 0.24.3 -> 0.25.0 (⚠ API breaking changes)
* `hugr-llvm`: 0.24.3 -> 0.25.0 (✓ API compatible changes)
* `hugr-passes`: 0.24.3 -> 0.25.0 (⚠ API breaking changes)
* `hugr-persistent`: 0.3.4 -> 0.4.0 (✓ API compatible changes)
* `hugr`: 0.24.3 -> 0.25.0 (✓ API compatible changes)
* `hugr-cli`: 0.24.3 -> 0.25.0 (⚠ API breaking changes)

### ⚠ `hugr-core` breaking changes

```text
--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum ReadError in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/envelope.rs:108

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_missing.ron

Failed in:
  enum hugr_core::envelope::EnvelopeError, previously in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:262

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/function_missing.ron

Failed in:
  function hugr_core::std_extensions::collections::value_array::value_array_type, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:159
  function hugr_core::envelope::format_generator, previously in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:93
  function hugr_core::std_extensions::collections::value_array::value_array_type_def, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:150
  function hugr_core::hugr::serialize::serde_deserialize_hugr, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/serialize.rs:180
  function hugr_core::envelope::get_generator, previously in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:80
  function hugr_core::std_extensions::collections::value_array::value_array_type_parametric, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:166
  function hugr_core::std_extensions::collections::array::op_builder::build_all_value_array_ops, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/array/op_builder.rs:390

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/inherent_method_missing.ron

Failed in:
  MermaidFormatter::from_render_config, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views/render.rs:50

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/module_missing.ron

Failed in:
  mod hugr_core::std_extensions::collections::value_array, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:1

--- failure pub_module_level_const_missing: pub module-level const is missing ---

Description:
A public const is missing or renamed
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/pub_module_level_const_missing.ron

Failed in:
  USED_EXTENSIONS_KEY in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:72
  VALUE_ARRAY_TYPENAME in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:27
  VERSION in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:33
  GENERATOR_KEY in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:70
  EXTENSION_ID in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:31
  VALUE_ARRAY_VALUENAME in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:29

--- failure pub_static_missing: pub static is missing ---

Description:
A public static is missing, renamed, or made private.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/pub_static_missing.ron

Failed in:
  EXTENSION in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:99

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/struct_missing.ron

Failed in:
  struct hugr_core::envelope::WithGenerator, previously in file /tmp/.tmpLNcYQE/hugr-core/src/envelope.rs:127
  struct hugr_core::hugr::views::render::RenderConfig, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views/render.rs:21
  struct hugr_core::std_extensions::collections::value_array::ValueArray, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:39

--- failure trait_method_default_impl_removed: pub trait default method impl removed ---

Description:
A method's default impl in an unsealed trait has been removed, breaking trait implementations that relied on that default
        ref: https://doc.rust-lang.org/book/ch10-02-traits.html#default-implementations
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_method_default_impl_removed.ron

Failed in:
  trait method hugr_core::hugr::patch::PatchVerification::invalidated_nodes in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/patch.rs:45

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#major-any-change-to-trait-item-signatures
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_method_missing.ron

Failed in:
  method invalidation_set of trait PatchVerification, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/patch.rs:44
  method mermaid_string_with_config of trait HugrView, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views.rs:404
  method mermaid_string_with_config of trait HugrView, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views.rs:404
  method mermaid_string_with_config of trait HugrView, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views.rs:404
  method get_metadata_mut of trait HugrMut, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/hugrmut.rs:63

--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#major-any-change-to-trait-item-signatures
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  Container::set_metadata now takes 2 instead of 3 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/builder/build_traits.rs:114
  Container::set_child_metadata now takes 3 instead of 4 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/builder/build_traits.rs:123
  HugrView::get_metadata now takes 2 instead of 3 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrView::get_metadata now takes 2 instead of 3 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrView::get_metadata now takes 2 instead of 3 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrMut::set_metadata now takes 3 instead of 4 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/hugrmut.rs:79
  HugrMut::remove_metadata now takes 2 instead of 3 parameters, in file /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/hugrmut.rs:106

--- failure trait_method_requires_different_generic_type_params: trait method now requires a different number of generic type parameters ---

Description:
A trait method now requires a different number of generic type parameters than it used to. Calls or implementations of this trait method using the previous number of generic types will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_method_requires_different_generic_type_params.ron

Failed in:
  Container::set_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/builder/build_traits.rs:114
  Container::set_child_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/builder/build_traits.rs:123
  HugrView::get_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrView::get_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrView::get_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/views.rs:107
  HugrMut::set_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/hugrmut.rs:79
  HugrMut::remove_metadata (0 -> 1 generic types) in /tmp/.tmpmZ0VmH/hugr/hugr-core/src/hugr/hugrmut.rs:106

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/trait_missing.ron

Failed in:
  trait hugr_core::std_extensions::collections::value_array::VArrayOpBuilder, previously in file /tmp/.tmpLNcYQE/hugr-core/src/std_extensions/collections/value_array.rs:174
  trait hugr_core::hugr::views::RootCheckable, previously in file /tmp/.tmpLNcYQE/hugr-core/src/hugr/views/root_checked.rs:73
```

### ⚠ `hugr-passes` breaking changes

```text
--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum NodeTemplate in /tmp/.tmpmZ0VmH/hugr/hugr-passes/src/replace_types.rs:40

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_missing.ron

Failed in:
  enum hugr_passes::call_graph::CallGraphNode, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/call_graph.rs:17
  enum hugr_passes::call_graph::CallGraphEdge, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/call_graph.rs:9

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field entry_nodes_moved of variant NormalizeCFGResult::CFGPreserved in /tmp/.tmpmZ0VmH/hugr/hugr-passes/src/normalize_cfgs.rs:89

--- failure enum_struct_variant_field_missing: pub enum struct variant's field removed or renamed ---

Description:
A publicly-visible enum has a struct variant whose field is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_struct_variant_field_missing.ron

Failed in:
  field entry_dfg of variant NormalizeCFGResult::CFGPreserved, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/normalize_cfgs.rs:88

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/function_missing.ron

Failed in:
  function hugr_passes::replace_types::handlers::linearize_value_array, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/replace_types/handlers.rs:298
  function hugr_passes::merge_bbs::merge_basic_blocks, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/lib.rs:40
  function hugr_passes::replace_types::handlers::value_array_const, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/replace_types/handlers.rs:97

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/module_missing.ron

Failed in:
  mod hugr_passes::merge_bbs, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/lib.rs:26
  mod hugr_passes::call_graph, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/call_graph.rs:1
  mod hugr_passes::linearize_array, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/linearize_array.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/struct_missing.ron

Failed in:
  struct hugr_passes::call_graph::CallGraph, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/call_graph.rs:42
  struct hugr_passes::linearize_array::LinearizeArrayPass, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/linearize_array.rs:35
  struct hugr_passes::LinearizeArrayPass, previously in file /tmp/.tmpLNcYQE/hugr-passes/src/linearize_array.rs:35
```

### ⚠ `hugr-cli` breaking changes

```text
--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_variant_missing.ron

Failed in:
  variant CliError::Envelope, previously in file /tmp/.tmpLNcYQE/hugr-cli/src/lib.rs:88

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/inherent_method_missing.ron

Failed in:
  HugrInputArgs::get_envelope, previously in file /tmp/.tmpLNcYQE/hugr-cli/src/hugr_io.rs:63
  HugrInputArgs::get_hugr, previously in file /tmp/.tmpLNcYQE/hugr-cli/src/hugr_io.rs:88

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field hugr_json of struct HugrInputArgs, previously in file /tmp/.tmpLNcYQE/hugr-cli/src/hugr_io.rs:40
```

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr-model`

<blockquote>

##
[0.25.0](hugr-model-v0.24.3...hugr-model-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(model)* avoid non abi-compatible pyo3 calls
([#2679](#2679))

### New Features

- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))

### Refactor

- Direct import of model representation to Python
([#2683](#2683))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.25.0](hugr-core-v0.24.3...hugr-core-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(hugr-core)* [**breaking**] Return error instead of panicking in
`MakeRegisteredOp::to_extension_op()`
([#2701](#2701))
- register packaged extensions before model_ast import
([#2702](#2702))
- ModuleGraph misses static edges to non-container entrypoints
([#2745](#2745))

### New Features

- return description output to python on error
([#2681](#2681))
- add hugr-core StaticGraph, deprecate hugr-passes CallGraph
([#2698](#2698))
- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- Add method to link Hugr modules (linking pt3)
([#2529](#2529))
- `insert_link_hugr` adds entrypoint subtree and links, with
reachability ([#2555](#2555))
- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Allow disconnecting specific edges in a hugr
([#2737](#2737))
- Optype iterators over value ports
([#2738](#2738))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- Direct import of model representation to Python
([#2683](#2683))
- *(linking.rs)* [**breaking**] (tiny) avoid type_complexity
([#2721](#2721))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
- [**breaking**] Delete ValueArray
([#2760](#2760))
- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.25.0](hugr-llvm-v0.24.3...hugr-llvm-v0.25.0)
- 2025-12-22

### New Features

- *(llvm)* [**breaking**] upgrade to inkwell 0.7
([#2695](#2695))

### Refactor

- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.25.0](hugr-passes-v0.24.3...hugr-passes-v0.25.0)
- 2025-12-22

### New Features

- *(hugr-passes)* [**breaking**] normalize_cfgs inlines entry DFG
([#2649](#2649))
- add hugr-core StaticGraph, deprecate hugr-passes CallGraph
([#2698](#2698))
- ReplaceTypes: recurse on replacements, much deprecation
([#2442](#2442))
- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- Add a pass to remove redundant order edges
([#2739](#2739))
- *(hugr-passes)* [**breaking**] add NodeTemplate::LinkedHugr, deprecate
::Call ([#2749](#2749))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
- [**breaking**] Delete ValueArray
([#2760](#2760))
- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))

### Testing

- Make Hugr valid in replace_types::op_to_call
([#2732](#2732))
</blockquote>

## `hugr-persistent`

<blockquote>

##
[0.4.0](hugr-persistent-v0.3.4...hugr-persistent-v0.4.0)
- 2025-12-22

### New Features

- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>

## `hugr`

<blockquote>

##
[0.25.0](hugr-v0.24.3...hugr-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(hugr-core)* [**breaking**] Return error instead of panicking in
`MakeRegisteredOp::to_extension_op()`
([#2701](#2701))
- register packaged extensions before model_ast import
([#2702](#2702))
- ModuleGraph misses static edges to non-container entrypoints
([#2745](#2745))

### Documentation

- Improve instructions for patch release
([#2720](#2720))

### New Features

- *(hugr-passes)* [**breaking**] normalize_cfgs inlines entry DFG
([#2649](#2649))
- ReplaceTypes: recurse on replacements, much deprecation
([#2442](#2442))
- Add a pass to remove redundant order edges
([#2739](#2739))
- *(hugr-passes)* [**breaking**] add NodeTemplate::LinkedHugr, deprecate
::Call ([#2749](#2749))
- return description output to python on error
([#2681](#2681))
- add hugr-core StaticGraph, deprecate hugr-passes CallGraph
([#2698](#2698))
- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- Add method to link Hugr modules (linking pt3)
([#2529](#2529))
- `insert_link_hugr` adds entrypoint subtree and links, with
reachability ([#2555](#2555))
- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Allow disconnecting specific edges in a hugr
([#2737](#2737))
- Optype iterators over value ports
([#2738](#2738))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- Direct import of model representation to Python
([#2683](#2683))
- *(linking.rs)* [**breaking**] (tiny) avoid type_complexity
([#2721](#2721))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
- [**breaking**] Delete ValueArray
([#2760](#2760))
- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))

### Testing

- Make Hugr valid in replace_types::op_to_call
([#2732](#2732))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.25.0](hugr-cli-v0.24.3...hugr-cli-v0.25.0)
- 2025-12-22

### New Features

- *(cli, python)* programmatic interface to cli with python bindings
([#2677](#2677))
- return description output to python on error
([#2681](#2681))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- *(cli)* [**breaking**] remove deprecated hugr_json handling
([#2690](#2690))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: Agustín Borgna <[email protected]>
@hugrbot hugrbot mentioned this pull request Dec 23, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 29, 2025
## 🤖 New release

* `hugr-model`: 0.25.0 -> 0.25.1 (✓ API compatible changes)
* `hugr-core`: 0.25.0 -> 0.25.1 (✓ API compatible changes)
* `hugr-llvm`: 0.25.0 -> 0.25.1 (✓ API compatible changes)
* `hugr-passes`: 0.25.0 -> 0.25.1 (✓ API compatible changes)
* `hugr-persistent`: 0.4.0 -> 0.4.1 (✓ API compatible changes)
* `hugr`: 0.25.0 -> 0.25.1 (✓ API compatible changes)
* `hugr-cli`: 0.25.0 -> 0.25.1

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr-model`

<blockquote>

##
[0.25.0](hugr-model-v0.24.3...hugr-model-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(model)* avoid non abi-compatible pyo3 calls
([#2679](#2679))

### New Features

- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))

### Refactor

- Direct import of model representation to Python
([#2683](#2683))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.25.0](hugr-core-v0.24.3...hugr-core-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(hugr-core)* [**breaking**] Return error instead of panicking in
`MakeRegisteredOp::to_extension_op()`
([#2701](#2701))
- register packaged extensions before model_ast import
([#2702](#2702))
- ModuleGraph misses static edges to non-container entrypoints
([#2745](#2745))

### New Features

- return description output to python on error
([#2681](#2681))
- add hugr-core StaticGraph, deprecate hugr-passes CallGraph
([#2698](#2698))
- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- Add method to link Hugr modules (linking pt3)
([#2529](#2529))
- `insert_link_hugr` adds entrypoint subtree and links, with
reachability ([#2555](#2555))
- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Allow disconnecting specific edges in a hugr
([#2737](#2737))
- Optype iterators over value ports
([#2738](#2738))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- Direct import of model representation to Python
([#2683](#2683))
- *(linking.rs)* [**breaking**] (tiny) avoid type_complexity
([#2721](#2721))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
- [**breaking**] Delete ValueArray
([#2760](#2760))
- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.25.0](hugr-llvm-v0.24.3...hugr-llvm-v0.25.0)
- 2025-12-22

### New Features

- *(llvm)* [**breaking**] upgrade to inkwell 0.7
([#2695](#2695))

### Refactor

- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.25.1](hugr-passes-v0.25.0...hugr-passes-v0.25.1)
- 2025-12-29

### Bug Fixes

- two problems in array linearization from #2749
([#2779](#2779))
</blockquote>

## `hugr-persistent`

<blockquote>

##
[0.4.0](hugr-persistent-v0.3.4...hugr-persistent-v0.4.0)
- 2025-12-22

### New Features

- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>

## `hugr`

<blockquote>

##
[0.25.1](hugr-v0.25.0...hugr-v0.25.1)
- 2025-12-29

### Bug Fixes

- two problems in array linearization from #2749
([#2779](#2779))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.25.0](hugr-cli-v0.24.3...hugr-cli-v0.25.0)
- 2025-12-22

### New Features

- *(cli, python)* programmatic interface to cli with python bindings
([#2677](#2677))
- return description output to python on error
([#2681](#2681))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- *(cli)* [**breaking**] remove deprecated hugr_json handling
([#2690](#2690))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
@hugrbot hugrbot mentioned this pull request Dec 30, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 30, 2025
## 🤖 New release

* `hugr-model`: 0.25.1 -> 0.25.2
* `hugr-core`: 0.25.1 -> 0.25.2 (✓ API compatible changes)
* `hugr-llvm`: 0.25.1 -> 0.25.2
* `hugr-passes`: 0.25.1 -> 0.25.2
* `hugr`: 0.25.1 -> 0.25.2 (✓ API compatible changes)
* `hugr-cli`: 0.25.1 -> 0.25.2
* `hugr-persistent`: 0.4.1 -> 0.4.2

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr-model`

<blockquote>

##
[0.25.0](hugr-model-v0.24.3...hugr-model-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(model)* avoid non abi-compatible pyo3 calls
([#2679](#2679))

### New Features

- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))

### Refactor

- Direct import of model representation to Python
([#2683](#2683))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.25.2](hugr-core-v0.25.1...hugr-core-v0.25.2)
- 2025-12-30

### Bug Fixes

- *(determinism)* use BTreeMap in ModuleGraph
([#2783](#2783))

### New Features

- Re-export hugr_core::hugr::linking from hugr::
([#2781](#2781))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.25.0](hugr-llvm-v0.24.3...hugr-llvm-v0.25.0)
- 2025-12-22

### New Features

- *(llvm)* [**breaking**] upgrade to inkwell 0.7
([#2695](#2695))

### Refactor

- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.25.1](hugr-passes-v0.25.0...hugr-passes-v0.25.1)
- 2025-12-29

### Bug Fixes

- two problems in array linearization from #2749
([#2779](#2779))
</blockquote>

## `hugr`

<blockquote>

##
[0.25.2](hugr-v0.25.1...hugr-v0.25.2)
- 2025-12-30

### Bug Fixes

- *(determinism)* use BTreeMap in ModuleGraph
([#2783](#2783))

### New Features

- Re-export hugr_core::hugr::linking from hugr::
([#2781](#2781))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.25.0](hugr-cli-v0.24.3...hugr-cli-v0.25.0)
- 2025-12-22

### New Features

- *(cli, python)* programmatic interface to cli with python bindings
([#2677](#2677))
- return description output to python on error
([#2681](#2681))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- *(cli)* [**breaking**] remove deprecated hugr_json handling
([#2690](#2690))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>

## `hugr-persistent`

<blockquote>

##
[0.4.0](hugr-persistent-v0.3.4...hugr-persistent-v0.4.0)
- 2025-12-22

### New Features

- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
@hugrbot hugrbot mentioned this pull request Jan 6, 2026
github-merge-queue bot pushed a commit that referenced this pull request Jan 9, 2026
## 🤖 New release

* `hugr-model`: 0.25.2 -> 0.25.3 (✓ API compatible changes)
* `hugr-core`: 0.25.2 -> 0.25.3 (✓ API compatible changes)
* `hugr-llvm`: 0.25.2 -> 0.25.3 (✓ API compatible changes)
* `hugr-passes`: 0.25.2 -> 0.25.3 (✓ API compatible changes)
* `hugr-persistent`: 0.4.2 -> 0.4.3 (✓ API compatible changes)
* `hugr`: 0.25.2 -> 0.25.3 (✓ API compatible changes)
* `hugr-cli`: 0.25.2 -> 0.25.3 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr-model`

<blockquote>

##
[0.25.0](hugr-model-v0.24.3...hugr-model-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(model)* avoid non abi-compatible pyo3 calls
([#2679](#2679))

### New Features

- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))

### Refactor

- Direct import of model representation to Python
([#2683](#2683))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.25.3](hugr-core-v0.25.2...hugr-core-v0.25.3)
- 2026-01-09

### Bug Fixes

- more nondeterminism in linking
([#2792](#2792))

### Documentation

- Add collection extension ops to the spec
([#2767](#2767))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.25.0](hugr-llvm-v0.24.3...hugr-llvm-v0.25.0)
- 2025-12-22

### New Features

- *(llvm)* [**breaking**] upgrade to inkwell 0.7
([#2695](#2695))

### Refactor

- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.25.3](hugr-passes-v0.25.2...hugr-passes-v0.25.3)
- 2026-01-09

### Bug Fixes

- *(hugr-passes)* Recursive replacement on NodeTemplate::LinkedHugr
([#2800](#2800))

### Refactor

- *(ReplaceTypes)* [tiny] correct computation of containing_func
([#2807](#2807))
</blockquote>

## `hugr-persistent`

<blockquote>

##
[0.4.0](hugr-persistent-v0.3.4...hugr-persistent-v0.4.0)
- 2025-12-22

### New Features

- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>

## `hugr`

<blockquote>

##
[0.25.3](hugr-v0.25.2...hugr-v0.25.3)
- 2026-01-09

### Bug Fixes

- *(hugr-passes)* Recursive replacement on NodeTemplate::LinkedHugr
([#2800](#2800))
- more nondeterminism in linking
([#2792](#2792))

### Documentation

- Add collection extension ops to the spec
([#2767](#2767))

### Refactor

- *(ReplaceTypes)* [tiny] correct computation of containing_func
([#2807](#2807))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.25.0](hugr-cli-v0.24.3...hugr-cli-v0.25.0)
- 2025-12-22

### New Features

- *(cli, python)* programmatic interface to cli with python bindings
([#2677](#2677))
- return description output to python on error
([#2681](#2681))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- *(cli)* [**breaking**] remove deprecated hugr_json handling
([#2690](#2690))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
@hugrbot hugrbot mentioned this pull request Jan 13, 2026
github-merge-queue bot pushed a commit that referenced this pull request Jan 14, 2026
## 🤖 New release

* `hugr-model`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr-core`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr-llvm`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr-passes`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr-cli`: 0.25.3 -> 0.25.4 (✓ API compatible changes)
* `hugr-persistent`: 0.4.3 -> 0.4.4

<details><summary><i><b>Changelog</b></i></summary><p>

## `hugr-model`

<blockquote>

##
[0.25.0](hugr-model-v0.24.3...hugr-model-v0.25.0)
- 2025-12-22

### Bug Fixes

- *(model)* avoid non abi-compatible pyo3 calls
([#2679](#2679))

### New Features

- [**breaking**] Upgrade pyo3 dependency to 0.27
([#2736](#2736))

### Refactor

- Direct import of model representation to Python
([#2683](#2683))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.25.3](hugr-core-v0.25.2...hugr-core-v0.25.3)
- 2026-01-09

### Bug Fixes

- more nondeterminism in linking
([#2792](#2792))

### Documentation

- Add collection extension ops to the spec
([#2767](#2767))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.25.0](hugr-llvm-v0.24.3...hugr-llvm-v0.25.0)
- 2025-12-22

### New Features

- *(llvm)* [**breaking**] upgrade to inkwell 0.7
([#2695](#2695))

### Refactor

- Deprecate Value::Function and inline_constant_functions
([#2770](#2770))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.25.4](hugr-passes-v0.25.3...hugr-passes-v0.25.4)
- 2026-01-14

### Bug Fixes

- UnpackTuple error on disconnected outputs
([#2813](#2813))
</blockquote>

## `hugr`

<blockquote>

##
[0.25.4](hugr-v0.25.3...hugr-v0.25.4)
- 2026-01-14

### Bug Fixes

- UnpackTuple error on disconnected outputs
([#2813](#2813))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.25.0](hugr-cli-v0.24.3...hugr-cli-v0.25.0)
- 2025-12-22

### New Features

- *(cli, python)* programmatic interface to cli with python bindings
([#2677](#2677))
- return description output to python on error
([#2681](#2681))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))
- [**breaking**] GeneratorDesc metadata definition
([#2759](#2759))

### Refactor

- [**breaking**] move envelope reading to dedicated module with
dedicated errors ([#2689](#2689))
- *(cli)* [**breaking**] remove deprecated hugr_json handling
([#2690](#2690))
- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>

## `hugr-persistent`

<blockquote>

##
[0.4.0](hugr-persistent-v0.3.4...hugr-persistent-v0.4.0)
- 2025-12-22

### New Features

- [**breaking**] Remove `RootCheckable`
([#2704](#2704))
- [**breaking**] Bump MSRV to Rust 1.89
([#2747](#2747))
- [**breaking**] Type-safe access for node metadata
([#2755](#2755))

### Refactor

- [**breaking**] Remove multiple deprecated definitions
([#2751](#2751))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
@hugrbot hugrbot mentioned this pull request Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-breaking-change Status: Need a breaking change release to progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants