Skip to content

chore: release#3048

Merged
aborgna-q merged 2 commits into
mainfrom
release-plz-2026-05-05T16-05-28Z
Jun 5, 2026
Merged

chore: release#3048
aborgna-q merged 2 commits into
mainfrom
release-plz-2026-05-05T16-05-28Z

Conversation

@hugrbot

@hugrbot hugrbot commented May 5, 2026

Copy link
Copy Markdown
Collaborator

This release includes an overhaul of the Type definition, merging it with
Terms. The hugr-model serialization now tracks granular information about
which extensions versions requirements. This improves error reporting on missing
extensions and opens the way for extension version migrations in the future.

Support for bare .json HUGR files has been removed. JSON-encoded envelopes are
still supported, but will be removed in the future.
To convert old JSON files, add the following header and footer to the file:

PREPEND = r#"HUGRiHJv?@{"modules": ["#;
APPEND = r#"],"extensions": []}"#;

🤖 New release

  • hugr-model: 0.27.1 -> 0.28.0 (⚠ API breaking changes)
  • hugr-core: 0.27.1 -> 0.28.0 (⚠ API breaking changes)
  • hugr-llvm: 0.27.1 -> 0.28.0 (✓ API compatible changes)
  • hugr-persistent: 0.6.1 -> 0.7.0 (✓ API compatible changes)
  • hugr: 0.27.1 -> 0.28.0 (✓ API compatible changes)
  • hugr-cli: 0.27.1 -> 0.28.0 (⚠ API breaking changes)

hugr-model breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field Symbol.version in /tmp/.tmpTbD2jS/hugr/hugr-model/src/v0/ast/mod.rs:229
  field Symbol.version in /tmp/.tmpTbD2jS/hugr/hugr-model/src/v0/table/mod.rs:328

--- 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.47.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field version of variant Operation::Import in /tmp/.tmpTbD2jS/hugr/hugr-model/src/v0/table/mod.rs:248

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  hugr_model::v0::scope::SymbolTable::insert takes 2 parameters in /tmp/.tmpdBSS8f/hugr-model/src/v0/scope/symbol.rs:96, but now takes 3 parameters in /tmp/.tmpTbD2jS/hugr/hugr-model/src/v0/scope/symbol.rs:109
  hugr_model::v0::scope::SymbolTable::resolve takes 1 parameters in /tmp/.tmpdBSS8f/hugr-model/src/v0/scope/symbol.rs:132, but now takes 2 parameters in /tmp/.tmpTbD2jS/hugr/hugr-model/src/v0/scope/symbol.rs:181

hugr-core breaking changes

--- 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.47.0/src/lints/enum_missing.ron

Failed in:
  enum hugr_core::types::NoRV, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/row_var.rs:55
  enum hugr_core::types::TypeEnum, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types.rs:332
  enum hugr_core::hugr::views::sibling_subgraph::ValidationMode, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/sibling_subgraph.rs:839
  enum hugr_core::types::type_param::TermTypeError, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:728

--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant InterGraphEdgeError::NoRelation 3 -> 2 in /tmp/.tmpTbD2jS/hugr/hugr-core/src/hugr/validate.rs:824
  variant InterGraphEdgeError::NonDominatedAncestor 4 -> 3 in /tmp/.tmpTbD2jS/hugr/hugr-core/src/hugr/validate.rs:834

--- failure enum_struct_variant_changed_kind: An enum struct variant changed kind ---

Description:
A pub enum's struct variant with at least one pub field has changed to a different kind of enum variant, breaking access to its pub fields.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_struct_variant_changed_kind.ron

Failed in:
  variant SumType::General in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types.rs:180

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant NodeLabel:MetadataValues in /tmp/.tmpTbD2jS/hugr/hugr-core/src/hugr/views/render.rs:185

--- 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.47.0/src/lints/enum_variant_missing.ron

