Skip to content

Conversation

@aborgna-q
Copy link
Collaborator

Closes #2279

This mostly expands the docs on the current behaviour, adds a Hugr::store_with_exts call to manually include extensions in the envelope, and auto-includes extra extensions in the AsStringEnvelope helper.

@aborgna-q aborgna-q requested a review from a team as a code owner June 2, 2025 14:12
@aborgna-q aborgna-q requested a review from cqc-alec June 2, 2025 14:12
@codecov
Copy link

codecov bot commented Jun 2, 2025

Codecov Report

Attention: Patch coverage is 80.76923% with 5 lines in your changes missing coverage. Please review.

Project coverage is 82.17%. Comparing base (ead071b) to head (fda1ccb).
Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
hugr-core/src/envelope/serde_with.rs 55.55% 3 Missing and 1 partial ⚠️
hugr-core/src/hugr.rs 94.11% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2280   +/-   ##
=======================================
  Coverage   82.17%   82.17%           
=======================================
  Files         239      239           
  Lines       43012    43036   +24     
  Branches    38924    38947   +23     
=======================================
+ Hits        35346    35366   +20     
- Misses       5675     5678    +3     
- Partials     1991     1992    +1     
Flag Coverage Δ
python 85.39% <ø> (+0.05%) ⬆️
rust 81.83% <80.76%> (-0.01%) ⬇️

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.

@cqc-alec
Copy link
Collaborator

cqc-alec commented Jun 2, 2025

Do you understand the benchmarking failure?

Copy link
Collaborator

@cqc-alec cqc-alec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some typos, but the benchmarking failure looks as if it could be related?

@codspeed-hq
Copy link

codspeed-hq bot commented Jun 2, 2025

CodSpeed Performance Report

Merging #2280 will improve performances by ×2.2

Comparing ab/serde-with-exts (fda1ccb) with main (2c8cbb9)

Summary

⚡ 6 improvements
✅ 15 untouched benchmarks

Benchmarks breakdown

Benchmark BASE HEAD Change
circuit_roundtrip/json[10] 3 ms 2.5 ms +20.61%
circuit_roundtrip/json[1] 981.9 µs 454.5 µs ×2.2
circuit_serialize/json[0] 87.1 µs 39.1 µs ×2.2
circuit_serialize/json[10] 417.9 µs 350.1 µs +19.36%
circuit_serialize/json[1] 142.3 µs 83.2 µs +71.04%
simple_cfg_serialize/json 854.4 µs 445.3 µs +91.86%

@aborgna-q aborgna-q requested a review from cqc-alec June 2, 2025 17:35
@aborgna-q
Copy link
Collaborator Author

Fixed, I wasn't setting the extra extensions in the benchmarks.

The benchmarks show a nice improvement since we no longer encode all the std extensions :)

@aborgna-q aborgna-q added this pull request to the merge queue Jun 3, 2025
Merged via the queue into main with commit 9ef05f6 Jun 3, 2025
27 checks passed
@aborgna-q aborgna-q deleted the ab/serde-with-exts branch June 3, 2025 11:39
@hugrbot hugrbot mentioned this pull request Jun 3, 2025
github-merge-queue bot pushed a commit that referenced this pull request Jun 3, 2025
## 🤖 New release

* `hugr-model`: 0.20.0 -> 0.20.1
* `hugr-core`: 0.20.0 -> 0.20.1 (✓ API compatible changes)
* `hugr-llvm`: 0.20.0 -> 0.20.1 (✓ API compatible changes)
* `hugr-passes`: 0.20.0 -> 0.20.1 (✓ API compatible changes)
* `hugr`: 0.20.0 -> 0.20.1 (✓ API compatible changes)
* `hugr-cli`: 0.20.0 -> 0.20.1 (✓ API compatible changes)

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

## `hugr-model`

<blockquote>

##
[0.20.0](hugr-model-v0.19.0...hugr-model-v0.20.0)
- 2025-05-14

### New Features

