Releases: harmoniqs/Legato.jl
Releases · harmoniqs/Legato.jl
Release list
v0.5.0
Legato v0.5.0
Changes
- Renamed from
StrettotoLegato. Registered as a new package with a new UUID (2220d95b-0ec6-412e-99be-c6a5d269006d); the priorStrettopackage (UUID 6542ec78-ee1b-4af1-b08f-242328baa654) is retired. No functional changes — same circuit-to-pulse compilation API under the new name.
Merged pull requests:
- docs: rewrite README with quantikz hero diagram (#4) (@aarontrowbridge)
- feat: HeronR3(n_levels) kwarg + bell_circuit() + :SX gate + public 1Q demo (#5) (@aarontrowbridge)
- chore(ci): retire CompatHelper, switch to Dependabot for Julia + Actions (#6) (@jack-champagne)
- chore(deps): bump julia-actions/cache from 2 to 3 (#7) (@dependabot[bot])
- chore(deps): bump actions/upload-artifact from 4 to 7 (#8) (@dependabot[bot])
- chore(deps): bump julia-actions/setup-julia from 2 to 3 (#9) (@dependabot[bot])
- chore(deps): bump actions/checkout from 4 to 6 (#10) (@dependabot[bot])
- chore(deps): bump peter-evans/repository-dispatch from 2 to 4 (#11) (@dependabot[bot])
- chore(deps): bump codecov/codecov-action from 5 to 6 (#13) (@dependabot[bot])
- Add OpenQASM 3 import for GateCircuit (#24) (@Kitsunp)
- feat(profiles): add IQMEmerald() — Crystal 54 full device profile (#26) (@kateebonner)
- Add FFT pulse-spectrum analyzer (closes #12) (#27) (@Oishi1029)
- chore(deps): bump codecov/codecov-action from 6 to 7 (#28) (@dependabot[bot])
- Add HeronR2 device profile (#29) (@codexbountylab)
- chore(deps): bump actions/checkout from 6 to 7 (#34) (@dependabot[bot])
- Rename Stretto → Legato; add CompatHelper workflow (#35) (@jack-champagne)
Closed issues:
v0.4.0
Stretto v0.4.0
Changelog
This release jumps from v0.2.1 to v0.4.0 because v0.3.0 was bumped internally but never registered — its changes ship together with v0.4.0 below. No breaking changes to user-facing API; all changes are additive (new seams, new transpile pass) or internal refactors that preserve behavior at the compile() entry point.
Changes
compile()now routes through aCompilationStrategyregistry with best-score dispatch;:defaultstrategy registered at module load. Existing direct callers ofcompile()continue to work — the:defaultstrategy mirrors the v0.2 substrate behavior.- Refactored compile pipeline through composable seams:
build_problem,classify_problem,post_process(substrate defaults; users may override).
Added
to_native(circuit, device)— pure circuit-rewriting transpile pass that decomposes non-native gates into the device's native set. v0.4 ships CNOT/CX → H·CZ·H; pass-through for already-native ops; ArgumentError for unrewritable gates.native_gate_set(device)accessor returningSet(keys(device.native_gates)).CompilationStrategystruct with keyword constructor + the seam slotsintegrator,initial_pulse,partitioner,solver_strategy,classify_problem,build_problem,post_process.register_strategy!,unregister_strategy!,strategies()accessors.select_strategy(circuit, device)— best-score with:defaultfallback.default_initial_pulse,default_partitioner,default_solver_strategy,set_*!setter pairs for each (substrate seams).BlockSpec(single-block partition, whole-circuit-as-one-block substrate).PostProcessContext(carries circuit, device, qtraj, problem to post-process transforms).:Hadded toHeronR3()native_gates so catalog-seeded H pulses compose with the transpile pass without an extra SX-decomposition step.
v0.2.1
Stretto v0.2.1
v0.2.1
Added
- Three new extension seams, each with a substrate default so existing Stretto-only
users see no behavior change:default_initial_pulse,default_partitioner(+
BlockSpec),default_solver_strategy. - Matching setters:
set_default_initial_pulse!,set_default_partitioner!,
set_default_solver_strategy!.
Changed
compilenow routes throughdefault_partitioner; currently asserts single-block
output. Multi-block composition is planned for a future release.compile_blocknow builds its initial pulse viadefault_initial_pulseand runs
its solve viadefault_solver_strategy.
Removed
:piccolissimo, :integrationtestitems insrc/compile.jl. These tests moved to
the privateStrettissimo.jlpackage, which depends on Piccolissimo and validates
the override paths against the real spline integrator.