Failed in:
  variant Term::RuntimeType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:76
  variant Term::StaticType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:78
  variant Term::BoundedNatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:84
  variant Term::StringType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:86
  variant Term::BytesType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:88
  variant Term::FloatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:90
  variant Term::ListType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:94
  variant Term::TupleType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:97
  variant Term::Runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:100
  variant Term::ConstType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:151
  variant Term::RuntimeType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:76
  variant Term::StaticType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:78
  variant Term::BoundedNatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:84
  variant Term::StringType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:86
  variant Term::BytesType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:88
  variant Term::FloatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:90
  variant Term::ListType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:94
  variant Term::TupleType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:97
  variant Term::Runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:100
  variant Term::ConstType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:151
  variant Term::RuntimeType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:76
  variant Term::StaticType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:78
  variant Term::BoundedNatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:84
  variant Term::StringType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:86
  variant Term::BytesType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:88
  variant Term::FloatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:90
  variant Term::ListType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:94
  variant Term::TupleType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:97
  variant Term::Runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:100
  variant Term::ConstType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:151
  variant Term::RuntimeType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:76
  variant Term::StaticType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:78
  variant Term::BoundedNatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:84
  variant Term::StringType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:86
  variant Term::BytesType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:88
  variant Term::FloatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:90
  variant Term::ListType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:94
  variant Term::TupleType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:97
  variant Term::Runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:100
  variant Term::ConstType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:151
  variant Term::RuntimeType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:76
  variant Term::StaticType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:78
  variant Term::BoundedNatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:84
  variant Term::StringType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:86
  variant Term::BytesType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:88
  variant Term::FloatType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:90
  variant Term::ListType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:94
  variant Term::TupleType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:97
  variant Term::Runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:100
  variant Term::ConstType, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:151
  variant InterGraphEdgeError::MissingOrderEdge, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/validate.rs:814
  variant SignatureError::RowVarWhereTypeExpected, previously in file /tmp/.tmpdBSS8f/hugr-core/src/extension.rs:523

--- 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.47.0/src/lints/function_missing.ron

Failed in:
  function hugr_core::types::type_param::check_term_types, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:715
  function hugr_core::types::type_param::check_term_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:639

--- failure function_requires_different_generic_type_params: function now requires a different number of generic type parameters ---

Description:
A function now requires a different number of generic type parameters than it used to. Uses of this function that supplied the previous number of generic types (e.g. via turbofish syntax) will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/function_requires_different_generic_type_params.ron

Failed in:
  function resolve_type_extensions (1 -> 0 generic types) in /tmp/.tmpTbD2jS/hugr/hugr-core/src/extension/resolution.rs:45

--- failure inherent_associated_pub_const_missing: inherent impl's associated pub const removed ---

Description:
An inherent impl's associated public constant is removed or renamed
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/inherent_associated_pub_const_missing.ron

Failed in:
  Term::UNIT, previously at /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:284
  Term::UNIT, previously at /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:284
  Term::UNIT, previously at /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:284
  Term::UNIT, previously at /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:284
  Term::UNIT, previously at /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:284

--- 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.47.0/src/lints/inherent_method_missing.ron