- [**breaking**] Mark all Error enums as non_exhaustive
([#2056](#2056))
- [**breaking**] Bump MSRV to 1.85
([#2136](#2136))
- Export and import entrypoints via metadata in `hugr-model`.
([#2172](#2172))
- Define text-model envelope formats
([#2188](#2188))
- Import CFG regions without adding an entry block.
([#2200](#2200))
- Symbol applications can leave out prefixes of wildcards.
([#2201](#2201))
</blockquote>

## `hugr-core`

<blockquote>

##
[0.20.1](hugr-core-v0.20.0...hugr-core-v0.20.1)
- 2025-06-03

### Bug Fixes

- check well-definedness of DFG wires in validate
([#2221](#2221))
- Check for order edges in SiblingSubgraph::from_node
([#2223](#2223))
- Make SumType::Unit(N) equal to SumType::General([(); N])
([#2250](#2250))
- canonicalize_nodes sometimes mangles the entrypoint
([#2263](#2263))

### New Features

- Add PersistentHugr ([#2080](#2080))
- Add `Type::used_extensions`
([#2224](#2224))
- Add boundary edge traversal in SimpleReplacement
([#2231](#2231))
- Add signature map function for DFGs
([#2239](#2239))
- PersistentHugr implements HugrView
([#2202](#2202))
- PersistentHugr Walker API
([#2168](#2168))
- Hugr::store_with_exts and auto-include in serde_as
([#2280](#2280))

### Refactor

- tidies/readability improvements to PersistentHugr
([#2251](#2251))
- Deprecate ValidationError::ExtensionError
([#2281](#2281))

### Testing

- Ignore miri errors in tests involving `assert_snapshot`
([#2261](#2261))
</blockquote>

## `hugr-llvm`

<blockquote>

##
[0.20.1](hugr-llvm-v0.20.0...hugr-llvm-v0.20.1)
- 2025-06-03

### Bug Fixes

- Make SumType::Unit(N) equal to SumType::General([(); N])
([#2250](#2250))

### Testing

- Add exec tests for widen op
([#2043](#2043))
</blockquote>

## `hugr-passes`

<blockquote>

##
[0.20.1](hugr-passes-v0.20.0...hugr-passes-v0.20.1)
- 2025-06-03

### Bug Fixes

- Dataflow analysis produces unsound results on Hugrs with entrypoint
([#2255](#2255))

### New Features

- LocalizeEdges pass ([#2237](#2237))
</blockquote>

## `hugr`

<blockquote>

##
[0.20.1](hugr-v0.20.0...hugr-v0.20.1)
- 2025-06-03

### Bug Fixes

- Dataflow analysis produces unsound results on Hugrs with entrypoint
([#2255](#2255))
- check well-definedness of DFG wires in validate
([#2221](#2221))
- Check for order edges in SiblingSubgraph::from_node
([#2223](#2223))
- Make SumType::Unit(N) equal to SumType::General([(); N])
([#2250](#2250))
- canonicalize_nodes sometimes mangles the entrypoint
([#2263](#2263))

### New Features

- LocalizeEdges pass ([#2237](#2237))
- Add PersistentHugr ([#2080](#2080))
- Add `Type::used_extensions`
([#2224](#2224))
- Add boundary edge traversal in SimpleReplacement
([#2231](#2231))
- Add signature map function for DFGs
([#2239](#2239))
- PersistentHugr implements HugrView
([#2202](#2202))
- PersistentHugr Walker API
([#2168](#2168))
- Hugr::store_with_exts and auto-include in serde_as
([#2280](#2280))

### Refactor

- tidies/readability improvements to PersistentHugr
([#2251](#2251))
- Deprecate ValidationError::ExtensionError
([#2281](#2281))

### Testing

- Ignore miri errors in tests involving `assert_snapshot`
([#2261](#2261))
</blockquote>

## `hugr-cli`

<blockquote>

##
[0.20.1](hugr-cli-v0.20.0...hugr-cli-v0.20.1)
- 2025-06-03

### New Features

- support external subcommands via PATH
([#1343](#1343))
([#2278](#2278))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AsStringEnvelope and friends should encode extensions it _knows_ it will require for decoding.

3 participants