-
Notifications
You must be signed in to change notification settings - Fork 13
feat: support external subcommands via PATH (#1343) #2278
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
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2278 +/- ##
==========================================
- Coverage 82.15% 82.15% -0.01%
==========================================
Files 239 239
Lines 42989 43010 +21
Branches 38901 38922 +21
==========================================
+ Hits 35319 35334 +15
- Misses 5679 5685 +6
Partials 1991 1991
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
aborgna-q
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks!
I just have a couple comments, to make it pass the CI checks
…o Unix (Quantinuum#1343) Suggestions directly committed Co-authored-by: Agustín Borgna <[email protected]>
aborgna-q
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks for contributing!
## 🤖 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/).
Summary
This PR adds support for external subcommands in the
hugr-clibinary, as per the feature request from issue #1343.Now when you run:
if an executable named
hugr-<subcommand>is on yourPATH, it will be called with the same[args…]. If the binary is missing or fails, you get a clear error and non-zero exit code.Details
Functionality:
src/main.rsChecks for no subcommand and errors out.
Builds
hugr-<subcommand>from the first arg.Runs it with
std::process::Command, passing the remaining args.On error:
If not found →
Other I/O errors →
Testing:
hugr-cli/tests/external.rstest_missing_external_commandRuns
hugr idontexistand checks for a “no such subcommand” error.test_external_command_invocationhugr-dummyscript that echoes its args and exits42.PATH.hugr dummy foo barand checks it printsdummy called: foo barand exits42.Adds
tempfiletodev-dependenciesinCargo.tomlfor these tests.Closes #1343