Failed in:
  FuncTypeBase::find_rowvar, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/signature.rs:139
  WeakExtensionRegistry::get, previously in file /tmp/.tmpdBSS8f/hugr-core/src/extension/resolution/weak_registry.rs:35
  ExtensionRegistry::register_updated, previously in file /tmp/.tmpdBSS8f/hugr-core/src/extension.rs:265
  ExtensionRegistry::register_updated_ref, previously in file /tmp/.tmpdBSS8f/hugr-core/src/extension.rs:290
  AliasID::get_alias_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/ops/handle.rs:93
  SiblingSubgraph::validate, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/sibling_subgraph.rs:527
  SiblingSubgraph::validate, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/sibling_subgraph.rs:527
  Hugr::into_region_portgraph, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/internal.rs:401
  Hugr::into_region_portgraph, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/internal.rs:401
  SumType::as_unary_option, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types.rs:295
  Term::max_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:157
  Term::bounded_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:163
  Term::new_list_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:173
  Term::new_tuple_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:178
  Term::new_list_concat, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:311
  Term::as_runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:338
  Term::max_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:157
  Term::bounded_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:163
  Term::new_list_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:173
  Term::new_tuple_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:178
  Term::new_list_concat, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:311
  Term::as_runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:338
  Term::max_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:157
  Term::bounded_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:163
  Term::new_list_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:173
  Term::new_tuple_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:178
  Term::new_list_concat, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:311
  Term::as_runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:338
  Term::max_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:157
  Term::bounded_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:163
  Term::new_list_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:173
  Term::new_tuple_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:178
  Term::new_list_concat, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:311
  Term::as_runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:338
  Term::max_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:157
  Term::bounded_nat_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:163
  Term::new_list_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:173
  Term::new_tuple_type, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:178
  Term::new_list_concat, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:311
  Term::as_runtime, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:338

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  hugr_core::ops::custom::OpaqueOp::new takes 4 parameters in /tmp/.tmpdBSS8f/hugr-core/src/ops/custom.rs:255, but now takes 5 parameters in /tmp/.tmpTbD2jS/hugr/hugr-core/src/ops/custom.rs:291
  hugr_core::ops::OpaqueOp::new takes 4 parameters in /tmp/.tmpdBSS8f/hugr-core/src/ops/custom.rs:255, but now takes 5 parameters in /tmp/.tmpTbD2jS/hugr/hugr-core/src/ops/custom.rs:291
  hugr_core::extension::resolution::WeakExtensionRegistry::register takes 2 parameters in /tmp/.tmpdBSS8f/hugr-core/src/extension/resolution/weak_registry.rs:48, but now takes 3 parameters in /tmp/.tmpTbD2jS/hugr/hugr-core/src/extension/resolution/weak_registry.rs:182
  hugr_core::types::custom::CustomType::new takes 5 parameters in /tmp/.tmpdBSS8f/hugr-core/src/types/custom.rs:59, but now takes 6 parameters in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/custom.rs:64
  hugr_core::types::CustomType::new takes 5 parameters in /tmp/.tmpdBSS8f/hugr-core/src/types/custom.rs:59, but now takes 6 parameters in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/custom.rs:64

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

Description:
A method now requires a different number of generic type parameters than it used to. Uses of this method that supplied 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.47.0/src/lints/method_requires_different_generic_type_params.ron

Failed in:
  hugr_core::extension::resolution::ExtensionCollectionError::dropped_signature takes 0 generic types instead of 1, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/extension/resolution.rs:260
  hugr_core::extension::resolution::ExtensionCollectionError::dropped_type takes 0 generic types instead of 1, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/extension/resolution.rs:271
  hugr_core::types::type_param::TypeArg::new_list takes 1 generic types instead of 0, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/type_param.rs:193
  hugr_core::types::TypeArg::new_list takes 1 generic types instead of 0, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/type_param.rs:193
  hugr_core::types::type_param::TypeParam::new_list takes 1 generic types instead of 0, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/type_param.rs:193
  hugr_core::types::type_param::Term::new_list takes 1 generic types instead of 0, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/type_param.rs:193
  hugr_core::types::Term::new_list takes 1 generic types instead of 0, in /tmp/.tmpTbD2jS/hugr/hugr-core/src/types/type_param.rs:193

--- 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.47.0/src/lints/module_missing.ron

Failed in:
  mod hugr_core::hugr::views::petgraph, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/petgraph.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.47.0/src/lints/struct_missing.ron

Failed in:
  struct hugr_core::types::RowVariable, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/row_var.rs:17
  struct hugr_core::types::type_param::ListPartIter, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:765
  struct hugr_core::hugr::views::petgraph::HugrNodeRef, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/petgraph.rs:190
  struct hugr_core::hugr::views::sibling_subgraph::ConvexChecker, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/sibling_subgraph.rs:1090
  struct hugr_core::types::TypeBase, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types.rs:403
  struct hugr_core::types::type_row::TypeRowBase, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_row.rs:23
  struct hugr_core::types::type_param::TuplePartIter, previously in file /tmp/.tmpdBSS8f/hugr-core/src/types/type_param.rs:800
  struct hugr_core::hugr::views::petgraph::PetgraphWrapper, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/petgraph.rs:16
  struct hugr_core::hugr::views::PetgraphWrapper, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views/petgraph.rs:16

--- 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#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_missing.ron

Failed in:
  method as_petgraph of trait HugrView, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views.rs:397
  method as_petgraph of trait HugrView, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views.rs:397
  method as_petgraph of trait HugrView, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/views.rs:397
  method region_portgraph of trait HugrInternals, previously in file /tmp/.tmpdBSS8f/hugr-core/src/hugr/internal.rs:47

hugr-cli breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field HugrInputArgs.extension_dirs in /tmp/.tmpTbD2jS/hugr/hugr-cli/src/hugr_io.rs:46

--- 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.47.0/src/lints/enum_variant_missing.ron

Failed in:
  variant CliError::NotAnEnvelope, previously in file /tmp/.tmpdBSS8f/hugr-cli/src/lib.rs:97

--- 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.47.0/src/lints/inherent_method_missing.ron

Failed in:
  MermaidArgs::run_print_hugr, previously in file /tmp/.tmpdBSS8f/hugr-cli/src/mermaid.rs:110
Changelog

hugr-model

0.28.0 - 2026-06-05

New Features

  • [breaking] Add extension versions to hugr-model elements (#3080)

hugr-core

0.28.0 - 2026-06-05

Bug Fixes

  • Export dataflow blocks with CFG node link merged into input port when possible (#3060)
  • Publish parametrisation check for types (#3066)
  • Preserve ordering in InlineDFG (#3072)
  • Properly validate extension definitions (#3081)
  • Re-link opdefs when doing extension resolution (#3090)
  • Don't override extensions unnecessarily on Extend (#3095)

New Features

  • SiblingSubgraphs with polymorphic signatures (#3056)
  • [breaking] do not require an Order edge for each nonlocal Ext edge; compute on demand in scheduling_graph() (#2951)
  • Metadata key aliases for non-breaking migrations (#3057)
  • (hugr-llvm) [breaking] Add support for emitting debug locations (#3026)
  • [breaking] Add extension version to custom ops and types (#3063)
  • [breaking] Keep multiple incompatible extension versions in ExtensionRegistry (#3064)
  • [breaking] Add extension versions to hugr-model elements (#3080)
  • Prefer local extension Arcs when loading a package (#3094)

Performance

  • [breaking] remove bound-caching from Type, do in SumType::General instead (#3022)

Refactor

  • (hugrv2) [breaking] combine TypeEnum with Term, no RV parametrization (#2895)
  • (hugrv2) [breaking] Rename Terms to clarify (runtime) Types from static parameter Kinds (#3019)
  • simplify InlineDFG, extend tests (#3096)

hugr-llvm

0.28.0 - 2026-06-05

New Features

  • [breaking] do not require an Order edge for each nonlocal Ext edge; compute on demand in scheduling_graph() (#2951)
  • (hugr-llvm) [breaking] Add support for emitting debug locations (#3026)
  • [breaking] Add extension version to custom ops and types (#3063)
  • [breaking] Keep multiple incompatible extension versions in ExtensionRegistry (#3064)

Performance

  • [breaking] remove bound-caching from Type, do in SumType::General instead (#3022)

Refactor

  • (hugrv2) [breaking] combine TypeEnum with Term, no RV parametrization (#2895)
  • (hugrv2) [breaking] Rename Terms to clarify (runtime) Types from static parameter Kinds (#3019)
  • Use an enum instead of random bools in emit debug option (#3098)

hugr-persistent

0.7.0 - 2026-06-05

New Features

  • [breaking] do not require an Order edge for each nonlocal Ext edge; compute on demand in scheduling_graph() (#2951)
  • (hugr-llvm) [breaking] Add support for emitting debug locations (#3026)
  • [breaking] Add extension versions to hugr-model elements (#3080)

hugr

0.28.0 - 2026-06-05

Bug Fixes

  • Export dataflow blocks with CFG node link merged into input port when possible (#3060)
  • Publish parametrisation check for types (#3066)
  • Preserve ordering in InlineDFG (#3072)
  • Properly validate extension definitions (#3081)
  • Re-link opdefs when doing extension resolution (#3090)
  • Don't override extensions unnecessarily on Extend (#3095)

New Features

  • SiblingSubgraphs with polymorphic signatures (#3056)
  • [breaking] do not require an Order edge for each nonlocal Ext edge; compute on demand in scheduling_graph() (#2951)
  • Metadata key aliases for non-breaking migrations (#3057)
  • (hugr-llvm) [breaking] Add support for emitting debug locations (#3026)
  • [breaking] Add extension version to custom ops and types (#3063)
  • [breaking] Add extension versions to hugr-model elements (#3080)
  • Prefer local extension Arcs when loading a package (#3094)
  • [breaking] Keep multiple incompatible extension versions in ExtensionRegistry (#3064)

Performance

  • [breaking] remove bound-caching from Type, do in SumType::General instead (#3022)

Refactor

  • (hugrv2) [breaking] Rename Terms to clarify (runtime) Types from static parameter Kinds (#3019)
  • simplify InlineDFG, extend tests (#3096)
  • (hugrv2) [breaking] combine TypeEnum with Term, no RV parametrization (#2895)

hugr-cli

0.28.0 - 2026-06-05

New Features

  • (hugr-llvm) [breaking] Add support for emitting debug locations (#3026)
  • [breaking] Keep multiple incompatible extension versions in ExtensionRegistry (#3064)
  • (hugr-cli) [breaking] add -E flag to load extensions from a directory (#3082)
  • [breaking] Remove deprecated pure json HUGR APIs (#3089)


This PR was generated with release-plz.

@hugrbot hugrbot added A-rust Area: Rust code X-release Automated release PR labels May 5, 2026
@codecov

codecov Bot commented May 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.29%. Comparing base (ebaba12) to head (083a261).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3048   +/-   ##
=======================================
  Coverage   81.29%   81.29%           
=======================================
  Files         242      242           
  Lines       46829    46829           
  Branches    40512    40512           
=======================================
  Hits        38071    38071           
  Misses       6767     6767           
  Partials     1991     1991           
Flag Coverage Δ
python 89.47% <ø> (ø)
rust 80.02% <ø> (ø)

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

☔ View full report in Codecov by Harness.
📢 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 hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 3 times, most recently from f6c3587 to f7e5f72 Compare May 12, 2026 16:09
@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 2 times, most recently from 4d41402 to a8a4d5b Compare May 13, 2026 10:07
@codspeed-hq

codspeed-hq Bot commented May 13, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 29 untouched benchmarks
⏩ 6 skipped benchmarks1


Comparing release-plz-2026-05-05T16-05-28Z (083a261) with main (ebaba12)

Open in CodSpeed

Footnotes

  1. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 5 times, most recently from b40825c to f95005f Compare May 20, 2026 08:17
@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 5 times, most recently from 20f8ee0 to 996ad01 Compare May 26, 2026 15:53
@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 11 times, most recently from 8fa081c to 033b9b6 Compare June 4, 2026 13:46
@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch 3 times, most recently from 18c0d5f to c711046 Compare June 5, 2026 10:43
@aborgna-q

Copy link
Copy Markdown
Collaborator

Alec's suggestion about the dropped json support:

We should probably put the advice about the PREPEND and APPEND strings in the changelog.

#3089 (review)

@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch from c711046 to 995ba19 Compare June 5, 2026 13:21
@hugrbot hugrbot force-pushed the release-plz-2026-05-05T16-05-28Z branch from 995ba19 to 527ad3d Compare June 5, 2026 14:47
@aborgna-q aborgna-q marked this pull request as ready for review June 5, 2026 14:55
@aborgna-q aborgna-q requested review from a team, aborgna-q, cqc-alec, doug-q and ss2165 as code owners June 5, 2026 14:56
@aborgna-q aborgna-q self-assigned this Jun 5, 2026
@aborgna-q aborgna-q added this pull request to the merge queue Jun 5, 2026
Merged via the queue into main with commit 4c9f9c6 Jun 5, 2026
31 checks passed
@aborgna-q aborgna-q deleted the release-plz-2026-05-05T16-05-28Z branch June 5, 2026 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rust Area: Rust code X-release Automated release PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants